@next-bricks/vs 1.14.13 → 1.15.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/bricks.json +1 -1
- package/dist/chunks/{6035.8d5ea739.js → 2856.2565622d.js} +2 -2
- package/dist/chunks/2856.2565622d.js.map +1 -0
- package/dist/chunks/6090.fafa68bd.js +3 -0
- package/dist/chunks/6090.fafa68bd.js.LICENSE.txt +5 -0
- package/dist/chunks/6090.fafa68bd.js.map +1 -0
- package/dist/chunks/7242.43943ae7.js +2 -0
- package/dist/chunks/7242.43943ae7.js.map +1 -0
- package/dist/chunks/9259.9f0a060b.js +2 -0
- package/dist/chunks/9259.9f0a060b.js.map +1 -0
- package/dist/chunks/code-editor.3e401ebe.js +2 -0
- package/dist/chunks/code-editor.3e401ebe.js.map +1 -0
- package/dist/chunks/main.e8e9cd06.js +2 -0
- package/dist/chunks/main.e8e9cd06.js.map +1 -0
- package/dist/index.9bb74d10.js +2 -0
- package/dist/index.9bb74d10.js.map +1 -0
- package/dist/manifest.json +13 -1
- package/dist/types.json +17 -0
- package/dist-types/code-editor/index.d.ts +13 -2
- package/dist-types/code-editor/workers/spellCheck.d.ts +15 -0
- package/dist-types/code-editor/workers/spellCheck.spec.d.ts +1 -0
- package/dist-types/code-editor/workers/spellCheck.worker.d.ts +1 -0
- package/dist-types/code-editor/workers/spellCheckRemoteWorker.d.ts +5 -0
- package/dist-types/code-editor/workers/yamlLinter.d.ts +0 -1
- package/package.json +2 -2
- package/dist/chunks/6035.8d5ea739.js.map +0 -1
- package/dist/chunks/7242.7eaeafb6.js +0 -2
- package/dist/chunks/7242.7eaeafb6.js.map +0 -1
- package/dist/chunks/code-editor.4d9b5ee2.js +0 -2
- package/dist/chunks/code-editor.4d9b5ee2.js.map +0 -1
- package/dist/chunks/main.ba8763bc.js +0 -2
- package/dist/chunks/main.ba8763bc.js.map +0 -1
- package/dist/index.1d20d908.js +0 -2
- package/dist/index.1d20d908.js.map +0 -1
package/dist/manifest.json
CHANGED
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
},
|
|
126
126
|
{
|
|
127
127
|
"name": "extraLibs",
|
|
128
|
-
"description": "",
|
|
128
|
+
"description": "额外声明的 lib 库",
|
|
129
129
|
"attribute": false,
|
|
130
130
|
"type": "ExtraLib[]"
|
|
131
131
|
},
|
|
@@ -134,6 +134,18 @@
|
|
|
134
134
|
"description": "",
|
|
135
135
|
"default": "true",
|
|
136
136
|
"type": "boolean"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"name": "spellCheck",
|
|
140
|
+
"description": "是否启用英语拼写检查",
|
|
141
|
+
"default": "true",
|
|
142
|
+
"type": "boolean"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"name": "knownWords",
|
|
146
|
+
"description": "启用英语拼写检查时,除系统设置的词汇表外,指定其他的已知单词(小写)。",
|
|
147
|
+
"attribute": false,
|
|
148
|
+
"type": "string[]"
|
|
137
149
|
}
|
|
138
150
|
],
|
|
139
151
|
"events": [
|
package/dist/types.json
CHANGED
|
@@ -270,6 +270,23 @@
|
|
|
270
270
|
"type": "keyword",
|
|
271
271
|
"value": "boolean"
|
|
272
272
|
}
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"name": "spellCheck",
|
|
276
|
+
"annotation": {
|
|
277
|
+
"type": "keyword",
|
|
278
|
+
"value": "boolean"
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"name": "knownWords",
|
|
283
|
+
"annotation": {
|
|
284
|
+
"type": "array",
|
|
285
|
+
"elementType": {
|
|
286
|
+
"type": "keyword",
|
|
287
|
+
"value": "string"
|
|
288
|
+
}
|
|
289
|
+
}
|
|
273
290
|
}
|
|
274
291
|
],
|
|
275
292
|
"events": [
|
|
@@ -31,6 +31,8 @@ export interface CodeEditorProps {
|
|
|
31
31
|
validateState?: string;
|
|
32
32
|
customValidationInBrickNextYaml?: boolean;
|
|
33
33
|
fixedOverflowWidgets?: boolean;
|
|
34
|
+
spellCheck?: boolean;
|
|
35
|
+
knownWords?: string[];
|
|
34
36
|
}
|
|
35
37
|
export interface Marker {
|
|
36
38
|
token: string;
|
|
@@ -120,17 +122,26 @@ export declare class CodeEditor extends FormItemElementBase implements CodeEdito
|
|
|
120
122
|
*/
|
|
121
123
|
accessor glyphMargin: boolean | undefined;
|
|
122
124
|
/**
|
|
123
|
-
*
|
|
125
|
+
* 额外声明的 lib 库
|
|
124
126
|
*/
|
|
125
127
|
accessor extraLibs: ExtraLib[] | undefined;
|
|
126
128
|
/**
|
|
127
129
|
* @default true
|
|
128
130
|
*/
|
|
129
131
|
accessor fixedOverflowWidgets: boolean | undefined;
|
|
132
|
+
/**
|
|
133
|
+
* 是否启用英语拼写检查
|
|
134
|
+
* @default true
|
|
135
|
+
*/
|
|
136
|
+
accessor spellCheck: boolean | undefined;
|
|
137
|
+
/**
|
|
138
|
+
* 启用英语拼写检查时,除系统设置的词汇表外,指定其他的已知单词(小写)。
|
|
139
|
+
*/
|
|
140
|
+
accessor knownWords: string[] | undefined;
|
|
130
141
|
connectedCallback(): void;
|
|
131
142
|
render(): React.JSX.Element;
|
|
132
143
|
}
|
|
133
|
-
export declare function CodeEditorComponent({ value: _value, language: _language, theme: _theme, minLines: _minLines, maxLines: _maxLines, height: _height, automaticLayout, completers, advancedCompleters, markers, readOnly, links, extraLibs, tokenConfig, showExpandButton, showCopyButton, lineNumbers, glyphMargin, placeholder, validateState, onChange, onTokenClick, customValidationInBrickNextYaml, fixedOverflowWidgets: _fixedOverflowWidgets, }: CodeEditorProps & {
|
|
144
|
+
export declare function CodeEditorComponent({ value: _value, language: _language, theme: _theme, minLines: _minLines, maxLines: _maxLines, height: _height, automaticLayout, completers, advancedCompleters, markers, readOnly, links, extraLibs, tokenConfig, showExpandButton, showCopyButton, lineNumbers, glyphMargin, placeholder, validateState, onChange, onTokenClick, customValidationInBrickNextYaml, fixedOverflowWidgets: _fixedOverflowWidgets, spellCheck: _spellCheck, knownWords, }: CodeEditorProps & {
|
|
134
145
|
onChange(value: string): void;
|
|
135
146
|
onUserInput: (value: any) => void;
|
|
136
147
|
onTokenClick(word: string): void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as monaco from "monaco-editor/esm/vs/editor/editor.api.js";
|
|
2
|
+
export interface SpellCheckRequest {
|
|
3
|
+
source: string;
|
|
4
|
+
knownWords?: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface SpellCheckResponse {
|
|
7
|
+
markers: Marker[];
|
|
8
|
+
}
|
|
9
|
+
export interface Marker {
|
|
10
|
+
start: number;
|
|
11
|
+
end: number;
|
|
12
|
+
message: string;
|
|
13
|
+
severity: keyof typeof monaco.MarkerSeverity;
|
|
14
|
+
}
|
|
15
|
+
export declare function spellCheck({ source, knownWords, }: SpellCheckRequest): SpellCheckResponse;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SpellCheckRequest, SpellCheckResponse } from "./spellCheck";
|
|
2
|
+
export interface RemoteSpellCheckWorker {
|
|
3
|
+
spellCheck(req: SpellCheckRequest): Promise<SpellCheckResponse>;
|
|
4
|
+
}
|
|
5
|
+
export declare function getRemoteSpellCheckWorker(): Promise<RemoteSpellCheckWorker>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-bricks/vs",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-advanced-bricks/tree/master/bricks/vs",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
"@next-bricks/form": "*",
|
|
67
67
|
"@next-bricks/icons": "*"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "ca077a7cb7d7f616a2a7344b00dd5ca382ebed7b"
|
|
70
70
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/6035.8d5ea739.js","mappings":"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CACR,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,MAGRC,iBAAkB,CAChB,CAAEC,KAAM,IAAKC,MAAO,KACpB,CAAED,KAAM,IAAKC,MAAO,KACpB,CAAED,KAAM,IAAKC,MAAO,KACpB,CAAED,KAAM,IAAKC,MAAO,IAAKC,MAAO,CAAC,WACjC,CAAEF,KAAM,IAAKC,MAAO,IAAKC,MAAO,CAAC,SAAU,aAG7CC,aAAc,CACZ,CAEEC,WAAY,MACZC,UAAW,MACXC,OAAQ,CACNC,a,QAAcC,UAAiBC,aAAaC,cAC5CC,WAAY,SAMPC,EAAY,CAEvB,QACA,SACA,WACA,MACA,MACA,OACA,UACA,OACA,SACA,YACA,OACA,OACA,QAEA,SAEA,MAEA,SACA,UACA,cAEA,YACA,gBACA,eACA,aACA,UACA,OACA,SACA,gBACA,MAEA,UACA,OACA,WACA,SACA,KAGWC,EAAkB,CAE7B,WACA,WACA,UACA,aAEA,UACA,gBACA,eACA,eACA,cACA,WACA,kBACA,aACA,WACA,aAEA,SACA,UACA,cACA,aACA,UACA,QACA,OACA,YACA,OACA,aAEA,MACA,SACA,aACA,MACA,SAEA,YACA,WACA,YACA,YACA,WACA,UAEA,cACA,cACA,QACA,SACA,QACA,YACA,aACA,OACA,SACA,UACA,YACA,SAEA,QACA,UAGWC,EAA8C,CAEzDC,aAAc,UAEdC,aAAc,OAEdC,SAAU,CAER,KACA,KACA,QACA,QACA,WACA,OACA,MACA,WACA,KACA,SACA,MACA,OACA,UACA,YACA,SACA,MACA,OACA,QAEA,OAEA,OACA,SAGFL,YAEAM,gBAAiBL,EAEjBM,UAAW,CAET,KACA,KAEA,KACA,IACA,KACA,IACA,KACA,KAGA,IACA,IACA,IACA,IACA,IACA,KAIFC,QAAS,sBAETC,QACE,kFAGFC,UAAW,CACTC,KAAM,CAEJ,CACE,mBACA,CACEC,MAAO,CACL,YAAa,UACb,aAAc,UACd,WAAY,gBAMlB,CACE,yBACA,CACE,WACA,CACEA,MAAO,CACL,mBAAoB,UACpB,WAAY,iBAOpB,CAAEC,QAAS,eAGX,C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","sources":["webpack:///../../src/FormItemElement.tsx","webpack:///./src/code-editor/utils/constants.ts","webpack:///./src/code-editor/languages/cel.ts","webpack:///./src/code-editor/widget/Placeholder.tsx","webpack:///./src/code-editor/utils/embeddedModelState.ts","webpack:///./src/code-editor/languages/cel-yaml.ts","webpack:///./src/code-editor/index.css","webpack:///./src/code-editor/index.css?aefa","webpack:///./src/generated-actions.js","webpack:///./src/code-editor/utils/brickNextYaml.ts","webpack:///./src/code-editor/utils/jsSuggestInBrickYaml.ts","webpack:///./src/code-editor/utils/editorId.ts","webpack:///./src/code-editor/workers/yamlLinter.ts","webpack:///./src/code-editor/utils/isInEmbedded.ts","webpack:///./src/code-editor/utils/celCompletionProvider.ts","webpack:///./src/code-editor/constants.ts","webpack:///../../node_modules/monaco-editor/esm/vs/editor/common/services/findSectionHeaders.js","webpack:///./src/code-editor/i18n.ts","webpack:///./src/code-editor/languages/cel-str.ts","webpack:///./src/code-editor/utils/addExtraLibs.ts"],"sourcesContent":["import { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport type { AbstractForm, ColProps } from \"./Form.js\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\nconst { method, property } = createDecorators();\n\nexport abstract class FormItemElementBase extends ReactNextElement {\n accessor #_notRender = false;\n accessor #validate = \"normal\";\n accessor #bindFormItem = false;\n\n get isFormItemElement(): true {\n return true;\n }\n\n set validateState(value: string) {\n this.#validate = value;\n this._render();\n }\n get validateState() {\n return this.#validate;\n }\n\n /**\n * 控制该表单项是否隐藏\n * @default false\n * @group ui\n */\n set notRender(value: boolean) {\n this.hidden = value;\n this.#_notRender = value;\n this._render();\n }\n get notRender(): boolean {\n return this.#_notRender;\n }\n\n get $bindFormItem() {\n return this.#bindFormItem;\n }\n set $bindFormItem(value: boolean) {\n this.#bindFormItem = value;\n this._render();\n }\n\n @property({\n attribute: false,\n })\n accessor helpBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelCol: ColProps | undefined;\n\n @property({\n attribute: false,\n })\n accessor wrapperCol: ColProps | undefined;\n\n @method()\n setNotRender(value: boolean) {\n this.notRender = value;\n }\n\n @method()\n getFormElement(): AbstractForm | null {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let element: AbstractForm | null = this as unknown as AbstractForm;\n while ((element = element.parentNode as AbstractForm | null)) {\n if (!element || element.isFormElement) {\n break;\n }\n }\n return element as AbstractForm | null;\n }\n}\n","export const EVALUATE_KEYWORD = [\n \"CTX\",\n \"STATE\",\n \"DATA\",\n \"EVENT\",\n \"FLAGS\",\n \"APP\",\n \"ANCHOR\",\n \"HASH\",\n \"INSTALLED_APPS\",\n \"ITEM\",\n \"INDEX\",\n \"SIZE\",\n \"LOCAL_STORAGE\",\n \"MEDIA\",\n \"MISC\",\n \"PARAMS\",\n \"PATH\",\n \"PROCESSORS\",\n \"QUERY\",\n \"QUERY_ARRAY\",\n \"SESSION_STORAGE\",\n \"TPL\",\n \"SYS\",\n \"BASE_URL\",\n \"IMG\",\n \"FN\",\n \"I18N\",\n \"I18N_TEXT\",\n \"PERMISSIONS\",\n \"THEME\",\n];\n\nexport const brickNextKeywords = [\n \"target\",\n \"targetRef\",\n \"properties\",\n \"events\",\n \"method\",\n \"callback\",\n \"success\",\n \"error\",\n \"action\",\n \"useProvider\",\n \"useChildren\",\n \"useBrick\",\n \"args\",\n \"if\",\n \"then\",\n];\n\nexport const Level = {\n /**\n * @deprecated Typo, use `hint` instead\n */\n hit: 1,\n hint: 1,\n info: 2,\n warn: 4,\n error: 8,\n};\n\nexport const builtInKeywordDeclare = `\n declare const DATA: any;\n declare const EVENT: CustomEvent<any>;\n declare const FLAGS: Record<string, boolean>;\n declare const ANCHOR: string | null;\n declare const HASH: string;\n declare namespace INSTALLED_APPS {\n function has(appId: string):boolean\n }\n declare const ITEM: any;\n declare const INDEX: number;\n declare const SIZE: number;\n declare namespace LOCAL_STORAGE {\n function getItem(name: string): string;\n }\n declare namespace SESSION_STORAGE {\n function getItem(name: string): string\n }\n declare const MEDIA: {\n breakpoint?: \"xLarge\" | \"large\" | \"medium\" | \"small\" | \"xSmall\";\n };\n declare const MISC: Record<string, any>;\n declare const PARAMS: URLSearchParams;\n declare const PROCESSORS: Record<string, Record<string, Function>>;\n declare const QUERY_ARRAY: Record<string, string[]>;\n declare const TPL: Record<string, any>;\n declare const PIPES: Record<string, Function>;\n declare const _: Record<string, any>;\n declare namespace SYS {\n const username:string;\n const userInstanceId:string;\n const org:number;\n const isAdmin: boolean;\n const accessRule:string;\n const csrfToken:string;\n const accessToken:string;\n const userShowValue:string[];\n }\n declare const BASE_URL: string;\n declare namespace IMG {\n function get(src: string): string;\n }\n declare function I18N(key: string, options?: string | Record<string, unknown>): string;\n declare function I18N_TEXT(data: {[language: string]: string}):string;\n declare namespace PERMISSIONS {\n function check(...action: string[]):boolean;\n }\n declare namespace THEME {\n function getTheme(): \"light\" | \"dark\" | \"dark-v2\";\n }\n`;\n","// https://github.com/google/cel-spec/blob/master/doc/langdef.md#syntax\nimport * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\n\nexport const conf: monaco.languages.LanguageConfiguration = {\n comments: {\n lineComment: \"//\",\n blockComment: null,\n },\n\n brackets: [\n [\"{\", \"}\"],\n [\"[\", \"]\"],\n [\"(\", \")\"],\n ],\n\n autoClosingPairs: [\n { open: \"{\", close: \"}\" },\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n { open: '\"', close: '\"', notIn: [\"string\"] },\n { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] },\n ],\n\n onEnterRules: [\n {\n // e.g. <% | %>\n beforeText: /^ $/,\n afterText: /^ $/,\n action: {\n indentAction: monaco.languages.IndentAction.IndentOutdent,\n appendText: \" \",\n },\n },\n ],\n};\n\nexport const constants = [\n // Built-in functions\n \"bytes\",\n \"double\",\n \"duration\",\n \"dyn\",\n \"int\",\n \"bool\",\n \"matches\",\n \"size\",\n \"string\",\n \"timestamp\",\n \"type\",\n \"uint\",\n \"round\",\n // Built-in extensions\n \"base64\",\n // Built-in macros\n \"has\",\n // EasyOps primitive_type_ext\n \"printf\",\n \"isEmpty\",\n \"repeatArray\",\n // EasyOps dyn_type_ext\n \"mergeList\",\n \"fieldNotEmpty\",\n \"hasOrDefault\",\n \"trinocular\",\n \"traceId\",\n \"SHA1\",\n \"random\",\n \"random_string\",\n \"now\",\n // Flow builder variables\n \"request\",\n \"step\",\n \"variable\",\n \"config\",\n \"$\",\n] as readonly string[];\n\nexport const instanceMembers = [\n // Built-in methods\n \"contains\",\n \"endsWith\",\n \"matches\",\n \"startsWith\",\n // Built-in datetime methods\n \"getDate\",\n \"getDayOfMonth\",\n \"getDayOfWeek\",\n \"getDayOfYear\",\n \"getFullYear\",\n \"getHours\",\n \"getMilliseconds\",\n \"getMinutes\",\n \"getMonth\",\n \"getSeconds\",\n // Built-in extensions\n \"charAt\",\n \"indexOf\",\n \"lastIndexOf\",\n \"lowerAscii\",\n \"replace\",\n \"split\",\n \"join\",\n \"substring\",\n \"trim\",\n \"upperAscii\",\n // Built-in macros\n \"all\",\n \"exists\",\n \"exists_one\",\n \"map\",\n \"filter\",\n // EasyOps primitive_type_ext\n \"decodeb64\",\n \"truncate\",\n \"parseJSON\",\n \"parseYAML\",\n \"parseURL\",\n \"isBlank\",\n // EasyOps dyn_type_ext\n \"marshalJSON\",\n \"marshalYAML\",\n \"merge\",\n \"repeat\",\n \"match\",\n \"canonical\",\n \"convertMap\",\n \"fuse\",\n \"remove\",\n \"setAttr\",\n \"parseDate\",\n \"format\",\n // Flow builder step variables,\n \"input\",\n \"output\",\n] as readonly string[];\n\nexport const language: monaco.languages.IMonarchLanguage = {\n // Set defaultToken to invalid to see what you do not tokenize yet\n defaultToken: \"invalid\",\n\n tokenPostfix: \".cel\",\n\n keywords: [\n // Reserved keywords are not used in CEL actually.\n \"in\",\n \"as\",\n \"break\",\n \"const\",\n \"continue\",\n \"else\",\n \"for\",\n \"function\",\n \"if\",\n \"import\",\n \"let\",\n \"loop\",\n \"package\",\n \"namespace\",\n \"return\",\n \"var\",\n \"void\",\n \"while\",\n // constants\n \"null\",\n // boolean\n \"true\",\n \"false\",\n ],\n\n constants,\n\n instanceMethods: instanceMembers,\n\n operators: [\n // Logical operators\n \"&&\",\n \"||\",\n // Comparison operators\n \"<=\",\n \"<\",\n \">=\",\n \">\",\n \"==\",\n \"!=\",\n // \"in\",\n // Arithmetic operators\n \"+\",\n \"-\",\n \"*\",\n \"/\",\n \"%\",\n \"!\",\n ],\n\n // we include these common regular expressions\n symbols: /[=><!~?:&|+\\-*/^%]+/,\n\n escapes:\n /\\\\(?:[bfnrt\\\\\"']|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|[0-3][0-7]{2})/,\n\n // The main tokenizer for our languages\n tokenizer: {\n root: [\n // identifiers and keywords\n [\n /[a-zA-Z_$][\\w$]*/,\n {\n cases: {\n \"@keywords\": \"keyword\",\n \"@constants\": \"keyword\",\n \"@default\": \"identifier\",\n },\n },\n ],\n\n // Method calling\n [\n /(\\.)([a-zA-Z_$][\\w$]*)/,\n [\n \"operator\",\n {\n cases: {\n \"@instanceMethods\": \"keyword\",\n \"@default\": \"identifier\",\n },\n },\n ],\n ],\n\n // whitespace\n { include: \"@whitespace\" },\n\n // delimiters and operators\n [/[{}()[\\]]/, \"@brackets\"],\n // [/[<>](?!@symbols)/, \"@brackets\"],\n [/@symbols/, { cases: { \"@operators\": \"operator\", \"@default\": \"\" } }],\n\n // numbers\n [/\\d*\\.\\d+([eE][-+]?\\d+)?/, \"number.float\"],\n [/0x[0-9a-fA-F]+[uU]?/, \"number.hex\"],\n [/\\d+[uU]?/, \"number\"],\n\n // delimiter: after number because of .\\d floats\n [/[;,.]/, \"delimiter\"],\n\n // strings\n [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"], // non-terminated string\n [/\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@string\" }],\n\n // characters\n [/'[^\\\\']'/, \"string\"],\n [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n [/'/, \"string.invalid\"],\n ],\n\n string: [\n [/[^\\\\\"]+/, \"string\"],\n [/@escapes/, \"string.escape\"],\n [/\\\\./, \"string.escape.invalid\"],\n [/\"/, { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" }],\n ],\n\n whitespace: [\n [/[ \\t\\r\\n]+/, \"white\"],\n [/\\/\\/.*$/, \"comment\"],\n ],\n },\n};\n\n/**\n * Register the CEL language.\n *\n * See https://github.com/google/cel-spec/blob/master/doc/langdef.md#syntax\n */\nexport function register(Monaco: typeof monaco, languageId = \"cel\") {\n Monaco.languages.register({\n id: languageId,\n extensions: [\".cel\"],\n mimetypes: [\"text/cel\"],\n });\n Monaco.languages.setLanguageConfiguration(languageId, conf);\n Monaco.languages.setMonarchTokensProvider(languageId, language);\n}\n","import * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\n\nexport class PlaceholderContentWidget implements monaco.editor.IContentWidget {\n private static readonly ID = \"editor.widget.placeholderHint\";\n\n private domNode: HTMLElement | undefined;\n\n private readonly placeholder: string;\n private readonly editor: monaco.editor.ICodeEditor;\n private readonly color: string;\n\n constructor(\n placeholder: string,\n editor: monaco.editor.ICodeEditor,\n color: string\n ) {\n this.placeholder = placeholder;\n this.editor = editor;\n this.color = color;\n // register a listener for editor code changes\n this.editor.onDidChangeModelContent(() => this.onDidChangeModelContent());\n // ensure that on initial load the placeholder is shown\n this.onDidChangeModelContent();\n }\n\n private onDidChangeModelContent(): void {\n if (this.editor?.getValue?.() === \"\") {\n this.editor.addContentWidget(this);\n } else {\n this.editor?.removeContentWidget?.(this);\n }\n }\n\n getId(): string {\n return PlaceholderContentWidget.ID;\n }\n\n getDomNode(): HTMLElement {\n if (!this.domNode) {\n this.domNode = document.createElement(\"div\");\n this.domNode.style.width = \"max-content\";\n this.domNode.style.pointerEvents = \"none\";\n this.domNode.textContent = this.placeholder;\n this.domNode.style.whiteSpace = \"break-spaces\";\n this.domNode.style.fontStyle = \"italic\";\n this.domNode.style.color = this.color;\n this.editor.applyFontInfo(this.domNode);\n }\n\n return this.domNode;\n }\n\n getPosition(): monaco.editor.IContentWidgetPosition | null {\n return {\n position: { lineNumber: 1, column: 1 },\n preference: [monaco.editor.ContentWidgetPositionPreference.EXACT],\n };\n }\n\n dispose(): void {\n this.editor?.removeContentWidget?.(this);\n }\n}\n","interface Range {\n startLineNumber: number;\n startColumn: number;\n endLineNumber: number;\n endColumn: number;\n}\n\nexport interface EmbeddedState {\n content?: string;\n offset?: number;\n range?: Range;\n}\n\nexport class EmbeddedModelContext {\n static #instance: Record<string, EmbeddedModelContext> = {};\n #id: string;\n #state: EmbeddedState = {};\n\n static getInstance(id: string) {\n if (!this.#instance[id]) {\n this.#instance[id] = new EmbeddedModelContext(id);\n }\n return this.#instance[id];\n }\n\n constructor(id: string) {\n this.#id = id;\n }\n\n updateState(state: EmbeddedState) {\n this.#state = state;\n }\n\n getState(): EmbeddedState {\n return this.#state;\n }\n}\n","/* eslint-disable no-useless-escape */\n// https://github.com/microsoft/monaco-editor/blob/8270c45a385a180a53fd8ef8e3a189b1471100ed/src/basic-languages/yaml/yaml.ts\nimport * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\n\nexport const conf: monaco.languages.LanguageConfiguration = {\n comments: {\n lineComment: \"#\",\n },\n brackets: [\n [\"{\", \"}\"],\n [\"[\", \"]\"],\n [\"(\", \")\"],\n ],\n autoClosingPairs: [\n { open: \"{\", close: \"}\" },\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n folding: {\n offSide: true,\n },\n onEnterRules: [\n {\n beforeText: /:\\s*$/,\n action: {\n indentAction: monaco.languages.IndentAction.Indent,\n },\n },\n ],\n};\n\nexport const language: monaco.languages.IMonarchLanguage = {\n tokenPostfix: \".yaml.cel\",\n\n brackets: [\n { token: \"delimiter.bracket\", open: \"{\", close: \"}\" },\n { token: \"delimiter.square\", open: \"[\", close: \"]\" },\n ],\n\n keywords: [\n \"true\",\n \"True\",\n \"TRUE\",\n \"false\",\n \"False\",\n \"FALSE\",\n \"null\",\n \"Null\",\n \"NULL\",\n \"~\",\n ],\n\n numberInteger: /(?:0|[+-]?[0-9]+)/,\n numberFloat: /(?:0|[+-]?[0-9]+)(?:\\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,\n numberOctal: /0o[0-7]+/,\n numberHex: /0x[0-9a-fA-F]+/,\n numberInfinity: /[+-]?\\.(?:inf|Inf|INF)/,\n numberNaN: /\\.(?:nan|Nan|NAN)/,\n numberDate:\n /\\d{4}-\\d\\d-\\d\\d([Tt ]\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(( ?[+-]\\d\\d?(:\\d\\d)?)|Z)?)?/,\n\n escapes: /\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,\n\n tokenizer: {\n root: [\n { include: \"@whitespace\" },\n { include: \"@comment\" },\n\n // Directive\n [/%[^ ]+.*$/, \"meta.directive\"],\n\n // Document Markers\n [/---/, \"operators.directivesEnd\"],\n [/\\.{3}/, \"operators.documentEnd\"],\n\n // Block Structure Indicators\n [/[-?:](?= )/, \"operators\"],\n\n { include: \"@anchor\" },\n { include: \"@tagHandle\" },\n { include: \"@flowCollections\" },\n { include: \"@blockStyle\" },\n\n // Numbers\n [/@numberInteger(?![ \\t]*\\S+)/, \"number\"],\n [/@numberFloat(?![ \\t]*\\S+)/, \"number.float\"],\n [/@numberOctal(?![ \\t]*\\S+)/, \"number.octal\"],\n [/@numberHex(?![ \\t]*\\S+)/, \"number.hex\"],\n [/@numberInfinity(?![ \\t]*\\S+)/, \"number.infinity\"],\n [/@numberNaN(?![ \\t]*\\S+)/, \"number.nan\"],\n [/@numberDate(?![ \\t]*\\S+)/, \"number.date\"],\n\n // Key:Value pair\n [\n /(\".*?\"|'.*?'|[^#'\"]*?)([ \\t]*)(:)( |$)/,\n [\"tag\", \"white\", \"operators\", \"white\"],\n ],\n\n { include: \"@flowScalars\" },\n { include: \"@flowExpression\" },\n\n // String nodes\n [\n /.+?(?=(\\s+#|$))/,\n {\n cases: {\n \"@keywords\": \"keyword\",\n \"@default\": \"string\",\n },\n },\n ],\n ],\n\n // Flow Collection: Flow Mapping\n object: [\n { include: \"@whitespace\" },\n { include: \"@comment\" },\n\n // Flow Mapping termination\n [/\\}/, \"@brackets\", \"@pop\"],\n\n // Flow Mapping delimiter\n [/,/, \"delimiter.comma\"],\n\n // Flow Mapping Key:Value delimiter\n [/:(?= )/, \"operators\"],\n\n // Flow Mapping Key:Value key\n [/(?:\".*?\"|'.*?'|[^,\\{\\[]+?)(?=: )/, \"tag\"],\n\n // Start Flow Style\n { include: \"@flowCollections\" },\n { include: \"@flowScalars\" },\n\n // Scalar Data types\n { include: \"@tagHandle\" },\n { include: \"@anchor\" },\n { include: \"@flowNumber\" },\n\n // Other value (keyword or string)\n [\n /[^\\},]+/,\n {\n cases: {\n \"@keywords\": \"keyword\",\n \"@default\": \"string\",\n },\n },\n ],\n ],\n\n // Flow Collection: Flow Sequence\n array: [\n { include: \"@whitespace\" },\n { include: \"@comment\" },\n\n // Flow Sequence termination\n [/\\]/, \"@brackets\", \"@pop\"],\n\n // Flow Sequence delimiter\n [/,/, \"delimiter.comma\"],\n\n // Start Flow Style\n { include: \"@flowCollections\" },\n { include: \"@flowScalars\" },\n\n // Scalar Data types\n { include: \"@tagHandle\" },\n { include: \"@anchor\" },\n { include: \"@flowNumber\" },\n\n // Other value (keyword or string)\n [\n /[^\\],]+/,\n {\n cases: {\n \"@keywords\": \"keyword\",\n \"@default\": \"string\",\n },\n },\n ],\n ],\n\n // First line of a Block Style\n multiString: [\n [\n /^( +)(<%(?:\\s|$))/,\n [\"string\", { token: \"@rematch\", next: \"@multiExpression.$1\" }],\n ],\n [/^( +).+$/, \"string\", \"@multiStringContinued.$1\"],\n ],\n\n // Further lines of a Block Style\n // Workaround for indentation detection\n multiStringContinued: [\n [\n /^( *)(.+)$/,\n {\n cases: {\n \"$1==$S2\": \"string\",\n \"@default\": { token: \"@rematch\", next: \"@popall\" },\n },\n },\n ],\n ],\n\n whitespace: [[/[ \\t\\r\\n]+/, \"white\"]],\n\n // Only line comments\n comment: [[/#.*$/, \"comment\"]],\n\n // Start Flow Collections\n flowCollections: [\n [/\\[/, \"@brackets\", \"@array\"],\n [/\\{/, \"@brackets\", \"@object\"],\n ],\n\n // Start Flow Scalars (quoted strings)\n flowScalars: [\n [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n [/'/, \"string\", \"@singleQuotedString\"],\n [/\"/, \"string\", \"@doubleQuotedString\"],\n ],\n\n singleQuotedString: [\n { include: \"@expressionStart\" },\n [\n /(%>)(\\s*)(')/,\n [\n { token: \"delimiter\", bracket: \"@close\" },\n \"white\",\n { token: \"string\", next: \"@pop\" },\n ],\n ],\n [/[^']*'/, \"string\", \"@pop\"],\n ],\n\n doubleQuotedString: [\n { include: \"@expressionStart\" },\n [\n /(%>)(\\s*)(\")/,\n [\n { token: \"delimiter\", bracket: \"@close\" },\n \"white\",\n { token: \"string\", next: \"@pop\" },\n ],\n ],\n [/[^\\\\\"]+/, \"string\"],\n [/@escapes/, \"string.escape\"],\n [/\\\\./, \"string.escape.invalid\"],\n [/\"/, \"string\", \"@pop\"],\n ],\n\n // Start Block Scalar\n blockStyle: [[/[>|][0-9]*[+-]?$/, \"operators\", \"@multiString\"]],\n\n // Numbers in Flow Collections (terminate with ,]})\n flowNumber: [\n [/@numberInteger(?=[ \\t]*[,\\]\\}])/, \"number\"],\n [/@numberFloat(?=[ \\t]*[,\\]\\}])/, \"number.float\"],\n [/@numberOctal(?=[ \\t]*[,\\]\\}])/, \"number.octal\"],\n [/@numberHex(?=[ \\t]*[,\\]\\}])/, \"number.hex\"],\n [/@numberInfinity(?=[ \\t]*[,\\]\\}])/, \"number.infinity\"],\n [/@numberNaN(?=[ \\t]*[,\\]\\}])/, \"number.nan\"],\n [/@numberDate(?=[ \\t]*[,\\]\\}])/, \"number.date\"],\n ],\n\n tagHandle: [[/\\![^ ]*/, \"tag\"]],\n\n anchor: [[/[&*][^ ]+/, \"namespace\"]],\n\n flowExpression: [\n { include: \"@expressionStart\" },\n [\n /(\\s+)(%>)(\\s*)/,\n [\n \"white\",\n { token: \"delimiter\", bracket: \"@close\" },\n { token: \"white\", next: \"@pop\" },\n ],\n ],\n ],\n\n expressionStart: [\n [\n /(\\s*)(<%)(\\s+)/,\n [\n \"white\",\n { token: \"delimiter\", bracket: \"@open\" },\n {\n token: \"white\",\n next: \"@expressionEmbedded\",\n nextEmbedded: \"text/cel\",\n },\n ],\n ],\n ],\n\n multiExpression: [\n [\n /(<%)/,\n {\n token: \"delimiter\",\n next: \"@expressionEmbedded\",\n nextEmbedded: \"text/cel\",\n bracket: \"@open\",\n },\n ],\n [\n /(%>)(\\s*)/,\n [\n { token: \"delimiter\", bracket: \"@close\" },\n { token: \"white\", next: \"@pop\" },\n ],\n ],\n [\n /^( *).+$/,\n {\n cases: {\n \"$1==$S2\": \"string\",\n \"@default\": { token: \"@rematch\", next: \"@popall\" },\n },\n },\n ],\n ],\n\n expressionEmbedded: [\n [/%>/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }],\n ],\n },\n};\n\n/**\n * Register the extended yaml language, with CEL syntax highlighting supported.\n */\nexport function register(Monaco: typeof monaco, languageId = \"cel_yaml\") {\n Monaco.languages.register({\n id: languageId,\n extensions: [\".cel-yaml\"],\n mimetypes: [\"text/cel-yaml\"],\n });\n Monaco.languages.setLanguageConfiguration(languageId, conf);\n Monaco.languages.setMonarchTokensProvider(languageId, language);\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.highlight{box-shadow:rgb(74 170 189) 0px 1px 0px 0px}.pointer{cursor:pointer}.monaco-editor{outline-width:0}.monaco-editor .overflow-guard{border-radius:var(--antd-button-border-radius);border:1px solid var(--color-border-divider-line)}.code-editor-wrapper.error .overflow-guard{border-color:var(--antd-error-color)}.code-editor-wrapper{position:relative}.code-editor-wrapper.expanded{position:fixed;z-index:1000;top:0;left:0;right:0;bottom:0;padding:20px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.toolbar-wrapper{position:absolute;z-index:4;top:0;bottom:0;right:0;pointer-events:none;padding:15px 20px}.toolbar{pointer-events:auto;display:none;line-height:12px;font-size:12px;text-align:center;gap:10px;box-shadow:none;transition:none;border-radius:50%;border:none}.code-editor-wrapper:not(.expanded) .toolbar.sticky{position:sticky;top:15px}.code-editor-wrapper.expanded .toolbar-wrapper{right:40px;top:40px}.code-editor-wrapper:hover .toolbar{display:flex}.copy-icon,\n.expand-icon{opacity:0.5;cursor:pointer;font-size:16px}.copy-icon:hover,\n.expand-icon:hover{opacity:1}.monaco-editor.monaco-editor-v3 .find-widget > .find-part,\n.monaco-editor.monaco-editor-v3 .find-widget > .replace-part{margin-right:25px}.monaco-editor.monaco-editor-v3 .find-widget .button{box-sizing:content-box}.monaco-editor.monaco-editor-v3 .sticky-line-number{text-align:initial;float:initial}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./index.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./index.css\";\n export default content && content.locals ? content.locals : undefined;\n","export default [\"analytics.event\",\"console.error\",\"console.info\",\"console.log\",\"console.warn\",\"context.assign\",\"context.load\",\"context.refresh\",\"context.replace\",\"event.preventDefault\",\"event.stopPropagation\",\"formstate.update\",\"handleHttpError\",\"history.block\",\"history.goBack\",\"history.goForward\",\"history.push\",\"history.pushAnchor\",\"history.pushQuery\",\"history.reload\",\"history.replace\",\"history.replaceQuery\",\"history.unblock\",\"localStorage.removeItem\",\"localStorage.setItem\",\"location.assign\",\"location.reload\",\"menu.clearMenuCache\",\"menu.clearMenuTitleCache\",\"message.error\",\"message.info\",\"message.subscribe\",\"message.success\",\"message.unsubscribe\",\"message.warn\",\"mode.setDashboardMode\",\"mode.setDefaultMode\",\"parent.postMessage\",\"preview.debug\",\"sessionStorage.removeItem\",\"sessionStorage.setItem\",\"state.load\",\"state.refresh\",\"state.update\",\"theme.setDarkTheme\",\"theme.setLightTheme\",\"theme.setTheme\",\"tpl.dispatchEvent\",\"window.open\",\"window.postMessage\"];","import * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { brickNextKeywords } from \"./constants.js\";\nimport { getEditorId } from \"./editorId.js\";\nimport { TokenConfig } from \"../index.jsx\";\nimport { AdvancedCompleterMap } from \"../interfaces.js\";\nimport { provideJsSuggestItems } from \"../utils/jsSuggestInBrickYaml.js\";\nimport { EmbeddedModelContext } from \"../utils/embeddedModelState.js\";\nimport builtinActions from \"../../generated-actions.js\";\n\nconst findKeys = (\n model: monaco.editor.ITextModel,\n range: monaco.Range | monaco.editor.IWordAtPosition,\n line: number\n) => {\n const curLevelKeys: string[] = [];\n const keyList: string[] = [];\n let parentKey = \"\";\n let i = line;\n let startColumn = range.startColumn;\n while (i > 0) {\n const prefixLineWord = model.getValueInRange({\n startLineNumber: i,\n endLineNumber: i,\n startColumn: 0,\n endColumn: Infinity,\n });\n const matchWord = prefixLineWord.match(/^([\\s|-]*)(\\w+)(?=:)/);\n if (matchWord) {\n const [, wordSpace, key] = matchWord;\n if (wordSpace.length === range.startColumn - 1) {\n curLevelKeys.unshift(key);\n }\n if (wordSpace.length < startColumn - 1) {\n !parentKey && (parentKey = key);\n startColumn = wordSpace.length;\n keyList.unshift(key);\n }\n }\n i--;\n }\n return {\n curLevelKeys,\n keyList,\n parentKey,\n };\n};\n\nconst getPrefixWord = (\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n tokenConfig: TokenConfig | undefined\n): {\n word: string | undefined;\n token: string;\n} => {\n const word = model.getWordUntilPosition(position);\n const prefixToken = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: position.column - word.word.length - 1,\n endColumn: position.column - word.word.length,\n });\n const prefixWord = model.getWordAtPosition({\n ...position,\n column: position.column - word?.word?.length - 1,\n });\n let matchWord = prefixWord?.word;\n if (tokenConfig?.showDSKey && prefixWord?.word === \"DS\") {\n const prefix = model.getWordAtPosition({\n ...position,\n column: prefixWord.startColumn - 1,\n });\n\n matchWord = `${prefix?.word}.${prefixWord.word}`;\n }\n return {\n word: matchWord,\n token: prefixToken,\n };\n};\n\nconst isInEvaluateBody = (\n model: monaco.editor.ITextModel,\n position: monaco.Position\n): boolean => {\n const word = model.getWordUntilPosition(position);\n const prefixEvaluateOperator = model.findPreviousMatch(\n \"<%\",\n position,\n false,\n false,\n null,\n false\n );\n const suffixEvaluateOperator = model.findNextMatch(\n \"%>\",\n position,\n false,\n false,\n null,\n false\n );\n\n const prefixRange = prefixEvaluateOperator?.range;\n const suffixRange = suffixEvaluateOperator?.range;\n\n const isInEvaluateBody =\n prefixRange?.startLineNumber &&\n suffixRange?.startLineNumber &&\n prefixRange.startLineNumber <= position.lineNumber &&\n suffixRange.endLineNumber >= position.lineNumber &&\n // 正确匹配当前表达式,防止匹配到上一个表达式<%的开始,下一个表达式的结尾%>\n !model.findMatches(\n \"<%|%>\",\n new monaco.Range(\n prefixRange.endLineNumber,\n prefixRange.endColumn,\n suffixRange.startLineNumber,\n suffixRange.startColumn\n ),\n true,\n false,\n null,\n true\n )?.length;\n\n if (isInEvaluateBody) {\n const { parentKey: prefixParentKey } = findKeys(\n model,\n prefixRange,\n prefixRange.startLineNumber\n );\n const { parentKey: suffixParentKey } = findKeys(\n model,\n suffixRange,\n suffixRange.startLineNumber\n );\n const { keyList } = findKeys(model, word, position.lineNumber);\n if (\n // value is object\n (prefixParentKey === suffixParentKey &&\n keyList.includes(prefixParentKey)) ||\n // value is string\n (prefixParentKey === \"\" && suffixParentKey === \"\")\n ) {\n return true;\n }\n }\n return false;\n};\n\nexport const brickNextYAMLProviderCompletionItems = (\n completers: monaco.languages.CompletionItem[] = [],\n advancedCompleters: AdvancedCompleterMap = {},\n id: string,\n tokenConfig: TokenConfig | undefined\n) => {\n return async (\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext\n ): Promise<\n monaco.languages.ProviderResult<monaco.languages.CompletionList>\n > => {\n if (id && id !== getEditorId())\n return {\n suggestions: [],\n };\n const DSToken = tokenConfig?.showDSKey ? [\"CTX.DS\", \"DS\"] : [];\n const word = model.getWordUntilPosition(position);\n const { word: prefixWord, token: prefixToken } = getPrefixWord(\n model,\n position,\n tokenConfig\n );\n const curLineWord = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: 0,\n endColumn: Infinity,\n });\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n\n const isFirstLevelProperty = word.startColumn === 1;\n const { curLevelKeys } = findKeys(model, word, model.getLineCount());\n\n if (context.triggerCharacter === \"<\") {\n const fullWord = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: position.column - 2,\n endColumn: position.column + 2,\n });\n if (!/^(['\"]?)<\\1$/.test(fullWord.trim())) {\n return {\n suggestions: [],\n };\n }\n return {\n suggestions: [\n {\n label: \"<% %>\",\n detail: \"Expression body\",\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: \"% ${0} %>\",\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n range: range,\n },\n {\n label: \"<%= %>\",\n detail: \"Track expression body\",\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: \"%= ${0} %>\",\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n range: range,\n },\n ],\n };\n }\n\n if (isFirstLevelProperty) {\n return {\n suggestions: (completers ?? [])\n .filter((item) => !curLevelKeys.includes(item.label as string))\n .map((item) => ({\n ...item,\n label: item.label,\n insertText: item.insertText || (item.label as string),\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n })),\n };\n }\n\n if (\n context.triggerCharacter === \":\" ||\n (context.triggerCharacter === \".\" &&\n prefixWord &&\n ![\"CTX\", \"STATE\", \"FN\"].concat(DSToken).includes(prefixWord))\n ) {\n if (prefixWord === \"action\" && context.triggerCharacter === \":\") {\n return {\n suggestions: builtinActions.map((item) => ({\n label: ` ${item}`,\n detail: \"event action\",\n kind: monaco.languages.CompletionItemKind.Keyword,\n insertText: ` ${item}`,\n range,\n })),\n };\n }\n const matchCompletion = advancedCompleters?.[prefixWord as string];\n let matchTriggerCharacter = \"\";\n let list: monaco.languages.CompletionItem[] | undefined;\n if (matchCompletion && !Array.isArray(matchCompletion)) {\n list = matchCompletion.completers;\n matchTriggerCharacter = matchCompletion.triggerCharacter;\n } else {\n list = matchCompletion;\n }\n if (\n matchTriggerCharacter\n ? context.triggerCharacter === matchTriggerCharacter && list\n : list\n ) {\n return {\n suggestions: (list ?? []).map((item) => {\n const label =\n matchTriggerCharacter === \":\"\n ? ` ${item.label}`\n : (item.label as string);\n return {\n ...item,\n label: label,\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: item.insertText || label,\n range,\n };\n }),\n };\n }\n }\n\n if (isInEvaluateBody(model, position) && prefixToken !== \":\") {\n const embeddedContext = EmbeddedModelContext.getInstance(id);\n\n const suggestions = await provideJsSuggestItems(\n model,\n position,\n embeddedContext.getState()\n );\n\n return {\n suggestions,\n };\n }\n\n if (/^[\\s|-]*\\w$/.test(curLineWord)) {\n return {\n suggestions: brickNextKeywords\n .map((item) => ({\n label: item,\n insertText: item,\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n }))\n .filter((item) => !curLevelKeys.includes(item.label as string)),\n };\n }\n\n return {\n suggestions: [],\n };\n };\n};\n","import * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { builtInKeywordDeclare } from \"./constants.js\";\n\ninterface BlockContext {\n offset?: number;\n}\n\nexport function getEmbeddedJavascriptUri(\n value: monaco.editor.IModel | monaco.Uri\n) {\n if (\"uri\" in value) {\n value = value.uri;\n }\n return monaco.Uri.parse(value.toString() + \".ts\");\n}\n\n// istanbul ignore next\nexport async function provideJsSuggestItems(\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n embeddedContext: BlockContext\n) {\n const workerGetter = await monaco.languages.typescript.getJavaScriptWorker();\n const worker = await workerGetter(model.uri);\n const javascriptModel = monaco.editor.getModel(\n getEmbeddedJavascriptUri(model)\n );\n\n const endOffset = model.getOffsetAt(position);\n const starOffset = embeddedContext?.offset ?? 0;\n\n const offset = endOffset - starOffset;\n\n const info = await worker.getCompletionsAtPosition(\n javascriptModel!.uri.toString(),\n offset!\n );\n\n const wordInfo = model.getWordUntilPosition(position);\n\n const wordRange = new monaco.Range(\n position.lineNumber,\n wordInfo.startColumn,\n position.lineNumber,\n wordInfo.endColumn\n );\n\n const suggestions = (info?.entries ?? []).map((entry: any) => {\n let range = wordRange;\n\n if (entry.replacementSpan) {\n const p1 = model.getPositionAt(entry.replacementSpan.start);\n const p2 = model.getPositionAt(\n entry.replacementSpan.start + entry.replacementSpan.length\n );\n range = new monaco.Range(\n p1.lineNumber,\n p1.column,\n p2.lineNumber,\n p2.column\n );\n }\n\n return {\n uri: javascriptModel!.uri,\n position: position,\n offset: offset,\n range: range,\n label: entry.name,\n insertText: entry.name,\n sortText: entry.sortText,\n kind: monaco.languages.CompletionItemKind.Property,\n };\n });\n\n return suggestions;\n}\n\nexport function getMicroAppDeclare() {\n // 不要主动提示不对用户公开的 APP 属性\n return `\ndeclare namespace APP {\n const name: string;\n const id: string;\n const homepage: string;\n const currentVersion: string;\n const config: object;\n const localeName: string;\n const localeTitle: string;\n}\n`;\n}\n\nexport function getBrickYamlBuiltInDeclare() {\n return [getMicroAppDeclare(), builtInKeywordDeclare].join(\"\\n\");\n}\n","let editorId: string;\n\nexport function setEditorId(id: string) {\n editorId = id;\n}\n\nexport function getEditorId() {\n return editorId;\n}\n","// istanbul ignore file\nimport { wrap } from \"comlink\";\nimport type { LintRequest, LintResponse } from \"./lintYaml\";\n\nexport interface RemoteYamlLinterWorker {\n lint(req: LintRequest): Promise<LintResponse>;\n}\n\nlet remoteWorkerPromise: Promise<RemoteYamlLinterWorker> | undefined;\n\nlet worker: Worker | undefined;\n\nexport function getRemoteYamlLinterWorker() {\n if (!remoteWorkerPromise) {\n remoteWorkerPromise = (async () => {\n const Remote = wrap<{ new (): RemoteYamlLinterWorker }>(getWorker());\n return await new Remote();\n })();\n }\n return remoteWorkerPromise;\n}\n\nexport function getWorker() {\n if (!worker) {\n worker = new Worker(new URL(\"./yamlLinter.worker.ts\", import.meta.url));\n }\n return worker;\n}\n","import * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\n\nexport function isInEmbedded(\n model: monaco.editor.ITextModel,\n position: monaco.Position\n) {\n const previousStart = findPreviousMatch(model, \"<%\", position);\n if (!previousStart) {\n return false;\n }\n const nextEnd = findNextMatch(model, \"%>\", position);\n if (!nextEnd) {\n return false;\n }\n const previousEnd = findPreviousMatch(model, \"%>\", position);\n if (\n previousEnd &&\n previousStart.range\n .getEndPosition()\n .isBefore(previousEnd.range.getStartPosition())\n ) {\n return false;\n }\n const nextStart = findNextMatch(model, \"<%\", position);\n if (\n nextStart &&\n nextStart.range.getStartPosition().isBefore(nextEnd.range.getEndPosition())\n ) {\n return false;\n }\n return true;\n}\n\n/**\n * Find the previous match of the word in the model, but no loops to the end.\n */\nfunction findPreviousMatch(\n model: monaco.editor.ITextModel,\n word: string,\n position: monaco.Position\n) {\n const match = model.findPreviousMatch(\n word,\n position,\n false,\n false,\n null,\n false\n );\n if (match && position.isBefore(match.range.getStartPosition())) {\n return null;\n }\n return match;\n}\n\n/**\n * Find the next match of the word in the model, but no loops to the beginning.\n */\nfunction findNextMatch(\n model: monaco.editor.ITextModel,\n word: string,\n position: monaco.Position\n) {\n const match = model.findNextMatch(word, position, false, false, null, false);\n if (match && match.range.getEndPosition().isBefore(position)) {\n return null;\n }\n return match;\n}\n","import * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { constants, instanceMembers } from \"../languages/cel\";\nimport { getEditorId } from \"./editorId\";\nimport { isInEmbedded } from \"./isInEmbedded\";\nimport type { MixedCompleter } from \"../interfaces\";\n\nconst BUILTIN_MEMBERS: Record<string, string[]> = {\n request: [\"uri\", \"query\", \"header\", \"body\"],\n};\n\n/**\n * When user types \"<\", provide the completion item \"<% | %>\",\n * in which, `|` represents the position of the cursor.\n */\nexport function provideEmbeddedCelCompletionItems(\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext\n): monaco.languages.CompletionList {\n if (context.triggerCharacter !== \"<\" || isInEmbedded(model, position)) {\n return getEmptySuggestions();\n }\n\n // Handle: <|\n // Or: \"<|\"\n // Or: '<|'\n const nearby = model.getValueInRange({\n startLineNumber: position.lineNumber,\n startColumn: position.column - 2,\n endLineNumber: position.lineNumber,\n endColumn: position.column + 1,\n });\n if (!/^(['\"]?)<\\1$/.test(nearby.trim())) {\n return getEmptySuggestions();\n }\n\n const word = model.getWordUntilPosition(position);\n const range = {\n startLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endLineNumber: position.lineNumber,\n endColumn: word.endColumn,\n };\n\n return {\n suggestions: [\n {\n label: \"<% %>\",\n detail: \"CEL body\",\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: \"% ${0} %>\",\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n range,\n },\n ],\n };\n}\n\n/**\n * Provide common completion items for CEL language.\n * Such as `size` and `base64`.\n */\nexport function celCommonCompletionProviderFactory(\n lang: string\n): monaco.languages.CompletionItemProvider {\n return {\n triggerCharacters: [\".\"],\n provideCompletionItems(model, position, context) {\n if (lang !== \"cel\" && !isInEmbedded(model, position)) {\n return getEmptySuggestions();\n }\n\n const word = model.getWordUntilPosition(position);\n const range = {\n startLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endLineNumber: position.lineNumber,\n endColumn: word.endColumn,\n };\n\n const previousWord = model.getWordUntilPosition(\n new monaco.Position(position.lineNumber, word.startColumn - 1)\n );\n\n // Handle: foo.|\n // Or: foo.x|\n if (\n context.triggerCharacter === \".\" ||\n model\n .getValueInRange({\n startLineNumber: position.lineNumber,\n startColumn: previousWord.endColumn,\n endLineNumber: position.lineNumber,\n endColumn: word.startColumn,\n })\n .trim() === \".\"\n ) {\n const completer =\n previousWord.word &&\n hasOwnProperty(BUILTIN_MEMBERS, previousWord.word)\n ? BUILTIN_MEMBERS[previousWord.word]\n : undefined;\n\n if (completer) {\n return {\n suggestions: completer.map((label) => ({\n label,\n insertText: label,\n kind: monaco.languages.CompletionItemKind.Method,\n range,\n })),\n };\n }\n\n // Do not provide member suggestions for constants.\n if ((constants as readonly string[]).includes(previousWord.word)) {\n return getEmptySuggestions();\n }\n\n return {\n suggestions: instanceMembers.map((label) => ({\n label,\n insertText: label,\n kind: monaco.languages.CompletionItemKind.Method,\n range,\n })),\n };\n }\n\n // Handle: x|\n return {\n suggestions: constants.map((label) => ({\n label,\n insertText: label,\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n })),\n };\n },\n };\n}\n\n/**\n * Provide specific completion items for CEL language.\n * Such as `step.*`\n */\nexport function celSpecificCompletionProviderFactory(\n lang: string,\n id: string,\n completers: MixedCompleter[]\n): monaco.languages.CompletionItemProvider {\n return {\n triggerCharacters: [\".\"],\n provideCompletionItems(model, position, context) {\n if (\n id !== getEditorId() ||\n (lang !== \"cel\" && !isInEmbedded(model, position))\n ) {\n return getEmptySuggestions();\n }\n\n const word = model.getWordUntilPosition(position);\n const previousWord = model.getWordUntilPosition(\n new monaco.Position(position.lineNumber, word.startColumn - 1)\n );\n\n if (\n context.triggerCharacter !== \".\" &&\n model\n .getValueInRange({\n startLineNumber: position.lineNumber,\n startColumn: previousWord.endColumn,\n endLineNumber: position.lineNumber,\n endColumn: word.startColumn,\n })\n .trim() !== \".\"\n ) {\n return getEmptySuggestions();\n }\n\n let members: string[] | undefined;\n if (previousWord.word) {\n for (const completer of completers) {\n if (\n completer.type === \"members\" &&\n hasOwnProperty(completer.members, previousWord.word)\n ) {\n members = completer.members[previousWord.word];\n }\n }\n }\n\n if (!members) {\n return getEmptySuggestions();\n }\n\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n\n return {\n suggestions: members.map((label) => ({\n label,\n insertText: label,\n kind: monaco.languages.CompletionItemKind.Method,\n range,\n })),\n };\n },\n };\n}\n\nfunction getEmptySuggestions(): monaco.languages.CompletionList {\n return { suggestions: [] };\n}\n","export const EDITOR_FONT_SIZE = 12;\nexport const EDITOR_LINE_HEIGHT = 18;\nexport const EDITOR_SCROLLBAR_SIZE = 12;\nexport const EDITOR_PADDING_VERTICAL = 12;\n","// istanbul ignore file\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst markRegex = new RegExp(\"\\\\b(MARK:\\\\s*)(.*)$\");\nconst trimDashesRegex = /^-+|-+$/g;\n/**\n * Find section headers in the model.\n *\n * @param model the text model to search in\n * @param options options to search with\n * @returns an array of section headers\n */\nexport function findSectionHeaders(model, options) {\n var _a;\n let headers = [];\n if (\n options.findRegionSectionHeaders &&\n ((_a = options.foldingRules) === null || _a === void 0\n ? void 0\n : _a.markers)\n ) {\n const regionHeaders = collectRegionHeaders(model, options);\n headers = headers.concat(regionHeaders);\n }\n if (options.findMarkSectionHeaders) {\n const markHeaders = collectMarkHeaders(model);\n headers = headers.concat(markHeaders);\n }\n return headers;\n}\nfunction collectRegionHeaders(model, options) {\n const regionHeaders = [];\n const endLineNumber = model.getLineCount();\n for (let lineNumber = 1; lineNumber <= endLineNumber; lineNumber++) {\n const lineContent = model.getLineContent(lineNumber);\n const match = lineContent.match(options.foldingRules.markers.start);\n if (match) {\n const range = {\n startLineNumber: lineNumber,\n startColumn: match[0].length + 1,\n endLineNumber: lineNumber,\n endColumn: lineContent.length + 1,\n };\n if (range.endColumn > range.startColumn) {\n const sectionHeader = {\n range,\n ...getHeaderText(lineContent.substring(match[0].length)),\n shouldBeInComments: false,\n };\n if (sectionHeader.text || sectionHeader.hasSeparatorLine) {\n regionHeaders.push(sectionHeader);\n }\n }\n }\n }\n return regionHeaders;\n}\nfunction collectMarkHeaders(model) {\n const markHeaders = [];\n const endLineNumber = model.getLineCount();\n for (let lineNumber = 1; lineNumber <= endLineNumber; lineNumber++) {\n const lineContent = model.getLineContent(lineNumber);\n addMarkHeaderIfFound(lineContent, lineNumber, markHeaders);\n }\n return markHeaders;\n}\nfunction addMarkHeaderIfFound(lineContent, lineNumber, sectionHeaders) {\n markRegex.lastIndex = 0;\n const match = markRegex.exec(lineContent);\n if (match) {\n const column = match.index + match[1].length + 1;\n const endColumn = column + match[2].length;\n const range = {\n startLineNumber: lineNumber,\n startColumn: column,\n endLineNumber: lineNumber,\n endColumn: endColumn,\n };\n if (range.endColumn > range.startColumn) {\n const sectionHeader = {\n range,\n ...getHeaderText(match[1]),\n shouldBeInComments: true,\n };\n if (sectionHeader.text || sectionHeader.hasSeparatorLine) {\n sectionHeaders.push(sectionHeader);\n }\n }\n }\n}\nfunction getHeaderText(text) {\n text = text.trim();\n const hasSeparatorLine = text.startsWith(\"-\");\n text = text.replace(trimDashesRegex, \"\");\n return { text, hasSeparatorLine };\n}\n","export enum K {\n COPY = \"COPY\",\n COPY_SUCCESS = \"COPY_SUCCESS\",\n COPY_FAILED = \"COPY_FAILED\",\n EXPAND = \"EXPAND\",\n COLLAPSE = \"COLLAPSE\",\n}\n\nconst en: Locale = {\n COPY: \"Copy\",\n COPY_SUCCESS: \"Copied!\",\n COPY_FAILED: \"Copy failed!\",\n EXPAND: \"Expand\",\n COLLAPSE: \"Collapse\",\n};\n\nconst zh: Locale = {\n COPY: \"复制\",\n COPY_SUCCESS: \"已复制!\",\n COPY_FAILED: \"复制失败!\",\n EXPAND: \"展开\",\n COLLAPSE: \"收起\",\n};\n\nexport const NS = \"bricks/vs/code-editor\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","// https://github.com/microsoft/monaco-editor/blob/8270c45a385a180a53fd8ef8e3a189b1471100ed/src/basic-languages/yaml/yaml.ts\nimport * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { conf as confOfCel } from \"./cel\";\n\nexport const conf: monaco.languages.LanguageConfiguration = {\n brackets: confOfCel.brackets,\n autoClosingPairs: confOfCel.autoClosingPairs,\n};\n\nexport const language: monaco.languages.IMonarchLanguage = {\n tokenPostfix: \".yaml.str\",\n\n tokenizer: {\n root: [\n { include: \"@whitespace\" },\n { include: \"@expression\" },\n { include: \"@strings\" },\n ],\n\n expression: [\n [\n /<%/,\n {\n token: \"delimiter\",\n next: \"@expressionEmbedded\",\n nextEmbedded: \"text/cel\",\n bracket: \"@open\",\n },\n ],\n [/%>/, { token: \"delimiter\", bracket: \"@close\" }],\n ],\n\n expressionEmbedded: [\n [/%>/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }],\n ],\n\n strings: [[/[^<]+|<(?!%)/, \"string\"]],\n\n whitespace: [[/[ \\t\\r\\n]+/, \"white\"]],\n },\n};\n\n/**\n * Register the cel_str language, that CEL is embedded in `<% %>` as a plain string.\n */\nexport function register(Monaco: typeof monaco, languageId = \"cel_str\") {\n Monaco.languages.register({\n id: languageId,\n extensions: [\".cel-str\"],\n mimetypes: [\"text/cel-str\"],\n });\n Monaco.languages.setLanguageConfiguration(languageId, conf);\n Monaco.languages.setMonarchTokensProvider(languageId, language);\n}\n","import * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { ExtraLib } from \"../interfaces.js\";\n\nconst extraLibsMap = new Map<string, monaco.IDisposable[]>();\n\nexport function addExtraLibs(\n libs: ExtraLib[],\n options: {\n languageDefaults?: string;\n }\n): monaco.IDisposable[] {\n return libs.flatMap((lib) => {\n const uri = monaco.Uri.file(`libs/${lib.filePath}`);\n const uriString = uri.toString();\n const previousLibs = extraLibsMap.get(uriString);\n if (previousLibs) {\n previousLibs.forEach((lib) => lib.dispose());\n }\n // Add libs for both js and ts.\n const disposables = (\n [options.languageDefaults] as Array<\n \"javascriptDefaults\" | \"typescriptDefaults\"\n >\n ).map((key) =>\n monaco.languages.typescript[key].addExtraLib(lib.content, uriString)\n );\n\n extraLibsMap.set(uriString, disposables);\n return disposables;\n });\n}\n"],"names":["method","property","createDecorators","_A","WeakMap","_FormItemElementBase_brand","WeakSet","_B","_C","_D","_E","_F","_G","FormItemElementBase","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_helpBrick","_init_extra_helpBrick","_init_labelBrick","_init_extra_labelBrick","_init_labelCol","_init_extra_labelCol","_init_wrapperCol","_init_extra_wrapperCol","isFormItemElement","validateState","value","_classPrivateSetter","_set_validate","this","_render","_classPrivateGetter","_get_validate","notRender","hidden","_set__notRender","_get__notRender","$bindFormItem","_get_bindFormItem","_set_bindFormItem","helpBrick","_classPrivateFieldGet","v","_classPrivateFieldSet","labelBrick","labelCol","wrapperCol","setNotRender","getFormElement","element","parentNode","isFormElement","_this","_this2","_this3","_this4","_this5","_this6","_FormItemElementBase","_applyDecs","attribute","e","brickNextKeywords","builtInKeywordDeclare","conf","comments","lineComment","blockComment","brackets","autoClosingPairs","open","close","notIn","onEnterRules","beforeText","afterText","action","indentAction","monaco","IndentAction","IndentOutdent","appendText","constants","instanceMembers","language","defaultToken","tokenPostfix","keywords","instanceMethods","operators","symbols","escapes","tokenizer","root","cases","include","token","bracket","next","string","whitespace","register","Monaco","languageId","length","undefined","languages","id","extensions","mimetypes","setLanguageConfiguration","setMonarchTokensProvider","PlaceholderContentWidget","placeholder","editor","color","_defineProperty","onDidChangeModelContent","_this$editor","_this$editor$getValue","_this$editor2","_this$editor2$removeC","getValue","call","addContentWidget","removeContentWidget","getId","ID","getDomNode","domNode","document","createElement","style","width","pointerEvents","textContent","whiteSpace","fontStyle","applyFontInfo","getPosition","position","lineNumber","column","preference","ContentWidgetPositionPreference","EXACT","dispose","_this$editor3","_this$editor3$removeC","EmbeddedModelContext","getInstance","_assertClassBrand","_instance","_","_id","_state","updateState","state","getState","folding","offSide","Indent","numberInteger","numberFloat","numberOctal","numberHex","numberInfinity","numberNaN","numberDate","object","array","multiString","multiStringContinued","comment","flowCollections","flowScalars","singleQuotedString","doubleQuotedString","blockStyle","flowNumber","tagHandle","anchor","flowExpression","expressionStart","nextEmbedded","multiExpression","expressionEmbedded","___CSS_LOADER_EXPORT___","push","module","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","findKeys","model","range","line","curLevelKeys","keyList","parentKey","i","startColumn","matchWord","getValueInRange","startLineNumber","endLineNumber","endColumn","Infinity","match","wordSpace","key","unshift","brickNextYAMLProviderCompletionItems","completers","advancedCompleters","tokenConfig","async","context","getEditorId","suggestions","DSToken","showDSKey","word","getWordUntilPosition","prefixWord","prefixToken","getPrefixWord","_word$word","getWordAtPosition","prefix","curLineWord","isFirstLevelProperty","getLineCount","triggerCharacter","fullWord","test","trim","label","detail","kind","CompletionItemKind","Value","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","filter","item","includes","map","Keyword","concat","builtinActions","matchCompletion","list","matchTriggerCharacter","Array","isArray","isInEvaluateBody","_model$findMatches","prefixEvaluateOperator","findPreviousMatch","suffixEvaluateOperator","findNextMatch","prefixRange","suffixRange","findMatches","prefixParentKey","suffixParentKey","embeddedContext","provideJsSuggestItems","getEmbeddedJavascriptUri","uri","parse","toString","_embeddedContext$offs","_info$entries","workerGetter","typescript","getJavaScriptWorker","worker","javascriptModel","getModel","offset","getOffsetAt","info","getCompletionsAtPosition","wordInfo","wordRange","entries","entry","replacementSpan","p1","getPositionAt","start","p2","name","sortText","Property","getBrickYamlBuiltInDeclare","join","editorId","setEditorId","remoteWorkerPromise","getRemoteYamlLinterWorker","Remote","wrap","Worker","URL","isInEmbedded","previousStart","nextEnd","previousEnd","getEndPosition","isBefore","getStartPosition","nextStart","BUILTIN_MEMBERS","request","provideEmbeddedCelCompletionItems","nearby","celCommonCompletionProviderFactory","lang","triggerCharacters","provideCompletionItems","previousWord","completer","hasOwnProperty","Method","celSpecificCompletionProviderFactory","members","type","EDITOR_FONT_SIZE","EDITOR_LINE_HEIGHT","EDITOR_SCROLLBAR_SIZE","EDITOR_PADDING_VERTICAL","markRegex","RegExp","trimDashesRegex","findSectionHeaders","_a","headers","findRegionSectionHeaders","foldingRules","markers","regionHeaders","lineContent","getLineContent","sectionHeader","getHeaderText","substring","shouldBeInComments","text","hasSeparatorLine","collectRegionHeaders","findMarkSectionHeaders","markHeaders","addMarkHeaderIfFound","collectMarkHeaders","sectionHeaders","lastIndex","exec","index","startsWith","replace","K","NS","locales","en","COPY","COPY_SUCCESS","COPY_FAILED","EXPAND","COLLAPSE","zh","confOfCel","expression","strings","extraLibsMap","Map","addExtraLibs","libs","flatMap","lib","uriString","file","filePath","previousLibs","get","forEach","disposables","languageDefaults","addExtraLib","content","set"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[7242],{7242:(e,t,n)=>{var i,s=n(4635),r=n(918),a=n(6902),o=n(5536),l=n(6121),c=n(829),u=n(2740),h=n(8769),d=n.n(h),g=n(6192),m=n(2304),p=n(9859),f=n(8792),k=n(426),A=n(2329),v=n(6197),y=n(3909),w=n(2257),b=n(3135),M=n(5310),C=n.n(M),x=(n(6477),n(563)),E=n(7137),L=n(4046),N=n(4804),S=n(4102),W=n(9287),B=n(9704),_=n(8182),P=n(3373),R=n.n(P),z=(n(3569),n(1968)),O=n(1836),I=n(5087),V=n(896),D=n(2066),F=n(8546),Y=n(6984);let H,K,T,q,j,U,J,X,Z,$,G,Q,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,fe,ke,Ae,ve,ye,we,be,Me,Ce,xe,Ee,Le,Ne,Se,We,Be,_e,Pe,Re,ze,Oe,Ie,Ve,De,Fe,Ye,He,Ke,Te,qe,je,Ue,Je,Xe,Ze;(0,B.initializeReactI18n)(_.NS,_.I),(0,v.kz)(A),(0,y.kz)(A),(0,w.kz)(A,"brick_next_yaml"),(0,b.kz)(A),(0,V.kz)(A),(0,D.kz)(A),(0,F.kz)(A);const $e=["cel_yaml","cel_str"],Ge=["cel",...$e];for(const e of $e)A.languages.registerCompletionItemProvider(e,{triggerCharacters:["<"],provideCompletionItems:Y.ix});for(const e of Ge)A.languages.registerCompletionItemProvider(e,(0,Y.ZY)(e));const{defineElement:Qe,property:et,event:tt}=(0,g.createDecorators)(),nt=(0,p.wrapBrick)("eo-form-item"),it=(0,p.wrapBrick)("eo-tooltip"),st=(0,p.wrapBrick)("eo-icon"),rt=(0,m.unwrapProvider)("basic.copy-to-clipboard"),at=(0,m.unwrapProvider)("basic.show-notification");let ot;var lt=new WeakMap,ct=new WeakMap,ut=new WeakMap,ht=new WeakMap,dt=new WeakMap,gt=new WeakMap,mt=new WeakMap,pt=new WeakMap,ft=new WeakMap,kt=new WeakMap,At=new WeakMap,vt=new WeakMap,yt=new WeakMap,wt=new WeakMap,bt=new WeakMap,Mt=new WeakMap,Ct=new WeakMap,xt=new WeakMap,Et=new WeakMap,Lt=new WeakMap,Nt=new WeakMap,St=new WeakMap,Wt=new WeakMap,Bt=new WeakMap,_t=new WeakMap,Pt=new WeakMap,Rt=new WeakSet,zt=new WeakMap,Ot=new WeakMap,It=new WeakMap,Vt=new WeakMap,Dt=new WeakMap,Ft=new WeakMap;class Yt extends k.N{constructor(){super(...arguments),(0,s.A)(this,Rt),(0,r.A)(this,lt,K(this)),(0,r.A)(this,ct,(T(this),q(this))),(0,r.A)(this,ut,(j(this),U(this))),(0,r.A)(this,ht,(J(this),X(this))),(0,r.A)(this,dt,(Z(this),$(this))),(0,r.A)(this,gt,(G(this),Q(this))),(0,r.A)(this,mt,(ee(this),te(this))),(0,r.A)(this,pt,(ne(this),ie(this))),(0,r.A)(this,ft,(se(this),re(this))),(0,r.A)(this,kt,(ae(this),oe(this))),(0,r.A)(this,At,(le(this),ce(this))),(0,r.A)(this,vt,(ue(this),he(this))),(0,r.A)(this,yt,(de(this),ge(this))),(0,r.A)(this,wt,(me(this),pe(this))),(0,r.A)(this,bt,(fe(this),ke(this))),(0,r.A)(this,Mt,(Ae(this),ve(this))),(0,r.A)(this,Ct,(ye(this),we(this))),(0,r.A)(this,xt,(be(this),Me(this))),(0,r.A)(this,Et,(Ce(this),xe(this))),(0,r.A)(this,Lt,(Ee(this),Le(this))),(0,r.A)(this,Nt,(Ne(this),Se(this))),(0,r.A)(this,St,(We(this),Be(this))),(0,r.A)(this,Wt,(_e(this),Pe(this))),(0,r.A)(this,Bt,(Re(this),ze(this))),(0,r.A)(this,_t,(Oe(this),Ie(this))),(0,r.A)(this,Pt,(Ve(this),De(this))),(0,r.A)(this,zt,(He(this),Ke(this))),(0,r.A)(this,Ot,(je(this),e=>{var t;this.value=e,null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),(0,o.A)(Rt,this,Fe).emit(e)})),(0,r.A)(this,It,(e=>{(0,o.A)(Rt,this,Te).emit(e)})),(0,r.A)(this,Vt,Ue(this)),(0,r.A)(this,Dt,(Ze(this),e=>{(0,o.A)(Rt,this,Je).emit(e)})),(0,r.A)(this,Ft,(e=>{if("brick_next_yaml"===this.language||"yaml"===this.language)try{C().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,c.A)(lt,this)}set name(e){(0,l.A)(lt,this,e)}get label(){return(0,c.A)(ct,this)}set label(e){(0,l.A)(ct,this,e)}get value(){return(0,c.A)(ut,this)}set value(e){(0,l.A)(ut,this,e)}get language(){return(0,c.A)(ht,this)}set language(e){(0,l.A)(ht,this,e)}get theme(){return(0,c.A)(dt,this)}set theme(e){(0,l.A)(dt,this,e)}get required(){return(0,c.A)(gt,this)}set required(e){(0,l.A)(gt,this,e)}get readOnly(){return(0,c.A)(mt,this)}set readOnly(e){(0,l.A)(mt,this,e)}get automaticLayout(){return(0,c.A)(pt,this)}set automaticLayout(e){(0,l.A)(pt,this,e)}get minLines(){return(0,c.A)(ft,this)}set minLines(e){(0,l.A)(ft,this,e)}get completers(){return(0,c.A)(kt,this)}set completers(e){(0,l.A)(kt,this,e)}get advancedCompleters(){return(0,c.A)(At,this)}set advancedCompleters(e){(0,l.A)(At,this,e)}get markers(){return(0,c.A)(vt,this)}set markers(e){(0,l.A)(vt,this,e)}get links(){return(0,c.A)(yt,this)}set links(e){(0,l.A)(yt,this,e)}get maxLines(){return(0,c.A)(wt,this)}set maxLines(e){(0,l.A)(wt,this,e)}get height(){return(0,c.A)(bt,this)}set height(e){(0,l.A)(bt,this,e)}get message(){return(0,c.A)(Mt,this)}set message(e){(0,l.A)(Mt,this,e)}get placeholder(){return(0,c.A)(Ct,this)}set placeholder(e){(0,l.A)(Ct,this,e)}get showExpandButton(){return(0,c.A)(xt,this)}set showExpandButton(e){(0,l.A)(xt,this,e)}get lineNumbers(){return(0,c.A)(Et,this)}set lineNumbers(e){(0,l.A)(Et,this,e)}get tokenConfig(){return(0,c.A)(Lt,this)}set tokenConfig(e){(0,l.A)(Lt,this,e)}get customValidationInBrickNextYaml(){return(0,c.A)(Nt,this)}set customValidationInBrickNextYaml(e){(0,l.A)(Nt,this,e)}get showCopyButton(){return(0,c.A)(St,this)}set showCopyButton(e){(0,l.A)(St,this,e)}get glyphMargin(){return(0,c.A)(Wt,this)}set glyphMargin(e){(0,l.A)(Wt,this,e)}get extraLibs(){return(0,c.A)(Bt,this)}set extraLibs(e){(0,l.A)(Bt,this,e)}get fixedOverflowWidgets(){return(0,c.A)(_t,this)}set fixedOverflowWidgets(e){(0,l.A)(_t,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return d().createElement(nt,{exportparts:"message",curElement:this,formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,helpBrick:this.helpBrick,labelBrick:this.labelBrick,notRender:this.notRender,validator:(0,c.A)(Ft,this)},d().createElement(Ht,{value:this.value,language:this.language,readOnly:this.readOnly,theme:this.theme,automaticLayout:this.automaticLayout,minLines:this.minLines,maxLines:this.maxLines,height:this.height,completers:this.completers,advancedCompleters:this.advancedCompleters,extraLibs:this.extraLibs,markers:this.markers,links:this.links,tokenConfig:this.tokenConfig,lineNumbers:this.lineNumbers,glyphMargin:this.glyphMargin,placeholder:this.placeholder,showCopyButton:this.showCopyButton,showExpandButton:this.showExpandButton,validateState:this.validateState,onChange:(0,c.A)(Ot,this),onUserInput:(0,c.A)(It,this),onTokenClick:(0,c.A)(Dt,this),customValidationInBrickNextYaml:this.customValidationInBrickNextYaml}))}}function Ht(e){let{value:t,language:n,theme:i,minLines:s,maxLines:r,height:a,automaticLayout:o,completers:l,advancedCompleters:c,markers:u,readOnly:g,links:m,extraLibs:p,tokenConfig:k,showExpandButton:v,showCopyButton:y=!0,lineNumbers:w="on",glyphMargin:b=!1,placeholder:M,validateState:C,onChange:P,onTokenClick:V,customValidationInBrickNextYaml:D,fixedOverflowWidgets:F}=e;const H=null!=t?t:"",K=null!=n?n:"plaintext",T=null!=i?i:"auto",q=null!=s?s:3,j=null!=r?r:1/0,U=null!=a?a:500,J=null==F||F,[X,Z]=(0,h.useState)(!1),$=(0,h.useMemo)((()=>(0,x.uniqueId)("worker")),[]),{t:G}=(0,B.useTranslation)(_.NS),Q=(0,h.useRef)(null),ee=(0,h.useRef)(),te=(0,h.useRef)(),ne=(0,h.useRef)({width:300,height:Kt(H,q,j)}),[ie,se]=(0,h.useState)(),re=(0,h.useRef)(o),ae=(0,f.useCurrentTheme)(),oe="auto"===T?"dark"===ae||"dark-v2"===ae?"vs-dark":"vs":T,le="vs-dark"===oe||"hc-black"===oe;(0,h.useEffect)((()=>{const e=le?"#FFFFFF0F":"#0000000A";A.editor.defineTheme("custom-theme",{base:oe,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${e}`}}),A.editor.setTheme("custom-theme")}),[oe,le]),(0,h.useEffect)((()=>{if(te.current){const e=te.current.getModel();A.editor.setModelLanguage(e,K)}}),[K]),(0,h.useEffect)((()=>{if("brick_next_yaml"===K){const e=(0,L.v)(l,Array.isArray(c)?void 0:c,$,k),t=A.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,c,K,$,k]),(0,h.useEffect)((()=>{if(Array.isArray(c)&&c.length>0&&Ge.includes(K)){const e=A.languages.registerCompletionItemProvider(K,(0,Y.MY)(K,$,c));return()=>{e.dispose()}}}),[K,c,$]),(0,h.useEffect)((()=>{const e=te.current;if(e){const t=e.getModel();null!=t&&t.getValue&&H!==t.getValue()&&t.setValue(H)}}),[H]),(0,h.useLayoutEffect)((()=>{var e;if("fit-content"!==re.current||!Q.current)return;ne.current.width=Q.current.getBoundingClientRect().width,null===(e=te.current)||void 0===e||e.layout(ne.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===Q.current){const e=n.contentBoxSize?n.contentBoxSize[0].inlineSize:n.contentRect.width,i=n.contentBoxSize?n.contentBoxSize[0].blockSize:n.contentRect.height;var t;(e!==ne.current.width||X)&&(ne.current.width=e,null===(t=te.current)||void 0===t||t.layout({width:e,height:X?i:ne.current.height}));break}}));return t.observe(Q.current),()=>{t.disconnect()}}),[X]),(0,h.useLayoutEffect)((()=>{if("fit-container"!==re.current)return;const e=function(e){let t=e;for(;t;){const e="vs.code-editor"===t.tagName.toLowerCase();if(t=t.parentElement,e)return t}}(Q.current);if(!e)return;const t=new ResizeObserver((()=>{se(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,h.useEffect)((()=>{"fit-container"!==re.current&&"fit-content"!==re.current&&se(U)}),[U]),(0,h.useEffect)((()=>{te.current&&te.current.updateOptions({readOnly:g,lineNumbersMinChars:X?5:3})}),[g,X]),(0,h.useEffect)((()=>{if(te.current||!Q.current)return;const e=A.editor.createModel(H,K);if("brick_next_yaml"===K){const t=(0,S.AR)(e.uri);A.editor.createModel(H,"javascript",t),A.languages.typescript.javascriptDefaults.addExtraLib((0,S.Eh)(),e.uri.toString()+"d.ts")}te.current=A.editor.create(Q.current,{extraEditorClassName:"monaco-editor-v3",model:e,minimap:{enabled:!1,showRegionSectionHeaders:!1,showMarkSectionHeaders:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==re.current,fontSize:E.yU,lineHeight:E.fE,scrollbar:{horizontalScrollbarSize:E.lP,verticalScrollbarSize:E.lP,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:E.Vu,bottom:"fit-content"==re.current?void 0:E.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:J,lineNumbers:w,lineNumbersMinChars:3,glyphMargin:b,folding:"off"!==w,suggest:{insertMode:"insert",preview:!0},readOnly:g,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0,unicodeHighlight:{ambiguousCharacters:!1}}),ee.current=te.current.createDecorationsCollection()}),[]),(0,h.useEffect)((()=>{const e=null!=p?p:[],t="typescript"===K?"typescriptDefaults":"javascriptDefaults",n=(0,W.m)(e,{languageDefaults:t});return()=>{for(const e of n)e.dispose()}}),[p,K]),(0,h.useEffect)((()=>{const e=te.current;if("brick_next_yaml"===K&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n,i;const s=ee.current;(null!==(n=null==s||null===(i=s.getRanges)||void 0===i?void 0:i.call(s))&&void 0!==n?n:[]).forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)&&V(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=ee.current;t&&t.getRanges().forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";if(n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:n.equalsRange(e)?"highlight pointer":"highlight"}})));t.set(e)}else if(!e.event[i]){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:"highlight"}})));t.set(e)}}))}));return()=>{null==i||i.dispose(),null==n||n.dispose()}}}),[K,V,ae,T]),(0,h.useEffect)((()=>{const e=te.current;if(!e||!Q.current||"fit-content"!==re.current)return;const t=e.onDidContentSizeChange((t=>{if(!X&&t.contentHeightChanged){const n=Tt(t.contentHeight,q,j);n!==ne.current.height&&(ne.current.height=n,e.layout(ne.current))}})),n=Tt(e.getContentHeight(),q,j);return n!==ne.current.height&&(ne.current.height=n,e.layout(ne.current)),()=>{t.dispose()}}),[j,q,X]);const ce=(0,h.useCallback)((async(e,t)=>{A.editor.setModelMarkers(e,"semantic_validate",[]);const n=e.findPreviousMatch("<%[~=]?",t,!0,!1,null,!1),i=e.findNextMatch("%>",t,!1,!1,null,!1),s=null==n?void 0:n.range,r=null==i?void 0:i.range;if(s&&r){const n=new A.Range(s.startLineNumber,s.endColumn,r.startLineNumber,r.startColumn),i=e.getValueInRange(n);if(n.containsPosition(t)&&!/<% | %>/.test(i)){const t=(0,S.AR)(e.uri);A.editor.getModel(t).setValue(i);const r=e.getOffsetAt(new A.Position(s.startLineNumber,s.endColumn));if(z.b.getInstance($).updateState({content:i,range:n,offset:r}),!D)return;const a=await A.languages.typescript.getJavaScriptWorker(),o=await a(t),l=(await o.getSemanticDiagnostics(t.toString())).map((t=>{var n;const i=r+(null!==(n=t.start)&&void 0!==n?n:0),s=e.getPositionAt(i);return{startLineNumber:s.lineNumber,startColumn:s.column,endLineNumber:s.lineNumber,endColumn:s.column+t.length,message:t.messageText,severity:A.MarkerSeverity.Warning}}));A.editor.setModelMarkers(e,"semantic_validate",l)}}}),[$]);(0,h.useEffect)((()=>{if(!te.current)return;const e=te.current.getModel(),t=e.onDidChangeContent((async t=>{(0,N.J)($),["brick_next_yaml"].includes(K)&&ce(e,te.current.getPosition()),t.isFlush||P(e.getValue())}));return()=>{t.dispose()}}),[P,$,K,ce]),(0,h.useEffect)((()=>{if(X){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),Z(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[X]),(0,h.useEffect)((()=>()=>{var e,t;null===(e=te.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=te.current)||void 0===t||t.dispose()}),[]),(0,h.useEffect)((()=>{if(!te.current&&!M)return;const e=new O.j(M,te.current,le?"rgba(174,174,175,0.4)":"rgba(89,89,89,0.4)");return()=>{e.dispose()}}),[M,le]);const ue=(0,h.useCallback)((()=>{if(te.current){const e=te.current.getModel();rt(e.getValue()).then((()=>at({type:"success",message:G(_.K.COPY_SUCCESS)}))).catch((()=>at({type:"error",message:G(_.K.COPY_FAILED)})))}}),[G]),he=(0,h.useCallback)((()=>{Z(!X)}),[X]);return(0,h.useEffect)((()=>{const e=te.current;if(!e||"brick_next_yaml"!==K)return;let t=!1;const n=(0,x.debounce)((async()=>{var n;const i=await(0,I.K)();if(t)return;const{lintMarkers:s,lintDecorations:r}=await i.lint({source:e.getValue(),links:m,markers:u}),a=e.getModel();!t&&a&&(A.editor.setModelMarkers(a,"brick_next_yaml_lint",s.map((e=>{let{start:t,end:n,message:i,severity:s,code:r}=e;const o=a.getPositionAt(t),l=a.getPositionAt(n);return{startLineNumber:o.lineNumber,startColumn:o.column,endLineNumber:l.lineNumber,endColumn:l.column,severity:A.MarkerSeverity[s],message:i,code:r}}))),null===(n=ee.current)||void 0===n||n.set(r.map((e=>{let{start:t,end:n,options:i}=e;return{range:A.Range.fromPositions(a.getPositionAt(t),a.getPositionAt(n)),options:i}}))))}),200),i=e.onDidChangeModelContent(n);return n(),()=>{t=!0,i.dispose(),A.editor.setModelMarkers(e.getModel(),"brick_next_yaml_lint",[])}}),[K,m,u,T,$]),d().createElement("div",{className:R()("code-editor-wrapper",{expanded:X,error:"error"===C})},d().createElement("div",{ref:Q,style:{height:X?"100%":ie,overflow:X?"scroll":""}}),d().createElement("div",{className:"toolbar-wrapper"},d().createElement("div",{className:"toolbar sticky"},y&&d().createElement(it,{content:G(_.K.COPY)},d().createElement(st,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:ue})),v&&d().createElement(it,{content:G(X?_.K.COLLAPSE:_.K.EXPAND)},d().createElement(st,{className:"expand-icon",icon:X?"compress":"expand",lib:"antd",theme:"outlined",onClick:he})))))}function Kt(e,t,n){return qt(Math.min(n,Math.max(t,e.split("\n").length)))}function Tt(e,t,n){let i=e;return(e-E.Vu)%E.fE==0&&(i=e+E.lP),Math.min(qt(n),Math.max(i,qt(t)))}function qt(e){return e*E.fE+E.lP+E.Vu}i=Yt,({e:[K,T,q,j,U,J,X,Z,$,G,Q,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,fe,ke,Ae,ve,ye,we,be,Me,Ce,xe,Ee,Le,Ne,Se,We,Be,_e,Pe,Re,ze,Oe,Ie,Ve,De,Fe,Ye,He,Ke,Te,qe,je,Ue,Je,Xe,Ze],c:[ot,H]}=(0,u.A)(i,[Qe("vs.code-editor",{shadowOptions:!1})],[[et(),1,"name"],[et(),1,"label"],[et(),1,"value"],[et(),1,"language"],[et(),1,"theme"],[et({type:Boolean}),1,"required"],[et({type:Boolean}),1,"readOnly"],[et(),1,"automaticLayout"],[et({type:Number}),1,"minLines"],[et({attribute:!1}),1,"completers"],[et({attribute:!1}),1,"advancedCompleters"],[et({attribute:!1}),1,"markers"],[et({attribute:!1}),1,"links"],[et({type:Number}),1,"maxLines"],[et({attribute:!1}),1,"height"],[et(),1,"message"],[et(),1,"placeholder"],[et({type:Boolean}),1,"showExpandButton"],[et(),1,"lineNumbers"],[et({attribute:!1}),1,"tokenConfig"],[et({type:Boolean}),1,"customValidationInBrickNextYaml"],[et({type:Boolean}),1,"showCopyButton"],[et({type:Boolean}),1,"glyphMargin"],[et({attribute:!1}),1,"extraLibs"],[et({type:Boolean}),1,"fixedOverflowWidgets"],[tt({type:"code.change"}),1,"codeChange",e=>(0,c.A)(Pt,e),(e,t)=>(0,l.A)(Pt,e,t)],[tt({type:"user.input"}),1,"userInput",e=>(0,c.A)(zt,e),(e,t)=>(0,l.A)(zt,e,t)],[tt({type:"token.click"}),1,"tokenClickEvent",e=>(0,c.A)(Vt,e),(e,t)=>(0,l.A)(Vt,e,t)]],0,(e=>Ft.has((0,a.A)(e))),k.N)),H()}}]);
|
|
2
|
-
//# sourceMappingURL=7242.7eaeafb6.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/7242.7eaeafb6.js","mappings":"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","sources":["webpack:///./src/code-editor/index.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { register as registerJavaScript } from \"@next-core/monaco-contributions/javascript\";\nimport { register as registerTypeScript } from \"@next-core/monaco-contributions/typescript\";\nimport { register as registerYaml } from \"@next-core/monaco-contributions/yaml\";\nimport { register as registerHtml } from \"@next-core/monaco-contributions/html\";\nimport yaml from \"js-yaml\";\nimport \"@next-core/theme\";\nimport { uniqueId, debounce } from \"lodash\";\nimport {\n EDITOR_SCROLLBAR_SIZE,\n EDITOR_PADDING_VERTICAL,\n EDITOR_LINE_HEIGHT,\n EDITOR_FONT_SIZE,\n} from \"./constants.js\";\nimport {\n AdvancedCompleterMap,\n ExtraLib,\n type MixedCompleter,\n} from \"./interfaces.js\";\nimport { brickNextYAMLProviderCompletionItems } from \"./utils/brickNextYaml.js\";\nimport { Level } from \"./utils/constants.js\";\nimport { setEditorId } from \"./utils/editorId.js\";\nimport {\n getEmbeddedJavascriptUri,\n getBrickYamlBuiltInDeclare,\n} from \"./utils/jsSuggestInBrickYaml.js\";\nimport { addExtraLibs } from \"./utils/addExtraLibs.js\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport type { copyToClipboard as _copyToClipboard } from \"@next-bricks/basic/data-providers/copy-to-clipboard\";\nimport type { showNotification as _showNotification } from \"@next-bricks/basic/data-providers/show-notification/show-notification\";\nimport classNames from \"classnames\";\nimport \"./index.css\";\nimport { EmbeddedModelContext } from \"./utils/embeddedModelState.js\";\nimport { PlaceholderContentWidget } from \"./widget/Placeholder.js\";\nimport { getRemoteYamlLinterWorker } from \"./workers/yamlLinter.js\";\nimport { register as registerCel } from \"./languages/cel.js\";\nimport { register as registerCelYaml } from \"./languages/cel-yaml.js\";\nimport { register as registerCelStr } from \"./languages/cel-str.js\";\nimport {\n provideEmbeddedCelCompletionItems,\n celCommonCompletionProviderFactory,\n celSpecificCompletionProviderFactory,\n} from \"./utils/celCompletionProvider.js\";\n\ninitializeReactI18n(NS, locales);\n\nregisterJavaScript(monaco);\nregisterTypeScript(monaco);\nregisterYaml(monaco, \"brick_next_yaml\");\nregisterHtml(monaco);\nregisterCel(monaco);\nregisterCelYaml(monaco);\nregisterCelStr(monaco);\n\nconst EMBEDDED_CEL = [\"cel_yaml\", \"cel_str\"];\nconst CEL_FAMILY = [\"cel\", ...EMBEDDED_CEL];\nfor (const lang of EMBEDDED_CEL) {\n monaco.languages.registerCompletionItemProvider(lang, {\n triggerCharacters: [\"<\"],\n provideCompletionItems: provideEmbeddedCelCompletionItems,\n });\n}\n\nfor (const lang of CEL_FAMILY) {\n monaco.languages.registerCompletionItemProvider(\n lang,\n celCommonCompletionProviderFactory(lang)\n );\n}\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst copyToClipboard = unwrapProvider<typeof _copyToClipboard>(\n \"basic.copy-to-clipboard\"\n);\nconst showNotification = unwrapProvider<typeof _showNotification>(\n \"basic.show-notification\"\n);\n\nexport interface CodeEditorProps {\n name?: string;\n label?: string;\n value?: string;\n language?: string;\n theme?: string;\n placeholder?: string;\n required?: boolean;\n readOnly?: boolean;\n automaticLayout?: \"fit-container\" | \"fit-content\" | \"none\";\n minLines?: number;\n maxLines?: number;\n height?: string | number;\n completers?: monaco.languages.CompletionItem[];\n tokenConfig?: TokenConfig;\n advancedCompleters?: AdvancedCompleterMap | MixedCompleter[];\n extraLibs?: ExtraLib[];\n markers?: Marker[];\n links?: string[];\n showExpandButton?: boolean;\n showCopyButton?: boolean;\n lineNumbers?: monaco.editor.LineNumbersType;\n glyphMargin?: boolean;\n validateState?: string;\n customValidationInBrickNextYaml?: boolean;\n fixedOverflowWidgets?: boolean;\n}\n\nexport interface Marker {\n token: string;\n level?: keyof typeof Level;\n message?: string;\n code?: {\n value: string;\n target: string;\n };\n params?: string[];\n}\n\nexport type TokenConfig = {\n showDSKey?: boolean;\n};\n\n/**\n * 构件代码编辑器\n * @category form-input-advanced\n */\nexport\n@defineElement(\"vs.code-editor\", {\n // There are a few issues for monaco-editor with shadow DOM.\n // So we use light DOM for now.\n // See https://github.com/microsoft/monaco-editor/issues?q=is%3Aissue+is%3Aopen+shadow+dom\n shadowOptions: false,\n})\nclass CodeEditor extends FormItemElementBase implements CodeEditorProps {\n @property()\n accessor name: string | undefined;\n\n @property()\n accessor label: string | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * @default \"plaintext\"\n */\n @property()\n accessor language: string | undefined;\n\n /**\n * 主题,支持 `\"auto\" | \"vs\" | \"vs-dark\"`\n *\n * @default \"auto\"\n * @group ui\n */\n @property() accessor theme: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor readOnly: boolean | undefined;\n\n @property()\n accessor automaticLayout:\n | \"fit-container\"\n | \"fit-content\"\n | \"none\"\n | undefined;\n\n /**\n * @default 3\n */\n @property({ type: Number })\n accessor minLines: number | undefined;\n\n /**\n * 仅对 language 为 brick_next_yaml 有效,设置第一层属性名的自动补全。\n */\n @property({\n attribute: false,\n })\n accessor completers: monaco.languages.CompletionItem[] | undefined;\n\n /**\n * 高级自动补全配置。\n * - 设置为键值对时,仅对 language 为 brick_next_yaml 有效,设置任意的自动补全;\n * - 设置为数组时,当前仅对 language 为 cel 有效。\n * 未来将统一改为数组格式,废弃键值对格式的配置。\n */\n @property({\n attribute: false,\n })\n accessor advancedCompleters:\n | AdvancedCompleterMap\n | MixedCompleter[]\n | undefined;\n\n @property({ attribute: false })\n accessor markers: Marker[] | undefined;\n\n @property({ attribute: false })\n accessor links: string[] | undefined;\n\n /**\n * @default Infinity\n */\n @property({ type: Number })\n accessor maxLines: number | undefined;\n\n @property({ attribute: false })\n accessor height: string | number | undefined;\n\n @property()\n accessor message: string | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n /**\n * 是否展示展开按钮\n */\n @property({ type: Boolean })\n accessor showExpandButton: boolean | undefined;\n\n /**\n * 行数配置\n */\n @property()\n accessor lineNumbers: monaco.editor.LineNumbersType | undefined;\n\n /**\n * 自定义高亮配置\n */\n @property({\n attribute: false,\n })\n accessor tokenConfig: TokenConfig | undefined;\n\n /**\n * 在 brick_next_yaml 中是否开启语义相关校验\n * @default false\n */\n @property({\n type: Boolean,\n })\n accessor customValidationInBrickNextYaml: boolean | undefined;\n\n /**\n * 是否展示复制按钮\n * @default true\n */\n @property({ type: Boolean })\n accessor showCopyButton: boolean | undefined;\n\n /**\n * 显示字形边距\n * @default false\n */\n @property({ type: Boolean })\n accessor glyphMargin: boolean | undefined;\n\n /**\n * @description 额外声明的 lib 库\n */\n @property({\n attribute: false,\n })\n accessor extraLibs: ExtraLib[] | undefined;\n\n /**\n * @default true\n */\n @property({ type: Boolean })\n accessor fixedOverflowWidgets: boolean | undefined;\n\n @event({ type: \"code.change\" })\n accessor #codeChange!: EventEmitter<string>;\n\n @event({ type: \"user.input\" })\n accessor #userInput!: EventEmitter<any>;\n\n #handleChange = (value: string) => {\n this.value = value;\n this.getFormElement()?.formStore.onChange(this.name!, value);\n this.#codeChange.emit(value);\n };\n\n #handleUserInput = (value: any) => {\n this.#userInput.emit(value);\n };\n\n @event({ type: \"token.click\" })\n accessor #tokenClickEvent!: EventEmitter<string>;\n\n #handleTokenClick = (word: string) => {\n this.#tokenClickEvent.emit(word);\n };\n\n #handleValidator = (value: string) => {\n if (this.language === \"brick_next_yaml\" || this.language === \"yaml\") {\n try {\n yaml.load(value);\n } catch {\n return \"请填写正确的格式\";\n }\n }\n return \"\";\n };\n\n connectedCallback(): void {\n // Don't override user's style settings.\n // istanbul ignore else\n if (!this.style.display) {\n this.style.display = \"block\";\n }\n super.connectedCallback();\n }\n\n render() {\n return (\n <WrappedFormItem\n exportparts=\"message\"\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n notRender={this.notRender}\n validator={this.#handleValidator}\n >\n <CodeEditorComponent\n value={this.value}\n language={this.language}\n readOnly={this.readOnly}\n theme={this.theme}\n automaticLayout={this.automaticLayout}\n minLines={this.minLines}\n maxLines={this.maxLines}\n height={this.height}\n completers={this.completers}\n advancedCompleters={this.advancedCompleters}\n extraLibs={this.extraLibs}\n markers={this.markers}\n links={this.links}\n tokenConfig={this.tokenConfig}\n lineNumbers={this.lineNumbers}\n glyphMargin={this.glyphMargin}\n placeholder={this.placeholder}\n showCopyButton={this.showCopyButton}\n showExpandButton={this.showExpandButton}\n validateState={this.validateState}\n onChange={this.#handleChange}\n onUserInput={this.#handleUserInput}\n onTokenClick={this.#handleTokenClick}\n customValidationInBrickNextYaml={this.customValidationInBrickNextYaml}\n />\n </WrappedFormItem>\n );\n }\n}\n\nexport function CodeEditorComponent({\n value: _value,\n language: _language,\n theme: _theme,\n minLines: _minLines,\n maxLines: _maxLines,\n height: _height,\n automaticLayout,\n completers,\n advancedCompleters,\n markers,\n readOnly,\n links,\n extraLibs,\n tokenConfig,\n showExpandButton,\n showCopyButton = true,\n lineNumbers = \"on\",\n glyphMargin = false,\n placeholder,\n validateState,\n onChange,\n // onUserInput,\n onTokenClick,\n customValidationInBrickNextYaml,\n fixedOverflowWidgets: _fixedOverflowWidgets,\n}: CodeEditorProps & {\n onChange(value: string): void;\n onUserInput: (value: any) => void;\n onTokenClick(word: string): void;\n}) {\n const value = _value ?? \"\";\n const language = _language ?? \"plaintext\";\n const theme = _theme ?? \"auto\";\n const minLines = _minLines ?? 3;\n const maxLines = _maxLines ?? Infinity;\n const height = _height ?? 500;\n const fixedOverflowWidgets = _fixedOverflowWidgets ?? true;\n const [expanded, setExpanded] = useState(false);\n const workerId = useMemo(() => uniqueId(\"worker\"), []);\n\n const { t } = useTranslation(NS);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const decorationsCollection =\n useRef<monaco.editor.IEditorDecorationsCollection>();\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n const size = useRef<monaco.editor.IDimension>({\n width: 300,\n height: getContentHeightByCode(value, minLines, maxLines),\n });\n const [actualHeight, setActualHeight] = useState<string | number>();\n // `automaticLayout` should never change\n const automaticLayoutRef = useRef(automaticLayout);\n const systemTheme = useCurrentTheme();\n\n const computedTheme =\n theme === \"auto\"\n ? systemTheme === \"dark\" || systemTheme === \"dark-v2\"\n ? \"vs-dark\"\n : \"vs\"\n : theme;\n const isDarkTheme =\n computedTheme === \"vs-dark\" || computedTheme === \"hc-black\";\n\n useEffect(() => {\n const lineHighlightBackground = isDarkTheme ? \"#FFFFFF0F\" : \"#0000000A\";\n monaco.editor.defineTheme(\"custom-theme\", {\n base: computedTheme as \"vs-dark\" | \"vs\",\n inherit: true,\n rules: [],\n colors: {\n \"editor.lineHighlightBackground\": `${lineHighlightBackground}`,\n },\n });\n // Currently theme is configured globally.\n // See https://github.com/microsoft/monaco-editor/issues/338\n monaco.editor.setTheme(\"custom-theme\");\n }, [computedTheme, isDarkTheme]);\n\n useEffect(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n monaco.editor.setModelLanguage(currentModel, language);\n }\n }, [language]);\n\n useEffect(() => {\n if (language === \"brick_next_yaml\") {\n const provideCompletionItems = brickNextYAMLProviderCompletionItems(\n completers,\n Array.isArray(advancedCompleters) ? undefined : advancedCompleters,\n workerId,\n tokenConfig\n );\n const monacoProviderRef = monaco.languages.registerCompletionItemProvider(\n \"brick_next_yaml\",\n {\n provideCompletionItems,\n triggerCharacters: [\".\", \":\", \"<\"],\n } as monaco.languages.CompletionItemProvider\n );\n return () => {\n monacoProviderRef.dispose();\n };\n }\n }, [completers, advancedCompleters, language, workerId, tokenConfig]);\n\n useEffect(() => {\n if (\n Array.isArray(advancedCompleters) &&\n advancedCompleters.length > 0 &&\n CEL_FAMILY.includes(language)\n ) {\n const disposable = monaco.languages.registerCompletionItemProvider(\n language,\n celSpecificCompletionProviderFactory(\n language,\n workerId,\n advancedCompleters\n )\n );\n return () => {\n disposable.dispose();\n };\n }\n }, [language, advancedCompleters, workerId]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (editor) {\n const currentModel = editor.getModel();\n if (currentModel?.getValue && value !== currentModel.getValue()) {\n currentModel.setValue(value as string);\n }\n }\n }, [value]);\n\n useLayoutEffect(() => {\n if (automaticLayoutRef.current !== \"fit-content\" || !containerRef.current) {\n return;\n }\n\n size.current.width = containerRef.current.getBoundingClientRect().width;\n editorRef.current?.layout(size.current);\n\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === containerRef.current) {\n const newWidth = entry.contentBoxSize\n ? entry.contentBoxSize[0].inlineSize\n : entry.contentRect.width;\n const newHeight = entry.contentBoxSize\n ? entry.contentBoxSize[0].blockSize\n : entry.contentRect.height;\n if (newWidth !== size.current.width || expanded) {\n size.current.width = newWidth;\n editorRef.current?.layout({\n width: newWidth,\n height: expanded ? newHeight : size.current.height,\n });\n }\n break;\n }\n }\n });\n observer.observe(containerRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, [expanded]);\n\n useLayoutEffect(() => {\n if (automaticLayoutRef.current !== \"fit-container\") {\n return;\n }\n\n const container = getDOMContainer(containerRef.current);\n if (!container) {\n return;\n }\n // Manually layout the editor once the container resized.\n const observer = new ResizeObserver((): void => {\n setActualHeight(container.offsetHeight);\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useEffect(() => {\n if (\n automaticLayoutRef.current !== \"fit-container\" &&\n automaticLayoutRef.current !== \"fit-content\"\n ) {\n setActualHeight(height);\n }\n }, [height]);\n\n useEffect(() => {\n if (!editorRef.current) return;\n editorRef.current.updateOptions({\n readOnly,\n lineNumbersMinChars: expanded ? 5 : 3,\n });\n }, [readOnly, expanded]);\n\n useEffect(() => {\n if (editorRef.current || !containerRef.current) {\n return;\n }\n const model = monaco.editor.createModel(value, language);\n if (language === \"brick_next_yaml\") {\n // 注册嵌套的 model, language 为 js\n const uri = getEmbeddedJavascriptUri(model.uri);\n monaco.editor.createModel(value, \"javascript\", uri);\n monaco.languages.typescript.javascriptDefaults.addExtraLib(\n getBrickYamlBuiltInDeclare(),\n model.uri.toString() + \"d.ts\"\n );\n }\n\n editorRef.current = monaco.editor.create(containerRef.current, {\n extraEditorClassName: \"monaco-editor-v3\",\n model,\n minimap: {\n enabled: false,\n showRegionSectionHeaders: false,\n showMarkSectionHeaders: false,\n },\n scrollBeyondLastLine: false,\n tabSize: 2,\n insertSpaces: true,\n automaticLayout: automaticLayoutRef.current !== \"fit-content\",\n fontSize: EDITOR_FONT_SIZE,\n lineHeight: EDITOR_LINE_HEIGHT,\n scrollbar: {\n horizontalScrollbarSize: EDITOR_SCROLLBAR_SIZE,\n verticalScrollbarSize: EDITOR_SCROLLBAR_SIZE,\n horizontalSliderSize: 8,\n verticalSliderSize: 8,\n alwaysConsumeMouseWheel: false,\n },\n padding: {\n top: EDITOR_PADDING_VERTICAL,\n // When use `fit-content`, we always plus the height with the vertical padding.\n // Thus the possible x-scrollbar will not take extra space at the bottom.\n bottom:\n automaticLayoutRef.current == \"fit-content\"\n ? undefined\n : EDITOR_PADDING_VERTICAL,\n },\n overviewRulerBorder: false,\n mouseWheelScrollSensitivity: 0.5,\n fixedOverflowWidgets,\n lineNumbers: lineNumbers,\n lineNumbersMinChars: 3,\n glyphMargin,\n folding: lineNumbers !== \"off\",\n suggest: {\n insertMode: \"insert\",\n preview: true,\n },\n readOnly: readOnly,\n quickSuggestions: { strings: true, other: true, comments: true },\n renderLineHighlightOnlyWhenFocus: true,\n unicodeHighlight: {\n ambiguousCharacters: false,\n },\n });\n\n decorationsCollection.current =\n editorRef.current.createDecorationsCollection();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const libs: ExtraLib[] = extraLibs ?? [];\n\n const languageDefaults =\n language === \"typescript\" ? \"typescriptDefaults\" : \"javascriptDefaults\";\n const disposables = addExtraLibs(libs, {\n languageDefaults,\n });\n return () => {\n for (const item of disposables) {\n item.dispose();\n }\n };\n }, [extraLibs, language]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (language === \"brick_next_yaml\" && editor) {\n const model = editor.getModel()!;\n const editorMouseDownEvent = editor.onMouseDown(function (e) {\n const decorations = decorationsCollection.current;\n (decorations?.getRanges?.() ?? []).forEach((range) => {\n const modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n if (\n range &&\n e.target.position &&\n e.event[modKey] &&\n range.containsPosition(e.target.position)\n ) {\n onTokenClick(model.getValueInRange(range));\n }\n });\n });\n\n const mouseOverEvent = editor.onMouseMove(function (e) {\n const decorations = decorationsCollection.current;\n if (!decorations) return;\n decorations.getRanges().forEach((range) => {\n const modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n if (\n range &&\n e.target.position &&\n e.event[modKey] &&\n range.containsPosition(e.target.position)\n ) {\n const newDecorations = decorations.getRanges().map((item) => ({\n range: item,\n options: {\n inlineClassName: range.equalsRange(item)\n ? \"highlight pointer\"\n : \"highlight\",\n },\n }));\n decorations.set(newDecorations);\n } else if (!e.event[modKey]) {\n const newDecorations = decorations.getRanges().map((item) => ({\n range: item,\n options: {\n inlineClassName: \"highlight\",\n },\n }));\n decorations.set(newDecorations);\n }\n });\n });\n\n return () => {\n mouseOverEvent?.dispose();\n editorMouseDownEvent?.dispose();\n };\n }\n }, [language, onTokenClick, systemTheme, theme]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (\n !editor ||\n !containerRef.current ||\n automaticLayoutRef.current !== \"fit-content\"\n ) {\n return;\n }\n\n const listener = editor.onDidContentSizeChange((e) => {\n if (expanded) return;\n if (e.contentHeightChanged) {\n const newHeight = fixEditorHeightWithScrollBar(\n e.contentHeight,\n minLines,\n maxLines\n );\n if (newHeight !== size.current.height) {\n size.current.height = newHeight;\n editor.layout(size.current);\n }\n }\n });\n\n const newHeight = fixEditorHeightWithScrollBar(\n editor.getContentHeight(),\n minLines,\n maxLines\n );\n if (newHeight !== size.current.height) {\n size.current.height = newHeight;\n editor.layout(size.current);\n }\n\n return () => {\n listener.dispose();\n };\n }, [maxLines, minLines, expanded]);\n\n // istanbul ignore next\n const embeddedModelProcessor = useCallback(\n async (model: monaco.editor.IModel, position: monaco.Position) => {\n monaco.editor.setModelMarkers(model, \"semantic_validate\", []);\n\n const prefixEvaluateOperator = model.findPreviousMatch(\n \"<%[~=]?\",\n position,\n true,\n false,\n null,\n false\n );\n\n const suffixEvaluateOperator = model.findNextMatch(\n \"%>\",\n position,\n false,\n false,\n null,\n false\n );\n\n const prefixEvaluateRange = prefixEvaluateOperator?.range;\n const suffixEvaluateRange = suffixEvaluateOperator?.range;\n\n if (prefixEvaluateRange && suffixEvaluateRange) {\n const range = new monaco.Range(\n prefixEvaluateRange.startLineNumber,\n prefixEvaluateRange.endColumn,\n suffixEvaluateRange.startLineNumber,\n suffixEvaluateRange.startColumn\n );\n\n const content = model.getValueInRange(range);\n if (range.containsPosition(position!) && !/<% | %>/.test(content)) {\n const newUri = getEmbeddedJavascriptUri(model.uri);\n const embeddedModel = monaco.editor.getModel(newUri);\n\n embeddedModel!.setValue(content);\n const offset = model.getOffsetAt(\n new monaco.Position(\n prefixEvaluateRange.startLineNumber,\n prefixEvaluateRange.endColumn\n )\n );\n\n const embeddedContext = EmbeddedModelContext.getInstance(workerId);\n\n embeddedContext.updateState({ content, range, offset });\n\n if (!customValidationInBrickNextYaml) return;\n\n const getWorker =\n await monaco.languages.typescript.getJavaScriptWorker();\n\n const worker = await getWorker(newUri);\n\n const diagnostics = await worker.getSemanticDiagnostics(\n newUri.toString()\n );\n\n const semanticMarkers = diagnostics.map((item) => {\n const finalOffset = offset + (item.start ?? 0);\n const currentPosition = model.getPositionAt(finalOffset);\n\n return {\n startLineNumber: currentPosition.lineNumber,\n startColumn: currentPosition.column,\n endLineNumber: currentPosition.lineNumber,\n endColumn: currentPosition.column + item.length!,\n message: item.messageText as string,\n severity: monaco.MarkerSeverity.Warning,\n };\n });\n\n monaco.editor.setModelMarkers(\n model,\n \"semantic_validate\",\n semanticMarkers\n );\n }\n }\n },\n [workerId]\n );\n\n useEffect(() => {\n if (!editorRef.current) {\n return;\n }\n const currentModel = editorRef.current.getModel()!;\n const listener = currentModel.onDidChangeContent(async (e) => {\n setEditorId(workerId);\n\n if ([\"brick_next_yaml\"].includes(language)) {\n embeddedModelProcessor(currentModel, editorRef.current!.getPosition()!);\n // debounceParse();\n }\n if (!e.isFlush) {\n onChange(currentModel.getValue());\n }\n });\n return () => {\n listener.dispose();\n };\n }, [\n /* debounceParse, */ onChange,\n workerId,\n language,\n embeddedModelProcessor,\n ]);\n\n useEffect(() => {\n if (expanded) {\n const fn = (e: KeyboardEvent): void => {\n if (e.key === \"Escape\" || e.key === \"Esc\") {\n window.removeEventListener(\"keydown\", fn);\n setExpanded(false);\n }\n };\n window.addEventListener(\"keydown\", fn);\n return () => {\n window.removeEventListener(\"keydown\", fn);\n };\n }\n }, [expanded]);\n\n useEffect(() => {\n return () => {\n editorRef.current?.getModel()?.dispose();\n editorRef.current?.dispose();\n };\n }, []);\n\n useEffect(() => {\n if (!editorRef.current && !placeholder) return;\n const placeholderWidget = new PlaceholderContentWidget(\n placeholder!,\n editorRef.current!,\n isDarkTheme ? \"rgba(174,174,175,0.4)\" : \"rgba(89,89,89,0.4)\"\n );\n\n return () => {\n placeholderWidget.dispose();\n };\n }, [placeholder, isDarkTheme]);\n\n const handleCopyIconClick = useCallback(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n copyToClipboard(currentModel.getValue())\n .then(() =>\n showNotification({ type: \"success\", message: t(K.COPY_SUCCESS) })\n )\n .catch(() =>\n showNotification({ type: \"error\", message: t(K.COPY_FAILED) })\n );\n }\n }, [t]);\n\n const handleExpandedClick = useCallback(() => {\n setExpanded(!expanded);\n }, [expanded]);\n\n // istanbul ignore next\n useEffect(() => {\n const editor = editorRef.current;\n if (!(editor && language === \"brick_next_yaml\")) {\n return;\n }\n\n let ignore = false;\n const handleChange = async () => {\n const worker = await getRemoteYamlLinterWorker();\n if (ignore) {\n return;\n }\n const { lintMarkers, lintDecorations } = await worker.lint({\n source: editor.getValue(),\n links,\n markers,\n });\n const model = editor.getModel();\n if (ignore || !model) {\n return;\n }\n monaco.editor.setModelMarkers(\n model,\n \"brick_next_yaml_lint\",\n lintMarkers.map(({ start, end, message, severity, code }) => {\n const startPos = model.getPositionAt(start);\n const endPos = model.getPositionAt(end);\n return {\n startLineNumber: startPos.lineNumber,\n startColumn: startPos.column,\n endLineNumber: endPos.lineNumber,\n endColumn: endPos.column,\n severity: monaco.MarkerSeverity[severity],\n message,\n code: code as monaco.editor.IMarkerData[\"code\"],\n };\n })\n );\n decorationsCollection.current?.set(\n lintDecorations.map(({ start, end, options }) => ({\n range: monaco.Range.fromPositions(\n model.getPositionAt(start),\n model.getPositionAt(end)\n ),\n options,\n }))\n );\n };\n const debounceChange = debounce(handleChange, 200);\n const change = editor.onDidChangeModelContent(debounceChange);\n debounceChange();\n\n return () => {\n ignore = true;\n change.dispose();\n monaco.editor.setModelMarkers(\n editor.getModel()!,\n \"brick_next_yaml_lint\",\n []\n );\n };\n }, [language, links, markers, theme, workerId]);\n\n return (\n <div\n className={classNames(\"code-editor-wrapper\", {\n expanded,\n error: validateState === \"error\",\n })}\n >\n <div\n ref={containerRef}\n style={{\n height: expanded ? \"100%\" : actualHeight,\n overflow: expanded ? \"scroll\" : \"\",\n }}\n />\n <div className=\"toolbar-wrapper\">\n <div className=\"toolbar sticky\">\n {showCopyButton && (\n <WrappedTooltip content={t(K.COPY) as string}>\n <WrappedIcon\n className=\"copy-icon\"\n icon=\"copy\"\n lib=\"antd\"\n theme=\"outlined\"\n onClick={handleCopyIconClick}\n />\n </WrappedTooltip>\n )}\n {showExpandButton && (\n <WrappedTooltip\n content={(expanded ? t(K.COLLAPSE) : t(K.EXPAND)) as string}\n >\n <WrappedIcon\n className=\"expand-icon\"\n icon={expanded ? \"compress\" : \"expand\"}\n lib=\"antd\"\n theme=\"outlined\"\n onClick={handleExpandedClick}\n />\n </WrappedTooltip>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nfunction getContentHeightByCode(\n code: string,\n minLines: number,\n maxLines: number\n): number {\n return getContentHeightByLines(\n Math.min(maxLines, Math.max(minLines, code.split(\"\\n\").length))\n );\n}\n\nfunction fixEditorHeightWithScrollBar(\n contentHeight: number,\n minLines: number,\n maxLines: number\n): number {\n let fixedHeight = contentHeight;\n if ((contentHeight - EDITOR_PADDING_VERTICAL) % EDITOR_LINE_HEIGHT === 0) {\n fixedHeight = contentHeight + EDITOR_SCROLLBAR_SIZE;\n }\n return Math.min(\n getContentHeightByLines(maxLines),\n Math.max(fixedHeight, getContentHeightByLines(minLines))\n );\n}\n\nfunction getContentHeightByLines(lines: number): number {\n return (\n lines * EDITOR_LINE_HEIGHT + EDITOR_SCROLLBAR_SIZE + EDITOR_PADDING_VERTICAL\n );\n}\n\n/** Get the direct DOM container of `vs.code-editor` */\nfunction getDOMContainer(element: HTMLElement | null) {\n let brick = element;\n while (brick) {\n const found = brick.tagName.toLowerCase() === \"vs.code-editor\";\n brick = brick.parentElement;\n if (found) {\n return brick;\n }\n }\n}\n"],"names":["initializeReactI18n","NS","locales","registerJavaScript","monaco","registerTypeScript","registerYaml","registerHtml","registerCel","registerCelYaml","registerCelStr","EMBEDDED_CEL","CEL_FAMILY","lang","registerCompletionItemProvider","triggerCharacters","provideCompletionItems","provideEmbeddedCelCompletionItems","celCommonCompletionProviderFactory","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","WrappedTooltip","WrappedIcon","copyToClipboard","unwrapProvider","showNotification","_CodeEditor","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","_CodeEditor_brand","WeakSet","_a","_handleChange","_handleUserInput","_b","_handleTokenClick","_handleValidator","CodeEditor","FormItemElementBase","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_value","_init_extra_value","_init_language","_init_extra_language","_init_theme","_init_extra_theme","_init_required","_init_extra_required","_init_readOnly","_init_extra_readOnly","_init_automaticLayout","_init_extra_automaticLayout","_init_minLines","_init_extra_minLines","_init_completers","_init_extra_completers","_init_advancedCompleters","_init_extra_advancedCompleters","_init_markers","_init_extra_markers","_init_links","_init_extra_links","_init_maxLines","_init_extra_maxLines","_init_height","_init_extra_height","_init_message","_init_extra_message","_init_placeholder","_init_extra_placeholder","_init_showExpandButton","_init_extra_showExpandButton","_init_lineNumbers","_init_extra_lineNumbers","_init_tokenConfig","_init_extra_tokenConfig","_init_customValidationInBrickNextYaml","_init_extra_customValidationInBrickNextYaml","_init_showCopyButton","_init_extra_showCopyButton","_init_glyphMargin","_init_extra_glyphMargin","_init_extraLibs","_init_extra_extraLibs","_init_fixedOverflowWidgets","_init_extra_fixedOverflowWidgets","_init_codeChange","_init_extra_codeChange","_init_userInput","_init_extra_userInput","value","_this$getFormElement","this","getFormElement","formStore","onChange","name","_classPrivateGetter","_get_codeChange","emit","_get_userInput","_init_tokenClickEvent","_init_extra_tokenClickEvent","word","_get_tokenClickEvent","language","yaml","_classPrivateFieldGet","v","_classPrivateFieldSet","label","theme","required","readOnly","automaticLayout","minLines","completers","advancedCompleters","markers","links","maxLines","height","message","placeholder","showExpandButton","lineNumbers","tokenConfig","customValidationInBrickNextYaml","showCopyButton","glyphMargin","extraLibs","fixedOverflowWidgets","connectedCallback","style","display","super","render","React","exportparts","curElement","formElement","helpBrick","labelBrick","notRender","validator","CodeEditorComponent","validateState","onUserInput","onTokenClick","_ref","_value","_language","_theme","_minLines","_maxLines","_height","_fixedOverflowWidgets","Infinity","expanded","setExpanded","useState","workerId","useMemo","uniqueId","t","useTranslation","containerRef","useRef","decorationsCollection","editorRef","size","width","getContentHeightByCode","actualHeight","setActualHeight","automaticLayoutRef","systemTheme","useCurrentTheme","computedTheme","isDarkTheme","useEffect","lineHighlightBackground","defineTheme","base","inherit","rules","colors","setTheme","current","currentModel","getModel","setModelLanguage","brickNextYAMLProviderCompletionItems","Array","isArray","undefined","monacoProviderRef","dispose","length","includes","disposable","celSpecificCompletionProviderFactory","editor","getValue","setValue","useLayoutEffect","_editorRef$current","getBoundingClientRect","layout","observer","ResizeObserver","entries","entry","target","newWidth","contentBoxSize","inlineSize","contentRect","newHeight","blockSize","_editorRef$current2","observe","disconnect","container","element","brick","found","tagName","toLowerCase","parentElement","getDOMContainer","offsetHeight","updateOptions","lineNumbersMinChars","model","createModel","uri","getEmbeddedJavascriptUri","typescript","javascriptDefaults","addExtraLib","getBrickYamlBuiltInDeclare","toString","create","extraEditorClassName","minimap","enabled","showRegionSectionHeaders","showMarkSectionHeaders","scrollBeyondLastLine","tabSize","insertSpaces","fontSize","EDITOR_FONT_SIZE","lineHeight","EDITOR_LINE_HEIGHT","scrollbar","horizontalScrollbarSize","EDITOR_SCROLLBAR_SIZE","verticalScrollbarSize","horizontalSliderSize","verticalSliderSize","alwaysConsumeMouseWheel","padding","top","EDITOR_PADDING_VERTICAL","bottom","overviewRulerBorder","mouseWheelScrollSensitivity","folding","suggest","insertMode","preview","quickSuggestions","strings","other","comments","renderLineHighlightOnlyWhenFocus","unicodeHighlight","ambiguousCharacters","createDecorationsCollection","libs","languageDefaults","disposables","addExtraLibs","item","editorMouseDownEvent","onMouseDown","e","_decorations$getRange","_decorations$getRange2","decorations","getRanges","call","forEach","range","modKey","test","navigator","platform","position","containsPosition","getValueInRange","mouseOverEvent","onMouseMove","newDecorations","map","options","inlineClassName","equalsRange","set","listener","onDidContentSizeChange","contentHeightChanged","fixEditorHeightWithScrollBar","contentHeight","getContentHeight","embeddedModelProcessor","useCallback","async","setModelMarkers","prefixEvaluateOperator","findPreviousMatch","suffixEvaluateOperator","findNextMatch","prefixEvaluateRange","suffixEvaluateRange","startLineNumber","endColumn","startColumn","content","newUri","offset","getOffsetAt","EmbeddedModelContext","getInstance","updateState","getWorker","getJavaScriptWorker","worker","semanticMarkers","getSemanticDiagnostics","_item$start","finalOffset","start","currentPosition","getPositionAt","lineNumber","column","endLineNumber","messageText","severity","Warning","onDidChangeContent","setEditorId","getPosition","isFlush","fn","key","window","removeEventListener","addEventListener","_editorRef$current3","_editorRef$current4","placeholderWidget","PlaceholderContentWidget","handleCopyIconClick","then","type","K","COPY_SUCCESS","catch","COPY_FAILED","handleExpandedClick","ignore","debounceChange","debounce","_decorationsCollectio","getRemoteYamlLinterWorker","lintMarkers","lintDecorations","lint","source","_ref2","end","code","startPos","endPos","_ref3","fromPositions","change","onDidChangeModelContent","className","classNames","error","ref","overflow","COPY","icon","lib","onClick","COLLAPSE","EXPAND","getContentHeightByLines","Math","min","max","split","fixedHeight","lines","_CodeEditor2","_set_codeChange","_set_userInput","_set_tokenClickEvent","c","_initClass","_applyDecs","shadowOptions","Boolean","Number","attribute","o","_","has","_checkInRHS"],"sourceRoot":""}
|