@aiao/code-editor-angular 0.0.1 → 0.0.8
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.
|
@@ -1,62 +1,15 @@
|
|
|
1
|
+
import { SUPPORT_LANGUAGES } from '@aiao/code-editor';
|
|
1
2
|
import { isPlatformBrowser } from '@angular/common';
|
|
2
3
|
import * as i0 from '@angular/core';
|
|
3
4
|
import { inject, ElementRef, PLATFORM_ID, input, booleanAttribute, output, linkedSignal, forwardRef, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
5
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
6
|
import { indentWithTab } from '@codemirror/commands';
|
|
6
|
-
import {
|
|
7
|
+
import { indentUnit } from '@codemirror/language';
|
|
7
8
|
import { Annotation, Compartment, EditorState, StateEffect } from '@codemirror/state';
|
|
8
9
|
import { oneDark } from '@codemirror/theme-one-dark';
|
|
9
10
|
import { EditorView, placeholder, keymap, highlightWhitespace } from '@codemirror/view';
|
|
10
11
|
import { basicSetup, minimalSetup } from 'codemirror';
|
|
11
12
|
|
|
12
|
-
const sql = (dialectName) => import('@codemirror/lang-sql').then((m) => m.sql({ dialect: m[dialectName] }));
|
|
13
|
-
const CSS = LanguageDescription.of({
|
|
14
|
-
name: 'CSS',
|
|
15
|
-
extensions: ['css'],
|
|
16
|
-
load: () => import('@codemirror/lang-css').then(m => m.css())
|
|
17
|
-
});
|
|
18
|
-
const SQLite = LanguageDescription.of({
|
|
19
|
-
name: 'SQLite',
|
|
20
|
-
load: () => sql('SQLite')
|
|
21
|
-
});
|
|
22
|
-
const SQL = LanguageDescription.of({
|
|
23
|
-
name: 'SQL',
|
|
24
|
-
extensions: ['sql'],
|
|
25
|
-
load: () => sql('StandardSQL')
|
|
26
|
-
});
|
|
27
|
-
const PostgreSQL = LanguageDescription.of({
|
|
28
|
-
name: 'PostgreSQL',
|
|
29
|
-
load: () => sql('PostgreSQL')
|
|
30
|
-
});
|
|
31
|
-
const JSON = LanguageDescription.of({
|
|
32
|
-
name: 'JSON',
|
|
33
|
-
alias: ['json5'],
|
|
34
|
-
extensions: ['json', 'map'],
|
|
35
|
-
load: () => import('@codemirror/lang-json').then(m => m.json())
|
|
36
|
-
});
|
|
37
|
-
const SCSS = LanguageDescription.of({
|
|
38
|
-
name: 'SCSS',
|
|
39
|
-
extensions: ['scss'],
|
|
40
|
-
load: () => import('@codemirror/lang-sass').then(m => m.sass())
|
|
41
|
-
});
|
|
42
|
-
const Sass = LanguageDescription.of({
|
|
43
|
-
name: 'Sass',
|
|
44
|
-
extensions: ['sass'],
|
|
45
|
-
load: () => import('@codemirror/lang-sass').then(m => m.sass({ indented: true }))
|
|
46
|
-
});
|
|
47
|
-
const TypeScript = LanguageDescription.of({
|
|
48
|
-
name: 'TypeScript',
|
|
49
|
-
alias: ['ts'],
|
|
50
|
-
extensions: ['ts', 'mts', 'cts'],
|
|
51
|
-
load: () => import('@codemirror/lang-javascript').then(m => m.javascript({ typescript: true }))
|
|
52
|
-
});
|
|
53
|
-
const JavaScript = LanguageDescription.of({
|
|
54
|
-
name: 'JavaScript',
|
|
55
|
-
alias: ['ecmascript', 'js', 'node'],
|
|
56
|
-
extensions: ['js', 'mjs', 'cjs'],
|
|
57
|
-
load: () => import('@codemirror/lang-javascript').then(m => m.javascript())
|
|
58
|
-
});
|
|
59
|
-
|
|
60
13
|
/**
|
|
61
14
|
* Annotation to mark external changes that should not trigger onChange
|
|
62
15
|
*/
|
|
@@ -96,7 +49,7 @@ class CodeEditor {
|
|
|
96
49
|
indentUnit = input('', ...(ngDevMode ? [{ debugName: "indentUnit" }] : []));
|
|
97
50
|
indentWithTab = input(false, { ...(ngDevMode ? { debugName: "indentWithTab" } : {}), transform: booleanAttribute });
|
|
98
51
|
language = input('', ...(ngDevMode ? [{ debugName: "language" }] : []));
|
|
99
|
-
languages = input(
|
|
52
|
+
languages = input(SUPPORT_LANGUAGES, ...(ngDevMode ? [{ debugName: "languages" }] : []));
|
|
100
53
|
lineWrapping = input(false, { ...(ngDevMode ? { debugName: "lineWrapping" } : {}), transform: booleanAttribute });
|
|
101
54
|
placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
|
|
102
55
|
readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
|
|
@@ -284,8 +237,8 @@ class CodeEditor {
|
|
|
284
237
|
_dispatch_effects(effects) {
|
|
285
238
|
return this.#view?.dispatch({ effects });
|
|
286
239
|
}
|
|
287
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.
|
|
288
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.
|
|
240
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CodeEditor, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
241
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: CodeEditor, isStandalone: true, selector: "ao-code-editor", inputs: { autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, highlightWhitespace: { classPropertyName: "highlightWhitespace", publicName: "highlightWhitespace", isSignal: true, isRequired: false, transformFunction: null }, indentUnit: { classPropertyName: "indentUnit", publicName: "indentUnit", isSignal: true, isRequired: false, transformFunction: null }, indentWithTab: { classPropertyName: "indentWithTab", publicName: "indentWithTab", isSignal: true, isRequired: false, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, languages: { classPropertyName: "languages", publicName: "languages", isSignal: true, isRequired: false, transformFunction: null }, lineWrapping: { classPropertyName: "lineWrapping", publicName: "lineWrapping", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, root: { classPropertyName: "root", publicName: "root", isSignal: true, isRequired: false, transformFunction: null }, setup: { classPropertyName: "setup", publicName: "setup", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { aoFocus: "aoFocus", aoChange: "aoChange", aoBlur: "aoBlur" }, providers: [
|
|
289
242
|
{
|
|
290
243
|
provide: NG_VALUE_ACCESSOR,
|
|
291
244
|
useExisting: forwardRef(() => CodeEditor),
|
|
@@ -293,7 +246,7 @@ class CodeEditor {
|
|
|
293
246
|
}
|
|
294
247
|
], usesOnChanges: true, ngImport: i0, template: ``, isInline: true, styles: [":host{display:block;height:100%}:host ::ng-deep .cm-editor{height:100%}:host ::ng-deep .cm-focused{outline:none}:host ::ng-deep .cm-content{white-space:pre-wrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
295
248
|
}
|
|
296
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.
|
|
249
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CodeEditor, decorators: [{
|
|
297
250
|
type: Component,
|
|
298
251
|
args: [{ selector: 'ao-code-editor', template: ``, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
299
252
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiao-code-editor-angular.mjs","sources":["../../../../packages/code-editor-angular/src/languages.ts","../../../../packages/code-editor-angular/src/code-editor.ts","../../../../packages/code-editor-angular/src/aiao-code-editor-angular.ts"],"sourcesContent":["import { LanguageDescription, LanguageSupport } from '@codemirror/language';\n\nconst sql = (dialectName: string) =>\n import('@codemirror/lang-sql').then((m: any) => m.sql({ dialect: m[dialectName] }) as unknown as LanguageSupport);\n\nexport const CSS = LanguageDescription.of({\n name: 'CSS',\n extensions: ['css'],\n load: () => import('@codemirror/lang-css').then(m => m.css() as unknown as LanguageSupport)\n});\n\nexport const SQLite = LanguageDescription.of({\n name: 'SQLite',\n load: () => sql('SQLite')\n});\n\nexport const SQL = LanguageDescription.of({\n name: 'SQL',\n extensions: ['sql'],\n load: () => sql('StandardSQL')\n});\n\nexport const PostgreSQL = LanguageDescription.of({\n name: 'PostgreSQL',\n load: () => sql('PostgreSQL')\n});\n\nexport const JSON = LanguageDescription.of({\n name: 'JSON',\n alias: ['json5'],\n extensions: ['json', 'map'],\n load: () => import('@codemirror/lang-json').then(m => m.json() as unknown as LanguageSupport)\n});\n\nexport const SCSS = LanguageDescription.of({\n name: 'SCSS',\n extensions: ['scss'],\n load: () => import('@codemirror/lang-sass').then(m => m.sass() as unknown as LanguageSupport)\n});\n\nexport const Sass = LanguageDescription.of({\n name: 'Sass',\n extensions: ['sass'],\n load: () => import('@codemirror/lang-sass').then(m => m.sass({ indented: true }) as unknown as LanguageSupport)\n});\n\nexport const TypeScript = LanguageDescription.of({\n name: 'TypeScript',\n alias: ['ts'],\n extensions: ['ts', 'mts', 'cts'],\n load: () =>\n import('@codemirror/lang-javascript').then(m => m.javascript({ typescript: true }) as unknown as LanguageSupport)\n});\n\nexport const JavaScript = LanguageDescription.of({\n name: 'JavaScript',\n alias: ['ecmascript', 'js', 'node'],\n extensions: ['js', 'mjs', 'cjs'],\n load: () => import('@codemirror/lang-javascript').then(m => m.javascript() as unknown as LanguageSupport)\n});\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n inject,\n input,\n linkedSignal,\n OnChanges,\n OnDestroy,\n OnInit,\n output,\n PLATFORM_ID,\n SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { indentWithTab } from '@codemirror/commands';\nimport { indentUnit, LanguageDescription } from '@codemirror/language';\nimport { Annotation, Compartment, EditorState, Extension, StateEffect } from '@codemirror/state';\nimport { oneDark } from '@codemirror/theme-one-dark';\nimport { EditorView, highlightWhitespace, keymap, placeholder } from '@codemirror/view';\nimport { basicSetup, minimalSetup } from 'codemirror';\nimport { CSS, JavaScript, JSON, PostgreSQL, Sass, SCSS, SQL, SQLite, TypeScript } from './languages.js';\n\ntype Setup = 'basic' | 'minimal' | null;\ntype CodeEditorTheme = 'light' | 'dark';\n\n/**\n * Annotation to mark external changes that should not trigger onChange\n */\nexport const External = Annotation.define<boolean>();\n\n@Component({\n selector: 'ao-code-editor',\n template: ``,\n styleUrl: './code-editor.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CodeEditor),\n multi: true\n }\n ]\n})\nexport class CodeEditor implements OnInit, ControlValueAccessor, OnDestroy, OnChanges {\n /**\n * EditorView instance\n * https://codemirror.net/docs/ref/#view.EditorView\n */\n #view?: EditorView;\n\n #elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n #platformId = inject(PLATFORM_ID);\n #isBrowser = isPlatformBrowser(this.#platformId);\n\n // Compartments for dynamic reconfiguration\n // https://codemirror.net/docs/ref/#state.Compartment\n #editableConf = new Compartment();\n #readonlyConf = new Compartment();\n #themeConf = new Compartment();\n #placeholderConf = new Compartment();\n #indentWithTabConf = new Compartment();\n #indentUnitConf = new Compartment();\n #lineWrappingConf = new Compartment();\n #highlightWhitespaceConf = new Compartment();\n #languageConf = new Compartment();\n\n // Update listener for content changes\n #updateListener = EditorView.updateListener.of(vu => {\n if (vu.docChanged && !vu.transactions.some(tr => tr.annotation(External))) {\n const value = vu.state.doc.toString();\n this.onChange?.(value);\n this.aoChange.emit(value);\n }\n });\n\n // Input properties\n autoFocus = input<boolean>(false);\n disabled = input<boolean>(false);\n highlightWhitespace = input(false, { transform: booleanAttribute });\n indentUnit = input<string>('');\n indentWithTab = input(false, { transform: booleanAttribute });\n language = input<string>('');\n languages = input<LanguageDescription[]>([CSS, SQLite, SQL, PostgreSQL, JSON, SCSS, Sass, TypeScript, JavaScript]);\n lineWrapping = input(false, { transform: booleanAttribute });\n placeholder = input<string>('');\n readonly = input<boolean>(false);\n root = input<Document | ShadowRoot>();\n setup = input<Setup>('basic');\n theme = input<CodeEditorTheme>('light');\n value = input<string>('');\n\n // Output events\n aoFocus = output<void>();\n aoChange = output<string>();\n aoBlur = output<void>();\n\n // Linked signal for disabled state\n useDisabled = linkedSignal(() => this.disabled());\n\n onChange?: (value: string) => void;\n onTouched?: () => void;\n\n ngOnInit() {\n if (!this.#isBrowser) return;\n const extensions: Extension[] = this._get_all_extensions();\n const state = EditorState.create({ doc: this.value(), extensions });\n this.#view = new EditorView({\n parent: this.#elementRef.nativeElement,\n state\n });\n\n if (this.autoFocus()) {\n this.#view.focus();\n }\n\n this.#view.contentDOM.addEventListener('focus', () => {\n this.onTouched?.();\n this.aoFocus.emit();\n });\n\n this.#view.contentDOM.addEventListener('blur', () => {\n this.onTouched?.();\n this.aoBlur.emit();\n });\n this.setEditable(!this.disabled());\n this.setReadonly(this.readonly());\n this.setTheme(this.theme());\n this.setPlaceholder(this.placeholder());\n this.setIndentWithTab(this.indentWithTab());\n this.setIndentUnit(this.indentUnit());\n this.setLineWrapping(this.lineWrapping());\n this.setHighlightWhitespace(this.highlightWhitespace());\n this.setLanguage(this.language());\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.#view) return;\n if (changes['value']) {\n this.setValue(this.value());\n }\n if (changes['disabled']) {\n this.setEditable(!this.disabled());\n }\n if (changes['readonly']) {\n this.setReadonly(this.readonly());\n }\n if (changes['theme']) {\n this.setTheme(this.theme());\n }\n if (changes['placeholder']) {\n this.setPlaceholder(this.placeholder());\n }\n if (changes['indentWithTab']) {\n this.setIndentWithTab(this.indentWithTab());\n }\n if (changes['indentUnit']) {\n this.setIndentUnit(this.indentUnit());\n }\n if (changes['lineWrapping']) {\n this.setLineWrapping(this.lineWrapping());\n }\n if (changes['highlightWhitespace']) {\n this.setHighlightWhitespace(this.highlightWhitespace());\n }\n if (changes['language']) {\n this.setLanguage(this.language());\n }\n if (changes['setup'] || changes['extensions']) {\n this.setExtensions(this._get_all_extensions());\n }\n }\n\n ngOnDestroy(): void {\n this.#view?.destroy();\n }\n\n public writeValue(value: string): void {\n if (this.#view) {\n this.setValue(value, true);\n }\n }\n\n public registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.useDisabled.set(isDisabled);\n this.setEditable(!isDisabled);\n }\n\n setExtensions(value: Extension[]) {\n this._dispatch_effects(StateEffect.reconfigure.of(value));\n }\n\n setValue(value: string, external = false) {\n this.#view?.dispatch({\n changes: { from: 0, to: this.#view.state.doc.length, insert: value },\n annotations: external ? External.of(true) : undefined\n });\n }\n\n setEditable(value: boolean) {\n this._dispatch_effects(this.#editableConf.reconfigure(EditorView.editable.of(value)));\n }\n\n setReadonly(value: boolean) {\n this._dispatch_effects(this.#readonlyConf.reconfigure(EditorState.readOnly.of(value)));\n }\n\n setTheme(value: CodeEditorTheme) {\n this._dispatch_effects(this.#themeConf.reconfigure(value === 'dark' ? oneDark : []));\n }\n\n setPlaceholder(value: string) {\n this._dispatch_effects(this.#placeholderConf.reconfigure(value ? placeholder(value) : []));\n }\n\n setIndentWithTab(value: boolean) {\n this._dispatch_effects(this.#indentWithTabConf.reconfigure(value ? keymap.of([indentWithTab]) : []));\n }\n\n setIndentUnit(value: string) {\n this._dispatch_effects(this.#indentUnitConf.reconfigure(value ? indentUnit.of(value) : []));\n }\n\n setLineWrapping(value: boolean) {\n this._dispatch_effects(this.#lineWrappingConf.reconfigure(value ? EditorView.lineWrapping : []));\n }\n\n setHighlightWhitespace(value: boolean) {\n this._dispatch_effects(this.#highlightWhitespaceConf.reconfigure(value ? highlightWhitespace() : []));\n }\n\n setLanguage(lang: string) {\n if (!lang || lang == 'plaintext') {\n this._dispatch_effects(this.#languageConf.reconfigure([]));\n return;\n }\n const languages = this.languages();\n if (languages.length === 0 && this.#view) {\n console.error('No supported languages. Please set the `languages` prop at first.');\n return;\n }\n const langDesc = this._find_language(lang);\n langDesc?.load().then(lang => {\n this._dispatch_effects(this.#languageConf.reconfigure([lang]));\n });\n }\n\n protected _get_all_extensions() {\n const extensions: Extension[] = [\n this.#updateListener,\n this.#editableConf.of([]),\n this.#readonlyConf.of([]),\n this.#themeConf.of([]),\n this.#placeholderConf.of([]),\n this.#indentWithTabConf.of([]),\n this.#indentUnitConf.of([]),\n this.#lineWrappingConf.of([]),\n this.#highlightWhitespaceConf.of([]),\n this.#languageConf.of([]),\n EditorView.lineWrapping\n ];\n const setup = this.setup();\n if (setup === 'basic') {\n extensions.push(basicSetup);\n } else if (setup === 'minimal') {\n extensions.push(minimalSetup);\n }\n return extensions;\n }\n\n protected _find_language(name: string) {\n const languages = this.languages();\n for (const lang of languages) {\n for (const alias of [lang.name, ...lang.alias]) {\n if (name.toLowerCase() === alias.toLowerCase()) {\n return lang;\n }\n }\n }\n console.error('Language not found:', name);\n console.info('Supported language names:', languages.map(lang => lang.name).join(', '));\n return null;\n }\n\n protected _dispatch_effects(effects: StateEffect<any> | readonly StateEffect<any>[]) {\n return this.#view?.dispatch({ effects });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aiao-code-editor-angular.mjs","sources":["../../../../packages/code-editor-angular/src/code-editor.ts","../../../../packages/code-editor-angular/src/aiao-code-editor-angular.ts"],"sourcesContent":["import { SUPPORT_LANGUAGES } from '@aiao/code-editor';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n inject,\n input,\n linkedSignal,\n OnChanges,\n OnDestroy,\n OnInit,\n output,\n PLATFORM_ID,\n SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { indentWithTab } from '@codemirror/commands';\nimport { indentUnit, LanguageDescription } from '@codemirror/language';\nimport { Annotation, Compartment, EditorState, Extension, StateEffect } from '@codemirror/state';\nimport { oneDark } from '@codemirror/theme-one-dark';\nimport { EditorView, highlightWhitespace, keymap, placeholder } from '@codemirror/view';\nimport { basicSetup, minimalSetup } from 'codemirror';\n\ntype Setup = 'basic' | 'minimal' | null;\ntype CodeEditorTheme = 'light' | 'dark';\n\n/**\n * Annotation to mark external changes that should not trigger onChange\n */\nexport const External = Annotation.define<boolean>();\n\n@Component({\n selector: 'ao-code-editor',\n template: ``,\n styleUrl: './code-editor.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CodeEditor),\n multi: true\n }\n ]\n})\nexport class CodeEditor implements OnInit, ControlValueAccessor, OnDestroy, OnChanges {\n /**\n * EditorView instance\n * https://codemirror.net/docs/ref/#view.EditorView\n */\n #view?: EditorView;\n\n #elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n #platformId = inject(PLATFORM_ID);\n #isBrowser = isPlatformBrowser(this.#platformId);\n\n // Compartments for dynamic reconfiguration\n // https://codemirror.net/docs/ref/#state.Compartment\n #editableConf = new Compartment();\n #readonlyConf = new Compartment();\n #themeConf = new Compartment();\n #placeholderConf = new Compartment();\n #indentWithTabConf = new Compartment();\n #indentUnitConf = new Compartment();\n #lineWrappingConf = new Compartment();\n #highlightWhitespaceConf = new Compartment();\n #languageConf = new Compartment();\n\n // Update listener for content changes\n #updateListener = EditorView.updateListener.of(vu => {\n if (vu.docChanged && !vu.transactions.some(tr => tr.annotation(External))) {\n const value = vu.state.doc.toString();\n this.onChange?.(value);\n this.aoChange.emit(value);\n }\n });\n\n // Input properties\n autoFocus = input<boolean>(false);\n disabled = input<boolean>(false);\n highlightWhitespace = input(false, { transform: booleanAttribute });\n indentUnit = input<string>('');\n indentWithTab = input(false, { transform: booleanAttribute });\n language = input<string>('');\n languages = input<LanguageDescription[]>(SUPPORT_LANGUAGES as any);\n lineWrapping = input(false, { transform: booleanAttribute });\n placeholder = input<string>('');\n readonly = input<boolean>(false);\n root = input<Document | ShadowRoot>();\n setup = input<Setup>('basic');\n theme = input<CodeEditorTheme>('light');\n value = input<string>('');\n\n // Output events\n aoFocus = output<void>();\n aoChange = output<string>();\n aoBlur = output<void>();\n\n // Linked signal for disabled state\n useDisabled = linkedSignal(() => this.disabled());\n\n onChange?: (value: string) => void;\n onTouched?: () => void;\n\n ngOnInit() {\n if (!this.#isBrowser) return;\n const extensions: Extension[] = this._get_all_extensions();\n const state = EditorState.create({ doc: this.value(), extensions });\n this.#view = new EditorView({\n parent: this.#elementRef.nativeElement,\n state\n });\n\n if (this.autoFocus()) {\n this.#view.focus();\n }\n\n this.#view.contentDOM.addEventListener('focus', () => {\n this.onTouched?.();\n this.aoFocus.emit();\n });\n\n this.#view.contentDOM.addEventListener('blur', () => {\n this.onTouched?.();\n this.aoBlur.emit();\n });\n this.setEditable(!this.disabled());\n this.setReadonly(this.readonly());\n this.setTheme(this.theme());\n this.setPlaceholder(this.placeholder());\n this.setIndentWithTab(this.indentWithTab());\n this.setIndentUnit(this.indentUnit());\n this.setLineWrapping(this.lineWrapping());\n this.setHighlightWhitespace(this.highlightWhitespace());\n this.setLanguage(this.language());\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.#view) return;\n if (changes['value']) {\n this.setValue(this.value());\n }\n if (changes['disabled']) {\n this.setEditable(!this.disabled());\n }\n if (changes['readonly']) {\n this.setReadonly(this.readonly());\n }\n if (changes['theme']) {\n this.setTheme(this.theme());\n }\n if (changes['placeholder']) {\n this.setPlaceholder(this.placeholder());\n }\n if (changes['indentWithTab']) {\n this.setIndentWithTab(this.indentWithTab());\n }\n if (changes['indentUnit']) {\n this.setIndentUnit(this.indentUnit());\n }\n if (changes['lineWrapping']) {\n this.setLineWrapping(this.lineWrapping());\n }\n if (changes['highlightWhitespace']) {\n this.setHighlightWhitespace(this.highlightWhitespace());\n }\n if (changes['language']) {\n this.setLanguage(this.language());\n }\n if (changes['setup'] || changes['extensions']) {\n this.setExtensions(this._get_all_extensions());\n }\n }\n\n ngOnDestroy(): void {\n this.#view?.destroy();\n }\n\n public writeValue(value: string): void {\n if (this.#view) {\n this.setValue(value, true);\n }\n }\n\n public registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.useDisabled.set(isDisabled);\n this.setEditable(!isDisabled);\n }\n\n setExtensions(value: Extension[]) {\n this._dispatch_effects(StateEffect.reconfigure.of(value));\n }\n\n setValue(value: string, external = false) {\n this.#view?.dispatch({\n changes: { from: 0, to: this.#view.state.doc.length, insert: value },\n annotations: external ? External.of(true) : undefined\n });\n }\n\n setEditable(value: boolean) {\n this._dispatch_effects(this.#editableConf.reconfigure(EditorView.editable.of(value)));\n }\n\n setReadonly(value: boolean) {\n this._dispatch_effects(this.#readonlyConf.reconfigure(EditorState.readOnly.of(value)));\n }\n\n setTheme(value: CodeEditorTheme) {\n this._dispatch_effects(this.#themeConf.reconfigure(value === 'dark' ? oneDark : []));\n }\n\n setPlaceholder(value: string) {\n this._dispatch_effects(this.#placeholderConf.reconfigure(value ? placeholder(value) : []));\n }\n\n setIndentWithTab(value: boolean) {\n this._dispatch_effects(this.#indentWithTabConf.reconfigure(value ? keymap.of([indentWithTab]) : []));\n }\n\n setIndentUnit(value: string) {\n this._dispatch_effects(this.#indentUnitConf.reconfigure(value ? indentUnit.of(value) : []));\n }\n\n setLineWrapping(value: boolean) {\n this._dispatch_effects(this.#lineWrappingConf.reconfigure(value ? EditorView.lineWrapping : []));\n }\n\n setHighlightWhitespace(value: boolean) {\n this._dispatch_effects(this.#highlightWhitespaceConf.reconfigure(value ? highlightWhitespace() : []));\n }\n\n setLanguage(lang: string) {\n if (!lang || lang == 'plaintext') {\n this._dispatch_effects(this.#languageConf.reconfigure([]));\n return;\n }\n const languages = this.languages();\n if (languages.length === 0 && this.#view) {\n console.error('No supported languages. Please set the `languages` prop at first.');\n return;\n }\n const langDesc = this._find_language(lang);\n langDesc?.load().then(lang => {\n this._dispatch_effects(this.#languageConf.reconfigure([lang]));\n });\n }\n\n protected _get_all_extensions() {\n const extensions: Extension[] = [\n this.#updateListener,\n this.#editableConf.of([]),\n this.#readonlyConf.of([]),\n this.#themeConf.of([]),\n this.#placeholderConf.of([]),\n this.#indentWithTabConf.of([]),\n this.#indentUnitConf.of([]),\n this.#lineWrappingConf.of([]),\n this.#highlightWhitespaceConf.of([]),\n this.#languageConf.of([]),\n EditorView.lineWrapping\n ];\n const setup = this.setup();\n if (setup === 'basic') {\n extensions.push(basicSetup);\n } else if (setup === 'minimal') {\n extensions.push(minimalSetup);\n }\n return extensions;\n }\n\n protected _find_language(name: string) {\n const languages = this.languages();\n for (const lang of languages) {\n for (const alias of [lang.name, ...lang.alias]) {\n if (name.toLowerCase() === alias.toLowerCase()) {\n return lang;\n }\n }\n }\n console.error('Language not found:', name);\n console.info('Supported language names:', languages.map(lang => lang.name).join(', '));\n return null;\n }\n\n protected _dispatch_effects(effects: StateEffect<any> | readonly StateEffect<any>[]) {\n return this.#view?.dispatch({ effects });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,21 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiao/code-editor-angular",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@codemirror/commands": "^6.8.1",
|
|
6
6
|
"@codemirror/language": "^6.11.3",
|
|
7
|
-
"@codemirror/lang-json": "^6.0.2",
|
|
8
|
-
"@codemirror/lang-sass": "^6.0.2",
|
|
9
|
-
"@codemirror/lang-javascript": "^6.2.4",
|
|
10
7
|
"@codemirror/state": "^6.5.2",
|
|
11
8
|
"@codemirror/theme-one-dark": "^6.1.3",
|
|
12
9
|
"@codemirror/view": "^6.38.6",
|
|
13
10
|
"codemirror": "^6.0.1",
|
|
14
|
-
"@
|
|
15
|
-
"@codemirror/lang-css": "^6.3.1"
|
|
16
|
-
},
|
|
17
|
-
"publishConfig": {
|
|
18
|
-
"access": "public"
|
|
11
|
+
"@aiao/code-editor": "0.0.8"
|
|
19
12
|
},
|
|
20
13
|
"sideEffects": false,
|
|
21
14
|
"module": "fesm2022/aiao-code-editor-angular.mjs",
|