codemirror-editor-vue3
Advanced tools
Comparing version 1.1.0-beta1 to 1.1.0-beta11
@@ -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 { defineComponent, ref, onMounted, markRaw, watch, openBlock, createElementBlock, nextTick, getCurrentInstance, onBeforeUnmount, normalizeClass, normalizeStyle, createBlock, resolveDynamicComponent, mergeProps } from "vue"; | ||
import _CodeMirror from "codemirror"; | ||
import "codemirror/addon/merge/merge.css"; | ||
@@ -28,3 +28,2 @@ import "codemirror/addon/merge/merge.js"; | ||
import "codemirror/addon/mode/simple.js"; | ||
import * as codemirror from "codemirror/lib/codemirror.js"; | ||
var _export_sfc = (sfc, props) => { | ||
@@ -37,3 +36,3 @@ const target = sfc.__vccOpts || sfc; | ||
}; | ||
const CodeMirror$2 = window.CodeMirror || _CodeMirror; | ||
const CodeMirror$3 = window.CodeMirror || _CodeMirror; | ||
const _sfc_main$3 = defineComponent({ | ||
@@ -46,4 +45,10 @@ name: "defaultMode", | ||
}, | ||
value: String, | ||
content: String, | ||
value: { | ||
type: String, | ||
default: "" | ||
}, | ||
content: { | ||
type: String, | ||
default: "" | ||
}, | ||
options: { | ||
@@ -55,3 +60,3 @@ type: Object, | ||
type: Object, | ||
default: () => ({}) | ||
default: () => null | ||
}, | ||
@@ -63,3 +68,6 @@ placeholder: { | ||
}, | ||
emits: ["update:cminstance", "ready"], | ||
emits: { | ||
ready: (instance) => instance, | ||
"update:cminstance": (instance) => instance | ||
}, | ||
setup(props, { emit }) { | ||
@@ -69,9 +77,9 @@ const textarea = ref(); | ||
const initialize = () => { | ||
_cminstance.value = markRaw(CodeMirror$2.fromTextArea(textarea.value, props.options)); | ||
_cminstance.value = markRaw(CodeMirror$3.fromTextArea(textarea.value, props.options)); | ||
emit("update:cminstance", _cminstance.value); | ||
let unwatch = null; | ||
unwatch = watch(() => props.cminstance, (val, oldVal) => { | ||
val && props.cminstance.setValue(props.value || props.content); | ||
emit("ready", _cminstance); | ||
unwatch(); | ||
let unwatch = watch(() => props.cminstance, (val, oldVal) => { | ||
var _a; | ||
val && ((_a = props.cminstance) == null ? void 0 : _a.setValue(props.value || props.content)); | ||
emit("ready", unref(_cminstance)); | ||
unwatch == null ? void 0 : unwatch(); | ||
}, { deep: true }); | ||
@@ -83,4 +91,4 @@ }; | ||
return { | ||
initialize, | ||
textarea | ||
textarea, | ||
initialize | ||
}; | ||
@@ -98,3 +106,3 @@ } | ||
var Default = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3]]); | ||
const CodeMirror$1 = (window == null ? void 0 : window.CodeMirror) || _CodeMirror; | ||
const CodeMirror$2 = (window == null ? void 0 : window.CodeMirror) || _CodeMirror; | ||
window.diff_match_patch = DiffMatchPatch; | ||
@@ -107,6 +115,2 @@ window.DIFF_DELETE = -1; | ||
props: { | ||
name: { | ||
type: String, | ||
default: `cm-mergeView-${new Date().toString()}` | ||
}, | ||
options: { | ||
@@ -123,7 +127,7 @@ type: Object, | ||
setup(props, { emit }) { | ||
const _cminstance = ref(null); | ||
const mergeView = ref(null); | ||
const _cminstance = ref(); | ||
const mergeView = ref(); | ||
const initialize = () => { | ||
_cminstance.value = markRaw(CodeMirror$1.MergeView(mergeView.value, props.options)); | ||
emit("update:cminstance", _cminstance.value.edit); | ||
_cminstance.value = markRaw(CodeMirror$2.MergeView(mergeView.value, props.options)); | ||
emit("update:cminstance", _cminstance.value); | ||
emit("ready", _cminstance); | ||
@@ -135,3 +139,2 @@ }; | ||
return { | ||
mergeView, | ||
initialize | ||
@@ -141,8 +144,5 @@ }; | ||
}); | ||
const _hoisted_1$1 = ["name"]; | ||
const _hoisted_1$1 = { ref: "mergeView" }; | ||
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) { | ||
return openBlock(), createElementBlock("div", { | ||
ref: "mergeView", | ||
name: _ctx.$props.name | ||
}, null, 8, _hoisted_1$1); | ||
return openBlock(), createElementBlock("div", _hoisted_1$1, null, 512); | ||
} | ||
@@ -166,3 +166,3 @@ var Merge = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2]]); | ||
} | ||
function getLinkMark(value) { | ||
function getLinkMarks(value) { | ||
const linkRegexp = /#link#(.+)#link#/g; | ||
@@ -232,5 +232,4 @@ let result = []; | ||
} | ||
function createTitle(title = "", baseLength = 20, symbol = "=") { | ||
const offsetLength = Math.floor(1.5 * title.length / 2); | ||
let arr = new Array(Math.max(baseLength - offsetLength, 5)); | ||
function createTitle(title, symbolLength, symbol) { | ||
let arr = new Array(Math.max(symbolLength || 15, 5)); | ||
const wraptext = arr.join(symbol); | ||
@@ -242,3 +241,3 @@ return `${wraptext}${title}${wraptext}`; | ||
regex: /(\[.*?\])([ \t]*)(<error>[ \t])(.+)/, | ||
token: ["tag", null, "error.strong", "error.strong"], | ||
token: ["tag", "", "error.strong", "error.strong"], | ||
sol: true | ||
@@ -248,3 +247,3 @@ }, | ||
regex: /(\[.*?\])([ \t]*)(<info>)(.+)(.?)/, | ||
token: ["tag", null, "bracket", "bracket", "hr"], | ||
token: ["tag", "", "bracket", "bracket", "hr"], | ||
sol: true | ||
@@ -254,3 +253,3 @@ }, | ||
regex: /(\[.*?\])([ \t]*)(<warning>)(.+)(.?)/, | ||
token: ["tag", null, "comment", "comment", "hr"], | ||
token: ["tag", "", "comment", "comment", "hr"], | ||
sol: true | ||
@@ -289,3 +288,3 @@ } | ||
}); | ||
codemirror.defineSimpleMode("log", { | ||
_CodeMirror.defineSimpleMode("log", { | ||
start: [ | ||
@@ -298,3 +297,3 @@ { | ||
regex: /([^\w])([A-Z][\w]*)/, | ||
token: [null, "string"] | ||
token: ["", "string"] | ||
}, | ||
@@ -307,8 +306,10 @@ { | ||
}); | ||
const CodeMirror = window.CodeMirror || _CodeMirror; | ||
const CodeMirror$1 = window.CodeMirror || _CodeMirror; | ||
const _sfc_main$1 = defineComponent({ | ||
name: "codemirror-fclog", | ||
props: { | ||
value: String, | ||
content: String, | ||
value: { | ||
type: String, | ||
default: "" | ||
}, | ||
name: { | ||
@@ -339,3 +340,3 @@ type: String, | ||
const value = cminstance.getValue(); | ||
const linkMarks = [].concat(getLinkMark(value)).concat(getLogMark(value)); | ||
const linkMarks = [].concat(getLinkMarks(value)).concat(getLogMark(value)); | ||
for (let _i = 0; _i < linkMarks.length; _i++) { | ||
@@ -347,10 +348,12 @@ const mark = linkMarks[_i]; | ||
const initialize = () => { | ||
_cminstance.value = markRaw(CodeMirror.fromTextArea(textarea.value, props.options)); | ||
emit("update:cminstance", markRaw(_cminstance.value)); | ||
_cminstance.value.on("change", renderTextMark); | ||
var _a; | ||
_cminstance.value = markRaw(CodeMirror$1.fromTextArea(textarea.value, props.options)); | ||
emit("update:cminstance", unref(_cminstance)); | ||
(_a = _cminstance.value) == null ? void 0 : _a.on("change", renderTextMark); | ||
}; | ||
watch(() => props.cminstance, (val) => { | ||
var _a; | ||
if (val) { | ||
renderTextMark(props.cminstance); | ||
props.cminstance.setValue(props.value || props.content); | ||
(_a = props.cminstance) == null ? void 0 : _a.setValue(props.value); | ||
emit("ready", _cminstance); | ||
@@ -377,2 +380,46 @@ } | ||
var FcLog = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]); | ||
const componentsEvts = { | ||
"update:value": (value) => value, | ||
change: (value, cm) => ({ value, cm }), | ||
input: (value) => value, | ||
ready: (cm) => cm | ||
}; | ||
const cmEvts = [ | ||
"changes", | ||
"scroll", | ||
"beforeChange", | ||
"cursorActivity", | ||
"keyHandled", | ||
"inputRead", | ||
"electricInput", | ||
"beforeSelectionChange", | ||
"viewportChange", | ||
"swapDoc", | ||
"gutterClick", | ||
"gutterContextMenu", | ||
"focus", | ||
"blur", | ||
"refresh", | ||
"optionChange", | ||
"scrollCursorIntoView", | ||
"update" | ||
]; | ||
const getCmEvts = () => { | ||
let result = {}; | ||
cmEvts.forEach((name) => { | ||
result[name] = (...args) => void 0; | ||
}); | ||
return result; | ||
}; | ||
const DEFAULT_OPTIONS = { | ||
mode: "text", | ||
theme: "default", | ||
lineNumbers: true, | ||
smartIndent: true, | ||
indentUnit: 2, | ||
foldGutter: true, | ||
matchBrackets: true, | ||
autoCloseBrackets: true, | ||
styleActiveLine: true | ||
}; | ||
function scrollToEnd(cm) { | ||
@@ -384,16 +431,15 @@ Promise.resolve().then(() => { | ||
} | ||
function useEvents({ | ||
const useEvents = ({ | ||
props, | ||
cminstance, | ||
ctx, | ||
emit, | ||
internalInstance, | ||
content, | ||
componentsEvts: componentsEvts2 | ||
}) { | ||
const getUseEvents = () => { | ||
content | ||
}) => { | ||
const getBindEvents = () => { | ||
let evts = []; | ||
Object.keys(internalInstance.vnode.props).forEach((v) => { | ||
Object.keys(internalInstance == null ? void 0 : internalInstance.vnode.props).forEach((v) => { | ||
if (v.startsWith("on")) { | ||
let e = v.replace(v[2], v[2].toLowerCase()).slice(2); | ||
!componentsEvts2.includes(e) && evts.push(e); | ||
!componentsEvts[e] && evts.push(e); | ||
} | ||
@@ -409,6 +455,6 @@ }); | ||
content.value = currentVal; | ||
ctx.emit("update:value", content.value); | ||
ctx.emit("input", content.value); | ||
emit("update:value", content.value); | ||
emit("input", content.value); | ||
Promise.resolve().then(() => { | ||
ctx.emit("change", content.value, cm); | ||
emit("change", content.value, cm); | ||
}); | ||
@@ -418,9 +464,8 @@ props.KeepCursorInEnd && scrollToEnd(cm); | ||
const tmpEvents = {}; | ||
const useEvts = getUseEvents(); | ||
const allEvents = useEvts.filter((e) => !tmpEvents[e] && (tmpEvents[e] = true)).forEach((event) => { | ||
const bindEvts = getBindEvents(); | ||
bindEvts.filter((e) => !tmpEvents[e] && (tmpEvents[e] = true)).forEach((event) => { | ||
cminstance.value.on(event, (...args) => { | ||
ctx.emit(event, ...args); | ||
emit(event, ...args); | ||
}); | ||
}); | ||
return allEvents; | ||
}; | ||
@@ -430,4 +475,8 @@ return { | ||
}; | ||
} | ||
function useViewControl({ props, cminstance, presetRef }) { | ||
}; | ||
function useViewControl({ | ||
props, | ||
cminstance, | ||
presetRef | ||
}) { | ||
const containerWidth = ref(null); | ||
@@ -437,18 +486,28 @@ const containerHeight = ref(null); | ||
nextTick(() => { | ||
cminstance.value.refresh(); | ||
var _a; | ||
(_a = cminstance.value) == null ? void 0 : _a.refresh(); | ||
}); | ||
}; | ||
const resize = (width = props.width, height = props.height) => { | ||
var _a; | ||
containerWidth.value = String(width).replace("px", ""); | ||
containerHeight.value = String(height).replace("px", ""); | ||
let cmHeight = containerHeight.value; | ||
cminstance.value.setSize(containerWidth.value, cmHeight); | ||
(_a = cminstance.value) == null ? void 0 : _a.setSize(containerWidth.value, cmHeight); | ||
}; | ||
const destroy = () => { | ||
const element = cminstance.value.doc.cm.getWrapperElement(); | ||
var _a; | ||
const element = (_a = cminstance.value) == null ? void 0 : _a.getWrapperElement(); | ||
element == null ? void 0 : element.remove(); | ||
}; | ||
const reload = () => { | ||
var _a, _b, _c; | ||
const history = (_a = cminstance.value) == null ? void 0 : _a.getDoc().getHistory(); | ||
(_b = presetRef.value) == null ? void 0 : _b.initialize(); | ||
destroy(); | ||
(_c = cminstance.value) == null ? void 0 : _c.getDoc().setHistory(history); | ||
}; | ||
const isStyleChaotic = () => { | ||
const gutterEl = document.querySelector(".CodeMirror-gutters"); | ||
const gutterElLeft = gutterEl.style.left.replace("px", ""); | ||
const gutterElLeft = gutterEl == null ? void 0 : gutterEl.style.left.replace("px", ""); | ||
return gutterElLeft != "0"; | ||
@@ -466,7 +525,6 @@ }; | ||
clearTimeout(clearTimer); | ||
timer = null; | ||
clearTimer = null; | ||
}, 400); | ||
}; | ||
return { | ||
reload, | ||
refresh, | ||
@@ -479,34 +537,2 @@ resize, | ||
} | ||
const componentsEvts = ["update:value", "change", "input", "ready"]; | ||
const cmEvts = [ | ||
"changes", | ||
"scroll", | ||
"beforeChange", | ||
"cursorActivity", | ||
"keyHandled", | ||
"inputRead", | ||
"electricInput", | ||
"beforeSelectionChange", | ||
"viewportChange", | ||
"swapDoc", | ||
"gutterClick", | ||
"gutterContextMenu", | ||
"focus", | ||
"blur", | ||
"refresh", | ||
"optionChange", | ||
"scrollCursorIntoView", | ||
"update" | ||
]; | ||
const DEFAULT_OPTIONS = { | ||
mode: "text", | ||
theme: "default", | ||
lineNumbers: true, | ||
smartIndent: true, | ||
indentUnit: 2, | ||
foldGutter: true, | ||
matchBrackets: true, | ||
autoCloseBrackets: true, | ||
styleActiveLine: true | ||
}; | ||
if (typeof Object.assign != "function") { | ||
@@ -538,5 +564,14 @@ Object.defineProperty(Object, "assign", { | ||
props: { | ||
value: String, | ||
marker: Function, | ||
unseenLines: Array, | ||
value: { | ||
type: String, | ||
default: "" | ||
}, | ||
marker: { | ||
type: Function, | ||
default: () => null | ||
}, | ||
unseenLines: { | ||
type: Array, | ||
default: () => [] | ||
}, | ||
name: { | ||
@@ -556,7 +591,7 @@ type: String, | ||
type: Object, | ||
default: () => ({}) | ||
default: () => DEFAULT_OPTIONS | ||
}, | ||
globalOptions: { | ||
type: Object, | ||
default: () => ({}) | ||
default: () => DEFAULT_OPTIONS | ||
}, | ||
@@ -580,3 +615,3 @@ border: { | ||
}, | ||
emits: [...componentsEvts, ...cmEvts], | ||
emits: __spreadValues(__spreadValues({}, componentsEvts), getCmEvts()), | ||
components: { | ||
@@ -587,3 +622,3 @@ Default, | ||
}, | ||
setup(props, ctx) { | ||
setup(props, { emit, attrs }) { | ||
var _a, _b; | ||
@@ -604,6 +639,5 @@ const cminstance = ref(null); | ||
cminstance, | ||
ctx, | ||
emit, | ||
internalInstance, | ||
content, | ||
componentsEvts | ||
content | ||
}); | ||
@@ -613,4 +647,5 @@ const unseenLineMarkers = () => { | ||
props.unseenLines.forEach((line) => { | ||
const info = cminstance.value.lineInfo(line); | ||
cminstance.value.setGutterMarker(line, "breakpoints", info.gutterMarkers ? null : props.marker()); | ||
var _a2, _b2; | ||
const info = (_a2 = cminstance.value) == null ? void 0 : _a2.lineInfo(line); | ||
(_b2 = cminstance.value) == null ? void 0 : _b2.setGutterMarker(line, "breakpoints", (info == null ? void 0 : info.gutterMarkers) ? null : props.marker()); | ||
}); | ||
@@ -620,5 +655,6 @@ } | ||
const onCodeChange = (newVal) => { | ||
const cm_value = cminstance.value.getValue(); | ||
var _a2, _b2; | ||
const cm_value = (_a2 = cminstance.value) == null ? void 0 : _a2.getValue(); | ||
if (newVal !== cm_value) { | ||
cminstance.value.setValue(newVal); | ||
(_b2 = cminstance.value) == null ? void 0 : _b2.setValue(newVal); | ||
content.value = newVal; | ||
@@ -629,7 +665,7 @@ reviseStyle(); | ||
}; | ||
const ready = (codemirror2) => { | ||
const ready = (cm) => { | ||
listenerEvents(); | ||
unseenLineMarkers(); | ||
resize(); | ||
ctx.emit("ready", cminstance.value); | ||
emit("ready", cminstance.value); | ||
watch([() => props.height, () => props.width], ([height, width]) => { | ||
@@ -648,7 +684,8 @@ resize(height, width); | ||
} | ||
presetModeName.value = "default"; | ||
presetModeName.value = "Default"; | ||
}; | ||
watch(() => props.options, (val) => { | ||
var _a2; | ||
for (const key in props.options) { | ||
cminstance.value.setOption(key, val[key]); | ||
(_a2 = cminstance.value) == null ? void 0 : _a2.setOption(key, val[key]); | ||
} | ||
@@ -672,2 +709,3 @@ }, { deep: true }); | ||
resize, | ||
refresh, | ||
containerHeight, | ||
@@ -703,79 +741,19 @@ instanceName: props.name || ((_b = (_a = internalInstance == null ? void 0 : internalInstance.parent) == null ? void 0 : _a.type) == null ? void 0 : _b.name) || void 0, | ||
} | ||
var Codemirror = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]); | ||
var codemirror = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]); | ||
var index$1 = ""; | ||
var index = ""; | ||
Codemirror.install = (app, config) => { | ||
const CodeMirror = window.CodeMirror || _CodeMirror; | ||
const install = (app, config) => { | ||
if (config) { | ||
if (config.options) { | ||
Codemirror.props.globalOptions.default = () => config.options; | ||
codemirror.props.globalOptions.default = () => config.options; | ||
} | ||
if (config.events) { | ||
Codemirror.props.globalEvents.default = () => config.events; | ||
codemirror.props.globalEvents.default = () => config.events; | ||
} | ||
} | ||
app.component("Codemirror", Codemirror); | ||
app.component("Codemirror", codemirror); | ||
return app; | ||
}; | ||
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, createLinkMark, createLog, createLogMark, createTitle, Codemirror as default, getLinkMark, getLocalTime, getLogMark }; | ||
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(``); | ||
export { CodeMirror, codemirror, createLinkMark, createLog, createLogMark, createTitle, index as default, getLinkMarks, getLocalTime, getLogMark, install }; |
@@ -1,68 +0,7 @@ | ||
var ke=Object.defineProperty,we=Object.defineProperties;var $e=Object.getOwnPropertyDescriptors;var D=Object.getOwnPropertySymbols;var _e=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var N=(l,d,t)=>d in l?ke(l,d,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[d]=t,E=(l,d)=>{for(var t in d||(d={}))_e.call(d,t)&&N(l,t,d[t]);if(D)for(var t of D(d))ve.call(d,t)&&N(l,t,d[t]);return l},A=(l,d)=>we(l,$e(d));(function(l,d){typeof exports=="object"&&typeof module!="undefined"?d(exports,require("codemirror/lib/codemirror.css"),require("vue"),require("codemirror"),require("codemirror/addon/merge/merge.css"),require("codemirror/addon/merge/merge.js"),require("diff-match-patch"),require("codemirror/addon/mode/simple.js"),require("codemirror/lib/codemirror.js")):typeof define=="function"&&define.amd?define(["exports","codemirror/lib/codemirror.css","vue","codemirror","codemirror/addon/merge/merge.css","codemirror/addon/merge/merge.js","diff-match-patch","codemirror/addon/mode/simple.js","codemirror/lib/codemirror.js"],d):(l=typeof globalThis!="undefined"?globalThis:l||self,d(l["codemirror-editor-vue3"]={},null,l.Vue,l.codemirror,null,null,l.DiffMatchPatch,null,l.codemirror))})(this,function(l,d,t,B,be,Me,R,Ee,V){"use strict";function S(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}function F(e){if(e&&e.__esModule)return e;var n={__proto__:null,[Symbol.toStringTag]:"Module"};return e&&Object.keys(e).forEach(function(r){if(r!=="default"){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}}),n.default=e,Object.freeze(n)}var w=S(B),P=S(R),q=F(V),$=(e,n)=>{const r=e.__vccOpts||e;for(const[a,o]of n)r[a]=o;return r};const z=window.CodeMirror||w.default,H=t.defineComponent({name:"defaultMode",props:{name:{type:String,default:`cm-textarea-${+new Date}`},value:String,content:String,options:{type:Object,default:()=>({})},cminstance:{type:Object,default:()=>({})},placeholder:{type:String,default:""}},emits:["update:cminstance","ready"],setup(e,{emit:n}){const r=t.ref(),a=t.ref(null),o=()=>{a.value=t.markRaw(z.fromTextArea(r.value,e.options)),n("update:cminstance",a.value);let i=null;i=t.watch(()=>e.cminstance,(s,h)=>{s&&e.cminstance.setValue(e.value||e.content),n("ready",a),i()},{deep:!0})};return t.onMounted(()=>{o()}),{initialize:o,textarea:r}}}),U=["name","placeholder"];function W(e,n,r,a,o,i){return t.openBlock(),t.createElementBlock("textarea",{ref:"textarea",name:e.$props.name,placeholder:e.$props.placeholder},null,8,U)}var J=$(H,[["render",W]]);const K=(window==null?void 0:window.CodeMirror)||w.default;window.diff_match_patch=P.default,window.DIFF_DELETE=-1,window.DIFF_INSERT=1,window.DIFF_EQUAL=0;const G=t.defineComponent({name:"mergeMode",props:{name:{type:String,default:`cm-mergeView-${new Date().toString()}`},options:{type:Object,default:()=>({})},cminstance:{type:Object,default:()=>({})}},emits:["update:cminstance","ready"],setup(e,{emit:n}){const r=t.ref(null),a=t.ref(null),o=()=>{r.value=t.markRaw(K.MergeView(a.value,e.options)),n("update:cminstance",r.value.edit),n("ready",r)};return t.onMounted(()=>{o()}),{mergeView:a,initialize:o}}}),Z=["name"];function Q(e,n,r,a,o,i){return t.openBlock(),t.createElementBlock("div",{ref:"mergeView",name:e.$props.name},null,8,Z)}var X=$(G,[["render",Q]]),C;(function(e){e.info="info",e.warning="warning",e.error="error"})(C||(C={}));function O(){const e=new Date,n=e.getHours()<10?"0"+e.getHours():e.getHours(),r=e.getMinutes()<10?"0"+e.getMinutes():e.getMinutes(),a=e.getSeconds()<10?"0"+e.getSeconds():e.getSeconds();return`${n}:${r}:${a}`}function Y(e){return`#link#${JSON.stringify(e)}#link#`}function j(e){const n=/#link#(.+)#link#/g;let r=[],a;for(a=n.exec(e);a;){const o=document.createElement("a"),i=JSON.parse(a[1]),s=Object.entries(i);for(let[h,m]of s)o.setAttribute(h,m);o.className="editor_custom_link",o.innerHTML="logDownload",r.push({start:a.index,end:a.index+a[0].length,node:o}),a=n.exec(e)}return r}function ee(e="",n="info"){return`#log<${n}>log#${e}#log<${n}>log#`}function x(e){let n=[];function r(){const a=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,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 | ||
| | ||
)*?)#log<(\\w*)>log#`,"g");let o;for(o=a.exec(e);o;){let s=o[0].replace(/\r\n/g,` | ||
)*?)#log<(\\w*)>log#`,"g");let o;for(o=n.exec(e);o;){let c=o[0].replace(/\r\n/g,` | ||
`).split(` | ||
`),m=o[2].replace(/\r\n/g,` | ||
`),f=o[2].replace(/\r\n/g,` | ||
`).split(` | ||
`);const f=document.createElement("span");let u=o[1];f.className=`c-editor--log__${u}`;let c=0;for(let g=0;g<s.length;g++){let v=s[g],b=m[g],M=f.cloneNode(!1);M.innerText=b,n.push({start:o.index+c,end:o.index+c+v.length,node:M}),c=c+v.length+1}o=a.exec(e)}}return r(),n}function te(e,n=""){return`[${O()}] <${n}> ${e}`}function ne(e="",n=20,r="="){const a=Math.floor(1.5*e.length/2),i=new Array(Math.max(n-a,5)).join(r);return`${i}${e}${i}`}const _=[{regex:/(\[.*?\])([ \t]*)(<error>[ \t])(.+)/,token:["tag",null,"error.strong","error.strong"],sol:!0},{regex:/(\[.*?\])([ \t]*)(<info>)(.+)(.?)/,token:["tag",null,"bracket","bracket","hr"],sol:!0},{regex:/(\[.*?\])([ \t]*)(<warning>)(.+)(.?)/,token:["tag",null,"comment","comment","hr"],sol:!0}];w.default.defineSimpleMode("fclog",{start:[..._,{regex:/.*/,token:"hr"}],error:[..._,{regex:/.*/,token:"error.strong"}],info:[..._,{regex:/.*/,token:"bracket"}],warning:[..._,{regex:/.*\[/,token:"comment"}]}),q.defineSimpleMode("log",{start:[{regex:/^[=]+[^=]*[=]+/,token:"strong"},{regex:/([^\w])([A-Z][\w]*)/,token:[null,"string"]},{regex:/(^[A-Z][\w]*)/,token:"string"}]});const re=window.CodeMirror||w.default,oe=t.defineComponent({name:"codemirror-fclog",props:{value:String,content:String,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 r=t.ref(),a=t.ref(null),o=(s=e.cminstance)=>{s.getAllMarks().forEach(u=>u.clear());const m=s.getValue(),f=[].concat(j(m)).concat(x(m));for(let u=0;u<f.length;u++){const c=f[u];s.markText(s.posFromIndex(c.start),s.posFromIndex(c.end),{replacedWith:c.node})}},i=()=>{a.value=t.markRaw(re.fromTextArea(r.value,e.options)),n("update:cminstance",t.markRaw(a.value)),a.value.on("change",o)};return t.watch(()=>e.cminstance,s=>{s&&(o(e.cminstance),e.cminstance.setValue(e.value||e.content),n("ready",a))},{deep:!0,immediate:!0}),t.onMounted(()=>{i()}),{initialize:i,textarea:r}}}),ae=["name","placeholder"];function le(e,n,r,a,o,i){return t.openBlock(),t.createElementBlock("textarea",{ref:"textarea",name:e.$props.name,placeholder:e.$props.placeholder},null,8,ae)}var ie=$(oe,[["render",le]]);function ce(e){Promise.resolve().then(()=>{let n=e.getScrollInfo();e.scrollTo(n.left,n.height)})}function se({props:e,cminstance:n,ctx:r,internalInstance:a,content:o,componentsEvts:i}){const s=()=>{let m=[];return Object.keys(a.vnode.props).forEach(f=>{if(f.startsWith("on")){let u=f.replace(f[2],f[2].toLowerCase()).slice(2);!i.includes(u)&&m.push(u)}}),m};return{listenerEvents:()=>{n.value.on("change",c=>{const g=c.getValue();g!=o.value&&(o.value=g,r.emit("update:value",o.value),r.emit("input",o.value),Promise.resolve().then(()=>{r.emit("change",o.value,c)}),e.KeepCursorInEnd&&ce(c))});const m={};return s().filter(c=>!m[c]&&(m[c]=!0)).forEach(c=>{n.value.on(c,(...g)=>{r.emit(c,...g)})})}}}function ue({props:e,cminstance:n,presetRef:r}){const a=t.ref(null),o=t.ref(null),i=()=>{t.nextTick(()=>{n.value.refresh()})},s=(u=e.width,c=e.height)=>{a.value=String(u).replace("px",""),o.value=String(c).replace("px","");let g=o.value;n.value.setSize(a.value,g)},h=()=>{const u=n.value.doc.cm.getWrapperElement();u==null||u.remove()},m=()=>document.querySelector(".CodeMirror-gutters").style.left.replace("px","")!="0";return{refresh:i,resize:s,destroy:h,containerHeight:o,reviseStyle:()=>{if(i(),!m())return;let u=setInterval(()=>{m()?i():clearInterval(u)},60),c=setTimeout(()=>{clearInterval(u),clearTimeout(c),u=null,c=null},400)}}}const L=["update:value","change","input","ready"],de=["changes","scroll","beforeChange","cursorActivity","keyHandled","inputRead","electricInput","beforeSelectionChange","viewportChange","swapDoc","gutterClick","gutterContextMenu","focus","blur","refresh","optionChange","scrollCursorIntoView","update"],me={mode:"text",theme:"default",lineNumbers:!0,smartIndent:!0,indentUnit:2,foldGutter:!0,matchBrackets:!0,autoCloseBrackets:!0,styleActiveLine:!0};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 r=Object(e);for(let a=1;a<arguments.length;a++){const o=arguments[a];if(o!=null)for(const i in o)Object.prototype.hasOwnProperty.call(o,i)&&(r[i]=o[i])}return r},writable:!0,configurable:!0});const fe=t.defineComponent({name:"CodemirrorEditor",props:{value:String,marker:Function,unseenLines:Array,name:{type:String,default:""},placeholder:{type:String,default:""},merge:{type:Boolean,default:!1},options:{type:Object,default:()=>({})},globalOptions:{type:Object,default:()=>({})},border:{type:Boolean,default:!1},width:{type:[String,Number],default:null},height:{type:[String,Number],default:null},KeepCursorInEnd:{type:Boolean,default:!1}},emits:[...L,...de],components:{Default:J,Merge:X,FcLog:ie},setup(e,n){var T,I;const r=t.ref(null),a=t.ref(""),o=t.ref("Default"),i=t.ref(Object.assign(E({},me),e.globalOptions,e.options)),s=t.getCurrentInstance(),h=t.ref(null),{refresh:m,resize:f,destroy:u,containerHeight:c,reviseStyle:g}=ue({props:e,cminstance:r,presetRef:h}),{listenerEvents:v}=se({props:e,cminstance:r,ctx:n,internalInstance:s,content:a,componentsEvts:L}),b=()=>{e.unseenLines!==void 0&&e.marker!==void 0&&e.unseenLines.forEach(p=>{const y=r.value.lineInfo(p);r.value.setGutterMarker(p,"breakpoints",y.gutterMarkers?null:e.marker())})},M=p=>{const y=r.value.getValue();p!==y&&(r.value.setValue(p),a.value=p,g()),b()},pe=p=>{v(),b(),f(),n.emit("ready",r.value),t.watch([()=>e.height,()=>e.width],([y,ye])=>{f(y,ye)},{deep:!0})},he=()=>{if(e.options.mode=="fclog"||e.options.mode=="log"){o.value="FcLog";return}if(e.merge){o.value="Merge";return}o.value="default"};return t.watch(()=>e.options,p=>{for(const y in e.options)r.value.setOption(y,p[y])},{deep:!0}),t.watch(()=>e.value,p=>{M(p)}),t.watch(()=>e.merge,p=>{he()},{immediate:!0}),t.onBeforeUnmount(()=>{u()}),{presetModeName:o,cmOptions:i,cminstance:r,content:a,ready:pe,resize:f,containerHeight:c,instanceName:e.name||((I=(T=s==null?void 0:s.parent)==null?void 0:T.type)==null?void 0:I.name)||void 0,presetRef:h}}});function ge(e,n,r,a,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":n[0]||(n[0]=s=>e.cminstance=s)},A(E(E({},e.$props),e.$attrs),{options:e.cmOptions,name:e.instanceName,content:e.content}),{onReady:e.ready}),null,16,["cminstance","onReady"]))],6)}var k=$(fe,[["render",ge]]),Se="",Ce="";k.install=(e,n)=>(n&&(n.options&&(k.props.globalOptions.default=()=>n.options),n.events&&(k.props.globalEvents.default=()=>n.events)),e.component("Codemirror",k),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; | ||
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=k,l.createLinkMark=Y,l.createLog=te,l.createLogMark=ee,l.createTitle=ne,l.default=k,l.getLinkMark=j,l.getLocalTime=O,l.getLogMark=x,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=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"}); |
{ | ||
"name": "codemirror-editor-vue3", | ||
"description": "CodeMirror component for Vue3", | ||
"version": "1.1.0-beta1", | ||
"version": "1.1.0-beta11", | ||
"license": "MIT", | ||
"files": [ | ||
"dist", | ||
"types/*.d.ts" | ||
"dist/codemirror-editor-vue3.es.js", | ||
"dist/codemirror-editor-vue3.umd.js", | ||
"dist/lib/*", | ||
"dist/style.css" | ||
], | ||
"types": "types/index.d.ts", | ||
"typings": "types/*.d.ts", | ||
"types": "./dist/packages/index.d.ts", | ||
"main": "./dist/codemirror-editor-vue3.umd.js", | ||
@@ -53,2 +54,3 @@ "module": "./dist/codemirror-editor-vue3.es.js", | ||
"build": "vite build", | ||
"build:types": "tsc --emitDeclarationOnly vite build", | ||
"publish": "git push && git push --tags && npm publish && npm run deploy-docs", | ||
@@ -65,2 +67,6 @@ "docs-dev": "vitepress dev docs --open", | ||
"devDependencies": { | ||
"@commitlint/cli": "^16.1.0", | ||
"@commitlint/config-conventional": "^16.0.0", | ||
"@types/codemirror": "^5.60.5", | ||
"@types/diff-match-patch": "^1.0.32", | ||
"@types/node": "^16.11.13", | ||
@@ -70,2 +76,3 @@ "@typescript-eslint/eslint-plugin": "^5.7.0", | ||
"@vitejs/plugin-vue": "^2.0.1", | ||
"@vitejs/plugin-vue-jsx": "^1.3.7", | ||
"@vue/cli-plugin-typescript": "~4.5.15", | ||
@@ -76,7 +83,8 @@ "@vue/compiler-sfc": "^3.2.26", | ||
"diff-match-patch": "^1.0.5", | ||
"eslint": "^8.4.1", | ||
"eslint": "^8.7.0", | ||
"eslint-config-airbnb-base": "^15.0.0", | ||
"eslint-config-prettier": "^8.3.0", | ||
"eslint-plugin-import": "^2.25.3", | ||
"eslint-plugin-import": "^2.25.4", | ||
"eslint-plugin-prettier": "^4.0.0", | ||
"eslint-plugin-vue": "^8.2.0", | ||
"eslint-plugin-vue": "^8.3.0", | ||
"less": "^4.1.2", | ||
@@ -86,3 +94,6 @@ "rollup-plugin-cpy": "^2.0.1", | ||
"typescript": "^4.5.4", | ||
"unplugin-auto-import": "^0.5.11", | ||
"vite": "^2.7.2", | ||
"vite-plugin-checker": "^0.4.2", | ||
"vite-plugin-dts": "^0.9.9", | ||
"vitepress": "^0.20.8", | ||
@@ -89,0 +100,0 @@ "vue": "^3.2.26", |
41586
31
7
775