@eclipse-docks/extension-monaco-editor 0.8.11 → 0.8.13

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/index.js CHANGED
@@ -10,7 +10,7 @@ extensionRegistry.registerExtension({
10
10
  id: pkg.name,
11
11
  name: t.EXT_MONACO_NAME,
12
12
  description: t.EXT_MONACO_DESC,
13
- loader: () => import("./monaco-editor-extension-D3ofvJeE.js"),
13
+ loader: () => import("./monaco-editor-extension-DkYWNcUL.js"),
14
14
  icon: "file-pen"
15
15
  });
16
16
  var MONACO_EDITOR_TOOLBAR_TARGET_PREFIX = "toolbar:system.monaco-editor";
@@ -1,4 +1,4 @@
1
- import "./monaco-widget-vQSNeFxK.js";
1
+ import "./monaco-widget-cfbcKlgw.js";
2
2
  import { DocksPart } from "@eclipse-docks/core";
3
3
  import { customElement, property, state } from "lit/decorators.js";
4
4
  import { css, html } from "lit";
@@ -91,4 +91,4 @@ _decorate([state()], DocksMonacoEditor.prototype, "initialLanguage", void 0);
91
91
  DocksMonacoEditor = _decorate([customElement("docks-monaco-editor")], DocksMonacoEditor);
92
92
  //#endregion
93
93
 
