@omegagrid/code 0.10.2 → 0.10.5
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/components/code.d.ts +35 -0
- package/dist/components/code.d.ts.map +1 -0
- package/dist/components/code.js +229 -0
- package/dist/components/code.js.map +1 -0
- package/dist/components/codeBlock.d.ts +208 -0
- package/dist/components/codeBlock.d.ts.map +1 -0
- package/dist/components/codeBlock.js +211 -0
- package/dist/components/codeBlock.js.map +1 -0
- package/dist/components/codeDiff.d.ts +35 -0
- package/dist/components/codeDiff.d.ts.map +1 -0
- package/dist/components/codeDiff.js +243 -0
- package/dist/components/codeDiff.js.map +1 -0
- package/dist/components/codeView.d.ts +19 -0
- package/dist/components/codeView.d.ts.map +1 -0
- package/dist/components/codeView.js +85 -0
- package/dist/components/codeView.js.map +1 -0
- package/dist/components/codeView.style.d.ts +2 -0
- package/dist/components/codeView.style.d.ts.map +1 -0
- package/dist/components/codeView.style.js +70 -0
- package/dist/components/codeView.style.js.map +1 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +6 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/shared.d.ts +9 -0
- package/dist/components/shared.d.ts.map +1 -0
- package/dist/components/shared.js +8 -0
- package/dist/components/shared.js.map +1 -0
- package/dist/constants.d.ts +47 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +5 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/loader.d.ts +24 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +45 -0
- package/dist/loader.js.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +5 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +20 -0
- package/dist/utils.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Layout } from '@omegagrid/core';
|
|
2
|
+
import { LitElement } from 'lit';
|
|
3
|
+
import type * as monaco from 'monaco-editor';
|
|
4
|
+
import { CssPosition } from '@omegagrid/core';
|
|
5
|
+
export declare class Code extends LitElement implements Layout {
|
|
6
|
+
#private;
|
|
7
|
+
static defaultZIndex: number;
|
|
8
|
+
static styles: import("lit").CSSResult;
|
|
9
|
+
static monaco: typeof monaco;
|
|
10
|
+
get monaco(): typeof monaco;
|
|
11
|
+
get editor(): monaco.editor.IStandaloneCodeEditor;
|
|
12
|
+
get model(): monaco.editor.ITextModel;
|
|
13
|
+
get options(): monaco.editor.IStandaloneEditorConstructionOptions;
|
|
14
|
+
set options(val: monaco.editor.IStandaloneEditorConstructionOptions);
|
|
15
|
+
positionOffset: CssPosition;
|
|
16
|
+
get content(): string;
|
|
17
|
+
set content(val: string);
|
|
18
|
+
get language(): string;
|
|
19
|
+
set language(val: string);
|
|
20
|
+
get selectedContent(): string;
|
|
21
|
+
get container(): HTMLDivElement;
|
|
22
|
+
get theme(): "vs" | "vs-dark";
|
|
23
|
+
zIndex: number;
|
|
24
|
+
getOptions: () => monaco.editor.IStandaloneEditorConstructionOptions;
|
|
25
|
+
showContainer(): void;
|
|
26
|
+
hideContainer(): void;
|
|
27
|
+
initEditor(): Promise<void>;
|
|
28
|
+
updated(): Promise<void>;
|
|
29
|
+
connectedCallback(): void;
|
|
30
|
+
disconnectedCallback(): void;
|
|
31
|
+
layout(): void;
|
|
32
|
+
dispose(): void;
|
|
33
|
+
focus(): void;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=code.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/components/code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,MAAM,EAA2B,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAO,MAAM,KAAK,CAAC;AAGtC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAqB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKjE,qBACa,IAAK,SAAQ,UAAW,YAAW,MAAM;;IAErD,OAAc,aAAa,SAAS;IAEpC,MAAM,CAAC,MAAM,0BAQX;IAEF,MAAM,CAAC,MAAM,EAAE,OAAO,MAAM,CAAC;IAC7B,IAAI,MAAM,kBAAyB;IAGnC,IAAI,MAAM,wCAA0B;IACpC,IAAI,KAAK,6BAAsC;IAG/C,IACI,OAAO,IACM,MAAM,CAAC,MAAM,CAAC,oCAAoC,CAD7B;IACtC,IAAI,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,oCAAoC,EAGlE;IAGD,cAAc,EAAE,WAAW,CAA8B;IAEzD,IACI,OAAO,IACM,MAAM,CADwD;IAC/E,IAAI,OAAO,CAAC,GAAG,EAAE,MAAM,EAQtB;IAGD,IACI,QAAQ,IACM,MAAM,CADgB;IACxC,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,EAKvB;IAED,IAAI,eAAe,WAKlB;IASD,IAAI,SAAS,mBAER;IACL,IAAI,KAAK,qBAA+E;IAMxF,MAAM,SAAsB;IAE5B,UAAU,QAAO,MAAM,CAAC,MAAM,CAAC,oCAAoC,CAQhE;IAEH,aAAa;IAMb,aAAa;IAIP,UAAU;IAkDV,OAAO;IAKb,iBAAiB;IAUjB,oBAAoB;IAKpB,MAAM;IAmBN,OAAO;IAQP,KAAK;CAIL"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
13
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
14
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
15
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
16
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
17
|
+
};
|
|
18
|
+
var _Code_editor, _Code_options, _Code_language, _Code_preventChangeEvent, _Code_state, _Code_content, _Code_selection, _Code_scrollPosition, _Code_container, _Code_onStyleChange;
|
|
19
|
+
var Code_1;
|
|
20
|
+
import { dom, getThemeManager, events } from '@omegagrid/core';
|
|
21
|
+
import { LitElement, css } from 'lit';
|
|
22
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
23
|
+
import { MonacoLoader } from '../loader';
|
|
24
|
+
import { getDefaultOptions } from '@omegagrid/core';
|
|
25
|
+
import { CodeEvent } from './shared';
|
|
26
|
+
const VISIBILITY_THRESHOLD_SIZE = 10; // minimum width/height to show the editor
|
|
27
|
+
let Code = Code_1 = class Code extends LitElement {
|
|
28
|
+
constructor() {
|
|
29
|
+
super(...arguments);
|
|
30
|
+
_Code_editor.set(this, void 0);
|
|
31
|
+
_Code_options.set(this, void 0);
|
|
32
|
+
this.positionOffset = { t: 1, l: 1, r: -1, b: -1 };
|
|
33
|
+
_Code_language.set(this, 'typescript');
|
|
34
|
+
_Code_preventChangeEvent.set(this, false);
|
|
35
|
+
_Code_state.set(this, 0); // 0: initial, 1: initializing, 2: initialized
|
|
36
|
+
_Code_content.set(this, void 0);
|
|
37
|
+
_Code_selection.set(this, void 0);
|
|
38
|
+
_Code_scrollPosition.set(this, void 0);
|
|
39
|
+
_Code_container.set(this, void 0);
|
|
40
|
+
_Code_onStyleChange.set(this, () => {
|
|
41
|
+
__classPrivateFieldGet(this, _Code_editor, "f").updateOptions({ theme: this.theme });
|
|
42
|
+
});
|
|
43
|
+
this.zIndex = Code_1.defaultZIndex;
|
|
44
|
+
this.getOptions = () => ({
|
|
45
|
+
...this.options,
|
|
46
|
+
theme: this.theme,
|
|
47
|
+
language: __classPrivateFieldGet(this, _Code_language, "f"),
|
|
48
|
+
fontSize: getDefaultOptions().fontSize,
|
|
49
|
+
// workaround for caret positioning issue in chrome
|
|
50
|
+
// https://github.com/microsoft/monaco-editor/issues/3217#issuecomment-1511978166
|
|
51
|
+
fontLigatures: ''
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
get monaco() { return Code_1.monaco; }
|
|
55
|
+
get editor() { return __classPrivateFieldGet(this, _Code_editor, "f"); }
|
|
56
|
+
get model() { return __classPrivateFieldGet(this, _Code_editor, "f")?.getModel(); }
|
|
57
|
+
get options() { return __classPrivateFieldGet(this, _Code_options, "f"); }
|
|
58
|
+
set options(val) {
|
|
59
|
+
__classPrivateFieldSet(this, _Code_options, val, "f");
|
|
60
|
+
__classPrivateFieldGet(this, _Code_editor, "f")?.updateOptions(val);
|
|
61
|
+
}
|
|
62
|
+
get content() { return __classPrivateFieldGet(this, _Code_editor, "f") ? __classPrivateFieldGet(this, _Code_editor, "f").getValue() : __classPrivateFieldGet(this, _Code_content, "f"); }
|
|
63
|
+
set content(val) {
|
|
64
|
+
if (val == null)
|
|
65
|
+
val = '';
|
|
66
|
+
if (__classPrivateFieldGet(this, _Code_editor, "f")) {
|
|
67
|
+
__classPrivateFieldSet(this, _Code_preventChangeEvent, true, "f");
|
|
68
|
+
__classPrivateFieldGet(this, _Code_editor, "f")?.setValue(val);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
__classPrivateFieldSet(this, _Code_content, val, "f");
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
get language() { return __classPrivateFieldGet(this, _Code_language, "f"); }
|
|
75
|
+
set language(val) {
|
|
76
|
+
__classPrivateFieldSet(this, _Code_language, val, "f");
|
|
77
|
+
if (this.model) {
|
|
78
|
+
MonacoLoader.get().then(monaco => monaco.editor.setModelLanguage(this.model, val));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
get selectedContent() {
|
|
82
|
+
if (!__classPrivateFieldGet(this, _Code_editor, "f"))
|
|
83
|
+
return __classPrivateFieldGet(this, _Code_content, "f");
|
|
84
|
+
const selectedCodeChunks = __classPrivateFieldGet(this, _Code_editor, "f").getSelections().map(selection => this.model.getValueInRange(selection));
|
|
85
|
+
const selectedCode = selectedCodeChunks.join("\n").trim();
|
|
86
|
+
return selectedCode == null || selectedCode == '' ? __classPrivateFieldGet(this, _Code_editor, "f").getValue() : selectedCode;
|
|
87
|
+
}
|
|
88
|
+
get container() {
|
|
89
|
+
return __classPrivateFieldGet(this, _Code_container, "f") ?? (__classPrivateFieldSet(this, _Code_container, dom.createElement('div', {
|
|
90
|
+
style: { zIndex: this.zIndex.toString() }
|
|
91
|
+
}), "f"));
|
|
92
|
+
}
|
|
93
|
+
get theme() { return getThemeManager().activeTheme?.type == 'light' ? 'vs' : 'vs-dark'; }
|
|
94
|
+
showContainer() {
|
|
95
|
+
if (this.container.parentElement !== document.body) {
|
|
96
|
+
document.body.appendChild(this.container);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
hideContainer() {
|
|
100
|
+
__classPrivateFieldGet(this, _Code_container, "f")?.remove();
|
|
101
|
+
}
|
|
102
|
+
async initEditor() {
|
|
103
|
+
if (__classPrivateFieldGet(this, _Code_state, "f") > 0)
|
|
104
|
+
return;
|
|
105
|
+
__classPrivateFieldSet(this, _Code_state, 1, "f");
|
|
106
|
+
Code_1.monaco = await MonacoLoader.get();
|
|
107
|
+
__classPrivateFieldSet(this, _Code_editor, Code_1.monaco.editor.create(this.container, this.getOptions()), "f");
|
|
108
|
+
const language = __classPrivateFieldGet(this, _Code_language, "f");
|
|
109
|
+
const model = Code_1.monaco.editor.createModel(__classPrivateFieldGet(this, _Code_content, "f"), language);
|
|
110
|
+
__classPrivateFieldGet(this, _Code_editor, "f").setModel(model);
|
|
111
|
+
if (__classPrivateFieldGet(this, _Code_selection, "f"))
|
|
112
|
+
__classPrivateFieldGet(this, _Code_editor, "f").setSelection(__classPrivateFieldGet(this, _Code_selection, "f"));
|
|
113
|
+
if (__classPrivateFieldGet(this, _Code_scrollPosition, "f"))
|
|
114
|
+
__classPrivateFieldGet(this, _Code_editor, "f").setScrollPosition({
|
|
115
|
+
scrollTop: __classPrivateFieldGet(this, _Code_scrollPosition, "f").top,
|
|
116
|
+
scrollLeft: __classPrivateFieldGet(this, _Code_scrollPosition, "f").left
|
|
117
|
+
});
|
|
118
|
+
__classPrivateFieldGet(this, _Code_editor, "f").onDidBlurEditorText(() => {
|
|
119
|
+
this.dispatchEvent(new CodeEvent('blur', { editor: __classPrivateFieldGet(this, _Code_editor, "f") }));
|
|
120
|
+
});
|
|
121
|
+
__classPrivateFieldGet(this, _Code_editor, "f").onDidChangeModelContent(e => {
|
|
122
|
+
if (__classPrivateFieldGet(this, _Code_preventChangeEvent, "f")) {
|
|
123
|
+
__classPrivateFieldSet(this, _Code_preventChangeEvent, false, "f");
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
this.dispatchEvent(new CodeEvent('change', {
|
|
127
|
+
editor: __classPrivateFieldGet(this, _Code_editor, "f"),
|
|
128
|
+
changes: e.changes
|
|
129
|
+
}));
|
|
130
|
+
this.dispatchEvent(new events.ChangeEvent({ value: model }));
|
|
131
|
+
});
|
|
132
|
+
__classPrivateFieldGet(this, _Code_editor, "f").onKeyDown(e => {
|
|
133
|
+
this.dispatchEvent(new CodeEvent('keydown', { editor: __classPrivateFieldGet(this, _Code_editor, "f") }, e.browserEvent));
|
|
134
|
+
});
|
|
135
|
+
__classPrivateFieldSet(this, _Code_preventChangeEvent, false, "f");
|
|
136
|
+
__classPrivateFieldSet(this, _Code_state, 2, "f");
|
|
137
|
+
this.dispatchEvent(new CodeEvent('ready', { editor: __classPrivateFieldGet(this, _Code_editor, "f") }));
|
|
138
|
+
__classPrivateFieldGet(this, _Code_editor, "f").focus();
|
|
139
|
+
setTimeout(() => {
|
|
140
|
+
if (__classPrivateFieldGet(this, _Code_language, "f") != language) {
|
|
141
|
+
// if the language was changed while the editor was initializing, update the model language
|
|
142
|
+
Code_1.monaco.editor.setModelLanguage(model, __classPrivateFieldGet(this, _Code_language, "f"));
|
|
143
|
+
}
|
|
144
|
+
}, 100);
|
|
145
|
+
}
|
|
146
|
+
async updated() {
|
|
147
|
+
await this.initEditor();
|
|
148
|
+
this.layout();
|
|
149
|
+
}
|
|
150
|
+
connectedCallback() {
|
|
151
|
+
super.connectedCallback();
|
|
152
|
+
getThemeManager().addEventListener('change', __classPrivateFieldGet(this, _Code_onStyleChange, "f"));
|
|
153
|
+
if (this.hasUpdated) {
|
|
154
|
+
this.initEditor();
|
|
155
|
+
this.layout();
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
disconnectedCallback() {
|
|
159
|
+
getThemeManager().removeEventListener('change', __classPrivateFieldGet(this, _Code_onStyleChange, "f"));
|
|
160
|
+
this.hideContainer();
|
|
161
|
+
}
|
|
162
|
+
layout() {
|
|
163
|
+
if (!this.isConnected || this.clientWidth < VISIBILITY_THRESHOLD_SIZE || this.clientHeight < VISIBILITY_THRESHOLD_SIZE) {
|
|
164
|
+
this.hideContainer();
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
this.showContainer();
|
|
168
|
+
const offset = dom.getElementOffset(this, document.body);
|
|
169
|
+
dom.setPosition(this.container, {
|
|
170
|
+
t: offset.top + this.positionOffset.t,
|
|
171
|
+
l: offset.left + +this.positionOffset.l
|
|
172
|
+
});
|
|
173
|
+
dom.setSize(this.container, {
|
|
174
|
+
w: this.clientWidth + this.positionOffset.r,
|
|
175
|
+
h: this.clientHeight + this.positionOffset.b
|
|
176
|
+
});
|
|
177
|
+
this.editor?.layout();
|
|
178
|
+
}
|
|
179
|
+
dispose() {
|
|
180
|
+
__classPrivateFieldGet(this, _Code_container, "f")?.remove();
|
|
181
|
+
__classPrivateFieldSet(this, _Code_container, null, "f");
|
|
182
|
+
__classPrivateFieldGet(this, _Code_editor, "f")?.dispose();
|
|
183
|
+
__classPrivateFieldSet(this, _Code_editor, null, "f");
|
|
184
|
+
__classPrivateFieldSet(this, _Code_state, 0, "f");
|
|
185
|
+
}
|
|
186
|
+
focus() {
|
|
187
|
+
__classPrivateFieldGet(this, _Code_editor, "f")?.focus();
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
_Code_editor = new WeakMap();
|
|
191
|
+
_Code_options = new WeakMap();
|
|
192
|
+
_Code_language = new WeakMap();
|
|
193
|
+
_Code_preventChangeEvent = new WeakMap();
|
|
194
|
+
_Code_state = new WeakMap();
|
|
195
|
+
_Code_content = new WeakMap();
|
|
196
|
+
_Code_selection = new WeakMap();
|
|
197
|
+
_Code_scrollPosition = new WeakMap();
|
|
198
|
+
_Code_container = new WeakMap();
|
|
199
|
+
_Code_onStyleChange = new WeakMap();
|
|
200
|
+
Code.defaultZIndex = 10000;
|
|
201
|
+
Code.styles = css `
|
|
202
|
+
:host {
|
|
203
|
+
user-select: text;
|
|
204
|
+
display: block;
|
|
205
|
+
width: 100%;
|
|
206
|
+
height: 100%;
|
|
207
|
+
position: relative;
|
|
208
|
+
}
|
|
209
|
+
`;
|
|
210
|
+
__decorate([
|
|
211
|
+
property({ type: Object, noAccessor: true })
|
|
212
|
+
], Code.prototype, "options", null);
|
|
213
|
+
__decorate([
|
|
214
|
+
property({ type: Object })
|
|
215
|
+
], Code.prototype, "positionOffset", void 0);
|
|
216
|
+
__decorate([
|
|
217
|
+
property({ type: String, noAccessor: true })
|
|
218
|
+
], Code.prototype, "content", null);
|
|
219
|
+
__decorate([
|
|
220
|
+
property({ type: String, noAccessor: true })
|
|
221
|
+
], Code.prototype, "language", null);
|
|
222
|
+
__decorate([
|
|
223
|
+
property({ type: Number })
|
|
224
|
+
], Code.prototype, "zIndex", void 0);
|
|
225
|
+
Code = Code_1 = __decorate([
|
|
226
|
+
customElement('og-code')
|
|
227
|
+
], Code);
|
|
228
|
+
export { Code };
|
|
229
|
+
//# sourceMappingURL=code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/components/code.ts"],"names":[],"mappings":"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","sourcesContent":["import { dom, Layout, getThemeManager, events } from '@omegagrid/core';\nimport { LitElement, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { MonacoLoader } from '../loader';\nimport type * as monaco from 'monaco-editor';\nimport { getDefaultOptions, CssPosition } from '@omegagrid/core';\nimport { CodeEvent } from './shared';\n\nconst VISIBILITY_THRESHOLD_SIZE = 10; // minimum width/height to show the editor\n\n@customElement('og-code')\nexport class Code extends LitElement implements Layout {\n\n\tpublic static defaultZIndex = 10000;\n\n\tstatic styles = css`\n\t\t:host {\n\t\t\tuser-select: text;\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tposition: relative;\n\t\t}\n\t`;\n\n\tstatic monaco: typeof monaco;\n\tget monaco() { return Code.monaco }\n\n\t#editor: monaco.editor.IStandaloneCodeEditor;\n\tget editor() { return this.#editor }\n\tget model() { return this.#editor?.getModel() }\n\n\t#options: monaco.editor.IStandaloneEditorConstructionOptions;\n\t@property({type: Object, noAccessor: true})\n\tget options() { return this.#options }\n\tset options(val: monaco.editor.IStandaloneEditorConstructionOptions) {\n\t\tthis.#options = val;\n\t\tthis.#editor?.updateOptions(val);\n\t}\n\n\t@property({ type: Object })\n\tpositionOffset: CssPosition = {t: 1, l: 1, r: -1, b: -1};\n\n\t@property({type: String, noAccessor: true})\n\tget content() { return this.#editor ? this.#editor.getValue() : this.#content }\n\tset content(val: string) {\n\t\tif (val == null) val = '';\n\t\tif (this.#editor) {\n\t\t\tthis.#preventChangeEvent = true;\n\t\t\tthis.#editor?.setValue(val);\n\t\t} else {\n\t\t\tthis.#content = val;\n\t\t}\n\t}\n\n\t#language = 'typescript';\n\t@property({type: String, noAccessor: true})\n\tget language() { return this.#language }\n\tset language(val: string) {\n\t\tthis.#language = val;\n\t\tif (this.model) {\n\t\t\tMonacoLoader.get().then(monaco => monaco.editor.setModelLanguage(this.model, val));\n\t\t}\n\t}\n\n\tget selectedContent() {\n\t\tif (!this.#editor) return this.#content;\n\t\tconst selectedCodeChunks = this.#editor.getSelections().map(selection => this.model.getValueInRange(selection));\n\t\tconst selectedCode = selectedCodeChunks.join(\"\\n\").trim();\n\t\treturn selectedCode == null || selectedCode == '' ? this.#editor.getValue() : selectedCode;\n\t}\n\n\t#preventChangeEvent = false;\n\t#state: 0|1|2 = 0; // 0: initial, 1: initializing, 2: initialized\n\t#content: string;\n\t#selection: monaco.Selection;\n\t#scrollPosition: {top: number, left: number};\n\n\t#container: HTMLDivElement;\n\tget container() { return this.#container ?? (this.#container = dom.createElement('div', {\n\t\tstyle: {zIndex: this.zIndex.toString()}\n\t})) }\n\tget theme() { return getThemeManager().activeTheme?.type == 'light' ? 'vs' : 'vs-dark' }\n\t#onStyleChange = () => {\n\t\tthis.#editor.updateOptions({theme: this.theme});\n\t}\n\n\t@property({type: Number})\n\tzIndex = Code.defaultZIndex;\n\n\tgetOptions = (): monaco.editor.IStandaloneEditorConstructionOptions => ({\n\t\t...this.options,\n\t\ttheme: this.theme,\n\t\tlanguage: this.#language,\n\t\tfontSize: getDefaultOptions().fontSize,\n\t\t// workaround for caret positioning issue in chrome\n\t\t// https://github.com/microsoft/monaco-editor/issues/3217#issuecomment-1511978166\n\t\tfontLigatures: ''\n\t});\n\n\tshowContainer() {\n\t\tif (this.container.parentElement !== document.body) {\n\t\t\tdocument.body.appendChild(this.container);\n\t\t}\n\t}\n\n\thideContainer() {\n\t\tthis.#container?.remove();\n\t}\n\n\tasync initEditor() {\n\t\tif (this.#state > 0) return;\n\t\tthis.#state = 1;\n\n\t\tCode.monaco = await MonacoLoader.get();\n\t\tthis.#editor = Code.monaco.editor.create(this.container, this.getOptions());\n\n\t\tconst language = this.#language;\n\t\tconst model = Code.monaco.editor.createModel(this.#content, language);\n\t\tthis.#editor.setModel(model);\n\t\tif (this.#selection) this.#editor.setSelection(this.#selection);\n\t\tif (this.#scrollPosition) this.#editor.setScrollPosition({\n\t\t\tscrollTop: this.#scrollPosition.top,\n\t\t\tscrollLeft: this.#scrollPosition.left\n\t\t});\n\n\t\tthis.#editor.onDidBlurEditorText(() => {\n\t\t\tthis.dispatchEvent(new CodeEvent('blur', {editor: this.#editor}));\n\t\t});\n\n\t\tthis.#editor.onDidChangeModelContent(e => {\n\t\t\tif (this.#preventChangeEvent) {\n\t\t\t\tthis.#preventChangeEvent = false;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.dispatchEvent(new CodeEvent('change', {\n\t\t\t\teditor: this.#editor,\n\t\t\t\tchanges: e.changes\n\t\t\t}));\n\t\t\tthis.dispatchEvent(new events.ChangeEvent({value: model}));\n\t\t});\n\n\t\tthis.#editor.onKeyDown(e => {\n\t\t\tthis.dispatchEvent(new CodeEvent('keydown', {editor: this.#editor}, e.browserEvent));\n\t\t});\n\n\t\tthis.#preventChangeEvent = false;\n\t\tthis.#state = 2;\n\n\t\tthis.dispatchEvent(new CodeEvent('ready', {editor: this.#editor}));\n\t\tthis.#editor.focus();\n\n\t\tsetTimeout(() => {\n\t\t\tif (this.#language != language) {\n\t\t\t\t// if the language was changed while the editor was initializing, update the model language\n\t\t\t\tCode.monaco.editor.setModelLanguage(model, this.#language);\n\t\t\t}\n\t\t}, 100);\n\t}\n\n\tasync updated() {\n\t\tawait this.initEditor();\n\t\tthis.layout();\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tgetThemeManager().addEventListener('change', this.#onStyleChange);\n\n\t\tif (this.hasUpdated) {\n\t\t\tthis.initEditor();\n\t\t\tthis.layout();\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tgetThemeManager().removeEventListener('change', this.#onStyleChange);\n\t\tthis.hideContainer();\n\t}\n\n\tlayout() {\n\t\tif (!this.isConnected || this.clientWidth < VISIBILITY_THRESHOLD_SIZE || this.clientHeight < VISIBILITY_THRESHOLD_SIZE) {\n\t\t\tthis.hideContainer();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.showContainer();\n\t\tconst offset = dom.getElementOffset(this, document.body);\n\t\tdom.setPosition(this.container, {\n\t\t\tt: offset.top + (this.positionOffset.t as number),\n\t\t\tl: offset.left + + (this.positionOffset.l as number)\n\t\t});\n\t\tdom.setSize(this.container, {\n\t\t\tw: this.clientWidth + (this.positionOffset.r as number),\n\t\t\th: this.clientHeight + (this.positionOffset.b as number)\n\t\t});\n\t\tthis.editor?.layout();\n\t}\n\n\tdispose() {\n\t\tthis.#container?.remove();\n\t\tthis.#container = null;\n\t\tthis.#editor?.dispose();\n\t\tthis.#editor = null;\n\t\tthis.#state = 0;\n\t}\n\n\tfocus() {\n\t\tthis.#editor?.focus();\n\t}\n\n}\n"]}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { Layout } from '@omegagrid/core';
|
|
2
|
+
import { LitElement } from 'lit';
|
|
3
|
+
import { Code } from './code';
|
|
4
|
+
import { CodeEvent } from './shared';
|
|
5
|
+
import { TreeAdapter, TreeEvent, TreeOptions } from '@omegagrid/tree';
|
|
6
|
+
import type * as monaco from 'monaco-editor';
|
|
7
|
+
import { CodeView } from './codeView';
|
|
8
|
+
declare class LangTreeAdapter extends TreeAdapter {
|
|
9
|
+
getTree(): Promise<{
|
|
10
|
+
k: string;
|
|
11
|
+
v: string;
|
|
12
|
+
}[]>;
|
|
13
|
+
getOptions(): TreeOptions;
|
|
14
|
+
}
|
|
15
|
+
export declare class CodeBlock extends LitElement implements Layout {
|
|
16
|
+
#private;
|
|
17
|
+
static styles: import("lit").CSSResult;
|
|
18
|
+
language: string;
|
|
19
|
+
dynamicHeight: boolean;
|
|
20
|
+
maxHeight: number;
|
|
21
|
+
minHeight: number;
|
|
22
|
+
disableToolbar: boolean;
|
|
23
|
+
editor: Code;
|
|
24
|
+
view: CodeView;
|
|
25
|
+
editorOptions: monaco.editor.IStandaloneEditorConstructionOptions;
|
|
26
|
+
editing: boolean;
|
|
27
|
+
get languageAdapter(): LangTreeAdapter;
|
|
28
|
+
get content(): string;
|
|
29
|
+
set content(value: string);
|
|
30
|
+
get monacoEditor(): monaco.editor.IStandaloneCodeEditor;
|
|
31
|
+
get model(): monaco.editor.ITextModel;
|
|
32
|
+
updateHeight(): void;
|
|
33
|
+
_onChange: (_e: CodeEvent) => void;
|
|
34
|
+
willUpdate(changedProps: Map<PropertyKey, unknown>): Promise<void>;
|
|
35
|
+
_onLanguageChange: (e: TreeEvent) => void;
|
|
36
|
+
getEditorOptions: () => {
|
|
37
|
+
model?: monaco.editor.ITextModel | null;
|
|
38
|
+
value?: string;
|
|
39
|
+
language?: string;
|
|
40
|
+
theme?: string;
|
|
41
|
+
autoDetectHighContrast?: boolean;
|
|
42
|
+
accessibilityHelpUrl?: string;
|
|
43
|
+
ariaContainerElement?: HTMLElement;
|
|
44
|
+
dimension?: monaco.editor.IDimension;
|
|
45
|
+
overflowWidgetsDomNode?: HTMLElement;
|
|
46
|
+
inDiffEditor?: boolean;
|
|
47
|
+
ariaLabel?: string;
|
|
48
|
+
ariaRequired?: boolean;
|
|
49
|
+
screenReaderAnnounceInlineSuggestion?: boolean;
|
|
50
|
+
tabIndex?: number;
|
|
51
|
+
rulers?: (number | monaco.editor.IRulerOption)[];
|
|
52
|
+
wordSeparators?: string;
|
|
53
|
+
selectionClipboard?: boolean;
|
|
54
|
+
lineNumbers?: monaco.editor.LineNumbersType;
|
|
55
|
+
cursorSurroundingLines?: number;
|
|
56
|
+
cursorSurroundingLinesStyle?: "default" | "all";
|
|
57
|
+
renderFinalNewline?: "on" | "off" | "dimmed";
|
|
58
|
+
unusualLineTerminators?: "auto" | "off" | "prompt";
|
|
59
|
+
selectOnLineNumbers?: boolean;
|
|
60
|
+
lineNumbersMinChars?: number;
|
|
61
|
+
glyphMargin?: boolean;
|
|
62
|
+
lineDecorationsWidth?: number | string;
|
|
63
|
+
revealHorizontalRightPadding?: number;
|
|
64
|
+
roundedSelection?: boolean;
|
|
65
|
+
extraEditorClassName?: string;
|
|
66
|
+
readOnly?: boolean;
|
|
67
|
+
readOnlyMessage?: monaco.IMarkdownString;
|
|
68
|
+
domReadOnly?: boolean;
|
|
69
|
+
linkedEditing?: boolean;
|
|
70
|
+
renameOnType?: boolean;
|
|
71
|
+
renderValidationDecorations?: "editable" | "on" | "off";
|
|
72
|
+
scrollbar?: monaco.editor.IEditorScrollbarOptions;
|
|
73
|
+
stickyScroll?: monaco.editor.IEditorStickyScrollOptions;
|
|
74
|
+
minimap?: monaco.editor.IEditorMinimapOptions;
|
|
75
|
+
find?: monaco.editor.IEditorFindOptions;
|
|
76
|
+
fixedOverflowWidgets?: boolean;
|
|
77
|
+
overviewRulerLanes?: number;
|
|
78
|
+
overviewRulerBorder?: boolean;
|
|
79
|
+
cursorBlinking?: "blink" | "smooth" | "phase" | "expand" | "solid";
|
|
80
|
+
mouseWheelZoom?: boolean;
|
|
81
|
+
mouseStyle?: "text" | "default" | "copy";
|
|
82
|
+
cursorSmoothCaretAnimation?: "off" | "explicit" | "on";
|
|
83
|
+
cursorStyle?: "line" | "block" | "underline" | "line-thin" | "block-outline" | "underline-thin";
|
|
84
|
+
cursorWidth?: number;
|
|
85
|
+
fontLigatures?: boolean | string;
|
|
86
|
+
fontVariations?: boolean | string;
|
|
87
|
+
defaultColorDecorators?: boolean;
|
|
88
|
+
disableLayerHinting?: boolean;
|
|
89
|
+
disableMonospaceOptimizations?: boolean;
|
|
90
|
+
hideCursorInOverviewRuler?: boolean;
|
|
91
|
+
scrollBeyondLastLine: boolean;
|
|
92
|
+
scrollBeyondLastColumn?: number;
|
|
93
|
+
smoothScrolling?: boolean;
|
|
94
|
+
automaticLayout?: boolean;
|
|
95
|
+
wordWrap?: "off" | "on" | "wordWrapColumn" | "bounded";
|
|
96
|
+
wordWrapOverride1?: "off" | "on" | "inherit";
|
|
97
|
+
wordWrapOverride2?: "off" | "on" | "inherit";
|
|
98
|
+
wordWrapColumn?: number;
|
|
99
|
+
wrappingIndent?: "none" | "same" | "indent" | "deepIndent";
|
|
100
|
+
wrappingStrategy?: "simple" | "advanced";
|
|
101
|
+
wordWrapBreakBeforeCharacters?: string;
|
|
102
|
+
wordWrapBreakAfterCharacters?: string;
|
|
103
|
+
wordBreak?: "normal" | "keepAll";
|
|
104
|
+
stopRenderingLineAfter?: number;
|
|
105
|
+
hover?: monaco.editor.IEditorHoverOptions;
|
|
106
|
+
links?: boolean;
|
|
107
|
+
colorDecorators?: boolean;
|
|
108
|
+
colorDecoratorsActivatedOn?: "clickAndHover" | "click" | "hover";
|
|
109
|
+
colorDecoratorsLimit?: number;
|
|
110
|
+
comments?: monaco.editor.IEditorCommentsOptions;
|
|
111
|
+
contextmenu?: boolean;
|
|
112
|
+
mouseWheelScrollSensitivity?: number;
|
|
113
|
+
fastScrollSensitivity?: number;
|
|
114
|
+
scrollPredominantAxis?: boolean;
|
|
115
|
+
columnSelection?: boolean;
|
|
116
|
+
multiCursorModifier?: "ctrlCmd" | "alt";
|
|
117
|
+
multiCursorMergeOverlapping?: boolean;
|
|
118
|
+
multiCursorPaste?: "spread" | "full";
|
|
119
|
+
multiCursorLimit?: number;
|
|
120
|
+
accessibilitySupport?: "auto" | "off" | "on";
|
|
121
|
+
accessibilityPageSize?: number;
|
|
122
|
+
suggest?: monaco.editor.ISuggestOptions;
|
|
123
|
+
inlineSuggest?: monaco.editor.IInlineSuggestOptions;
|
|
124
|
+
experimentalInlineEdit?: monaco.editor.IInlineEditOptions;
|
|
125
|
+
smartSelect?: monaco.editor.ISmartSelectOptions;
|
|
126
|
+
gotoLocation?: monaco.editor.IGotoLocationOptions;
|
|
127
|
+
quickSuggestions?: boolean | monaco.editor.IQuickSuggestionsOptions;
|
|
128
|
+
quickSuggestionsDelay?: number;
|
|
129
|
+
padding?: monaco.editor.IEditorPaddingOptions;
|
|
130
|
+
parameterHints?: monaco.editor.IEditorParameterHintOptions;
|
|
131
|
+
autoClosingBrackets?: monaco.editor.EditorAutoClosingStrategy;
|
|
132
|
+
autoClosingComments?: monaco.editor.EditorAutoClosingStrategy;
|
|
133
|
+
autoClosingQuotes?: monaco.editor.EditorAutoClosingStrategy;
|
|
134
|
+
autoClosingDelete?: monaco.editor.EditorAutoClosingEditStrategy;
|
|
135
|
+
autoClosingOvertype?: monaco.editor.EditorAutoClosingEditStrategy;
|
|
136
|
+
autoSurround?: monaco.editor.EditorAutoSurroundStrategy;
|
|
137
|
+
autoIndent?: "none" | "keep" | "brackets" | "advanced" | "full";
|
|
138
|
+
stickyTabStops?: boolean;
|
|
139
|
+
formatOnType?: boolean;
|
|
140
|
+
formatOnPaste?: boolean;
|
|
141
|
+
dragAndDrop?: boolean;
|
|
142
|
+
suggestOnTriggerCharacters?: boolean;
|
|
143
|
+
acceptSuggestionOnEnter?: "on" | "smart" | "off";
|
|
144
|
+
acceptSuggestionOnCommitCharacter?: boolean;
|
|
145
|
+
snippetSuggestions?: "top" | "bottom" | "inline" | "none";
|
|
146
|
+
emptySelectionClipboard?: boolean;
|
|
147
|
+
copyWithSyntaxHighlighting?: boolean;
|
|
148
|
+
suggestSelection?: "first" | "recentlyUsed" | "recentlyUsedByPrefix";
|
|
149
|
+
suggestFontSize?: number;
|
|
150
|
+
suggestLineHeight?: number;
|
|
151
|
+
tabCompletion?: "on" | "off" | "onlySnippets";
|
|
152
|
+
selectionHighlight?: boolean;
|
|
153
|
+
occurrencesHighlight?: "off" | "singleFile" | "multiFile";
|
|
154
|
+
codeLens?: boolean;
|
|
155
|
+
codeLensFontFamily?: string;
|
|
156
|
+
codeLensFontSize?: number;
|
|
157
|
+
lightbulb?: monaco.editor.IEditorLightbulbOptions;
|
|
158
|
+
codeActionsOnSaveTimeout?: number;
|
|
159
|
+
folding?: boolean;
|
|
160
|
+
foldingStrategy?: "auto" | "indentation";
|
|
161
|
+
foldingHighlight?: boolean;
|
|
162
|
+
foldingImportsByDefault?: boolean;
|
|
163
|
+
foldingMaximumRegions?: number;
|
|
164
|
+
showFoldingControls?: "always" | "never" | "mouseover";
|
|
165
|
+
unfoldOnClickAfterEndOfLine?: boolean;
|
|
166
|
+
matchBrackets?: "never" | "near" | "always";
|
|
167
|
+
experimentalWhitespaceRendering?: "svg" | "font" | "off";
|
|
168
|
+
renderWhitespace?: "none" | "boundary" | "selection" | "trailing" | "all";
|
|
169
|
+
renderControlCharacters?: boolean;
|
|
170
|
+
renderLineHighlight?: "none" | "gutter" | "line" | "all";
|
|
171
|
+
renderLineHighlightOnlyWhenFocus?: boolean;
|
|
172
|
+
useTabStops?: boolean;
|
|
173
|
+
fontFamily?: string;
|
|
174
|
+
fontWeight?: string;
|
|
175
|
+
fontSize?: number;
|
|
176
|
+
lineHeight?: number;
|
|
177
|
+
letterSpacing?: number;
|
|
178
|
+
showUnused?: boolean;
|
|
179
|
+
peekWidgetDefaultFocus?: "tree" | "editor";
|
|
180
|
+
definitionLinkOpensInPeek?: boolean;
|
|
181
|
+
showDeprecated?: boolean;
|
|
182
|
+
matchOnWordStartOnly?: boolean;
|
|
183
|
+
inlayHints?: monaco.editor.IEditorInlayHintsOptions;
|
|
184
|
+
useShadowDOM?: boolean;
|
|
185
|
+
guides?: monaco.editor.IGuidesOptions;
|
|
186
|
+
unicodeHighlight?: monaco.editor.IUnicodeHighlightOptions;
|
|
187
|
+
bracketPairColorization?: monaco.editor.IBracketPairColorizationOptions;
|
|
188
|
+
dropIntoEditor?: monaco.editor.IDropIntoEditorOptions;
|
|
189
|
+
pasteAs?: monaco.editor.IPasteAsOptions;
|
|
190
|
+
tabFocusMode?: boolean;
|
|
191
|
+
inlineCompletionsAccessibilityVerbose?: boolean;
|
|
192
|
+
tabSize?: number;
|
|
193
|
+
insertSpaces?: boolean;
|
|
194
|
+
detectIndentation?: boolean;
|
|
195
|
+
trimAutoWhitespace?: boolean;
|
|
196
|
+
largeFileOptimizations?: boolean;
|
|
197
|
+
wordBasedSuggestions?: "off" | "currentDocument" | "matchingDocuments" | "allDocuments";
|
|
198
|
+
wordBasedSuggestionsOnlySameLanguage?: boolean;
|
|
199
|
+
'semanticHighlighting.enabled'?: true | false | "configuredByTheme";
|
|
200
|
+
stablePeek?: boolean;
|
|
201
|
+
maxTokenizationLineLength?: number;
|
|
202
|
+
};
|
|
203
|
+
render: () => import("lit-html").TemplateResult<1>;
|
|
204
|
+
layout(): void;
|
|
205
|
+
focus(): void;
|
|
206
|
+
}
|
|
207
|
+
export {};
|
|
208
|
+
//# sourceMappingURL=codeBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeBlock.d.ts","sourceRoot":"","sources":["../../src/components/codeBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAe,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,cAAM,eAAgB,SAAQ,WAAW;IAClC,OAAO;;;;IASb,UAAU,IAAK,WAAW;CAO1B;AAED,qBACa,SAAU,SAAQ,UAAW,YAAW,MAAM;;IAE1D,MAAM,CAAC,MAAM,0BA2CX;IAGF,QAAQ,SAAgB;IAGxB,aAAa,UAAS;IAGtB,SAAS,SAAO;IAGhB,SAAS,SAAM;IAGf,cAAc,UAAS;IAGvB,MAAM,EAAE,IAAI,CAAC;IAGb,IAAI,EAAE,QAAQ,CAAC;IAGf,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,oCAAoC,CAAC;IAGlE,OAAO,UAAS;IAGhB,IAAI,eAAe,oBAGlB;IAGD,IAAI,OAAO,IACQ,MAAM,CADqC;IAC9D,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAGxB;IAED,IAAI,YAAY,wCAAiC;IACjD,IAAI,KAAK,6BAA2C;IAEpD,YAAY;IASZ,SAAS,GAAI,IAAI,SAAS,UAExB;IAEI,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;IAMxD,iBAAiB,GAAI,GAAG,SAAS,UAMhC;IAED,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAGb;IAEH,MAAM,6CA+BJ;IAEF,MAAM;IAIN,KAAK;CAIL"}
|