@harnessio/yaml-editor 0.16.0-react18.alpha.4 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -0
- package/dist/components/CodeEditor.d.ts +2 -1
- package/dist/index.cjs +89 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +1063 -465
- package/dist/index.js.map +1 -1
- package/dist/monacoeditorwork/yaml.worker.bundle.js +235 -237
- package/package.json +18 -11
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js","../src/constants/monaco-common-default-options.ts","../src/hooks/useTheme.tsx","../src/utils/utils.ts","../src/utils/blame-editor-utils.ts","../src/components/BlameEditor.tsx","../src/components/CodeEditor.tsx","../src/components/DiffEditor.tsx","../src/types/selectors.ts","../src/utils/codelens-utils.ts","../src/utils/monaco-globals.ts","../src/utils/outline-model-to-path.ts","../src/hooks/useCodeLens.tsx","../src/hooks/useDecoration.tsx","../src/components/YamlProvider.tsx","../src/hooks/useProblems.tsx","../src/utils/schema-utils.ts","../src/hooks/useSchema.tsx","../src/components/YamlEditor.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import * as monaco from 'monaco-editor'\n\nexport const MonacoCommonDefaultOptions: monaco.editor.IStandaloneDiffEditorConstructionOptions = {\n selectOnLineNumbers: true,\n scrollBeyondLastLine: false,\n padding: {\n top: 16,\n bottom: 16\n },\n minimap: { enabled: false },\n fontSize: 13,\n fontFamily: '\"JetBrains Mono\", \"monospace\"',\n lineHeight: 20,\n scrollbar: {\n verticalScrollbarSize: 14,\n horizontalScrollbarSize: 14,\n verticalSliderSize: 6,\n horizontalSliderSize: 6\n },\n overviewRulerBorder: false,\n overviewRulerLanes: 0,\n renderLineHighlight: 'none'\n}\n","import { RefObject, useEffect, useState } from 'react'\n\nimport * as monaco from 'monaco-editor'\n\nimport { ThemeDefinition } from '../types/themes'\n\nexport type UseTheme = (arg: {\n monacoRef: RefObject<typeof monaco | undefined>\n themeConfig?: {\n rootElementSelector?: string\n defaultTheme?: string\n themes?: ThemeDefinition[]\n }\n theme?: string\n editor: any\n}) => { theme: string }\n\nexport const useTheme: UseTheme = (props): { theme: string } => {\n const { themeConfig, editor, theme } = props\n const { defaultTheme } = themeConfig ?? {}\n\n const [themeInternal, setThemeInternal] = useState(theme ?? defaultTheme ?? 'vs-dark')\n\n useEffect(() => {\n themeConfig?.themes?.forEach(themeItem => {\n monaco.editor.defineTheme(themeItem.themeName, themeItem.themeData)\n })\n }, [monaco])\n\n useEffect(() => {\n if (monaco.editor && theme) {\n monaco.editor.setTheme(theme)\n setThemeInternal(theme)\n }\n }, [editor, theme])\n\n return { theme: themeInternal }\n}\n","export function createRandomString(length: number) {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'\n let result = ''\n for (let i = 0; i < length; i++) {\n result += chars.charAt(Math.floor(Math.random() * chars.length))\n }\n return result\n}\n\nexport function escapeSingleQuote(str: string) {\n return str.replace(`'`, `'`)\n}\n","import { BlameItem } from '../types/blame'\nimport { escapeSingleQuote } from './utils'\n\nexport function getMonacoEditorCss({\n instanceId,\n lineNumbersPosition\n}: {\n instanceId: string\n lineNumbersPosition: 'left' | 'center'\n}) {\n let css = ''\n\n // we move '.margin' element and update left/width of monaco editor\n if (lineNumbersPosition === 'center') {\n css += `\n .monaco-editor-${instanceId} .monaco-scrollable-element.editor-scrollable {\n width: 100% !important;\n left: 0px !important;\n }\n\n .monaco-editor-${instanceId} .view-lines, .view-zones {\n width: 100% !important;\n }\n \n .monaco-editor-${instanceId} .margin {\n z-index: 1000;\n background: transparent !important;\n }`\n }\n\n css += `\n .monaco-editor-${instanceId} .blame-editor-separator {\n right: 14px;\n pointer-events: none;\n }\n\n .monaco-editor-${instanceId} {\n outline: none !important;\n }\n \n .monaco-editor-${instanceId} .view-line .blame-editor-commit {\n display: inline-block;\n color: var(--canary-foreground-01);\n }`\n\n return css\n}\n\nexport function getMonacoEditorCommitCss({\n instanceId,\n blameData,\n dateWidth,\n avatarSize\n}: {\n instanceId: string\n blameData: BlameItem[]\n dateWidth: number\n avatarSize: number\n}) {\n let css = ''\n blameData.forEach(blameItem => {\n const avatarUrl = blameItem?.commitInfo?.author?.avatarUrl\n const initials = blameItem?.commitInfo?.author?.initials\n\n const avatarBackgroundCss = avatarUrl ? `background: url('${blameItem?.commitInfo?.author?.avatarUrl}');` : ''\n\n for (let lineNo = blameItem.fromLineNumber; lineNo <= blameItem.toLineNumber; lineNo++) {\n if (lineNo === blameItem.fromLineNumber) {\n css += `\n .monaco-editor-${instanceId} .view-line .blame-editor-commit-${lineNo}:before {\n content: '${escapeSingleQuote(blameItem?.commitInfo?.author?.when || '')}';\n position: absolute;\n left: 10px;\n top: 0px;\n color: hsl(var(--canary-foreground-03));\n }\n\n .monaco-editor-${instanceId} .view-line .blame-editor-commit-${lineNo}:after {\n content: '${initials ?? ' '}';\n position: absolute;\n border-radius: 50%;\n padding: 4px;\n text-align: center;\n background: hsl(var(--canary-background-11));\n line-height: 17px;\n left: ${dateWidth + 10}px;\n top: -4px;\n color: hsl(var(--canary-foreground-03));\n width: ${avatarSize}px;\n height: ${avatarSize}px;\n ${avatarBackgroundCss}\n background-size: 100% 100%;\n }`\n } else {\n css += `\n .monaco-editor-${instanceId} .view-line .blame-editor-commit-${lineNo}:before {\n content: ' ';\n left: 10px;\n top: 0px;\n color: gray;\n }`\n }\n }\n })\n\n return css\n}\n\nexport function createCommitMessage(msg: string, commitMsgLength: number) {\n let ret = ''\n if (msg.length > commitMsgLength) {\n ret = msg.slice(0, commitMsgLength - 3) + '...'\n } else if (msg.length < commitMsgLength) {\n ret = msg + ' '.repeat(commitMsgLength - msg.length)\n } else {\n ret = msg\n }\n\n return ' '.repeat(25) + ret + ' '.repeat(10)\n}\n","import { useEffect, useMemo, useRef, useState } from 'react'\n\nimport Editor, { EditorProps, loader, Monaco, useMonaco } from '@monaco-editor/react'\nimport * as monaco from 'monaco-editor'\n\nimport { MonacoCommonDefaultOptions } from '../constants/monaco-common-default-options'\nimport { useTheme } from '../hooks/useTheme'\nimport { BlameItem } from '../types/blame'\nimport { ThemeDefinition } from '../types/themes'\nimport { createCommitMessage, getMonacoEditorCommitCss, getMonacoEditorCss } from '../utils/blame-editor-utils'\nimport { createRandomString } from '../utils/utils'\n\nloader.config({ monaco })\n\nconst BLAME_MESSAGE_WIDTH = 450\nconst COMMIT_MESSAGE_LENGTH = 30\nconst DATE_WIDTH = 140\nconst AVATAR_SIZE = 24\n\nconst defaultOptions: monaco.editor.IStandaloneEditorConstructionOptions = {\n ...MonacoCommonDefaultOptions,\n readOnly: true,\n matchBrackets: 'never',\n renderValidationDecorations: 'off',\n guides: { indentation: false },\n folding: false,\n stickyScroll: { enabled: false },\n renderWhitespace: 'none',\n renderLineHighlight: 'none'\n}\n\nexport interface BlameEditorProps {\n code: string\n language: string\n themeConfig?: { rootElementSelector?: string; defaultTheme?: string; themes?: ThemeDefinition[] }\n theme?: string\n lineNumbersPosition?: 'left' | 'center'\n blameData: BlameItem[]\n showSeparators?: boolean\n height?: EditorProps['height']\n options?: monaco.editor.IStandaloneEditorConstructionOptions\n}\n\nexport function BlameEditor({\n code,\n language,\n themeConfig,\n lineNumbersPosition = 'left',\n blameData,\n showSeparators = true,\n theme: themeFromProps,\n height = '75vh',\n options\n}: BlameEditorProps): JSX.Element {\n const blameDataRef = useRef(blameData)\n\n const instanceId = useRef(createRandomString(5))\n const monaco = useMonaco()\n const [editor, setEditor] = useState<monaco.editor.IStandaloneCodeEditor | undefined>()\n\n const [lineNumbersDelta, setLineNumbersDelta] = useState(0)\n\n const monacoRef = useRef<typeof monaco | null>(null)\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor | null>(null)\n\n useEffect(() => {\n blameDataRef.current = blameData\n }, [blameData])\n\n function setupBlameEditor() {\n const editor = editorRef.current\n const monaco = monacoRef.current\n\n if (!editor || !monaco) return\n\n // separators\n if (showSeparators) {\n editor.changeViewZones(function (changeAccessor) {\n // space before first line\n changeAccessor.addZone({\n afterLineNumber: 0,\n heightInPx: 10,\n domNode: document.createElement('div')\n })\n\n blameDataRef.current.forEach((blameItem, index) => {\n if (index !== blameDataRef.current.length - 1) {\n const domNode = document.createElement('div')\n domNode.style.borderTop = '1px solid hsl(var(--canary-border-01))'\n domNode.style.marginTop = '9px'\n domNode.className = 'blame-editor-separator'\n\n changeAccessor.addZone({\n afterLineNumber: blameItem.toLineNumber,\n heightInPx: 20,\n domNode: domNode\n })\n }\n })\n })\n }\n\n const decoratorItems: monaco.editor.IModelDeltaDecoration[] = []\n blameDataRef.current.forEach(blameItem => {\n for (let lineNo = blameItem.fromLineNumber; lineNo <= blameItem.toLineNumber; lineNo++) {\n decoratorItems.push({\n range: new monaco.Range(lineNo, 0, lineNo + 1, 0),\n options: {\n before: {\n content: createCommitMessage(\n lineNo === blameItem.fromLineNumber ? blameItem?.commitInfo?.title || '' : '',\n COMMIT_MESSAGE_LENGTH\n ),\n cursorStops: monaco.editor.InjectedTextCursorStops.None,\n inlineClassName: `blame-editor-commit blame-editor-commit-${lineNo}`\n }\n }\n })\n }\n })\n\n // TODO: on unmount clear decorators, on blameData change recreate\n editor.createDecorationsCollection(decoratorItems)\n }\n\n function handleEditorDidMount(editor: monaco.editor.IStandaloneCodeEditor, monaco: Monaco) {\n editorRef.current = editor\n monacoRef.current = monaco\n\n editor.setValue(code)\n setEditor(editor)\n\n monaco.languages.typescript?.typescriptDefaults?.setDiagnosticsOptions?.({\n noSuggestionDiagnostics: true,\n noSyntaxValidation: true,\n noSemanticValidation: true\n })\n monaco.languages.typescript?.javascriptDefaults?.setDiagnosticsOptions?.({\n noSuggestionDiagnostics: true,\n noSyntaxValidation: true,\n noSemanticValidation: true\n })\n\n setupBlameEditor()\n }\n\n useEffect(() => {\n editor?.setValue(code)\n }, [code])\n\n const { theme } = useTheme({ monacoRef, themeConfig, editor, theme: themeFromProps })\n\n const monacoEditorCss = useMemo(\n () =>\n getMonacoEditorCss({\n instanceId: instanceId.current,\n lineNumbersPosition\n }),\n [blameData]\n )\n\n const monacoEditorCommitInfoCss = useMemo(\n () =>\n getMonacoEditorCommitCss({\n instanceId: instanceId.current,\n blameData,\n avatarSize: AVATAR_SIZE,\n dateWidth: DATE_WIDTH\n }),\n [blameData]\n )\n\n // set adjustment for lines numbers position\n useEffect(() => {\n if (lineNumbersPosition === 'center') {\n const scrollableEl = document.getElementsByClassName('lines-content')[0]\n\n if (scrollableEl) {\n const config = { attributes: true }\n\n const callback: MutationCallback = mutationList => {\n for (const _ of mutationList) {\n const left = parseInt(getComputedStyle(scrollableEl).left)\n setLineNumbersDelta(left)\n }\n }\n\n const observer = new MutationObserver(callback)\n observer.observe(scrollableEl, config)\n\n return () => {\n observer.disconnect()\n }\n }\n }\n })\n\n // adjust lines numbers position\n const lineNumbersCss = useMemo(() => {\n return `\n .monaco-editor-${instanceId.current} .margin {\n left: ${BLAME_MESSAGE_WIDTH + 16 + lineNumbersDelta}px !important;\n pointer-events: none;\n }`\n }, [lineNumbersDelta])\n\n const clipSelection = `\n .monaco-editor-${instanceId.current} .view-overlays {\n clip-path: polygon(${BLAME_MESSAGE_WIDTH + 16}px 0, 100% 0%, 100% 100%, ${BLAME_MESSAGE_WIDTH + 16}px 100%);\n height:100% !important;\n }`\n\n const mergedOptions = useMemo(\n () => ({\n ...defaultOptions,\n ...options\n }),\n [options]\n )\n\n return (\n <>\n <style\n dangerouslySetInnerHTML={{\n __html: `${monacoEditorCss} ${monacoEditorCommitInfoCss} ${lineNumbersCss} ${clipSelection}`\n }}\n />\n <Editor\n className={`monaco-editor-${instanceId.current} overflow-hidden rounded-b-md border-x border-b`}\n height={height}\n language={language}\n theme={theme}\n options={mergedOptions}\n onMount={handleEditorDidMount}\n />\n </>\n )\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport Editor, { EditorProps, loader, Monaco, useMonaco } from '@monaco-editor/react'\nimport * as monaco from 'monaco-editor'\n\nimport { MonacoCommonDefaultOptions } from '../constants/monaco-common-default-options'\nimport { useTheme } from '../hooks/useTheme'\nimport { ThemeDefinition } from '../types/themes'\n\nloader.config({ monaco })\n\nexport interface CodeRevision {\n code: string\n revisionId?: number\n}\n\nconst defaultOptions: monaco.editor.IStandaloneEditorConstructionOptions = {\n ...MonacoCommonDefaultOptions\n}\n\nexport interface CodeEditorProps<_> {\n codeRevision: CodeRevision\n onCodeRevisionChange: (codeRevision: CodeRevision | undefined, ev: monaco.editor.IModelContentChangedEvent) => void\n language: string\n themeConfig?: { rootElementSelector?: string; defaultTheme?: string; themes?: ThemeDefinition[] }\n theme?: string\n options?: monaco.editor.IStandaloneEditorConstructionOptions\n height?: EditorProps['height']\n}\n\nexport function CodeEditor<T>({\n codeRevision,\n onCodeRevisionChange,\n language,\n themeConfig,\n options,\n theme: themeFromProps,\n height = '75vh'\n}: CodeEditorProps<T>): JSX.Element {\n const monaco = useMonaco()\n const [editor, setEditor] = useState<monaco.editor.IStandaloneCodeEditor | undefined>()\n const monacoRef = useRef<typeof monaco>()\n const currentRevisionRef = useRef<CodeRevision>({ code: '', revisionId: 0 })\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor | null>(null)\n\n const handleEditorDidMount = useCallback(\n (editorVal: monaco.editor.IStandaloneCodeEditor, monaco: Monaco) => {\n editorRef.current = editorVal\n monacoRef.current = monaco\n\n editorVal.setValue(codeRevision.code)\n\n setEditor(editorVal)\n\n monaco.languages.typescript?.typescriptDefaults?.setDiagnosticsOptions?.({\n noSuggestionDiagnostics: true,\n noSyntaxValidation: true,\n noSemanticValidation: true\n })\n monaco.languages.typescript?.javascriptDefaults?.setDiagnosticsOptions?.({\n noSuggestionDiagnostics: true,\n noSyntaxValidation: true,\n noSemanticValidation: true\n })\n },\n [codeRevision.code]\n )\n\n useEffect(() => {\n if (!editorRef.current) return\n\n if (!codeRevision.revisionId || codeRevision.revisionId > Number(currentRevisionRef.current?.revisionId)) {\n const model = editorRef.current.getModel()\n\n if (model) {\n // NOTE: if it's a readonly no need to create undo stop points\n if (options?.readOnly) {\n editorRef.current?.setValue(codeRevision.code)\n } else {\n editorRef.current.pushUndoStop()\n editorRef.current.executeEdits('edit', [\n {\n range: model.getFullModelRange(),\n text: codeRevision.code\n }\n ])\n editorRef.current.pushUndoStop()\n }\n }\n }\n }, [codeRevision, editorRef.current])\n\n const { theme } = useTheme({ monacoRef, themeConfig, editor, theme: themeFromProps })\n\n const mergedOptions = useMemo(() => {\n return { ...defaultOptions, ...(options ? options : {}) }\n }, [options])\n\n return (\n <>\n <Editor\n className=\"overflow-hidden rounded-b-md border-x border-b\"\n height={height}\n onChange={(value, data) => {\n currentRevisionRef.current = { code: value ?? '', revisionId: data.versionId }\n onCodeRevisionChange({ ...currentRevisionRef.current }, data)\n }}\n language={language}\n theme={theme}\n options={mergedOptions}\n onMount={handleEditorDidMount}\n />\n </>\n )\n}\n","import { useMemo, useRef, useState } from 'react'\n\nimport { DiffEditor, EditorProps, loader, MonacoDiffEditor, useMonaco } from '@monaco-editor/react'\nimport * as monaco from 'monaco-editor'\n\nimport { MonacoCommonDefaultOptions } from '../constants/monaco-common-default-options'\nimport { useTheme } from '../hooks/useTheme'\nimport { ThemeDefinition } from '../types/themes'\n\nloader.config({ monaco })\n\nexport interface CodeRevision {\n code: string\n revisionId?: number\n}\n\nconst defaultOptions: monaco.editor.IStandaloneDiffEditorConstructionOptions = {\n ...MonacoCommonDefaultOptions,\n codeLens: false,\n smartSelect: {\n selectLeadingAndTrailingWhitespace: true\n },\n originalEditable: false,\n overviewRulerBorder: false\n}\n\nexport interface DiffEditorProps<_> {\n original: string\n modified: string\n language: string\n themeConfig?: { rootElementSelector?: string; defaultTheme?: string; themes?: ThemeDefinition[] }\n theme?: string\n options?: monaco.editor.IStandaloneEditorConstructionOptions\n height?: EditorProps['height']\n}\n\nexport function CodeDiffEditor<T>({\n original,\n modified,\n language,\n themeConfig,\n options,\n theme: themeFromProps,\n height = '75vh'\n}: DiffEditorProps<T>): JSX.Element {\n const monaco = useMonaco()\n const [editor, setEditor] = useState<MonacoDiffEditor | undefined>()\n\n const monacoRef = useRef<typeof monaco>()\n\n const { theme } = useTheme({ monacoRef, themeConfig, editor, theme: themeFromProps })\n\n const mergedOptions = useMemo(() => {\n return { ...defaultOptions, ...(options ? options : {}) }\n }, [options])\n\n return (\n <>\n <DiffEditor\n className=\"overflow-hidden rounded-b-md border-x border-b\"\n language={language}\n theme={theme}\n original={original}\n modified={modified}\n height={height}\n options={mergedOptions}\n onMount={setEditor}\n />\n </>\n )\n}\n","export enum SelectorType {\n //AbsolutePath = 'AbsolutePath',\n ContainsPath = 'ContainsPath'\n}\n\nexport interface ContainsPathSelector {\n type: SelectorType.ContainsPath\n /** Path have to starts with `basePath`*/\n basePath: string\n /** Path have to contains one of provided path. Base path is not included in match.*/\n paths: RegExp[]\n}\n\n// export interface AbsolutePathSelector {\n// type: SelectorType.AbsolutePath\n// /** Path have to be equal with `absolutePaths`*/\n// absolutePaths: string[]\n// }\n\nexport type PathSelector = ContainsPathSelector // | AbsolutePathSelector\n","import * as monaco from 'monaco-editor'\n\nimport { InlineAction } from '../types/inline-actions'\nimport { PathSelector, SelectorType } from '../types/selectors'\n\nexport interface CommandArg<T> extends Pick<InlineAction<T>, 'onClick' | 'data'> {\n range: monaco.IRange\n symbols: monaco.languages.DocumentSymbol[]\n path: string\n}\n\nexport interface GetCodeLensProps<T> {\n pathSymbolMap: Map<string, monaco.languages.DocumentSymbol>\n inlineActions?: { selectors: PathSelector[]; actions: InlineAction<T>[] }[]\n commandId: string | any // TODO\n}\n\nexport function getCodeLens<T>(props: GetCodeLensProps<T>) {\n const { pathSymbolMap, inlineActions = [], commandId } = props\n\n const pathSymbolMapObj = Object.fromEntries(pathSymbolMap.entries())\n\n const lenses: monaco.languages.CodeLens[] = []\n\n inlineActions?.forEach(inlineAction => {\n const actions = inlineAction.actions\n const selectors = inlineAction.selectors\n\n selectors.forEach(selector => {\n switch (selector.type) {\n case SelectorType.ContainsPath: {\n selector.paths.forEach(partRegexp => {\n const pathSymbolArr = Object.keys(pathSymbolMapObj).map(path => ({\n fullPath: path,\n path,\n symbol: pathSymbolMapObj[path]\n }))\n\n //console.log(pathSymbolArr)\n\n let candidateRelativePaths = pathSymbolArr.filter(pathSymbol => {\n return pathSymbol.path.startsWith(selector.basePath)\n })\n\n candidateRelativePaths = candidateRelativePaths.map(pathSymbol => ({\n ...pathSymbol,\n path: pathSymbol.path.substring(selector.basePath.length)\n }))\n\n //console.log(candidateRelativePaths)\n\n const finalPaths = candidateRelativePaths.filter(pathSymbol => {\n return partRegexp.test(pathSymbol.path)\n })\n\n //console.log(finalPaths, 'finalPaths')\n\n finalPaths.forEach(pathSymbol => {\n const path = pathSymbol.fullPath\n const symbol = pathSymbol.symbol\n const range = symbol.range\n\n actions.forEach(action => {\n const commandArg = {\n range,\n symbols: [symbol],\n onClick: action.onClick,\n data: action.data,\n path: path\n }\n\n lenses.push({\n range,\n command: {\n id: commandId,\n title: action.title,\n arguments: [commandArg]\n }\n })\n })\n })\n })\n break\n }\n }\n })\n })\n\n return lenses\n}\n","import { ILanguageFeaturesService } from 'monaco-editor/esm/vs/editor/common/services/languageFeatures.js'\nimport { OutlineModel } from 'monaco-editor/esm/vs/editor/contrib/documentSymbols/browser/outlineModel.js'\nimport { StandaloneServices } from 'monaco-editor/esm/vs/editor/standalone/browser/standaloneServices.js'\n\nexport interface MonacoGlobalsData {\n ILanguageFeaturesService: typeof ILanguageFeaturesService\n OutlineModel: typeof OutlineModel\n StandaloneServices: typeof StandaloneServices\n}\n\nexport class MonacoGlobals {\n static data: MonacoGlobalsData = {} as MonacoGlobalsData\n\n static set(data: MonacoGlobalsData) {\n MonacoGlobals.data = data\n }\n\n static get(): MonacoGlobalsData {\n return MonacoGlobals.data\n }\n}\n","import { editor, languages } from 'monaco-editor'\n\nimport { OutlineModelValueInternal, RootOutlineModelInternal } from '../types/monaco'\nimport { MonacoGlobals } from './monaco-globals'\n\nexport async function getOutlineModel(model: editor.ITextModel): Promise<RootOutlineModelInternal> {\n const monacoGlobals = MonacoGlobals.get()\n const { documentSymbolProvider } = monacoGlobals.StandaloneServices.get(monacoGlobals.ILanguageFeaturesService)\n const outlineModel = await monacoGlobals.OutlineModel.create(documentSymbolProvider, model)\n return outlineModel as unknown as RootOutlineModelInternal\n}\n\nexport function processOutlineModel(outlineModel: RootOutlineModelInternal) {\n const pathSymbolMap: Map<string, languages.DocumentSymbol> = new Map()\n\n processChildrenRec({\n pathSymbolMap,\n parentPath: '',\n children: outlineModel.children,\n parentKind: languages.SymbolKind.Module\n })\n\n return pathSymbolMap\n}\n\nfunction processChildrenRec(props: {\n pathSymbolMap: Map<string, languages.DocumentSymbol>\n parentPath: string\n children: Map<string, OutlineModelValueInternal>\n parentKind: languages.SymbolKind\n}) {\n switch (props.parentKind) {\n case languages.SymbolKind.Module: {\n processObject(props)\n break\n }\n case languages.SymbolKind.Array: {\n processArray(props)\n break\n }\n default: {\n processPrimitive(props)\n }\n }\n}\n\nfunction processObject(props: {\n pathSymbolMap: Map<string, languages.DocumentSymbol>\n parentPath: string\n children: Map<string, OutlineModelValueInternal>\n parentKind: languages.SymbolKind\n}) {\n props.children.forEach(child => {\n let childPath = props.parentPath\n\n if (child.symbol) {\n childPath = props.parentPath ? `${props.parentPath}.${child.symbol.name}` : child.symbol.name\n\n props.pathSymbolMap.set(childPath, child.symbol)\n }\n\n processChildrenRec({\n pathSymbolMap: props.pathSymbolMap,\n parentPath: childPath,\n children: child.children,\n parentKind: child?.symbol?.kind ?? props.parentKind\n })\n })\n}\n\nfunction processArray(props: {\n pathSymbolMap: Map<string, languages.DocumentSymbol>\n parentPath: string\n children: Map<string, OutlineModelValueInternal>\n parentKind: languages.SymbolKind\n}) {\n let idx = 0\n props.children.forEach(child => {\n const childPath = props.parentPath ? `${props.parentPath}.${idx}` : `${idx}`\n\n props.pathSymbolMap.set(childPath, child.symbol)\n\n idx += 1\n\n processChildrenRec({\n pathSymbolMap: props.pathSymbolMap,\n parentPath: childPath,\n children: child.children,\n parentKind: child.symbol.kind\n })\n })\n}\n\nfunction processPrimitive(props: {\n pathSymbolMap: Map<string, languages.DocumentSymbol>\n parentPath: string\n children: Map<string, OutlineModelValueInternal>\n parentKind: languages.SymbolKind\n}) {\n const child = props.children.get('0')\n\n if (child) {\n const childPath = props.parentPath ? `${props.parentPath}.${child.symbol.name}` : child?.symbol.name\n\n props.pathSymbolMap.set(childPath, child.symbol)\n }\n}\n","import { RefObject, useEffect } from 'react'\n\nimport * as monaco from 'monaco-editor'\n\nimport { InlineAction } from '../types/inline-actions'\nimport { PathSelector } from '../types/selectors'\nimport { getCodeLens } from '../utils/codelens-utils'\nimport { getOutlineModel, processOutlineModel } from '../utils/outline-model-to-path'\n\nexport function useCodeLenses<T>({\n editorRef,\n inlineActions\n}: {\n editorRef: RefObject<monaco.editor.IStandaloneCodeEditor | undefined | null>\n inlineActions?: { selectors: PathSelector[]; actions: InlineAction<T>[] }[]\n}): void {\n useEffect(() => {\n const disposable = monaco.languages.registerCodeLensProvider('yaml', {\n provideCodeLenses: async model => {\n const outlineModel = await getOutlineModel(model)\n const pathSymbolMap = processOutlineModel(outlineModel)\n\n const commandId = editorRef?.current?.addCommand(0, (_, { onClick, path, range, data }) => {\n onClick({ path, range, data })\n })\n\n if (!commandId) return\n\n const lenses = getCodeLens({ pathSymbolMap, inlineActions, commandId })\n\n return {\n lenses,\n dispose: () => undefined\n }\n }\n })\n\n return disposable.dispose\n }, [inlineActions, editorRef])\n}\n","import { RefObject, useEffect, useMemo, useState } from 'react'\n\nimport * as monaco from 'monaco-editor'\n\nimport { getOutlineModel, processOutlineModel } from '../utils/outline-model-to-path'\n\ntype UseDecoration = (arg: {\n editorRef?: RefObject<monaco.editor.IStandaloneCodeEditor>\n selection?: {\n path: string\n className: string\n revealInCenter?: boolean\n }\n}) => void\n\nexport const useDecoration: UseDecoration = ({ editorRef, selection }) => {\n const [range, setRange] = useState<monaco.IRange>()\n\n const computeRange = useMemo(\n () =>\n async (_editorRef?: RefObject<monaco.editor.IStandaloneCodeEditor>, path?: string, revealInCenter?: boolean) => {\n const model = editorRef?.current?.getModel()\n\n if (!model || !path) {\n return setRange(undefined)\n }\n\n const outlineModel = await getOutlineModel(model)\n const pathSymbolMap = processOutlineModel(outlineModel)\n const range = pathSymbolMap.get(path)?.range\n\n if (range) {\n setRange(range)\n\n if (revealInCenter) {\n editorRef?.current?.revealLineInCenter(range.startLineNumber)\n }\n }\n },\n []\n )\n\n useEffect(() => {\n if ('requestIdleCallback' in window) {\n const handle = requestIdleCallback(() => {\n computeRange(editorRef, selection?.path, selection?.revealInCenter)\n })\n return () => cancelIdleCallback(handle)\n }\n // fallback for safari\n else {\n const handle = setTimeout(() => {\n computeRange(editorRef, selection?.path, selection?.revealInCenter)\n }, 100)\n return () => clearTimeout(handle)\n }\n }, [selection?.path, selection?.revealInCenter, editorRef, computeRange])\n\n useEffect(() => {\n if (!range) return\n\n const decorations = editorRef?.current?.createDecorationsCollection([\n {\n // TODO: check why startColumn is set to \"end of row\"\n range: { ...range, startColumn: 1 },\n options: {\n isWholeLine: false,\n className: selection?.className\n }\n }\n ])\n\n return () => decorations?.clear()\n }, [range, editorRef, selection?.className])\n}\n","import { createContext, useCallback, useContext, useState } from 'react'\n\nimport type { editor } from 'monaco-editor'\n\nexport interface YamlEditorContextInterface {\n markers: editor.IMarker[]\n setMarkers: (markets: editor.IMarker[]) => void\n editor: editor.IStandaloneCodeEditor | null\n setEditor: (monacoEditor: editor.IStandaloneCodeEditor) => void\n updateCursorPosition: (position: { column: number; lineNumber: number }) => void\n}\n\nexport const YamlEditorContext = createContext<YamlEditorContextInterface>({\n markers: [],\n setMarkers: () => undefined,\n editor: null,\n setEditor: (_monacoEditor: editor.IStandaloneCodeEditor) => undefined,\n updateCursorPosition: (_position: { column: number; lineNumber: number }) => undefined\n})\n\nexport function YamlEditorContextProvider({\n children\n}: React.PropsWithChildren<React.HTMLAttributes<HTMLElement>>): React.ReactElement {\n const [markers, setMarkers] = useState<editor.IMarker[]>([])\n const [monacoEditor, setMonacoEditor] = useState<editor.IStandaloneCodeEditor | null>(null)\n\n const updateCursorPosition = useCallback(\n (position: { column: number; lineNumber: number }) => {\n monacoEditor?.setPosition(position)\n monacoEditor?.focus()\n },\n [monacoEditor]\n )\n\n return (\n <YamlEditorContext.Provider\n value={{\n markers,\n setMarkers,\n editor: monacoEditor,\n setEditor: setMonacoEditor,\n updateCursorPosition\n }}\n >\n {children}\n </YamlEditorContext.Provider>\n )\n}\n\nexport function useYamlEditorContext(): YamlEditorContextInterface {\n return useContext(YamlEditorContext)\n}\n","import { RefObject, useEffect } from 'react'\n\nimport * as monaco from 'monaco-editor'\n\nimport { useYamlEditorContext } from '../components/YamlProvider'\n\nexport type UseProblems = (arg: { monacoRef: RefObject<typeof monaco | undefined> }) => void\n\nexport const useProblems: UseProblems = ({ monacoRef }): void => {\n const { setMarkers } = useYamlEditorContext()\n\n useEffect(() => {\n let handle: monaco.IDisposable\n\n const timeoutHandle = setTimeout(() => {\n const editor = monacoRef.current?.editor\n\n if (!editor) return\n\n handle = editor.onDidChangeMarkers(([resource]) => {\n const markers = editor.getModelMarkers({ resource })\n setMarkers(markers)\n })\n }, 100)\n\n return () => {\n clearTimeout(timeoutHandle)\n handle?.dispose()\n }\n }, [monacoRef])\n}\n","import { Uri } from 'monaco-editor'\nimport { yamlDefaults } from 'monaco-yaml'\n\nlet isYamlMonacoConfigured = false\n\nexport function configureSchema(schemaConfig: any) {\n if (isYamlMonacoConfigured) return\n\n const config = {\n hover: true,\n completion: true,\n enableSchemaRequest: false,\n validate: true,\n schemas: [schemaConfig]\n }\n\n isYamlMonacoConfigured = true\n\n // NOTE: this is for monaco-editor@0.50.0 version\n // return configureMonacoYaml(monaco, config)\n\n yamlDefaults.setDiagnosticsOptions({ ...config })\n}\n\nexport const schemaIdToUrl = (id: string): string => {\n return Uri.parse(`file://${id}`).toString()\n}\n\nexport const schemaIdToUri = (id: string): Uri => {\n return Uri.parse(schemaIdToUrl(id))\n}\n","import { useEffect } from 'react'\n\nimport { configureSchema, schemaIdToUrl } from '../utils/schema-utils'\n\nexport type UseSchema = (arg: { schemaConfig?: { schema: any; uri: string }; instanceId: string }) => void\n\nexport const useSchema: UseSchema = (props): void => {\n const { schemaConfig, instanceId } = props\n\n useEffect(() => {\n if (schemaConfig?.schema) {\n configureSchema({\n // If YAML file is opened matching this glob\n fileMatch: [schemaIdToUrl(instanceId.toString())],\n ...schemaConfig\n })\n }\n }, [schemaConfig?.schema, instanceId])\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport Editor, { loader, Monaco, useMonaco } from '@monaco-editor/react'\nimport * as monaco from 'monaco-editor'\n\nimport { MonacoCommonDefaultOptions } from '../constants/monaco-common-default-options'\nimport { useCodeLenses } from '../hooks/useCodeLens'\nimport { useDecoration } from '../hooks/useDecoration'\nimport { useProblems } from '../hooks/useProblems'\nimport { useSchema } from '../hooks/useSchema'\nimport { useTheme } from '../hooks/useTheme'\nimport { InlineAction } from '../types/inline-actions'\nimport { PathSelector } from '../types/selectors'\nimport { ThemeDefinition } from '../types/themes'\nimport { schemaIdToUrl } from '../utils/schema-utils'\nimport { useYamlEditorContext } from './YamlProvider'\n\nloader.config({ monaco })\n\nexport interface YamlRevision {\n yaml: string\n revisionId?: number\n}\n\nconst options: monaco.editor.IStandaloneEditorConstructionOptions = {\n ...MonacoCommonDefaultOptions,\n folding: true\n}\n\nexport interface YamlEditorProps<T> {\n yamlRevision: YamlRevision\n onYamlRevisionChange: (yamlRevision: YamlRevision | undefined, ev: monaco.editor.IModelContentChangedEvent) => void\n schemaConfig?: { schema: any; uri: string }\n inlineActions?: { selectors: PathSelector[]; actions: InlineAction<T>[] }[]\n themeConfig?: { rootElementSelector?: string; defaultTheme?: string; themes?: ThemeDefinition[] }\n theme?: string\n options?: monaco.editor.IStandaloneEditorConstructionOptions\n selection?: {\n path: string\n className: string\n revealInCenter?: boolean\n }\n animateOnUpdate?: boolean\n onAnimateEnd?: () => void\n}\n\nexport const YamlEditor = function YamlEditor<T>(props: YamlEditorProps<T>): JSX.Element {\n const {\n yamlRevision,\n schemaConfig,\n inlineActions,\n themeConfig,\n onYamlRevisionChange,\n selection,\n theme: themeFromProps,\n options: userOptions,\n animateOnUpdate = false,\n onAnimateEnd\n } = props\n const monaco = useMonaco()\n const [instanceId] = useState('yaml')\n const { editor, setEditor } = useYamlEditorContext()\n\n const rootDivRef = useRef<HTMLDivElement | null>(null)\n\n const monacoRef = useRef<typeof monaco>()\n const currentRevisionRef = useRef<YamlRevision>({ yaml: '', revisionId: 0 })\n\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor | null>(null)\n const intervalIdRef = useRef<number | null>(null)\n\n const replaceYamlWithAnimation = useCallback(\n (yaml: string) => {\n const lines = yaml.split('\\n')\n const model = editorRef.current?.getModel()\n if (model) {\n editorRef.current?.pushUndoStop()\n model.setValue('')\n let index = 0\n intervalIdRef.current = window.setInterval(() => {\n if (index < lines.length) {\n if (monaco) {\n editorRef.current?.executeEdits('addLine', [\n {\n range: new monaco.Range(index + 1, 1, index + 1, 1),\n text: lines[index] + '\\n'\n }\n ])\n }\n index++\n } else {\n if (intervalIdRef.current) {\n clearInterval(intervalIdRef.current)\n onAnimateEnd?.()\n }\n }\n }, 100) // 100ms delay between each line\n editorRef.current?.pushUndoStop()\n }\n },\n [monaco]\n )\n\n useEffect(() => {\n return () => {\n if (intervalIdRef.current) {\n clearInterval(intervalIdRef.current)\n }\n }\n }, [])\n\n function handleEditorDidMount(editor: monaco.editor.IStandaloneCodeEditor, monaco: Monaco) {\n editorRef.current = editor\n monacoRef.current = monaco\n\n editor.setValue(yamlRevision.yaml)\n\n setEditor(editor)\n\n // NOTE: to prevent initial flickering (left line) we use opacity to show editor with delay\n setTimeout(() => {\n if (rootDivRef.current?.style) {\n rootDivRef.current.style.opacity = '1'\n }\n }, 50)\n }\n\n useEffect(() => {\n if (editorRef.current) {\n if (!yamlRevision.revisionId || yamlRevision.revisionId > Number(currentRevisionRef.current?.revisionId)) {\n // editorRef.current?.setValue(yamlRevision.yaml)\n\n const model = editorRef.current.getModel()\n if (model) {\n // editorRef.current.pushUndoStop()\n editorRef.current.executeEdits('edit', [\n {\n range: model.getFullModelRange(),\n text: animateOnUpdate ? '' : yamlRevision.yaml\n }\n ])\n // editorRef.current.pushUndoStop()\n if (animateOnUpdate) {\n replaceYamlWithAnimation(yamlRevision.yaml)\n }\n }\n }\n }\n }, [replaceYamlWithAnimation, yamlRevision, animateOnUpdate])\n\n useSchema({ schemaConfig, instanceId })\n\n useCodeLenses({ editorRef, inlineActions })\n\n const { theme } = useTheme({ monacoRef, themeConfig, editor, theme: themeFromProps })\n\n useProblems({ monacoRef })\n\n useDecoration({ editorRef, selection })\n\n const mergedOptions = useMemo(\n () => ({\n ...options,\n ...userOptions\n }),\n [userOptions]\n )\n\n return (\n <div style={{ width: '100%', height: '100%', opacity: 0 }} ref={rootDivRef}>\n <Editor\n onChange={(value, data) => {\n currentRevisionRef.current = { yaml: value ?? '', revisionId: data.versionId }\n onYamlRevisionChange({ ...currentRevisionRef.current }, data)\n }}\n language=\"yaml\"\n theme={theme}\n options={mergedOptions}\n path={schemaIdToUrl(instanceId)}\n onMount={handleEditorDidMount}\n />\n </div>\n )\n}\n"],"names":["f","require$$0","k","l","m","n","p","q","c","a","g","b","d","e","h","reactJsxRuntime_production_min","jsxRuntimeModule","MonacoCommonDefaultOptions","useTheme","props","themeConfig","editor","theme","defaultTheme","themeInternal","setThemeInternal","useState","useEffect","_a","themeItem","monaco","createRandomString","length","chars","result","i","escapeSingleQuote","str","getMonacoEditorCss","instanceId","lineNumbersPosition","css","getMonacoEditorCommitCss","blameData","dateWidth","avatarSize","blameItem","avatarUrl","_b","initials","_d","_c","avatarBackgroundCss","_f","_e","lineNo","_h","_g","createCommitMessage","msg","commitMsgLength","ret","loader","BLAME_MESSAGE_WIDTH","COMMIT_MESSAGE_LENGTH","DATE_WIDTH","AVATAR_SIZE","defaultOptions","BlameEditor","code","language","showSeparators","themeFromProps","height","options","blameDataRef","useRef","useMonaco","setEditor","lineNumbersDelta","setLineNumbersDelta","monacoRef","editorRef","setupBlameEditor","changeAccessor","index","domNode","decoratorItems","handleEditorDidMount","monacoEditorCss","useMemo","monacoEditorCommitInfoCss","scrollableEl","config","callback","mutationList","_","left","observer","lineNumbersCss","clipSelection","mergedOptions","jsxs","Fragment","jsx","Editor","CodeEditor","codeRevision","onCodeRevisionChange","currentRevisionRef","useCallback","editorVal","model","value","data","CodeDiffEditor","original","modified","DiffEditor","SelectorType","getCodeLens","pathSymbolMap","inlineActions","commandId","pathSymbolMapObj","lenses","inlineAction","actions","selector","partRegexp","candidateRelativePaths","path","pathSymbol","symbol","range","action","commandArg","_MonacoGlobals","__publicField","MonacoGlobals","getOutlineModel","monacoGlobals","documentSymbolProvider","processOutlineModel","outlineModel","processChildrenRec","languages","processObject","processArray","processPrimitive","child","childPath","idx","useCodeLenses","onClick","useDecoration","selection","setRange","computeRange","_editorRef","revealInCenter","handle","decorations","YamlEditorContext","createContext","_monacoEditor","_position","YamlEditorContextProvider","children","markers","setMarkers","monacoEditor","setMonacoEditor","updateCursorPosition","position","useYamlEditorContext","useContext","useProblems","timeoutHandle","resource","isYamlMonacoConfigured","configureSchema","schemaConfig","yamlDefaults","schemaIdToUrl","id","Uri","useSchema","YamlEditor","yamlRevision","onYamlRevisionChange","userOptions","animateOnUpdate","onAnimateEnd","rootDivRef","intervalIdRef","replaceYamlWithAnimation","yaml","lines"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js","../../../node_modules/.pnpm/react@17.0.2/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/.pnpm/react@17.0.2/node_modules/react/jsx-runtime.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.5.0/node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.js","../../../node_modules/.pnpm/state-local@1.0.7/node_modules/state-local/lib/es/state-local.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.5.0/node_modules/@monaco-editor/loader/lib/es/config/index.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.5.0/node_modules/@monaco-editor/loader/lib/es/utils/curry.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.5.0/node_modules/@monaco-editor/loader/lib/es/utils/isObject.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.5.0/node_modules/@monaco-editor/loader/lib/es/validators/index.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.5.0/node_modules/@monaco-editor/loader/lib/es/utils/compose.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.5.0/node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.5.0/node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.js","../../../node_modules/.pnpm/@monaco-editor+loader@1.5.0/node_modules/@monaco-editor/loader/lib/es/loader/index.js","../../../node_modules/.pnpm/@monaco-editor+react@4.6.0_monaco-editor@0.40.0_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/@monaco-editor/react/dist/index.mjs","../src/constants/monaco-common-default-options.ts","../src/hooks/useTheme.tsx","../src/utils/utils.ts","../src/utils/blame-editor-utils.ts","../src/components/BlameEditor.tsx","../src/components/CodeEditor.tsx","../src/components/DiffEditor.tsx","../src/types/selectors.ts","../src/utils/codelens-utils.ts","../src/utils/monaco-globals.ts","../src/utils/outline-model-to-path.ts","../src/hooks/useCodeLens.tsx","../src/hooks/useDecoration.tsx","../src/components/YamlProvider.tsx","../src/hooks/useProblems.tsx","../src/utils/schema-utils.ts","../src/hooks/useSchema.tsx","../src/components/YamlEditor.tsx"],"sourcesContent":["/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nexport { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _defineProperty as defineProperty, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _slicedToArray as slicedToArray, _unsupportedIterableToArray as unsupportedIterableToArray };\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n}\n\nfunction curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len3 = arguments.length, nextArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n nextArgs[_key3] = arguments[_key3];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nfunction isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nfunction isEmpty(obj) {\n return !Object.keys(obj).length;\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nfunction validateChanges(initial, changes) {\n if (!isObject(changes)) errorHandler('changeType');\n if (Object.keys(changes).some(function (field) {\n return !hasOwnProperty(initial, field);\n })) errorHandler('changeField');\n return changes;\n}\n\nfunction validateSelector(selector) {\n if (!isFunction(selector)) errorHandler('selectorType');\n}\n\nfunction validateHandler(handler) {\n if (!(isFunction(handler) || isObject(handler))) errorHandler('handlerType');\n if (isObject(handler) && Object.values(handler).some(function (_handler) {\n return !isFunction(_handler);\n })) errorHandler('handlersType');\n}\n\nfunction validateInitial(initial) {\n if (!initial) errorHandler('initialIsRequired');\n if (!isObject(initial)) errorHandler('initialType');\n if (isEmpty(initial)) errorHandler('initialContent');\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n initialIsRequired: 'initial state is required',\n initialType: 'initial state should be an object',\n initialContent: 'initial state shouldn\\'t be an empty object',\n handlerType: 'handler should be an object or a function',\n handlersType: 'all handlers should be a functions',\n selectorType: 'selector should be a function',\n changeType: 'provided value of changes should be an object',\n changeField: 'it seams you want to change a field in the state which is not specified in the \"initial\" state',\n \"default\": 'an unknown error accured in `state-local` package'\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n changes: validateChanges,\n selector: validateSelector,\n handler: validateHandler,\n initial: validateInitial\n};\n\nfunction create(initial) {\n var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n validators.initial(initial);\n validators.handler(handler);\n var state = {\n current: initial\n };\n var didUpdate = curry(didStateUpdate)(state, handler);\n var update = curry(updateState)(state);\n var validate = curry(validators.changes)(initial);\n var getChanges = curry(extractChanges)(state);\n\n function getState() {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (state) {\n return state;\n };\n validators.selector(selector);\n return selector(state.current);\n }\n\n function setState(causedChanges) {\n compose(didUpdate, update, validate, getChanges)(causedChanges);\n }\n\n return [getState, setState];\n}\n\nfunction extractChanges(state, causedChanges) {\n return isFunction(causedChanges) ? causedChanges(state.current) : causedChanges;\n}\n\nfunction updateState(state, changes) {\n state.current = _objectSpread2(_objectSpread2({}, state.current), changes);\n return changes;\n}\n\nfunction didStateUpdate(state, handler, changes) {\n isFunction(handler) ? handler(state.current) : Object.keys(changes).forEach(function (field) {\n var _handler$field;\n\n return (_handler$field = handler[field]) === null || _handler$field === void 0 ? void 0 : _handler$field.call(handler, state.current[field]);\n });\n return changes;\n}\n\nvar index = {\n create: create\n};\n\nexport default index;\n","var config = {\n paths: {\n vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.52.2/min/vs'\n }\n};\n\nexport default config;\n","function curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len2 = arguments.length, nextArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n nextArgs[_key2] = arguments[_key2];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nexport default curry;\n","function isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nexport default isObject;\n","import curry from '../utils/curry.js';\nimport isObject from '../utils/isObject.js';\n\n/**\n * validates the configuration object and informs about deprecation\n * @param {Object} config - the configuration object \n * @return {Object} config - the validated configuration object\n */\n\nfunction validateConfig(config) {\n if (!config) errorHandler('configIsRequired');\n if (!isObject(config)) errorHandler('configType');\n\n if (config.urls) {\n informAboutDeprecation();\n return {\n paths: {\n vs: config.urls.monacoBase\n }\n };\n }\n\n return config;\n}\n/**\n * logs deprecation message\n */\n\n\nfunction informAboutDeprecation() {\n console.warn(errorMessages.deprecation);\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n configIsRequired: 'the configuration object is required',\n configType: 'the configuration object should be an object',\n \"default\": 'an unknown error accured in `@monaco-editor/loader` package',\n deprecation: \"Deprecation warning!\\n You are using deprecated way of configuration.\\n\\n Instead of using\\n monaco.config({ urls: { monacoBase: '...' } })\\n use\\n monaco.config({ paths: { vs: '...' } })\\n\\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\\n \"\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n config: validateConfig\n};\n\nexport default validators;\nexport { errorHandler, errorMessages };\n","var compose = function compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n};\n\nexport default compose;\n","import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';\n\nfunction merge(target, source) {\n Object.keys(source).forEach(function (key) {\n if (source[key] instanceof Object) {\n if (target[key]) {\n Object.assign(source[key], merge(target[key], source[key]));\n }\n }\n });\n return _objectSpread2(_objectSpread2({}, target), source);\n}\n\nexport default merge;\n","// The source (has been changed) is https://github.com/facebook/react/issues/5465#issuecomment-157888325\nvar CANCELATION_MESSAGE = {\n type: 'cancelation',\n msg: 'operation is manually canceled'\n};\n\nfunction makeCancelable(promise) {\n var hasCanceled_ = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise.then(function (val) {\n return hasCanceled_ ? reject(CANCELATION_MESSAGE) : resolve(val);\n });\n promise[\"catch\"](reject);\n });\n return wrappedPromise.cancel = function () {\n return hasCanceled_ = true;\n }, wrappedPromise;\n}\n\nexport default makeCancelable;\nexport { CANCELATION_MESSAGE };\n","import { slicedToArray as _slicedToArray, objectWithoutProperties as _objectWithoutProperties } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport state from 'state-local';\nimport config$1 from '../config/index.js';\nimport validators from '../validators/index.js';\nimport compose from '../utils/compose.js';\nimport merge from '../utils/deepMerge.js';\nimport makeCancelable from '../utils/makeCancelable.js';\n\n/** the local state of the module */\n\nvar _state$create = state.create({\n config: config$1,\n isInitialized: false,\n resolve: null,\n reject: null,\n monaco: null\n}),\n _state$create2 = _slicedToArray(_state$create, 2),\n getState = _state$create2[0],\n setState = _state$create2[1];\n/**\n * set the loader configuration\n * @param {Object} config - the configuration object\n */\n\n\nfunction config(globalConfig) {\n var _validators$config = validators.config(globalConfig),\n monaco = _validators$config.monaco,\n config = _objectWithoutProperties(_validators$config, [\"monaco\"]);\n\n setState(function (state) {\n return {\n config: merge(state.config, config),\n monaco: monaco\n };\n });\n}\n/**\n * handles the initialization of the monaco-editor\n * @return {Promise} - returns an instance of monaco (with a cancelable promise)\n */\n\n\nfunction init() {\n var state = getState(function (_ref) {\n var monaco = _ref.monaco,\n isInitialized = _ref.isInitialized,\n resolve = _ref.resolve;\n return {\n monaco: monaco,\n isInitialized: isInitialized,\n resolve: resolve\n };\n });\n\n if (!state.isInitialized) {\n setState({\n isInitialized: true\n });\n\n if (state.monaco) {\n state.resolve(state.monaco);\n return makeCancelable(wrapperPromise);\n }\n\n if (window.monaco && window.monaco.editor) {\n storeMonacoInstance(window.monaco);\n state.resolve(window.monaco);\n return makeCancelable(wrapperPromise);\n }\n\n compose(injectScripts, getMonacoLoaderScript)(configureLoader);\n }\n\n return makeCancelable(wrapperPromise);\n}\n/**\n * injects provided scripts into the document.body\n * @param {Object} script - an HTML script element\n * @return {Object} - the injected HTML script element\n */\n\n\nfunction injectScripts(script) {\n return document.body.appendChild(script);\n}\n/**\n * creates an HTML script element with/without provided src\n * @param {string} [src] - the source path of the script\n * @return {Object} - the created HTML script element\n */\n\n\nfunction createScript(src) {\n var script = document.createElement('script');\n return src && (script.src = src), script;\n}\n/**\n * creates an HTML script element with the monaco loader src\n * @return {Object} - the created HTML script element\n */\n\n\nfunction getMonacoLoaderScript(configureLoader) {\n var state = getState(function (_ref2) {\n var config = _ref2.config,\n reject = _ref2.reject;\n return {\n config: config,\n reject: reject\n };\n });\n var loaderScript = createScript(\"\".concat(state.config.paths.vs, \"/loader.js\"));\n\n loaderScript.onload = function () {\n return configureLoader();\n };\n\n loaderScript.onerror = state.reject;\n return loaderScript;\n}\n/**\n * configures the monaco loader\n */\n\n\nfunction configureLoader() {\n var state = getState(function (_ref3) {\n var config = _ref3.config,\n resolve = _ref3.resolve,\n reject = _ref3.reject;\n return {\n config: config,\n resolve: resolve,\n reject: reject\n };\n });\n var require = window.require;\n\n require.config(state.config);\n\n require(['vs/editor/editor.main'], function (monaco) {\n storeMonacoInstance(monaco);\n state.resolve(monaco);\n }, function (error) {\n state.reject(error);\n });\n}\n/**\n * store monaco instance in local state\n */\n\n\nfunction storeMonacoInstance(monaco) {\n if (!getState().monaco) {\n setState({\n monaco: monaco\n });\n }\n}\n/**\n * internal helper function\n * extracts stored monaco instance\n * @return {Object|null} - the monaco instance\n */\n\n\nfunction __getMonacoInstance() {\n return getState(function (_ref4) {\n var monaco = _ref4.monaco;\n return monaco;\n });\n}\n\nvar wrapperPromise = new Promise(function (resolve, reject) {\n return setState({\n resolve: resolve,\n reject: reject\n });\n});\nvar loader = {\n config: config,\n init: init,\n __getMonacoInstance: __getMonacoInstance\n};\n\nexport default loader;\n","import _t from\"@monaco-editor/loader\";import{memo as Te}from\"react\";import ke,{useState as re,useRef as S,useCallback as oe,useEffect as ne}from\"react\";import Se from\"@monaco-editor/loader\";import{memo as ye}from\"react\";import K from\"react\";var le={wrapper:{display:\"flex\",position:\"relative\",textAlign:\"initial\"},fullWidth:{width:\"100%\"},hide:{display:\"none\"}},v=le;import me from\"react\";var ae={container:{display:\"flex\",height:\"100%\",width:\"100%\",justifyContent:\"center\",alignItems:\"center\"}},Y=ae;function Me({children:e}){return me.createElement(\"div\",{style:Y.container},e)}var Z=Me;var $=Z;function Ee({width:e,height:r,isEditorReady:n,loading:t,_ref:a,className:m,wrapperProps:E}){return K.createElement(\"section\",{style:{...v.wrapper,width:e,height:r},...E},!n&&K.createElement($,null,t),K.createElement(\"div\",{ref:a,style:{...v.fullWidth,...!n&&v.hide},className:m}))}var ee=Ee;var H=ye(ee);import{useEffect as xe}from\"react\";function Ce(e){xe(e,[])}var k=Ce;import{useEffect as ge,useRef as Re}from\"react\";function he(e,r,n=!0){let t=Re(!0);ge(t.current||!n?()=>{t.current=!1}:e,r)}var l=he;function D(){}function h(e,r,n,t){return De(e,t)||be(e,r,n,t)}function De(e,r){return e.editor.getModel(te(e,r))}function be(e,r,n,t){return e.editor.createModel(r,n,t?te(e,t):void 0)}function te(e,r){return e.Uri.parse(r)}function Oe({original:e,modified:r,language:n,originalLanguage:t,modifiedLanguage:a,originalModelPath:m,modifiedModelPath:E,keepCurrentOriginalModel:g=!1,keepCurrentModifiedModel:N=!1,theme:x=\"light\",loading:P=\"Loading...\",options:y={},height:V=\"100%\",width:z=\"100%\",className:F,wrapperProps:j={},beforeMount:A=D,onMount:q=D}){let[M,O]=re(!1),[T,s]=re(!0),u=S(null),c=S(null),w=S(null),d=S(q),o=S(A),b=S(!1);k(()=>{let i=Se.init();return i.then(f=>(c.current=f)&&s(!1)).catch(f=>f?.type!==\"cancelation\"&&console.error(\"Monaco initialization: error:\",f)),()=>u.current?I():i.cancel()}),l(()=>{if(u.current&&c.current){let i=u.current.getOriginalEditor(),f=h(c.current,e||\"\",t||n||\"text\",m||\"\");f!==i.getModel()&&i.setModel(f)}},[m],M),l(()=>{if(u.current&&c.current){let i=u.current.getModifiedEditor(),f=h(c.current,r||\"\",a||n||\"text\",E||\"\");f!==i.getModel()&&i.setModel(f)}},[E],M),l(()=>{let i=u.current.getModifiedEditor();i.getOption(c.current.editor.EditorOption.readOnly)?i.setValue(r||\"\"):r!==i.getValue()&&(i.executeEdits(\"\",[{range:i.getModel().getFullModelRange(),text:r||\"\",forceMoveMarkers:!0}]),i.pushUndoStop())},[r],M),l(()=>{u.current?.getModel()?.original.setValue(e||\"\")},[e],M),l(()=>{let{original:i,modified:f}=u.current.getModel();c.current.editor.setModelLanguage(i,t||n||\"text\"),c.current.editor.setModelLanguage(f,a||n||\"text\")},[n,t,a],M),l(()=>{c.current?.editor.setTheme(x)},[x],M),l(()=>{u.current?.updateOptions(y)},[y],M);let L=oe(()=>{if(!c.current)return;o.current(c.current);let i=h(c.current,e||\"\",t||n||\"text\",m||\"\"),f=h(c.current,r||\"\",a||n||\"text\",E||\"\");u.current?.setModel({original:i,modified:f})},[n,r,a,e,t,m,E]),U=oe(()=>{!b.current&&w.current&&(u.current=c.current.editor.createDiffEditor(w.current,{automaticLayout:!0,...y}),L(),c.current?.editor.setTheme(x),O(!0),b.current=!0)},[y,x,L]);ne(()=>{M&&d.current(u.current,c.current)},[M]),ne(()=>{!T&&!M&&U()},[T,M,U]);function I(){let i=u.current?.getModel();g||i?.original?.dispose(),N||i?.modified?.dispose(),u.current?.dispose()}return ke.createElement(H,{width:z,height:V,isEditorReady:M,loading:P,_ref:w,className:F,wrapperProps:j})}var ie=Oe;var we=Te(ie);import{useState as Ie}from\"react\";import ce from\"@monaco-editor/loader\";function Pe(){let[e,r]=Ie(ce.__getMonacoInstance());return k(()=>{let n;return e||(n=ce.init(),n.then(t=>{r(t)})),()=>n?.cancel()}),e}var Le=Pe;import{memo as ze}from\"react\";import We,{useState as ue,useEffect as W,useRef as C,useCallback as _e}from\"react\";import Ne from\"@monaco-editor/loader\";import{useEffect as Ue,useRef as ve}from\"react\";function He(e){let r=ve();return Ue(()=>{r.current=e},[e]),r.current}var se=He;var _=new Map;function Ve({defaultValue:e,defaultLanguage:r,defaultPath:n,value:t,language:a,path:m,theme:E=\"light\",line:g,loading:N=\"Loading...\",options:x={},overrideServices:P={},saveViewState:y=!0,keepCurrentModel:V=!1,width:z=\"100%\",height:F=\"100%\",className:j,wrapperProps:A={},beforeMount:q=D,onMount:M=D,onChange:O,onValidate:T=D}){let[s,u]=ue(!1),[c,w]=ue(!0),d=C(null),o=C(null),b=C(null),L=C(M),U=C(q),I=C(),i=C(t),f=se(m),Q=C(!1),B=C(!1);k(()=>{let p=Ne.init();return p.then(R=>(d.current=R)&&w(!1)).catch(R=>R?.type!==\"cancelation\"&&console.error(\"Monaco initialization: error:\",R)),()=>o.current?pe():p.cancel()}),l(()=>{let p=h(d.current,e||t||\"\",r||a||\"\",m||n||\"\");p!==o.current?.getModel()&&(y&&_.set(f,o.current?.saveViewState()),o.current?.setModel(p),y&&o.current?.restoreViewState(_.get(m)))},[m],s),l(()=>{o.current?.updateOptions(x)},[x],s),l(()=>{!o.current||t===void 0||(o.current.getOption(d.current.editor.EditorOption.readOnly)?o.current.setValue(t):t!==o.current.getValue()&&(B.current=!0,o.current.executeEdits(\"\",[{range:o.current.getModel().getFullModelRange(),text:t,forceMoveMarkers:!0}]),o.current.pushUndoStop(),B.current=!1))},[t],s),l(()=>{let p=o.current?.getModel();p&&a&&d.current?.editor.setModelLanguage(p,a)},[a],s),l(()=>{g!==void 0&&o.current?.revealLine(g)},[g],s),l(()=>{d.current?.editor.setTheme(E)},[E],s);let X=_e(()=>{if(!(!b.current||!d.current)&&!Q.current){U.current(d.current);let p=m||n,R=h(d.current,t||e||\"\",r||a||\"\",p||\"\");o.current=d.current?.editor.create(b.current,{model:R,automaticLayout:!0,...x},P),y&&o.current.restoreViewState(_.get(p)),d.current.editor.setTheme(E),g!==void 0&&o.current.revealLine(g),u(!0),Q.current=!0}},[e,r,n,t,a,m,x,P,y,E,g]);W(()=>{s&&L.current(o.current,d.current)},[s]),W(()=>{!c&&!s&&X()},[c,s,X]),i.current=t,W(()=>{s&&O&&(I.current?.dispose(),I.current=o.current?.onDidChangeModelContent(p=>{B.current||O(o.current.getValue(),p)}))},[s,O]),W(()=>{if(s){let p=d.current.editor.onDidChangeMarkers(R=>{let G=o.current.getModel()?.uri;if(G&&R.find(J=>J.path===G.path)){let J=d.current.editor.getModelMarkers({resource:G});T?.(J)}});return()=>{p?.dispose()}}return()=>{}},[s,T]);function pe(){I.current?.dispose(),V?y&&_.set(m,o.current.saveViewState()):o.current.getModel()?.dispose(),o.current.dispose()}return We.createElement(H,{width:z,height:F,isEditorReady:s,loading:N,_ref:b,className:j,wrapperProps:A})}var fe=Ve;var de=ze(fe);var Ft=de;export{we as DiffEditor,de as Editor,Ft as default,_t as loader,Le as useMonaco};\n//# sourceMappingURL=index.mjs.map","import * as monaco from 'monaco-editor'\n\nexport const MonacoCommonDefaultOptions: monaco.editor.IStandaloneDiffEditorConstructionOptions = {\n selectOnLineNumbers: true,\n scrollBeyondLastLine: false,\n padding: {\n top: 16,\n bottom: 16\n },\n minimap: { enabled: false },\n fontSize: 13,\n fontFamily: '\"JetBrains Mono\", \"monospace\"',\n lineHeight: 20,\n scrollbar: {\n verticalScrollbarSize: 14,\n horizontalScrollbarSize: 14,\n verticalSliderSize: 6,\n horizontalSliderSize: 6\n },\n overviewRulerBorder: false,\n overviewRulerLanes: 0,\n renderLineHighlight: 'none'\n}\n","import { RefObject, useEffect, useState } from 'react'\n\nimport * as monaco from 'monaco-editor'\n\nimport { ThemeDefinition } from '../types/themes'\n\nexport type UseTheme = (arg: {\n monacoRef: RefObject<typeof monaco | undefined>\n themeConfig?: {\n rootElementSelector?: string\n defaultTheme?: string\n themes?: ThemeDefinition[]\n }\n theme?: string\n editor: any\n}) => { theme: string }\n\nexport const useTheme: UseTheme = (props): { theme: string } => {\n const { themeConfig, editor, theme } = props\n const { defaultTheme } = themeConfig ?? {}\n\n const [themeInternal, setThemeInternal] = useState(theme ?? defaultTheme ?? 'vs-dark')\n\n useEffect(() => {\n themeConfig?.themes?.forEach(themeItem => {\n monaco.editor.defineTheme(themeItem.themeName, themeItem.themeData)\n })\n }, [monaco])\n\n useEffect(() => {\n if (monaco.editor && theme) {\n monaco.editor.setTheme(theme)\n setThemeInternal(theme)\n }\n }, [editor, theme])\n\n return { theme: themeInternal }\n}\n","export function createRandomString(length: number) {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'\n let result = ''\n for (let i = 0; i < length; i++) {\n result += chars.charAt(Math.floor(Math.random() * chars.length))\n }\n return result\n}\n\nexport function escapeSingleQuote(str: string) {\n return str.replace(`'`, `'`)\n}\n","import { BlameItem } from '../types/blame'\nimport { escapeSingleQuote } from './utils'\n\nexport function getMonacoEditorCss({\n instanceId,\n lineNumbersPosition\n}: {\n instanceId: string\n lineNumbersPosition: 'left' | 'center'\n}) {\n let css = ''\n\n // we move '.margin' element and update left/width of monaco editor\n if (lineNumbersPosition === 'center') {\n css += `\n .monaco-editor-${instanceId} .monaco-scrollable-element.editor-scrollable {\n width: 100% !important;\n left: 0px !important;\n }\n\n .monaco-editor-${instanceId} .view-lines, .view-zones {\n width: 100% !important;\n }\n \n .monaco-editor-${instanceId} .margin {\n z-index: 1000;\n background: transparent !important;\n }`\n }\n\n css += `\n .monaco-editor-${instanceId} .blame-editor-separator {\n right: 14px;\n pointer-events: none;\n }\n\n .monaco-editor-${instanceId} {\n outline: none !important;\n }\n \n .monaco-editor-${instanceId} .view-line .blame-editor-commit {\n display: inline-block;\n color: var(--canary-foreground-01);\n }`\n\n return css\n}\n\nexport function getMonacoEditorCommitCss({\n instanceId,\n blameData,\n dateWidth,\n avatarSize\n}: {\n instanceId: string\n blameData: BlameItem[]\n dateWidth: number\n avatarSize: number\n}) {\n let css = ''\n blameData.forEach(blameItem => {\n const avatarUrl = blameItem?.commitInfo?.author?.avatarUrl\n const initials = blameItem?.commitInfo?.author?.initials\n\n const avatarBackgroundCss = avatarUrl ? `background: url('${blameItem?.commitInfo?.author?.avatarUrl}');` : ''\n\n for (let lineNo = blameItem.fromLineNumber; lineNo <= blameItem.toLineNumber; lineNo++) {\n if (lineNo === blameItem.fromLineNumber) {\n css += `\n .monaco-editor-${instanceId} .view-line .blame-editor-commit-${lineNo}:before {\n content: '${escapeSingleQuote(blameItem?.commitInfo?.author?.when || '')}';\n position: absolute;\n left: 10px;\n top: 0px;\n color: hsl(var(--canary-foreground-03));\n }\n\n .monaco-editor-${instanceId} .view-line .blame-editor-commit-${lineNo}:after {\n content: '${initials ?? ' '}';\n position: absolute;\n border-radius: 50%;\n padding: 4px;\n text-align: center;\n background: hsl(var(--canary-background-11));\n line-height: 17px;\n left: ${dateWidth + 10}px;\n top: -4px;\n color: hsl(var(--canary-foreground-03));\n width: ${avatarSize}px;\n height: ${avatarSize}px;\n ${avatarBackgroundCss}\n background-size: 100% 100%;\n }`\n } else {\n css += `\n .monaco-editor-${instanceId} .view-line .blame-editor-commit-${lineNo}:before {\n content: ' ';\n left: 10px;\n top: 0px;\n color: gray;\n }`\n }\n }\n })\n\n return css\n}\n\nexport function createCommitMessage(msg: string, commitMsgLength: number) {\n let ret = ''\n if (msg.length > commitMsgLength) {\n ret = msg.slice(0, commitMsgLength - 3) + '...'\n } else if (msg.length < commitMsgLength) {\n ret = msg + ' '.repeat(commitMsgLength - msg.length)\n } else {\n ret = msg\n }\n\n return ' '.repeat(25) + ret + ' '.repeat(10)\n}\n","import { useEffect, useMemo, useRef, useState } from 'react'\n\nimport Editor, { EditorProps, loader, Monaco, useMonaco } from '@monaco-editor/react'\nimport * as monaco from 'monaco-editor'\n\nimport { MonacoCommonDefaultOptions } from '../constants/monaco-common-default-options'\nimport { useTheme } from '../hooks/useTheme'\nimport { BlameItem } from '../types/blame'\nimport { ThemeDefinition } from '../types/themes'\nimport { createCommitMessage, getMonacoEditorCommitCss, getMonacoEditorCss } from '../utils/blame-editor-utils'\nimport { createRandomString } from '../utils/utils'\n\nloader.config({ monaco })\n\nconst BLAME_MESSAGE_WIDTH = 450\nconst COMMIT_MESSAGE_LENGTH = 30\nconst DATE_WIDTH = 140\nconst AVATAR_SIZE = 24\n\nconst defaultOptions: monaco.editor.IStandaloneEditorConstructionOptions = {\n ...MonacoCommonDefaultOptions,\n readOnly: true,\n matchBrackets: 'never',\n renderValidationDecorations: 'off',\n guides: { indentation: false },\n folding: false,\n stickyScroll: { enabled: false },\n renderWhitespace: 'none',\n renderLineHighlight: 'none'\n}\n\nexport interface BlameEditorProps {\n code: string\n language: string\n themeConfig?: { rootElementSelector?: string; defaultTheme?: string; themes?: ThemeDefinition[] }\n theme?: string\n lineNumbersPosition?: 'left' | 'center'\n blameData: BlameItem[]\n showSeparators?: boolean\n height?: EditorProps['height']\n options?: monaco.editor.IStandaloneEditorConstructionOptions\n}\n\nexport function BlameEditor({\n code,\n language,\n themeConfig,\n lineNumbersPosition = 'left',\n blameData,\n showSeparators = true,\n theme: themeFromProps,\n height = '75vh',\n options\n}: BlameEditorProps): JSX.Element {\n const blameDataRef = useRef(blameData)\n\n const instanceId = useRef(createRandomString(5))\n const monaco = useMonaco()\n const [editor, setEditor] = useState<monaco.editor.IStandaloneCodeEditor | undefined>()\n\n const [lineNumbersDelta, setLineNumbersDelta] = useState(0)\n\n const monacoRef = useRef<typeof monaco | null>(null)\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor | null>(null)\n\n useEffect(() => {\n blameDataRef.current = blameData\n }, [blameData])\n\n function setupBlameEditor() {\n const editor = editorRef.current\n const monaco = monacoRef.current\n\n if (!editor || !monaco) return\n\n // separators\n if (showSeparators) {\n editor.changeViewZones(function (changeAccessor) {\n // space before first line\n changeAccessor.addZone({\n afterLineNumber: 0,\n heightInPx: 10,\n domNode: document.createElement('div')\n })\n\n blameDataRef.current.forEach((blameItem, index) => {\n if (index !== blameDataRef.current.length - 1) {\n const domNode = document.createElement('div')\n domNode.style.borderTop = '1px solid hsl(var(--canary-border-01))'\n domNode.style.marginTop = '9px'\n domNode.className = 'blame-editor-separator'\n\n changeAccessor.addZone({\n afterLineNumber: blameItem.toLineNumber,\n heightInPx: 20,\n domNode: domNode\n })\n }\n })\n })\n }\n\n const decoratorItems: monaco.editor.IModelDeltaDecoration[] = []\n blameDataRef.current.forEach(blameItem => {\n for (let lineNo = blameItem.fromLineNumber; lineNo <= blameItem.toLineNumber; lineNo++) {\n decoratorItems.push({\n range: new monaco.Range(lineNo, 0, lineNo + 1, 0),\n options: {\n before: {\n content: createCommitMessage(\n lineNo === blameItem.fromLineNumber ? blameItem?.commitInfo?.title || '' : '',\n COMMIT_MESSAGE_LENGTH\n ),\n cursorStops: monaco.editor.InjectedTextCursorStops.None,\n inlineClassName: `blame-editor-commit blame-editor-commit-${lineNo}`\n }\n }\n })\n }\n })\n\n // TODO: on unmount clear decorators, on blameData change recreate\n editor.createDecorationsCollection(decoratorItems)\n }\n\n function handleEditorDidMount(editor: monaco.editor.IStandaloneCodeEditor, monaco: Monaco) {\n editorRef.current = editor\n monacoRef.current = monaco\n\n editor.setValue(code)\n setEditor(editor)\n\n monaco.languages.typescript?.typescriptDefaults?.setDiagnosticsOptions?.({\n noSuggestionDiagnostics: true,\n noSyntaxValidation: true,\n noSemanticValidation: true\n })\n monaco.languages.typescript?.javascriptDefaults?.setDiagnosticsOptions?.({\n noSuggestionDiagnostics: true,\n noSyntaxValidation: true,\n noSemanticValidation: true\n })\n\n setupBlameEditor()\n }\n\n useEffect(() => {\n editor?.setValue(code)\n }, [code])\n\n const { theme } = useTheme({ monacoRef, themeConfig, editor, theme: themeFromProps })\n\n const monacoEditorCss = useMemo(\n () =>\n getMonacoEditorCss({\n instanceId: instanceId.current,\n lineNumbersPosition\n }),\n [blameData]\n )\n\n const monacoEditorCommitInfoCss = useMemo(\n () =>\n getMonacoEditorCommitCss({\n instanceId: instanceId.current,\n blameData,\n avatarSize: AVATAR_SIZE,\n dateWidth: DATE_WIDTH\n }),\n [blameData]\n )\n\n // set adjustment for lines numbers position\n useEffect(() => {\n if (lineNumbersPosition === 'center') {\n const scrollableEl = document.getElementsByClassName('lines-content')[0]\n\n if (scrollableEl) {\n const config = { attributes: true }\n\n const callback: MutationCallback = mutationList => {\n for (const _ of mutationList) {\n const left = parseInt(getComputedStyle(scrollableEl).left)\n setLineNumbersDelta(left)\n }\n }\n\n const observer = new MutationObserver(callback)\n observer.observe(scrollableEl, config)\n\n return () => {\n observer.disconnect()\n }\n }\n }\n })\n\n // adjust lines numbers position\n const lineNumbersCss = useMemo(() => {\n return `\n .monaco-editor-${instanceId.current} .margin {\n left: ${BLAME_MESSAGE_WIDTH + 16 + lineNumbersDelta}px !important;\n pointer-events: none;\n }`\n }, [lineNumbersDelta])\n\n const clipSelection = `\n .monaco-editor-${instanceId.current} .view-overlays {\n clip-path: polygon(${BLAME_MESSAGE_WIDTH + 16}px 0, 100% 0%, 100% 100%, ${BLAME_MESSAGE_WIDTH + 16}px 100%);\n height:100% !important;\n }`\n\n const mergedOptions = useMemo(\n () => ({\n ...defaultOptions,\n ...options\n }),\n [options]\n )\n\n return (\n <>\n <style\n dangerouslySetInnerHTML={{\n __html: `${monacoEditorCss} ${monacoEditorCommitInfoCss} ${lineNumbersCss} ${clipSelection}`\n }}\n />\n <Editor\n className={`monaco-editor-${instanceId.current} overflow-hidden rounded-b-md border-x border-b`}\n height={height}\n language={language}\n theme={theme}\n options={mergedOptions}\n onMount={handleEditorDidMount}\n />\n </>\n )\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport Editor, { EditorProps, loader, Monaco, useMonaco } from '@monaco-editor/react'\nimport * as monaco from 'monaco-editor'\n\nimport { MonacoCommonDefaultOptions } from '../constants/monaco-common-default-options'\nimport { useTheme } from '../hooks/useTheme'\nimport { ThemeDefinition } from '../types/themes'\n\nloader.config({ monaco })\n\nexport interface CodeRevision {\n code: string\n revisionId?: number\n}\n\nconst defaultOptions: monaco.editor.IStandaloneEditorConstructionOptions = {\n ...MonacoCommonDefaultOptions\n}\n\nexport interface CodeEditorProps<_> {\n codeRevision: CodeRevision\n onCodeRevisionChange: (codeRevision: CodeRevision | undefined, ev: monaco.editor.IModelContentChangedEvent) => void\n language: string\n themeConfig?: { rootElementSelector?: string; defaultTheme?: string; themes?: ThemeDefinition[] }\n theme?: string\n options?: monaco.editor.IStandaloneEditorConstructionOptions\n height?: EditorProps['height']\n className?: string\n}\n\nexport function CodeEditor<T>({\n codeRevision,\n onCodeRevisionChange,\n language,\n themeConfig,\n options,\n theme: themeFromProps,\n height = '75vh',\n className\n}: CodeEditorProps<T>): JSX.Element {\n const monaco = useMonaco()\n const [editor, setEditor] = useState<monaco.editor.IStandaloneCodeEditor | undefined>()\n const monacoRef = useRef<typeof monaco>()\n const currentRevisionRef = useRef<CodeRevision>({ code: '', revisionId: 0 })\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor | null>(null)\n\n const handleEditorDidMount = useCallback(\n (editorVal: monaco.editor.IStandaloneCodeEditor, monaco: Monaco) => {\n editorRef.current = editorVal\n monacoRef.current = monaco\n\n editorVal.setValue(codeRevision.code)\n\n setEditor(editorVal)\n\n monaco.languages.typescript?.typescriptDefaults?.setDiagnosticsOptions?.({\n noSuggestionDiagnostics: true,\n noSyntaxValidation: true,\n noSemanticValidation: true\n })\n monaco.languages.typescript?.javascriptDefaults?.setDiagnosticsOptions?.({\n noSuggestionDiagnostics: true,\n noSyntaxValidation: true,\n noSemanticValidation: true\n })\n },\n [codeRevision.code]\n )\n\n useEffect(() => {\n if (!editorRef.current) return\n\n if (!codeRevision.revisionId || codeRevision.revisionId > Number(currentRevisionRef.current?.revisionId)) {\n const model = editorRef.current.getModel()\n\n if (model) {\n // NOTE: if it's a readonly no need to create undo stop points\n if (options?.readOnly) {\n editorRef.current?.setValue(codeRevision.code)\n } else {\n editorRef.current.pushUndoStop()\n editorRef.current.executeEdits('edit', [\n {\n range: model.getFullModelRange(),\n text: codeRevision.code\n }\n ])\n editorRef.current.pushUndoStop()\n }\n }\n }\n }, [codeRevision, editorRef.current])\n\n const { theme } = useTheme({ monacoRef, themeConfig, editor, theme: themeFromProps })\n\n const mergedOptions = useMemo(() => {\n return { ...defaultOptions, ...(options ? options : {}) }\n }, [options])\n\n return (\n <>\n <Editor\n className={className}\n height={height}\n onChange={(value, data) => {\n currentRevisionRef.current = { code: value ?? '', revisionId: data.versionId }\n onCodeRevisionChange({ ...currentRevisionRef.current }, data)\n }}\n language={language}\n theme={theme}\n options={mergedOptions}\n onMount={handleEditorDidMount}\n />\n </>\n )\n}\n","import { useMemo, useRef, useState } from 'react'\n\nimport { DiffEditor, EditorProps, loader, MonacoDiffEditor, useMonaco } from '@monaco-editor/react'\nimport * as monaco from 'monaco-editor'\n\nimport { MonacoCommonDefaultOptions } from '../constants/monaco-common-default-options'\nimport { useTheme } from '../hooks/useTheme'\nimport { ThemeDefinition } from '../types/themes'\n\nloader.config({ monaco })\n\nexport interface CodeRevision {\n code: string\n revisionId?: number\n}\n\nconst defaultOptions: monaco.editor.IStandaloneDiffEditorConstructionOptions = {\n ...MonacoCommonDefaultOptions,\n codeLens: false,\n smartSelect: {\n selectLeadingAndTrailingWhitespace: true\n },\n originalEditable: false,\n overviewRulerBorder: false\n}\n\nexport interface DiffEditorProps<_> {\n original: string\n modified: string\n language: string\n themeConfig?: { rootElementSelector?: string; defaultTheme?: string; themes?: ThemeDefinition[] }\n theme?: string\n options?: monaco.editor.IStandaloneEditorConstructionOptions\n height?: EditorProps['height']\n}\n\nexport function CodeDiffEditor<T>({\n original,\n modified,\n language,\n themeConfig,\n options,\n theme: themeFromProps,\n height = '75vh'\n}: DiffEditorProps<T>): JSX.Element {\n const monaco = useMonaco()\n const [editor, setEditor] = useState<MonacoDiffEditor | undefined>()\n\n const monacoRef = useRef<typeof monaco>()\n\n const { theme } = useTheme({ monacoRef, themeConfig, editor, theme: themeFromProps })\n\n const mergedOptions = useMemo(() => {\n return { ...defaultOptions, ...(options ? options : {}) }\n }, [options])\n\n return (\n <>\n <DiffEditor\n className=\"overflow-hidden rounded-b-md border-x border-b\"\n language={language}\n theme={theme}\n original={original}\n modified={modified}\n height={height}\n options={mergedOptions}\n onMount={setEditor}\n />\n </>\n )\n}\n","export enum SelectorType {\n //AbsolutePath = 'AbsolutePath',\n ContainsPath = 'ContainsPath'\n}\n\nexport interface ContainsPathSelector {\n type: SelectorType.ContainsPath\n /** Path have to starts with `basePath`*/\n basePath: string\n /** Path have to contains one of provided path. Base path is not included in match.*/\n paths: RegExp[]\n}\n\n// export interface AbsolutePathSelector {\n// type: SelectorType.AbsolutePath\n// /** Path have to be equal with `absolutePaths`*/\n// absolutePaths: string[]\n// }\n\nexport type PathSelector = ContainsPathSelector // | AbsolutePathSelector\n","import * as monaco from 'monaco-editor'\n\nimport { InlineAction } from '../types/inline-actions'\nimport { PathSelector, SelectorType } from '../types/selectors'\n\nexport interface CommandArg<T> extends Pick<InlineAction<T>, 'onClick' | 'data'> {\n range: monaco.IRange\n symbols: monaco.languages.DocumentSymbol[]\n path: string\n}\n\nexport interface GetCodeLensProps<T> {\n pathSymbolMap: Map<string, monaco.languages.DocumentSymbol>\n inlineActions?: { selectors: PathSelector[]; actions: InlineAction<T>[] }[]\n commandId: string | any // TODO\n}\n\nexport function getCodeLens<T>(props: GetCodeLensProps<T>) {\n const { pathSymbolMap, inlineActions = [], commandId } = props\n\n const pathSymbolMapObj = Object.fromEntries(pathSymbolMap.entries())\n\n const lenses: monaco.languages.CodeLens[] = []\n\n inlineActions?.forEach(inlineAction => {\n const actions = inlineAction.actions\n const selectors = inlineAction.selectors\n\n selectors.forEach(selector => {\n switch (selector.type) {\n case SelectorType.ContainsPath: {\n selector.paths.forEach(partRegexp => {\n const pathSymbolArr = Object.keys(pathSymbolMapObj).map(path => ({\n fullPath: path,\n path,\n symbol: pathSymbolMapObj[path]\n }))\n\n //console.log(pathSymbolArr)\n\n let candidateRelativePaths = pathSymbolArr.filter(pathSymbol => {\n return pathSymbol.path.startsWith(selector.basePath)\n })\n\n candidateRelativePaths = candidateRelativePaths.map(pathSymbol => ({\n ...pathSymbol,\n path: pathSymbol.path.substring(selector.basePath.length)\n }))\n\n //console.log(candidateRelativePaths)\n\n const finalPaths = candidateRelativePaths.filter(pathSymbol => {\n return partRegexp.test(pathSymbol.path)\n })\n\n //console.log(finalPaths, 'finalPaths')\n\n finalPaths.forEach(pathSymbol => {\n const path = pathSymbol.fullPath\n const symbol = pathSymbol.symbol\n const range = symbol.range\n\n actions.forEach(action => {\n const commandArg = {\n range,\n symbols: [symbol],\n onClick: action.onClick,\n data: action.data,\n path: path\n }\n\n lenses.push({\n range,\n command: {\n id: commandId,\n title: action.title,\n arguments: [commandArg]\n }\n })\n })\n })\n })\n break\n }\n }\n })\n })\n\n return lenses\n}\n","import { ILanguageFeaturesService } from 'monaco-editor/esm/vs/editor/common/services/languageFeatures.js'\nimport { OutlineModel } from 'monaco-editor/esm/vs/editor/contrib/documentSymbols/browser/outlineModel.js'\nimport { StandaloneServices } from 'monaco-editor/esm/vs/editor/standalone/browser/standaloneServices.js'\n\nexport interface MonacoGlobalsData {\n ILanguageFeaturesService: typeof ILanguageFeaturesService\n OutlineModel: typeof OutlineModel\n StandaloneServices: typeof StandaloneServices\n}\n\nexport class MonacoGlobals {\n static data: MonacoGlobalsData = {} as MonacoGlobalsData\n\n static set(data: MonacoGlobalsData) {\n MonacoGlobals.data = data\n }\n\n static get(): MonacoGlobalsData {\n return MonacoGlobals.data\n }\n}\n","import { editor, languages } from 'monaco-editor'\n\nimport { OutlineModelValueInternal, RootOutlineModelInternal } from '../types/monaco'\nimport { MonacoGlobals } from './monaco-globals'\n\nexport async function getOutlineModel(model: editor.ITextModel): Promise<RootOutlineModelInternal> {\n const monacoGlobals = MonacoGlobals.get()\n const { documentSymbolProvider } = monacoGlobals.StandaloneServices.get(monacoGlobals.ILanguageFeaturesService)\n const outlineModel = await monacoGlobals.OutlineModel.create(documentSymbolProvider, model)\n return outlineModel as unknown as RootOutlineModelInternal\n}\n\nexport function processOutlineModel(outlineModel: RootOutlineModelInternal) {\n const pathSymbolMap: Map<string, languages.DocumentSymbol> = new Map()\n\n processChildrenRec({\n pathSymbolMap,\n parentPath: '',\n children: outlineModel.children,\n parentKind: languages.SymbolKind.Module\n })\n\n return pathSymbolMap\n}\n\nfunction processChildrenRec(props: {\n pathSymbolMap: Map<string, languages.DocumentSymbol>\n parentPath: string\n children: Map<string, OutlineModelValueInternal>\n parentKind: languages.SymbolKind\n}) {\n switch (props.parentKind) {\n case languages.SymbolKind.Module: {\n processObject(props)\n break\n }\n case languages.SymbolKind.Array: {\n processArray(props)\n break\n }\n default: {\n processPrimitive(props)\n }\n }\n}\n\nfunction processObject(props: {\n pathSymbolMap: Map<string, languages.DocumentSymbol>\n parentPath: string\n children: Map<string, OutlineModelValueInternal>\n parentKind: languages.SymbolKind\n}) {\n props.children.forEach(child => {\n let childPath = props.parentPath\n\n if (child.symbol) {\n childPath = props.parentPath ? `${props.parentPath}.${child.symbol.name}` : child.symbol.name\n\n props.pathSymbolMap.set(childPath, child.symbol)\n }\n\n processChildrenRec({\n pathSymbolMap: props.pathSymbolMap,\n parentPath: childPath,\n children: child.children,\n parentKind: child?.symbol?.kind ?? props.parentKind\n })\n })\n}\n\nfunction processArray(props: {\n pathSymbolMap: Map<string, languages.DocumentSymbol>\n parentPath: string\n children: Map<string, OutlineModelValueInternal>\n parentKind: languages.SymbolKind\n}) {\n let idx = 0\n props.children.forEach(child => {\n const childPath = props.parentPath ? `${props.parentPath}.${idx}` : `${idx}`\n\n props.pathSymbolMap.set(childPath, child.symbol)\n\n idx += 1\n\n processChildrenRec({\n pathSymbolMap: props.pathSymbolMap,\n parentPath: childPath,\n children: child.children,\n parentKind: child.symbol.kind\n })\n })\n}\n\nfunction processPrimitive(props: {\n pathSymbolMap: Map<string, languages.DocumentSymbol>\n parentPath: string\n children: Map<string, OutlineModelValueInternal>\n parentKind: languages.SymbolKind\n}) {\n const child = props.children.get('0')\n\n if (child) {\n const childPath = props.parentPath ? `${props.parentPath}.${child.symbol.name}` : child?.symbol.name\n\n props.pathSymbolMap.set(childPath, child.symbol)\n }\n}\n","import { RefObject, useEffect } from 'react'\n\nimport * as monaco from 'monaco-editor'\n\nimport { InlineAction } from '../types/inline-actions'\nimport { PathSelector } from '../types/selectors'\nimport { getCodeLens } from '../utils/codelens-utils'\nimport { getOutlineModel, processOutlineModel } from '../utils/outline-model-to-path'\n\nexport function useCodeLenses<T>({\n editorRef,\n inlineActions\n}: {\n editorRef: RefObject<monaco.editor.IStandaloneCodeEditor | undefined | null>\n inlineActions?: { selectors: PathSelector[]; actions: InlineAction<T>[] }[]\n}): void {\n useEffect(() => {\n const disposable = monaco.languages.registerCodeLensProvider('yaml', {\n provideCodeLenses: async model => {\n const outlineModel = await getOutlineModel(model)\n const pathSymbolMap = processOutlineModel(outlineModel)\n\n const commandId = editorRef?.current?.addCommand(0, (_, { onClick, path, range, data }) => {\n onClick({ path, range, data })\n })\n\n if (!commandId) return\n\n const lenses = getCodeLens({ pathSymbolMap, inlineActions, commandId })\n\n return {\n lenses,\n dispose: () => undefined\n }\n }\n })\n\n return disposable.dispose\n }, [inlineActions, editorRef])\n}\n","import { RefObject, useEffect, useMemo, useState } from 'react'\n\nimport * as monaco from 'monaco-editor'\n\nimport { getOutlineModel, processOutlineModel } from '../utils/outline-model-to-path'\n\ntype UseDecoration = (arg: {\n editorRef?: RefObject<monaco.editor.IStandaloneCodeEditor>\n selection?: {\n path: string\n className: string\n revealInCenter?: boolean\n }\n}) => void\n\nexport const useDecoration: UseDecoration = ({ editorRef, selection }) => {\n const [range, setRange] = useState<monaco.IRange>()\n\n const computeRange = useMemo(\n () =>\n async (_editorRef?: RefObject<monaco.editor.IStandaloneCodeEditor>, path?: string, revealInCenter?: boolean) => {\n const model = editorRef?.current?.getModel()\n\n if (!model || !path) {\n return setRange(undefined)\n }\n\n const outlineModel = await getOutlineModel(model)\n const pathSymbolMap = processOutlineModel(outlineModel)\n const range = pathSymbolMap.get(path)?.range\n\n if (range) {\n setRange(range)\n\n if (revealInCenter) {\n editorRef?.current?.revealLineInCenter(range.startLineNumber)\n }\n }\n },\n []\n )\n\n useEffect(() => {\n if ('requestIdleCallback' in window) {\n const handle = requestIdleCallback(() => {\n computeRange(editorRef, selection?.path, selection?.revealInCenter)\n })\n return () => cancelIdleCallback(handle)\n }\n // fallback for safari\n else {\n const handle = setTimeout(() => {\n computeRange(editorRef, selection?.path, selection?.revealInCenter)\n }, 100)\n return () => clearTimeout(handle)\n }\n }, [selection?.path, selection?.revealInCenter, editorRef, computeRange])\n\n useEffect(() => {\n if (!range) return\n\n const decorations = editorRef?.current?.createDecorationsCollection([\n {\n // TODO: check why startColumn is set to \"end of row\"\n range: { ...range, startColumn: 1 },\n options: {\n isWholeLine: false,\n className: selection?.className\n }\n }\n ])\n\n return () => decorations?.clear()\n }, [range, editorRef, selection?.className])\n}\n","import { createContext, useCallback, useContext, useState } from 'react'\n\nimport type { editor } from 'monaco-editor'\n\nexport interface YamlEditorContextInterface {\n markers: editor.IMarker[]\n setMarkers: (markets: editor.IMarker[]) => void\n editor: editor.IStandaloneCodeEditor | null\n setEditor: (monacoEditor: editor.IStandaloneCodeEditor) => void\n updateCursorPosition: (position: { column: number; lineNumber: number }) => void\n}\n\nexport const YamlEditorContext = createContext<YamlEditorContextInterface>({\n markers: [],\n setMarkers: () => undefined,\n editor: null,\n setEditor: (_monacoEditor: editor.IStandaloneCodeEditor) => undefined,\n updateCursorPosition: (_position: { column: number; lineNumber: number }) => undefined\n})\n\nexport function YamlEditorContextProvider({\n children\n}: React.PropsWithChildren<React.HTMLAttributes<HTMLElement>>): React.ReactElement {\n const [markers, setMarkers] = useState<editor.IMarker[]>([])\n const [monacoEditor, setMonacoEditor] = useState<editor.IStandaloneCodeEditor | null>(null)\n\n const updateCursorPosition = useCallback(\n (position: { column: number; lineNumber: number }) => {\n monacoEditor?.setPosition(position)\n monacoEditor?.revealLineInCenterIfOutsideViewport(position.lineNumber)\n monacoEditor?.focus()\n },\n [monacoEditor]\n )\n\n return (\n <YamlEditorContext.Provider\n value={{\n markers,\n setMarkers,\n editor: monacoEditor,\n setEditor: setMonacoEditor,\n updateCursorPosition\n }}\n >\n {children}\n </YamlEditorContext.Provider>\n )\n}\n\nexport function useYamlEditorContext(): YamlEditorContextInterface {\n return useContext(YamlEditorContext)\n}\n","import { RefObject, useEffect } from 'react'\n\nimport * as monaco from 'monaco-editor'\n\nimport { useYamlEditorContext } from '../components/YamlProvider'\n\nexport type UseProblems = (arg: { monacoRef: RefObject<typeof monaco | undefined> }) => void\n\nexport const useProblems: UseProblems = ({ monacoRef }): void => {\n const { setMarkers } = useYamlEditorContext()\n\n useEffect(() => {\n let handle: monaco.IDisposable\n\n const timeoutHandle = setTimeout(() => {\n const editor = monacoRef.current?.editor\n\n if (!editor) return\n\n handle = editor.onDidChangeMarkers(([resource]) => {\n const markers = editor.getModelMarkers({ resource })\n setMarkers(markers)\n })\n }, 100)\n\n return () => {\n clearTimeout(timeoutHandle)\n handle?.dispose()\n }\n }, [monacoRef])\n}\n","import { Uri } from 'monaco-editor'\nimport { yamlDefaults } from 'monaco-yaml'\n\nlet isYamlMonacoConfigured = false\n\nexport function configureSchema(schemaConfig: any) {\n if (isYamlMonacoConfigured) return\n\n const config = {\n hover: true,\n completion: true,\n enableSchemaRequest: false,\n validate: true,\n schemas: [schemaConfig]\n }\n\n isYamlMonacoConfigured = true\n\n // NOTE: this is for monaco-editor@0.50.0 version\n // return configureMonacoYaml(monaco, config)\n\n yamlDefaults.setDiagnosticsOptions({ ...config })\n}\n\nexport const schemaIdToUrl = (id: string): string => {\n return Uri.parse(`file://${id}`).toString()\n}\n\nexport const schemaIdToUri = (id: string): Uri => {\n return Uri.parse(schemaIdToUrl(id))\n}\n","import { useEffect } from 'react'\n\nimport { configureSchema, schemaIdToUrl } from '../utils/schema-utils'\n\nexport type UseSchema = (arg: { schemaConfig?: { schema: any; uri: string }; instanceId: string }) => void\n\nexport const useSchema: UseSchema = (props): void => {\n const { schemaConfig, instanceId } = props\n\n useEffect(() => {\n if (schemaConfig?.schema) {\n configureSchema({\n // If YAML file is opened matching this glob\n fileMatch: [schemaIdToUrl(instanceId.toString())],\n ...schemaConfig\n })\n }\n }, [schemaConfig?.schema, instanceId])\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport Editor, { loader, Monaco, useMonaco } from '@monaco-editor/react'\nimport * as monaco from 'monaco-editor'\n\nimport { MonacoCommonDefaultOptions } from '../constants/monaco-common-default-options'\nimport { useCodeLenses } from '../hooks/useCodeLens'\nimport { useDecoration } from '../hooks/useDecoration'\nimport { useProblems } from '../hooks/useProblems'\nimport { useSchema } from '../hooks/useSchema'\nimport { useTheme } from '../hooks/useTheme'\nimport { InlineAction } from '../types/inline-actions'\nimport { PathSelector } from '../types/selectors'\nimport { ThemeDefinition } from '../types/themes'\nimport { schemaIdToUrl } from '../utils/schema-utils'\nimport { useYamlEditorContext } from './YamlProvider'\n\nloader.config({ monaco })\n\nexport interface YamlRevision {\n yaml: string\n revisionId?: number\n}\n\nconst options: monaco.editor.IStandaloneEditorConstructionOptions = {\n ...MonacoCommonDefaultOptions,\n folding: true\n}\n\nexport interface YamlEditorProps<T> {\n yamlRevision: YamlRevision\n onYamlRevisionChange: (yamlRevision: YamlRevision | undefined, ev: monaco.editor.IModelContentChangedEvent) => void\n schemaConfig?: { schema: any; uri: string }\n inlineActions?: { selectors: PathSelector[]; actions: InlineAction<T>[] }[]\n themeConfig?: { rootElementSelector?: string; defaultTheme?: string; themes?: ThemeDefinition[] }\n theme?: string\n options?: monaco.editor.IStandaloneEditorConstructionOptions\n selection?: {\n path: string\n className: string\n revealInCenter?: boolean\n }\n animateOnUpdate?: boolean\n onAnimateEnd?: () => void\n}\n\nexport const YamlEditor = function YamlEditor<T>(props: YamlEditorProps<T>): JSX.Element {\n const {\n yamlRevision,\n schemaConfig,\n inlineActions,\n themeConfig,\n onYamlRevisionChange,\n selection,\n theme: themeFromProps,\n options: userOptions,\n animateOnUpdate = false,\n onAnimateEnd\n } = props\n const monaco = useMonaco()\n const [instanceId] = useState('yaml')\n const { editor, setEditor } = useYamlEditorContext()\n\n const rootDivRef = useRef<HTMLDivElement | null>(null)\n\n const monacoRef = useRef<typeof monaco>()\n const currentRevisionRef = useRef<YamlRevision>({ yaml: '', revisionId: 0 })\n\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor | null>(null)\n const intervalIdRef = useRef<number | null>(null)\n\n const replaceYamlWithAnimation = useCallback(\n (yaml: string) => {\n const lines = yaml.split('\\n')\n const model = editorRef.current?.getModel()\n if (model) {\n editorRef.current?.pushUndoStop()\n model.setValue('')\n let index = 0\n intervalIdRef.current = window.setInterval(() => {\n if (index < lines.length) {\n if (monaco) {\n editorRef.current?.executeEdits('addLine', [\n {\n range: new monaco.Range(index + 1, 1, index + 1, 1),\n text: lines[index] + '\\n'\n }\n ])\n }\n index++\n } else {\n if (intervalIdRef.current) {\n clearInterval(intervalIdRef.current)\n onAnimateEnd?.()\n }\n }\n }, 100) // 100ms delay between each line\n editorRef.current?.pushUndoStop()\n }\n },\n [monaco]\n )\n\n useEffect(() => {\n return () => {\n if (intervalIdRef.current) {\n clearInterval(intervalIdRef.current)\n }\n }\n }, [])\n\n function handleEditorDidMount(editor: monaco.editor.IStandaloneCodeEditor, monaco: Monaco) {\n editorRef.current = editor\n monacoRef.current = monaco\n\n editor.setValue(yamlRevision.yaml)\n\n setEditor(editor)\n\n // NOTE: to prevent initial flickering (left line) we use opacity to show editor with delay\n setTimeout(() => {\n if (rootDivRef.current?.style) {\n rootDivRef.current.style.opacity = '1'\n }\n }, 50)\n }\n\n useEffect(() => {\n if (editorRef.current) {\n if (!yamlRevision.revisionId || yamlRevision.revisionId > Number(currentRevisionRef.current?.revisionId)) {\n // editorRef.current?.setValue(yamlRevision.yaml)\n\n const model = editorRef.current.getModel()\n if (model) {\n // editorRef.current.pushUndoStop()\n editorRef.current.executeEdits('edit', [\n {\n range: model.getFullModelRange(),\n text: animateOnUpdate ? '' : yamlRevision.yaml\n }\n ])\n // editorRef.current.pushUndoStop()\n if (animateOnUpdate) {\n replaceYamlWithAnimation(yamlRevision.yaml)\n }\n }\n }\n }\n }, [replaceYamlWithAnimation, yamlRevision, animateOnUpdate])\n\n useSchema({ schemaConfig, instanceId })\n\n useCodeLenses({ editorRef, inlineActions })\n\n const { theme } = useTheme({ monacoRef, themeConfig, editor, theme: themeFromProps })\n\n useProblems({ monacoRef })\n\n useDecoration({ editorRef, selection })\n\n const mergedOptions = useMemo(\n () => ({\n ...options,\n ...userOptions\n }),\n [userOptions]\n )\n\n return (\n <div style={{ width: '100%', height: '100%', opacity: 0 }} ref={rootDivRef}>\n <Editor\n onChange={(value, data) => {\n currentRevisionRef.current = { yaml: value ?? '', revisionId: data.versionId }\n onYamlRevisionChange({ ...currentRevisionRef.current }, data)\n }}\n language=\"yaml\"\n theme={theme}\n options={mergedOptions}\n path={schemaIdToUrl(instanceId)}\n onMount={handleEditorDidMount}\n />\n </div>\n )\n}\n"],"names":["getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","i","order2","n","test3","letter","f","require$$1","g","reactJsxRuntime_production_min","h","m","p","q","c","a","k","b","d","e","l","jsxRuntimeModule","require$$0","_defineProperty","obj","key","value","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread2","target","source","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arr","_n","_d","_e","_i","_s","err","o","minLen","_arrayLikeToArray","len","arr2","compose","_len","fns","_key","x","y","curry","fn","curried","_this","_len2","args","_key2","_len3","nextArgs","_key3","isObject","isEmpty","isFunction","property","validateChanges","initial","changes","errorHandler","field","validateSelector","selector","validateHandler","handler","_handler","validateInitial","throwError","errorMessages","type","validators","create","state","didUpdate","didStateUpdate","update","updateState","validate","getChanges","extractChanges","getState","setState","causedChanges","_handler$field","index","config","validateConfig","informAboutDeprecation","merge","CANCELATION_MESSAGE","makeCancelable","promise","hasCanceled_","wrappedPromise","resolve","reject","_state$create","config$1","_state$create2","globalConfig","_validators$config","monaco","init","_ref","isInitialized","wrapperPromise","storeMonacoInstance","injectScripts","getMonacoLoaderScript","configureLoader","script","createScript","src","_ref2","loaderScript","_ref3","require","error","__getMonacoInstance","_ref4","loader","le","v","ae","Y","Me","me","Z","$","Ee","r","t","E","K","ee","H","ye","Ce","xe","he","Re","ge","D","De","be","te","Oe","N","P","V","z","F","j","A","M","O","re","T","s","u","S","w","Se","I","_b","_a","L","oe","U","ne","_c","ke","ie","we","Te","Pe","Ie","ce","Le","He","ve","Ue","se","_","Ve","ue","C","Q","B","Ne","R","pe","X","W","G","J","We","fe","de","ze","Ft","MonacoCommonDefaultOptions","useTheme","props","themeConfig","editor","theme","defaultTheme","themeInternal","setThemeInternal","useState","useEffect","themeItem","createRandomString","length","chars","result","escapeSingleQuote","str","getMonacoEditorCss","instanceId","lineNumbersPosition","css","getMonacoEditorCommitCss","blameData","dateWidth","avatarSize","blameItem","avatarUrl","initials","avatarBackgroundCss","_f","lineNo","_h","_g","createCommitMessage","msg","commitMsgLength","ret","BLAME_MESSAGE_WIDTH","COMMIT_MESSAGE_LENGTH","DATE_WIDTH","AVATAR_SIZE","defaultOptions","BlameEditor","code","language","showSeparators","themeFromProps","height","options","blameDataRef","useRef","useMonaco","setEditor","lineNumbersDelta","setLineNumbersDelta","monacoRef","editorRef","setupBlameEditor","changeAccessor","domNode","decoratorItems","handleEditorDidMount","monacoEditorCss","useMemo","monacoEditorCommitInfoCss","scrollableEl","callback","mutationList","left","observer","lineNumbersCss","clipSelection","mergedOptions","jsxs","Fragment","jsx","Editor","CodeEditor","codeRevision","onCodeRevisionChange","className","currentRevisionRef","useCallback","editorVal","model","data","CodeDiffEditor","original","modified","DiffEditor","SelectorType","getCodeLens","pathSymbolMap","inlineActions","commandId","pathSymbolMapObj","lenses","inlineAction","actions","partRegexp","candidateRelativePaths","path","pathSymbol","symbol","range","action","commandArg","_MonacoGlobals","__publicField","MonacoGlobals","getOutlineModel","monacoGlobals","documentSymbolProvider","processOutlineModel","outlineModel","processChildrenRec","languages","processObject","processArray","processPrimitive","child","childPath","idx","useCodeLenses","onClick","useDecoration","selection","setRange","computeRange","_editorRef","revealInCenter","handle","decorations","YamlEditorContext","createContext","_monacoEditor","_position","YamlEditorContextProvider","children","markers","setMarkers","monacoEditor","setMonacoEditor","updateCursorPosition","position","useYamlEditorContext","useContext","useProblems","timeoutHandle","resource","isYamlMonacoConfigured","configureSchema","schemaConfig","yamlDefaults","schemaIdToUrl","id","Uri","useSchema","YamlEditor","yamlRevision","onYamlRevisionChange","userOptions","animateOnUpdate","onAnimateEnd","rootDivRef","intervalIdRef","replaceYamlWithAnimation","yaml","lines"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13]}
|