94
- //# sourceMappingURL=monaco-editor-Dq4CT90-.js.map
94
+ //# sourceMappingURL=monaco-editor-Ba9ZMs5G.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"monaco-editor-Dq4CT90-.js","names":[],"sources":["../src/monaco-editor.ts"],"sourcesContent":["import { customElement, property, state } from \"lit/decorators.js\";\nimport { DocksPart } from \"@eclipse-docks/core\";\nimport { css, html } from \"lit\";\nimport { createRef, ref } from \"lit/directives/ref.js\";\nimport { EditorInput, EditorContentProvider } from \"@eclipse-docks/core\";\nimport \"./monaco-widget\";\nimport type { DocksMonacoWidget } from \"./monaco-widget\";\n\n@customElement('docks-monaco-editor')\nexport class DocksMonacoEditor extends DocksPart implements EditorContentProvider {\n @property({ attribute: false })\n public input?: EditorInput;\n @property()\n public readOnly: boolean = false;\n\n @state()\n private initialContent: string | undefined = undefined;\n @state()\n private initialUri: string | undefined = undefined;\n @state()\n private initialLanguage: string | undefined = undefined;\n\n private widgetRef = createRef<DocksMonacoWidget>();\n\n protected async doInitUI() {\n const file = this.input!.data;\n const textContents = await file.getContents();\n this.initialContent = textContents;\n this.initialUri = file.getWorkspacePath();\n this.initialLanguage = undefined;\n this.requestUpdate();\n }\n\n private _onContentChange = () => {\n this.markDirty(true);\n };\n\n public getEditor() {\n return this.widgetRef.value?.getEditor() ?? undefined;\n }\n\n save(): void {\n const value = this.widgetRef.value?.getContent() ?? '';\n this.input?.data.saveContents(value);\n this.markDirty(false);\n }\n\n protected doClose() {\n this.widgetRef.value?.dispose();\n }\n\n public getLanguage(): string | null {\n return this.widgetRef.value?.getLanguage() ?? null;\n }\n\n public isLanguage(lang: string): boolean {\n return this.widgetRef.value?.isLanguage(lang) ?? false;\n }\n\n public getContent(): string | null {\n return this.widgetRef.value?.getContent() ?? null;\n }\n\n public getSelection(): string | null {\n return this.widgetRef.value?.getSelection() ?? null;\n }\n\n public getSnippet(lines: number = 5): { snippet: string; cursorLine: number } | null {\n return this.widgetRef.value?.getSnippet(lines) ?? null;\n }\n\n public getFilePath(): string | null {\n return this.input?.data?.getWorkspacePath() ?? null;\n }\n\n protected renderContent() {\n if (this.initialContent === undefined) {\n return html`<div class=\"monaco-editor-placeholder\"></div>`;\n }\n return html`\n <docks-monaco-widget\n .value=${this.initialContent}\n .uri=${this.initialUri}\n .language=${this.initialLanguage}\n .readOnly=${this.readOnly}\n @content-change=${this._onContentChange}\n ${ref(this.widgetRef)}\n ></docks-monaco-widget>\n `;\n }\n\n static styles = css`\n :host {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n height: 100%;\n }\n .monaco-editor-placeholder {\n flex: 1;\n min-height: 0;\n }\n `;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'docks-monaco-editor': DocksMonacoEditor;\n }\n}\n"],"mappings":";;;;;;;AASO,IAAM,oBAAN,MAAM,0BAA0B,UAA2C;;;EAInD,KAAA,WAAA;EAGkB,KAAA,iBAAA,KAAA;EAEJ,KAAA,aAAA,KAAA;EAEK,KAAA,kBAAA,KAAA;EAE1B,KAAA,YAAA,UAA6B;EAWhB,KAAA,yBAAA;GAC7B,KAAK,UAAU,IAAI;EACvB;;CAXA,MAAgB,WAAW;EACvB,MAAM,OAAO,KAAK,MAAO;EACzB,MAAM,eAAe,MAAM,KAAK,YAAY;EAC5C,KAAK,iBAAiB;EACtB,KAAK,aAAa,KAAK,iBAAiB;EACxC,KAAK,kBAAkB,KAAA;EACvB,KAAK,cAAc;CACvB;CAMA,YAAmB;EACf,OAAO,KAAK,UAAU,OAAO,UAAU,KAAK,KAAA;CAChD;CAEA,OAAa;EACT,MAAM,QAAQ,KAAK,UAAU,OAAO,WAAW,KAAK;EACpD,KAAK,OAAO,KAAK,aAAa,KAAK;EACnC,KAAK,UAAU,KAAK;CACxB;CAEA,UAAoB;EAChB,KAAK,UAAU,OAAO,QAAQ;CAClC;CAEA,cAAoC;EAChC,OAAO,KAAK,UAAU,OAAO,YAAY,KAAK;CAClD;CAEA,WAAkB,MAAuB;EACrC,OAAO,KAAK,UAAU,OAAO,WAAW,IAAI,KAAK;CACrD;CAEA,aAAmC;EAC/B,OAAO,KAAK,UAAU,OAAO,WAAW,KAAK;CACjD;CAEA,eAAqC;EACjC,OAAO,KAAK,UAAU,OAAO,aAAa,KAAK;CACnD;CAEA,WAAkB,QAAgB,GAAmD;EACjF,OAAO,KAAK,UAAU,OAAO,WAAW,KAAK,KAAK;CACtD;CAEA,cAAoC;EAChC,OAAO,KAAK,OAAO,MAAM,iBAAiB,KAAK;CACnD;CAEA,gBAA0B;EACtB,IAAI,KAAK,mBAAmB,KAAA,GACxB,OAAO,IAAI;EAEf,OAAO,IAAI;;yBAEM,KAAK,eAAe;uBACtB,KAAK,WAAW;4BACX,KAAK,gBAAgB;4BACrB,KAAK,SAAS;kCACR,KAAK,iBAAiB;kBACtC,IAAI,KAAK,SAAS,EAAE;;;CAGlC;;EAEgB,KAAA,SAAA,GAAG;;;;;;;;;;;;;;AAavB;AA9FK,UAAA,CAAA,SAAS,EAAE,WAAW,MAAM,CAAC,CAAA,GAAA,kBAAA,WAAA,SAAA,KAAA,CAAA;AAE7B,UAAA,CAAA,SAAS,CAAA,GAAA,kBAAA,WAAA,YAAA,KAAA,CAAA;AAGT,UAAA,CAAA,MAAM,CAAA,GAAA,kBAAA,WAAA,kBAAA,KAAA,CAAA;AAEN,UAAA,CAAA,MAAM,CAAA,GAAA,kBAAA,WAAA,cAAA,KAAA,CAAA;AAEN,UAAA,CAAA,MAAM,CAAA,GAAA,kBAAA,WAAA,mBAAA,KAAA,CAAA;AAXV,oBAAA,UAAA,CAAA,cAAc,qBAAqB,CAAA,GAAA,iBAAA"}
1
+ {"version":3,"file":"monaco-editor-Ba9ZMs5G.js","names":[],"sources":["../src/monaco-editor.ts"],"sourcesContent":["import { customElement, property, state } from \"lit/decorators.js\";\nimport { DocksPart } from \"@eclipse-docks/core\";\nimport { css, html } from \"lit\";\nimport { createRef, ref } from \"lit/directives/ref.js\";\nimport { EditorInput, EditorContentProvider } from \"@eclipse-docks/core\";\nimport \"./monaco-widget\";\nimport type { DocksMonacoWidget } from \"./monaco-widget\";\n\n@customElement('docks-monaco-editor')\nexport class DocksMonacoEditor extends DocksPart implements EditorContentProvider {\n @property({ attribute: false })\n public input?: EditorInput;\n @property()\n public readOnly: boolean = false;\n\n @state()\n private initialContent: string | undefined = undefined;\n @state()\n private initialUri: string | undefined = undefined;\n @state()\n private initialLanguage: string | undefined = undefined;\n\n private widgetRef = createRef<DocksMonacoWidget>();\n\n protected async doInitUI() {\n const file = this.input!.data;\n const textContents = await file.getContents();\n this.initialContent = textContents;\n this.initialUri = file.getWorkspacePath();\n this.initialLanguage = undefined;\n this.requestUpdate();\n }\n\n private _onContentChange = () => {\n this.markDirty(true);\n };\n\n public getEditor() {\n return this.widgetRef.value?.getEditor() ?? undefined;\n }\n\n save(): void {\n const value = this.widgetRef.value?.getContent() ?? '';\n this.input?.data.saveContents(value);\n this.markDirty(false);\n }\n\n protected doClose() {\n this.widgetRef.value?.dispose();\n }\n\n public getLanguage(): string | null {\n return this.widgetRef.value?.getLanguage() ?? null;\n }\n\n public isLanguage(lang: string): boolean {\n return this.widgetRef.value?.isLanguage(lang) ?? false;\n }\n\n public getContent(): string | null {\n return this.widgetRef.value?.getContent() ?? null;\n }\n\n public getSelection(): string | null {\n return this.widgetRef.value?.getSelection() ?? null;\n }\n\n public getSnippet(lines: number = 5): { snippet: string; cursorLine: number } | null {\n return this.widgetRef.value?.getSnippet(lines) ?? null;\n }\n\n public getFilePath(): string | null {\n return this.input?.data?.getWorkspacePath() ?? null;\n }\n\n protected renderContent() {\n if (this.initialContent === undefined) {\n return html`<div class=\"monaco-editor-placeholder\"></div>`;\n }\n return html`\n <docks-monaco-widget\n .value=${this.initialContent}\n .uri=${this.initialUri}\n .language=${this.initialLanguage}\n .readOnly=${this.readOnly}\n @content-change=${this._onContentChange}\n ${ref(this.widgetRef)}\n ></docks-monaco-widget>\n `;\n }\n\n static styles = css`\n :host {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n height: 100%;\n }\n .monaco-editor-placeholder {\n flex: 1;\n min-height: 0;\n }\n `;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'docks-monaco-editor': DocksMonacoEditor;\n }\n}\n"],"mappings":";;;;;;;AASO,IAAM,oBAAN,MAAM,0BAA0B,UAA2C;;;EAInD,KAAA,WAAA;EAGkB,KAAA,iBAAA,KAAA;EAEJ,KAAA,aAAA,KAAA;EAEK,KAAA,kBAAA,KAAA;EAE1B,KAAA,YAAA,UAA6B;EAWhB,KAAA,yBAAA;GAC7B,KAAK,UAAU,IAAI;EACvB;;CAXA,MAAgB,WAAW;EACvB,MAAM,OAAO,KAAK,MAAO;EACzB,MAAM,eAAe,MAAM,KAAK,YAAY;EAC5C,KAAK,iBAAiB;EACtB,KAAK,aAAa,KAAK,iBAAiB;EACxC,KAAK,kBAAkB,KAAA;EACvB,KAAK,cAAc;CACvB;CAMA,YAAmB;EACf,OAAO,KAAK,UAAU,OAAO,UAAU,KAAK,KAAA;CAChD;CAEA,OAAa;EACT,MAAM,QAAQ,KAAK,UAAU,OAAO,WAAW,KAAK;EACpD,KAAK,OAAO,KAAK,aAAa,KAAK;EACnC,KAAK,UAAU,KAAK;CACxB;CAEA,UAAoB;EAChB,KAAK,UAAU,OAAO,QAAQ;CAClC;CAEA,cAAoC;EAChC,OAAO,KAAK,UAAU,OAAO,YAAY,KAAK;CAClD;CAEA,WAAkB,MAAuB;EACrC,OAAO,KAAK,UAAU,OAAO,WAAW,IAAI,KAAK;CACrD;CAEA,aAAmC;EAC/B,OAAO,KAAK,UAAU,OAAO,WAAW,KAAK;CACjD;CAEA,eAAqC;EACjC,OAAO,KAAK,UAAU,OAAO,aAAa,KAAK;CACnD;CAEA,WAAkB,QAAgB,GAAmD;EACjF,OAAO,KAAK,UAAU,OAAO,WAAW,KAAK,KAAK;CACtD;CAEA,cAAoC;EAChC,OAAO,KAAK,OAAO,MAAM,iBAAiB,KAAK;CACnD;CAEA,gBAA0B;EACtB,IAAI,KAAK,mBAAmB,KAAA,GACxB,OAAO,IAAI;EAEf,OAAO,IAAI;;yBAEM,KAAK,eAAe;uBACtB,KAAK,WAAW;4BACX,KAAK,gBAAgB;4BACrB,KAAK,SAAS;kCACR,KAAK,iBAAiB;kBACtC,IAAI,KAAK,SAAS,EAAE;;;CAGlC;;EAEgB,KAAA,SAAA,GAAG;;;;;;;;;;;;;;AAavB;AA9FK,UAAA,CAAA,SAAS,EAAE,WAAW,MAAM,CAAC,CAAA,GAAA,kBAAA,WAAA,SAAA,KAAA,CAAA;AAE7B,UAAA,CAAA,SAAS,CAAA,GAAA,kBAAA,WAAA,YAAA,KAAA,CAAA;AAGT,UAAA,CAAA,MAAM,CAAA,GAAA,kBAAA,WAAA,kBAAA,KAAA,CAAA;AAEN,UAAA,CAAA,MAAM,CAAA,GAAA,kBAAA,WAAA,cAAA,KAAA,CAAA;AAEN,UAAA,CAAA,MAAM,CAAA,GAAA,kBAAA,WAAA,mBAAA,KAAA,CAAA;AAXV,oBAAA,UAAA,CAAA,cAAc,qBAAqB,CAAA,GAAA,iBAAA"}
@@ -6,7 +6,7 @@ editorRegistry.registerEditorInputHandler({
6
6
  label: "Code",
7
7
  icon: "file-pen",
8
8
  lazyInit: async () => {
9
- await import("./monaco-editor-Dq4CT90-.js");
9
+ await import("./monaco-editor-Ba9ZMs5G.js");
10
10
  },
11
11
  canHandle: (input) => input instanceof File,
12
12
  handle: async (input) => {
@@ -24,4 +24,4 @@ editorRegistry.registerEditorInputHandler({
24
24
  });
25
25
  //#endregion
26
26
 
27
- //# sourceMappingURL=monaco-editor-extension-D3ofvJeE.js.map
27
+ //# sourceMappingURL=monaco-editor-extension-DkYWNcUL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"monaco-editor-extension-D3ofvJeE.js","names":[],"sources":["../src/monaco-editor-extension.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { EditorInput, editorRegistry, File } from \"@eclipse-docks/core\";\n\neditorRegistry.registerEditorInputHandler({\n editorId: \"system.monaco-editor\",\n label: \"Code\",\n icon: \"file-pen\",\n lazyInit: async () => {\n await import('./monaco-editor');\n },\n canHandle: (input: unknown) =>\n input instanceof File,\n handle: async (input: File) => {\n const editorInput = {\n title: input.getWorkspacePath(),\n data: input,\n key: input.getWorkspacePath(),\n icon: editorRegistry.getFileIcon(input.getName()),\n state: {},\n } as EditorInput\n editorInput.component = (id: string) => html`\n <docks-monaco-editor id=${id} .input=${editorInput}></docks-monaco-editor>`\n return editorInput;\n }\n})\n"],"mappings":";;;AAGA,eAAe,2BAA2B;CACtC,UAAU;CACV,OAAO;CACP,MAAM;CACN,UAAU,YAAY;EAClB,MAAM,OAAO;CACjB;CACA,YAAY,UACR,iBAAiB;CACrB,QAAQ,OAAO,UAAgB;EAC3B,MAAM,cAAc;GAChB,OAAO,MAAM,iBAAiB;GAC9B,MAAM;GACN,KAAK,MAAM,iBAAiB;GAC5B,MAAM,eAAe,YAAY,MAAM,QAAQ,CAAC;GAChD,OAAO,CAAC;EACZ;EACA,YAAY,aAAa,OAAe,IAAI;sCACd,GAAG,UAAU,YAAY;EACvD,OAAO;CACX;AACJ,CAAC"}
1
+ {"version":3,"file":"monaco-editor-extension-DkYWNcUL.js","names":[],"sources":["../src/monaco-editor-extension.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { EditorInput, editorRegistry, File } from \"@eclipse-docks/core\";\n\neditorRegistry.registerEditorInputHandler({\n editorId: \"system.monaco-editor\",\n label: \"Code\",\n icon: \"file-pen\",\n lazyInit: async () => {\n await import('./monaco-editor');\n },\n canHandle: (input: unknown) =>\n input instanceof File,\n handle: async (input: File) => {\n const editorInput = {\n title: input.getWorkspacePath(),\n data: input,\n key: input.getWorkspacePath(),\n icon: editorRegistry.getFileIcon(input.getName()),\n state: {},\n } as EditorInput\n editorInput.component = (id: string) => html`\n <docks-monaco-editor id=${id} .input=${editorInput}></docks-monaco-editor>`\n return editorInput;\n }\n})\n"],"mappings":";;;AAGA,eAAe,2BAA2B;CACtC,UAAU;CACV,OAAO;CACP,MAAM;CACN,UAAU,YAAY;EAClB,MAAM,OAAO;CACjB;CACA,YAAY,UACR,iBAAiB;CACrB,QAAQ,OAAO,UAAgB;EAC3B,MAAM,cAAc;GAChB,OAAO,MAAM,iBAAiB;GAC9B,MAAM;GACN,KAAK,MAAM,iBAAiB;GAC5B,MAAM,eAAe,YAAY,MAAM,QAAQ,CAAC;GAChD,OAAO,CAAC;EACZ;EACA,YAAY,aAAa,OAAe,IAAI;sCACd,GAAG,UAAU,YAAY;EACvD,OAAO;CACX;AACJ,CAAC"}
@@ -2616,6 +2616,7 @@ var DocksMonacoWidget = class DocksMonacoWidget extends LitElement {
2616
2616
  this.theme = "vs-dark";
2617
2617
  this.autoLayout = false;
2618
2618
  this.containerRef = createRef();
2619
+ this.detachEpoch = 0;
2619
2620
  }
2620
2621
  getMonacoTheme() {
2621
2622
  const root = document.documentElement;
@@ -2683,6 +2684,18 @@ var DocksMonacoWidget = class DocksMonacoWidget extends LitElement {
2683
2684
  this.resizeObserver.observe(container);
2684
2685
  this.setupThemeObserver();
2685
2686
  }
2687
+ connectedCallback() {
2688
+ const moved = this.detachEpoch > 0;
2689
+ this.detachEpoch++;
2690
+ super.connectedCallback();
2691
+ if (!moved) return;
2692
+ if (this.editor) {
2693
+ this.layout();
2694
+ requestAnimationFrame(() => this.layout());
2695
+ return;
2696
+ }
2697
+ this.ensureEditor();
2698
+ }
2686
2699
  firstUpdated(_changedProperties) {
2687
2700
  super.firstUpdated(_changedProperties);
2688
2701
  this.ensureEditor();
@@ -2692,8 +2705,12 @@ var DocksMonacoWidget = class DocksMonacoWidget extends LitElement {
2692
2705
  if (changedProperties.has("value") || changedProperties.has("language") || changedProperties.has("uri")) this.ensureEditor();
2693
2706
  }
2694
2707
  disconnectedCallback() {
2695
- this.dispose();
2696
2708
  super.disconnectedCallback();
2709
+ const epoch = ++this.detachEpoch;
2710
+ queueMicrotask(() => {
2711
+ if (this.detachEpoch !== epoch || this.isConnected) return;
2712
+ this.dispose();
2713
+ });
2697
2714
  }
2698
2715
  dispose() {
2699
2716
  this.resizeObserver?.disconnect();
@@ -2800,4 +2817,4 @@ DocksMonacoWidget = _decorate([customElement("docks-monaco-widget")], DocksMonac
2800
2817
  //#endregion
2801
2818
  export { DocksMonacoWidget as t };
2802
2819
 
2803
- //# sourceMappingURL=monaco-widget-vQSNeFxK.js.map
2820
+ //# sourceMappingURL=monaco-widget-cfbcKlgw.js.map