@mongodb-js/compass-editor 0.2.0 → 0.4.0
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.
- package/dist/ace/theme.d.ts.map +1 -1
- package/dist/ace/theme.js +36 -4
- package/dist/ace/theme.js.map +1 -1
- package/dist/ace/util.d.ts.map +1 -1
- package/dist/ace/util.js +7 -4
- package/dist/ace/util.js.map +1 -1
- package/dist/base-editor.d.ts +3 -2
- package/dist/base-editor.d.ts.map +1 -1
- package/dist/base-editor.js +47 -11
- package/dist/base-editor.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/inline-editor.d.ts +3 -1
- package/dist/inline-editor.d.ts.map +1 -1
- package/dist/inline-editor.js +2 -3
- package/dist/inline-editor.js.map +1 -1
- package/dist/json-editor.d.ts +30 -0
- package/dist/json-editor.d.ts.map +1 -0
- package/dist/json-editor.js +382 -0
- package/dist/json-editor.js.map +1 -0
- package/dist/multiline-editor.d.ts +18 -0
- package/dist/multiline-editor.d.ts.map +1 -0
- package/dist/multiline-editor.js +139 -0
- package/dist/multiline-editor.js.map +1 -0
- package/dist/prettify.d.ts +4 -0
- package/dist/prettify.d.ts.map +1 -0
- package/dist/prettify.js +25 -0
- package/dist/prettify.js.map +1 -0
- package/package.json +19 -7
package/dist/ace/theme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/ace/theme.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,uBAAuB,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/ace/theme.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,uBAAuB,gBAAgB,CAAC;AAW9C,QAAA,MAAM,sBAAsB,QA6Q3B,CAAC;AAgCF,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,CAAC"}
|
package/dist/ace/theme.js
CHANGED
|
@@ -4,6 +4,10 @@ exports.mongodbAceThemeCssText = exports.mongodbAceThemeCssClass = void 0;
|
|
|
4
4
|
const compass_components_1 = require("@mongodb-js/compass-components");
|
|
5
5
|
const mongodbAceThemeCssClass = 'ace-mongodb';
|
|
6
6
|
exports.mongodbAceThemeCssClass = mongodbAceThemeCssClass;
|
|
7
|
+
const errorColor = encodeURIComponent(compass_components_1.palette.red.base);
|
|
8
|
+
const errorColorDarkMode = encodeURIComponent(compass_components_1.palette.red.light1);
|
|
9
|
+
const foldColor = encodeURIComponent(compass_components_1.palette.black);
|
|
10
|
+
const foldColorDarkMode = encodeURIComponent(compass_components_1.palette.white);
|
|
7
11
|
const css = String.raw;
|
|
8
12
|
const mongodbAceThemeCssText = css `
|
|
9
13
|
.ace-mongodb {
|
|
@@ -95,7 +99,8 @@ const mongodbAceThemeCssText = css `
|
|
|
95
99
|
.ace-mongodb.ace_editor {
|
|
96
100
|
color: var(--editor-color);
|
|
97
101
|
background: var(--editor-background);
|
|
98
|
-
line-height:
|
|
102
|
+
line-height: inherit;
|
|
103
|
+
min-height: inherit;
|
|
99
104
|
}
|
|
100
105
|
.inline-editor.ace-mongodb.ace_editor {
|
|
101
106
|
background: transparent;
|
|
@@ -118,9 +123,36 @@ const mongodbAceThemeCssText = css `
|
|
|
118
123
|
background: inherit;
|
|
119
124
|
}
|
|
120
125
|
.ace-mongodb .ace_gutter-cell {
|
|
121
|
-
/* gutter left padding has to account for error annotation size */
|
|
122
|
-
padding-left:
|
|
123
|
-
|
|
126
|
+
/* gutter left padding has to account for error annotation icon size */
|
|
127
|
+
padding-left: ${compass_components_1.spacing[3]}px;
|
|
128
|
+
}
|
|
129
|
+
.ace-mongodb .ace_gutter-cell.ace_error {
|
|
130
|
+
/* leafygreen XWithCircle */
|
|
131
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${errorColor}' fill-rule='evenodd' d='M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm1.414-9.828a1 1 0 1 1 1.414 1.414L9.414 8l1.414 1.414a1 1 0 1 1-1.414 1.414L8 9.414l-1.414 1.414a1 1 0 1 1-1.414-1.414L6.586 8 5.172 6.586a1 1 0 0 1 1.414-1.414L8 6.586l1.414-1.414z' clip-rule='evenodd'/%3E%3C/svg%3E%0A");
|
|
132
|
+
background-size: 12px;
|
|
133
|
+
background-repeat: no-repeat;
|
|
134
|
+
background-position: ${compass_components_1.spacing[1] / 2}px center;
|
|
135
|
+
}
|
|
136
|
+
/* To change svg foll color, we have to completely replace the background url, this can't be done with css custom properties */
|
|
137
|
+
.ace_dark.ace-mongodb .ace_gutter-cell.ace_error {
|
|
138
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${errorColorDarkMode}' fill-rule='evenodd' d='M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm1.414-9.828a1 1 0 1 1 1.414 1.414L9.414 8l1.414 1.414a1 1 0 1 1-1.414 1.414L8 9.414l-1.414 1.414a1 1 0 1 1-1.414-1.414L6.586 8 5.172 6.586a1 1 0 0 1 1.414-1.414L8 6.586l1.414-1.414z' clip-rule='evenodd'/%3E%3C/svg%3E%0A");
|
|
139
|
+
}
|
|
140
|
+
.ace-mongodb .ace_fold-widget {
|
|
141
|
+
/* leafygreen CaretDown */
|
|
142
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${foldColor}' d='M8.679 10.796a.554.554 0 0 1-.858 0L4.64 6.976C4.32 6.594 4.582 6 5.069 6h6.362c.487 0 .748.594.43.976l-3.182 3.82z'/%3E%3C/svg%3E%0A");
|
|
143
|
+
background-size: 12px;
|
|
144
|
+
background-repeat: no-repeat;
|
|
145
|
+
background-position: center;
|
|
146
|
+
}
|
|
147
|
+
.ace_dark.ace-mongodb .ace_fold-widget {
|
|
148
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${foldColorDarkMode}' d='M8.679 10.796a.554.554 0 0 1-.858 0L4.64 6.976C4.32 6.594 4.582 6 5.069 6h6.362c.487 0 .748.594.43.976l-3.182 3.82z'/%3E%3C/svg%3E%0A");
|
|
149
|
+
}
|
|
150
|
+
.ace-mongodb .ace_fold-widget.ace_closed {
|
|
151
|
+
/* leafygreen CaretRight */
|
|
152
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${foldColor}' d='M10.796 7.321a.554.554 0 0 1 0 .858l-3.82 3.181c-.382.319-.976.058-.976-.429V4.57c0-.487.594-.748.976-.43l3.82 3.182z'/%3E%3C/svg%3E%0A");
|
|
153
|
+
}
|
|
154
|
+
.ace_dark.ace-mongodb .ace_fold-widget.ace_closed {
|
|
155
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${foldColorDarkMode}' d='M10.796 7.321a.554.554 0 0 1 0 .858l-3.82 3.181c-.382.319-.976.058-.976-.429V4.57c0-.487.594-.748.976-.43l3.82 3.182z'/%3E%3C/svg%3E%0A");
|
|
124
156
|
}
|
|
125
157
|
.ace-mongodb .ace_keyword {
|
|
126
158
|
color: var(--keyword-color);
|
package/dist/ace/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ace/theme.ts"],"names":[],"mappings":";;;AAAA,uEAAkE;AAElE,MAAM,uBAAuB,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ace/theme.ts"],"names":[],"mappings":"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"}
|
package/dist/ace/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/ace/util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEzD,QAAA,MAAM,MAAM,YACD,MAAM,WACN,wBAAwB,EAAE,UAC3B,MAAM,+
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/ace/util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEzD,QAAA,MAAM,MAAM,YACD,MAAM,WACN,wBAAwB,EAAE,UAC3B,MAAM,+BAYf,CAAC;AAKF,QAAA,MAAM,iBAAiB,4BAGtB,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/ace/util.js
CHANGED
|
@@ -8,11 +8,14 @@ const mongodb_constants_1 = require("@mongodb-js/mongodb-constants");
|
|
|
8
8
|
const semver_1 = __importDefault(require("semver"));
|
|
9
9
|
const filter = (version, entries, prefix) => {
|
|
10
10
|
const parsedVersion = semver_1.default.parse(version);
|
|
11
|
+
const cleanVersion = parsedVersion
|
|
12
|
+
? [parsedVersion.major, parsedVersion.minor, parsedVersion.patch].join('.')
|
|
13
|
+
: version;
|
|
11
14
|
return entries.filter((e) => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return e.
|
|
15
|
+
if (!e.name) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return e.name.startsWith(prefix) && semver_1.default.gte(cleanVersion, e.version);
|
|
16
19
|
});
|
|
17
20
|
};
|
|
18
21
|
exports.filter = filter;
|
package/dist/ace/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/ace/util.ts"],"names":[],"mappings":";;;;;;AAAA,qEAA4E;AAC5E,oDAA4B;AAG5B,MAAM,MAAM,GAAG,CACb,OAAe,EACf,OAAmC,EACnC,MAAc,EACd,EAAE;IACF,MAAM,aAAa,GAAG,gBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5C,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/ace/util.ts"],"names":[],"mappings":";;;;;;AAAA,qEAA4E;AAC5E,oDAA4B;AAG5B,MAAM,MAAM,GAAG,CACb,OAAe,EACf,OAAmC,EACnC,MAAc,EACd,EAAE;IACF,MAAM,aAAa,GAAG,gBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,aAAa;QAChC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3E,CAAC,CAAC,OAAO,CAAC;IACZ,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1B,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;YACX,OAAO,KAAK,CAAC;SACd;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,gBAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAUO,wBAAM;AALf,MAAM,iBAAiB,GAAI,EAAiC,CAAC,MAAM,CACjE,mCAAe,EACf,8BAAU,CACX,CAAC;AAEe,8CAAiB"}
|
package/dist/base-editor.d.ts
CHANGED
|
@@ -27,9 +27,10 @@ export declare type EditorProps = {
|
|
|
27
27
|
'data-testid'?: string;
|
|
28
28
|
onChangeText?: (text: string, event?: any) => void;
|
|
29
29
|
darkMode?: boolean;
|
|
30
|
+
editorClassName?: string;
|
|
30
31
|
} & Omit<IAceEditorProps, 'onChange' | 'value' | 'theme'>;
|
|
31
|
-
declare function BaseEditor({ text, variant, options, readOnly, id, name, commands: _commands, onChangeText, completer, 'data-testid': dataTestId, onFocus, darkMode: _darkMode, ...aceProps }: EditorProps): React.ReactElement;
|
|
32
|
+
declare function BaseEditor({ text, variant, options, readOnly, id, name, commands: _commands, onChangeText, completer, 'data-testid': dataTestId, onFocus, darkMode: _darkMode, className, editorClassName, ...aceProps }: EditorProps): React.ReactElement;
|
|
32
33
|
declare function setEditorValue(element: HTMLElement, value: string): void;
|
|
33
34
|
declare const EditorTextCompleter: any;
|
|
34
|
-
export { BaseEditor
|
|
35
|
+
export { BaseEditor, EditorVariant, EditorTextCompleter, setEditorValue };
|
|
35
36
|
//# sourceMappingURL=base-editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-editor.d.ts","sourceRoot":"","sources":["../src/base-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"base-editor.d.ts","sourceRoot":"","sources":["../src/base-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAShE,OAAO,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAY,MAAM,WAAW,CAAC;AAIxE,OAAO,8CAA8C,CAAC;AACtD,OAAO,2CAA2C,CAAC;AACnD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,oCAAoC,CAAC;AAE5C,OAAO,OAAO,CAAC;AAwBf,QAAA,MAAM,aAAa;;;;CAIT,CAAC;AAEX,oBAAY,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,OAAO,aAAa,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,IAAI,CACZ,WAAW,EACX,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,0BAA0B,CACpE,CAAC;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AAmD1D,iBAAS,UAAU,CAAC,EAClB,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,EACR,EAAE,EACF,IAAI,EACJ,QAAQ,EAAE,SAAS,EACnB,YAAY,EACZ,SAAS,EACT,aAAa,EAAE,UAAU,EACzB,OAAO,EACP,QAAQ,EAAE,SAAS,EACnB,SAAS,EACT,eAAe,EACf,GAAG,QAAQ,EACZ,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CAoElC;AAUD,iBAAS,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQjE;AAED,QAAA,MAAM,mBAAmB,KAAsB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/base-editor.js
CHANGED
|
@@ -26,9 +26,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.setEditorValue = exports.EditorTextCompleter = exports.EditorVariant = exports.
|
|
29
|
+
exports.setEditorValue = exports.EditorTextCompleter = exports.EditorVariant = exports.BaseEditor = void 0;
|
|
30
30
|
const react_1 = __importStar(require("react"));
|
|
31
31
|
const compass_components_1 = require("@mongodb-js/compass-components");
|
|
32
|
+
const compass_components_2 = require("@mongodb-js/compass-components");
|
|
32
33
|
require("ace-builds");
|
|
33
34
|
const react_ace_1 = __importDefault(require("react-ace"));
|
|
34
35
|
require("ace-builds/src-noconflict/ext-language_tools");
|
|
@@ -42,8 +43,8 @@ require("ace-builds/src-noconflict/mode-rust");
|
|
|
42
43
|
require("ace-builds/src-noconflict/mode-golang");
|
|
43
44
|
require("ace-builds/src-noconflict/mode-php");
|
|
44
45
|
const ext_language_tools_1 = __importDefault(require("ace-builds/src-noconflict/ext-language_tools"));
|
|
45
|
-
const ext_beautify_1 = __importDefault(require("ace-builds/src-noconflict/ext-beautify"));
|
|
46
46
|
require("./ace");
|
|
47
|
+
const prettify_1 = require("./prettify");
|
|
47
48
|
const DEFAULT_OPTIONS = {
|
|
48
49
|
enableLiveAutocompletion: false,
|
|
49
50
|
tabSize: 2,
|
|
@@ -52,7 +53,7 @@ const DEFAULT_OPTIONS = {
|
|
|
52
53
|
showGutter: true,
|
|
53
54
|
showPrintMargin: false,
|
|
54
55
|
useWorker: false,
|
|
55
|
-
fontFamily:
|
|
56
|
+
fontFamily: compass_components_2.fontFamilies.code,
|
|
56
57
|
fontSize: 13,
|
|
57
58
|
};
|
|
58
59
|
const EditorVariant = {
|
|
@@ -61,12 +62,47 @@ const EditorVariant = {
|
|
|
61
62
|
Generic: 'Generic',
|
|
62
63
|
};
|
|
63
64
|
exports.EditorVariant = EditorVariant;
|
|
64
|
-
const editorStyle = (0,
|
|
65
|
+
const editorStyle = (0, compass_components_2.css)({
|
|
66
|
+
lineHeight: `${compass_components_1.spacing[3]}px`,
|
|
67
|
+
minHeight: 'inherit',
|
|
65
68
|
position: 'relative',
|
|
66
69
|
width: '100%',
|
|
67
70
|
zIndex: 0,
|
|
68
71
|
});
|
|
69
|
-
|
|
72
|
+
const defaultCommands = [
|
|
73
|
+
{
|
|
74
|
+
name: 'prettify',
|
|
75
|
+
exec(editor) {
|
|
76
|
+
try {
|
|
77
|
+
const mode = editor.session.getMode().$id;
|
|
78
|
+
const format = mode.endsWith('/json')
|
|
79
|
+
? 'json'
|
|
80
|
+
: 'javascript-expression';
|
|
81
|
+
const code = (0, prettify_1.prettify)(editor.getValue(), format);
|
|
82
|
+
const currentSelection = editor.selection.toJSON();
|
|
83
|
+
editor.session.doc.setValue(code);
|
|
84
|
+
editor.selection.fromJSON(currentSelection);
|
|
85
|
+
}
|
|
86
|
+
catch (_a) {
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
bindKey: {
|
|
90
|
+
win: 'Ctrl-Shift-B',
|
|
91
|
+
mac: 'Ctrl-Shift-B',
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: 'copy-all',
|
|
96
|
+
exec(editor) {
|
|
97
|
+
void navigator.clipboard.writeText(editor.getValue());
|
|
98
|
+
},
|
|
99
|
+
bindKey: {
|
|
100
|
+
win: 'Ctrl-Shift-C',
|
|
101
|
+
mac: 'Ctrl-Shift-C',
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
];
|
|
105
|
+
function BaseEditor({ text, variant, options, readOnly, id, name, commands: _commands, onChangeText, completer, 'data-testid': dataTestId, onFocus, darkMode: _darkMode, className, editorClassName, ...aceProps }) {
|
|
70
106
|
const setOptions = {
|
|
71
107
|
...DEFAULT_OPTIONS,
|
|
72
108
|
...options,
|
|
@@ -75,7 +111,7 @@ function BaseEditor({ text, variant, options, readOnly, id, name, commands: _com
|
|
|
75
111
|
...(!!completer && { enableLiveAutocompletion: true }),
|
|
76
112
|
};
|
|
77
113
|
const editorRef = (0, react_1.useRef)(null);
|
|
78
|
-
const providerDarkMode = (0,
|
|
114
|
+
const providerDarkMode = (0, compass_components_2.useDarkMode)();
|
|
79
115
|
const darkMode = _darkMode !== null && _darkMode !== void 0 ? _darkMode : providerDarkMode;
|
|
80
116
|
(0, react_1.useLayoutEffect)(() => {
|
|
81
117
|
if (!editorRef.current) {
|
|
@@ -88,11 +124,11 @@ function BaseEditor({ text, variant, options, readOnly, id, name, commands: _com
|
|
|
88
124
|
editorRef.current.editor.textInput.getElement().id = id;
|
|
89
125
|
}
|
|
90
126
|
}, [id]);
|
|
91
|
-
const editorName = (0,
|
|
127
|
+
const editorName = (0, compass_components_2.useId)();
|
|
92
128
|
const commands = (0, react_1.useMemo)(() => {
|
|
93
|
-
return
|
|
129
|
+
return defaultCommands.concat(_commands !== null && _commands !== void 0 ? _commands : []);
|
|
94
130
|
}, [_commands]);
|
|
95
|
-
return (react_1.default.createElement("div", { "data-testid": dataTestId, className: editorStyle },
|
|
131
|
+
return (react_1.default.createElement("div", { "data-testid": dataTestId, className: (0, compass_components_1.cx)(editorStyle, className) },
|
|
96
132
|
react_1.default.createElement(react_ace_1.default, { ref: editorRef, mode: variant === 'Generic'
|
|
97
133
|
? undefined
|
|
98
134
|
: variant === 'EJSON'
|
|
@@ -102,9 +138,9 @@ function BaseEditor({ text, variant, options, readOnly, id, name, commands: _com
|
|
|
102
138
|
ext_language_tools_1.default.setCompleters([completer]);
|
|
103
139
|
}
|
|
104
140
|
onFocus === null || onFocus === void 0 ? void 0 : onFocus(ev);
|
|
105
|
-
}, ...aceProps })));
|
|
141
|
+
}, className: editorClassName, ...aceProps })));
|
|
106
142
|
}
|
|
107
|
-
exports.
|
|
143
|
+
exports.BaseEditor = BaseEditor;
|
|
108
144
|
function setEditorValue(element, value) {
|
|
109
145
|
const container = element.querySelector('.ace_editor');
|
|
110
146
|
if (!container) {
|
package/dist/base-editor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-editor.js","sourceRoot":"","sources":["../src/base-editor.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgE;AAChE,uEAKwC;AAExC,sBAAoB;AAEpB,0DAAkC;AAGlC,wDAAsD;AACtD,qDAAmD;AACnD,+CAA6C;AAC7C,iDAA+C;AAC/C,iDAA+C;AAC/C,+CAA6C;AAC7C,+CAA6C;AAC7C,+CAA6C;AAC7C,iDAA+C;AAC/C,8CAA4C;AAC5C,sGAAiE;AACjE,
|
|
1
|
+
{"version":3,"file":"base-editor.js","sourceRoot":"","sources":["../src/base-editor.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,4 +8,9 @@ export declare type AceEditor = Ace.Editor;
|
|
|
8
8
|
export declare type AceAnnotation = Ace.Annotation;
|
|
9
9
|
export type { CompletionWithServerInfo } from './types';
|
|
10
10
|
export { InlineEditor } from './inline-editor';
|
|
11
|
+
export { prettify } from './prettify';
|
|
12
|
+
export type { FormatOptions } from './prettify';
|
|
13
|
+
export { Editor } from './multiline-editor';
|
|
14
|
+
export { JSONEditor } from './json-editor';
|
|
15
|
+
export type { EditorView } from './json-editor';
|
|
11
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,oBAAY,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;AACnC,oBAAY,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC;AAC3C,YAAY,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,oBAAY,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;AACnC,oBAAY,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC;AAC3C,YAAY,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.InlineEditor = exports.AggregationAutoCompleter = exports.StageAutoCompleter = exports.QueryAutoCompleter = exports.ValidationAutoCompleter = void 0;
|
|
17
|
+
exports.JSONEditor = exports.Editor = exports.prettify = exports.InlineEditor = exports.AggregationAutoCompleter = exports.StageAutoCompleter = exports.QueryAutoCompleter = exports.ValidationAutoCompleter = void 0;
|
|
18
18
|
__exportStar(require("./base-editor"), exports);
|
|
19
19
|
var validation_autocompleter_1 = require("./ace/validation-autocompleter");
|
|
20
20
|
Object.defineProperty(exports, "ValidationAutoCompleter", { enumerable: true, get: function () { return validation_autocompleter_1.ValidationAutoCompleter; } });
|
|
@@ -26,4 +26,10 @@ var aggregation_autocompleter_1 = require("./ace/aggregation-autocompleter");
|
|
|
26
26
|
Object.defineProperty(exports, "AggregationAutoCompleter", { enumerable: true, get: function () { return aggregation_autocompleter_1.AggregationAutoCompleter; } });
|
|
27
27
|
var inline_editor_1 = require("./inline-editor");
|
|
28
28
|
Object.defineProperty(exports, "InlineEditor", { enumerable: true, get: function () { return inline_editor_1.InlineEditor; } });
|
|
29
|
+
var prettify_1 = require("./prettify");
|
|
30
|
+
Object.defineProperty(exports, "prettify", { enumerable: true, get: function () { return prettify_1.prettify; } });
|
|
31
|
+
var multiline_editor_1 = require("./multiline-editor");
|
|
32
|
+
Object.defineProperty(exports, "Editor", { enumerable: true, get: function () { return multiline_editor_1.Editor; } });
|
|
33
|
+
var json_editor_1 = require("./json-editor");
|
|
34
|
+
Object.defineProperty(exports, "JSONEditor", { enumerable: true, get: function () { return json_editor_1.JSONEditor; } });
|
|
29
35
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,gDAA8B;AAC9B,2EAAyE;AAAhE,mIAAA,uBAAuB,OAAA;AAChC,iEAA+D;AAAtD,yHAAA,kBAAkB,OAAA;AAC3B,iEAA+D;AAAtD,yHAAA,kBAAkB,OAAA;AAC3B,6EAA2E;AAAlE,qIAAA,wBAAwB,OAAA;AAIjC,iDAA+C;AAAtC,6GAAA,YAAY,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,gDAA8B;AAC9B,2EAAyE;AAAhE,mIAAA,uBAAuB,OAAA;AAChC,iEAA+D;AAAtD,yHAAA,kBAAkB,OAAA;AAC3B,iEAA+D;AAAtD,yHAAA,kBAAkB,OAAA;AAC3B,6EAA2E;AAAlE,qIAAA,wBAAwB,OAAA;AAIjC,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAEjB,uDAA4C;AAAnC,0GAAA,MAAM,OAAA;AACf,6CAA2C;AAAlC,yGAAA,UAAU,OAAA"}
|
package/dist/inline-editor.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { EditorProps } from './base-editor';
|
|
3
|
-
declare type InlineEditorProps =
|
|
3
|
+
declare type InlineEditorProps = Omit<EditorProps, 'options' | 'editorClassName'> & {
|
|
4
|
+
options?: Omit<EditorProps['options'], 'showGutter' | 'highlightActiveLine' | 'highlightGutterLine' | 'minLines'>;
|
|
5
|
+
};
|
|
4
6
|
declare const InlineEditor: React.FunctionComponent<InlineEditorProps>;
|
|
5
7
|
export { InlineEditor };
|
|
6
8
|
//# sourceMappingURL=inline-editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-editor.d.ts","sourceRoot":"","sources":["../src/inline-editor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inline-editor.d.ts","sourceRoot":"","sources":["../src/inline-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,aAAK,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,iBAAiB,CAAC,GAAG;IAC1E,OAAO,CAAC,EAAE,IAAI,CACZ,WAAW,CAAC,SAAS,CAAC,EACtB,YAAY,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,UAAU,CAC1E,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAmB5D,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/inline-editor.js
CHANGED
|
@@ -4,10 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.InlineEditor = void 0;
|
|
7
|
-
const compass_components_1 = require("@mongodb-js/compass-components");
|
|
8
7
|
const react_1 = __importDefault(require("react"));
|
|
9
8
|
const base_editor_1 = require("./base-editor");
|
|
10
|
-
const InlineEditor = ({ options,
|
|
9
|
+
const InlineEditor = ({ options, ...props }) => {
|
|
11
10
|
const inlineEditorOptions = {
|
|
12
11
|
maxLines: 10,
|
|
13
12
|
...options,
|
|
@@ -16,7 +15,7 @@ const InlineEditor = ({ options, className, ...props }) => {
|
|
|
16
15
|
highlightActiveLine: false,
|
|
17
16
|
highlightGutterLine: false,
|
|
18
17
|
};
|
|
19
|
-
return (react_1.default.createElement(base_editor_1.
|
|
18
|
+
return (react_1.default.createElement(base_editor_1.BaseEditor, { options: inlineEditorOptions, editorClassName: "inline-editor", ...props }));
|
|
20
19
|
};
|
|
21
20
|
exports.InlineEditor = InlineEditor;
|
|
22
21
|
//# sourceMappingURL=inline-editor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-editor.js","sourceRoot":"","sources":["../src/inline-editor.tsx"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"inline-editor.js","sourceRoot":"","sources":["../src/inline-editor.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,+CAA2C;AAS3C,MAAM,YAAY,GAA+C,CAAC,EAChE,OAAO,EACP,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,mBAAmB,GAAG;QAC1B,QAAQ,EAAE,EAAE;QACZ,GAAG,OAAO;QACV,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,KAAK;QACjB,mBAAmB,EAAE,KAAK;QAC1B,mBAAmB,EAAE,KAAK;KAC3B,CAAC;IACF,OAAO,CACL,8BAAC,wBAAU,IACT,OAAO,EAAE,mBAAmB,EAC5B,eAAe,EAAC,eAAe,KAC3B,KAAK,GACG,CACf,CAAC;AACJ,CAAC,CAAC;AAEO,oCAAY"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Command } from '@codemirror/view';
|
|
3
|
+
import { EditorView } from '@codemirror/view';
|
|
4
|
+
import { unfoldAll } from '@codemirror/language';
|
|
5
|
+
declare type EditorLanguage = 'json' | 'javascript';
|
|
6
|
+
declare type EditorProps = {
|
|
7
|
+
language?: EditorLanguage;
|
|
8
|
+
onChangeText?: (text: string, event?: any) => void;
|
|
9
|
+
onLoad?: (editor: EditorView) => void;
|
|
10
|
+
darkMode?: boolean;
|
|
11
|
+
inline?: boolean;
|
|
12
|
+
showLineNumbers?: boolean;
|
|
13
|
+
readOnly?: boolean;
|
|
14
|
+
className?: string;
|
|
15
|
+
'data-testid'?: string;
|
|
16
|
+
} & ({
|
|
17
|
+
text: string;
|
|
18
|
+
initialText?: never;
|
|
19
|
+
} | {
|
|
20
|
+
text?: never;
|
|
21
|
+
initialText: string;
|
|
22
|
+
});
|
|
23
|
+
declare const BaseEditor: React.FunctionComponent<EditorProps> & {
|
|
24
|
+
foldAll: typeof foldAll;
|
|
25
|
+
unfoldAll: typeof unfoldAll;
|
|
26
|
+
};
|
|
27
|
+
declare const foldAll: Command;
|
|
28
|
+
export type { EditorView };
|
|
29
|
+
export { BaseEditor as JSONEditor };
|
|
30
|
+
//# sourceMappingURL=json-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-editor.d.ts","sourceRoot":"","sources":["../src/json-editor.tsx"],"names":[],"mappings":"AAeA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAML,UAAU,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAKL,SAAS,EAOV,MAAM,sBAAsB,CAAC;AA6N9B,aAAK,cAAc,GAAG,MAAM,GAAG,YAAY,CAAC;AAE5C,aAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACnD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,CACA;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,GACrC;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CACxC,CAAC;AAOF,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG;IACvD,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,SAAS,CAAC;CAgN7B,CAAC;AAYF,QAAA,MAAM,OAAO,EAAE,OAgCd,CAAC;AAMF,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,OAAO,EAAE,UAAU,IAAI,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.JSONEditor = void 0;
|
|
27
|
+
const react_1 = __importStar(require("react"));
|
|
28
|
+
const view_1 = require("@codemirror/view");
|
|
29
|
+
const language_1 = require("@codemirror/language");
|
|
30
|
+
const commands_1 = require("@codemirror/commands");
|
|
31
|
+
const autocomplete_1 = require("@codemirror/autocomplete");
|
|
32
|
+
const compass_components_1 = require("@mongodb-js/compass-components");
|
|
33
|
+
const lang_javascript_1 = require("@codemirror/lang-javascript");
|
|
34
|
+
const lang_json_1 = require("@codemirror/lang-json");
|
|
35
|
+
const state_1 = require("@codemirror/state");
|
|
36
|
+
const language_2 = require("@codemirror/language");
|
|
37
|
+
const highlight_1 = require("@lezer/highlight");
|
|
38
|
+
const polished_1 = require("polished");
|
|
39
|
+
const editorStyle = (0, compass_components_1.css)({
|
|
40
|
+
fontSize: 13,
|
|
41
|
+
fontFamily: compass_components_1.fontFamilies.code,
|
|
42
|
+
});
|
|
43
|
+
const editorPalette = {
|
|
44
|
+
light: {
|
|
45
|
+
color: compass_components_1.codePalette.light[3],
|
|
46
|
+
backgroundColor: compass_components_1.codePalette.light[0],
|
|
47
|
+
gutterColor: compass_components_1.palette.gray.base,
|
|
48
|
+
gutterBackgroundColor: compass_components_1.palette.gray.light3,
|
|
49
|
+
gutterActiveLineBackgroundColor: (0, polished_1.rgba)(compass_components_1.palette.gray.light2, 0.5),
|
|
50
|
+
gutterFoldButtonColor: compass_components_1.palette.black,
|
|
51
|
+
cursorColor: compass_components_1.palette.gray.base,
|
|
52
|
+
activeLineBackgroundColor: (0, polished_1.rgba)(compass_components_1.palette.gray.light2, 0.5),
|
|
53
|
+
selectionBackgroundColor: compass_components_1.palette.blue.light2,
|
|
54
|
+
bracketBorderColor: compass_components_1.palette.gray.light1,
|
|
55
|
+
},
|
|
56
|
+
dark: {
|
|
57
|
+
color: compass_components_1.codePalette.dark[3],
|
|
58
|
+
backgroundColor: compass_components_1.codePalette.dark[0],
|
|
59
|
+
gutterColor: compass_components_1.palette.gray.light3,
|
|
60
|
+
gutterBackgroundColor: compass_components_1.palette.gray.dark3,
|
|
61
|
+
gutterActiveLineBackgroundColor: (0, polished_1.rgba)(compass_components_1.palette.gray.dark2, 0.5),
|
|
62
|
+
gutterFoldButtonColor: compass_components_1.palette.white,
|
|
63
|
+
cursorColor: compass_components_1.palette.green.base,
|
|
64
|
+
activeLineBackgroundColor: (0, polished_1.rgba)(compass_components_1.palette.gray.dark2, 0.5),
|
|
65
|
+
selectionBackgroundColor: compass_components_1.palette.gray.dark1,
|
|
66
|
+
bracketBorderColor: compass_components_1.palette.gray.light1,
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
function getStylesForTheme(theme) {
|
|
70
|
+
return view_1.EditorView.theme({
|
|
71
|
+
'&': {
|
|
72
|
+
color: editorPalette[theme].color,
|
|
73
|
+
backgroundColor: editorPalette[theme].backgroundColor,
|
|
74
|
+
},
|
|
75
|
+
'& .cm-scroller': {
|
|
76
|
+
lineHeight: `${compass_components_1.spacing[3]}px`,
|
|
77
|
+
},
|
|
78
|
+
'&.cm-editor.cm-focused': {
|
|
79
|
+
outline: 'none',
|
|
80
|
+
},
|
|
81
|
+
'& .cm-content': {
|
|
82
|
+
caretColor: editorPalette[theme].cursorColor,
|
|
83
|
+
},
|
|
84
|
+
'& .cm-activeLine': {
|
|
85
|
+
background: 'none',
|
|
86
|
+
},
|
|
87
|
+
'&.cm-focused .cm-activeLine': {
|
|
88
|
+
backgroundColor: editorPalette[theme].activeLineBackgroundColor,
|
|
89
|
+
},
|
|
90
|
+
'& .cm-gutters': {
|
|
91
|
+
color: editorPalette[theme].gutterColor,
|
|
92
|
+
backgroundColor: editorPalette[theme].gutterBackgroundColor,
|
|
93
|
+
border: 'none',
|
|
94
|
+
},
|
|
95
|
+
'& .cm-gutters > .cm-gutter:first-child > .cm-gutterElement': {
|
|
96
|
+
paddingLeft: `${compass_components_1.spacing[2]}px`,
|
|
97
|
+
},
|
|
98
|
+
'& .cm-gutters > .cm-gutter:last-child > .cm-gutterElement': {
|
|
99
|
+
paddingRight: `${compass_components_1.spacing[2]}px`,
|
|
100
|
+
},
|
|
101
|
+
'& .cm-activeLineGutter': {
|
|
102
|
+
background: 'none',
|
|
103
|
+
},
|
|
104
|
+
'&.cm-focused .cm-activeLineGutter': {
|
|
105
|
+
backgroundColor: editorPalette[theme].gutterActiveLineBackgroundColor,
|
|
106
|
+
},
|
|
107
|
+
'& .foldMarker': {
|
|
108
|
+
width: `${compass_components_1.spacing[3]}px`,
|
|
109
|
+
height: `${compass_components_1.spacing[3]}px`,
|
|
110
|
+
display: 'flex',
|
|
111
|
+
alignItems: 'center',
|
|
112
|
+
justifyContent: 'center',
|
|
113
|
+
cursor: 'pointer',
|
|
114
|
+
},
|
|
115
|
+
'& .foldMarker > svg': {
|
|
116
|
+
width: '12px',
|
|
117
|
+
height: '12px',
|
|
118
|
+
display: 'block',
|
|
119
|
+
color: editorPalette[theme].gutterFoldButtonColor,
|
|
120
|
+
},
|
|
121
|
+
'& .cm-selectionBackground': {
|
|
122
|
+
backgroundColor: editorPalette[theme].selectionBackgroundColor,
|
|
123
|
+
},
|
|
124
|
+
'&.cm-focused .cm-matchingBracket': {
|
|
125
|
+
background: 'none',
|
|
126
|
+
boxShadow: `0 0 0 1px ${editorPalette[theme].bracketBorderColor}`,
|
|
127
|
+
borderRadius: '2px',
|
|
128
|
+
},
|
|
129
|
+
'& .cm-selectionBackground:first-child': {
|
|
130
|
+
borderTopLeftRadius: '3px',
|
|
131
|
+
borderTopRightRadius: '3px',
|
|
132
|
+
},
|
|
133
|
+
'& .cm-selectionBackground:last-child': {
|
|
134
|
+
borderBottomLeftRadius: '3px',
|
|
135
|
+
borderBottomRightRadius: '3px',
|
|
136
|
+
},
|
|
137
|
+
'& .cm-cursor': {
|
|
138
|
+
borderLeft: '2px solid',
|
|
139
|
+
borderColor: editorPalette[theme].cursorColor,
|
|
140
|
+
marginLeft: '-1px',
|
|
141
|
+
},
|
|
142
|
+
}, { dark: theme === 'dark' });
|
|
143
|
+
}
|
|
144
|
+
const themeStyles = {
|
|
145
|
+
light: getStylesForTheme('light'),
|
|
146
|
+
dark: getStylesForTheme('dark'),
|
|
147
|
+
};
|
|
148
|
+
function getHighlightStyleForTheme(theme) {
|
|
149
|
+
return language_2.HighlightStyle.define([
|
|
150
|
+
{
|
|
151
|
+
tag: [
|
|
152
|
+
highlight_1.tags.null,
|
|
153
|
+
highlight_1.tags.controlKeyword,
|
|
154
|
+
highlight_1.tags.operatorKeyword,
|
|
155
|
+
highlight_1.tags.definitionKeyword,
|
|
156
|
+
highlight_1.tags.moduleKeyword,
|
|
157
|
+
highlight_1.tags.keyword,
|
|
158
|
+
highlight_1.tags.modifier,
|
|
159
|
+
],
|
|
160
|
+
color: compass_components_1.codePalette[theme][10],
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
tag: [highlight_1.tags.number, highlight_1.tags.bool, highlight_1.tags.function(highlight_1.tags.variableName), highlight_1.tags.regexp],
|
|
164
|
+
color: compass_components_1.codePalette[theme][9],
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
tag: [highlight_1.tags.string, highlight_1.tags.special(highlight_1.tags.string)],
|
|
168
|
+
color: compass_components_1.codePalette[theme][7],
|
|
169
|
+
fontWeight: 600,
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
tag: [highlight_1.tags.meta],
|
|
173
|
+
color: compass_components_1.codePalette[theme][6],
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
tag: [highlight_1.tags.propertyName, highlight_1.tags.atom, highlight_1.tags.self],
|
|
177
|
+
color: compass_components_1.codePalette[theme][5],
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
tag: [
|
|
181
|
+
highlight_1.tags.separator,
|
|
182
|
+
highlight_1.tags.squareBracket,
|
|
183
|
+
highlight_1.tags.brace,
|
|
184
|
+
highlight_1.tags.variableName,
|
|
185
|
+
highlight_1.tags.definition(highlight_1.tags.variableName),
|
|
186
|
+
highlight_1.tags.updateOperator,
|
|
187
|
+
highlight_1.tags.arithmeticOperator,
|
|
188
|
+
highlight_1.tags.logicOperator,
|
|
189
|
+
highlight_1.tags.bitwiseOperator,
|
|
190
|
+
highlight_1.tags.compareOperator,
|
|
191
|
+
highlight_1.tags.function(highlight_1.tags.punctuation),
|
|
192
|
+
highlight_1.tags.punctuation,
|
|
193
|
+
highlight_1.tags.paren,
|
|
194
|
+
highlight_1.tags.derefOperator,
|
|
195
|
+
],
|
|
196
|
+
color: compass_components_1.codePalette[theme][3],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
tag: [highlight_1.tags.lineComment, highlight_1.tags.blockComment],
|
|
200
|
+
color: compass_components_1.codePalette[theme][2],
|
|
201
|
+
fontStyle: 'italic',
|
|
202
|
+
},
|
|
203
|
+
], { themeType: theme });
|
|
204
|
+
}
|
|
205
|
+
const highlightStyles = {
|
|
206
|
+
light: getHighlightStyleForTheme('light'),
|
|
207
|
+
dark: getHighlightStyleForTheme('dark'),
|
|
208
|
+
};
|
|
209
|
+
const languages = {
|
|
210
|
+
json: lang_json_1.json,
|
|
211
|
+
javascript: lang_javascript_1.javascript,
|
|
212
|
+
};
|
|
213
|
+
const BaseEditor = ({ initialText: _initialText, text, onChangeText = () => {
|
|
214
|
+
}, language = 'json', showLineNumbers = true, darkMode: _darkMode, className, readOnly = false, onLoad = () => {
|
|
215
|
+
}, ...props }) => {
|
|
216
|
+
const darkMode = (0, compass_components_1.useDarkMode)(_darkMode);
|
|
217
|
+
const onChangeTextRef = (0, react_1.useRef)(onChangeText);
|
|
218
|
+
const onLoadRef = (0, react_1.useRef)(onLoad);
|
|
219
|
+
const initialReadOnly = (0, react_1.useRef)(readOnly);
|
|
220
|
+
const initialTextProvided = (0, react_1.useRef)(!!_initialText);
|
|
221
|
+
const initialText = (0, react_1.useRef)(_initialText !== null && _initialText !== void 0 ? _initialText : text);
|
|
222
|
+
const initialLanguage = (0, react_1.useRef)(language);
|
|
223
|
+
const initialDarkMode = (0, react_1.useRef)(darkMode);
|
|
224
|
+
const initialShowLineNumbers = (0, react_1.useRef)(showLineNumbers);
|
|
225
|
+
const containerRef = (0, react_1.useRef)(null);
|
|
226
|
+
const languageConfigRef = (0, react_1.useRef)();
|
|
227
|
+
const readOnlyConfigRef = (0, react_1.useRef)();
|
|
228
|
+
const themeConfigRef = (0, react_1.useRef)();
|
|
229
|
+
const showLineNumbersConfigRef = (0, react_1.useRef)();
|
|
230
|
+
const editorViewRef = (0, react_1.useRef)();
|
|
231
|
+
onChangeTextRef.current = onChangeText;
|
|
232
|
+
onLoadRef.current = onLoad;
|
|
233
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
234
|
+
if (!containerRef.current) {
|
|
235
|
+
throw new Error("Can't mount editor: DOM node is missing");
|
|
236
|
+
}
|
|
237
|
+
languageConfigRef.current = new state_1.Compartment();
|
|
238
|
+
readOnlyConfigRef.current = new state_1.Compartment();
|
|
239
|
+
themeConfigRef.current = new state_1.Compartment();
|
|
240
|
+
showLineNumbersConfigRef.current = new state_1.Compartment();
|
|
241
|
+
const editor = (editorViewRef.current = new view_1.EditorView({
|
|
242
|
+
doc: initialText.current,
|
|
243
|
+
extensions: [
|
|
244
|
+
showLineNumbersConfigRef.current.of(initialShowLineNumbers.current ? (0, view_1.lineNumbers)() : []),
|
|
245
|
+
(0, commands_1.history)(),
|
|
246
|
+
(0, language_1.foldGutter)({
|
|
247
|
+
markerDOM(open) {
|
|
248
|
+
const marker = document.createElement('span');
|
|
249
|
+
marker.className = `foldMarker foldMarker${open ? 'Open' : 'Closed'}`;
|
|
250
|
+
marker.ariaHidden = 'true';
|
|
251
|
+
marker.title = open ? 'Fold code block' : 'Unfold code block';
|
|
252
|
+
marker.innerHTML = open
|
|
253
|
+
? `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16"><path fill="currentColor" d="M8.679 10.796a.554.554 0 0 1-.858 0L4.64 6.976C4.32 6.594 4.582 6 5.069 6h6.362c.487 0 .748.594.43.976l-3.182 3.82z"/></svg>`
|
|
254
|
+
: `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16"><path fill="currentColor" d="M10.796 7.321a.554.554 0 0 1 0 .858l-3.82 3.181c-.382.319-.976.058-.976-.429V4.57c0-.487.594-.748.976-.43l3.82 3.182z"/></svg>`;
|
|
255
|
+
return marker;
|
|
256
|
+
},
|
|
257
|
+
}),
|
|
258
|
+
(0, view_1.drawSelection)(),
|
|
259
|
+
(0, language_1.indentOnInput)(),
|
|
260
|
+
(0, language_1.bracketMatching)(),
|
|
261
|
+
(0, autocomplete_1.closeBrackets)(),
|
|
262
|
+
(0, view_1.highlightActiveLine)(),
|
|
263
|
+
(0, view_1.highlightActiveLineGutter)(),
|
|
264
|
+
languageConfigRef.current.of(languages[initialLanguage.current]()),
|
|
265
|
+
(0, language_2.syntaxHighlighting)(highlightStyles['light']),
|
|
266
|
+
(0, language_2.syntaxHighlighting)(highlightStyles['dark']),
|
|
267
|
+
themeConfigRef.current.of(themeStyles[initialDarkMode.current ? 'dark' : 'light']),
|
|
268
|
+
view_1.keymap.of([
|
|
269
|
+
...commands_1.defaultKeymap,
|
|
270
|
+
...autocomplete_1.closeBracketsKeymap,
|
|
271
|
+
...commands_1.historyKeymap,
|
|
272
|
+
...language_1.foldKeymap,
|
|
273
|
+
commands_1.indentWithTab,
|
|
274
|
+
]),
|
|
275
|
+
readOnlyConfigRef.current.of(state_1.EditorState.readOnly.of(initialReadOnly.current)),
|
|
276
|
+
view_1.EditorView.updateListener.of((update) => {
|
|
277
|
+
var _a, _b;
|
|
278
|
+
if (update.docChanged) {
|
|
279
|
+
const text = (_b = (_a = editorViewRef.current) === null || _a === void 0 ? void 0 : _a.state.sliceDoc()) !== null && _b !== void 0 ? _b : '';
|
|
280
|
+
onChangeTextRef.current(text, update);
|
|
281
|
+
}
|
|
282
|
+
}),
|
|
283
|
+
],
|
|
284
|
+
parent: containerRef.current,
|
|
285
|
+
}));
|
|
286
|
+
containerRef.current._cm = editor;
|
|
287
|
+
onLoadRef.current(editor);
|
|
288
|
+
if (editor && initialLanguage.current === 'json') {
|
|
289
|
+
const docLength = editor.state.doc.length;
|
|
290
|
+
const isSyntaxTreeAvailable = (0, language_1.syntaxTreeAvailable)(editor.state, docLength) ||
|
|
291
|
+
(0, language_1.forceParsing)(editor, docLength, 150);
|
|
292
|
+
if (isSyntaxTreeAvailable) {
|
|
293
|
+
foldAll(editor);
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return () => {
|
|
299
|
+
editor.destroy();
|
|
300
|
+
};
|
|
301
|
+
}, []);
|
|
302
|
+
(0, compass_components_1.useEffectOnChange)(() => {
|
|
303
|
+
var _a, _b;
|
|
304
|
+
(_a = editorViewRef.current) === null || _a === void 0 ? void 0 : _a.dispatch({
|
|
305
|
+
effects: (_b = languageConfigRef.current) === null || _b === void 0 ? void 0 : _b.reconfigure(languages[language]()),
|
|
306
|
+
});
|
|
307
|
+
}, language);
|
|
308
|
+
(0, compass_components_1.useEffectOnChange)(() => {
|
|
309
|
+
var _a, _b;
|
|
310
|
+
(_a = editorViewRef.current) === null || _a === void 0 ? void 0 : _a.dispatch({
|
|
311
|
+
effects: (_b = readOnlyConfigRef.current) === null || _b === void 0 ? void 0 : _b.reconfigure(state_1.EditorState.readOnly.of(readOnly)),
|
|
312
|
+
});
|
|
313
|
+
}, readOnly);
|
|
314
|
+
(0, compass_components_1.useEffectOnChange)(() => {
|
|
315
|
+
var _a, _b;
|
|
316
|
+
(_a = editorViewRef.current) === null || _a === void 0 ? void 0 : _a.dispatch({
|
|
317
|
+
effects: (_b = themeConfigRef.current) === null || _b === void 0 ? void 0 : _b.reconfigure(themeStyles[darkMode ? 'dark' : 'light']),
|
|
318
|
+
});
|
|
319
|
+
}, darkMode);
|
|
320
|
+
(0, compass_components_1.useEffectOnChange)(() => {
|
|
321
|
+
var _a, _b;
|
|
322
|
+
(_a = editorViewRef.current) === null || _a === void 0 ? void 0 : _a.dispatch({
|
|
323
|
+
effects: (_b = showLineNumbersConfigRef.current) === null || _b === void 0 ? void 0 : _b.reconfigure(showLineNumbers ? (0, view_1.lineNumbers)() : []),
|
|
324
|
+
});
|
|
325
|
+
}, showLineNumbers);
|
|
326
|
+
(0, react_1.useEffect)(() => {
|
|
327
|
+
var _a, _b;
|
|
328
|
+
if (initialTextProvided.current) {
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
if (text !== ((_a = editorViewRef.current) === null || _a === void 0 ? void 0 : _a.state.sliceDoc())) {
|
|
332
|
+
(_b = editorViewRef.current) === null || _b === void 0 ? void 0 : _b.dispatch({
|
|
333
|
+
changes: {
|
|
334
|
+
from: 0,
|
|
335
|
+
to: editorViewRef.current.state.doc.length,
|
|
336
|
+
insert: text,
|
|
337
|
+
},
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
}, [text]);
|
|
341
|
+
return (react_1.default.createElement("div", { ref: containerRef, className: (0, compass_components_1.cx)(editorStyle, className), "data-codemirror": "true", ...props }));
|
|
342
|
+
};
|
|
343
|
+
exports.JSONEditor = BaseEditor;
|
|
344
|
+
function isTopNode(node) {
|
|
345
|
+
return !node
|
|
346
|
+
? true
|
|
347
|
+
: node.name === 'Array' || node.name === 'Property'
|
|
348
|
+
? false
|
|
349
|
+
: node.name === 'JsonText'
|
|
350
|
+
? true
|
|
351
|
+
: isTopNode(node.parent);
|
|
352
|
+
}
|
|
353
|
+
const foldAll = (editor) => {
|
|
354
|
+
const foldableProperties = [];
|
|
355
|
+
(0, language_1.syntaxTree)(editor.state).iterate({
|
|
356
|
+
enter(nodeRef) {
|
|
357
|
+
if (['{', '['].includes(String(nodeRef.name)) &&
|
|
358
|
+
(0, language_1.foldable)(editor.state, nodeRef.from, nodeRef.to) &&
|
|
359
|
+
!isTopNode(nodeRef.node)) {
|
|
360
|
+
if (!nodeRef.node.parent) {
|
|
361
|
+
throw new Error('Trying to fold node without parent');
|
|
362
|
+
}
|
|
363
|
+
const range = (0, language_1.foldInside)(nodeRef.node.parent);
|
|
364
|
+
if (range) {
|
|
365
|
+
foldableProperties.push(range);
|
|
366
|
+
}
|
|
367
|
+
return false;
|
|
368
|
+
}
|
|
369
|
+
},
|
|
370
|
+
});
|
|
371
|
+
if (foldableProperties.length > 0) {
|
|
372
|
+
editor.dispatch({
|
|
373
|
+
effects: foldableProperties.map((range) => {
|
|
374
|
+
return language_1.foldEffect.of(range);
|
|
375
|
+
}),
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
return !!foldableProperties.length;
|
|
379
|
+
};
|
|
380
|
+
BaseEditor.foldAll = foldAll;
|
|
381
|
+
BaseEditor.unfoldAll = language_1.unfoldAll;
|
|
382
|
+
//# sourceMappingURL=json-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-editor.js","sourceRoot":"","sources":["../src/json-editor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { IconGlyph } from '@mongodb-js/compass-components';
|
|
2
|
+
import type { Ace } from 'ace-builds';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import type { EditorProps as BaseEditorProps } from './base-editor';
|
|
5
|
+
declare type CustomActionItem = {
|
|
6
|
+
icon: IconGlyph;
|
|
7
|
+
action: string;
|
|
8
|
+
label: string;
|
|
9
|
+
};
|
|
10
|
+
declare type EditorProps = Omit<BaseEditorProps, 'editorClassName'> & {
|
|
11
|
+
copyable?: boolean;
|
|
12
|
+
formattable?: boolean;
|
|
13
|
+
customActions?: CustomActionItem[];
|
|
14
|
+
onAction?: (editor: Ace.Editor | undefined, action: string) => void;
|
|
15
|
+
};
|
|
16
|
+
declare const MultilineEditor: React.FunctionComponent<EditorProps>;
|
|
17
|
+
export { MultilineEditor as Editor };
|
|
18
|
+
//# sourceMappingURL=multiline-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiline-editor.d.ts","sourceRoot":"","sources":["../src/multiline-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAIhE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,eAAe,CAAC;AAqHpE,aAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,aAAK,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,GAAG;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrE,CAAC;AAiDF,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CA2EzD,CAAC;AAEF,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.Editor = void 0;
|
|
27
|
+
const compass_components_1 = require("@mongodb-js/compass-components");
|
|
28
|
+
const compass_components_2 = require("@mongodb-js/compass-components");
|
|
29
|
+
const compass_components_3 = require("@mongodb-js/compass-components");
|
|
30
|
+
const react_1 = __importStar(require("react"));
|
|
31
|
+
const base_editor_1 = require("./base-editor");
|
|
32
|
+
const actionButtonStyle = (0, compass_components_2.css)({
|
|
33
|
+
flex: 'none',
|
|
34
|
+
});
|
|
35
|
+
const actionButtonContentStyle = (0, compass_components_2.css)({
|
|
36
|
+
position: 'relative',
|
|
37
|
+
});
|
|
38
|
+
const actionButtonIconContainerStyle = (0, compass_components_2.css)({
|
|
39
|
+
opacity: 1,
|
|
40
|
+
width: 14,
|
|
41
|
+
height: 14,
|
|
42
|
+
transition: 'opacity .2s linear',
|
|
43
|
+
});
|
|
44
|
+
const actionButtonIconContainerHiddenStyle = (0, compass_components_2.css)({
|
|
45
|
+
opacity: 0,
|
|
46
|
+
});
|
|
47
|
+
const actionButtonClickResultIconStyle = (0, compass_components_2.css)({
|
|
48
|
+
position: 'absolute',
|
|
49
|
+
width: 14,
|
|
50
|
+
height: 14,
|
|
51
|
+
top: 0,
|
|
52
|
+
pointerEvents: 'none',
|
|
53
|
+
opacity: 1,
|
|
54
|
+
transition: 'opacity .2s linear',
|
|
55
|
+
});
|
|
56
|
+
const actionButtonClickResultIconHiddenStyle = (0, compass_components_2.css)({
|
|
57
|
+
opacity: 0,
|
|
58
|
+
});
|
|
59
|
+
const ActionButton = ({ label, icon, onClick }) => {
|
|
60
|
+
const [clickResult, setClickResult] = (0, react_1.useState)('success');
|
|
61
|
+
const [clickResultVisible, setClickResultVisible] = (0, react_1.useState)(false);
|
|
62
|
+
const onButtonClick = (0, react_1.useCallback)((...args) => {
|
|
63
|
+
const result = onClick(...args);
|
|
64
|
+
if (typeof result === 'boolean') {
|
|
65
|
+
setClickResult(result ? 'success' : 'error');
|
|
66
|
+
setClickResultVisible(true);
|
|
67
|
+
}
|
|
68
|
+
}, [onClick]);
|
|
69
|
+
(0, react_1.useEffect)(() => {
|
|
70
|
+
if (!clickResultVisible) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const timeoutId = setTimeout(() => {
|
|
74
|
+
setClickResultVisible(false);
|
|
75
|
+
}, 1000);
|
|
76
|
+
return () => {
|
|
77
|
+
clearTimeout(timeoutId);
|
|
78
|
+
};
|
|
79
|
+
}, [clickResultVisible]);
|
|
80
|
+
return (react_1.default.createElement(compass_components_3.Button, { size: "xsmall", "aria-label": label, title: label, onClick: onButtonClick, className: actionButtonStyle },
|
|
81
|
+
react_1.default.createElement("div", { className: actionButtonContentStyle },
|
|
82
|
+
react_1.default.createElement("div", { className: (0, compass_components_1.cx)(actionButtonIconContainerStyle, clickResultVisible && actionButtonIconContainerHiddenStyle) }, typeof icon === 'string' ? (react_1.default.createElement(compass_components_3.Icon, { size: "small", role: "presentation", title: null, glyph: icon })) : (icon)),
|
|
83
|
+
react_1.default.createElement("div", { className: (0, compass_components_1.cx)(actionButtonClickResultIconStyle, !clickResultVisible && actionButtonClickResultIconHiddenStyle) },
|
|
84
|
+
react_1.default.createElement(compass_components_3.Icon, { size: "small", glyph: clickResult === 'success' ? 'Checkmark' : 'X' })))));
|
|
85
|
+
};
|
|
86
|
+
const FormatIcon = ({ size = 16, ...props }) => (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", width: size, height: size, viewBox: "0 0 16 16", ...props },
|
|
87
|
+
react_1.default.createElement("path", { fill: "currentColor", d: "M2 4a1 1 0 0 1 1-1h2a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Zm0 4a1 1 0 0 1 1-1h6a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Zm1 3a1 1 0 1 0 0 2h10a1 1 0 1 0 0-2H3Zm4-7a1 1 0 0 1 1-1h5a1 1 0 1 1 0 2H8a1 1 0 0 1-1-1Zm4 4a1 1 0 0 1 1-1h1a1 1 0 1 1 0 2h-1a1 1 0 0 1-1-1Z" })));
|
|
88
|
+
const multilineEditorContainerStyle = (0, compass_components_2.css)({
|
|
89
|
+
position: 'relative',
|
|
90
|
+
height: '100%',
|
|
91
|
+
[`&:focus-within > .multiline-editor-actions,
|
|
92
|
+
&:hover > .multiline-editor-actions`]: {
|
|
93
|
+
display: 'flex',
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
const editorContainerStyle = (0, compass_components_2.css)({
|
|
97
|
+
overflow: 'auto',
|
|
98
|
+
paddingTop: compass_components_2.spacing[1],
|
|
99
|
+
height: `calc(100% - ${compass_components_2.spacing[1]}px)`,
|
|
100
|
+
minHeight: 'inherit',
|
|
101
|
+
});
|
|
102
|
+
const actionsContainerStyle = (0, compass_components_2.css)({
|
|
103
|
+
position: 'absolute',
|
|
104
|
+
top: compass_components_2.spacing[1],
|
|
105
|
+
right: compass_components_2.spacing[2],
|
|
106
|
+
display: 'none',
|
|
107
|
+
gap: compass_components_2.spacing[2],
|
|
108
|
+
});
|
|
109
|
+
const MultilineEditor = ({ copyable = true, formattable = true, customActions = [], onAction, onLoad, className, ...props }) => {
|
|
110
|
+
const editorRef = (0, react_1.useRef)();
|
|
111
|
+
const actions = (0, react_1.useMemo)(() => {
|
|
112
|
+
return [
|
|
113
|
+
copyable && (react_1.default.createElement(ActionButton, { key: "Copy", label: "Copy", icon: "Copy", onClick: () => {
|
|
114
|
+
var _a;
|
|
115
|
+
(_a = editorRef.current) === null || _a === void 0 ? void 0 : _a.execCommand('copy-all');
|
|
116
|
+
return true;
|
|
117
|
+
} })),
|
|
118
|
+
formattable && (react_1.default.createElement(ActionButton, { key: "Format", label: "Format", icon: react_1.default.createElement(FormatIcon, { size: 14, role: "presentation" }), onClick: () => {
|
|
119
|
+
var _a;
|
|
120
|
+
(_a = editorRef.current) === null || _a === void 0 ? void 0 : _a.execCommand('prettify');
|
|
121
|
+
return true;
|
|
122
|
+
} })),
|
|
123
|
+
...customActions.map((action) => {
|
|
124
|
+
return (react_1.default.createElement(ActionButton, { key: action.action, icon: action.icon, label: action.label, onClick: () => {
|
|
125
|
+
onAction === null || onAction === void 0 ? void 0 : onAction(editorRef.current, action.action);
|
|
126
|
+
} }));
|
|
127
|
+
}),
|
|
128
|
+
];
|
|
129
|
+
}, [copyable, formattable, customActions, onAction]);
|
|
130
|
+
return (react_1.default.createElement("div", { className: (0, compass_components_1.cx)(multilineEditorContainerStyle, className) },
|
|
131
|
+
react_1.default.createElement("div", { className: editorContainerStyle },
|
|
132
|
+
react_1.default.createElement(base_editor_1.BaseEditor, { onLoad: (editor) => {
|
|
133
|
+
editorRef.current = editor;
|
|
134
|
+
onLoad === null || onLoad === void 0 ? void 0 : onLoad(editor);
|
|
135
|
+
}, ...props })),
|
|
136
|
+
actions.length > 0 && (react_1.default.createElement("div", { className: (0, compass_components_1.cx)('multiline-editor-actions', actionsContainerStyle) }, actions))));
|
|
137
|
+
};
|
|
138
|
+
exports.Editor = MultilineEditor;
|
|
139
|
+
//# sourceMappingURL=multiline-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiline-editor.js","sourceRoot":"","sources":["../src/multiline-editor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Options as PrettierFormatOptions } from 'prettier';
|
|
2
|
+
export declare type FormatOptions = Omit<PrettierFormatOptions, 'plugin' | 'parser'>;
|
|
3
|
+
export declare function prettify(code: string, parser?: 'javascript-expression' | 'javascript' | 'json', formatOptions?: FormatOptions): string;
|
|
4
|
+
//# sourceMappingURL=prettify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prettify.d.ts","sourceRoot":"","sources":["../src/prettify.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjE,oBAAY,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAE7E,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,MAAM,GACF,uBAAuB,GACvB,YAAY,GACZ,MAAgC,EACpC,aAAa,GAAE,aAAkB,UAoBlC"}
|
package/dist/prettify.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.prettify = void 0;
|
|
7
|
+
const standalone_1 = __importDefault(require("prettier/standalone"));
|
|
8
|
+
const parser_babel_1 = __importDefault(require("prettier/parser-babel"));
|
|
9
|
+
function prettify(code, parser = 'javascript-expression', formatOptions = {}) {
|
|
10
|
+
return standalone_1.default
|
|
11
|
+
.format(code, {
|
|
12
|
+
plugins: [parser_babel_1.default],
|
|
13
|
+
printWidth: 50,
|
|
14
|
+
parser: parser === 'javascript-expression'
|
|
15
|
+
?
|
|
16
|
+
'__js_expression'
|
|
17
|
+
: parser === 'json'
|
|
18
|
+
? 'json'
|
|
19
|
+
: 'babel',
|
|
20
|
+
...formatOptions,
|
|
21
|
+
})
|
|
22
|
+
.trim();
|
|
23
|
+
}
|
|
24
|
+
exports.prettify = prettify;
|
|
25
|
+
//# sourceMappingURL=prettify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prettify.js","sourceRoot":"","sources":["../src/prettify.ts"],"names":[],"mappings":";;;;;;AAAA,qEAA2C;AAC3C,yEAAgD;AAKhD,SAAgB,QAAQ,CACtB,IAAY,EACZ,SAGa,uBAAuB,EACpC,gBAA+B,EAAE;IAEjC,OAAO,oBAAQ;SACZ,MAAM,CAAC,IAAI,EAAE;QACZ,OAAO,EAAE,CAAC,sBAAW,CAAC;QACtB,UAAU,EAAE,EAAE;QACd,MAAM,EACJ,MAAM,KAAK,uBAAuB;YAChC,CAAC;gBAKC,iBAAiB;YACnB,CAAC,CAAC,MAAM,KAAK,MAAM;gBACnB,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,OAAO;QACb,GAAG,aAAa;KACjB,CAAC;SACD,IAAI,EAAE,CAAC;AACZ,CAAC;AA1BD,4BA0BC"}
|
package/package.json
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"email": "compass@mongodb.com"
|
|
14
14
|
},
|
|
15
15
|
"homepage": "https://github.com/mongodb-js/compass",
|
|
16
|
-
"version": "0.
|
|
16
|
+
"version": "0.4.0",
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|
|
19
19
|
"url": "https://github.com/mongodb-js/compass.git"
|
|
@@ -45,13 +45,17 @@
|
|
|
45
45
|
"test-ci": "npm run test-cov",
|
|
46
46
|
"reformat": "npm run prettier -- --write ."
|
|
47
47
|
},
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"react": "^17.0.2"
|
|
50
|
+
},
|
|
48
51
|
"devDependencies": {
|
|
49
|
-
"@mongodb-js/eslint-config-compass": "^1.0.
|
|
50
|
-
"@mongodb-js/mocha-config-compass": "^1.0.
|
|
52
|
+
"@mongodb-js/eslint-config-compass": "^1.0.2",
|
|
53
|
+
"@mongodb-js/mocha-config-compass": "^1.0.2",
|
|
51
54
|
"@mongodb-js/prettier-config-compass": "^1.0.0",
|
|
52
55
|
"@mongodb-js/tsconfig-compass": "^1.0.1",
|
|
53
56
|
"@types/chai": "^4.2.21",
|
|
54
57
|
"@types/mocha": "^9.0.0",
|
|
58
|
+
"@types/prettier": "^2.7.1",
|
|
55
59
|
"@types/sinon-chai": "^3.2.5",
|
|
56
60
|
"chai": "^4.3.6",
|
|
57
61
|
"depcheck": "^1.4.1",
|
|
@@ -63,12 +67,20 @@
|
|
|
63
67
|
"typescript": "^4.8.3"
|
|
64
68
|
},
|
|
65
69
|
"dependencies": {
|
|
66
|
-
"@
|
|
67
|
-
"@
|
|
70
|
+
"@codemirror/autocomplete": "^6.4.0",
|
|
71
|
+
"@codemirror/commands": "^6.1.2",
|
|
72
|
+
"@codemirror/lang-javascript": "^6.1.2",
|
|
73
|
+
"@codemirror/lang-json": "^6.0.1",
|
|
74
|
+
"@codemirror/language": "^6.3.2",
|
|
75
|
+
"@codemirror/state": "^6.1.4",
|
|
76
|
+
"@codemirror/view": "^6.7.1",
|
|
77
|
+
"@lezer/highlight": "^1.1.3",
|
|
78
|
+
"@mongodb-js/compass-components": "^1.5.0",
|
|
79
|
+
"@mongodb-js/mongodb-constants": "^0.1.5",
|
|
68
80
|
"ace-builds": "^1.11.2",
|
|
69
|
-
"
|
|
81
|
+
"polished": "^4.2.2",
|
|
70
82
|
"react-ace": "^9.5.0",
|
|
71
83
|
"semver": "^7.3.8"
|
|
72
84
|
},
|
|
73
|
-
"gitHead": "
|
|
85
|
+
"gitHead": "cfe9a829fd77fc84e090f2c7b38663167071ebc5"
|
|
74
86
|
}
|