/**
* attachment (Enhancement 1.5v) 2021-01-13
*
*
* https://github.com/Five-great/tinymce-plugins
*
* Copyright 2021, Five(Li Hailong) The Chengdu, China https://www.fivecc.cn/
*
* Licensed under MIT
*/
!function() {
"use strict";
var Qeider = null;
function d(e, t) {
if (void 0 === t && (t = 2), 0 === e) return "0 B";
var n = t < 0 ? 0 : t,
i = Math.floor(Math.log(e) / Math.log(1024));
return parseFloat((e / Math.pow(1024, i)).toFixed(n)) + " " + ["B", "K", "M", "G", "T", "P", "E", "Z", "Y"][i]
}
function i(o) {
o.focus(), e(function(e) {
for (var t = 0, n = e; t < n.length; t++) {
var i = n[t];
r(o, i, function(e, t) {
var n = "span#" + e;
0 < o.dom.select(n).length ? o.dom.replace(t, e) : o.selection.setContent(t.outerHTML)
})
}
})
}
function n(e) {
var t = document.createElement("a");
t.target = "_blank", t.href = e, t.rel = "noreferrer noopener";
var n, i, o = document.createEvent("MouseEvents");
o.initMouseEvent("click", !0, !0, window, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, null), n = t, i = o, document.body.appendChild(n), n.dispatchEvent(i), document.body.removeChild(n)
}
function o(t) {
Qeider = t;
t.ui.registry.getAll().icons.attachment || t.ui.registry.addIcon("attachment", ''), t.ui.registry.addButton("attachment", {
icon: "attachment",
tooltip: "插入附件",
onAction: function() {
return i(t)
}
}), t.ui.registry.addMenuItem("attachment", {
icon: "attachment",
text: "插入附件",
onAction: function() {
return i(t)
}
}), t.ui.registry.addButton("attachment-download", {
text: "下载",
onAction: function() {
return e = function(e) {
for (var t = 0, n = e.selection.getNode().children; t < n.length; t++) {
var i = n[t];
if (i.hasAttribute("href")) return i.getAttribute("href")
}
return "#"
}(t), void n(e);
var e
}
}), t.ui.registry.addContextToolbar("attachment", {
predicate: function(e) {
return !!a(t, e)
},
items: "attachment-download",
position: "node",
scope: "node"
})
}
var global$1 = tinymce.util.Tools.resolve('tinymce.util.Promise');
var global$2 = tinymce.util.Tools.resolve('tinymce.Env');
var global$3 = tinymce.util.Tools.resolve('tinymce.util.Delay');
var pickFile = function(a) {
return new global$1(function(e) {
var c = document.createElement("input");
c.type = "file";
c.style.position = "fixed";
c.style.left = "0";
c.style.top = "0";
c.style.opacity = "0.001";
document.body.appendChild(c);
var b = function(f) {
e(Array.prototype.slice.call(f.target.files))
};
c.addEventListener("change", b);
var d = function(g) {
var f = function() {
e([]);
c.parentNode.removeChild(c)
};
if (global$2.os.isAndroid() && g.type !== "remove") {
global$3.setEditorTimeout(a, f, 0)
} else {
f()
}
a.off("focusin remove", d)
};
a.on("focusin remove", d);
c.click()
})
};
var e = function(n) {
var e = document.createElement("input");
e.setAttribute("type", "file"), e.setAttribute("accept", "*/*"), e.setAttribute("multiple", "multiple"), e.onchange = function(e) {
var t = e.target.files;
null != n && n(t)
}, e.click()
},
r = function(a, t, n) {
var e, i, o, c, r, l, p, _, f, s = a.getParam("attachment_max_size") || 209715200;
t.size > s ? (e = d(s), a.notificationManager.open({
text: "附件最大支持 " + e + ",超过 " + e + " 的附件将不会被上传。",
type: "warning",
timeout: 5e3
})) : (i = a.getParam("attachment_upload_handler"), o = a.getParam('attachment_icons_path','./plugins/attachment/icons'), c = a.dom.uniqueId(), r = "attachment_" + c, l = d(t.size), p = o + "/" +
function(e) {
if (e) {
var t = e.lastIndexOf(".");
if (-1 === t) return "default_file.svg";
for (var n = e.substr(t + 1).toLowerCase(), i = 0, o = [{
ext: "txt",
icon: "file_type_text"
}, {
ext: "doc",
icon: "file_type_word2"
}, {
ext: "docx",
icon: "file_type_word2"
}, {
ext: "pdf",
icon: "file_type_pdf2"
}, {
ext: "xls",
icon: "file_type_excel2"
}, {
ext: "xlsx",
icon: "file_type_excel2"
}, {
ext: "ppt",
icon: "file_type_powerpoint2"
}, {
ext: "pptx",
icon: "file_type_powerpoint2"
}, {
ext: "ai",
icon: "file_type_ai2"
}, {
ext: "psd",
icon: "file_type_photoshop2"
}, {
ext: "zip",
icon: "file_type_zip"
}, {
ext: "rar",
icon: "file_type_zip"
}, {
ext: "jpg",
icon: "file_type_image"
}, {
ext: "jpeg",
icon: "file_type_image"
}, {
ext: "png",
icon: "file_type_image"
}, {
ext: "gif",
icon: "file_type_image"
}, {
ext: "js",
icon: "file_type_js"
}, {
ext: "xml",
icon: "file_type_xml"
}, {
ext: "htm",
icon: "file_type_html"
}, {
ext: "html",
icon: "file_type_html"
}, {
ext: "json",
icon: "file_type_light_json"
}, {
ext: "fon",
icon: "file_type_light_font"
}, {
ext: "font",
icon: "file_type_light_font"
}, {
ext: "svg",
icon: "file_type_image"
}, {
ext: "exe",
icon: "file_type_binary"
}, {
ext: "bin",
icon: "file_type_binary"
}, {
ext: "dll",
icon: "file_type_binary"
}, {
ext: "pkg",
icon: "file_type_package"
}, {
ext: "wav",
icon: "file_type_audio"
}, {
ext: "mp3",
icon: "file_type_audio"
}, {
ext: "mp4",
icon: "file_type_video"
}, {
ext: "mov",
icon: "file_type_video"
}, {
ext: "avi",
icon: "file_type_video"
}, {
ext: "java",
icon: "file_type_java"
}, {
ext: "cs",
icon: "file_type_csharp"
}, {
ext: "css",
icon: "file_type_css"
}, {
ext: "py",
icon: "file_type_python"
}, {
ext: "sln",
icon: "file_type_vscode3"
}, {
ext: "go",
icon: "file_type_go"
}, {
ext: "7z",
icon: "file_type_zip"
}, {
ext: "sketch",
icon: "file_type_sketch"
}, {
ext: "patch",
icon: "file_type_patch"
}, {
ext: "org",
icon: "file_type_org"
}, {
ext: "md",
icon: "file_type_markdown"
}, {
ext: "jar",
icon: "file_type_jar"
}, {
ext: "dmg",
icon: "file_type_dmg"
}, {
ext: "accdb",
icon: "file_type_access"
}, {
ext: "apk",
icon: "file_type_apk"
}, {
ext: "eps",
icon: "file_type_eps"
}, {
ext: "ico",
icon: "file_type_ico"
}, {
ext: "iso",
icon: "file_type_iso"
}, {
ext: "key",
icon: "file_type_keynote"
}, {
ext: "numbers",
icon: "file_type_number"
}, {
ext: "reg",
icon: "file_type_reg"
}, {
ext: "rp",
icon: "file_type_rp"
}, {
ext: "rtf",
icon: "file_type_rtf"
}, {
ext: "sketch",
icon: "file_type_sketch"
}, {
ext: "swf",
icon: "file_type_swf"
}, {
ext: "url",
icon: "file_type_url"
}, {
ext: "wma",
icon: "file_type_wma"
}, {
ext: "xmind",
icon: "file_type_xmind"
}, {
ext: "cat",
icon: "file_type_cat"
}]; i < o.length; i++) {
var a = o[i];
if (a.ext === n) return a.icon + ".svg"
}
}
return "default_file.svg"
}(t.name), _ = o + "/error.png", f = function(e, t) {
var n = document.createElement("img");
n.setAttribute("src", t.icon);
n.setAttribute("width", '30px');
var i = document.createElement("span");
i.setAttribute("id", "progress_" + t.id), i.innerText = "0%";
var o = document.createElement("span");
o.innerText = t.title + " (" + t.size + ")";
var a = e.dom.create("span", {
id: "attachment_" + t.id,
class: "attachment upload_progress"
});
return a.appendChild(n), a.appendChild(i), a.appendChild(o), a.contentEditable = "false", a
}(a, {
id: c,
icon: o + "/loading.gif",
title: t.name,
size: l
}), n(r, f), i(t, function(e) {
f = function(e, t) {
var n = document.createElement("img");
n.setAttribute("src", t.icon);
n.setAttribute("width", '30px');
var i = document.createElement("a");
i.innerText = t.title + " (" + t.size + ")", i.setAttribute("href", t.src);
var o = e.dom.create("span", {
id: "attachment_" + t.id,
class: "attachment"
});
return o.appendChild(n), o.appendChild(i), o.contentEditable = "false", o
}(a, {
id: c,
icon: p,
title: t.name,
size: l,
src: e
}), n(r, f)
}, function(e) {
f = function(e, t) {
var n = document.createElement("img");
n.setAttribute("src", t.icon);
n.setAttribute("width", "30px");
var i = document.createElement("span");
i.innerText = t.message + " - " + t.title + " (" + t.size + ")";
var o = e.dom.create("span", {
class: "attachment upload_error"
});
return o.appendChild(n), o.appendChild(i), o.contentEditable = "false", o
}(a, {
icon: _,
title: t.name,
size: l,
message: e
}), n(r, f)
}, function(e) {
var t, n, i, o;
n = c, i = e, o = (t = a).dom.select("span#progress_" + n), t.dom.setHTML(o, i)
}))
},
a = function(e, t) {
return t = t || e.selection.getNode(), e.dom.getParent(t, 'span[class="attachment"]')
};
tinymce.PluginManager.add("attachment", function(e, t) {
// console.log(e)
e.__proto__.getContent = function (_g) {
return function () {
return arguments&&arguments.length==0?'' + _g.apply(this, arguments).replace(/