codemirror-editor-vue3
Advanced tools
Comparing version 2.0.0-beta.6 to 2.0.0-beta.7
@@ -696,3 +696,2 @@ var __defProp = Object.defineProperty; | ||
var index = ""; | ||
const CodeMirror = window.CodeMirror || _CodeMirror; | ||
const install = (app, config) => { | ||
@@ -707,2 +706,4 @@ if (config) { | ||
}; | ||
const CodeMirror = window.CodeMirror || _CodeMirror; | ||
const GlobalCmComponent = install; | ||
function styleInject(css,ref){if(ref===void 0){ref={}}var insertAt=ref.insertAt;if(!css||typeof document==="undefined"){return}var head=document.head||document.getElementsByTagName("head")[0];var style=document.createElement("style");style.type="text/css";if(insertAt==="top"){if(head.firstChild){head.insertBefore(style,head.firstChild)}else{head.appendChild(style)}}else{head.appendChild(style)}if(style.styleSheet){style.styleSheet.cssText=css}else{style.appendChild(document.createTextNode(css))}};styleInject(`.codemirror-container { | ||
@@ -770,2 +771,2 @@ position: relative; | ||
`); | ||
export { CodeMirror, install as GlobalCmComponent, createLinkMark, createLog, createLogMark, createTitle, VueCodemirror as default, getLinkMarks, getLocalTime, getLogMark, logErrorType }; | ||
export { CodeMirror, GlobalCmComponent, createLinkMark, createLog, createLogMark, createTitle, VueCodemirror as default, getLinkMarks, getLocalTime, getLogMark, logErrorType }; |
@@ -1,6 +0,6 @@ | ||
var ye=Object.defineProperty,ke=Object.defineProperties;var we=Object.getOwnPropertyDescriptors;var A=Object.getOwnPropertySymbols;var $e=Object.prototype.hasOwnProperty,Me=Object.prototype.propertyIsEnumerable;var B=(c,f,t)=>f in c?ye(c,f,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[f]=t,M=(c,f)=>{for(var t in f||(f={}))$e.call(f,t)&&B(c,t,f[t]);if(A)for(var t of A(f))Me.call(f,t)&&B(c,t,f[t]);return c},V=(c,f)=>ke(c,we(f));(function(c,f){typeof exports=="object"&&typeof module!="undefined"?f(exports,require("codemirror"),require("vue"),require("codemirror/lib/codemirror.css"),require("codemirror/addon/merge/merge.css"),require("codemirror/addon/merge/merge.js"),require("diff-match-patch"),require("codemirror/addon/mode/simple.js")):typeof define=="function"&&define.amd?define(["exports","codemirror","vue","codemirror/lib/codemirror.css","codemirror/addon/merge/merge.css","codemirror/addon/merge/merge.js","diff-match-patch","codemirror/addon/mode/simple.js"],f):(c=typeof globalThis!="undefined"?globalThis:c||self,f(c["codemirror-editor-vue3"]={},c.codemirror,c.Vue,null,null,null,c.DiffMatchPatch))})(this,function(c,f,t,be,_e,ve,F){"use strict";function x(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var b=x(f),R=x(F),v=(e,n)=>{const o=e.__vccOpts||e;for(const[a,r]of n)o[a]=r;return o};const H=window.CodeMirror||b.default,P=t.defineComponent({name:"DefaultMode",props:{name:{type:String,default:`cm-textarea-${+new Date}`},value:{type:String,default:""},content:{type:String,default:""},options:{type:Object,default:()=>({})},cminstance:{type:Object,default:()=>null},placeholder:{type:String,default:""}},emits:{ready:e=>e,"update:cminstance":e=>e},setup(e,{emit:n}){const o=t.ref(),a=t.ref(null),r=()=>{a.value=t.markRaw(H.fromTextArea(o.value,e.options)),n("update:cminstance",a.value);const l=t.watch(()=>e.cminstance,i=>{var u;i&&((u=e.cminstance)==null||u.setValue(e.value||e.content)),n("ready",t.unref(a)),l==null||l()},{deep:!0})};return t.onMounted(()=>{r()}),{textarea:o,initialize:r}}}),z=["name","placeholder"];function q(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("textarea",{ref:"textarea",name:e.$props.name,placeholder:e.$props.placeholder},null,8,z)}var U=v(P,[["render",q]]);const W=(window==null?void 0:window.CodeMirror)||b.default;window.diff_match_patch=R.default,window.DIFF_DELETE=-1,window.DIFF_INSERT=1,window.DIFF_EQUAL=0;const J=t.defineComponent({name:"MergeMode",props:{options:{type:Object,default:()=>({})},cminstance:{type:Object,default:()=>({})}},emits:["update:cminstance","ready"],setup(e,{emit:n}){const o=t.ref(),a=t.ref(),r=()=>{o.value=t.markRaw(W.MergeView(a.value,e.options)),n("update:cminstance",o.value),n("ready",o)};return t.onMounted(()=>{r()}),{initialize:r}}}),G={ref:"mergeView"};function Z(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("div",G,null,512)}var K=v(J,[["render",Z]]);c.logErrorType=void 0,function(e){e.info="info",e.warning="warning",e.error="error"}(c.logErrorType||(c.logErrorType={}));function j(){const e=new Date,n=e.getHours()<10?`0${e.getHours()}`:e.getHours(),o=e.getMinutes()<10?`0${e.getMinutes()}`:e.getMinutes(),a=e.getSeconds()<10?`0${e.getSeconds()}`:e.getSeconds();return`${n}:${o}:${a}`}function Q(e){return`#link#${JSON.stringify(e)}#link#`}function L(e){const n=/#link#(.+)#link#/g,o=[];let a;for(a=n.exec(e);a;){const r=document.createElement("a"),l=JSON.parse(a[1]),i=Object.entries(l);for(const[u,g]of i)r.setAttribute(u,g);r.className="editor_custom_link",r.innerHTML="logDownload",o.push({start:a.index,end:a.index+a[0].length,node:r}),a=n.exec(e)}return o}function X(e="",n="info"){return`#log<${n}>log#${e}#log<${n}>log#`}function T(e){const n=[];function o(){const a=/#log<(\w*)>log#((.|\r\n|\n)*?)#log<(\w*)>log#/g;let r;for(r=a.exec(e);r;){const i=r[0].replace(/\r\n/g,` | ||
var ke=Object.defineProperty,we=Object.defineProperties;var $e=Object.getOwnPropertyDescriptors;var A=Object.getOwnPropertySymbols;var Me=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable;var B=(c,f,t)=>f in c?ke(c,f,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[f]=t,M=(c,f)=>{for(var t in f||(f={}))Me.call(f,t)&&B(c,t,f[t]);if(A)for(var t of A(f))be.call(f,t)&&B(c,t,f[t]);return c},V=(c,f)=>we(c,$e(f));(function(c,f){typeof exports=="object"&&typeof module!="undefined"?f(exports,require("codemirror"),require("vue"),require("codemirror/lib/codemirror.css"),require("codemirror/addon/merge/merge.css"),require("codemirror/addon/merge/merge.js"),require("diff-match-patch"),require("codemirror/addon/mode/simple.js")):typeof define=="function"&&define.amd?define(["exports","codemirror","vue","codemirror/lib/codemirror.css","codemirror/addon/merge/merge.css","codemirror/addon/merge/merge.js","diff-match-patch","codemirror/addon/mode/simple.js"],f):(c=typeof globalThis!="undefined"?globalThis:c||self,f(c["codemirror-editor-vue3"]={},c.codemirror,c.Vue,null,null,null,c.DiffMatchPatch))})(this,function(c,f,t,Ce,_e,ve,F){"use strict";function x(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var b=x(f),R=x(F),_=(e,n)=>{const o=e.__vccOpts||e;for(const[a,r]of n)o[a]=r;return o};const H=window.CodeMirror||b.default,P=t.defineComponent({name:"DefaultMode",props:{name:{type:String,default:`cm-textarea-${+new Date}`},value:{type:String,default:""},content:{type:String,default:""},options:{type:Object,default:()=>({})},cminstance:{type:Object,default:()=>null},placeholder:{type:String,default:""}},emits:{ready:e=>e,"update:cminstance":e=>e},setup(e,{emit:n}){const o=t.ref(),a=t.ref(null),r=()=>{a.value=t.markRaw(H.fromTextArea(o.value,e.options)),n("update:cminstance",a.value);const l=t.watch(()=>e.cminstance,i=>{var u;i&&((u=e.cminstance)==null||u.setValue(e.value||e.content)),n("ready",t.unref(a)),l==null||l()},{deep:!0})};return t.onMounted(()=>{r()}),{textarea:o,initialize:r}}}),z=["name","placeholder"];function q(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("textarea",{ref:"textarea",name:e.$props.name,placeholder:e.$props.placeholder},null,8,z)}var U=_(P,[["render",q]]);const W=(window==null?void 0:window.CodeMirror)||b.default;window.diff_match_patch=R.default,window.DIFF_DELETE=-1,window.DIFF_INSERT=1,window.DIFF_EQUAL=0;const G=t.defineComponent({name:"MergeMode",props:{options:{type:Object,default:()=>({})},cminstance:{type:Object,default:()=>({})}},emits:["update:cminstance","ready"],setup(e,{emit:n}){const o=t.ref(),a=t.ref(),r=()=>{o.value=t.markRaw(W.MergeView(a.value,e.options)),n("update:cminstance",o.value),n("ready",o)};return t.onMounted(()=>{r()}),{initialize:r}}}),J={ref:"mergeView"};function Z(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("div",J,null,512)}var K=_(G,[["render",Z]]);c.logErrorType=void 0,function(e){e.info="info",e.warning="warning",e.error="error"}(c.logErrorType||(c.logErrorType={}));function j(){const e=new Date,n=e.getHours()<10?`0${e.getHours()}`:e.getHours(),o=e.getMinutes()<10?`0${e.getMinutes()}`:e.getMinutes(),a=e.getSeconds()<10?`0${e.getSeconds()}`:e.getSeconds();return`${n}:${o}:${a}`}function Q(e){return`#link#${JSON.stringify(e)}#link#`}function L(e){const n=/#link#(.+)#link#/g,o=[];let a;for(a=n.exec(e);a;){const r=document.createElement("a"),l=JSON.parse(a[1]),i=Object.entries(l);for(const[u,g]of i)r.setAttribute(u,g);r.className="editor_custom_link",r.innerHTML="logDownload",o.push({start:a.index,end:a.index+a[0].length,node:r}),a=n.exec(e)}return o}function X(e="",n="info"){return`#log<${n}>log#${e}#log<${n}>log#`}function T(e){const n=[];function o(){const a=/#log<(\w*)>log#((.|\r\n|\n)*?)#log<(\w*)>log#/g;let r;for(r=a.exec(e);r;){const i=r[0].replace(/\r\n/g,` | ||
`).split(` | ||
`),g=r[2].replace(/\r\n/g,` | ||
`).split(` | ||
`),d=document.createElement("span"),p=r[1];d.className=`c-editor--log__${p}`;let s=0;for(let m=0;m<i.length;m++){const w=i[m],y=g[m],E=d.cloneNode(!1);E.innerText=y,n.push({start:r.index+s,end:r.index+s+w.length,node:E}),s=s+w.length+1}r=a.exec(e)}}return o(),n}function Y(e,n=""){return`[${j()}] <${n}> ${e}`}function ee(e,n,o){const r=new Array(Math.max(n||15,5)).join(o);return`${r}${e}${r}`}const C=[{regex:/(\[.*?\])([ \t]*)(<error>[ \t])(.+)/,token:["tag","","error.strong","error.strong"],sol:!0},{regex:/(\[.*?\])([ \t]*)(<info>)(.+)(.?)/,token:["tag","","bracket","bracket","hr"],sol:!0},{regex:/(\[.*?\])([ \t]*)(<warning>)(.+)(.?)/,token:["tag","","comment","comment","hr"],sol:!0}];b.default.defineSimpleMode("fclog",{start:[...C,{regex:/.*/,token:"hr"}],error:[...C,{regex:/.*/,token:"error.strong"}],info:[...C,{regex:/.*/,token:"bracket"}],warning:[...C,{regex:/.*\[/,token:"comment"}]}),b.default.defineSimpleMode("log",{start:[{regex:/^[=]+[^=]*[=]+/,token:"strong"},{regex:/([^\w])([A-Z][\w]*)/,token:["","string"]},{regex:/(^[A-Z][\w]*)/,token:"string"}]});const te=window.CodeMirror||b.default,ne=t.defineComponent({name:"CodemirrorFclog",props:{value:{type:String,default:""},name:{type:String,default:`cm-textarea-${+new Date}`},options:{type:Object,default:()=>({})},cminstance:{type:Object,default:()=>({})},placeholder:{type:String,default:""}},emits:["update:cminstance","ready"],setup(e,{emit:n}){const o=t.ref(),a=t.ref(null),r=(i=e.cminstance)=>{i.getAllMarks().forEach(p=>p.clear());const g=i.getValue(),d=[].concat(L(g)).concat(T(g));for(let p=0;p<d.length;p++){const s=d[p];i.markText(i.posFromIndex(s.start),i.posFromIndex(s.end),{replacedWith:s.node})}},l=()=>{var i;a.value=t.markRaw(te.fromTextArea(o.value,e.options)),n("update:cminstance",t.unref(a)),(i=a.value)==null||i.on("change",r)};return t.watch(()=>e.cminstance,i=>{var u;i&&(r(e.cminstance),(u=e.cminstance)==null||u.setValue(e.value),n("ready",a))},{deep:!0,immediate:!0}),t.onMounted(()=>{l()}),{initialize:l,textarea:o}}}),re=["name","placeholder"];function oe(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("textarea",{ref:"textarea",name:e.$props.name,placeholder:e.$props.placeholder},null,8,re)}var ae=v(ne,[["render",oe]]);const D={"update:value":e=>e,change:(e,n)=>({value:e,cm:n}),input:e=>e,ready:e=>e},ce=["changes","scroll","beforeChange","cursorActivity","keyHandled","inputRead","electricInput","beforeSelectionChange","viewportChange","swapDoc","gutterClick","gutterContextMenu","focus","blur","refresh","optionChange","scrollCursorIntoView","update"],se=()=>{const e={};return ce.forEach(n=>{e[n]=(...o)=>o}),e},S={mode:"text",theme:"default",lineNumbers:!0,smartIndent:!0,indentUnit:2};function ie(e){Promise.resolve().then(()=>{const n=e.getScrollInfo();e.scrollTo(n.left,n.height)})}const le=({props:e,cminstance:n,emit:o,internalInstance:a,content:r})=>{const l=()=>{const u=[];return Object.keys(a==null?void 0:a.vnode.props).forEach(g=>{if(g.startsWith("on")){const d=g.replace(g[2],g[2].toLowerCase()).slice(2);!D[d]&&u.push(d)}}),u};return{listenerEvents:()=>{n.value.on("change",d=>{const p=d.getValue();p!==r.value&&(r.value=p,o("update:value",r.value),o("input",r.value),Promise.resolve().then(()=>{o("change",r.value,d)}),e.keepCursorInEnd&&ie(d))});const u={};l().filter(d=>!u[d]&&(u[d]=!0)).forEach(d=>{n.value.on(d,(...p)=>{o(d,...p)})})}}};function de({props:e,cminstance:n,presetRef:o}){const a=t.ref(null),r=t.ref(null),l=()=>{t.nextTick(()=>{var s;(s=n.value)==null||s.refresh()})},i=(s=e.width,m=e.height)=>{var y;a.value=String(s).replace("px",""),r.value=String(m).replace("px","");const w=r.value;(y=n.value)==null||y.setSize(a.value,w)},u=()=>{var m;const s=(m=n.value)==null?void 0:m.getWrapperElement();s==null||s.remove()},g=()=>{var m,w,y;const s=(m=n.value)==null?void 0:m.getDoc().getHistory();(w=o.value)==null||w.initialize(),u(),(y=n.value)==null||y.getDoc().setHistory(s)},d=()=>{const s=document.querySelector(".CodeMirror-gutters");return(s==null?void 0:s.style.left.replace("px",""))!=="0"};return{reload:g,refresh:l,resize:i,destroy:u,containerHeight:r,reviseStyle:()=>{if(l(),!d())return;const s=setInterval(()=>{d()?l():clearInterval(s)},60),m=setTimeout(()=>{clearInterval(s),clearTimeout(m)},400)}}}typeof Object.assign!="function"&&Object.defineProperty(Object,"assign",{value(e,n){if(e==null)throw new TypeError("Cannot convert undefined or null to object");const o=Object(e);for(let a=1;a<arguments.length;a++){const r=arguments[a];if(r!=null)for(const l in r)Object.prototype.hasOwnProperty.call(r,l)&&(o[l]=r[l])}return o},writable:!0,configurable:!0});const ue=t.defineComponent({name:"CodemirrorEditor",components:{Default:U,Merge:K,FcLog:ae},props:{value:{type:String,default:""},options:{type:Object,default:()=>S},globalOptions:{type:Object,default:()=>S},placeholder:{type:String,default:""},border:{type:Boolean,default:!1},width:{type:[String,Number],default:null},height:{type:[String,Number],default:null},keepCursorInEnd:{type:Boolean,default:!1},merge:{type:Boolean,default:!1},name:{type:String,default:""},marker:{type:Function,default:()=>null},unseenLines:{type:Array,default:()=>[]}},emits:M(M({},D),se()),setup(e,{emit:n}){var N,I;const o=t.ref(null),a=t.ref(""),r=t.ref("Default"),l=t.ref(M(M(M({},S),e.globalOptions),e.options)),i=t.getCurrentInstance(),u=t.ref(null),{refresh:g,resize:d,destroy:p,containerHeight:s,reviseStyle:m}=de({props:e,cminstance:o,presetRef:u}),{listenerEvents:w}=le({props:e,cminstance:o,emit:n,internalInstance:i,content:a}),y=()=>{e.unseenLines!==void 0&&e.marker!==void 0&&e.unseenLines.forEach(h=>{var $,_;const k=($=o.value)==null?void 0:$.lineInfo(h);(_=o.value)==null||_.setGutterMarker(h,"breakpoints",(k==null?void 0:k.gutterMarkers)?null:e.marker())})},E=h=>{var $,_;const k=($=o.value)==null?void 0:$.getValue();h!==k&&((_=o.value)==null||_.setValue(h),a.value=h,m()),y()},pe=()=>{w(),y(),d(),n("ready",o.value),t.watch([()=>e.height,()=>e.width],([h,k])=>{d(h,k)},{deep:!0})},he=()=>{if(e.options.mode==="fclog"||e.options.mode==="log"){r.value="FcLog";return}if(e.merge){r.value="Merge";return}r.value="Default"};return t.watch(()=>e.options,h=>{var k;for(const $ in e.options)(k=o.value)==null||k.setOption($,h[$])},{deep:!0}),t.watch(()=>e.value,h=>{E(h)}),t.watch(()=>e.merge,h=>{he()},{immediate:!0}),t.onBeforeUnmount(()=>{p()}),{presetModeName:r,cmOptions:l,cminstance:o,content:a,ready:pe,resize:d,refresh:g,containerHeight:s,instanceName:e.name||((I=(N=i==null?void 0:i.parent)==null?void 0:N.type)==null?void 0:I.name)||void 0,presetRef:u}}});function fe(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["codemirror-container",{merge:e.$props.merge,bordered:e.$props.border||e.$props.merge,"width-auto":!e.$props.width||e.$props.width=="100%","height-auto":!e.$props.height||e.$props.height=="100%"}]),style:t.normalizeStyle({height:e.containerHeight+"px"})},[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.presetModeName),t.mergeProps({ref:"presetRef",cminstance:e.cminstance,"onUpdate:cminstance":n[0]||(n[0]=i=>e.cminstance=i),style:{height:"100%"}},V(M(M({},e.$props),e.$attrs),{options:e.cmOptions,name:e.instanceName,content:e.content}),{onReady:e.ready}),null,16,["cminstance","onReady"]))],6)}var O=v(ue,[["render",fe]]),Ce="";const me=window.CodeMirror||b.default,ge=(e,n)=>(n&&n.options&&(O.props.globalOptions.default=()=>n.options),e.component((n==null?void 0:n.componentName)||"Codemirror",O),e);function styleInject(css,ref){if(ref===void 0){ref={}}var insertAt=ref.insertAt;if(!css||typeof document==="undefined"){return}var head=document.head||document.getElementsByTagName("head")[0];var style=document.createElement("style");style.type="text/css";if(insertAt==="top"){if(head.firstChild){head.insertBefore(style,head.firstChild)}else{head.appendChild(style)}}else{head.appendChild(style)}if(style.styleSheet){style.styleSheet.cssText=css}else{style.appendChild(document.createTextNode(css))}};styleInject(`.codemirror-container { | ||
`),d=document.createElement("span"),p=r[1];d.className=`c-editor--log__${p}`;let s=0;for(let m=0;m<i.length;m++){const w=i[m],y=g[m],E=d.cloneNode(!1);E.innerText=y,n.push({start:r.index+s,end:r.index+s+w.length,node:E}),s=s+w.length+1}r=a.exec(e)}}return o(),n}function Y(e,n=""){return`[${j()}] <${n}> ${e}`}function ee(e,n,o){const r=new Array(Math.max(n||15,5)).join(o);return`${r}${e}${r}`}const v=[{regex:/(\[.*?\])([ \t]*)(<error>[ \t])(.+)/,token:["tag","","error.strong","error.strong"],sol:!0},{regex:/(\[.*?\])([ \t]*)(<info>)(.+)(.?)/,token:["tag","","bracket","bracket","hr"],sol:!0},{regex:/(\[.*?\])([ \t]*)(<warning>)(.+)(.?)/,token:["tag","","comment","comment","hr"],sol:!0}];b.default.defineSimpleMode("fclog",{start:[...v,{regex:/.*/,token:"hr"}],error:[...v,{regex:/.*/,token:"error.strong"}],info:[...v,{regex:/.*/,token:"bracket"}],warning:[...v,{regex:/.*\[/,token:"comment"}]}),b.default.defineSimpleMode("log",{start:[{regex:/^[=]+[^=]*[=]+/,token:"strong"},{regex:/([^\w])([A-Z][\w]*)/,token:["","string"]},{regex:/(^[A-Z][\w]*)/,token:"string"}]});const te=window.CodeMirror||b.default,ne=t.defineComponent({name:"CodemirrorFclog",props:{value:{type:String,default:""},name:{type:String,default:`cm-textarea-${+new Date}`},options:{type:Object,default:()=>({})},cminstance:{type:Object,default:()=>({})},placeholder:{type:String,default:""}},emits:["update:cminstance","ready"],setup(e,{emit:n}){const o=t.ref(),a=t.ref(null),r=(i=e.cminstance)=>{i.getAllMarks().forEach(p=>p.clear());const g=i.getValue(),d=[].concat(L(g)).concat(T(g));for(let p=0;p<d.length;p++){const s=d[p];i.markText(i.posFromIndex(s.start),i.posFromIndex(s.end),{replacedWith:s.node})}},l=()=>{var i;a.value=t.markRaw(te.fromTextArea(o.value,e.options)),n("update:cminstance",t.unref(a)),(i=a.value)==null||i.on("change",r)};return t.watch(()=>e.cminstance,i=>{var u;i&&(r(e.cminstance),(u=e.cminstance)==null||u.setValue(e.value),n("ready",a))},{deep:!0,immediate:!0}),t.onMounted(()=>{l()}),{initialize:l,textarea:o}}}),re=["name","placeholder"];function oe(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("textarea",{ref:"textarea",name:e.$props.name,placeholder:e.$props.placeholder},null,8,re)}var ae=_(ne,[["render",oe]]);const D={"update:value":e=>e,change:(e,n)=>({value:e,cm:n}),input:e=>e,ready:e=>e},ce=["changes","scroll","beforeChange","cursorActivity","keyHandled","inputRead","electricInput","beforeSelectionChange","viewportChange","swapDoc","gutterClick","gutterContextMenu","focus","blur","refresh","optionChange","scrollCursorIntoView","update"],se=()=>{const e={};return ce.forEach(n=>{e[n]=(...o)=>o}),e},S={mode:"text",theme:"default",lineNumbers:!0,smartIndent:!0,indentUnit:2};function ie(e){Promise.resolve().then(()=>{const n=e.getScrollInfo();e.scrollTo(n.left,n.height)})}const le=({props:e,cminstance:n,emit:o,internalInstance:a,content:r})=>{const l=()=>{const u=[];return Object.keys(a==null?void 0:a.vnode.props).forEach(g=>{if(g.startsWith("on")){const d=g.replace(g[2],g[2].toLowerCase()).slice(2);!D[d]&&u.push(d)}}),u};return{listenerEvents:()=>{n.value.on("change",d=>{const p=d.getValue();p!==r.value&&(r.value=p,o("update:value",r.value),o("input",r.value),Promise.resolve().then(()=>{o("change",r.value,d)}),e.keepCursorInEnd&&ie(d))});const u={};l().filter(d=>!u[d]&&(u[d]=!0)).forEach(d=>{n.value.on(d,(...p)=>{o(d,...p)})})}}};function de({props:e,cminstance:n,presetRef:o}){const a=t.ref(null),r=t.ref(null),l=()=>{t.nextTick(()=>{var s;(s=n.value)==null||s.refresh()})},i=(s=e.width,m=e.height)=>{var y;a.value=String(s).replace("px",""),r.value=String(m).replace("px","");const w=r.value;(y=n.value)==null||y.setSize(a.value,w)},u=()=>{var m;const s=(m=n.value)==null?void 0:m.getWrapperElement();s==null||s.remove()},g=()=>{var m,w,y;const s=(m=n.value)==null?void 0:m.getDoc().getHistory();(w=o.value)==null||w.initialize(),u(),(y=n.value)==null||y.getDoc().setHistory(s)},d=()=>{const s=document.querySelector(".CodeMirror-gutters");return(s==null?void 0:s.style.left.replace("px",""))!=="0"};return{reload:g,refresh:l,resize:i,destroy:u,containerHeight:r,reviseStyle:()=>{if(l(),!d())return;const s=setInterval(()=>{d()?l():clearInterval(s)},60),m=setTimeout(()=>{clearInterval(s),clearTimeout(m)},400)}}}typeof Object.assign!="function"&&Object.defineProperty(Object,"assign",{value(e,n){if(e==null)throw new TypeError("Cannot convert undefined or null to object");const o=Object(e);for(let a=1;a<arguments.length;a++){const r=arguments[a];if(r!=null)for(const l in r)Object.prototype.hasOwnProperty.call(r,l)&&(o[l]=r[l])}return o},writable:!0,configurable:!0});const ue=t.defineComponent({name:"CodemirrorEditor",components:{Default:U,Merge:K,FcLog:ae},props:{value:{type:String,default:""},options:{type:Object,default:()=>S},globalOptions:{type:Object,default:()=>S},placeholder:{type:String,default:""},border:{type:Boolean,default:!1},width:{type:[String,Number],default:null},height:{type:[String,Number],default:null},keepCursorInEnd:{type:Boolean,default:!1},merge:{type:Boolean,default:!1},name:{type:String,default:""},marker:{type:Function,default:()=>null},unseenLines:{type:Array,default:()=>[]}},emits:M(M({},D),se()),setup(e,{emit:n}){var N,I;const o=t.ref(null),a=t.ref(""),r=t.ref("Default"),l=t.ref(M(M(M({},S),e.globalOptions),e.options)),i=t.getCurrentInstance(),u=t.ref(null),{refresh:g,resize:d,destroy:p,containerHeight:s,reviseStyle:m}=de({props:e,cminstance:o,presetRef:u}),{listenerEvents:w}=le({props:e,cminstance:o,emit:n,internalInstance:i,content:a}),y=()=>{e.unseenLines!==void 0&&e.marker!==void 0&&e.unseenLines.forEach(h=>{var $,C;const k=($=o.value)==null?void 0:$.lineInfo(h);(C=o.value)==null||C.setGutterMarker(h,"breakpoints",(k==null?void 0:k.gutterMarkers)?null:e.marker())})},E=h=>{var $,C;const k=($=o.value)==null?void 0:$.getValue();h!==k&&((C=o.value)==null||C.setValue(h),a.value=h,m()),y()},he=()=>{w(),y(),d(),n("ready",o.value),t.watch([()=>e.height,()=>e.width],([h,k])=>{d(h,k)},{deep:!0})},ye=()=>{if(e.options.mode==="fclog"||e.options.mode==="log"){r.value="FcLog";return}if(e.merge){r.value="Merge";return}r.value="Default"};return t.watch(()=>e.options,h=>{var k;for(const $ in e.options)(k=o.value)==null||k.setOption($,h[$])},{deep:!0}),t.watch(()=>e.value,h=>{E(h)}),t.watch(()=>e.merge,h=>{ye()},{immediate:!0}),t.onBeforeUnmount(()=>{p()}),{presetModeName:r,cmOptions:l,cminstance:o,content:a,ready:he,resize:d,refresh:g,containerHeight:s,instanceName:e.name||((I=(N=i==null?void 0:i.parent)==null?void 0:N.type)==null?void 0:I.name)||void 0,presetRef:u}}});function fe(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["codemirror-container",{merge:e.$props.merge,bordered:e.$props.border||e.$props.merge,"width-auto":!e.$props.width||e.$props.width=="100%","height-auto":!e.$props.height||e.$props.height=="100%"}]),style:t.normalizeStyle({height:e.containerHeight+"px"})},[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.presetModeName),t.mergeProps({ref:"presetRef",cminstance:e.cminstance,"onUpdate:cminstance":n[0]||(n[0]=i=>e.cminstance=i),style:{height:"100%"}},V(M(M({},e.$props),e.$attrs),{options:e.cmOptions,name:e.instanceName,content:e.content}),{onReady:e.ready}),null,16,["cminstance","onReady"]))],6)}var O=_(ue,[["render",fe]]),Ee="";const me=(e,n)=>(n&&n.options&&(O.props.globalOptions.default=()=>n.options),e.component((n==null?void 0:n.componentName)||"Codemirror",O),e),ge=window.CodeMirror||b.default,pe=me;function styleInject(css,ref){if(ref===void 0){ref={}}var insertAt=ref.insertAt;if(!css||typeof document==="undefined"){return}var head=document.head||document.getElementsByTagName("head")[0];var style=document.createElement("style");style.type="text/css";if(insertAt==="top"){if(head.firstChild){head.insertBefore(style,head.firstChild)}else{head.appendChild(style)}}else{head.appendChild(style)}if(style.styleSheet){style.styleSheet.cssText=css}else{style.appendChild(document.createTextNode(css))}};styleInject(`.codemirror-container { | ||
position: relative; | ||
@@ -66,2 +66,2 @@ display: inline-block; | ||
} | ||
`),c.CodeMirror=me,c.GlobalCmComponent=ge,c.createLinkMark=Q,c.createLog=Y,c.createLogMark=X,c.createTitle=ee,c.default=O,c.getLinkMarks=L,c.getLocalTime=j,c.getLogMark=T,Object.defineProperty(c,"__esModule",{value:!0}),c[Symbol.toStringTag]="Module"}); | ||
`),c.CodeMirror=ge,c.GlobalCmComponent=pe,c.createLinkMark=Q,c.createLog=Y,c.createLogMark=X,c.createTitle=ee,c.default=O,c.getLinkMarks=L,c.getLocalTime=j,c.getLogMark=T,Object.defineProperty(c,"__esModule",{value:!0}),c[Symbol.toStringTag]="Module"}); |
@@ -6,10 +6,8 @@ import _CodeMirror from "codemirror"; | ||
declare interface InstallConfig { | ||
events: any[]; | ||
options: EditorConfiguration; | ||
componentName: string; | ||
} | ||
declare const CodeMirror: typeof _CodeMirror; | ||
declare const install: (app: App, config?: InstallConfig | undefined) => App<any>; | ||
export * from "./src/components/presetMode/log/utils"; | ||
export { CodeMirror, install as GlobalCmComponent }; | ||
export declare const CodeMirror: typeof _CodeMirror; | ||
export declare const GlobalCmComponent: (app: App, config?: InstallConfig | undefined) => App<any>; | ||
export default VueCodemirror; |
{ | ||
"name": "codemirror-editor-vue3", | ||
"description": "CodeMirror component for Vue3", | ||
"version": "2.0.0-beta.6", | ||
"version": "2.0.0-beta.7", | ||
"license": "MIT", | ||
@@ -6,0 +6,0 @@ "files": [ |
69149
1539