@harnessio/yaml-editor 0.3.0 → 0.5.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.
@@ -1,7 +1,6 @@
1
- import { RefObject } from "react";
2
- import * as monaco from "monaco-editor";
1
+ import * as monaco from 'monaco-editor';
3
2
  export type UseSchema = (arg: {
4
- monacoRef: RefObject<typeof monaco | undefined>;
3
+ monaco: typeof monaco | null | undefined;
5
4
  schemaConfig?: {
6
5
  schema: any;
7
6
  uri: string;
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:()=>ye,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 w(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 j(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=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 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 _(e,t){return e.current=w(w({},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 I=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};x(e),k(t);var r={current:e},n=j(T)(r,t),o=j(_)(r),i=j(P)(e),c=j(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=I({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),[w,j]=(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)&&j(!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)((()=>{!w&&!b&&C()}),[w,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:w=ce}){let[j,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),_=(0,a.useRef)(),T=(0,a.useRef)(n),I=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?(_.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(I,R.current?.saveViewState()),R.current?.setModel(c),d&&R.current?.restoreViewState(se.get(i)))}),[i],j),ie((()=>{R.current?.updateOptions(s)}),[s],j),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],j),ie((()=>{let e=R.current?.getModel();e&&o&&P.current?.editor.setModelLanguage(e,o)}),[o],j),ie((()=>{void 0!==u&&R.current?.revealLine(u)}),[u],j),ie((()=>{P.current?.editor.setTheme(c)}),[c],j);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)((()=>{j&&x.current(R.current,P.current)}),[j]),(0,a.useEffect)((()=>{!M&&!j&&q()}),[M,j,q]),T.current=n,(0,a.useEffect)((()=>{j&&O&&(_.current?.dispose(),_.current=R.current?.onDidChangeModelContent((e=>{D.current||O(R.current.getValue(),e)})))}),[j,O]),(0,a.useEffect)((()=>{if(j){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});w?.(e)}}));return()=>{e?.dispose()}}return()=>{}}),[j,w]),a.createElement(ne,{width:g,height:h,isEditorReady:j,loading:l,_ref:k,className:m,wrapperProps:v})})),de=function(e){var t=e.monacoRef,r=e.themeConfig,n=null!=r?r:{},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,n;if(t.current){var o=null===(e=t.current)||void 0===e?void 0:e.editor;null===(n=null==r?void 0:r.themes)||void 0===n||n.forEach((function(e){o.defineTheme(e.themeName,e.themeData)}))}}),[t]),(0,a.useEffect)((function(){var e;if((null===(e=t.current)||void 0===e?void 0:e.editor)&&(null==r?void 0:r.rootElementSelector)){var n=document.querySelector(r.rootElementSelector);if(n){var o=new MutationObserver((function(){var e,r=n.classList.contains("harness-dark")?"harness-dark":"harness-light";if(c!==r){u(r);var o=null===(e=t.current)||void 0===e?void 0:e.editor;null==o||o.setTheme(r)}}));return o.observe(n,{attributes:!0,childList:!1,subtree:!1}),function(){o.disconnect()}}}})),{theme:c}},pe=i(449);var ge=function(e){return g.Uri.parse("file://".concat(e)).toString()},he=function(){return he=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},he.apply(this,arguments)},me=function(e){var t=e.monacoRef,r=e.schemaConfig,n=e.instanceId;(0,a.useEffect)((function(){t.current&&(null==r?void 0:r.schema)&&function(e,t){!function(e,t){(0,pe.configureMonacoYaml)(e,{hover:!0,completion:!0,enableSchemaRequest:!1,validate:!0,schemas:t})}(t,[e])}(he({fileMatch:[ge(n.toString())]},r),t.current)}),[t,r,n])},ve=function(e){var t=e.monacoRef,r=p().setMarkers;(0,a.useEffect)((function(){var e,n=null===(e=t.current)||void 0===e?void 0:e.editor;if(n){var o=n.onDidChangeMarkers((function(e){var t=e[0],o=n.getModelMarkers({resource:t});r(o)}));return function(){o.dispose()}}}),[t])};function ye(e){var t=e.value,r=e.schemaConfig,n=(e.inlineActions,e.themeConfig),o=e.onChange,i=le(),c=(0,a.useState)(Math.random().toString())[0],l=p().setEditor,s=(0,a.useRef)();(0,a.useEffect)((function(){i&&!s.current&&(s.current=i,setTimeout((function(){var e;l(null===(e=s.current)||void 0===e?void 0:e.editor.getEditors()[0])}),100))}),[i]),me({monacoRef:s,schemaConfig:r,instanceId:c});var f=de({monacoRef:s,themeConfig:n}).theme;return ve({monacoRef:s}),(0,u.jsx)(u.Fragment,{children:(0,u.jsx)(fe,{onChange:o,language:"yaml",theme:f,value:t,options:{selectOnLineNumbers:!0},path:ge(c.toString())})})}return Q.config({monaco:g}),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,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:()=>be,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 w(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 j(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=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 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 _(e,t){return e.current=w(w({},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 I=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};x(e),k(t);var r={current:e},n=j(T)(r,t),o=j(_)(r),i=j(P)(e),c=j(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=I({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),[w,j]=(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)&&j(!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)((()=>{!w&&!b&&C()}),[w,b,C]),a.createElement(ne,{width:g,height:p,isEditorReady:b,loading:f,_ref:S,className:h,wrapperProps:m})}));var le,se=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},fe=new Map,de=(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:w=ce}){let[j,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),_=(0,a.useRef)(),T=(0,a.useRef)(n),I=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?(_.current?.dispose(),p?d&&fe.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&&fe.set(I,R.current?.saveViewState()),R.current?.setModel(c),d&&R.current?.restoreViewState(fe.get(i)))}),[i],j),ie((()=>{R.current?.updateOptions(s)}),[s],j),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],j),ie((()=>{let e=R.current?.getModel();e&&o&&P.current?.editor.setModelLanguage(e,o)}),[o],j),ie((()=>{void 0!==u&&R.current?.revealLine(u)}),[u],j),ie((()=>{P.current?.editor.setTheme(c)}),[c],j);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(fe.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)((()=>{j&&x.current(R.current,P.current)}),[j]),(0,a.useEffect)((()=>{!M&&!j&&q()}),[M,j,q]),T.current=n,(0,a.useEffect)((()=>{j&&O&&(_.current?.dispose(),_.current=R.current?.onDidChangeModelContent((e=>{D.current||O(R.current.getValue(),e)})))}),[j,O]),(0,a.useEffect)((()=>{if(j){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});w?.(e)}}));return()=>{e?.dispose()}}return()=>{}}),[j,w]),a.createElement(ne,{width:g,height:h,isEditorReady:j,loading:l,_ref:k,className:m,wrapperProps:v})})),pe=function(e){var t=e.monacoRef,r=e.themeConfig,n=null!=r?r:{},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,n;if(t.current){var o=null===(e=t.current)||void 0===e?void 0:e.editor;null===(n=null==r?void 0:r.themes)||void 0===n||n.forEach((function(e){o.defineTheme(e.themeName,e.themeData)}))}}),[t]),(0,a.useEffect)((function(){var e;if((null===(e=t.current)||void 0===e?void 0:e.editor)&&(null==r?void 0:r.rootElementSelector)){var n=document.querySelector(r.rootElementSelector);if(n){var o=new MutationObserver((function(){var e,r=n.classList.contains("harness-dark")?"harness-dark":"harness-light";if(c!==r){u(r);var o=null===(e=t.current)||void 0===e?void 0:e.editor;null==o||o.setTheme(r)}}));return o.observe(n,{attributes:!0,childList:!1,subtree:!1}),function(){o.disconnect()}}}})),{theme:c}},ge=i(449);var 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.monaco,r=e.schemaConfig,n=e.instanceId;(0,a.useEffect)((function(){t&&(null==r?void 0:r.schema)&&function(e,t){!function(e,t){var r={hover:!0,completion:!0,enableSchemaRequest:!1,validate:!0,schemas:t};le?le.update(r):le=(0,ge.configureMonacoYaml)(e,r)}(t,[e])}(me({fileMatch:[he(n.toString())]},r),t)}),[t,null==r?void 0:r.schema,n])},ye=function(e){var t=e.monacoRef,r=p().setMarkers;(0,a.useEffect)((function(){var e,n=null===(e=t.current)||void 0===e?void 0:e.editor;if(n){var o=n.onDidChangeMarkers((function(e){var t=e[0],o=n.getModelMarkers({resource:t});r(o)}));return function(){o.dispose()}}}),[t])};function be(e){var t=e.value,r=e.schemaConfig,n=(e.inlineActions,e.themeConfig),o=e.onChange,i=se(),c=(0,a.useState)(Math.random().toString())[0],l=p().setEditor,s=(0,a.useRef)();(0,a.useEffect)((function(){i&&!s.current&&(s.current=i,setTimeout((function(){var e;l(null===(e=s.current)||void 0===e?void 0:e.editor.getEditors()[0])}),100))}),[i]),ve({monaco:i,schemaConfig:r,instanceId:c});var f=pe({monacoRef:s,themeConfig:n}).theme;return ye({monacoRef:s}),(0,u.jsx)(u.Fragment,{children:(0,u.jsx)(de,{onChange:o,language:"yaml",theme:f,value:t,options:{selectOnLineNumbers:!0},path:he(c.toString())})})}return Q.config({monaco:g}),c})()));
@@ -1,4 +1,4 @@
1
- import { Uri } from "monaco-editor";
1
+ import { Uri } from 'monaco-editor';
2
2
  export declare function addSchema(schemaConfig: any, monaco: any): void;
3
3
  export declare const schemaIdToUrl: (id: string) => string;
4
4
  export declare const schemaIdToUri: (id: string) => Uri;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@harnessio/yaml-editor",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "private": false,
5
5
  "author": "Harness Inc.",
6
6
  "license": "Apache-2.0",