Your IP : 216.73.216.85


Current Path : /home/smartconb/www/armencom33/media/com_jce/editor/tinymce/plugins/figure/
Upload File :
Current File : /home/smartconb/www/armencom33/media/com_jce/editor/tinymce/plugins/figure/plugin.js

/* jce - 2.9.82 | 2024-11-20 | https://www.joomlacontenteditor.net | Source: https://github.com/widgetfactory/jce | Copyright (C) 2006 - 2024 Ryan Demmer. All rights reserved | GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html */
!function() {
    var VK = tinymce.VK, Node = tinymce.html.Node, each = tinymce.each, blocks = [];
    tinymce.PluginManager.add("figure", function(ed, url) {
        ed.onPreInit.add(function(ed) {
            ed.parser.addNodeFilter("figure", function(nodes, name) {
                for (var figcaption, node, i = nodes.length; i--; ) 0 === (node = nodes[i]).getAll("figcaption").length && ((figcaption = new Node("figcaption", 1)).attr("data-mce-empty", ed.getLang("figcaption.default", "Write a caption...")), 
                figcaption.attr("contenteditable", !0), node.append(figcaption)), 
                node.attr("data-mce-image", "1"), node.attr("contenteditable", "false"), 
                each(node.getAll("img"), function(img) {
                    img.attr("data-mce-contenteditable", "true");
                }), !1 !== ed.settings.figure_data_attribute && node.attr("data-wf-figure", "1");
            }), ed.parser.addNodeFilter("figcaption", function(nodes, name) {
                for (var node, i = nodes.length; i--; ) (node = nodes[i]).firstChild || node.attr("data-mce-empty", ed.getLang("figcaption.default", "Write a caption...")), 
                node.attr("contenteditable", "true");
            }), ed.serializer.addNodeFilter("figure", function(nodes, name) {
                for (var node, i = nodes.length; i--; ) (node = nodes[i]).attr("contenteditable", null), 
                each(node.getAll("img"), function(img) {
                    img.attr("data-mce-contenteditable", null);
                });
            }), ed.serializer.addNodeFilter("figcaption", function(nodes, name) {
                for (var node, i = nodes.length; i--; ) (node = nodes[i]).firstChild ? node.attr("contenteditable", null) : node.remove();
            }), ed.serializer.addAttributeFilter("data-mce-image", function(nodes, name) {
                for (var i = nodes.length; i--; ) nodes[i].attr(name, null);
            }), each(ed.schema.getBlockElements(), function(v, k) {
                if (/\W/.test(k)) return !0;
                blocks.push(k.toLowerCase());
            }), ed.formatter.register("figure", {
                block: "figure",
                remove: "all",
                ceFalseOverride: !0,
                deep: !1,
                onformat: function(elm, fmt, vars, node) {
                    vars = vars || {}, ed.dom.select("img,video,iframe", elm) && (ed.dom.setAttribs(elm, {
                        "data-mce-image": 1,
                        contenteditable: !1
                    }), ed.dom.setAttrib(ed.dom.select("img", elm), "data-mce-contenteditable", "true"), 
                    ed.dom.add(elm, "figcaption", {
                        "data-mce-empty": ed.getLang("figcaption.default", "Write a caption..."),
                        contenteditable: !0
                    }, vars.caption || ""), !1 !== ed.settings.figure_data_attribute) && ed.dom.setAttribs(elm, {
                        "data-wf-figure": "1"
                    });
                },
                onremove: function(node) {
                    ed.dom.remove(ed.dom.select("figcaption", node)), ed.dom.remove(ed.dom.getParent("figure", node), 1);
                }
            }), ed.onBeforeExecCommand.add(function(ed, cmd, ui, v, o) {
                var parent, se = ed.selection, n = se.getNode();
                switch (cmd) {
                  case "JustifyRight":
                  case "JustifyLeft":
                  case "JustifyCenter":
                    n && ed.dom.is(n, "img,span[data-mce-object]") && (parent = ed.dom.getParent(n, "FIGURE")) && (se.select(parent), 
                    ed.execCommand(cmd, !1), o.terminate = !0);
                }
            }), ed.onKeyDown.add(function(ed, e) {
                var container, offset, isDelete = e.keyCode == VK.DELETE;
                if (!e.isDefaultPrevented() && (isDelete || e.keyCode == VK.BACKSPACE) && !VK.modifierPressed(e) && (container = (isDelete = ed.selection.getRng()).startContainer, 
                offset = isDelete.startOffset, isDelete = isDelete.collapsed, container = ed.dom.getParent(container, "FIGURE"))) {
                    var node = ed.selection.getNode();
                    if ("IMG" === node.nodeName) ed.dom.remove(container), ed.nodeChanged(), 
                    e.preventDefault(); else if ("FIGCAPTION" != node.nodeName || node.nodeValue && 0 !== node.nodeValue.length || 0 !== node.childNodes.length || e.preventDefault(), 
                    3 === node.nodeType && !isDelete && !offset) {
                        var figcaption = ed.dom.getParent(node, "FIGCAPTION");
                        if (figcaption) {
                            for (;figcaption.firstChild; ) figcaption.removeChild(figcaption.firstChild);
                            e.preventDefault();
                        }
                    }
                }
            });
        });
    });
}();