@harnessio/yaml-editor 0.7.0 → 0.9.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.
@@ -7,7 +7,7 @@ export interface YamlRevision {
7
7
  yaml: string;
8
8
  revisionId?: number;
9
9
  }
10
- export interface YamlEditorProps {
10
+ export interface YamlEditorProps<T> {
11
11
  yamlRevision: YamlRevision;
12
12
  onYamlRevisionChange: (yamlRevision: YamlRevision | undefined, ev: monaco.editor.IModelContentChangedEvent) => void;
13
13
  schemaConfig?: {
@@ -16,7 +16,7 @@ export interface YamlEditorProps {
16
16
  };
17
17
  inlineActions?: {
18
18
  selectors: PathSelector[];
19
- actions: InlineAction[];
19
+ actions: InlineAction<T>[];
20
20
  }[];
21
21
  themeConfig?: {
22
22
  rootElementSelector: string;
@@ -24,4 +24,4 @@ export interface YamlEditorProps {
24
24
  themes?: ThemeDefinition[];
25
25
  };
26
26
  }
27
- export declare function YamlEditor(props: YamlEditorProps): JSX.Element;
27
+ export declare function YamlEditor<T>(props: YamlEditorProps<T>): JSX.Element;
@@ -3,8 +3,8 @@ import type { editor } from 'monaco-editor';
3
3
  export interface YamlEditorContextInterface {
4
4
  markers: editor.IMarker[];
5
5
  setMarkers: (markets: editor.IMarker[]) => void;
6
- editor: editor.IEditor | null;
7
- setEditor: (monacoEditor: editor.ICodeEditor) => void;
6
+ editor: editor.IStandaloneCodeEditor | null;
7
+ setEditor: (monacoEditor: editor.IStandaloneCodeEditor) => void;
8
8
  updateCursorPosition: (position: {
9
9
  column: number;
10
10
  lineNumber: number;
@@ -2,11 +2,10 @@ import { RefObject } from 'react';
2
2
  import * as monaco from 'monaco-editor';
3
3
  import { PathSelector } from '../types/selectors';
4
4
  import { InlineAction } from '../types/inline-actions';
5
- export type UseCodeLenses = (arg: {
6
- monacoRef: RefObject<typeof monaco | undefined>;
5
+ export declare function useCodeLenses<T>({ editorRef, inlineActions }: {
6
+ editorRef: RefObject<monaco.editor.IStandaloneCodeEditor | undefined | null>;
7
7
  inlineActions?: {
8
8
  selectors: PathSelector[];
9
- actions: InlineAction[];
9
+ actions: InlineAction<T>[];
10
10
  }[];
11
- }) => void;
12
- export declare const useCodeLenses: UseCodeLenses;
11
+ }): void;
@@ -1,12 +1,17 @@
1
- import * as monaco from "monaco-editor";
2
- import { PathSelector } from "../types/selectors";
3
- import { InlineAction } from "../types/inline-actions";
4
- export interface GetCodeLensProps {
1
+ import * as monaco from 'monaco-editor';
2
+ import { PathSelector } from '../types/selectors';
3
+ import { InlineAction } from '../types/inline-actions';
4
+ export interface CommandArg<T> extends Pick<InlineAction<T>, 'onClick' | 'data'> {
5
+ range: monaco.IRange;
6
+ symbols: monaco.languages.DocumentSymbol[];
7
+ path: string;
8
+ }
9
+ export interface GetCodeLensProps<T> {
5
10
  pathSymbolMap: Map<string, monaco.languages.DocumentSymbol>;
6
11
  inlineActions?: {
7
12
  selectors: PathSelector[];
8
- actions: InlineAction[];
13
+ actions: InlineAction<T>[];
9
14
  }[];
10
15
  commandId: string | any;
11
16
  }
12
- export declare function getCodeLens(props: GetCodeLensProps): monaco.languages.CodeLens[];
17
+ export declare function getCodeLens<T>(props: GetCodeLensProps<T>): monaco.languages.CodeLens[];
package/dist/index.d.ts CHANGED
@@ -6,3 +6,11 @@ export { YamlEditor };
6
6
  export type { YamlEditorProps };
7
7
  import { ThemeDefinition } from './types/themes';
8
8
  export type { ThemeDefinition };
9
+ import { MonacoGlobals } from './utils/monaco-globals';
10
+ export { MonacoGlobals };
11
+ import { InlineAction } from './types/inline-actions';
12
+ export type { InlineAction };
13
+ import { SelectorType } from './types/selectors';
14
+ export { SelectorType };
15
+ import type { ContainsPathSelector, PathSelector } from './types/selectors';
16
+ export type { ContainsPathSelector, PathSelector };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see index.js.LICENSE.txt */
2
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("monaco-editor"),require("monaco-yaml")):"function"==typeof define&&define.amd?define(["react","monaco-editor","monaco-yaml"],t):"object"==typeof exports?exports.YamlEditor=t(require("react"),require("monaco-editor"),require("monaco-yaml")):e.YamlEditor=t(e.react,e["monaco-editor"],e["monaco-yaml"])}(self,((e,t,r)=>(()=>{"use strict";var n={921:(e,t,r)=>{var n=r(155),o=Symbol.for("react.element"),i=Symbol.for("react.fragment"),c=Object.prototype.hasOwnProperty,u=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};t.Fragment=i,t.jsx=function(e,t,r){var n,i={},l=null,s=null;for(n in void 0!==r&&(l=""+r),void 0!==t.key&&(l=""+t.key),void 0!==t.ref&&(s=t.ref),t)c.call(t,n)&&!a.hasOwnProperty(n)&&(i[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===i[n]&&(i[n]=t[n]);return{$$typeof:o,type:e,key:l,ref:s,props:i,_owner:u.current}}},723:(e,t,r)=>{e.exports=r(921)},839:e=>{e.exports=t},449:e=>{e.exports=r},155:t=>{t.exports=e}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return n[e](r,r.exports,i),r.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var c={};i.r(c),i.d(c,{YamlEditor:()=>je,YamlEditorContext:()=>f,YamlEditorContextProvider:()=>d,useYamlEditorContext:()=>p});var u=i(723),a=i(155),l=i.n(a),s=function(){return s=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},s.apply(this,arguments)},f=l().createContext({markers:[],setMarkers:function(){},editor:null,setEditor:function(e){},updateCursorPosition:function(e){}});function d(e){var t=e.children,r=(0,a.useState)([]),n=r[0],o=r[1],i=(0,a.useState)(null),c=i[0],l=i[1],d=(0,a.useCallback)((function(e){null==c||c.setPosition(e),null==c||c.focus()}),[c]);return(0,u.jsx)(f.Provider,s({value:{markers:n,setMarkers:o,editor:c,setEditor:l,updateCursorPosition:d}},{children:t}))}function p(){return l().useContext(f)}var g=i(839);function h(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function v(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach((function(t){h(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function O(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function j(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?O(Object(r),!0).forEach((function(t){b(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):O(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function w(e){return function t(){for(var r=this,n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return o.length>=e.length?e.apply(this,o):function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];return t.apply(r,[].concat(o,n))}}}function E(e){return{}.toString.call(e).includes("Object")}function M(e){return"function"==typeof e}var S=w((function(e,t){throw new Error(e[t]||e.default)}))({initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"}),P=function(e,t){return E(t)||S("changeType"),Object.keys(t).some((function(t){return r=e,n=t,!Object.prototype.hasOwnProperty.call(r,n);var r,n}))&&S("changeField"),t},R=function(e){M(e)||S("selectorType")},k=function(e){M(e)||E(e)||S("handlerType"),E(e)&&Object.values(e).some((function(e){return!M(e)}))&&S("handlersType")},x=function(e){var t;e||S("initialIsRequired"),E(e)||S("initialType"),t=e,Object.keys(t).length||S("initialContent")};function C(e,t){return M(t)?t(e.current):t}function I(e,t){return e.current=j(j({},e.current),t),t}function T(e,t,r){return M(t)?t(e.current):Object.keys(r).forEach((function(r){var n;return null===(n=t[r])||void 0===n?void 0:n.call(t,e.current[r])})),r}const _=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};x(e),k(t);var r={current:e},n=w(T)(r,t),o=w(I)(r),i=w(P)(e),c=w(C)(r);return[function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(e){return e};return R(e),e(r.current)},function(e){!function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){return t.reduceRight((function(e,t){return t(e)}),e)}}(n,o,i,c)(e)}]};var L,D={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",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 "},q=(L=function(e,t){throw new Error(e[t]||e.default)},function e(){for(var t=this,r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return n.length>=L.length?L.apply(this,n):function(){for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return e.apply(t,[].concat(n,o))}})(D);const A={config:function(e){return e||q("configIsRequired"),t=e,{}.toString.call(t).includes("Object")||q("configType"),e.urls?(console.warn(D.deprecation),{paths:{vs:e.urls.monacoBase}}):e;var t}},V=function e(t,r){return Object.keys(r).forEach((function(n){r[n]instanceof Object&&t[n]&&Object.assign(r[n],e(t[n],r[n]))})),v(v({},t),r)};var N={type:"cancelation",msg:"operation is manually canceled"};const Y=function(e){var t=!1,r=new Promise((function(r,n){e.then((function(e){return t?n(N):r(e)})),e.catch(n)}));return r.cancel=function(){return t=!0},r};var F,z=function(e){if(Array.isArray(e))return e}(F=_({config:{paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}},isInitialized:!1,resolve:null,reject:null,monaco:null}))||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var t=[],r=!0,n=!1,o=void 0;try{for(var i,c=e[Symbol.iterator]();!(r=(i=c.next()).done)&&(t.push(i.value),2!==t.length);r=!0);}catch(e){n=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(n)throw o}}return t}}(F)||function(e){if(e){if("string"==typeof e)return y(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?y(e,2):void 0}}(F)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),U=z[0],B=z[1];function $(e){return document.body.appendChild(e)}function W(e){var t,r,n=U((function(e){return{config:e.config,reject:e.reject}})),o=(t="".concat(n.config.paths.vs,"/loader.js"),r=document.createElement("script"),t&&(r.src=t),r);return o.onload=function(){return e()},o.onerror=n.reject,o}function G(){var e=U((function(e){return{config:e.config,resolve:e.resolve,reject:e.reject}})),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],(function(t){H(t),e.resolve(t)}),(function(t){e.reject(t)}))}function H(e){U().monaco||B({monaco:e})}var J=new Promise((function(e,t){return B({resolve:e,reject:t})})),K={config:function(e){var t=A.config(e),r=t.monaco,n=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(t,["monaco"]);B((function(e){return{config:V(e.config,n),monaco:r}}))},init:function(){var e=U((function(e){return{monaco:e.monaco,isInitialized:e.isInitialized,resolve:e.resolve}}));if(!e.isInitialized){if(B({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),Y(J);if(window.monaco&&window.monaco.editor)return H(window.monaco),e.resolve(window.monaco),Y(J);!function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){return t.reduceRight((function(e,t){return t(e)}),e)}}($,W)(G)}return Y(J)},__getMonacoInstance:function(){return U((function(e){return e.monaco}))}};const Q=K;var X={display:"flex",position:"relative",textAlign:"initial"},Z={width:"100%"},ee={display:"none"},te={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},re=function({children:e}){return a.createElement("div",{style:te.container},e)},ne=(0,a.memo)((function({width:e,height:t,isEditorReady:r,loading:n,_ref:o,className:i,wrapperProps:c}){return a.createElement("section",{style:{...X,width:e,height:t},...c},!r&&a.createElement(re,null,n),a.createElement("div",{ref:o,style:{...Z,...!r&&ee},className:i}))})),oe=function(e){(0,a.useEffect)(e,[])},ie=function(e,t,r=!0){let n=(0,a.useRef)(!0);(0,a.useEffect)(n.current||!r?()=>{n.current=!1}:e,t)};function ce(){}function ue(e,t,r,n){return function(e,t){return e.editor.getModel(ae(e,t))}(e,n)||function(e,t,r,n){return e.editor.createModel(t,r,n?ae(e,n):void 0)}(e,t,r,n)}function ae(e,t){return e.Uri.parse(t)}(0,a.memo)((function({original:e,modified:t,language:r,originalLanguage:n,modifiedLanguage:o,originalModelPath:i,modifiedModelPath:c,keepCurrentOriginalModel:u=!1,keepCurrentModifiedModel:l=!1,theme:s="light",loading:f="Loading...",options:d={},height:p="100%",width:g="100%",className:h,wrapperProps:m={},beforeMount:v=ce,onMount:y=ce}){let[b,O]=(0,a.useState)(!1),[j,w]=(0,a.useState)(!0),E=(0,a.useRef)(null),M=(0,a.useRef)(null),S=(0,a.useRef)(null),P=(0,a.useRef)(y),R=(0,a.useRef)(v),k=(0,a.useRef)(!1);oe((()=>{let e=Q.init();return e.then((e=>(M.current=e)&&w(!1))).catch((e=>"cancelation"!==e?.type&&console.error("Monaco initialization: error:",e))),()=>E.current?function(){let e=E.current?.getModel();u||e?.original?.dispose(),l||e?.modified?.dispose(),E.current?.dispose()}():e.cancel()})),ie((()=>{if(E.current&&M.current){let t=E.current.getOriginalEditor(),o=ue(M.current,e||"",n||r||"text",i||"");o!==t.getModel()&&t.setModel(o)}}),[i],b),ie((()=>{if(E.current&&M.current){let e=E.current.getModifiedEditor(),n=ue(M.current,t||"",o||r||"text",c||"");n!==e.getModel()&&e.setModel(n)}}),[c],b),ie((()=>{let e=E.current.getModifiedEditor();e.getOption(M.current.editor.EditorOption.readOnly)?e.setValue(t||""):t!==e.getValue()&&(e.executeEdits("",[{range:e.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),e.pushUndoStop())}),[t],b),ie((()=>{E.current?.getModel()?.original.setValue(e||"")}),[e],b),ie((()=>{let{original:e,modified:t}=E.current.getModel();M.current.editor.setModelLanguage(e,n||r||"text"),M.current.editor.setModelLanguage(t,o||r||"text")}),[r,n,o],b),ie((()=>{M.current?.editor.setTheme(s)}),[s],b),ie((()=>{E.current?.updateOptions(d)}),[d],b);let x=(0,a.useCallback)((()=>{if(!M.current)return;R.current(M.current);let u=ue(M.current,e||"",n||r||"text",i||""),a=ue(M.current,t||"",o||r||"text",c||"");E.current?.setModel({original:u,modified:a})}),[r,t,o,e,n,i,c]),C=(0,a.useCallback)((()=>{!k.current&&S.current&&(E.current=M.current.editor.createDiffEditor(S.current,{automaticLayout:!0,...d}),x(),M.current?.editor.setTheme(s),O(!0),k.current=!0)}),[d,s,x]);return(0,a.useEffect)((()=>{b&&P.current(E.current,M.current)}),[b]),(0,a.useEffect)((()=>{!j&&!b&&C()}),[j,b,C]),a.createElement(ne,{width:g,height:p,isEditorReady:b,loading:f,_ref:S,className:h,wrapperProps:m})}));var le=function(){let[e,t]=(0,a.useState)(Q.__getMonacoInstance());return oe((()=>{let r;return e||(r=Q.init(),r.then((e=>{t(e)}))),()=>r?.cancel()})),e},se=new Map,fe=(0,a.memo)((function({defaultValue:e,defaultLanguage:t,defaultPath:r,value:n,language:o,path:i,theme:c="light",line:u,loading:l="Loading...",options:s={},overrideServices:f={},saveViewState:d=!0,keepCurrentModel:p=!1,width:g="100%",height:h="100%",className:m,wrapperProps:v={},beforeMount:y=ce,onMount:b=ce,onChange:O,onValidate:j=ce}){let[w,E]=(0,a.useState)(!1),[M,S]=(0,a.useState)(!0),P=(0,a.useRef)(null),R=(0,a.useRef)(null),k=(0,a.useRef)(null),x=(0,a.useRef)(b),C=(0,a.useRef)(y),I=(0,a.useRef)(),T=(0,a.useRef)(n),_=function(e){let t=(0,a.useRef)();return(0,a.useEffect)((()=>{t.current=e}),[e]),t.current}(i),L=(0,a.useRef)(!1),D=(0,a.useRef)(!1);oe((()=>{let e=Q.init();return e.then((e=>(P.current=e)&&S(!1))).catch((e=>"cancelation"!==e?.type&&console.error("Monaco initialization: error:",e))),()=>R.current?(I.current?.dispose(),p?d&&se.set(i,R.current.saveViewState()):R.current.getModel()?.dispose(),void R.current.dispose()):e.cancel()})),ie((()=>{let c=ue(P.current,e||n||"",t||o||"",i||r||"");c!==R.current?.getModel()&&(d&&se.set(_,R.current?.saveViewState()),R.current?.setModel(c),d&&R.current?.restoreViewState(se.get(i)))}),[i],w),ie((()=>{R.current?.updateOptions(s)}),[s],w),ie((()=>{!R.current||void 0===n||(R.current.getOption(P.current.editor.EditorOption.readOnly)?R.current.setValue(n):n!==R.current.getValue()&&(D.current=!0,R.current.executeEdits("",[{range:R.current.getModel().getFullModelRange(),text:n,forceMoveMarkers:!0}]),R.current.pushUndoStop(),D.current=!1))}),[n],w),ie((()=>{let e=R.current?.getModel();e&&o&&P.current?.editor.setModelLanguage(e,o)}),[o],w),ie((()=>{void 0!==u&&R.current?.revealLine(u)}),[u],w),ie((()=>{P.current?.editor.setTheme(c)}),[c],w);let q=(0,a.useCallback)((()=>{if(k.current&&P.current&&!L.current){C.current(P.current);let a=i||r,l=ue(P.current,n||e||"",t||o||"",a||"");R.current=P.current?.editor.create(k.current,{model:l,automaticLayout:!0,...s},f),d&&R.current.restoreViewState(se.get(a)),P.current.editor.setTheme(c),void 0!==u&&R.current.revealLine(u),E(!0),L.current=!0}}),[e,t,r,n,o,i,s,f,d,c,u]);return(0,a.useEffect)((()=>{w&&x.current(R.current,P.current)}),[w]),(0,a.useEffect)((()=>{!M&&!w&&q()}),[M,w,q]),T.current=n,(0,a.useEffect)((()=>{w&&O&&(I.current?.dispose(),I.current=R.current?.onDidChangeModelContent((e=>{D.current||O(R.current.getValue(),e)})))}),[w,O]),(0,a.useEffect)((()=>{if(w){let e=P.current.editor.onDidChangeMarkers((e=>{let t=R.current.getModel()?.uri;if(t&&e.find((e=>e.path===t.path))){let e=P.current.editor.getModelMarkers({resource:t});j?.(e)}}));return()=>{e?.dispose()}}return()=>{}}),[w,j]),a.createElement(ne,{width:g,height:h,isEditorReady:w,loading:l,_ref:k,className:m,wrapperProps:v})})),de=function(e){var t=e.themeConfig,r=e.editor,n=null!=t?t:{},o=(n.rootElementSelector,n.defaultTheme),i=(0,a.useState)(null!=o?o:"vs-dark"),c=i[0],u=i[1];return(0,a.useEffect)((function(){var e;null===(e=null==t?void 0:t.themes)||void 0===e||e.forEach((function(e){g.editor.defineTheme(e.themeName,e.themeData)}))}),[g]),(0,a.useEffect)((function(){if(g.editor&&(null==t?void 0:t.rootElementSelector)){var e=document.querySelector(t.rootElementSelector);if(e){var r=new MutationObserver((function(){var t=e.classList.contains("harness-dark")?"harness-dark":"harness-light";if(c!==t){u(t);var r=g.editor;null==r||r.setTheme(t)}}));return r.observe(e,{attributes:!0,childList:!1,subtree:!1}),function(){r.disconnect()}}}}),[r]),{theme:c}},pe=i(449),ge=!1,he=function(e){return g.Uri.parse("file://".concat(e)).toString()},me=function(){return me=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},me.apply(this,arguments)},ve=function(e){var t=e.schemaConfig,r=e.instanceId;(0,a.useEffect)((function(){(null==t?void 0:t.schema)&&function(e){if(!ge){var t={hover:!0,completion:!0,enableSchemaRequest:!1,validate:!0,schemas:[e]};ge=!0,(0,pe.configureMonacoYaml)(g,t)}}(me({fileMatch:[he(r.toString())]},t))}),[null==t?void 0:t.schema,r])},ye=function(e){var t=e.monacoRef,r=p().setMarkers;(0,a.useEffect)((function(){var e,n=setTimeout((function(){var n,o=null===(n=t.current)||void 0===n?void 0:n.editor;o&&(e=o.onDidChangeMarkers((function(e){var t=e[0],n=o.getModelMarkers({resource:t});r(n)})))}),100);return function(){clearTimeout(n),null==e||e.dispose()}}),[t])},be=function(){return be=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},be.apply(this,arguments)};Q.config({monaco:g});var Oe={selectOnLineNumbers:!0};function je(e){var t=e.yamlRevision,r=e.schemaConfig,n=(e.inlineActions,e.themeConfig),o=e.onYamlRevisionChange,i=(le(),(0,a.useState)("yaml")[0]),c=p(),l=c.editor,s=c.setEditor,f=(0,a.useRef)(),d=(0,a.useRef)({yaml:"",revisionId:0}),g=(0,a.useRef)(null);(0,a.useEffect)((function(){var e,r;g.current&&(!t.revisionId||t.revisionId>(null===(e=d.current)||void 0===e?void 0:e.revisionId))&&(null===(r=g.current)||void 0===r||r.setValue(t.yaml))}),[t,g.current]),ve({schemaConfig:r,instanceId:i});var h=de({monacoRef:f,themeConfig:n,editor:l}).theme;return ye({monacoRef:f}),(0,u.jsx)(u.Fragment,{children:(0,u.jsx)(fe,{onChange:function(e,t){d.current={yaml:null!=e?e:"",revisionId:t.versionId},o(be({},d.current),t)},language:"yaml",theme:h,options:Oe,path:he(i),onMount:function(e,r){g.current=e,f.current=r,e.setValue(t.yaml),s(e)}})})}return c})()));
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("monaco-editor"),require("monaco-yaml")):"function"==typeof define&&define.amd?define(["react","monaco-editor","monaco-yaml"],t):"object"==typeof exports?exports.YamlEditor=t(require("react"),require("monaco-editor"),require("monaco-yaml")):e.YamlEditor=t(e.react,e["monaco-editor"],e["monaco-yaml"])}(self,((e,t,n)=>(()=>{"use strict";var r={921:(e,t,n)=>{var r=n(155),o=Symbol.for("react.element"),i=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,c=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,u={key:!0,ref:!0,__self:!0,__source:!0};t.Fragment=i,t.jsx=function(e,t,n){var r,i={},l=null,s=null;for(r in void 0!==n&&(l=""+n),void 0!==t.key&&(l=""+t.key),void 0!==t.ref&&(s=t.ref),t)a.call(t,r)&&!u.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===i[r]&&(i[r]=t[r]);return{$$typeof:o,type:e,key:l,ref:s,props:i,_owner:c.current}}},723:(e,t,n)=>{e.exports=n(921)},839:e=>{e.exports=t},449:e=>{e.exports=n},155:t=>{t.exports=e}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var n=o[e]={exports:{}};return r[e](n,n.exports,i),n.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};i.r(a),i.d(a,{MonacoGlobals:()=>we,SelectorType:()=>le,YamlEditor:()=>Ie,YamlEditorContext:()=>f,YamlEditorContextProvider:()=>d,useYamlEditorContext:()=>p});var c=i(723),u=i(155),l=i.n(u),s=function(){return s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},s.apply(this,arguments)},f=l().createContext({markers:[],setMarkers:function(){},editor:null,setEditor:function(e){},updateCursorPosition:function(e){}});function d(e){var t=e.children,n=(0,u.useState)([]),r=n[0],o=n[1],i=(0,u.useState)(null),a=i[0],l=i[1],d=(0,u.useCallback)((function(e){null==a||a.setPosition(e),null==a||a.focus()}),[a]);return(0,c.jsx)(f.Provider,s({value:{markers:r,setMarkers:o,editor:a,setEditor:l,updateCursorPosition:d}},{children:t}))}function p(){return l().useContext(f)}var h=i(839);function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function b(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?w(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function j(e){return function t(){for(var n=this,r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return o.length>=e.length?e.apply(this,o):function(){for(var e=arguments.length,r=new Array(e),i=0;i<e;i++)r[i]=arguments[i];return t.apply(n,[].concat(o,r))}}}function M(e){return{}.toString.call(e).includes("Object")}function E(e){return"function"==typeof e}var S=j((function(e,t){throw new Error(e[t]||e.default)}))({initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"}),P=function(e,t){return M(t)||S("changeType"),Object.keys(t).some((function(t){return n=e,r=t,!Object.prototype.hasOwnProperty.call(n,r);var n,r}))&&S("changeField"),t},k=function(e){E(e)||S("selectorType")},x=function(e){E(e)||M(e)||S("handlerType"),M(e)&&Object.values(e).some((function(e){return!E(e)}))&&S("handlersType")},R=function(e){var t;e||S("initialIsRequired"),M(e)||S("initialType"),t=e,Object.keys(t).length||S("initialContent")};function C(e,t){return E(t)?t(e.current):t}function I(e,t){return e.current=O(O({},e.current),t),t}function T(e,t,n){return E(t)?t(e.current):Object.keys(n).forEach((function(n){var r;return null===(r=t[n])||void 0===r?void 0:r.call(t,e.current[n])})),n}const _=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};R(e),x(t);var n={current:e},r=j(T)(n,t),o=j(I)(n),i=j(P)(e),a=j(C)(n);return[function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(e){return e};return k(e),e(n.current)},function(e){!function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return t.reduceRight((function(e,t){return t(e)}),e)}}(r,o,i,a)(e)}]};var L,A={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",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 "},D=(L=function(e,t){throw new Error(e[t]||e.default)},function e(){for(var t=this,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return r.length>=L.length?L.apply(this,r):function(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return e.apply(t,[].concat(r,o))}})(A);const q={config:function(e){return e||D("configIsRequired"),t=e,{}.toString.call(t).includes("Object")||D("configType"),e.urls?(console.warn(A.deprecation),{paths:{vs:e.urls.monacoBase}}):e;var t}},V=function e(t,n){return Object.keys(n).forEach((function(r){n[r]instanceof Object&&t[r]&&Object.assign(n[r],e(t[r],n[r]))})),y(y({},t),n)};var N={type:"cancelation",msg:"operation is manually canceled"};const Y=function(e){var t=!1,n=new Promise((function(n,r){e.then((function(e){return t?r(N):n(e)})),e.catch(r)}));return n.cancel=function(){return t=!0},n};var F,K=function(e){if(Array.isArray(e))return e}(F=_({config:{paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}},isInitialized:!1,resolve:null,reject:null,monaco:null}))||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var t=[],n=!0,r=!1,o=void 0;try{for(var i,a=e[Symbol.iterator]();!(n=(i=a.next()).done)&&(t.push(i.value),2!==t.length);n=!0);}catch(e){r=!0,o=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw o}}return t}}(F)||function(e){if(e){if("string"==typeof e)return v(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?v(e,2):void 0}}(F)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),z=K[0],U=K[1];function B(e){return document.body.appendChild(e)}function G(e){var t,n,r=z((function(e){return{config:e.config,reject:e.reject}})),o=(t="".concat(r.config.paths.vs,"/loader.js"),n=document.createElement("script"),t&&(n.src=t),n);return o.onload=function(){return e()},o.onerror=r.reject,o}function $(){var e=z((function(e){return{config:e.config,resolve:e.resolve,reject:e.reject}})),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],(function(t){W(t),e.resolve(t)}),(function(t){e.reject(t)}))}function W(e){z().monaco||U({monaco:e})}var H=new Promise((function(e,t){return U({resolve:e,reject:t})})),J={config:function(e){var t=q.config(e),n=t.monaco,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(t,["monaco"]);U((function(e){return{config:V(e.config,r),monaco:n}}))},init:function(){var e=z((function(e){return{monaco:e.monaco,isInitialized:e.isInitialized,resolve:e.resolve}}));if(!e.isInitialized){if(U({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),Y(H);if(window.monaco&&window.monaco.editor)return W(window.monaco),e.resolve(window.monaco),Y(H);!function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return t.reduceRight((function(e,t){return t(e)}),e)}}(B,G)($)}return Y(H)},__getMonacoInstance:function(){return z((function(e){return e.monaco}))}};const Q=J;var X={display:"flex",position:"relative",textAlign:"initial"},Z={width:"100%"},ee={display:"none"},te={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},ne=function({children:e}){return u.createElement("div",{style:te.container},e)},re=(0,u.memo)((function({width:e,height:t,isEditorReady:n,loading:r,_ref:o,className:i,wrapperProps:a}){return u.createElement("section",{style:{...X,width:e,height:t},...a},!n&&u.createElement(ne,null,r),u.createElement("div",{ref:o,style:{...Z,...!n&&ee},className:i}))})),oe=function(e){(0,u.useEffect)(e,[])},ie=function(e,t,n=!0){let r=(0,u.useRef)(!0);(0,u.useEffect)(r.current||!n?()=>{r.current=!1}:e,t)};function ae(){}function ce(e,t,n,r){return function(e,t){return e.editor.getModel(ue(e,t))}(e,r)||function(e,t,n,r){return e.editor.createModel(t,n,r?ue(e,r):void 0)}(e,t,n,r)}function ue(e,t){return e.Uri.parse(t)}(0,u.memo)((function({original:e,modified:t,language:n,originalLanguage:r,modifiedLanguage:o,originalModelPath:i,modifiedModelPath:a,keepCurrentOriginalModel:c=!1,keepCurrentModifiedModel:l=!1,theme:s="light",loading:f="Loading...",options:d={},height:p="100%",width:h="100%",className:g,wrapperProps:m={},beforeMount:y=ae,onMount:v=ae}){let[b,w]=(0,u.useState)(!1),[O,j]=(0,u.useState)(!0),M=(0,u.useRef)(null),E=(0,u.useRef)(null),S=(0,u.useRef)(null),P=(0,u.useRef)(v),k=(0,u.useRef)(y),x=(0,u.useRef)(!1);oe((()=>{let e=Q.init();return e.then((e=>(E.current=e)&&j(!1))).catch((e=>"cancelation"!==e?.type&&console.error("Monaco initialization: error:",e))),()=>M.current?function(){let e=M.current?.getModel();c||e?.original?.dispose(),l||e?.modified?.dispose(),M.current?.dispose()}():e.cancel()})),ie((()=>{if(M.current&&E.current){let t=M.current.getOriginalEditor(),o=ce(E.current,e||"",r||n||"text",i||"");o!==t.getModel()&&t.setModel(o)}}),[i],b),ie((()=>{if(M.current&&E.current){let e=M.current.getModifiedEditor(),r=ce(E.current,t||"",o||n||"text",a||"");r!==e.getModel()&&e.setModel(r)}}),[a],b),ie((()=>{let e=M.current.getModifiedEditor();e.getOption(E.current.editor.EditorOption.readOnly)?e.setValue(t||""):t!==e.getValue()&&(e.executeEdits("",[{range:e.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),e.pushUndoStop())}),[t],b),ie((()=>{M.current?.getModel()?.original.setValue(e||"")}),[e],b),ie((()=>{let{original:e,modified:t}=M.current.getModel();E.current.editor.setModelLanguage(e,r||n||"text"),E.current.editor.setModelLanguage(t,o||n||"text")}),[n,r,o],b),ie((()=>{E.current?.editor.setTheme(s)}),[s],b),ie((()=>{M.current?.updateOptions(d)}),[d],b);let R=(0,u.useCallback)((()=>{if(!E.current)return;k.current(E.current);let c=ce(E.current,e||"",r||n||"text",i||""),u=ce(E.current,t||"",o||n||"text",a||"");M.current?.setModel({original:c,modified:u})}),[n,t,o,e,r,i,a]),C=(0,u.useCallback)((()=>{!x.current&&S.current&&(M.current=E.current.editor.createDiffEditor(S.current,{automaticLayout:!0,...d}),R(),E.current?.editor.setTheme(s),w(!0),x.current=!0)}),[d,s,R]);return(0,u.useEffect)((()=>{b&&P.current(M.current,E.current)}),[b]),(0,u.useEffect)((()=>{!O&&!b&&C()}),[O,b,C]),u.createElement(re,{width:h,height:p,isEditorReady:b,loading:f,_ref:S,className:g,wrapperProps:m})}));var le,se=function(){let[e,t]=(0,u.useState)(Q.__getMonacoInstance());return oe((()=>{let n;return e||(n=Q.init(),n.then((e=>{t(e)}))),()=>n?.cancel()})),e},fe=new Map,de=(0,u.memo)((function({defaultValue:e,defaultLanguage:t,defaultPath:n,value:r,language:o,path:i,theme:a="light",line:c,loading:l="Loading...",options:s={},overrideServices:f={},saveViewState:d=!0,keepCurrentModel:p=!1,width:h="100%",height:g="100%",className:m,wrapperProps:y={},beforeMount:v=ae,onMount:b=ae,onChange:w,onValidate:O=ae}){let[j,M]=(0,u.useState)(!1),[E,S]=(0,u.useState)(!0),P=(0,u.useRef)(null),k=(0,u.useRef)(null),x=(0,u.useRef)(null),R=(0,u.useRef)(b),C=(0,u.useRef)(v),I=(0,u.useRef)(),T=(0,u.useRef)(r),_=function(e){let t=(0,u.useRef)();return(0,u.useEffect)((()=>{t.current=e}),[e]),t.current}(i),L=(0,u.useRef)(!1),A=(0,u.useRef)(!1);oe((()=>{let e=Q.init();return e.then((e=>(P.current=e)&&S(!1))).catch((e=>"cancelation"!==e?.type&&console.error("Monaco initialization: error:",e))),()=>k.current?(I.current?.dispose(),p?d&&fe.set(i,k.current.saveViewState()):k.current.getModel()?.dispose(),void k.current.dispose()):e.cancel()})),ie((()=>{let a=ce(P.current,e||r||"",t||o||"",i||n||"");a!==k.current?.getModel()&&(d&&fe.set(_,k.current?.saveViewState()),k.current?.setModel(a),d&&k.current?.restoreViewState(fe.get(i)))}),[i],j),ie((()=>{k.current?.updateOptions(s)}),[s],j),ie((()=>{!k.current||void 0===r||(k.current.getOption(P.current.editor.EditorOption.readOnly)?k.current.setValue(r):r!==k.current.getValue()&&(A.current=!0,k.current.executeEdits("",[{range:k.current.getModel().getFullModelRange(),text:r,forceMoveMarkers:!0}]),k.current.pushUndoStop(),A.current=!1))}),[r],j),ie((()=>{let e=k.current?.getModel();e&&o&&P.current?.editor.setModelLanguage(e,o)}),[o],j),ie((()=>{void 0!==c&&k.current?.revealLine(c)}),[c],j),ie((()=>{P.current?.editor.setTheme(a)}),[a],j);let D=(0,u.useCallback)((()=>{if(x.current&&P.current&&!L.current){C.current(P.current);let u=i||n,l=ce(P.current,r||e||"",t||o||"",u||"");k.current=P.current?.editor.create(x.current,{model:l,automaticLayout:!0,...s},f),d&&k.current.restoreViewState(fe.get(u)),P.current.editor.setTheme(a),void 0!==c&&k.current.revealLine(c),M(!0),L.current=!0}}),[e,t,n,r,o,i,s,f,d,a,c]);return(0,u.useEffect)((()=>{j&&R.current(k.current,P.current)}),[j]),(0,u.useEffect)((()=>{!E&&!j&&D()}),[E,j,D]),T.current=r,(0,u.useEffect)((()=>{j&&w&&(I.current?.dispose(),I.current=k.current?.onDidChangeModelContent((e=>{A.current||w(k.current.getValue(),e)})))}),[j,w]),(0,u.useEffect)((()=>{if(j){let e=P.current.editor.onDidChangeMarkers((e=>{let t=k.current.getModel()?.uri;if(t&&e.find((e=>e.path===t.path))){let e=P.current.editor.getModelMarkers({resource:t});O?.(e)}}));return()=>{e?.dispose()}}return()=>{}}),[j,O]),u.createElement(re,{width:h,height:g,isEditorReady:j,loading:l,_ref:x,className:m,wrapperProps:y})})),pe=function(e){var t=e.themeConfig,n=e.editor,r=null!=t?t:{},o=(r.rootElementSelector,r.defaultTheme),i=(0,u.useState)(null!=o?o:"vs-dark"),a=i[0],c=i[1];return(0,u.useEffect)((function(){var e;null===(e=null==t?void 0:t.themes)||void 0===e||e.forEach((function(e){h.editor.defineTheme(e.themeName,e.themeData)}))}),[h]),(0,u.useEffect)((function(){if(h.editor&&(null==t?void 0:t.rootElementSelector)){var e=document.querySelector(t.rootElementSelector);if(e){var n=new MutationObserver((function(){var t=e.classList.contains("harness-dark")?"harness-dark":"harness-light";if(a!==t){c(t);var n=h.editor;null==n||n.setTheme(t)}}));return n.observe(e,{attributes:!0,childList:!1,subtree:!1}),function(){n.disconnect()}}}}),[n]),{theme:a}},he=i(449),ge=!1,me=function(e){return h.Uri.parse("file://".concat(e)).toString()},ye=function(){return ye=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ye.apply(this,arguments)},ve=function(e){var t=e.schemaConfig,n=e.instanceId;(0,u.useEffect)((function(){(null==t?void 0:t.schema)&&function(e){if(!ge){var t={hover:!0,completion:!0,enableSchemaRequest:!1,validate:!0,schemas:[e]};ge=!0,(0,he.configureMonacoYaml)(h,t)}}(ye({fileMatch:[me(n.toString())]},t))}),[null==t?void 0:t.schema,n])},be=function(e){var t=e.monacoRef,n=p().setMarkers;(0,u.useEffect)((function(){var e,r=setTimeout((function(){var r,o=null===(r=t.current)||void 0===r?void 0:r.editor;o&&(e=o.onDidChangeMarkers((function(e){var t=e[0],r=o.getModelMarkers({resource:t});n(r)})))}),100);return function(){clearTimeout(r),null==e||e.dispose()}}),[t])},we=function(){function e(){}return e.set=function(t){e.data=t},e.get=function(){return e.data},e.data={},e}(),Oe=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function c(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}u((r=r.apply(e,t||[])).next())}))},je=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}};function Me(e){return Oe(this,void 0,void 0,(function(){var t,n;return je(this,(function(r){switch(r.label){case 0:return t=we.get(),n=t.StandaloneServices.get(t.ILanguageFeaturesService).documentSymbolProvider,[4,t.OutlineModel.create(n,e)];case 1:return[2,r.sent()]}}))}))}function Ee(e){switch(e.parentKind){case h.languages.SymbolKind.Module:!function(e){e.children.forEach((function(t){var n,r,o=e.parentPath;t.symbol&&(o=e.parentPath?"".concat(e.parentPath,".").concat(t.symbol.name):t.symbol.name,e.pathSymbolMap.set(o,t.symbol)),Ee({pathSymbolMap:e.pathSymbolMap,parentPath:o,children:t.children,parentKind:null!==(r=null===(n=null==t?void 0:t.symbol)||void 0===n?void 0:n.kind)&&void 0!==r?r:e.parentKind})}))}(e);break;case h.languages.SymbolKind.Array:!function(e){var t=0;e.children.forEach((function(n){var r=e.parentPath?"".concat(e.parentPath,".").concat(t):"".concat(t);e.pathSymbolMap.set(r,n.symbol),t+=1,Ee({pathSymbolMap:e.pathSymbolMap,parentPath:r,children:n.children,parentKind:n.symbol.kind})}))}(e);break;default:!function(e){var t=e.children.get("0");if(t){var n=e.parentPath?"".concat(e.parentPath,".").concat(t.symbol.name):null==t?void 0:t.symbol.name;e.pathSymbolMap.set(n,t.symbol)}}(e)}}!function(e){e.ContainsPath="ContainsPath"}(le||(le={}));var Se=function(){return Se=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Se.apply(this,arguments)},Pe=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function c(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}u((r=r.apply(e,t||[])).next())}))},ke=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}};function xe(e){var t=this,n=e.editorRef,r=e.inlineActions;(0,u.useEffect)((function(){var e=h.languages.registerCodeLensProvider("yaml",{provideCodeLenses:function(e){return Pe(t,void 0,void 0,(function(){var t,o,i,a,c;return ke(this,(function(u){switch(u.label){case 0:return[4,Me(e)];case 1:return t=u.sent(),o=function(e){var t=new Map;return Ee({pathSymbolMap:t,parentPath:"",children:e.children,parentKind:h.languages.SymbolKind.Module}),t}(t),(i=null===(c=null==n?void 0:n.current)||void 0===c?void 0:c.addCommand(0,(function(e,t){(0,t.onClick)({path:t.path,range:t.range,data:t.data})})))?(a=function(e){var t=e.pathSymbolMap,n=e.inlineActions,r=void 0===n?[]:n,o=e.commandId,i=Object.fromEntries(t.entries()),a=[];return null==r||r.forEach((function(e){var t=e.actions;e.selectors.forEach((function(e){e.type===le.ContainsPath&&e.paths.forEach((function(n){var r=Object.keys(i).map((function(e){return{fullPath:e,path:e,symbol:i[e]}})).filter((function(t){return t.path.startsWith(e.basePath)}));(r=r.map((function(t){return Se(Se({},t),{path:t.path.substring(e.basePath.length)})}))).filter((function(e){return n.test(e.path)})).forEach((function(e){var n=e.fullPath,r=e.symbol,i=r.range;t.forEach((function(e){var t={range:i,symbols:[r],onClick:e.onClick,data:e.data,path:n};a.push({range:i,command:{id:o,title:e.title,arguments:[t]}})}))}))}))}))})),a}({pathSymbolMap:o,inlineActions:r,commandId:i}),[2,{lenses:a,dispose:function(){}}]):[2]}}))}))}});return e.dispose}),[r,n])}var Re=function(){return Re=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Re.apply(this,arguments)};Q.config({monaco:h});var Ce={selectOnLineNumbers:!0};function Ie(e){var t=e.yamlRevision,n=e.schemaConfig,r=e.inlineActions,o=e.themeConfig,i=e.onYamlRevisionChange,a=(se(),(0,u.useState)("yaml")[0]),l=p(),s=l.editor,f=l.setEditor,d=(0,u.useRef)(),h=(0,u.useRef)({yaml:"",revisionId:0}),g=(0,u.useRef)(null);(0,u.useEffect)((function(){var e,n;g.current&&(!t.revisionId||t.revisionId>(null===(e=h.current)||void 0===e?void 0:e.revisionId))&&(null===(n=g.current)||void 0===n||n.setValue(t.yaml))}),[t,g.current]),ve({schemaConfig:n,instanceId:a}),xe({editorRef:g,inlineActions:r});var m=pe({monacoRef:d,themeConfig:o,editor:s}).theme;return be({monacoRef:d}),(0,c.jsx)(c.Fragment,{children:(0,c.jsx)(de,{onChange:function(e,t){h.current={yaml:null!=e?e:"",revisionId:t.versionId},i(Re({},h.current),t)},language:"yaml",theme:m,options:Ce,path:me(a),onMount:function(e,n){g.current=e,d.current=n,e.setValue(t.yaml),f(e)}})})}return a})()));
@@ -1,9 +1,10 @@
1
- import * as monaco from "monaco-editor";
2
- export interface InlineAction {
1
+ import * as monaco from 'monaco-editor';
2
+ export interface InlineAction<T> {
3
3
  title: string;
4
- onClick: (arg: {
5
- path: string[];
4
+ onClick: (args: {
5
+ path: string;
6
6
  range: monaco.IRange;
7
- }, ...args: unknown[]) => void;
8
- args?: unknown[];
7
+ data: T;
8
+ }) => void;
9
+ data?: T;
9
10
  }
@@ -1,5 +1,4 @@
1
1
  export declare enum SelectorType {
2
- AbsolutePath = "AbsolutePath",
3
2
  ContainsPath = "ContainsPath"
4
3
  }
5
4
  export interface ContainsPathSelector {
@@ -7,11 +6,6 @@ export interface ContainsPathSelector {
7
6
  /** Path have to starts with `basePath`*/
8
7
  basePath: string;
9
8
  /** Path have to contains one of provided path. Base path is not included in match.*/
10
- paths: string[];
9
+ paths: RegExp[];
11
10
  }
12
- export interface AbsolutePathSelector {
13
- type: SelectorType.AbsolutePath;
14
- /** Path have to be equal with `absolutePaths`*/
15
- absolutePaths: string[];
16
- }
17
- export type PathSelector = ContainsPathSelector | AbsolutePathSelector;
11
+ export type PathSelector = ContainsPathSelector;
@@ -0,0 +1,13 @@
1
+ import { ILanguageFeaturesService } from 'monaco-editor/esm/vs/editor/common/services/languageFeatures.js';
2
+ import { OutlineModel } from 'monaco-editor/esm/vs/editor/contrib/documentSymbols/browser/outlineModel.js';
3
+ import { StandaloneServices } from 'monaco-editor/esm/vs/editor/standalone/browser/standaloneServices.js';
4
+ export interface MonacoGlobalsData {
5
+ ILanguageFeaturesService: typeof ILanguageFeaturesService;
6
+ OutlineModel: typeof OutlineModel;
7
+ StandaloneServices: typeof StandaloneServices;
8
+ }
9
+ export declare class MonacoGlobals {
10
+ static data: MonacoGlobalsData;
11
+ static set(data: MonacoGlobalsData): void;
12
+ static get(): MonacoGlobalsData;
13
+ }
@@ -1,8 +1,4 @@
1
- import { ILanguageFeaturesService } from 'monaco-editor/esm/vs/editor/common/services/languageFeatures.js';
2
- import { OutlineModel } from 'monaco-editor/esm/vs/editor/contrib/documentSymbols/browser/outlineModel.js';
3
- import { StandaloneServices } from 'monaco-editor/esm/vs/editor/standalone/browser/standaloneServices.js';
4
1
  import { editor, languages } from 'monaco-editor';
5
2
  import { RootOutlineModelInternal } from '../types/monaco';
6
- export { ILanguageFeaturesService, OutlineModel, StandaloneServices };
7
3
  export declare function getOutlineModel(model: editor.ITextModel): Promise<RootOutlineModelInternal>;
8
4
  export declare function processOutlineModel(outlineModel: RootOutlineModelInternal): Map<string, languages.DocumentSymbol>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@harnessio/yaml-editor",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "private": false,
5
5
  "author": "Harness Inc.",
6
6
  "license": "Apache-2.0",