codemirror-editor-vue3
Advanced tools
Comparing version 2.0.0-beta.7 to 2.0.0-beta.8
@@ -20,5 +20,5 @@ var __defProp = Object.defineProperty; | ||
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); | ||
import _CodeMirror from "codemirror"; | ||
import { defineComponent, ref, onMounted, markRaw, watch, unref, openBlock, createElementBlock, nextTick, getCurrentInstance, onBeforeUnmount, normalizeClass, normalizeStyle, createBlock, resolveDynamicComponent, mergeProps } from "vue"; | ||
import "codemirror/lib/codemirror.css"; | ||
import _CodeMirror from "codemirror"; | ||
import "codemirror/addon/merge/merge.css"; | ||
@@ -35,3 +35,3 @@ import "codemirror/addon/merge/merge.js"; | ||
}; | ||
const CodeMirror$3 = window.CodeMirror || _CodeMirror; | ||
const CodeMirror$2 = window.CodeMirror || _CodeMirror; | ||
const _sfc_main$3 = defineComponent({ | ||
@@ -73,3 +73,3 @@ name: "DefaultMode", | ||
const initialize = () => { | ||
_cminstance.value = markRaw(CodeMirror$3.fromTextArea(textarea.value, props.options)); | ||
_cminstance.value = markRaw(CodeMirror$2.fromTextArea(textarea.value, props.options)); | ||
emit("update:cminstance", _cminstance.value); | ||
@@ -101,3 +101,3 @@ const unwatch = watch(() => props.cminstance, (val) => { | ||
var Default = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3]]); | ||
const CodeMirror$2 = (window == null ? void 0 : window.CodeMirror) || _CodeMirror; | ||
const CodeMirror$1 = (window == null ? void 0 : window.CodeMirror) || _CodeMirror; | ||
window.diff_match_patch = DiffMatchPatch; | ||
@@ -124,3 +124,3 @@ window.DIFF_DELETE = -1; | ||
const initialize = () => { | ||
_cminstance.value = markRaw(CodeMirror$2.MergeView(mergeView.value, props.options)); | ||
_cminstance.value = markRaw(CodeMirror$1.MergeView(mergeView.value, props.options)); | ||
emit("update:cminstance", _cminstance.value); | ||
@@ -289,3 +289,3 @@ emit("ready", _cminstance); | ||
}); | ||
const CodeMirror$1 = window.CodeMirror || _CodeMirror; | ||
const CodeMirror = window.CodeMirror || _CodeMirror; | ||
const _sfc_main$1 = defineComponent({ | ||
@@ -331,3 +331,3 @@ name: "CodemirrorFclog", | ||
var _a; | ||
_cminstance.value = markRaw(CodeMirror$1.fromTextArea(textarea.value, props.options)); | ||
_cminstance.value = markRaw(CodeMirror.fromTextArea(textarea.value, props.options)); | ||
emit("update:cminstance", unref(_cminstance)); | ||
@@ -712,3 +712,2 @@ (_a = _cminstance.value) == null ? void 0 : _a.on("change", renderTextMark); | ||
}; | ||
const CodeMirror = window.CodeMirror || _CodeMirror; | ||
const GlobalCmComponent = install; | ||
@@ -777,2 +776,2 @@ 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 { | ||
`); | ||
export { CodeMirror, GlobalCmComponent, createLinkMark, createLog, createLogMark, createTitle, VueCodemirror as default, getLinkMarks, getLocalTime, getLogMark, logErrorType }; | ||
export { GlobalCmComponent, createLinkMark, createLog, createLogMark, createTitle, VueCodemirror as default, getLinkMarks, getLocalTime, getLogMark, logErrorType }; |
@@ -1,6 +0,6 @@ | ||
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,` | ||
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=(s,t,h)=>t in s?ye(s,t,{enumerable:!0,configurable:!0,writable:!0,value:h}):s[t]=h,M=(s,t)=>{for(var h in t||(t={}))$e.call(t,h)&&B(s,h,t[h]);if(A)for(var h of A(t))Me.call(t,h)&&B(s,h,t[h]);return s},V=(s,t)=>ke(s,we(t));(function(s,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue"),require("codemirror/lib/codemirror.css"),require("codemirror"),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","vue","codemirror/lib/codemirror.css","codemirror","codemirror/addon/merge/merge.css","codemirror/addon/merge/merge.js","diff-match-patch","codemirror/addon/mode/simple.js"],t):(s=typeof globalThis!="undefined"?globalThis:s||self,t(s["codemirror-editor-vue3"]={},s.Vue,null,s.codemirror,null,null,s.DiffMatchPatch))})(this,function(s,t,h,F,be,_e,R){"use strict";function x(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var b=x(F),H=x(R),v=(e,n)=>{const o=e.__vccOpts||e;for(const[a,r]of n)o[a]=r;return o};const P=window.CodeMirror||b.default,z=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(P.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}}}),q=["name","placeholder"];function U(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("textarea",{ref:"textarea",name:e.$props.name,placeholder:e.$props.placeholder},null,8,q)}var W=v(z,[["render",U]]);const G=(window==null?void 0:window.CodeMirror)||b.default;window.diff_match_patch=H.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(G.MergeView(a.value,e.options)),n("update:cminstance",o.value),n("ready",o)};return t.onMounted(()=>{r()}),{initialize:r}}}),Z={ref:"mergeView"};function K(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("div",Z,null,512)}var Q=v(J,[["render",K]]);s.logErrorType=void 0,function(e){e.info="info",e.warning="warning",e.error="error"}(s.logErrorType||(s.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 X(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,m]of i)r.setAttribute(u,m);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 Y(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,` | ||
`),m=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 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 { | ||
`),d=document.createElement("span"),g=r[1];d.className=`c-editor--log__${g}`;let c=0;for(let f=0;f<i.length;f++){const w=i[f],y=m[f],E=d.cloneNode(!1);E.innerText=y,n.push({start:r.index+c,end:r.index+c+w.length,node:E}),c=c+w.length+1}r=a.exec(e)}}return o(),n}function ee(e,n=""){return`[${j()}] <${n}> ${e}`}function te(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 ne=window.CodeMirror||b.default,re=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(g=>g.clear());const m=i.getValue(),d=[].concat(L(m)).concat(T(m));for(let g=0;g<d.length;g++){const c=d[g];i.markText(i.posFromIndex(c.start),i.posFromIndex(c.end),{replacedWith:c.node})}},l=()=>{var i;a.value=t.markRaw(ne.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}}}),oe=["name","placeholder"];function ae(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("textarea",{ref:"textarea",name:e.$props.name,placeholder:e.$props.placeholder},null,8,oe)}var se=v(re,[["render",ae]]);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"],ie=()=>{const e={};return ce.forEach(n=>{e[n]=(...o)=>o}),e},S={mode:"text",theme:"default",lineNumbers:!0,smartIndent:!0,indentUnit:2};function le(e){Promise.resolve().then(()=>{const n=e.getScrollInfo();e.scrollTo(n.left,n.height)})}const de=({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(m=>{if(m.startsWith("on")){const d=m.replace(m[2],m[2].toLowerCase()).slice(2);!D[d]&&u.push(d)}}),u};return{listenerEvents:()=>{n.value.on("change",d=>{const g=d.getValue();g!==r.value&&(r.value=g,o("update:value",r.value),o("input",r.value),Promise.resolve().then(()=>{o("change",r.value,d)}),e.keepCursorInEnd&&le(d))});const u={};l().filter(d=>!u[d]&&(u[d]=!0)).forEach(d=>{n.value.on(d,(...g)=>{o(d,...g)})})}}};function ue({props:e,cminstance:n,presetRef:o}){const a=t.ref(null),r=t.ref(null),l=()=>{t.nextTick(()=>{var c;(c=n.value)==null||c.refresh()})},i=(c=e.width,f=e.height)=>{var y;a.value=String(c).replace("px",""),r.value=String(f).replace("px","");const w=r.value;(y=n.value)==null||y.setSize(a.value,w)},u=()=>{var f;const c=(f=n.value)==null?void 0:f.getWrapperElement();c==null||c.remove()},m=()=>{var f,w,y;const c=(f=n.value)==null?void 0:f.getDoc().getHistory();(w=o.value)==null||w.initialize(),u(),(y=n.value)==null||y.getDoc().setHistory(c)},d=()=>{const c=document.querySelector(".CodeMirror-gutters");return(c==null?void 0:c.style.left.replace("px",""))!=="0"};return{reload:m,refresh:l,resize:i,destroy:u,containerHeight:r,reviseStyle:()=>{if(l(),!d())return;const c=setInterval(()=>{d()?l():clearInterval(c)},60),f=setTimeout(()=>{clearInterval(c),clearTimeout(f)},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 fe=t.defineComponent({name:"CodemirrorEditor",components:{Default:W,Merge:Q,FcLog:se},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),ie()),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:m,resize:d,destroy:g,containerHeight:c,reviseStyle:f}=ue({props:e,cminstance:o,presetRef:u}),{listenerEvents:w}=de({props:e,cminstance:o,emit:n,internalInstance:i,content:a}),y=()=>{e.unseenLines!==void 0&&e.marker!==void 0&&e.unseenLines.forEach(p=>{var $,_;const k=($=o.value)==null?void 0:$.lineInfo(p);(_=o.value)==null||_.setGutterMarker(p,"breakpoints",(k==null?void 0:k.gutterMarkers)?null:e.marker())})},E=p=>{var $,_;const k=($=o.value)==null?void 0:$.getValue();p!==k&&((_=o.value)==null||_.setValue(p),a.value=p,f()),y()},pe=()=>{w(),y(),d(),n("ready",o.value),t.watch([()=>e.height,()=>e.width],([p,k])=>{d(p,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,p=>{var k;for(const $ in e.options)(k=o.value)==null||k.setOption($,p[$])},{deep:!0}),t.watch(()=>e.value,p=>{E(p)}),t.watch(()=>e.merge,p=>{he()},{immediate:!0}),t.onBeforeUnmount(()=>{g()}),{presetModeName:r,cmOptions:l,cminstance:o,content:a,ready:pe,resize:d,refresh:m,containerHeight:c,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 me(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(fe,[["render",me]]),ve="";const 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 { | ||
position: relative; | ||
@@ -66,2 +66,2 @@ display: inline-block; | ||
} | ||
`),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"}); | ||
`),s.GlobalCmComponent=ge,s.createLinkMark=X,s.createLog=ee,s.createLogMark=Y,s.createTitle=te,s.default=O,s.getLinkMarks=L,s.getLocalTime=j,s.getLogMark=T,Object.defineProperty(s,"__esModule",{value:!0}),s[Symbol.toStringTag]="Module"}); |
{ | ||
"name": "codemirror-editor-vue3", | ||
"description": "CodeMirror component for Vue3", | ||
"version": "2.0.0-beta.7", | ||
"version": "2.0.0-beta.8", | ||
"license": "MIT", | ||
@@ -6,0 +6,0 @@ "files": [ |
42656
6
880