@next-bricks/vs 1.1.0 → 1.1.2
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/{242.0c23de13.js → 242.d60110a7.js} +2 -2
- package/dist/chunks/{242.0c23de13.js.map → 242.d60110a7.js.map} +1 -1
- package/dist/chunks/3322.73914211.js +2 -0
- package/dist/chunks/3322.73914211.js.map +1 -0
- package/dist/chunks/6740.b3d677bb.js +2 -0
- package/dist/chunks/6740.b3d677bb.js.map +1 -0
- package/dist/chunks/6984.3423a907.js +3 -0
- package/dist/chunks/{6984.2d27b075.js.map → 6984.3423a907.js.map} +1 -1
- package/dist/chunks/7068.f570795f.js +2 -0
- package/dist/chunks/{7068.d45423cf.js.map → 7068.f570795f.js.map} +1 -1
- package/dist/chunks/{7861.f4c75146.js → 7861.832c8794.js} +2 -2
- package/dist/chunks/{7861.f4c75146.js.map → 7861.832c8794.js.map} +1 -1
- package/dist/chunks/9288.8e650dc7.js +2 -0
- package/dist/chunks/9288.8e650dc7.js.map +1 -0
- package/dist/chunks/9588.b31d4081.js +2 -0
- package/dist/chunks/{9588.10e92a11.js.map → 9588.b31d4081.js.map} +1 -1
- package/dist/chunks/code-editor.d9d57e73.js +2 -0
- package/dist/chunks/{code-editor.23ae0030.js.map → code-editor.d9d57e73.js.map} +1 -1
- package/dist/chunks/{main.06a923aa.js → main.7fdc8e18.js} +2 -2
- package/dist/chunks/{main.06a923aa.js.map → main.7fdc8e18.js.map} +1 -1
- package/dist/examples.json +1 -1
- package/dist/{index.dcc7404c.js → index.f9d56c57.js} +2 -2
- package/dist/{index.dcc7404c.js.map → index.f9d56c57.js.map} +1 -1
- package/dist-types/code-editor/utils/brickNextSourceMap.d.ts +1 -1
- package/dist-types/code-editor/utils/brickNextYaml.d.ts +1 -1
- package/docs/code-editor.md +19 -0
- package/package.json +3 -3
- package/dist/chunks/2160.e8bc6be2.js +0 -2
- package/dist/chunks/2160.e8bc6be2.js.map +0 -1
- package/dist/chunks/3322.03aa0012.js +0 -2
- package/dist/chunks/3322.03aa0012.js.map +0 -1
- package/dist/chunks/6740.5d332d8e.js +0 -2
- package/dist/chunks/6740.5d332d8e.js.map +0 -1
- package/dist/chunks/6984.2d27b075.js +0 -3
- package/dist/chunks/7068.d45423cf.js +0 -2
- package/dist/chunks/9588.10e92a11.js +0 -2
- package/dist/chunks/code-editor.23ae0030.js +0 -2
- /package/dist/chunks/{6984.2d27b075.js.LICENSE.txt → 6984.3423a907.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/9288.8e650dc7.js","mappings":"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","sources":["webpack:///./src/code-editor/constants.ts","webpack:///./src/code-editor/utils/constants.ts","webpack:///./src/code-editor/utils/brickNextYaml.ts","webpack:///./src/code-editor/utils/editorId.ts","webpack:///./src/code-editor/workers/index.ts","webpack:///./src/code-editor/index.css","webpack:///./src/code-editor/index.css?aefa","webpack:///../../src/FormItemElement.tsx"],"sourcesContent":["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","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 \"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 hit: 1,\n info: 2,\n warn: 4,\n error: 8,\n};\n","import * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport storyboardJsonSchema from \"@next-core/types/storyboard.json\";\nimport { EVALUATE_KEYWORD, brickNextKeywords } from \"./constants.js\";\nimport get from \"lodash/get.js\";\nimport { getEditorId } from \"./editorId.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): {\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 return {\n word: prefixWord?.word,\n token: prefixToken,\n };\n};\n\nexport const 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 const isInEvaluateBody =\n prefixEvaluateOperator?.range.startLineNumber &&\n suffixEvaluateOperator?.range.startLineNumber &&\n prefixEvaluateOperator.range.startLineNumber <= position.lineNumber &&\n suffixEvaluateOperator.range.endLineNumber >= position.lineNumber;\n\n if (isInEvaluateBody) {\n const { parentKey: prefixParentKey } = findKeys(\n model,\n prefixEvaluateOperator.range,\n prefixEvaluateOperator?.range.startLineNumber\n );\n const { parentKey: suffixParentKey } = findKeys(\n model,\n suffixEvaluateOperator.range,\n suffixEvaluateOperator?.range.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?: Record<\n string,\n { triggerCharacter: string; completers: monaco.languages.CompletionItem[] }\n >,\n id?: string\n) => {\n return (\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext\n ): monaco.languages.ProviderResult<monaco.languages.CompletionList> => {\n if (id && id !== getEditorId())\n return {\n suggestions: [],\n };\n const word = model.getWordUntilPosition(position);\n const { word: prefixWord, token: prefixToken } = getPrefixWord(\n model,\n position\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 (fullWord.trim() !== \"<\") {\n return {\n suggestions: [],\n };\n }\n return {\n suggestions: [\n {\n label: \"<% %>\",\n detail: \"Evalute 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 Evalute 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\"].includes(prefixWord))\n ) {\n if (prefixWord === \"action\" && context.triggerCharacter === \":\") {\n const actions = get(\n storyboardJsonSchema,\n \"definitions.BuiltinBrickEventHandler.properties.action.enum\"\n );\n return {\n suggestions: ((actions as unknown as string[]) ?? [])?.map(\n (item) => ({\n label: ` ${item}`,\n detail: \"event action\",\n kind: monaco.languages.CompletionItemKind.Keyword,\n insertText: ` ${item}`,\n range,\n })\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)) {\n if (\n prefixWord &&\n [\"CTX\", \"STATE\"].includes(prefixWord) &&\n advancedCompleters\n ) {\n return {\n suggestions: (advancedCompleters[prefixWord]?.completers ?? []).map(\n (item) => ({\n label: item.label,\n insertText: item.label as string,\n kind: monaco.languages.CompletionItemKind.Value,\n range,\n })\n ),\n };\n }\n\n if (\n prefixWord === \"FN\" &&\n context.triggerCharacter === \".\" &&\n advancedCompleters\n ) {\n return {\n suggestions: (advancedCompleters[\"FN\"]?.completers ?? []).map(\n (item) => ({\n label: item.label,\n insertText: item.label as string,\n kind: monaco.languages.CompletionItemKind.Value,\n range,\n })\n ),\n };\n }\n\n if (prefixWord === \"APP\" && context.triggerCharacter === \".\") {\n const appProperties = get(\n storyboardJsonSchema,\n \"definitions.MicroApp.properties\"\n );\n const suggestions = [];\n for (const [k, v] of Object.entries(\n appProperties as unknown as Record<\n string,\n {\n description: string;\n type: string;\n enum: string[];\n }\n >\n )) {\n suggestions.push({\n label: k,\n kind: monaco.languages.CompletionItemKind.Value,\n documentation: v.description,\n detail: v.enum ? v.enum.join(\"|\") : v.type,\n insertText: k,\n range,\n });\n }\n return {\n suggestions,\n };\n }\n\n if ([\".\", \":\"].includes(prefixToken)) {\n return {\n suggestions: [],\n };\n }\n\n return {\n suggestions: EVALUATE_KEYWORD.map((item) => ({\n label: item,\n insertText: item,\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n })),\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","let editorId: string;\n\nexport function setEditorId(id: string) {\n editorId = id;\n}\n\nexport function getEditorId() {\n return editorId;\n}\n","import { uniqueId } from \"lodash\";\n\nlet parseWorker: Worker;\n\nfunction init() {\n if (!parseWorker) {\n parseWorker = new Worker(new URL(\"./parseYaml.worker.ts\", import.meta.url));\n }\n}\n\nexport class VSWorkers {\n static #instance: Record<string, VSWorkers> = {};\n\n static getInstance(id: string): VSWorkers {\n if (!this.#instance[id]) {\n init();\n this.#instance[id] = new VSWorkers(id);\n }\n return this.#instance[id];\n }\n\n #id: string;\n #worker: Worker;\n\n #listenerCache = new Map<string, any>();\n\n constructor(id: string) {\n this.#worker = parseWorker;\n this.#id = id;\n }\n\n postMessage(message: any) {\n this.#worker.postMessage({\n ...message,\n id: this.#id,\n });\n }\n\n addEventListener(name: string, listener: any) {\n const uid = uniqueId();\n this.#worker.addEventListener(name, (...args) => {\n const { id } = (args[0] as MessageEvent).data;\n if (id === this.#id) listener(...args);\n });\n this.#listenerCache.set(uid, {\n name,\n fn: listener,\n });\n return uid;\n }\n\n removeEventListener(uid: string) {\n const listener = this.#listenerCache.get(uid);\n if (listener) {\n this.#worker.removeEventListener(listener.name, listener.fn);\n this.#listenerCache.delete(uid);\n }\n }\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{color:rgb(74 170 189)!important;text-decoration:underline;font-weight:bold;font-style:oblique}.pointer{cursor:pointer}.monaco-editor .overflow-guard{border-radius:var(--antd-button-border-radius);background:var(--color-border-divider-line);border:1px solid var(--color-border-divider-line)}.monaco-editor .suggest-widget > .tree{position:fixed;width:inherit!important;background-color:var(--color-fill-bg-container-4)}`, \"\"]);\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;\n\n options.insert = insertFn.bind(null, \"head\");\n \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","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"],"names":["EDITOR_FONT_SIZE","EDITOR_LINE_HEIGHT","EDITOR_SCROLLBAR_SIZE","EDITOR_PADDING_VERTICAL","EVALUATE_KEYWORD","brickNextKeywords","findKeys","model","range","line","curLevelKeys","keyList","parentKey","i","startColumn","matchWord","getValueInRange","startLineNumber","endLineNumber","endColumn","Infinity","match","wordspace","key","length","unshift","brickNextYAMLProviderCompletionItems","completers","advancedCompleters","id","position","context","getEditorId","suggestions","word","getWordUntilPosition","prefixWord","token","prefixToken","getPrefixWord","_word$word","lineNumber","column","getWordAtPosition","_objectSpread","curLineWord","isFirstLevelProperty","getLineCount","triggerCharacter","trim","label","detail","kind","monaco","CompletionItemKind","Value","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","filter","item","includes","map","Keyword","_ref","_ref2","get","storyboardJsonSchema","concat","list","_list","matchCompletion","matchTriggerCharacter","Array","isArray","isInEvaluateBody","prefixEvaluateOperator","findPreviousMatch","suffixEvaluateOperator","findNextMatch","prefixParentKey","suffixParentKey","_advancedCompleters$p","_advancedCompleters$p2","_advancedCompleters$F","_advancedCompleters$F2","appProperties","k","v","Object","entries","push","documentation","description","enum","join","type","test","editorId","setEditorId","parseWorker","_id","WeakMap","_worker","_listenerCache","VSWorkers","getInstance","_classStaticPrivateFieldSpecGet","this","_instance","Worker","URL","constructor","_classPrivateFieldInitSpec","writable","value","Map","_classPrivateFieldSet","postMessage","message","_classPrivateFieldGet","addEventListener","name","listener","_this","uid","uniqueId","_len","arguments","args","_key","data","set","fn","removeEventListener","delete","___CSS_LOADER_EXPORT___","module","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","c","locals","method","property","createDecorators","_dec","attribute","_dec2","_dec3","_dec4","_dec5","_dec6","_A","_notRender","_B","_validate","_C","_bindFormItem","_D","_E","_F","_G","FormItemElementBase","ReactNextElement","_get_bindFormItem","_set_bindFormItem","_get_validate","_set_validate","_get__notRender","_set__notRender","_initProto","_init_helpBrick","_init_labelBrick","_init_labelCol","_init_wrapperCol","isFormItemElement","validateState","_render","notRender","hidden","$bindFormItem","helpBrick","labelBrick","labelCol","wrapperCol","setNotRender","getFormElement","element","parentNode","isFormElement","_FormItemElementBase","_applyDecs","e"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_vs=self.webpackChunk_next_bricks_vs||[]).push([[9588],{79588:(e,t,r)=>{r.r(t);var i,n,a,s,c,l,u,o,h,g,d,v,m,p,f,k,b,w,y,M,C,E,L,W,_,x,S,R,z,O,q,P,V,B,N,I,K,D,H,T,U,F,Q,j,A,G,J,X,Y=r(64412),Z=r(2504),$=r(80592),ee=r(5866),te=r(35420),re=r(8644),ie=r(35600),ne=r.n(ie),ae=r(37672),se=r(18160),ce=r(6196),le=r(99672),ue=r(39047),oe=r(68352),he=r(28580),ge=r(78716),de=r(58688),ve=r(25520),me=r.n(ve),pe=(r(70048),r(57568)),fe=r(36764),ke=r(30548),be=(r(62013),r(25244)),we=r(64708);(0,oe.sV)(ue),(0,he.sV)(ue),(0,ge.sV)(ue,"brick_next_yaml"),(0,de.sV)(ue);var ye,{defineElement:Me,property:Ce,event:Ee}=(0,ae.createDecorators)(),Le=(0,se.wrapBrick)("eo-form-item");a=[Me("vs.code-editor",{shadowOptions:!1})],s=Ce(),l=Ce(),o=Ce(),g=Ce(),v=Ce(),p=Ce({type:Boolean}),k=Ce({type:Boolean}),w=Ce(),M=Ce({type:Number}),E=Ce({attribute:!1}),W=Ce({attribute:!1}),x=Ce({attribute:!1}),R=Ce({attribute:!1}),O=Ce({type:Number}),P=Ce({attribute:!1}),B=Ce(),I=Ee({type:"code.change"}),T=Ee({type:"user.input"}),j=Ee({type:"token.click"});var We=new WeakMap,_e=new WeakMap,xe=new WeakMap,Se=new WeakMap,Re=new WeakMap,ze=new WeakMap,Oe=new WeakMap,qe=new WeakMap,Pe=new WeakMap,Ve=new WeakMap,Be=new WeakMap,Ne=new WeakMap,Ie=new WeakMap,Ke=new WeakMap,De=new WeakMap,He=new WeakMap,Te=new WeakMap,Ue=new WeakMap,Fe=new WeakMap,Qe=new WeakMap,je=new WeakMap,Ae=new WeakMap,Ge=new WeakMap,Je=new WeakMap,Xe=new WeakMap;class Ye extends le.K{constructor(){var e;super(...arguments),e=this,(0,Z.c)(this,Ge,{get:it,set:rt}),(0,Z.c)(this,Qe,{get:tt,set:et}),(0,Z.c)(this,Ue,{get:$e,set:Ze}),(0,Z.c)(this,We,{writable:!0,value:(i(this),c(this))}),(0,Z.c)(this,_e,{writable:!0,value:u(this)}),(0,Z.c)(this,xe,{writable:!0,value:h(this)}),(0,Z.c)(this,Se,{writable:!0,value:d(this)}),(0,Z.c)(this,Re,{writable:!0,value:m(this)}),(0,Z.c)(this,ze,{writable:!0,value:f(this)}),(0,Z.c)(this,Oe,{writable:!0,value:b(this)}),(0,Z.c)(this,qe,{writable:!0,value:y(this)}),(0,Z.c)(this,Pe,{writable:!0,value:C(this)}),(0,Z.c)(this,Ve,{writable:!0,value:L(this)}),(0,Z.c)(this,Be,{writable:!0,value:_(this)}),(0,Z.c)(this,Ne,{writable:!0,value:S(this)}),(0,Z.c)(this,Ie,{writable:!0,value:z(this)}),(0,Z.c)(this,Ke,{writable:!0,value:q(this)}),(0,Z.c)(this,De,{writable:!0,value:V(this)}),(0,Z.c)(this,He,{writable:!0,value:N(this)}),(0,Z.c)(this,Te,{writable:!0,value:K(this)}),(0,Z.c)(this,Fe,{writable:!0,value:U(this)}),(0,Z.c)(this,je,{writable:!0,value:function(t,r,i){var n;!(arguments.length>3&&void 0!==arguments[3]&&arguments[3])&&(null===(n=e.getFormElement())||void 0===n||n.formStore.onChange(e.name,t)),(0,te.c)(e,Ue).emit(t),i||(0,te.c)(e,Qe).emit(r)}}),(0,Z.c)(this,Ae,{writable:!0,value:A(this)}),(0,Z.c)(this,Je,{writable:!0,value:e=>{(0,te.c)(this,Ge).emit(e)}}),(0,Z.c)(this,Xe,{writable:!0,value:e=>{try{me().load(e)}catch(e){return"请填写正确的格式"}return""}})}get name(){return(0,te.c)(this,We)}set name(e){(0,ee.c)(this,We,e)}get label(){return(0,te.c)(this,_e)}set label(e){(0,ee.c)(this,_e,e)}get value(){return(0,te.c)(this,xe)}set value(e){(0,ee.c)(this,xe,e)}get language(){return(0,te.c)(this,Se)}set language(e){(0,ee.c)(this,Se,e)}get theme(){return(0,te.c)(this,Re)}set theme(e){(0,ee.c)(this,Re,e)}get required(){return(0,te.c)(this,ze)}set required(e){(0,ee.c)(this,ze,e)}get readOnly(){return(0,te.c)(this,Oe)}set readOnly(e){(0,ee.c)(this,Oe,e)}get automaticLayout(){return(0,te.c)(this,qe)}set automaticLayout(e){(0,ee.c)(this,qe,e)}get minLines(){return(0,te.c)(this,Pe)}set minLines(e){(0,ee.c)(this,Pe,e)}get completers(){return(0,te.c)(this,Ve)}set completers(e){(0,ee.c)(this,Ve,e)}get advancedCompleters(){return(0,te.c)(this,Be)}set advancedCompleters(e){(0,ee.c)(this,Be,e)}get markers(){return(0,te.c)(this,Ne)}set markers(e){(0,ee.c)(this,Ne,e)}get links(){return(0,te.c)(this,Ie)}set links(e){(0,ee.c)(this,Ie,e)}get maxLines(){return(0,te.c)(this,Ke)}set maxLines(e){(0,ee.c)(this,Ke,e)}get height(){return(0,te.c)(this,De)}set height(e){(0,ee.c)(this,De,e)}get message(){return(0,te.c)(this,He)}set message(e){(0,ee.c)(this,He,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return ne().createElement(Le,{curElement:this,formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,validator:(0,te.c)(this,Xe)},ne().createElement(nt,{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,markers:this.markers,links:this.links,validateState:this.validateState,onChange:(0,te.c)(this,je),onTokenClick:(0,te.c)(this,Je)}))}}function Ze(e){H(this,e)}function $e(){return D(this)}function et(e){Q(this,e)}function tt(){return F(this)}function rt(e){J(this,e)}function it(){return G(this)}function nt(e){var{value:t,language:r,theme:i,minLines:n,maxLines:a,height:s,automaticLayout:c,completers:l,advancedCompleters:u,markers:o,readOnly:h,links:g,validateState:d,onChange:v,onTokenClick:m}=e,p=null!=t?t:"",f=null!=r?r:"plaintext",k=null!=i?i:"auto",b=null!=n?n:3,w=null!=a?a:1/0,y=null!=s?s:500,M=(0,ie.useMemo)((()=>(0,pe.uniqueId)("worker")),[]),C=(0,ie.useRef)(null),E=(0,ie.useRef)(),L=(0,ie.useRef)(),W=(0,ie.useRef)({width:300,height:at(p,b,w)}),[_,x]=(0,ie.useState)(),S=(0,ie.useRef)(c),R=(0,ce.useCurrentTheme)();(0,ie.useEffect)((()=>{if("brick_next_yaml"===f){var e=be.M.getInstance(M),t=e.addEventListener("message",(e=>{var{token:t,data:r,init:i=!1}=e.data,n=L.current.getModel();switch(t){case"parse_yaml":var a,{value:s,tokens:c,markers:l}=r;null===(a=E.current)||void 0===a||a.set(c.map((e=>({range:new ue.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),options:{inlineClassName:"highlight"}})))),ue.editor.setModelMarkers(n,"brick_next_yaml",l),v(n.getValue(),s,!1,i);break;case"parse_yaml_error":var u;ue.editor.setModelMarkers(n,"brick_next_yaml",[]),null==E||null===(u=E.current)||void 0===u||u.set([])}}));return()=>{e.removeEventListener(t)}}}),[]),(0,ie.useEffect)((()=>{ue.editor.setTheme("auto"===k?"dark"===R||"dark-v2"===R?"vs-dark":"vs":k)}),[R,k]),(0,ie.useEffect)((()=>{if(L.current){var e=L.current.getModel();ue.editor.setModelLanguage(e,f)}}),[f]),(0,ie.useEffect)((()=>{if("brick_next_yaml"===f){var e=(0,ke.Q)(l,u,M),t=ue.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,u,f]);var z=(0,ie.useCallback)((e=>{var{init:t=!1}=e;"brick_next_yaml"===f&&be.M.getInstance(M).postMessage({token:"parse_yaml",data:{value:L.current.getModel().getValue(),links:g,markers:o},init:t})}),[f,g,o,M]);return(0,ie.useEffect)((()=>{if(L.current){var e=L.current.getModel();(0,pe.isEqual)(e.getValue(),p)||(e.setValue(p),z({init:!0}))}}),[p,z]),(0,ie.useLayoutEffect)((()=>{var e;if("fit-content"===S.current&&C.current){W.current.width=C.current.getBoundingClientRect().width,null===(e=L.current)||void 0===e||e.layout(W.current);var t=new ResizeObserver((e=>{for(var t of e)if(t.target===C.current){var r,i=t.contentBoxSize?t.contentBoxSize[0].inlineSize:t.contentRect.width;i!==W.current.width&&(W.current.width=i,null===(r=L.current)||void 0===r||r.layout(W.current));break}}));return t.observe(C.current),()=>{t.disconnect()}}}),[]),(0,ie.useLayoutEffect)((()=>{if("fit-container"===S.current){var e=function(e){for(var t=e;t;){var r="vs.code-editor"===t.tagName.toLowerCase();if(t=t.parentElement,r)return t}}(C.current);if(e){var t=new ResizeObserver((()=>{x(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}}}),[]),(0,ie.useEffect)((()=>{"fit-container"!==S.current&&"fit-content"!==S.current&&x(y)}),[y]),(0,ie.useEffect)((()=>{L.current&&L.current.updateOptions({readOnly:h})}),[h]),(0,ie.useEffect)((()=>{if(!L.current&&C.current){var e=ue.editor.createModel(p,f);L.current=ue.editor.create(C.current,{model:e,minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==S.current,fontSize:fe.Ck,lineHeight:fe.cb,scrollbar:{horizontalScrollbarSize:fe.Up,verticalScrollbarSize:fe.Up,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:fe.aC,bottom:"fit-content"==S.current?void 0:fe.aC},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,suggest:{insertMode:"insert",preview:!0},readOnly:h,quickSuggestions:{strings:!0,other:!0,comments:!0}}),E.current=L.current.createDecorationsCollection()}}),[p,f,h]),(0,ie.useEffect)((()=>{var e=L.current;if("brick_next_yaml"===f&&e){var t=e.getModel(),r=e.onMouseDown((function(e){var r,i,n=E.current;(null!==(r=null==n||null===(i=n.getRanges)||void 0===i?void 0:i.call(n))&&void 0!==r?r:[]).forEach((r=>{var i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";r&&e.target.position&&e.event[i]&&r.containsPosition(e.target.position)&&m(t.getValueInRange(r))}))})),i=e.onMouseMove((function(e){var t=E.current;t&&t.getRanges().forEach((r=>{var i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";if(r&&e.target.position&&e.event[i]&&r.containsPosition(e.target.position)){var n=t.getRanges().map((e=>({range:e,options:{inlineClassName:r.equalsRange(e)?"highlight pointer":"highlight"}})));t.set(n)}else if(!e.event[i]){var a=t.getRanges().map((e=>({range:e,options:{inlineClassName:"highlight"}})));t.set(a)}}))}));return z({init:!0}),()=>{null==i||i.dispose(),null==r||r.dispose()}}}),[f,m,R,k,z]),(0,ie.useEffect)((()=>{var e=L.current;if(e&&C.current&&"fit-content"===S.current){var t=e.onDidContentSizeChange((t=>{if(t.contentHeightChanged){var r=st(t.contentHeight,b,w);r!==W.current.height&&(W.current.height=r,e.layout(W.current))}})),r=st(e.getContentHeight(),b,w);return r!==W.current.height&&(W.current.height=r,e.layout(W.current)),()=>{t.dispose()}}}),[w,b]),(0,ie.useEffect)((()=>{if(L.current){var e=L.current.getModel().onDidChangeContent((()=>{(0,we.E)(M),z({init:!1})}));return()=>{e.dispose()}}}),[z,p,M]),(0,ie.useEffect)((()=>()=>{var e,t;null===(e=L.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=L.current)||void 0===t||t.dispose()}),[]),ne().createElement("div",{ref:C,style:(0,Y.c)({height:_},"error"===d?{outline:"1px solid var(--antd-error-color)"}:{})})}function at(e,t,r){return ct(Math.min(r,Math.max(t,e.split("\n").length)))}function st(e,t,r){var i=e;return(e-fe.aC)%fe.cb==0&&(i=e+fe.Up),Math.min(ct(r),Math.max(i,ct(t)))}function ct(e){return e*fe.cb+fe.Up+fe.aC}X=Ye,({e:[c,u,h,d,m,f,b,y,C,L,_,S,z,q,V,N,K,D,H,U,F,Q,A,G,J,i],c:[ye,n]}=(0,re.c)(X,[[s,1,"name"],[l,1,"label"],[o,1,"value"],[g,1,"language"],[v,1,"theme"],[p,1,"required"],[k,1,"readOnly"],[w,1,"automaticLayout"],[M,1,"minLines"],[E,1,"completers"],[W,1,"advancedCompleters"],[x,1,"markers"],[R,1,"links"],[O,1,"maxLines"],[P,1,"height"],[B,1,"message"],[I,1,"codeChange",e=>(0,te.c)(e,Te),(e,t)=>(0,ee.c)(e,Te,t)],[T,1,"userInput",e=>(0,te.c)(e,Fe),(e,t)=>(0,ee.c)(e,Fe,t)],[j,1,"tokenClickEvent",e=>(0,te.c)(e,Ae),(e,t)=>(0,ee.c)(e,Ae,t)]],a,0,(e=>Xe.has((0,$.c)(e))),le.K)),n()}}]);
|
|
2
|
+
//# sourceMappingURL=9588.b31d4081.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/9588.10e92a11.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 { 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 { isEqual, uniqueId } from \"lodash\";\nimport {\n EDITOR_SCROLLBAR_SIZE,\n EDITOR_PADDING_VERTICAL,\n EDITOR_LINE_HEIGHT,\n EDITOR_FONT_SIZE,\n} from \"./constants.js\";\nimport { brickNextYAMLProviderCompletionItems } from \"./utils/brickNextYaml.js\";\nimport \"./index.css\";\nimport { Level } from \"./utils/constants.js\";\nimport { VSWorkers } from \"./workers/index.js\";\nimport { setEditorId } from \"./utils/editorId.js\";\n\nregisterJavaScript(monaco);\nregisterTypeScript(monaco);\nregisterYaml(monaco, \"brick_next_yaml\");\nregisterHtml(monaco);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface CodeEditorProps {\n name?: string;\n label?: string;\n value?: string;\n language?: string;\n theme?: 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 advancedCompleters?: Record<\n string,\n { triggerCharacter: string; completers: monaco.languages.CompletionItem[] }\n >;\n markers?: Marker[];\n links?: string[];\n validateState?: string;\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\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 @property({\n attribute: false,\n })\n accessor completers: monaco.languages.CompletionItem[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor advancedCompleters:\n | Record<\n string,\n {\n triggerCharacter: string;\n completers: monaco.languages.CompletionItem[];\n }\n >\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 @event({ type: \"code.change\" })\n accessor #codeChange!: EventEmitter<string>;\n\n @event({ type: \"user.input\" })\n accessor #userInput!: EventEmitter<string>;\n\n #handleChange = (\n value: string,\n parseValue: any,\n isFlush: boolean,\n isInit: boolean = false\n ) => {\n !isInit && this.getFormElement()?.formStore.onChange(this.name!, value);\n this.#codeChange.emit(value);\n if (!isFlush) {\n this.#userInput.emit(parseValue);\n }\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 #handleValidtor = (value: string) => {\n try {\n yaml.load(value);\n } catch {\n return \"请填写正确的格式\";\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 curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n validator={this.#handleValidtor}\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 markers={this.markers}\n links={this.links}\n validateState={this.validateState}\n onChange={this.#handleChange}\n onTokenClick={this.#handleTokenClick}\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 validateState,\n onChange,\n onTokenClick,\n}: CodeEditorProps & {\n onChange(\n value: string,\n parseValue: any,\n isFlush: boolean,\n isInit: boolean\n ): 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 workerId = useMemo(() => uniqueId(\"worker\"), []);\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 useEffect(() => {\n if (language !== \"brick_next_yaml\") return;\n const workerInstance = VSWorkers.getInstance(workerId);\n const id = workerInstance.addEventListener(\"message\", (message: any) => {\n const { token, data, init = false } = message.data;\n const model = editorRef.current!.getModel()!;\n\n switch (token) {\n case \"parse_yaml\": {\n const { value, tokens, markers } = data;\n\n decorationsCollection.current?.set(\n tokens.map((token: any) => ({\n range: new monaco.Range(\n token.startLineNumber,\n token.startColumn,\n token.endLineNumber,\n token.endColumn\n ),\n options: {\n inlineClassName: \"highlight\",\n },\n }))\n );\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", markers);\n onChange(model.getValue(), value, false, init);\n break;\n }\n case \"parse_yaml_error\": {\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", []);\n decorationsCollection?.current?.set([]);\n break;\n }\n }\n });\n return () => {\n workerInstance.removeEventListener(id);\n };\n }, []);\n\n useEffect(() => {\n // Currently theme is configured globally.\n // See https://github.com/microsoft/monaco-editor/issues/338\n monaco.editor.setTheme(\n theme === \"auto\"\n ? systemTheme === \"dark\" || systemTheme === \"dark-v2\"\n ? \"vs-dark\"\n : \"vs\"\n : theme\n );\n }, [systemTheme, theme]);\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 advancedCompleters,\n workerId\n );\n const monacoProviderRef = monaco.languages.registerCompletionItemProvider(\n \"brick_next_yaml\",\n {\n provideCompletionItems,\n triggerCharacters: [\".\", \":\", \"<\"],\n }\n );\n return () => {\n monacoProviderRef.dispose();\n };\n }\n }, [completers, advancedCompleters, language]);\n\n const parseYaml = useCallback(\n ({ init = false }: { init?: boolean }) => {\n if (language !== \"brick_next_yaml\") return;\n const workerInstance = VSWorkers.getInstance(workerId);\n workerInstance.postMessage({\n token: \"parse_yaml\",\n data: {\n value: editorRef.current!.getModel()!.getValue(),\n links,\n markers,\n },\n init,\n });\n },\n [language, links, markers, workerId]\n );\n\n useEffect(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n if (!isEqual(currentModel.getValue(), value)) {\n currentModel.setValue(value);\n parseYaml({\n init: true,\n });\n }\n }\n }, [value, parseYaml]);\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 if (newWidth !== size.current.width) {\n size.current.width = newWidth;\n editorRef.current?.layout(size.current);\n }\n break;\n }\n }\n });\n observer.observe(containerRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, []);\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 });\n }, [readOnly]);\n\n useEffect(() => {\n if (editorRef.current || !containerRef.current) {\n return;\n }\n const model = monaco.editor.createModel(value, language);\n editorRef.current = monaco.editor.create(containerRef.current, {\n model,\n minimap: {\n enabled: 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 suggest: {\n insertMode: \"insert\",\n preview: true,\n },\n readOnly: readOnly,\n quickSuggestions: { strings: true, other: true, comments: true },\n });\n\n decorationsCollection.current =\n editorRef.current.createDecorationsCollection();\n }, [value, language, readOnly]);\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 parseYaml({\n init: true,\n });\n\n return () => {\n mouseOverEvent?.dispose();\n editorMouseDownEvent?.dispose();\n };\n }\n }, [language, onTokenClick, systemTheme, theme, parseYaml]);\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 (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]);\n\n useEffect(() => {\n if (!editorRef.current) {\n return;\n }\n const currentModel = editorRef.current.getModel()!;\n const listener = currentModel.onDidChangeContent(() => {\n setEditorId(workerId);\n parseYaml({\n init: false,\n });\n });\n return () => {\n listener.dispose();\n };\n }, [parseYaml, value, workerId]);\n\n useEffect(() => {\n return () => {\n editorRef.current?.getModel()?.dispose();\n editorRef.current?.dispose();\n };\n }, []);\n\n return (\n <div\n ref={containerRef}\n style={{\n height: actualHeight,\n ...(validateState === \"error\"\n ? {\n outline: \"1px solid var(--antd-error-color)\",\n }\n : {}),\n }}\n />\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":["registerJavaScript","monaco","registerTypeScript","registerYaml","registerHtml","_CodeEditor","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","_classDecs","shadowOptions","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","type","Boolean","_dec7","_dec8","_dec9","Number","_dec10","attribute","_dec11","_dec12","_dec13","_dec14","_dec15","_dec16","_dec17","_dec18","_dec19","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_codeChange","_R","_userInput","_handleChange","_S","_tokenClickEvent","_handleTokenClick","_handleValidtor","CodeEditor","FormItemElementBase","constructor","_this","arguments","this","_classPrivateFieldInitSpec","get","_get_tokenClickEvent2","set","_set_tokenClickEvent2","_get_userInput2","_set_userInput2","_get_codeChange2","_set_codeChange2","writable","value","_initProto","_init_name","_init_label","_init_value","_init_language","_init_theme","_init_required","_init_readOnly","_init_automaticLayout","_init_minLines","_init_completers","_init_advancedCompleters","_init_markers","_init_links","_init_maxLines","_init_height","_init_message","_init_codeChange","_init_userInput","parseValue","isFlush","_this$getFormElement","length","undefined","getFormElement","formStore","onChange","name","_classPrivateFieldGet","emit","_init_tokenClickEvent","word","yaml","_unused","v","_classPrivateFieldSet","label","language","theme","required","readOnly","automaticLayout","minLines","completers","advancedCompleters","markers","links","maxLines","height","message","connectedCallback","style","display","super","render","React","curElement","formElement","validator","CodeEditorComponent","validateState","onTokenClick","_set_codeChange","_get_codeChange","_set_userInput","_get_userInput","_set_tokenClickEvent","_get_tokenClickEvent","_ref","_value","_language","_theme","_minLines","_maxLines","_height","Infinity","workerId","useMemo","uniqueId","containerRef","useRef","decorationsCollection","editorRef","size","width","getContentHeightByCode","actualHeight","setActualHeight","useState","automaticLayoutRef","systemTheme","useCurrentTheme","useEffect","workerInstance","VSWorkers","getInstance","id","addEventListener","token","data","init","model","current","getModel","_decorationsCollectio","tokens","map","range","startLineNumber","startColumn","endLineNumber","endColumn","options","inlineClassName","setModelMarkers","getValue","_decorationsCollectio2","removeEventListener","setTheme","currentModel","setModelLanguage","provideCompletionItems","brickNextYAMLProviderCompletionItems","monacoProviderRef","registerCompletionItemProvider","triggerCharacters","dispose","parseYaml","useCallback","_ref2","postMessage","isEqual","setValue","useLayoutEffect","_editorRef$current","getBoundingClientRect","layout","observer","ResizeObserver","entries","entry","target","_editorRef$current2","newWidth","contentBoxSize","inlineSize","contentRect","observe","disconnect","container","element","brick","found","tagName","toLowerCase","parentElement","getDOMContainer","offsetHeight","updateOptions","createModel","create","minimap","enabled","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","suggest","insertMode","preview","quickSuggestions","strings","other","comments","createDecorationsCollection","editor","editorMouseDownEvent","onMouseDown","e","_decorations$getRange","_decorations$getRange2","decorations","getRanges","call","forEach","modKey","test","navigator","platform","position","containsPosition","getValueInRange","mouseOverEvent","onMouseMove","newDecorations","item","equalsRange","listener","onDidContentSizeChange","contentHeightChanged","newHeight","fixEditorHeightWithScrollBar","contentHeight","getContentHeight","onDidChangeContent","setEditorId","_editorRef$current3","_editorRef$current4","ref","_objectSpread","outline","code","getContentHeightByLines","Math","min","max","split","fixedHeight","lines","_CodeEditor2","c","_initClass","_applyDecs","o","_","has","_checkInRHS"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/9588.b31d4081.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 { 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 { isEqual, uniqueId } from \"lodash\";\nimport {\n EDITOR_SCROLLBAR_SIZE,\n EDITOR_PADDING_VERTICAL,\n EDITOR_LINE_HEIGHT,\n EDITOR_FONT_SIZE,\n} from \"./constants.js\";\nimport { brickNextYAMLProviderCompletionItems } from \"./utils/brickNextYaml.js\";\nimport \"./index.css\";\nimport { Level } from \"./utils/constants.js\";\nimport { VSWorkers } from \"./workers/index.js\";\nimport { setEditorId } from \"./utils/editorId.js\";\n\nregisterJavaScript(monaco);\nregisterTypeScript(monaco);\nregisterYaml(monaco, \"brick_next_yaml\");\nregisterHtml(monaco);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface CodeEditorProps {\n name?: string;\n label?: string;\n value?: string;\n language?: string;\n theme?: 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 advancedCompleters?: Record<\n string,\n { triggerCharacter: string; completers: monaco.languages.CompletionItem[] }\n >;\n markers?: Marker[];\n links?: string[];\n validateState?: string;\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\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 @property({\n attribute: false,\n })\n accessor completers: monaco.languages.CompletionItem[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor advancedCompleters:\n | Record<\n string,\n {\n triggerCharacter: string;\n completers: monaco.languages.CompletionItem[];\n }\n >\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 @event({ type: \"code.change\" })\n accessor #codeChange!: EventEmitter<string>;\n\n @event({ type: \"user.input\" })\n accessor #userInput!: EventEmitter<string>;\n\n #handleChange = (\n value: string,\n parseValue: any,\n isFlush: boolean,\n isInit: boolean = false\n ) => {\n !isInit && this.getFormElement()?.formStore.onChange(this.name!, value);\n this.#codeChange.emit(value);\n if (!isFlush) {\n this.#userInput.emit(parseValue);\n }\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 #handleValidtor = (value: string) => {\n try {\n yaml.load(value);\n } catch {\n return \"请填写正确的格式\";\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 curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n validator={this.#handleValidtor}\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 markers={this.markers}\n links={this.links}\n validateState={this.validateState}\n onChange={this.#handleChange}\n onTokenClick={this.#handleTokenClick}\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 validateState,\n onChange,\n onTokenClick,\n}: CodeEditorProps & {\n onChange(\n value: string,\n parseValue: any,\n isFlush: boolean,\n isInit: boolean\n ): 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 workerId = useMemo(() => uniqueId(\"worker\"), []);\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 useEffect(() => {\n if (language !== \"brick_next_yaml\") return;\n const workerInstance = VSWorkers.getInstance(workerId);\n const id = workerInstance.addEventListener(\"message\", (message: any) => {\n const { token, data, init = false } = message.data;\n const model = editorRef.current!.getModel()!;\n\n switch (token) {\n case \"parse_yaml\": {\n const { value, tokens, markers } = data;\n\n decorationsCollection.current?.set(\n tokens.map((token: any) => ({\n range: new monaco.Range(\n token.startLineNumber,\n token.startColumn,\n token.endLineNumber,\n token.endColumn\n ),\n options: {\n inlineClassName: \"highlight\",\n },\n }))\n );\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", markers);\n onChange(model.getValue(), value, false, init);\n break;\n }\n case \"parse_yaml_error\": {\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", []);\n decorationsCollection?.current?.set([]);\n break;\n }\n }\n });\n return () => {\n workerInstance.removeEventListener(id);\n };\n }, []);\n\n useEffect(() => {\n // Currently theme is configured globally.\n // See https://github.com/microsoft/monaco-editor/issues/338\n monaco.editor.setTheme(\n theme === \"auto\"\n ? systemTheme === \"dark\" || systemTheme === \"dark-v2\"\n ? \"vs-dark\"\n : \"vs\"\n : theme\n );\n }, [systemTheme, theme]);\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 advancedCompleters,\n workerId\n );\n const monacoProviderRef = monaco.languages.registerCompletionItemProvider(\n \"brick_next_yaml\",\n {\n provideCompletionItems,\n triggerCharacters: [\".\", \":\", \"<\"],\n }\n );\n return () => {\n monacoProviderRef.dispose();\n };\n }\n }, [completers, advancedCompleters, language]);\n\n const parseYaml = useCallback(\n ({ init = false }: { init?: boolean }) => {\n if (language !== \"brick_next_yaml\") return;\n const workerInstance = VSWorkers.getInstance(workerId);\n workerInstance.postMessage({\n token: \"parse_yaml\",\n data: {\n value: editorRef.current!.getModel()!.getValue(),\n links,\n markers,\n },\n init,\n });\n },\n [language, links, markers, workerId]\n );\n\n useEffect(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n if (!isEqual(currentModel.getValue(), value)) {\n currentModel.setValue(value);\n parseYaml({\n init: true,\n });\n }\n }\n }, [value, parseYaml]);\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 if (newWidth !== size.current.width) {\n size.current.width = newWidth;\n editorRef.current?.layout(size.current);\n }\n break;\n }\n }\n });\n observer.observe(containerRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, []);\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 });\n }, [readOnly]);\n\n useEffect(() => {\n if (editorRef.current || !containerRef.current) {\n return;\n }\n const model = monaco.editor.createModel(value, language);\n editorRef.current = monaco.editor.create(containerRef.current, {\n model,\n minimap: {\n enabled: 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 suggest: {\n insertMode: \"insert\",\n preview: true,\n },\n readOnly: readOnly,\n quickSuggestions: { strings: true, other: true, comments: true },\n });\n\n decorationsCollection.current =\n editorRef.current.createDecorationsCollection();\n }, [value, language, readOnly]);\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 parseYaml({\n init: true,\n });\n\n return () => {\n mouseOverEvent?.dispose();\n editorMouseDownEvent?.dispose();\n };\n }\n }, [language, onTokenClick, systemTheme, theme, parseYaml]);\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 (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]);\n\n useEffect(() => {\n if (!editorRef.current) {\n return;\n }\n const currentModel = editorRef.current.getModel()!;\n const listener = currentModel.onDidChangeContent(() => {\n setEditorId(workerId);\n parseYaml({\n init: false,\n });\n });\n return () => {\n listener.dispose();\n };\n }, [parseYaml, value, workerId]);\n\n useEffect(() => {\n return () => {\n editorRef.current?.getModel()?.dispose();\n editorRef.current?.dispose();\n };\n }, []);\n\n return (\n <div\n ref={containerRef}\n style={{\n height: actualHeight,\n ...(validateState === \"error\"\n ? {\n outline: \"1px solid var(--antd-error-color)\",\n }\n : {}),\n }}\n />\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":["registerJavaScript","monaco","registerTypeScript","registerYaml","registerHtml","_CodeEditor","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","_classDecs","shadowOptions","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","type","Boolean","_dec7","_dec8","_dec9","Number","_dec10","attribute","_dec11","_dec12","_dec13","_dec14","_dec15","_dec16","_dec17","_dec18","_dec19","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_codeChange","_R","_userInput","_handleChange","_S","_tokenClickEvent","_handleTokenClick","_handleValidtor","CodeEditor","FormItemElementBase","constructor","_this","arguments","this","_classPrivateFieldInitSpec","get","_get_tokenClickEvent2","set","_set_tokenClickEvent2","_get_userInput2","_set_userInput2","_get_codeChange2","_set_codeChange2","writable","value","_initProto","_init_name","_init_label","_init_value","_init_language","_init_theme","_init_required","_init_readOnly","_init_automaticLayout","_init_minLines","_init_completers","_init_advancedCompleters","_init_markers","_init_links","_init_maxLines","_init_height","_init_message","_init_codeChange","_init_userInput","parseValue","isFlush","_this$getFormElement","length","undefined","getFormElement","formStore","onChange","name","_classPrivateFieldGet","emit","_init_tokenClickEvent","word","yaml","_unused","v","_classPrivateFieldSet","label","language","theme","required","readOnly","automaticLayout","minLines","completers","advancedCompleters","markers","links","maxLines","height","message","connectedCallback","style","display","super","render","React","curElement","formElement","validator","CodeEditorComponent","validateState","onTokenClick","_set_codeChange","_get_codeChange","_set_userInput","_get_userInput","_set_tokenClickEvent","_get_tokenClickEvent","_ref","_value","_language","_theme","_minLines","_maxLines","_height","Infinity","workerId","useMemo","uniqueId","containerRef","useRef","decorationsCollection","editorRef","size","width","getContentHeightByCode","actualHeight","setActualHeight","useState","automaticLayoutRef","systemTheme","useCurrentTheme","useEffect","workerInstance","VSWorkers","getInstance","id","addEventListener","token","data","init","model","current","getModel","_decorationsCollectio","tokens","map","range","startLineNumber","startColumn","endLineNumber","endColumn","options","inlineClassName","setModelMarkers","getValue","_decorationsCollectio2","removeEventListener","setTheme","currentModel","setModelLanguage","provideCompletionItems","brickNextYAMLProviderCompletionItems","monacoProviderRef","registerCompletionItemProvider","triggerCharacters","dispose","parseYaml","useCallback","_ref2","postMessage","isEqual","setValue","useLayoutEffect","_editorRef$current","getBoundingClientRect","layout","observer","ResizeObserver","entries","entry","target","_editorRef$current2","newWidth","contentBoxSize","inlineSize","contentRect","observe","disconnect","container","element","brick","found","tagName","toLowerCase","parentElement","getDOMContainer","offsetHeight","updateOptions","createModel","create","minimap","enabled","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","suggest","insertMode","preview","quickSuggestions","strings","other","comments","createDecorationsCollection","editor","editorMouseDownEvent","onMouseDown","e","_decorations$getRange","_decorations$getRange2","decorations","getRanges","call","forEach","modKey","test","navigator","platform","position","containsPosition","getValueInRange","mouseOverEvent","onMouseMove","newDecorations","item","equalsRange","listener","onDidContentSizeChange","contentHeightChanged","newHeight","fixEditorHeightWithScrollBar","contentHeight","getContentHeight","onDidChangeContent","setEditorId","_editorRef$current3","_editorRef$current4","ref","_objectSpread","outline","code","getContentHeightByLines","Math","min","max","split","fixedHeight","lines","_CodeEditor2","c","_initClass","_applyDecs","o","_","has","_checkInRHS"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_vs=self.webpackChunk_next_bricks_vs||[]).push([[9784],{64384:(e,t,r)=>{r.r(t),r.d(t,{CodeEditor:()=>ye,CodeEditorComponent:()=>nt});var i,n,a,s,c,l,u,o,h,d,g,v,m,p,f,k,b,w,y,M,C,E,L,W,_,x,S,R,z,O,q,P,V,B,N,I,K,D,H,T,U,F,Q,j,A,G,J,X,Y=r(64412),Z=r(2504),$=r(80592),ee=r(5866),te=r(35420),re=r(8644),ie=r(35600),ne=r.n(ie),ae=r(37672),se=r(18160),ce=r(6196),le=r(99672),ue=r(39047),oe=r(68352),he=r(28580),de=r(78716),ge=r(58688),ve=r(25520),me=r.n(ve),pe=(r(70048),r(57568)),fe=r(36764),ke=r(30548),be=(r(62013),r(25244)),we=r(64708);(0,oe.sV)(ue),(0,he.sV)(ue),(0,de.sV)(ue,"brick_next_yaml"),(0,ge.sV)(ue);var ye,{defineElement:Me,property:Ce,event:Ee}=(0,ae.createDecorators)(),Le=(0,se.wrapBrick)("eo-form-item");a=[Me("vs.code-editor",{shadowOptions:!1})],s=Ce(),l=Ce(),o=Ce(),d=Ce(),v=Ce(),p=Ce({type:Boolean}),k=Ce({type:Boolean}),w=Ce(),M=Ce({type:Number}),E=Ce({attribute:!1}),W=Ce({attribute:!1}),x=Ce({attribute:!1}),R=Ce({attribute:!1}),O=Ce({type:Number}),P=Ce({attribute:!1}),B=Ce(),I=Ee({type:"code.change"}),T=Ee({type:"user.input"}),j=Ee({type:"token.click"});var We=new WeakMap,_e=new WeakMap,xe=new WeakMap,Se=new WeakMap,Re=new WeakMap,ze=new WeakMap,Oe=new WeakMap,qe=new WeakMap,Pe=new WeakMap,Ve=new WeakMap,Be=new WeakMap,Ne=new WeakMap,Ie=new WeakMap,Ke=new WeakMap,De=new WeakMap,He=new WeakMap,Te=new WeakMap,Ue=new WeakMap,Fe=new WeakMap,Qe=new WeakMap,je=new WeakMap,Ae=new WeakMap,Ge=new WeakMap,Je=new WeakMap,Xe=new WeakMap;class Ye extends le.K{constructor(){var e;super(...arguments),e=this,(0,Z.c)(this,Ge,{get:it,set:rt}),(0,Z.c)(this,Qe,{get:tt,set:et}),(0,Z.c)(this,Ue,{get:$e,set:Ze}),(0,Z.c)(this,We,{writable:!0,value:(i(this),c(this))}),(0,Z.c)(this,_e,{writable:!0,value:u(this)}),(0,Z.c)(this,xe,{writable:!0,value:h(this)}),(0,Z.c)(this,Se,{writable:!0,value:g(this)}),(0,Z.c)(this,Re,{writable:!0,value:m(this)}),(0,Z.c)(this,ze,{writable:!0,value:f(this)}),(0,Z.c)(this,Oe,{writable:!0,value:b(this)}),(0,Z.c)(this,qe,{writable:!0,value:y(this)}),(0,Z.c)(this,Pe,{writable:!0,value:C(this)}),(0,Z.c)(this,Ve,{writable:!0,value:L(this)}),(0,Z.c)(this,Be,{writable:!0,value:_(this)}),(0,Z.c)(this,Ne,{writable:!0,value:S(this)}),(0,Z.c)(this,Ie,{writable:!0,value:z(this)}),(0,Z.c)(this,Ke,{writable:!0,value:q(this)}),(0,Z.c)(this,De,{writable:!0,value:V(this)}),(0,Z.c)(this,He,{writable:!0,value:N(this)}),(0,Z.c)(this,Te,{writable:!0,value:K(this)}),(0,Z.c)(this,Fe,{writable:!0,value:U(this)}),(0,Z.c)(this,je,{writable:!0,value:function(t,r,i){var n;!(arguments.length>3&&void 0!==arguments[3]&&arguments[3])&&(null===(n=e.getFormElement())||void 0===n||n.formStore.onChange(e.name,t)),(0,te.c)(e,Ue).emit(t),i||(0,te.c)(e,Qe).emit(r)}}),(0,Z.c)(this,Ae,{writable:!0,value:A(this)}),(0,Z.c)(this,Je,{writable:!0,value:e=>{(0,te.c)(this,Ge).emit(e)}}),(0,Z.c)(this,Xe,{writable:!0,value:e=>{try{me().load(e)}catch(e){return"请填写正确的格式"}return""}})}get name(){return(0,te.c)(this,We)}set name(e){(0,ee.c)(this,We,e)}get label(){return(0,te.c)(this,_e)}set label(e){(0,ee.c)(this,_e,e)}get value(){return(0,te.c)(this,xe)}set value(e){(0,ee.c)(this,xe,e)}get language(){return(0,te.c)(this,Se)}set language(e){(0,ee.c)(this,Se,e)}get theme(){return(0,te.c)(this,Re)}set theme(e){(0,ee.c)(this,Re,e)}get required(){return(0,te.c)(this,ze)}set required(e){(0,ee.c)(this,ze,e)}get readOnly(){return(0,te.c)(this,Oe)}set readOnly(e){(0,ee.c)(this,Oe,e)}get automaticLayout(){return(0,te.c)(this,qe)}set automaticLayout(e){(0,ee.c)(this,qe,e)}get minLines(){return(0,te.c)(this,Pe)}set minLines(e){(0,ee.c)(this,Pe,e)}get completers(){return(0,te.c)(this,Ve)}set completers(e){(0,ee.c)(this,Ve,e)}get advancedCompleters(){return(0,te.c)(this,Be)}set advancedCompleters(e){(0,ee.c)(this,Be,e)}get markers(){return(0,te.c)(this,Ne)}set markers(e){(0,ee.c)(this,Ne,e)}get links(){return(0,te.c)(this,Ie)}set links(e){(0,ee.c)(this,Ie,e)}get maxLines(){return(0,te.c)(this,Ke)}set maxLines(e){(0,ee.c)(this,Ke,e)}get height(){return(0,te.c)(this,De)}set height(e){(0,ee.c)(this,De,e)}get message(){return(0,te.c)(this,He)}set message(e){(0,ee.c)(this,He,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return ne().createElement(Le,{curElement:this,formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,validator:(0,te.c)(this,Xe)},ne().createElement(nt,{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,markers:this.markers,links:this.links,validateState:this.validateState,onChange:(0,te.c)(this,je),onTokenClick:(0,te.c)(this,Je)}))}}function Ze(e){H(this,e)}function $e(){return D(this)}function et(e){Q(this,e)}function tt(){return F(this)}function rt(e){J(this,e)}function it(){return G(this)}function nt(e){var{value:t,language:r,theme:i,minLines:n,maxLines:a,height:s,automaticLayout:c,completers:l,advancedCompleters:u,markers:o,readOnly:h,links:d,validateState:g,onChange:v,onTokenClick:m}=e,p=null!=t?t:"",f=null!=r?r:"plaintext",k=null!=i?i:"auto",b=null!=n?n:3,w=null!=a?a:1/0,y=null!=s?s:500,M=(0,ie.useMemo)((()=>(0,pe.uniqueId)("worker")),[]),C=(0,ie.useRef)(null),E=(0,ie.useRef)(),L=(0,ie.useRef)(),W=(0,ie.useRef)({width:300,height:at(p,b,w)}),[_,x]=(0,ie.useState)(),S=(0,ie.useRef)(c),R=(0,ce.useCurrentTheme)();(0,ie.useEffect)((()=>{if("brick_next_yaml"===f){var e=be.M.getInstance(M),t=e.addEventListener("message",(e=>{var{token:t,data:r,init:i=!1}=e.data,n=L.current.getModel();switch(t){case"parse_yaml":var a,{value:s,tokens:c,markers:l}=r;null===(a=E.current)||void 0===a||a.set(c.map((e=>({range:new ue.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),options:{inlineClassName:"highlight"}})))),ue.editor.setModelMarkers(n,"brick_next_yaml",l),v(n.getValue(),s,!1,i);break;case"parse_yaml_error":var u;ue.editor.setModelMarkers(n,"brick_next_yaml",[]),null==E||null===(u=E.current)||void 0===u||u.set([])}}));return()=>{e.removeEventListener(t)}}}),[]),(0,ie.useEffect)((()=>{ue.editor.setTheme("auto"===k?"dark"===R||"dark-v2"===R?"vs-dark":"vs":k)}),[R,k]),(0,ie.useEffect)((()=>{if(L.current){var e=L.current.getModel();ue.editor.setModelLanguage(e,f)}}),[f]),(0,ie.useEffect)((()=>{if("brick_next_yaml"===f){var e=(0,ke.Q)(l,u,M),t=ue.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,u,f]);var z=(0,ie.useCallback)((e=>{var{init:t=!1}=e;"brick_next_yaml"===f&&be.M.getInstance(M).postMessage({token:"parse_yaml",data:{value:L.current.getModel().getValue(),links:d,markers:o},init:t})}),[f,d,o,M]);return(0,ie.useEffect)((()=>{if(L.current){var e=L.current.getModel();(0,pe.isEqual)(e.getValue(),p)||(e.setValue(p),z({init:!0}))}}),[p,z]),(0,ie.useLayoutEffect)((()=>{var e;if("fit-content"===S.current&&C.current){W.current.width=C.current.getBoundingClientRect().width,null===(e=L.current)||void 0===e||e.layout(W.current);var t=new ResizeObserver((e=>{for(var t of e)if(t.target===C.current){var r,i=t.contentBoxSize?t.contentBoxSize[0].inlineSize:t.contentRect.width;i!==W.current.width&&(W.current.width=i,null===(r=L.current)||void 0===r||r.layout(W.current));break}}));return t.observe(C.current),()=>{t.disconnect()}}}),[]),(0,ie.useLayoutEffect)((()=>{if("fit-container"===S.current){var e=function(e){for(var t=e;t;){var r="vs.code-editor"===t.tagName.toLowerCase();if(t=t.parentElement,r)return t}}(C.current);if(e){var t=new ResizeObserver((()=>{x(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}}}),[]),(0,ie.useEffect)((()=>{"fit-container"!==S.current&&"fit-content"!==S.current&&x(y)}),[y]),(0,ie.useEffect)((()=>{L.current&&L.current.updateOptions({readOnly:h})}),[h]),(0,ie.useEffect)((()=>{if(!L.current&&C.current){var e=ue.editor.createModel(p,f);L.current=ue.editor.create(C.current,{model:e,minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==S.current,fontSize:fe.Ck,lineHeight:fe.cb,scrollbar:{horizontalScrollbarSize:fe.Up,verticalScrollbarSize:fe.Up,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:fe.aC,bottom:"fit-content"==S.current?void 0:fe.aC},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,suggest:{insertMode:"insert",preview:!0},readOnly:h,quickSuggestions:{strings:!0,other:!0,comments:!0}}),E.current=L.current.createDecorationsCollection()}}),[p,f,h]),(0,ie.useEffect)((()=>{var e=L.current;if("brick_next_yaml"===f&&e){var t=e.getModel(),r=e.onMouseDown((function(e){var r,i,n=E.current;(null!==(r=null==n||null===(i=n.getRanges)||void 0===i?void 0:i.call(n))&&void 0!==r?r:[]).forEach((r=>{var i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";r&&e.target.position&&e.event[i]&&r.containsPosition(e.target.position)&&m(t.getValueInRange(r))}))})),i=e.onMouseMove((function(e){var t=E.current;t&&t.getRanges().forEach((r=>{var i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";if(r&&e.target.position&&e.event[i]&&r.containsPosition(e.target.position)){var n=t.getRanges().map((e=>({range:e,options:{inlineClassName:r.equalsRange(e)?"highlight pointer":"highlight"}})));t.set(n)}else if(!e.event[i]){var a=t.getRanges().map((e=>({range:e,options:{inlineClassName:"highlight"}})));t.set(a)}}))}));return z({init:!0}),()=>{null==i||i.dispose(),null==r||r.dispose()}}}),[f,m,R,k,z]),(0,ie.useEffect)((()=>{var e=L.current;if(e&&C.current&&"fit-content"===S.current){var t=e.onDidContentSizeChange((t=>{if(t.contentHeightChanged){var r=st(t.contentHeight,b,w);r!==W.current.height&&(W.current.height=r,e.layout(W.current))}})),r=st(e.getContentHeight(),b,w);return r!==W.current.height&&(W.current.height=r,e.layout(W.current)),()=>{t.dispose()}}}),[w,b]),(0,ie.useEffect)((()=>{if(L.current){var e=L.current.getModel().onDidChangeContent((()=>{(0,we.E)(M),z({init:!1})}));return()=>{e.dispose()}}}),[z,p,M]),(0,ie.useEffect)((()=>()=>{var e,t;null===(e=L.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=L.current)||void 0===t||t.dispose()}),[]),ne().createElement("div",{ref:C,style:(0,Y.c)({height:_},"error"===g?{outline:"1px solid var(--antd-error-color)"}:{})})}function at(e,t,r){return ct(Math.min(r,Math.max(t,e.split("\n").length)))}function st(e,t,r){var i=e;return(e-fe.aC)%fe.cb==0&&(i=e+fe.Up),Math.min(ct(r),Math.max(i,ct(t)))}function ct(e){return e*fe.cb+fe.Up+fe.aC}X=Ye,({e:[c,u,h,g,m,f,b,y,C,L,_,S,z,q,V,N,K,D,H,U,F,Q,A,G,J,i],c:[ye,n]}=(0,re.c)(X,[[s,1,"name"],[l,1,"label"],[o,1,"value"],[d,1,"language"],[v,1,"theme"],[p,1,"required"],[k,1,"readOnly"],[w,1,"automaticLayout"],[M,1,"minLines"],[E,1,"completers"],[W,1,"advancedCompleters"],[x,1,"markers"],[R,1,"links"],[O,1,"maxLines"],[P,1,"height"],[B,1,"message"],[I,1,"codeChange",e=>(0,te.c)(e,Te),(e,t)=>(0,ee.c)(e,Te,t)],[T,1,"userInput",e=>(0,te.c)(e,Fe),(e,t)=>(0,ee.c)(e,Fe,t)],[j,1,"tokenClickEvent",e=>(0,te.c)(e,Ae),(e,t)=>(0,ee.c)(e,Ae,t)]],a,0,(e=>Xe.has((0,$.c)(e))),le.K)),n()}}]);
|
|
2
|
+
//# sourceMappingURL=code-editor.d9d57e73.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/code-editor.23ae0030.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 { 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 { isEqual, uniqueId } from \"lodash\";\nimport {\n EDITOR_SCROLLBAR_SIZE,\n EDITOR_PADDING_VERTICAL,\n EDITOR_LINE_HEIGHT,\n EDITOR_FONT_SIZE,\n} from \"./constants.js\";\nimport { brickNextYAMLProviderCompletionItems } from \"./utils/brickNextYaml.js\";\nimport \"./index.css\";\nimport { Level } from \"./utils/constants.js\";\nimport { VSWorkers } from \"./workers/index.js\";\nimport { setEditorId } from \"./utils/editorId.js\";\n\nregisterJavaScript(monaco);\nregisterTypeScript(monaco);\nregisterYaml(monaco, \"brick_next_yaml\");\nregisterHtml(monaco);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface CodeEditorProps {\n name?: string;\n label?: string;\n value?: string;\n language?: string;\n theme?: 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 advancedCompleters?: Record<\n string,\n { triggerCharacter: string; completers: monaco.languages.CompletionItem[] }\n >;\n markers?: Marker[];\n links?: string[];\n validateState?: string;\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\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 @property({\n attribute: false,\n })\n accessor completers: monaco.languages.CompletionItem[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor advancedCompleters:\n | Record<\n string,\n {\n triggerCharacter: string;\n completers: monaco.languages.CompletionItem[];\n }\n >\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 @event({ type: \"code.change\" })\n accessor #codeChange!: EventEmitter<string>;\n\n @event({ type: \"user.input\" })\n accessor #userInput!: EventEmitter<string>;\n\n #handleChange = (\n value: string,\n parseValue: any,\n isFlush: boolean,\n isInit: boolean = false\n ) => {\n !isInit && this.getFormElement()?.formStore.onChange(this.name!, value);\n this.#codeChange.emit(value);\n if (!isFlush) {\n this.#userInput.emit(parseValue);\n }\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 #handleValidtor = (value: string) => {\n try {\n yaml.load(value);\n } catch {\n return \"请填写正确的格式\";\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 curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n validator={this.#handleValidtor}\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 markers={this.markers}\n links={this.links}\n validateState={this.validateState}\n onChange={this.#handleChange}\n onTokenClick={this.#handleTokenClick}\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 validateState,\n onChange,\n onTokenClick,\n}: CodeEditorProps & {\n onChange(\n value: string,\n parseValue: any,\n isFlush: boolean,\n isInit: boolean\n ): 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 workerId = useMemo(() => uniqueId(\"worker\"), []);\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 useEffect(() => {\n if (language !== \"brick_next_yaml\") return;\n const workerInstance = VSWorkers.getInstance(workerId);\n const id = workerInstance.addEventListener(\"message\", (message: any) => {\n const { token, data, init = false } = message.data;\n const model = editorRef.current!.getModel()!;\n\n switch (token) {\n case \"parse_yaml\": {\n const { value, tokens, markers } = data;\n\n decorationsCollection.current?.set(\n tokens.map((token: any) => ({\n range: new monaco.Range(\n token.startLineNumber,\n token.startColumn,\n token.endLineNumber,\n token.endColumn\n ),\n options: {\n inlineClassName: \"highlight\",\n },\n }))\n );\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", markers);\n onChange(model.getValue(), value, false, init);\n break;\n }\n case \"parse_yaml_error\": {\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", []);\n decorationsCollection?.current?.set([]);\n break;\n }\n }\n });\n return () => {\n workerInstance.removeEventListener(id);\n };\n }, []);\n\n useEffect(() => {\n // Currently theme is configured globally.\n // See https://github.com/microsoft/monaco-editor/issues/338\n monaco.editor.setTheme(\n theme === \"auto\"\n ? systemTheme === \"dark\" || systemTheme === \"dark-v2\"\n ? \"vs-dark\"\n : \"vs\"\n : theme\n );\n }, [systemTheme, theme]);\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 advancedCompleters,\n workerId\n );\n const monacoProviderRef = monaco.languages.registerCompletionItemProvider(\n \"brick_next_yaml\",\n {\n provideCompletionItems,\n triggerCharacters: [\".\", \":\", \"<\"],\n }\n );\n return () => {\n monacoProviderRef.dispose();\n };\n }\n }, [completers, advancedCompleters, language]);\n\n const parseYaml = useCallback(\n ({ init = false }: { init?: boolean }) => {\n if (language !== \"brick_next_yaml\") return;\n const workerInstance = VSWorkers.getInstance(workerId);\n workerInstance.postMessage({\n token: \"parse_yaml\",\n data: {\n value: editorRef.current!.getModel()!.getValue(),\n links,\n markers,\n },\n init,\n });\n },\n [language, links, markers, workerId]\n );\n\n useEffect(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n if (!isEqual(currentModel.getValue(), value)) {\n currentModel.setValue(value);\n parseYaml({\n init: true,\n });\n }\n }\n }, [value, parseYaml]);\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 if (newWidth !== size.current.width) {\n size.current.width = newWidth;\n editorRef.current?.layout(size.current);\n }\n break;\n }\n }\n });\n observer.observe(containerRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, []);\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 });\n }, [readOnly]);\n\n useEffect(() => {\n if (editorRef.current || !containerRef.current) {\n return;\n }\n const model = monaco.editor.createModel(value, language);\n editorRef.current = monaco.editor.create(containerRef.current, {\n model,\n minimap: {\n enabled: 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 suggest: {\n insertMode: \"insert\",\n preview: true,\n },\n readOnly: readOnly,\n quickSuggestions: { strings: true, other: true, comments: true },\n });\n\n decorationsCollection.current =\n editorRef.current.createDecorationsCollection();\n }, [value, language, readOnly]);\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 parseYaml({\n init: true,\n });\n\n return () => {\n mouseOverEvent?.dispose();\n editorMouseDownEvent?.dispose();\n };\n }\n }, [language, onTokenClick, systemTheme, theme, parseYaml]);\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 (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]);\n\n useEffect(() => {\n if (!editorRef.current) {\n return;\n }\n const currentModel = editorRef.current.getModel()!;\n const listener = currentModel.onDidChangeContent(() => {\n setEditorId(workerId);\n parseYaml({\n init: false,\n });\n });\n return () => {\n listener.dispose();\n };\n }, [parseYaml, value, workerId]);\n\n useEffect(() => {\n return () => {\n editorRef.current?.getModel()?.dispose();\n editorRef.current?.dispose();\n };\n }, []);\n\n return (\n <div\n ref={containerRef}\n style={{\n height: actualHeight,\n ...(validateState === \"error\"\n ? {\n outline: \"1px solid var(--antd-error-color)\",\n }\n : {}),\n }}\n />\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":["registerJavaScript","monaco","registerTypeScript","registerYaml","registerHtml","_CodeEditor","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","_classDecs","shadowOptions","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","type","Boolean","_dec7","_dec8","_dec9","Number","_dec10","attribute","_dec11","_dec12","_dec13","_dec14","_dec15","_dec16","_dec17","_dec18","_dec19","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_codeChange","_R","_userInput","_handleChange","_S","_tokenClickEvent","_handleTokenClick","_handleValidtor","CodeEditor","FormItemElementBase","constructor","_this","arguments","this","_classPrivateFieldInitSpec","get","_get_tokenClickEvent2","set","_set_tokenClickEvent2","_get_userInput2","_set_userInput2","_get_codeChange2","_set_codeChange2","writable","value","_initProto","_init_name","_init_label","_init_value","_init_language","_init_theme","_init_required","_init_readOnly","_init_automaticLayout","_init_minLines","_init_completers","_init_advancedCompleters","_init_markers","_init_links","_init_maxLines","_init_height","_init_message","_init_codeChange","_init_userInput","parseValue","isFlush","_this$getFormElement","length","undefined","getFormElement","formStore","onChange","name","_classPrivateFieldGet","emit","_init_tokenClickEvent","word","yaml","_unused","v","_classPrivateFieldSet","label","language","theme","required","readOnly","automaticLayout","minLines","completers","advancedCompleters","markers","links","maxLines","height","message","connectedCallback","style","display","super","render","React","curElement","formElement","validator","CodeEditorComponent","validateState","onTokenClick","_set_codeChange","_get_codeChange","_set_userInput","_get_userInput","_set_tokenClickEvent","_get_tokenClickEvent","_ref","_value","_language","_theme","_minLines","_maxLines","_height","Infinity","workerId","useMemo","uniqueId","containerRef","useRef","decorationsCollection","editorRef","size","width","getContentHeightByCode","actualHeight","setActualHeight","useState","automaticLayoutRef","systemTheme","useCurrentTheme","useEffect","workerInstance","VSWorkers","getInstance","id","addEventListener","token","data","init","model","current","getModel","_decorationsCollectio","tokens","map","range","startLineNumber","startColumn","endLineNumber","endColumn","options","inlineClassName","setModelMarkers","getValue","_decorationsCollectio2","removeEventListener","setTheme","currentModel","setModelLanguage","provideCompletionItems","brickNextYAMLProviderCompletionItems","monacoProviderRef","registerCompletionItemProvider","triggerCharacters","dispose","parseYaml","useCallback","_ref2","postMessage","isEqual","setValue","useLayoutEffect","_editorRef$current","getBoundingClientRect","layout","observer","ResizeObserver","entries","entry","target","_editorRef$current2","newWidth","contentBoxSize","inlineSize","contentRect","observe","disconnect","container","element","brick","found","tagName","toLowerCase","parentElement","getDOMContainer","offsetHeight","updateOptions","createModel","create","minimap","enabled","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","suggest","insertMode","preview","quickSuggestions","strings","other","comments","createDecorationsCollection","editor","editorMouseDownEvent","onMouseDown","e","_decorations$getRange","_decorations$getRange2","decorations","getRanges","call","forEach","modKey","test","navigator","platform","position","containsPosition","getValueInRange","mouseOverEvent","onMouseMove","newDecorations","item","equalsRange","listener","onDidContentSizeChange","contentHeightChanged","newHeight","fixEditorHeightWithScrollBar","contentHeight","getContentHeight","onDidChangeContent","setEditorId","_editorRef$current3","_editorRef$current4","ref","_objectSpread","outline","code","getContentHeightByLines","Math","min","max","split","fixedHeight","lines","_CodeEditor2","c","_initClass","_applyDecs","o","_","has","_checkInRHS"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/code-editor.d9d57e73.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 { 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 { isEqual, uniqueId } from \"lodash\";\nimport {\n EDITOR_SCROLLBAR_SIZE,\n EDITOR_PADDING_VERTICAL,\n EDITOR_LINE_HEIGHT,\n EDITOR_FONT_SIZE,\n} from \"./constants.js\";\nimport { brickNextYAMLProviderCompletionItems } from \"./utils/brickNextYaml.js\";\nimport \"./index.css\";\nimport { Level } from \"./utils/constants.js\";\nimport { VSWorkers } from \"./workers/index.js\";\nimport { setEditorId } from \"./utils/editorId.js\";\n\nregisterJavaScript(monaco);\nregisterTypeScript(monaco);\nregisterYaml(monaco, \"brick_next_yaml\");\nregisterHtml(monaco);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface CodeEditorProps {\n name?: string;\n label?: string;\n value?: string;\n language?: string;\n theme?: 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 advancedCompleters?: Record<\n string,\n { triggerCharacter: string; completers: monaco.languages.CompletionItem[] }\n >;\n markers?: Marker[];\n links?: string[];\n validateState?: string;\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\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 @property({\n attribute: false,\n })\n accessor completers: monaco.languages.CompletionItem[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor advancedCompleters:\n | Record<\n string,\n {\n triggerCharacter: string;\n completers: monaco.languages.CompletionItem[];\n }\n >\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 @event({ type: \"code.change\" })\n accessor #codeChange!: EventEmitter<string>;\n\n @event({ type: \"user.input\" })\n accessor #userInput!: EventEmitter<string>;\n\n #handleChange = (\n value: string,\n parseValue: any,\n isFlush: boolean,\n isInit: boolean = false\n ) => {\n !isInit && this.getFormElement()?.formStore.onChange(this.name!, value);\n this.#codeChange.emit(value);\n if (!isFlush) {\n this.#userInput.emit(parseValue);\n }\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 #handleValidtor = (value: string) => {\n try {\n yaml.load(value);\n } catch {\n return \"请填写正确的格式\";\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 curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n validator={this.#handleValidtor}\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 markers={this.markers}\n links={this.links}\n validateState={this.validateState}\n onChange={this.#handleChange}\n onTokenClick={this.#handleTokenClick}\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 validateState,\n onChange,\n onTokenClick,\n}: CodeEditorProps & {\n onChange(\n value: string,\n parseValue: any,\n isFlush: boolean,\n isInit: boolean\n ): 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 workerId = useMemo(() => uniqueId(\"worker\"), []);\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 useEffect(() => {\n if (language !== \"brick_next_yaml\") return;\n const workerInstance = VSWorkers.getInstance(workerId);\n const id = workerInstance.addEventListener(\"message\", (message: any) => {\n const { token, data, init = false } = message.data;\n const model = editorRef.current!.getModel()!;\n\n switch (token) {\n case \"parse_yaml\": {\n const { value, tokens, markers } = data;\n\n decorationsCollection.current?.set(\n tokens.map((token: any) => ({\n range: new monaco.Range(\n token.startLineNumber,\n token.startColumn,\n token.endLineNumber,\n token.endColumn\n ),\n options: {\n inlineClassName: \"highlight\",\n },\n }))\n );\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", markers);\n onChange(model.getValue(), value, false, init);\n break;\n }\n case \"parse_yaml_error\": {\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", []);\n decorationsCollection?.current?.set([]);\n break;\n }\n }\n });\n return () => {\n workerInstance.removeEventListener(id);\n };\n }, []);\n\n useEffect(() => {\n // Currently theme is configured globally.\n // See https://github.com/microsoft/monaco-editor/issues/338\n monaco.editor.setTheme(\n theme === \"auto\"\n ? systemTheme === \"dark\" || systemTheme === \"dark-v2\"\n ? \"vs-dark\"\n : \"vs\"\n : theme\n );\n }, [systemTheme, theme]);\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 advancedCompleters,\n workerId\n );\n const monacoProviderRef = monaco.languages.registerCompletionItemProvider(\n \"brick_next_yaml\",\n {\n provideCompletionItems,\n triggerCharacters: [\".\", \":\", \"<\"],\n }\n );\n return () => {\n monacoProviderRef.dispose();\n };\n }\n }, [completers, advancedCompleters, language]);\n\n const parseYaml = useCallback(\n ({ init = false }: { init?: boolean }) => {\n if (language !== \"brick_next_yaml\") return;\n const workerInstance = VSWorkers.getInstance(workerId);\n workerInstance.postMessage({\n token: \"parse_yaml\",\n data: {\n value: editorRef.current!.getModel()!.getValue(),\n links,\n markers,\n },\n init,\n });\n },\n [language, links, markers, workerId]\n );\n\n useEffect(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n if (!isEqual(currentModel.getValue(), value)) {\n currentModel.setValue(value);\n parseYaml({\n init: true,\n });\n }\n }\n }, [value, parseYaml]);\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 if (newWidth !== size.current.width) {\n size.current.width = newWidth;\n editorRef.current?.layout(size.current);\n }\n break;\n }\n }\n });\n observer.observe(containerRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, []);\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 });\n }, [readOnly]);\n\n useEffect(() => {\n if (editorRef.current || !containerRef.current) {\n return;\n }\n const model = monaco.editor.createModel(value, language);\n editorRef.current = monaco.editor.create(containerRef.current, {\n model,\n minimap: {\n enabled: 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 suggest: {\n insertMode: \"insert\",\n preview: true,\n },\n readOnly: readOnly,\n quickSuggestions: { strings: true, other: true, comments: true },\n });\n\n decorationsCollection.current =\n editorRef.current.createDecorationsCollection();\n }, [value, language, readOnly]);\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 parseYaml({\n init: true,\n });\n\n return () => {\n mouseOverEvent?.dispose();\n editorMouseDownEvent?.dispose();\n };\n }\n }, [language, onTokenClick, systemTheme, theme, parseYaml]);\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 (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]);\n\n useEffect(() => {\n if (!editorRef.current) {\n return;\n }\n const currentModel = editorRef.current.getModel()!;\n const listener = currentModel.onDidChangeContent(() => {\n setEditorId(workerId);\n parseYaml({\n init: false,\n });\n });\n return () => {\n listener.dispose();\n };\n }, [parseYaml, value, workerId]);\n\n useEffect(() => {\n return () => {\n editorRef.current?.getModel()?.dispose();\n editorRef.current?.dispose();\n };\n }, []);\n\n return (\n <div\n ref={containerRef}\n style={{\n height: actualHeight,\n ...(validateState === \"error\"\n ? {\n outline: \"1px solid var(--antd-error-color)\",\n }\n : {}),\n }}\n />\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":["registerJavaScript","monaco","registerTypeScript","registerYaml","registerHtml","_CodeEditor","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","_classDecs","shadowOptions","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","type","Boolean","_dec7","_dec8","_dec9","Number","_dec10","attribute","_dec11","_dec12","_dec13","_dec14","_dec15","_dec16","_dec17","_dec18","_dec19","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_codeChange","_R","_userInput","_handleChange","_S","_tokenClickEvent","_handleTokenClick","_handleValidtor","CodeEditor","FormItemElementBase","constructor","_this","arguments","this","_classPrivateFieldInitSpec","get","_get_tokenClickEvent2","set","_set_tokenClickEvent2","_get_userInput2","_set_userInput2","_get_codeChange2","_set_codeChange2","writable","value","_initProto","_init_name","_init_label","_init_value","_init_language","_init_theme","_init_required","_init_readOnly","_init_automaticLayout","_init_minLines","_init_completers","_init_advancedCompleters","_init_markers","_init_links","_init_maxLines","_init_height","_init_message","_init_codeChange","_init_userInput","parseValue","isFlush","_this$getFormElement","length","undefined","getFormElement","formStore","onChange","name","_classPrivateFieldGet","emit","_init_tokenClickEvent","word","yaml","_unused","v","_classPrivateFieldSet","label","language","theme","required","readOnly","automaticLayout","minLines","completers","advancedCompleters","markers","links","maxLines","height","message","connectedCallback","style","display","super","render","React","curElement","formElement","validator","CodeEditorComponent","validateState","onTokenClick","_set_codeChange","_get_codeChange","_set_userInput","_get_userInput","_set_tokenClickEvent","_get_tokenClickEvent","_ref","_value","_language","_theme","_minLines","_maxLines","_height","Infinity","workerId","useMemo","uniqueId","containerRef","useRef","decorationsCollection","editorRef","size","width","getContentHeightByCode","actualHeight","setActualHeight","useState","automaticLayoutRef","systemTheme","useCurrentTheme","useEffect","workerInstance","VSWorkers","getInstance","id","addEventListener","token","data","init","model","current","getModel","_decorationsCollectio","tokens","map","range","startLineNumber","startColumn","endLineNumber","endColumn","options","inlineClassName","setModelMarkers","getValue","_decorationsCollectio2","removeEventListener","setTheme","currentModel","setModelLanguage","provideCompletionItems","brickNextYAMLProviderCompletionItems","monacoProviderRef","registerCompletionItemProvider","triggerCharacters","dispose","parseYaml","useCallback","_ref2","postMessage","isEqual","setValue","useLayoutEffect","_editorRef$current","getBoundingClientRect","layout","observer","ResizeObserver","entries","entry","target","_editorRef$current2","newWidth","contentBoxSize","inlineSize","contentRect","observe","disconnect","container","element","brick","found","tagName","toLowerCase","parentElement","getDOMContainer","offsetHeight","updateOptions","createModel","create","minimap","enabled","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","suggest","insertMode","preview","quickSuggestions","strings","other","comments","createDecorationsCollection","editor","editorMouseDownEvent","onMouseDown","e","_decorations$getRange","_decorations$getRange2","decorations","getRanges","call","forEach","modKey","test","navigator","platform","position","containsPosition","getValueInRange","mouseOverEvent","onMouseMove","newDecorations","item","equalsRange","listener","onDidContentSizeChange","contentHeightChanged","newHeight","fixEditorHeightWithScrollBar","contentHeight","getContentHeight","onDidChangeContent","setEditorId","_editorRef$current3","_editorRef$current4","ref","_objectSpread","outline","code","getContentHeightByLines","Math","min","max","split","fixedHeight","lines","_CodeEditor2","c","_initClass","_applyDecs","o","_","has","_checkInRHS"],"sourceRoot":""}
|