@opentiny/fluent-editor
Version:
A rich text editor based on Quill 2.0, which extends rich modules and formats on the basis of Quill. It's powerful and out-of-the-box.
46 lines (45 loc) • 1.74 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const Quill = require("quill");
const flowChartBlot = require("./formats/flow-chart-blot.cjs.js");
class FlowChartModule {
constructor(quill, options) {
__publicField(this, "quill");
__publicField(this, "toolbar");
__publicField(this, "options");
quill.container.__quillInstance = quill;
this.quill = quill;
this.options = options;
this.toolbar = quill.getModule("toolbar");
if (this.toolbar) {
this.toolbar.addHandler("flow-chart", () => {
this.insertFlowChartEditor();
});
}
}
static register() {
Quill.register("formats/flow-chart", flowChartBlot.default, true);
}
insertFlowChartEditor() {
const range = this.quill.getSelection();
if (range) {
const defaultData = {
nodes: [
{ id: "node1", type: "rect", x: 100, y: 150, text: "开始" },
{ id: "node2", type: "rect", x: 300, y: 150, text: "结束" }
],
edges: [
{ id: "edge1", sourceNodeId: "node1", targetNodeId: "node2", type: "polyline" }
]
};
this.quill.insertText(range.index, "\n", "user");
this.quill.insertEmbed(range.index + 1, "flow-chart", defaultData, "user");
this.quill.insertText(range.index + 2, "\n", "user");
}
}
}
exports.FlowChartModule = FlowChartModule;
//# sourceMappingURL=index.cjs.js.map