Editor.js



Wyg.Editor = class {

    static enable(node,template,controlPanel){
        this.editorNode = node;
        this.template = template;
        this.controlPanel = controlPanel;

        node.innerHTML = template.getEditorHtml();
        node.addEventListener('click', Wyg.Editor.nodeClickedEvent.bind(Wyg.Editor));
    }

    static nodeClickedEvent(event){
        console.log('node clicked');
        console.log(event.target);
        console.log('-----');
        const clickedNode = event.target;
        let editableNode = this.getEditableNode(clickedNode);
        let template = new Wyg.Template(editableNode.outerHTML);
        let editControlsContainer = template.getControlsContainer();
        this.controlPanel.innerHTML = '';
        this.controlPanel.appendChild(editControlsContainer);
    }

    static getEditableNode(clickedNode){
        return clickedNode;
        let parentNode = clickedNode.parentNode;
        if (parentNode===this.editorNode){
            console.log('clicked');
            return clickedNode;
        }
        let nodeTemplate = new Wyg.Template(clickedNode.outerHTML);
        if (nodeTemplate.valueEntries.length<=3
            &&clickedNode.children.length<=1){
                console.log('parent');
            return parentNode;
        }
        console.log('clickedNode');
        console.log(nodeTemplate);
        console.log(clickedNode.children);
        return clickedNode;
    }
};