"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;
});