Your IP : 216.73.216.85


Current Path : /home/smartconb/www/armencom33/media/com_jce/editor/tinymce/plugins/attributes/
Upload File :
Current File : /home/smartconb/www/armencom33/media/com_jce/editor/tinymce/plugins/attributes/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 languageValues = {
        Afrikaans: "af",
        Albanian: "sq",
        "Arabic (Algeria)": "ar-DZ",
        "Arabic (Bahrain)": "ar-BH",
        "Arabic (Egypt)": "ar-EG",
        "Arabic (Iraq)": "ar-IQ",
        "Arabic (Jordan)": "ar-JO",
        "Arabic (Kuwait)": "ar-KW",
        "Arabic (Lebanon)": "ar-LB",
        "Arabic (Libya)": "ar-LY",
        "Arabic (Morocco)": "ar-MA",
        "Arabic (Oman)": "ar-OM",
        "Arabic (Qatar)": "ar-QA",
        "Arabic (Saudi Arabia)": "ar-SA",
        "Arabic (Syria)": "ar-SY",
        "Arabic (Tunisia)": "ar-TN",
        "Arabic (U.A.E.)": "ar-AE",
        "Arabic (Yemen)": "ar-YE",
        Basque: "eu",
        Belarusian: "be",
        Bulgarian: "bg",
        Catalan: "ca",
        "Chinese (Hong Kong)": "zh-HK",
        "Chinese (PRC)": "zh-CN",
        "Chinese (Singapore)": "zh-SG",
        "Chinese (Taiwan)": "zh-TW",
        Croatian: "hr",
        Czech: "cs",
        Danish: "da",
        "Dutch (Belgium)": "nl-BE",
        "Dutch (Standard)": "nl",
        English: "en",
        "English (Australia)": "en-AU",
        "English (Belize)": "en-BZ",
        "English (Canada)": "en-CA",
        "English (Ireland)": "en-IE",
        "English (Jamaica)": "en-JM",
        "English (New Zealand)": "en-NZ",
        "English (South Africa)": "en-ZA",
        "English (Trinidad)": "en-TT",
        "English (United Kingdom)": "en-GB",
        "English (United States)": "en-US",
        Estonian: "et",
        Faeroese: "fo",
        Farsi: "fa",
        Finnish: "fi",
        "French (Belgium)": "fr-BE",
        "French (Canada)": "fr-CA",
        "French (Luxembourg)": "fr-LU",
        "French (Standard)": "fr",
        "French (Switzerland)": "fr-CH",
        "Gaelic (Scotland)": "gd",
        "German (Austria)": "de-AT",
        "German (Liechtenstein)": "de-LI",
        "German (Luxembourg)": "de-LU",
        "German (Standard)": "de",
        "German (Switzerland)": "de-CH",
        Greek: "el",
        Hebrew: "he",
        Hindi: "hi",
        Hungarian: "hu",
        Icelandic: "is",
        Indonesian: "id",
        Irish: "ga",
        "Italian (Standard)": "it",
        "Italian (Switzerland)": "it-CH",
        Japanese: "ja",
        Korean: "ko",
        "Korean (Johab)": "ko",
        Kurdish: "ku",
        Latvian: "lv",
        Lithuanian: "lt",
        "Macedonian (FYROM)": "mk",
        Malayalam: "ml",
        Malaysian: "ms",
        Maltese: "mt",
        Norwegian: "no",
        "Norwegian (Bokm\xe5l)": "nb",
        "Norwegian (Nynorsk)": "nn",
        Polish: "pl",
        "Portuguese (Brazil)": "pt-BR",
        "Portuguese (Portugal)": "pt",
        Punjabi: "pa",
        "Rhaeto-Romanic": "rm",
        Romanian: "ro",
        "Romanian (Republic of Moldova)": "ro-MD",
        Russian: "ru",
        "Russian (Republic of Moldova)": "ru-MD",
        Serbian: "sr",
        Slovak: "sk",
        Slovenian: "sl",
        Sorbian: "sb",
        "Spanish (Argentina)": "es-AR",
        "Spanish (Bolivia)": "es-BO",
        "Spanish (Chile)": "es-CL",
        "Spanish (Colombia)": "es-CO",
        "Spanish (Costa Rica)": "es-CR",
        "Spanish (Dominican Republic)": "es-DO",
        "Spanish (Ecuador)": "es-EC",
        "Spanish (El Salvador)": "es-SV",
        "Spanish (Guatemala)": "es-GT",
        "Spanish (Honduras)": "es-HN",
        "Spanish (Mexico)": "es-MX",
        "Spanish (Nicaragua)": "es-NI",
        "Spanish (Panama)": "es-PA",
        "Spanish (Paraguay)": "es-PY",
        "Spanish (Peru)": "es-PE",
        "Spanish (Puerto Rico)": "es-PR",
        "Spanish (Spain)": "es",
        "Spanish (Uruguay)": "es-UY",
        "Spanish (Venezuela)": "es-VE",
        Swedish: "sv",
        "Swedish (Finland)": "sv-FI",
        Thai: "th",
        Tsonga: "ts",
        Tswana: "tn",
        Turkish: "tr",
        Ukrainian: "ua",
        Urdu: "ur",
        Venda: "ve",
        Vietnamese: "vi",
        Welsh: "cy",
        Xhosa: "xh",
        Yiddish: "ji",
        Zulu: "zu"
    }, each = tinymce.each, extend = tinymce.extend;
    tinymce.PluginManager.add("attributes", function(ed, url) {
        function isRootNode(node) {
            return node == ed.dom.getRoot();
        }
        ed.onPreInit.add(function() {
            ed.formatter.register({
                attributes: {
                    inline: "span",
                    remove: "all",
                    onformat: function(elm, fmt, vars) {
                        each(vars, function(value, key) {
                            ed.dom.setAttrib(elm, key, value);
                        });
                    }
                }
            });
        }), ed.addButton("attribs", {
            title: "attributes.desc",
            onclick: function() {
                var mediaApi, cm = ed.controlManager, node = ed.selection.getNode(), nodeAttribs = function(node) {
                    var attribs = {};
                    if (node) for (var attrs = node.attributes, i = attrs.length - 1; 0 <= i; i--) {
                        var name = attrs[i].name;
                        "_" !== name.charAt(0) && -1 === name.indexOf("-mce-") && (attribs[name] = node.getAttribute(name));
                    }
                    return attribs;
                }(node = isRootNode(node = ed.dom.getParent(node, function(n) {
                    return "false" != n.getAttribute("contenteditable");
                }, ed.getBody())) ? null : node), attribsMap = {
                    id: "",
                    title: "",
                    class: "",
                    lang: "",
                    dir: ""
                }, custom = [], form = ((mediaApi = ed.plugins.media ? ed.plugins.media : mediaApi) && mediaApi.isMediaObject(node) && (nodeAttribs = mediaApi.getMediaData()), 
                each(nodeAttribs, function(value, name) {
                    if (name in attribsMap) "class" == name && (value = value.replace(/\bmce-\S+\s*/g, "").replace(/\s+$/, " ").trim()), 
                    attribsMap[name] = value; else {
                        var attr = {};
                        if ("_" === name.charAt(0) || -1 !== name.indexOf("-mce-")) return !0;
                        value && (0 == name.indexOf("on") && (value = ed.dom.getAttrib(node, "data-mce-" + name) || value), 
                        attr[name] = value, custom.push(attr));
                    }
                }), cm.createForm("attributes_form")), stylesList = (each([ "title", "id" ], function(name) {
                    form.add(cm.createTextBox("attributes_" + name, {
                        label: ed.getLang("attributes.label_" + name, name),
                        name: name
                    }));
                }), cm.createStylesBox("attributes_class", {
                    label: ed.getLang("attributes.label_class", "Classes"),
                    onselect: function() {},
                    name: "class"
                })), langList = (form.add(stylesList), cm.createListBox("attributes_lang", {
                    label: ed.getLang("attributes.label_lang", "Language"),
                    onselect: function(v) {},
                    name: "lang",
                    filter: !0
                })), dirList = (langList.add("--", ""), each(languageValues, function(value, name) {
                    langList.add(name, value);
                }), form.add(langList), cm.createListBox("attributes_dir", {
                    label: ed.getLang("attributes.label_dir", "Text Direction"),
                    onselect: function(v) {},
                    name: "dir"
                })), repeatable = (dirList.add(ed.getLang("common.not_set", "-- Not set --"), ""), 
                each([ "ltr", "rtl" ], function(value) {
                    dirList.add(ed.getLang("attributes.label_dir_" + value, value), value);
                }), form.add(dirList), cm.createRepeatable("attributes_custom_repeatable", {
                    label: "Other",
                    name: "custom",
                    item: {
                        type: "CustomValue",
                        id: "attributes_custom",
                        settings: {}
                    }
                }));
                form.add(repeatable), ed.windowManager.open({
                    title: ed.getLang("attributes.title", "Attributes"),
                    items: [ form ],
                    size: "mce-modal-landscape-large",
                    open: function() {
                        form.update(attribsMap), repeatable.value(custom);
                    },
                    buttons: [ {
                        title: ed.getLang("common.cancel", "Cancel"),
                        id: "cancel"
                    }, {
                        title: ed.getLang("common.update", "Update"),
                        id: "insert",
                        onsubmit: function(e) {
                            var node = ed.selection.getNode(), selection = ed.selection, data = form.submit();
                            data.custom && (each(data.custom, function(item) {
                                data = extend(data, item);
                            }), delete data.custom), each(data, function(value, name) {
                                "onclick" != name && "ondblclick" != name || (delete data[name], 
                                data["data-mce-" + name] = value, delete nodeAttribs["data-mce-" + name]), 
                                delete nodeAttribs[name];
                            }), !selection.isCollapsed() && selection.getContent() == selection.getContent({
                                format: "text"
                            }) ? ed.formatter.apply("attributes", data) : node && !isRootNode(node) && (each(nodeAttribs, function(val, name) {
                                data[name] = null, "onclick" != name && "ondblclick" != name || (data["data-mce-" + name] = null);
                            }), mediaApi && mediaApi.isMediaObject(node) ? mediaApi.updateMedia(data) : ed.dom.setAttribs(node, data)), 
                            tinymce.dom.Event.cancel(e);
                        },
                        classes: "primary",
                        autofocus: !0
                    } ]
                });
            }
        }), ed.onNodeChange.add(function(ed, cm, n, co) {
            cm.setDisabled("attributes", n && isRootNode(n) && co);
        });
    });
}();