@next-bricks/vs 1.4.0 → 1.4.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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/code-editor.29e8d26c.js","mappings":"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","sources":["webpack:///./src/code-editor/index.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { register as registerJavaScript } from \"@next-core/monaco-contributions/javascript\";\nimport { register as registerTypeScript } from \"@next-core/monaco-contributions/typescript\";\nimport { register as registerYaml } from \"@next-core/monaco-contributions/yaml\";\nimport { register as registerHtml } from \"@next-core/monaco-contributions/html\";\nimport yaml from \"js-yaml\";\nimport \"@next-core/theme\";\nimport { 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 { Level } from \"./utils/constants.js\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { VSWorkers } from \"./workers/index.mjs\";\nimport { setEditorId } from \"./utils/editorId.js\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport type { copyToClipboard as _copyToClipboard } from \"@next-bricks/basic/data-providers/copy-to-clipboard\";\nimport type { showNotification as _showNotification } from \"@next-bricks/basic/data-providers/show-notification/show-notification\";\nimport classNames from \"classnames\";\nimport \"./index.css\";\n\ninitializeReactI18n(NS, locales);\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\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst copyToClipboard = unwrapProvider<typeof _copyToClipboard>(\n \"basic.copy-to-clipboard\"\n);\nconst showNotification = unwrapProvider<typeof _showNotification>(\n \"basic.show-notification\"\n);\n\nexport interface CodeEditorProps {\n name?: string;\n label?: string;\n value?: string;\n language?: string;\n theme?: string;\n 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 showExpandButton?: boolean;\n showCopyButton?: boolean;\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 /**\n * 是否展示展开按钮\n */\n @property({ type: Boolean })\n accessor showExpandButton: boolean | undefined;\n\n /**\n * 是否展示复制按钮\n * @default true\n */\n @property({ type: Boolean })\n accessor showCopyButton: boolean | 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 helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\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 showCopyButton={this.showCopyButton}\n showExpandButton={this.showExpandButton}\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 showExpandButton,\n showCopyButton = true,\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 [expanded, setExpanded] = useState(false);\n const workerId = useMemo(() => uniqueId(\"worker\"), []);\n\n const { t } = useTranslation(NS);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const decorationsCollection =\n useRef<monaco.editor.IEditorDecorationsCollection>();\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n const size = useRef<monaco.editor.IDimension>({\n width: 300,\n height: getContentHeightByCode(value, minLines, maxLines),\n });\n const [actualHeight, setActualHeight] = useState<string | number>();\n // `automaticLayout` should never change\n const automaticLayoutRef = useRef(automaticLayout);\n const systemTheme = useCurrentTheme();\n\n 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 onChange(model.getValue(), undefined, false, init);\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 fixedOverflowWidgets: true,\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 if ([\"brick_next_yaml\"].includes(language)) {\n parseYaml({\n init: false,\n });\n } else {\n onChange(currentModel.getValue(), undefined, false, false);\n }\n });\n return () => {\n listener.dispose();\n };\n }, [parseYaml, onChange, value, workerId, language]);\n\n useEffect(() => {\n if (expanded) {\n const fn = (e: KeyboardEvent): void => {\n if (e.key === \"Escape\" || e.key === \"Esc\") {\n window.removeEventListener(\"keydown\", fn);\n setExpanded(false);\n }\n };\n window.addEventListener(\"keydown\", fn);\n return () => {\n window.removeEventListener(\"keydown\", fn);\n };\n }\n }, [expanded]);\n\n useEffect(() => {\n return () => {\n editorRef.current?.getModel()?.dispose();\n editorRef.current?.dispose();\n };\n }, []);\n\n const handleCopyIconClick = useCallback(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n copyToClipboard(currentModel.getValue())\n .then(() =>\n showNotification({ type: \"success\", message: t(K.COPY_SUCCESS) })\n )\n .catch(() =>\n showNotification({ type: \"error\", message: t(K.COPY_FAILED) })\n );\n }\n }, [t]);\n\n const handleExpandedClick = useCallback(() => {\n setExpanded(!expanded);\n }, [expanded]);\n\n return (\n <div\n className={classNames(\"code-editor-wrapper\", {\n expanded,\n })}\n >\n <div\n ref={containerRef}\n style={{\n height: expanded ? \"100%\" : actualHeight,\n overflow: expanded ? \"scroll\" : \"\",\n ...(validateState === \"error\"\n ? {\n outline: \"1px solid var(--antd-error-color)\",\n }\n : {}),\n }}\n />\n <div className=\"toolbar\">\n {showCopyButton && (\n <WrappedTooltip content={t(K.COPY) as string}>\n <WrappedIcon\n className=\"copy-icon\"\n icon=\"copy\"\n lib=\"antd\"\n theme=\"outlined\"\n onClick={handleCopyIconClick}\n />\n </WrappedTooltip>\n )}\n {showExpandButton && (\n <WrappedTooltip\n content={(expanded ? t(K.COLLAPSE) : t(K.EXPAND)) as string}\n >\n <WrappedIcon\n className=\"expand-icon\"\n icon={expanded ? \"compress\" : \"expand\"}\n lib=\"antd\"\n theme=\"outlined\"\n onClick={handleExpandedClick}\n />\n </WrappedTooltip>\n )}\n </div>\n </div>\n );\n}\n\nfunction getContentHeightByCode(\n code: string,\n minLines: number,\n maxLines: number\n): number {\n return getContentHeightByLines(\n Math.min(maxLines, Math.max(minLines, code.split(\"\\n\").length))\n );\n}\n\nfunction fixEditorHeightWithScrollBar(\n contentHeight: number,\n minLines: number,\n maxLines: number\n): number {\n let fixedHeight = contentHeight;\n if ((contentHeight - EDITOR_PADDING_VERTICAL) % EDITOR_LINE_HEIGHT === 0) {\n fixedHeight = contentHeight + EDITOR_SCROLLBAR_SIZE;\n }\n return Math.min(\n getContentHeightByLines(maxLines),\n Math.max(fixedHeight, getContentHeightByLines(minLines))\n );\n}\n\nfunction getContentHeightByLines(lines: number): number {\n return (\n lines * EDITOR_LINE_HEIGHT + EDITOR_SCROLLBAR_SIZE + EDITOR_PADDING_VERTICAL\n );\n}\n\n/** Get the direct DOM container of `vs.code-editor` */\nfunction getDOMContainer(element: HTMLElement | null) {\n let brick = element;\n while (brick) {\n const found = brick.tagName.toLowerCase() === \"vs.code-editor\";\n brick = brick.parentElement;\n if (found) {\n return brick;\n }\n }\n}\n"],"names":["initializeReactI18n","NS","locales","registerJavaScript","monaco","registerTypeScript","registerYaml","registerHtml","_CodeEditor","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","WrappedTooltip","WrappedIcon","copyToClipboard","unwrapProvider","showNotification","_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","_dec20","_dec21","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_codeChange","_T","_userInput","_handleChange","_U","_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_showExpandButton","_init_showCopyButton","_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","showExpandButton","showCopyButton","connectedCallback","style","display","super","render","React","curElement","formElement","helpBrick","labelBrick","validator","CodeEditorComponent","validateState","onTokenClick","_set_codeChange","_get_codeChange","_set_userInput","_get_userInput","_set_tokenClickEvent","_get_tokenClickEvent","_ref","_value","_language","_theme","_minLines","_maxLines","_height","Infinity","expanded","setExpanded","useState","workerId","useMemo","uniqueId","t","useTranslation","containerRef","useRef","decorationsCollection","editorRef","size","width","getContentHeightByCode","actualHeight","setActualHeight","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","fixedOverflowWidgets","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","includes","fn","key","window","_editorRef$current3","_editorRef$current4","handleCopyIconClick","then","K","COPY_SUCCESS","catch","COPY_FAILED","handleExpandedClick","className","classNames","ref","_objectSpread","overflow","outline","content","COPY","icon","lib","onClick","COLLAPSE","EXPAND","code","getContentHeightByLines","Math","min","max","split","fixedHeight","lines","_CodeEditor2","c","_initClass","_applyDecs","o","_","has","_checkInRHS"],"sourceRoot":""}