/*! * froala_editor v4.3.1 (https://www.froala.com/wysiwyg-editor) * License https://froala.com/wysiwyg-editor/terms/ * Copyright 2014-2024 Froala Labs */ !function (e, a) { "object" == typeof exports && "undefined" != typeof module ? a(require("froala-editor")) : "function" == typeof define && define.amd ? define(["froala-editor"], a) : a(e.FroalaEditor) } (this, function ($) { "use strict"; if ($ = $ && $.hasOwnProperty("default") ? $["default"] : $, Object.assign($.DEFAULTS, { imageManagerLoadURL: "https://i.froala.com/load-files", imageManagerLoadMethod: "get", imageManagerLoadParams: {} , imageManagerPreloader: null, imageManagerDeleteURL: "", imageManagerDeleteMethod: "post", imageManagerDeleteParams: {} , imageManagerPageSize: 12, imageManagerScrollOffset: 20, imageManagerToggleTags: !0 }), $.PLUGINS.imageManager = function (s) { var g, l, i, o, d, m, c, f, u, p, h, v = s.$, M = "image_manager", e = 10, b = 11, w = 12, C = 13, L = 14, D = 15, t = 21, r = 22, n = {} ; function y() { var e = v(window).outerWidth(); return e < 768 ? 2 : e < 1200 ? 3 : 4 } function I() { d.empty(); for (var e = 0; e < h; e++)d.append('
') } function P() { if (u < c.length && i[0].scrollTop >= i[0].scrollHeight - s.opts.imageManagerScrollOffset - i.outerHeight()) { f++; for (var e = s.opts.imageManagerPageSize * (f - 1); e < Math.min(c.length, s.opts.imageManagerPageSize * f); e++)a(c[e]) } } function a(n) { var i = new Image, o = v(document.createElement("div")).attr("class", "fr-image-container fr-empty fr-image-" + p++).attr("data-loading", s.language.translate("Loading") + "..").attr("data-deleting", s.language.translate("Deleting") + ".."); R(!1), i.onload = function () { o.height(Math.floor(o.width() / i.width * i.height)); var t = v(document.createElement("img")); if (n.thumb) t.attr("src", n.thumb); else { if (O(L, n), !n.url) return O(D, n), !1; t.attr("src", n.url) } if (n.url && t.attr("data-url", n.url), n.tag) if (l.find(".fr-modal-more.fr-not-available").removeClass("fr-not-available"), l.find(".fr-modal-tags").show(), 0 <= n.tag.indexOf(",")) { for (var e = n.tag.split(","), a = 0; a < e.length; a++)e[a] = e[a].trim(), 0 === m.find('a[title="'.concat(e[a], '"]')).length && m.append('').concat(e[a], "")); t.attr("data-tag", e.join()) } else 0 === m.find('a[title="'.concat(n.tag.trim(), '"]')).length && m.append('').concat(n.tag.trim(), "")), t.attr("data-tag", n.tag.trim()); for (var r in n.name && t.attr("alt", n.name), n) n.hasOwnProperty(r) && "thumb" !== r && "url" !== r && "tag" !== r && t.attr("data-".concat(r), n[r]); o.append(t).append(v(s.icon.create("imageManagerDelete")).addClass("fr-delete-img").attr("title", s.language.translate("Delete"))).append(v(s.icon.create("imageManagerInsert")).addClass("fr-insert-img").attr("title", s.language.translate("Insert"))), m.find(".fr-selected-tag").each(function (e, a) { j(t, a.text) || o.hide() }), t.on("load", function () { o.removeClass("fr-empty"), o.height("auto"), u++, E(T(parseInt(t.parent().attr("class").match(/fr-image-(\d+)/)[1], 10) + 1)), R(!1), u % s.opts.imageManagerPageSize == 0 && P() }), s.events.trigger("imageManager.imageLoaded", [t]) } , i.onerror = function () { u++, o.remove(), E(T(parseInt(o.attr("class").match(/fr-image-(\d+)/)[1], 10) + 1)), O(e, n), u % s.opts.imageManagerPageSize == 0 && P() } , i.src = n.thumb || n.url, S().append(o) } function S() { var r, n; return d.find(".fr-list-column").each(function (e, a) { var t = v(a); 0 === e ? (n = t.outerHeight(), r = t) : t.outerHeight() < n && (n = t.outerHeight(), r = t) }), r } function T(e) { e === undefined && (e = 0); for (var a = [], t = p - 1; e <= t; t--) { var r = d.find(".fr-image-".concat(t)); r.length && (a.push(r), v(document.createElement("div")).attr("id", "fr-image-hidden-container").append(r), d.find(".fr-image-".concat(t)).remove()) } return a } function E(e) { for (var a = e.length - 1; 0 <= a; a--)S().append(e[a]) } function R(e) { if (e === undefined && (e = !0), !g.isVisible()) return !0; var a = y(); if (a !== h) { h = a; var t = T(); I(), E(t) } s.modals.resize(M), e && P() } function U(e) { for (var a, t = e[0].attributes, r = t.length, n = {} ; r--;)t[r] && "src" !== (a = t[r].name) && (n[a] = t[r].value); return n } function x(e) { var a = v(e.currentTarget).siblings("img"), t = g.data("instance") || s, r = g.data("current-image"); if (s.modals.hide(M), t.image.showProgressBar(), r) r.data("fr-old-src", r.attr("src")), r.trigger("click"); else { t.events.focus(!0), t.selection.restore(); var n = t.position.getBoundingRect(), i = n.left + n.width / 2 + v(s.doc).scrollLeft(), o = n.top + n.height + v(s.doc).scrollTop(); t.popups.setContainer("image.insert", s.$sc), t.popups.show("image.insert", i, o) } t.image.insert(a.data("url"), !1, U(a), r) } function q(e) { var i = v(e.currentTarget).siblings("img"), a = s.language.translate("Are you sure? Image will be deleted."); confirm(a) && (s.opts.imageManagerDeleteURL ? !1 !== s.events.trigger("imageManager.beforeDeleteImage", [i]) && (i.parent().addClass("fr-image-deleting"), v(this).ajax({ method: s.opts.imageManagerDeleteMethod, url: s.opts.imageManagerDeleteURL, data: Object.assign(Object.assign({ src: i.attr("src") } , U(i)), s.opts.imageManagerDeleteParams), crossDomain: s.opts.requestWithCORS, withCredentials: s.opts.requestWithCredentials, headers: s.opts.requestHeaders, done: function (e, a, t) { s.events.trigger("imageManager.imageDeleted", [e]); var r = T(parseInt(i.parent().attr("class").match(/fr-image-(\d+)/)[1], 10) + 1); i.parent().remove(), E(r), function n() { g.find("#fr-modal-tags > a").each(function () { 0 === g.find('#fr-image-list [data-tag*="'.concat(v(this).text(), '"]')).length && v(this).removeClass("fr-selected-tag").hide() }), _() } (), R(!0) } , fail: function (e) { O(t, e.response || e.responseText) } })) : O(r)) } function O(e, a) { 10 <= e && e < 20 ? o.hide() : 20 <= e && e < 30 && v(".fr-image-deleting").removeClass("fr-image-deleting"), s.events.trigger("imageManager.error", [{ code: e, message: n[e] } , a]) } function H() { var e = l.find(".fr-modal-head-line").outerHeight(), a = m.outerHeight(); l.toggleClass("fr-show-tags"), l.hasClass("fr-show-tags") ? (l.css("height", e + a), i.css("marginTop", e + a), m.find("a").css("opacity", 1)) : (l.css("height", e), i.css("marginTop", e), m.find("a").css("opacity", 0)) } function _() { var e = m.find(".fr-selected-tag"); 0 < e.length ? (d.find("img").parents().show(), e.each(function (e, r) { d.find("img").each(function (e, a) { var t = v(a); j(t, r.text) || t.parent().hide() }) })) : d.find("img").parents().show(), E(T()), P() } function k(e) { e.preventDefault(); var a = v(e.currentTarget); a.toggleClass("fr-selected-tag"), s.opts.imageManagerToggleTags && a.siblings("a").removeClass("fr-selected-tag"), _() } function j(e, a) { for (var t = (e.attr("data-tag") || "").split(","), r = 0; r < t.length; r++)if (t[r] === a) return !0; return !1 } return n[e] = "Image cannot be loaded from the passed link.", n[b] = "Error during load images request.", n[w] = "Missing imageManagerLoadURL option.", n[C] = "Parsing load response failed.", n[L] = "Missing image thumb.", n[D] = "Missing image URL.", n[t] = "Error during delete image request.", n[r] = "Missing imageManagerDeleteURL option.", { require: ["image"], _init: function z() { if (!s.$wp && "IMG" !== s.el.tagName) return !1 } , show: function G() { if (!g) { var e, a = '