codemirror-editor-vue3
Advanced tools
Comparing version
@@ -395,7 +395,3 @@ var __defProp = Object.defineProperty; | ||
smartIndent: true, | ||
indentUnit: 2, | ||
foldGutter: true, | ||
matchBrackets: true, | ||
autoCloseBrackets: true, | ||
styleActiveLine: true | ||
indentUnit: 2 | ||
}; | ||
@@ -538,22 +534,2 @@ function scrollToEnd(cm) { | ||
}, | ||
marker: { | ||
type: Function, | ||
default: () => null | ||
}, | ||
unseenLines: { | ||
type: Array, | ||
default: () => [] | ||
}, | ||
name: { | ||
type: String, | ||
default: "" | ||
}, | ||
placeholder: { | ||
type: String, | ||
default: "" | ||
}, | ||
merge: { | ||
type: Boolean, | ||
default: false | ||
}, | ||
options: { | ||
@@ -567,2 +543,6 @@ type: Object, | ||
}, | ||
placeholder: { | ||
type: String, | ||
default: "" | ||
}, | ||
border: { | ||
@@ -583,2 +563,18 @@ type: Boolean, | ||
default: false | ||
}, | ||
merge: { | ||
type: Boolean, | ||
default: false | ||
}, | ||
name: { | ||
type: String, | ||
default: "" | ||
}, | ||
marker: { | ||
type: Function, | ||
default: () => null | ||
}, | ||
unseenLines: { | ||
type: Array, | ||
default: () => [] | ||
} | ||
@@ -720,3 +716,64 @@ }, | ||
var index = { CodeMirror, codemirror, 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(``); | ||
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; | ||
display: inline-block; | ||
height: 100%; | ||
width: fit-content; | ||
font-size: 12px; | ||
overflow: hidden; | ||
} | ||
.codemirror-container.bordered { | ||
border-radius: 4px; | ||
border: 1px solid #dddddd; | ||
} | ||
.codemirror-container.width-auto { | ||
width: 100%; | ||
} | ||
.codemirror-container.height-auto { | ||
height: 100%; | ||
} | ||
.codemirror-container.height-auto .CodeMirror, | ||
.codemirror-container.height-auto .cm-s-default { | ||
height: 100% !important; | ||
} | ||
.CodeMirror-lines .CodeMirror-placeholder.CodeMirror-line-like { | ||
color: #666; | ||
} | ||
.CodeMirror, | ||
.CodeMirror-merge-pane { | ||
height: 100%; | ||
font-family: consolas !important; | ||
} | ||
.CodeMirror-merge, | ||
.CodeMirror-merge-right .CodeMirror { | ||
height: 100%; | ||
border: none !important; | ||
} | ||
.editor_custom_link { | ||
cursor: pointer; | ||
color: #1474f1; | ||
text-decoration: underline; | ||
} | ||
.editor_custom_link:hover { | ||
color: #04b4fa; | ||
} | ||
.c-editor--log__error { | ||
color: #bb0606; | ||
font-weight: bold; | ||
} | ||
.c-editor--log__info { | ||
color: #333333; | ||
font-weight: bold; | ||
} | ||
.c-editor--log__warning { | ||
color: #ee9900; | ||
} | ||
.c-editor--log__success { | ||
color: #669600; | ||
} | ||
.cm-header, | ||
.cm-strong { | ||
font-weight: bold; | ||
} | ||
`); | ||
export { CodeMirror, codemirror, createLinkMark, createLog, createLogMark, createTitle, index as default, getLinkMarks, getLocalTime, getLogMark, install }; |
@@ -1,2 +0,2 @@ | ||
var $e=Object.defineProperty,ve=Object.defineProperties;var Me=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var be=Object.prototype.hasOwnProperty,_e=Object.prototype.propertyIsEnumerable;var F=(l,m,t)=>m in l?$e(l,m,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[m]=t,M=(l,m)=>{for(var t in m||(m={}))be.call(m,t)&&F(l,t,m[t]);if(V)for(var t of V(m))_e.call(m,t)&&F(l,t,m[t]);return l},H=(l,m)=>ve(l,Me(m));(function(l,m){typeof exports=="object"&&typeof module!="undefined"?m(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"],m):(l=typeof globalThis!="undefined"?globalThis:l||self,m(l["codemirror-editor-vue3"]={},l.codemirror,l.Vue,null,null,null,l.DiffMatchPatch))})(this,function(l,m,t,Ce,Ee,Se,P){"use strict";function O(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var v=O(m),z=O(P),E=(e,r)=>{const a=e.__vccOpts||e;for(const[n,o]of r)a[n]=o;return a};const q=window.CodeMirror||v.default,U=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:r}){const a=t.ref(),n=t.ref(null),o=()=>{n.value=t.markRaw(q.fromTextArea(a.value,e.options)),r("update:cminstance",n.value);let i=t.watch(()=>e.cminstance,(c,u)=>{var f;c&&((f=e.cminstance)==null||f.setValue(e.value||e.content)),r("ready",t.unref(n)),i==null||i()},{deep:!0})};return t.onMounted(()=>{o()}),{textarea:a,initialize:o}}}),W=["name","placeholder"];function J(e,r,a,n,o,i){return t.openBlock(),t.createElementBlock("textarea",{ref:"textarea",name:e.$props.name,placeholder:e.$props.placeholder},null,8,W)}var K=E(U,[["render",J]]);const G=(window==null?void 0:window.CodeMirror)||v.default;window.diff_match_patch=z.default,window.DIFF_DELETE=-1,window.DIFF_INSERT=1,window.DIFF_EQUAL=0;const Z=t.defineComponent({name:"mergeMode",props:{options:{type:Object,default:()=>({})},cminstance:{type:Object,default:()=>({})}},emits:["update:cminstance","ready"],setup(e,{emit:r}){const a=t.ref(),n=t.ref(),o=()=>{a.value=t.markRaw(G.MergeView(n.value,e.options)),r("update:cminstance",a.value),r("ready",a)};return t.onMounted(()=>{o()}),{initialize:o}}}),Q={ref:"mergeView"};function X(e,r,a,n,o,i){return t.openBlock(),t.createElementBlock("div",Q,null,512)}var Y=E(Z,[["render",X]]),j;(function(e){e.info="info",e.warning="warning",e.error="error"})(j||(j={}));function L(){const e=new Date,r=e.getHours()<10?"0"+e.getHours():e.getHours(),a=e.getMinutes()<10?"0"+e.getMinutes():e.getMinutes(),n=e.getSeconds()<10?"0"+e.getSeconds():e.getSeconds();return`${r}:${a}:${n}`}function ee(e){return`#link#${JSON.stringify(e)}#link#`}function T(e){const r=/#link#(.+)#link#/g;let a=[],n;for(n=r.exec(e);n;){const o=document.createElement("a"),i=JSON.parse(n[1]),c=Object.entries(i);for(let[u,f]of c)o.setAttribute(u,f);o.className="editor_custom_link",o.innerHTML="logDownload",a.push({start:n.index,end:n.index+n[0].length,node:o}),n=r.exec(e)}return a}function te(e="",r="info"){return`#log<${r}>log#${e}#log<${r}>log#`}function D(e){let r=[];function a(){const n=new RegExp(`#log<(\\w*)>log#((.|\r | ||
var $e=Object.defineProperty,ve=Object.defineProperties;var Me=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var be=Object.prototype.hasOwnProperty,_e=Object.prototype.propertyIsEnumerable;var F=(l,m,t)=>m in l?$e(l,m,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[m]=t,M=(l,m)=>{for(var t in m||(m={}))be.call(m,t)&&F(l,t,m[t]);if(V)for(var t of V(m))_e.call(m,t)&&F(l,t,m[t]);return l},H=(l,m)=>ve(l,Me(m));(function(l,m){typeof exports=="object"&&typeof module!="undefined"?m(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"],m):(l=typeof globalThis!="undefined"?globalThis:l||self,m(l["codemirror-editor-vue3"]={},l.codemirror,l.Vue,null,null,null,l.DiffMatchPatch))})(this,function(l,m,t,Ee,Ce,Se,P){"use strict";function O(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var v=O(m),z=O(P),C=(e,r)=>{const a=e.__vccOpts||e;for(const[n,o]of r)a[n]=o;return a};const q=window.CodeMirror||v.default,U=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:r}){const a=t.ref(),n=t.ref(null),o=()=>{n.value=t.markRaw(q.fromTextArea(a.value,e.options)),r("update:cminstance",n.value);let i=t.watch(()=>e.cminstance,(c,u)=>{var f;c&&((f=e.cminstance)==null||f.setValue(e.value||e.content)),r("ready",t.unref(n)),i==null||i()},{deep:!0})};return t.onMounted(()=>{o()}),{textarea:a,initialize:o}}}),W=["name","placeholder"];function J(e,r,a,n,o,i){return t.openBlock(),t.createElementBlock("textarea",{ref:"textarea",name:e.$props.name,placeholder:e.$props.placeholder},null,8,W)}var K=C(U,[["render",J]]);const Z=(window==null?void 0:window.CodeMirror)||v.default;window.diff_match_patch=z.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:r}){const a=t.ref(),n=t.ref(),o=()=>{a.value=t.markRaw(Z.MergeView(n.value,e.options)),r("update:cminstance",a.value),r("ready",a)};return t.onMounted(()=>{o()}),{initialize:o}}}),Q={ref:"mergeView"};function X(e,r,a,n,o,i){return t.openBlock(),t.createElementBlock("div",Q,null,512)}var Y=C(G,[["render",X]]),j;(function(e){e.info="info",e.warning="warning",e.error="error"})(j||(j={}));function L(){const e=new Date,r=e.getHours()<10?"0"+e.getHours():e.getHours(),a=e.getMinutes()<10?"0"+e.getMinutes():e.getMinutes(),n=e.getSeconds()<10?"0"+e.getSeconds():e.getSeconds();return`${r}:${a}:${n}`}function ee(e){return`#link#${JSON.stringify(e)}#link#`}function T(e){const r=/#link#(.+)#link#/g;let a=[],n;for(n=r.exec(e);n;){const o=document.createElement("a"),i=JSON.parse(n[1]),c=Object.entries(i);for(let[u,f]of c)o.setAttribute(u,f);o.className="editor_custom_link",o.innerHTML="logDownload",a.push({start:n.index,end:n.index+n[0].length,node:o}),n=r.exec(e)}return a}function te(e="",r="info"){return`#log<${r}>log#${e}#log<${r}>log#`}function D(e){let r=[];function a(){const n=new RegExp(`#log<(\\w*)>log#((.|\r | ||
| | ||
@@ -7,2 +7,63 @@ )*?)#log<(\\w*)>log#`,"g");let o;for(o=n.exec(e);o;){let c=o[0].replace(/\r\n/g,` | ||
`).split(` | ||
`);const d=document.createElement("span");let g=o[1];d.className=`c-editor--log__${g}`;let s=0;for(let p=0;p<c.length;p++){let w=c[p],$=f[p],_=d.cloneNode(!1);_.innerText=$,r.push({start:o.index+s,end:o.index+s+w.length,node:_}),s=s+w.length+1}o=n.exec(e)}}return a(),r}function re(e,r=""){return`[${L()}] <${r}> ${e}`}function ne(e,r,a){const o=new Array(Math.max(r||15,5)).join(a);return`${o}${e}${o}`}const S=[{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}];v.default.defineSimpleMode("fclog",{start:[...S,{regex:/.*/,token:"hr"}],error:[...S,{regex:/.*/,token:"error.strong"}],info:[...S,{regex:/.*/,token:"bracket"}],warning:[...S,{regex:/.*\[/,token:"comment"}]}),v.default.defineSimpleMode("log",{start:[{regex:/^[=]+[^=]*[=]+/,token:"strong"},{regex:/([^\w])([A-Z][\w]*)/,token:["","string"]},{regex:/(^[A-Z][\w]*)/,token:"string"}]});const oe=window.CodeMirror||v.default,ae=t.defineComponent({name:"codemirror-fclog",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:r}){const a=t.ref(),n=t.ref(null),o=(c=e.cminstance)=>{c.getAllMarks().forEach(g=>g.clear());const f=c.getValue(),d=[].concat(T(f)).concat(D(f));for(let g=0;g<d.length;g++){const s=d[g];c.markText(c.posFromIndex(s.start),c.posFromIndex(s.end),{replacedWith:s.node})}},i=()=>{var c;n.value=t.markRaw(oe.fromTextArea(a.value,e.options)),r("update:cminstance",t.unref(n)),(c=n.value)==null||c.on("change",o)};return t.watch(()=>e.cminstance,c=>{var u;c&&(o(e.cminstance),(u=e.cminstance)==null||u.setValue(e.value),r("ready",n))},{deep:!0,immediate:!0}),t.onMounted(()=>{i()}),{initialize:i,textarea:a}}}),le=["name","placeholder"];function ie(e,r,a,n,o,i){return t.openBlock(),t.createElementBlock("textarea",{ref:"textarea",name:e.$props.name,placeholder:e.$props.placeholder},null,8,le)}var se=E(ae,[["render",ie]]);const B={"update:value":e=>e,change:(e,r)=>({value:e,cm:r}),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"],de=()=>{let e={};return ce.forEach(r=>{e[r]=(...a)=>{}}),e},x={mode:"text",theme:"default",lineNumbers:!0,smartIndent:!0,indentUnit:2,foldGutter:!0,matchBrackets:!0,autoCloseBrackets:!0,styleActiveLine:!0};function ue(e){Promise.resolve().then(()=>{let r=e.getScrollInfo();e.scrollTo(r.left,r.height)})}const fe=({props:e,cminstance:r,emit:a,internalInstance:n,content:o})=>{const i=()=>{let u=[];return Object.keys(n==null?void 0:n.vnode.props).forEach(f=>{if(f.startsWith("on")){let d=f.replace(f[2],f[2].toLowerCase()).slice(2);!B[d]&&u.push(d)}}),u};return{listenerEvents:()=>{r.value.on("change",d=>{const g=d.getValue();g!=o.value&&(o.value=g,a("update:value",o.value),a("input",o.value),Promise.resolve().then(()=>{a("change",o.value,d)}),e.KeepCursorInEnd&&ue(d))});const u={};i().filter(d=>!u[d]&&(u[d]=!0)).forEach(d=>{r.value.on(d,(...g)=>{a(d,...g)})})}}};function me({props:e,cminstance:r,presetRef:a}){const n=t.ref(null),o=t.ref(null),i=()=>{t.nextTick(()=>{var s;(s=r.value)==null||s.refresh()})},c=(s=e.width,p=e.height)=>{var $;n.value=String(s).replace("px",""),o.value=String(p).replace("px","");let w=o.value;($=r.value)==null||$.setSize(n.value,w)},u=()=>{var p;const s=(p=r.value)==null?void 0:p.getWrapperElement();s==null||s.remove()},f=()=>{var p,w,$;const s=(p=r.value)==null?void 0:p.getDoc().getHistory();(w=a.value)==null||w.initialize(),u(),($=r.value)==null||$.getDoc().setHistory(s)},d=()=>{const s=document.querySelector(".CodeMirror-gutters");return(s==null?void 0:s.style.left.replace("px",""))!="0"};return{reload:f,refresh:i,resize:c,destroy:u,containerHeight:o,reviseStyle:()=>{if(i(),!d())return;let s=setInterval(()=>{d()?i():clearInterval(s)},60),p=setTimeout(()=>{clearInterval(s),clearTimeout(p)},400)}}}typeof Object.assign!="function"&&Object.defineProperty(Object,"assign",{value(e,r){if(e==null)throw new TypeError("Cannot convert undefined or null to object");const a=Object(e);for(let n=1;n<arguments.length;n++){const o=arguments[n];if(o!=null)for(const i in o)Object.prototype.hasOwnProperty.call(o,i)&&(a[i]=o[i])}return a},writable:!0,configurable:!0});const ge=t.defineComponent({name:"CodemirrorEditor",props:{value:{type:String,default:""},marker:{type:Function,default:()=>null},unseenLines:{type:Array,default:()=>[]},name:{type:String,default:""},placeholder:{type:String,default:""},merge:{type:Boolean,default:!1},options:{type:Object,default:()=>x},globalOptions:{type:Object,default:()=>x},border:{type:Boolean,default:!1},width:{type:[String,Number],default:null},height:{type:[String,Number],default:null},KeepCursorInEnd:{type:Boolean,default:!1}},emits:M(M({},B),de()),components:{Default:K,Merge:Y,FcLog:se},setup(e,{emit:r,attrs:a}){var A,R;const n=t.ref(null),o=t.ref(""),i=t.ref("Default"),c=t.ref(Object.assign(M({},x),e.globalOptions,e.options)),u=t.getCurrentInstance(),f=t.ref(null),{refresh:d,resize:g,destroy:s,containerHeight:p,reviseStyle:w}=me({props:e,cminstance:n,presetRef:f}),{listenerEvents:$}=fe({props:e,cminstance:n,emit:r,internalInstance:u,content:o}),_=()=>{e.unseenLines!==void 0&&e.marker!==void 0&&e.unseenLines.forEach(h=>{var k,C;const y=(k=n.value)==null?void 0:k.lineInfo(h);(C=n.value)==null||C.setGutterMarker(h,"breakpoints",(y==null?void 0:y.gutterMarkers)?null:e.marker())})},ye=h=>{var k,C;const y=(k=n.value)==null?void 0:k.getValue();h!==y&&((C=n.value)==null||C.setValue(h),o.value=h,w()),_()},ke=h=>{$(),_(),g(),r("ready",n.value),t.watch([()=>e.height,()=>e.width],([y,k])=>{g(y,k)},{deep:!0})},we=()=>{if(e.options.mode=="fclog"||e.options.mode=="log"){i.value="FcLog";return}if(e.merge){i.value="Merge";return}i.value="Default"};return t.watch(()=>e.options,h=>{var y;for(const k in e.options)(y=n.value)==null||y.setOption(k,h[k])},{deep:!0}),t.watch(()=>e.value,h=>{ye(h)}),t.watch(()=>e.merge,h=>{we()},{immediate:!0}),t.onBeforeUnmount(()=>{s()}),{presetModeName:i,cmOptions:c,cminstance:n,content:o,ready:ke,resize:g,refresh:d,containerHeight:p,instanceName:e.name||((R=(A=u==null?void 0:u.parent)==null?void 0:A.type)==null?void 0:R.name)||void 0,presetRef:f}}});function pe(e,r,a,n,o,i){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({style:{height:"100%"},ref:"presetRef",cminstance:e.cminstance,"onUpdate:cminstance":r[0]||(r[0]=c=>e.cminstance=c)},H(M(M({},e.$props),e.$attrs),{options:e.cmOptions,name:e.instanceName,content:e.content}),{onReady:e.ready}),null,16,["cminstance","onReady"]))],6)}var b=E(ge,[["render",pe]]),xe="";const I=window.CodeMirror||v.default,N=(e,r)=>(r&&(r.options&&(b.props.globalOptions.default=()=>r.options),r.events&&(b.props.globalEvents.default=()=>r.events)),e.component("Codemirror",b),e);var he={CodeMirror:I,codemirror:b,install:N};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(``),l.CodeMirror=I,l.codemirror=b,l.createLinkMark=ee,l.createLog=re,l.createLogMark=te,l.createTitle=ne,l.default=he,l.getLinkMarks=T,l.getLocalTime=L,l.getLogMark=D,l.install=N,Object.defineProperty(l,"__esModule",{value:!0}),l[Symbol.toStringTag]="Module"}); | ||
`);const d=document.createElement("span");let g=o[1];d.className=`c-editor--log__${g}`;let s=0;for(let p=0;p<c.length;p++){let w=c[p],$=f[p],_=d.cloneNode(!1);_.innerText=$,r.push({start:o.index+s,end:o.index+s+w.length,node:_}),s=s+w.length+1}o=n.exec(e)}}return a(),r}function re(e,r=""){return`[${L()}] <${r}> ${e}`}function ne(e,r,a){const o=new Array(Math.max(r||15,5)).join(a);return`${o}${e}${o}`}const S=[{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}];v.default.defineSimpleMode("fclog",{start:[...S,{regex:/.*/,token:"hr"}],error:[...S,{regex:/.*/,token:"error.strong"}],info:[...S,{regex:/.*/,token:"bracket"}],warning:[...S,{regex:/.*\[/,token:"comment"}]}),v.default.defineSimpleMode("log",{start:[{regex:/^[=]+[^=]*[=]+/,token:"strong"},{regex:/([^\w])([A-Z][\w]*)/,token:["","string"]},{regex:/(^[A-Z][\w]*)/,token:"string"}]});const oe=window.CodeMirror||v.default,ae=t.defineComponent({name:"codemirror-fclog",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:r}){const a=t.ref(),n=t.ref(null),o=(c=e.cminstance)=>{c.getAllMarks().forEach(g=>g.clear());const f=c.getValue(),d=[].concat(T(f)).concat(D(f));for(let g=0;g<d.length;g++){const s=d[g];c.markText(c.posFromIndex(s.start),c.posFromIndex(s.end),{replacedWith:s.node})}},i=()=>{var c;n.value=t.markRaw(oe.fromTextArea(a.value,e.options)),r("update:cminstance",t.unref(n)),(c=n.value)==null||c.on("change",o)};return t.watch(()=>e.cminstance,c=>{var u;c&&(o(e.cminstance),(u=e.cminstance)==null||u.setValue(e.value),r("ready",n))},{deep:!0,immediate:!0}),t.onMounted(()=>{i()}),{initialize:i,textarea:a}}}),le=["name","placeholder"];function ie(e,r,a,n,o,i){return t.openBlock(),t.createElementBlock("textarea",{ref:"textarea",name:e.$props.name,placeholder:e.$props.placeholder},null,8,le)}var se=C(ae,[["render",ie]]);const I={"update:value":e=>e,change:(e,r)=>({value:e,cm:r}),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"],de=()=>{let e={};return ce.forEach(r=>{e[r]=(...a)=>{}}),e},x={mode:"text",theme:"default",lineNumbers:!0,smartIndent:!0,indentUnit:2};function ue(e){Promise.resolve().then(()=>{let r=e.getScrollInfo();e.scrollTo(r.left,r.height)})}const fe=({props:e,cminstance:r,emit:a,internalInstance:n,content:o})=>{const i=()=>{let u=[];return Object.keys(n==null?void 0:n.vnode.props).forEach(f=>{if(f.startsWith("on")){let d=f.replace(f[2],f[2].toLowerCase()).slice(2);!I[d]&&u.push(d)}}),u};return{listenerEvents:()=>{r.value.on("change",d=>{const g=d.getValue();g!=o.value&&(o.value=g,a("update:value",o.value),a("input",o.value),Promise.resolve().then(()=>{a("change",o.value,d)}),e.KeepCursorInEnd&&ue(d))});const u={};i().filter(d=>!u[d]&&(u[d]=!0)).forEach(d=>{r.value.on(d,(...g)=>{a(d,...g)})})}}};function me({props:e,cminstance:r,presetRef:a}){const n=t.ref(null),o=t.ref(null),i=()=>{t.nextTick(()=>{var s;(s=r.value)==null||s.refresh()})},c=(s=e.width,p=e.height)=>{var $;n.value=String(s).replace("px",""),o.value=String(p).replace("px","");let w=o.value;($=r.value)==null||$.setSize(n.value,w)},u=()=>{var p;const s=(p=r.value)==null?void 0:p.getWrapperElement();s==null||s.remove()},f=()=>{var p,w,$;const s=(p=r.value)==null?void 0:p.getDoc().getHistory();(w=a.value)==null||w.initialize(),u(),($=r.value)==null||$.getDoc().setHistory(s)},d=()=>{const s=document.querySelector(".CodeMirror-gutters");return(s==null?void 0:s.style.left.replace("px",""))!="0"};return{reload:f,refresh:i,resize:c,destroy:u,containerHeight:o,reviseStyle:()=>{if(i(),!d())return;let s=setInterval(()=>{d()?i():clearInterval(s)},60),p=setTimeout(()=>{clearInterval(s),clearTimeout(p)},400)}}}typeof Object.assign!="function"&&Object.defineProperty(Object,"assign",{value(e,r){if(e==null)throw new TypeError("Cannot convert undefined or null to object");const a=Object(e);for(let n=1;n<arguments.length;n++){const o=arguments[n];if(o!=null)for(const i in o)Object.prototype.hasOwnProperty.call(o,i)&&(a[i]=o[i])}return a},writable:!0,configurable:!0});const ge=t.defineComponent({name:"CodemirrorEditor",props:{value:{type:String,default:""},options:{type:Object,default:()=>x},globalOptions:{type:Object,default:()=>x},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({},I),de()),components:{Default:K,Merge:Y,FcLog:se},setup(e,{emit:r,attrs:a}){var B,R;const n=t.ref(null),o=t.ref(""),i=t.ref("Default"),c=t.ref(Object.assign(M({},x),e.globalOptions,e.options)),u=t.getCurrentInstance(),f=t.ref(null),{refresh:d,resize:g,destroy:s,containerHeight:p,reviseStyle:w}=me({props:e,cminstance:n,presetRef:f}),{listenerEvents:$}=fe({props:e,cminstance:n,emit:r,internalInstance:u,content:o}),_=()=>{e.unseenLines!==void 0&&e.marker!==void 0&&e.unseenLines.forEach(h=>{var k,E;const y=(k=n.value)==null?void 0:k.lineInfo(h);(E=n.value)==null||E.setGutterMarker(h,"breakpoints",(y==null?void 0:y.gutterMarkers)?null:e.marker())})},ye=h=>{var k,E;const y=(k=n.value)==null?void 0:k.getValue();h!==y&&((E=n.value)==null||E.setValue(h),o.value=h,w()),_()},ke=h=>{$(),_(),g(),r("ready",n.value),t.watch([()=>e.height,()=>e.width],([y,k])=>{g(y,k)},{deep:!0})},we=()=>{if(e.options.mode=="fclog"||e.options.mode=="log"){i.value="FcLog";return}if(e.merge){i.value="Merge";return}i.value="Default"};return t.watch(()=>e.options,h=>{var y;for(const k in e.options)(y=n.value)==null||y.setOption(k,h[k])},{deep:!0}),t.watch(()=>e.value,h=>{ye(h)}),t.watch(()=>e.merge,h=>{we()},{immediate:!0}),t.onBeforeUnmount(()=>{s()}),{presetModeName:i,cmOptions:c,cminstance:n,content:o,ready:ke,resize:g,refresh:d,containerHeight:p,instanceName:e.name||((R=(B=u==null?void 0:u.parent)==null?void 0:B.type)==null?void 0:R.name)||void 0,presetRef:f}}});function pe(e,r,a,n,o,i){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({style:{height:"100%"},ref:"presetRef",cminstance:e.cminstance,"onUpdate:cminstance":r[0]||(r[0]=c=>e.cminstance=c)},H(M(M({},e.$props),e.$attrs),{options:e.cmOptions,name:e.instanceName,content:e.content}),{onReady:e.ready}),null,16,["cminstance","onReady"]))],6)}var b=C(ge,[["render",pe]]),xe="";const N=window.CodeMirror||v.default,A=(e,r)=>(r&&(r.options&&(b.props.globalOptions.default=()=>r.options),r.events&&(b.props.globalEvents.default=()=>r.events)),e.component("Codemirror",b),e);var he={CodeMirror:N,codemirror:b,install:A};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; | ||
display: inline-block; | ||
height: 100%; | ||
width: fit-content; | ||
font-size: 12px; | ||
overflow: hidden; | ||
} | ||
.codemirror-container.bordered { | ||
border-radius: 4px; | ||
border: 1px solid #dddddd; | ||
} | ||
.codemirror-container.width-auto { | ||
width: 100%; | ||
} | ||
.codemirror-container.height-auto { | ||
height: 100%; | ||
} | ||
.codemirror-container.height-auto .CodeMirror, | ||
.codemirror-container.height-auto .cm-s-default { | ||
height: 100% !important; | ||
} | ||
.CodeMirror-lines .CodeMirror-placeholder.CodeMirror-line-like { | ||
color: #666; | ||
} | ||
.CodeMirror, | ||
.CodeMirror-merge-pane { | ||
height: 100%; | ||
font-family: consolas !important; | ||
} | ||
.CodeMirror-merge, | ||
.CodeMirror-merge-right .CodeMirror { | ||
height: 100%; | ||
border: none !important; | ||
} | ||
.editor_custom_link { | ||
cursor: pointer; | ||
color: #1474f1; | ||
text-decoration: underline; | ||
} | ||
.editor_custom_link:hover { | ||
color: #04b4fa; | ||
} | ||
.c-editor--log__error { | ||
color: #bb0606; | ||
font-weight: bold; | ||
} | ||
.c-editor--log__info { | ||
color: #333333; | ||
font-weight: bold; | ||
} | ||
.c-editor--log__warning { | ||
color: #ee9900; | ||
} | ||
.c-editor--log__success { | ||
color: #669600; | ||
} | ||
.cm-header, | ||
.cm-strong { | ||
font-weight: bold; | ||
} | ||
`),l.CodeMirror=N,l.codemirror=b,l.createLinkMark=ee,l.createLog=re,l.createLogMark=te,l.createTitle=ne,l.default=he,l.getLinkMarks=T,l.getLocalTime=L,l.getLogMark=D,l.install=A,Object.defineProperty(l,"__esModule",{value:!0}),l[Symbol.toStringTag]="Module"}); |
@@ -21,14 +21,10 @@ import _CodeMirror from "codemirror"; | ||
}; | ||
marker: { | ||
type: import("vue").PropType<() => HTMLElement>; | ||
default: () => null; | ||
options: { | ||
type: import("vue").PropType<_CodeMirror.EditorConfiguration>; | ||
default: () => _CodeMirror.EditorConfiguration; | ||
}; | ||
unseenLines: { | ||
type: import("vue").PropType<any[]>; | ||
default: () => never[]; | ||
globalOptions: { | ||
type: import("vue").PropType<_CodeMirror.EditorConfiguration>; | ||
default: () => _CodeMirror.EditorConfiguration; | ||
}; | ||
name: { | ||
type: import("vue").PropType<string>; | ||
default: string; | ||
}; | ||
placeholder: { | ||
@@ -38,34 +34,2 @@ type: import("vue").PropType<string>; | ||
}; | ||
merge: { | ||
type: import("vue").PropType<boolean>; | ||
default: boolean; | ||
}; | ||
options: { | ||
type: import("vue").PropType<_CodeMirror.EditorConfiguration>; | ||
default: () => { | ||
mode: string; | ||
theme: string; | ||
lineNumbers: boolean; | ||
smartIndent: boolean; | ||
indentUnit: number; | ||
foldGutter: boolean; | ||
matchBrackets: boolean; | ||
autoCloseBrackets: boolean; | ||
styleActiveLine: boolean; | ||
}; | ||
}; | ||
globalOptions: { | ||
type: import("vue").PropType<_CodeMirror.EditorConfiguration>; | ||
default: () => { | ||
mode: string; | ||
theme: string; | ||
lineNumbers: boolean; | ||
smartIndent: boolean; | ||
indentUnit: number; | ||
foldGutter: boolean; | ||
matchBrackets: boolean; | ||
autoCloseBrackets: boolean; | ||
styleActiveLine: boolean; | ||
}; | ||
}; | ||
border: { | ||
@@ -87,2 +51,18 @@ type: import("vue").PropType<boolean>; | ||
}; | ||
merge: { | ||
type: import("vue").PropType<boolean>; | ||
default: boolean; | ||
}; | ||
name: { | ||
type: import("vue").PropType<string>; | ||
default: string; | ||
}; | ||
marker: { | ||
type: import("vue").PropType<() => HTMLElement>; | ||
default: () => null; | ||
}; | ||
unseenLines: { | ||
type: import("vue").PropType<any[]>; | ||
default: () => never[]; | ||
}; | ||
}, { | ||
@@ -614,9 +594,5 @@ presetModeName: import("vue").Ref<"Default" | "Merge" | "FcLog">; | ||
value?: unknown; | ||
marker?: unknown; | ||
unseenLines?: unknown; | ||
name?: unknown; | ||
placeholder?: unknown; | ||
merge?: unknown; | ||
options?: unknown; | ||
globalOptions?: unknown; | ||
placeholder?: unknown; | ||
border?: unknown; | ||
@@ -626,2 +602,6 @@ width?: unknown; | ||
KeepCursorInEnd?: unknown; | ||
merge?: unknown; | ||
name?: unknown; | ||
marker?: unknown; | ||
unseenLines?: unknown; | ||
} & { | ||
@@ -632,5 +612,2 @@ name: string; | ||
placeholder: string; | ||
marker: () => HTMLElement; | ||
unseenLines: any[]; | ||
merge: boolean; | ||
globalOptions: _CodeMirror.EditorConfiguration; | ||
@@ -641,2 +618,5 @@ border: boolean; | ||
KeepCursorInEnd: boolean; | ||
merge: boolean; | ||
marker: () => HTMLElement; | ||
unseenLines: any[]; | ||
} & {}> & { | ||
@@ -649,5 +629,2 @@ [x: string & `on${string}`]: ((...args: any[]) => any) | ((...args: unknown[]) => any) | undefined; | ||
placeholder: string; | ||
marker: () => HTMLElement; | ||
unseenLines: any[]; | ||
merge: boolean; | ||
globalOptions: _CodeMirror.EditorConfiguration; | ||
@@ -658,2 +635,5 @@ border: boolean; | ||
KeepCursorInEnd: boolean; | ||
merge: boolean; | ||
marker: () => HTMLElement; | ||
unseenLines: any[]; | ||
}>; | ||
@@ -660,0 +640,0 @@ install: (app: App<any>, config?: InstallConfig | undefined) => App<any>; |
import { Editor, EditorConfiguration } from "codemirror"; | ||
declare var Codemirror: any; | ||
export default Codemirror; | ||
export { Codemirror }; | ||
export * from "./components/presetMode/log/utils"; | ||
declare global { | ||
@@ -8,0 +4,0 @@ interface Window { |
@@ -9,14 +9,10 @@ import type { Ref, PropType } from "vue"; | ||
}; | ||
marker: { | ||
type: PropType<() => HTMLElement>; | ||
default: () => null; | ||
options: { | ||
type: PropType<EditorConfiguration>; | ||
default: () => EditorConfiguration; | ||
}; | ||
unseenLines: { | ||
type: PropType<any[]>; | ||
default: () => never[]; | ||
globalOptions: { | ||
type: PropType<EditorConfiguration>; | ||
default: () => EditorConfiguration; | ||
}; | ||
name: { | ||
type: PropType<string>; | ||
default: string; | ||
}; | ||
placeholder: { | ||
@@ -26,34 +22,2 @@ type: PropType<string>; | ||
}; | ||
merge: { | ||
type: PropType<boolean>; | ||
default: boolean; | ||
}; | ||
options: { | ||
type: PropType<EditorConfiguration>; | ||
default: () => { | ||
mode: string; | ||
theme: string; | ||
lineNumbers: boolean; | ||
smartIndent: boolean; | ||
indentUnit: number; | ||
foldGutter: boolean; | ||
matchBrackets: boolean; | ||
autoCloseBrackets: boolean; | ||
styleActiveLine: boolean; | ||
}; | ||
}; | ||
globalOptions: { | ||
type: PropType<EditorConfiguration>; | ||
default: () => { | ||
mode: string; | ||
theme: string; | ||
lineNumbers: boolean; | ||
smartIndent: boolean; | ||
indentUnit: number; | ||
foldGutter: boolean; | ||
matchBrackets: boolean; | ||
autoCloseBrackets: boolean; | ||
styleActiveLine: boolean; | ||
}; | ||
}; | ||
border: { | ||
@@ -75,2 +39,18 @@ type: PropType<boolean>; | ||
}; | ||
merge: { | ||
type: PropType<boolean>; | ||
default: boolean; | ||
}; | ||
name: { | ||
type: PropType<string>; | ||
default: string; | ||
}; | ||
marker: { | ||
type: PropType<() => HTMLElement>; | ||
default: () => null; | ||
}; | ||
unseenLines: { | ||
type: PropType<any[]>; | ||
default: () => never[]; | ||
}; | ||
}, { | ||
@@ -602,9 +582,5 @@ presetModeName: Ref<"Default" | "Merge" | "FcLog">; | ||
value?: unknown; | ||
marker?: unknown; | ||
unseenLines?: unknown; | ||
name?: unknown; | ||
placeholder?: unknown; | ||
merge?: unknown; | ||
options?: unknown; | ||
globalOptions?: unknown; | ||
placeholder?: unknown; | ||
border?: unknown; | ||
@@ -614,2 +590,6 @@ width?: unknown; | ||
KeepCursorInEnd?: unknown; | ||
merge?: unknown; | ||
name?: unknown; | ||
marker?: unknown; | ||
unseenLines?: unknown; | ||
} & { | ||
@@ -620,5 +600,2 @@ name: string; | ||
placeholder: string; | ||
marker: () => HTMLElement; | ||
unseenLines: any[]; | ||
merge: boolean; | ||
globalOptions: EditorConfiguration; | ||
@@ -629,2 +606,5 @@ border: boolean; | ||
KeepCursorInEnd: boolean; | ||
merge: boolean; | ||
marker: () => HTMLElement; | ||
unseenLines: any[]; | ||
} & {}> & { | ||
@@ -637,5 +617,2 @@ [x: string & `on${string}`]: ((...args: any[]) => any) | ((...args: unknown[]) => any) | undefined; | ||
placeholder: string; | ||
marker: () => HTMLElement; | ||
unseenLines: any[]; | ||
merge: boolean; | ||
globalOptions: EditorConfiguration; | ||
@@ -646,3 +623,6 @@ border: boolean; | ||
KeepCursorInEnd: boolean; | ||
merge: boolean; | ||
marker: () => HTMLElement; | ||
unseenLines: any[]; | ||
}>; | ||
export default _default; |
@@ -1,2 +0,2 @@ | ||
import { Editor } from "codemirror"; | ||
import { Editor, EditorConfiguration } from "codemirror"; | ||
export declare type CMEvents = "changes" | "scroll" | "beforeChange" | "cursorActivity" | "keyHandled" | "inputRead" | "electricInput" | "beforeSelectionChange" | "viewportChange" | "swapDoc" | "gutterClick" | "gutterContextMenu" | "focus" | "blur" | "refresh" | "optionChange" | "scrollCursorIntoView" | "update"; | ||
@@ -18,13 +18,3 @@ interface ComponentsEvts { | ||
}; | ||
export declare const DEFAULT_OPTIONS: { | ||
mode: string; | ||
theme: string; | ||
lineNumbers: boolean; | ||
smartIndent: boolean; | ||
indentUnit: number; | ||
foldGutter: boolean; | ||
matchBrackets: boolean; | ||
autoCloseBrackets: boolean; | ||
styleActiveLine: boolean; | ||
}; | ||
export declare const DEFAULT_OPTIONS: EditorConfiguration; | ||
export {}; |
{ | ||
"name": "codemirror-editor-vue3", | ||
"description": "CodeMirror component for Vue3", | ||
"version": "1.1.0-beta12", | ||
"version": "1.1.0-beta13", | ||
"license": "MIT", | ||
@@ -6,0 +6,0 @@ "files": [ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
2421
2.58%0
-100%114653
-0.33%18
-5.26%