"use strict";(self.webpackChunkbeancount_web=self.webpackChunkbeancount_web||[]).push([[828],{8828:(e,t,n)=>{function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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 i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?e.apply(this,o):function(){for(var e=arguments.length,r=new Array(e),i=0;ioe});var p=d((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"}),v={changes:function(e,t){return f(t)||p("changeType"),Object.keys(t).some((function(t){return n=e,r=t,!Object.prototype.hasOwnProperty.call(n,r);var n,r}))&&p("changeField"),t},selector:function(e){g(e)||p("selectorType")},handler:function(e){g(e)||f(e)||p("handlerType"),f(e)&&Object.values(e).some((function(e){return!g(e)}))&&p("handlersType")},initial:function(e){var t;e||p("initialIsRequired"),f(e)||p("initialType"),t=e,Object.keys(t).length||p("initialContent")}};function h(e,t){return g(t)?t(e.current):t}function y(e,t){return e.current=s(s({},e.current),t),t}function m(e,t,n){return g(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 b={create:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};v.initial(e),v.handler(t);var n={current:e},r=d(m)(n,t),o=d(y)(n),i=d(v.changes)(e),u=d(h)(n);return[function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(e){return e};return v.selector(e),e(n.current)},function(e){!function(){for(var e=arguments.length,t=new Array(e),n=0;n=e.length?e.apply(this,o):function(){for(var e=arguments.length,r=new Array(e),i=0;i2&&void 0!==arguments[2])||arguments[2],r=(0,B.useRef)(!0);(0,B.useEffect)(r.current||!n?()=>{r.current=!1}:e,t)};function Q(){}function X(e,t,n,r){return function(e,t){return e.editor.getModel(Z(e,t))}(e,r)||function(e,t,n,r){return e.editor.createModel(t,n,r?Z(e,r):void 0)}(e,t,n,r)}function Z(e,t){return e.Uri.parse(t)}var ee=function(e){let{original:t,modified:n,language:r,originalLanguage:o,modifiedLanguage:i,originalModelPath:u,modifiedModelPath:c,keepCurrentOriginalModel:a=!1,keepCurrentModifiedModel:l=!1,theme:s="light",loading:d="Loading...",options:f={},height:g="100%",width:p="100%",className:v,wrapperProps:h={},beforeMount:y=Q,onMount:m=Q}=e,[b,w]=(0,B.useState)(!1),[O,j]=(0,B.useState)(!0),M=(0,B.useRef)(null),E=(0,B.useRef)(null),P=(0,B.useRef)(null),R=(0,B.useRef)(m),k=(0,B.useRef)(y),S=(0,B.useRef)(!1);H((()=>{let e=U.init();return e.then((e=>(E.current=e)&&j(!1))).catch((e=>"cancelation"!==(null===e||void 0===e?void 0:e.type)&&console.error("Monaco initialization: error:",e))),()=>M.current?function(){var e,t,n,r;let o=null===(e=M.current)||void 0===e?void 0:e.getModel();a||null!==o&&void 0!==o&&null!==(t=o.original)&&void 0!==t&&t.dispose(),l||null!==o&&void 0!==o&&null!==(n=o.modified)&&void 0!==n&&n.dispose(),null===(r=M.current)||void 0===r||r.dispose()}():e.cancel()})),J((()=>{if(M.current&&E.current){let e=M.current.getOriginalEditor(),n=X(E.current,t||"",o||r||"text",u||"");n!==e.getModel()&&e.setModel(n)}}),[u],b),J((()=>{if(M.current&&E.current){let e=M.current.getModifiedEditor(),t=X(E.current,n||"",i||r||"text",c||"");t!==e.getModel()&&e.setModel(t)}}),[c],b),J((()=>{let e=M.current.getModifiedEditor();e.getOption(E.current.editor.EditorOption.readOnly)?e.setValue(n||""):n!==e.getValue()&&(e.executeEdits("",[{range:e.getModel().getFullModelRange(),text:n||"",forceMoveMarkers:!0}]),e.pushUndoStop())}),[n],b),J((()=>{var e,n;null===(e=M.current)||void 0===e||null===(n=e.getModel())||void 0===n||n.original.setValue(t||"")}),[t],b),J((()=>{let{original:e,modified:t}=M.current.getModel();E.current.editor.setModelLanguage(e,o||r||"text"),E.current.editor.setModelLanguage(t,i||r||"text")}),[r,o,i],b),J((()=>{var e;null===(e=E.current)||void 0===e||e.editor.setTheme(s)}),[s],b),J((()=>{var e;null===(e=M.current)||void 0===e||e.updateOptions(f)}),[f],b);let C=(0,B.useCallback)((()=>{var e;if(!E.current)return;k.current(E.current);let a=X(E.current,t||"",o||r||"text",u||""),l=X(E.current,n||"",i||r||"text",c||"");null===(e=M.current)||void 0===e||e.setModel({original:a,modified:l})}),[r,n,i,t,o,u,c]),T=(0,B.useCallback)((()=>{var e;!S.current&&P.current&&(M.current=E.current.editor.createDiffEditor(P.current,{automaticLayout:!0,...f}),C(),null!==(e=E.current)&&void 0!==e&&e.editor.setTheme(s),w(!0),S.current=!0)}),[f,s,C]);return(0,B.useEffect)((()=>{b&&R.current(M.current,E.current)}),[b]),(0,B.useEffect)((()=>{!O&&!b&&T()}),[O,b,T]),B.createElement(G,{width:p,height:g,isEditorReady:b,loading:d,_ref:P,className:v,wrapperProps:h})};(0,B.memo)(ee);var te=function(e){let t=(0,B.useRef)();return(0,B.useEffect)((()=>{t.current=e}),[e]),t.current},ne=new Map;var re=function(e){let{defaultValue:t,defaultLanguage:n,defaultPath:r,value:o,language:i,path:u,theme:c="light",line:a,loading:l="Loading...",options:s={},overrideServices:d={},saveViewState:f=!0,keepCurrentModel:g=!1,width:p="100%",height:v="100%",className:h,wrapperProps:y={},beforeMount:m=Q,onMount:b=Q,onChange:w,onValidate:O=Q}=e,[j,M]=(0,B.useState)(!1),[E,P]=(0,B.useState)(!0),R=(0,B.useRef)(null),k=(0,B.useRef)(null),S=(0,B.useRef)(null),C=(0,B.useRef)(b),T=(0,B.useRef)(m),x=(0,B.useRef)(),I=(0,B.useRef)(o),A=te(u),V=(0,B.useRef)(!1),D=(0,B.useRef)(!1);H((()=>{let e=U.init();return e.then((e=>(R.current=e)&&P(!1))).catch((e=>"cancelation"!==(null===e||void 0===e?void 0:e.type)&&console.error("Monaco initialization: error:",e))),()=>k.current?function(){var e,t;null!==(e=x.current)&&void 0!==e&&e.dispose(),g?f&&ne.set(u,k.current.saveViewState()):null===(t=k.current.getModel())||void 0===t||t.dispose(),k.current.dispose()}():e.cancel()})),J((()=>{var e,c,a,l;let s=X(R.current,t||o||"",n||i||"",u||r||"");s!==(null===(e=k.current)||void 0===e?void 0:e.getModel())&&(f&&ne.set(A,null===(c=k.current)||void 0===c?void 0:c.saveViewState()),null!==(a=k.current)&&void 0!==a&&a.setModel(s),f&&(null===(l=k.current)||void 0===l||l.restoreViewState(ne.get(u))))}),[u],j),J((()=>{var e;null===(e=k.current)||void 0===e||e.updateOptions(s)}),[s],j),J((()=>{!k.current||void 0===o||(k.current.getOption(R.current.editor.EditorOption.readOnly)?k.current.setValue(o):o!==k.current.getValue()&&(D.current=!0,k.current.executeEdits("",[{range:k.current.getModel().getFullModelRange(),text:o,forceMoveMarkers:!0}]),k.current.pushUndoStop(),D.current=!1))}),[o],j),J((()=>{var e,t;let n=null===(e=k.current)||void 0===e?void 0:e.getModel();n&&i&&(null===(t=R.current)||void 0===t||t.editor.setModelLanguage(n,i))}),[i],j),J((()=>{var e;void 0!==a&&(null===(e=k.current)||void 0===e||e.revealLine(a))}),[a],j),J((()=>{var e;null===(e=R.current)||void 0===e||e.editor.setTheme(c)}),[c],j);let L=(0,B.useCallback)((()=>{if(S.current&&R.current&&!V.current){var e;T.current(R.current);let l=u||r,g=X(R.current,o||t||"",n||i||"",l||"");k.current=null===(e=R.current)||void 0===e?void 0:e.editor.create(S.current,{model:g,automaticLayout:!0,...s},d),f&&k.current.restoreViewState(ne.get(l)),R.current.editor.setTheme(c),void 0!==a&&k.current.revealLine(a),M(!0),V.current=!0}}),[t,n,r,o,i,u,s,d,f,c,a]);return(0,B.useEffect)((()=>{j&&C.current(k.current,R.current)}),[j]),(0,B.useEffect)((()=>{!E&&!j&&L()}),[E,j,L]),I.current=o,(0,B.useEffect)((()=>{var e,t;j&&w&&(null!==(e=x.current)&&void 0!==e&&e.dispose(),x.current=null===(t=k.current)||void 0===t?void 0:t.onDidChangeModelContent((e=>{D.current||w(k.current.getValue(),e)})))}),[j,w]),(0,B.useEffect)((()=>{if(j){let e=R.current.editor.onDidChangeMarkers((e=>{var t;let n=null===(t=k.current.getModel())||void 0===t?void 0:t.uri;if(n&&e.find((e=>e.path===n.path))){let e=R.current.editor.getModelMarkers({resource:n});null===O||void 0===O||O(e)}}));return()=>{null===e||void 0===e||e.dispose()}}return()=>{}}),[j,O]),B.createElement(G,{width:p,height:v,isEditorReady:j,loading:l,_ref:S,className:h,wrapperProps:y})},oe=(0,B.memo)(re)}}]);