mylomen-server/static/js/event/impl/EmptyInputEventImpl.js

115 lines
4.6 KiB
JavaScript
Raw Normal View History

2024-11-05 22:43:34 +08:00
"use strict";
/**
* 输入内容为空# /- /1. /
*/
define(function (require, exports, module) {
function handle(event) {
const utils = require('../../common/utils');
const Node = require('../../common/node');
let curP = utils.GetEventTarget(event);
let myDocItem = new Node(curP);
// let inputLength = curP.innerText.length
// console.log("emptyKeyWorkHandler :", curP, " _'", curP.innerHTML, "'_'", curP.innerText, "'_",
// "\neq1", curP.innerHTML.startsWith(" # "),
// "\neq2", curP.innerHTML.startsWith(" # "),
// "\neq3", curP.innerHTML.startsWith("# "),
// "\neq4", curP.innerHTML.startsWith("# "),
//
// "\neqV1", curP.innerText.startsWith(" # "),
// "\neqV2", curP.innerText.startsWith(" # "),
// "\neqV3", curP.innerText.startsWith("# "),
// "\neqV4", curP.innerText.startsWith("# "),
//
// )
/**
* h1 ~ h6
*/
if (curP.innerText.startsWith("#")) {
let curNo = myDocItem.parseOrder();
let mapNode = ctx.MyDocMap.get(curNo);
if (curP.innerHTML.startsWith("######")) {
mapNode.getStyle().setNodeType("h6")
curP.innerHTML = curP.innerHTML.replace("######", "")
this.becomeAnotherElement(curP, "h6")
} else if (curP.innerHTML.startsWith("#####")) {
mapNode.getStyle().setNodeType("h5")
curP.innerHTML = curP.innerHTML.replace("#####", "")
this.becomeAnotherElement(curP, "h5")
} else if (curP.innerHTML.startsWith("####")) {
mapNode.getStyle().setNodeType("h4")
curP.innerHTML = curP.innerHTML.replace("####", "")
this.becomeAnotherElement(curP, "h4")
} else if (curP.innerHTML.startsWith("###")) {
mapNode.getStyle().setNodeType("h3")
curP.innerHTML = curP.innerHTML.replace("###", "")
this.becomeAnotherElement(curP, "h3")
} else if (curP.innerHTML.startsWith("##")) {
mapNode.getStyle().setNodeType("h2")
curP.innerHTML = curP.innerHTML.replace("##", "")
this.becomeAnotherElement(curP, "h2")
} else {
mapNode.getStyle().setNodeType("h1")
curP.innerHTML = curP.innerHTML.replace("#", "")
this.becomeAnotherElement(curP, "h1")
}
}
/**
* 无序列表效果
*/
if (curP.innerText.startsWith("-")) {
let curNo = myDocItem.parseOrder();
let mapNode = ctx.getMapItem(curNo);
mapNode.getStyle().setPreStyle("ul", true)
//clean
let historyContent = curP.innerHTML.replace("-", "");
mapNode.setSource(curP.innerText)
//根据上一层级元素动态选择 todo
curP.setAttribute("style", "padding-left: 1rem;")
//新增元素
let newParagraph = document.createElement("span");
newParagraph.setAttribute("contenteditable", "false");
//∙ vs ∘
newParagraph.innerHTML = "∙  "
curP.innerHTML = ""
curP.append(newParagraph);
curP.innerHTML = curP.innerHTML + historyContent
//收起选区到一个点,光标落在一个可编辑元素上
utils.GetSelection().collapse(curP, true)
}
/**
* 有序列表效果
*/
let preContent = curP.innerText.split("\.")[0]
if (window.myEdit.utils.IsNum(preContent)) {
let curNo = myDocItem.parseOrder();
let mapNode = ctx.MyDocMap.get(curNo);
mapNode.getStyle().setPreStyle("ol", preContent)
//clean
let historyContent = curP.innerHTML.replace(preContent + ".", "");
mapNode.setSource(curP.innerText)
//todo
curP.setAttribute("style", "padding-left: 1rem;")
//新增元素
let newParagraph = document.createElement("span");
newParagraph.setAttribute("contenteditable", "false");
newParagraph.innerHTML = preContent + ". "
curP.innerHTML = ""
curP.append(newParagraph);
curP.innerHTML = curP.innerHTML + historyContent
//收起选区到一个点,光标落在一个可编辑元素上
utils.GetSelection().collapse(curP, true)
}
}
//导出
exports.handle = handle;
});