vue-admin-core
Version:
A Component Library for Vue 3
93 lines (88 loc) • 2.28 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var Toolbar = require('./Toolbar.js');
var Editor = require('./Editor.js');
var lodashEs = require('lodash-es');
var elementPlus = require('element-plus');
var _const = require('../../../utils/const.js');
const prefixCls = _const.getPrefixCls("rich-text");
var RichText = vue.defineComponent({
name: "VacRichText",
inheritAttrs: false,
props: {
/** 编辑器模式 */
mode: {
type: String,
default: "default"
},
toolbarConfig: {
type: Object,
default: () => ({})
},
/** 编辑器默认内容 */
defaultContent: {
type: Array,
default: () => []
},
defaultHtml: {
type: String,
default: ""
},
/** 编辑器默认配置 */
defaultConfig: {
type: Object,
default: () => ({})
},
/* 自定义 v-model */
modelValue: {
type: String,
default: ""
},
/** 是否禁用 */
disabled: {
type: Boolean
},
readOnly: {
type: Boolean
},
placeholder: {
type: String
}
},
emits: [elementPlus.UPDATE_MODEL_EVENT, elementPlus.CHANGE_EVENT],
setup(props, {
attrs,
emit
}) {
const editorRef = vue.shallowRef(null);
return () => {
return vue.h("div", {
...lodashEs.omit(attrs, ["value"]),
class: [prefixCls, attrs.class]
}, {
default: () => [vue.h(Toolbar.default, {
editor: editorRef.value,
mode: props.mode,
defaultConfig: props.toolbarConfig
}), vue.h(Editor.default, {
mode: props.mode,
defaultContent: props.defaultContent,
defaultHtml: props.defaultHtml,
defaultConfig: props.defaultConfig,
modelValue: props.modelValue,
disabled: props.disabled,
readOnly: props.readOnly,
placeholder: props.placeholder,
"onUpdate:modelValue": (value) => {
emit(elementPlus.UPDATE_MODEL_EVENT, value);
emit(elementPlus.CHANGE_EVENT, value);
},
onCreated: (editor) => editorRef.value = editor
})]
});
};
}
});
exports.default = RichText;
//# sourceMappingURL=index.js.map