import { __commonJS, init_define_APP_INFO } from "./chunk-XY75H3MP.js"; // node_modules/tinymce/plugins/media/plugin.js var require_plugin = __commonJS({ "node_modules/tinymce/plugins/media/plugin.js"() { init_define_APP_INFO(); (function() { "use strict"; var global$9 = tinymce.util.Tools.resolve("tinymce.PluginManager"); var __assign = function() { __assign = Object.assign || function __assign2(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var typeOf = function(x) { var t = typeof x; if (x === null) { return "null"; } else if (t === "object" && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === "Array")) { return "array"; } else if (t === "object" && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === "String")) { return "string"; } else { return t; } }; var isType = function(type) { return function(value) { return typeOf(value) === type; }; }; var isString = isType("string"); var isObject = isType("object"); var isArray = isType("array"); var isNullable = function(a) { return a === null || a === void 0; }; var isNonNullable = function(a) { return !isNullable(a); }; var noop = function() { }; var constant = function(value) { return function() { return value; }; }; var identity = function(x) { return x; }; var never = constant(false); var always = constant(true); var none = function() { return NONE; }; var NONE = function() { var call = function(thunk) { return thunk(); }; var id = identity; var me = { fold: function(n, _s) { return n(); }, isSome: never, isNone: always, getOr: id, getOrThunk: call, getOrDie: function(msg) { throw new Error(msg || "error: getOrDie called on none."); }, getOrNull: constant(null), getOrUndefined: constant(void 0), or: id, orThunk: call, map: none, each: noop, bind: none, exists: never, forall: always, filter: function() { return none(); }, toArray: function() { return []; }, toString: constant("none()") }; return me; }(); var some = function(a) { var constant_a = constant(a); var self = function() { return me; }; var bind = function(f) { return f(a); }; var me = { fold: function(n, s) { return s(a); }, isSome: always, isNone: never, getOr: constant_a, getOrThunk: constant_a, getOrDie: constant_a, getOrNull: constant_a, getOrUndefined: constant_a, or: self, orThunk: self, map: function(f) { return some(f(a)); }, each: function(f) { f(a); }, bind, exists: bind, forall: bind, filter: function(f) { return f(a) ? me : NONE; }, toArray: function() { return [a]; }, toString: function() { return "some(" + a + ")"; } }; return me; }; var from = function(value) { return value === null || value === void 0 ? NONE : some(value); }; var Optional = { some, none, from }; var nativePush = Array.prototype.push; var each$1 = function(xs, f) { for (var i = 0, len = xs.length; i < len; i++) { var x = xs[i]; f(x, i); } }; var flatten = function(xs) { var r = []; for (var i = 0, len = xs.length; i < len; ++i) { if (!isArray(xs[i])) { throw new Error("Arr.flatten item " + i + " was not an array, input: " + xs); } nativePush.apply(r, xs[i]); } return r; }; var Cell = function(initial) { var value = initial; var get2 = function() { return value; }; var set = function(v) { value = v; }; return { get: get2, set }; }; var keys = Object.keys; var hasOwnProperty = Object.hasOwnProperty; var each = function(obj, f) { var props = keys(obj); for (var k = 0, len = props.length; k < len; k++) { var i = props[k]; var x = obj[i]; f(x, i); } }; var get$1 = function(obj, key) { return has(obj, key) ? Optional.from(obj[key]) : Optional.none(); }; var has = function(obj, key) { return hasOwnProperty.call(obj, key); }; var getScripts = function(editor) { return editor.getParam("media_scripts"); }; var getAudioTemplateCallback = function(editor) { return editor.getParam("audio_template_callback"); }; var getVideoTemplateCallback = function(editor) { return editor.getParam("video_template_callback"); }; var hasLiveEmbeds = function(editor) { return editor.getParam("media_live_embeds", true); }; var shouldFilterHtml = function(editor) { return editor.getParam("media_filter_html", true); }; var getUrlResolver = function(editor) { return editor.getParam("media_url_resolver"); }; var hasAltSource = function(editor) { return editor.getParam("media_alt_source", true); }; var hasPoster = function(editor) { return editor.getParam("media_poster", true); }; var hasDimensions = function(editor) { return editor.getParam("media_dimensions", true); }; var global$8 = tinymce.util.Tools.resolve("tinymce.util.Tools"); var global$7 = tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"); var global$6 = tinymce.util.Tools.resolve("tinymce.html.SaxParser"); var getVideoScriptMatch = function(prefixes, src) { if (prefixes) { for (var i = 0; i < prefixes.length; i++) { if (src.indexOf(prefixes[i].filter) !== -1) { return prefixes[i]; } } } }; var DOM$1 = global$7.DOM; var trimPx = function(value) { return value.replace(/px$/, ""); }; var getEphoxEmbedData = function(attrs) { var style = attrs.map.style; var styles = style ? DOM$1.parseStyle(style) : {}; return { type: "ephox-embed-iri", source: attrs.map["data-ephox-embed-iri"], altsource: "", poster: "", width: get$1(styles, "max-width").map(trimPx).getOr(""), height: get$1(styles, "max-height").map(trimPx).getOr("") }; }; var htmlToData = function(prefixes, html) { var isEphoxEmbed = Cell(false); var data = {}; global$6({ validate: false, allow_conditional_comments: true, start: function(name, attrs) { if (isEphoxEmbed.get()) ; else if (has(attrs.map, "data-ephox-embed-iri")) { isEphoxEmbed.set(true); data = getEphoxEmbedData(attrs); } else { if (!data.source && name === "param") { data.source = attrs.map.movie; } if (name === "iframe" || name === "object" || name === "embed" || name === "video" || name === "audio") { if (!data.type) { data.type = name; } data = global$8.extend(attrs.map, data); } if (name === "script") { var videoScript = getVideoScriptMatch(prefixes, attrs.map.src); if (!videoScript) { return; } data = { type: "script", source: attrs.map.src, width: String(videoScript.width), height: String(videoScript.height) }; } if (name === "source") { if (!data.source) { data.source = attrs.map.src; } else if (!data.altsource) { data.altsource = attrs.map.src; } } if (name === "img" && !data.poster) { data.poster = attrs.map.src; } } } }).parse(html); data.source = data.source || data.src || data.data; data.altsource = data.altsource || ""; data.poster = data.poster || ""; return data; }; var guess = function(url) { var mimes = { mp3: "audio/mpeg", m4a: "audio/x-m4a", wav: "audio/wav", mp4: "video/mp4", webm: "video/webm", ogg: "video/ogg", swf: "application/x-shockwave-flash" }; var fileEnd = url.toLowerCase().split(".").pop(); var mime = mimes[fileEnd]; return mime ? mime : ""; }; var global$5 = tinymce.util.Tools.resolve("tinymce.html.Schema"); var global$4 = tinymce.util.Tools.resolve("tinymce.html.Writer"); var DOM = global$7.DOM; var addPx = function(value) { return /^[0-9.]+$/.test(value) ? value + "px" : value; }; var setAttributes = function(attrs, updatedAttrs) { each(updatedAttrs, function(val, name) { var value = "" + val; if (attrs.map[name]) { var i = attrs.length; while (i--) { var attr = attrs[i]; if (attr.name === name) { if (value) { attrs.map[name] = value; attr.value = value; } else { delete attrs.map[name]; attrs.splice(i, 1); } } } } else if (value) { attrs.push({ name, value }); attrs.map[name] = value; } }); }; var updateEphoxEmbed = function(data, attrs) { var style = attrs.map.style; var styleMap = style ? DOM.parseStyle(style) : {}; styleMap["max-width"] = addPx(data.width); styleMap["max-height"] = addPx(data.height); setAttributes(attrs, { style: DOM.serializeStyle(styleMap) }); }; var sources = [ "source", "altsource" ]; var updateHtml = function(html, data, updateAll) { var writer = global$4(); var isEphoxEmbed = Cell(false); var sourceCount = 0; var hasImage; global$6({ validate: false, allow_conditional_comments: true, comment: function(text) { writer.comment(text); }, cdata: function(text) { writer.cdata(text); }, text: function(text, raw) { writer.text(text, raw); }, start: function(name, attrs, empty) { if (isEphoxEmbed.get()) ; else if (has(attrs.map, "data-ephox-embed-iri")) { isEphoxEmbed.set(true); updateEphoxEmbed(data, attrs); } else { switch (name) { case "video": case "object": case "embed": case "img": case "iframe": if (data.height !== void 0 && data.width !== void 0) { setAttributes(attrs, { width: data.width, height: data.height }); } break; } if (updateAll) { switch (name) { case "video": setAttributes(attrs, { poster: data.poster, src: "" }); if (data.altsource) { setAttributes(attrs, { src: "" }); } break; case "iframe": setAttributes(attrs, { src: data.source }); break; case "source": if (sourceCount < 2) { setAttributes(attrs, { src: data[sources[sourceCount]], type: data[sources[sourceCount] + "mime"] }); if (!data[sources[sourceCount]]) { return; } } sourceCount++; break; case "img": if (!data.poster) { return; } hasImage = true; break; } } } writer.start(name, attrs, empty); }, end: function(name) { if (!isEphoxEmbed.get()) { if (name === "video" && updateAll) { for (var index = 0; index < 2; index++) { if (data[sources[index]]) { var attrs = []; attrs.map = {}; if (sourceCount <= index) { setAttributes(attrs, { src: data[sources[index]], type: data[sources[index] + "mime"] }); writer.start("source", attrs, true); } } } } if (data.poster && name === "object" && updateAll && !hasImage) { var imgAttrs = []; imgAttrs.map = {}; setAttributes(imgAttrs, { src: data.poster, width: data.width, height: data.height }); writer.start("img", imgAttrs, true); } } writer.end(name); } }, global$5({})).parse(html); return writer.getContent(); }; var urlPatterns = [ { regex: /youtu\.be\/([\w\-_\?&=.]+)/i, type: "iframe", w: 560, h: 314, url: "www.youtube.com/embed/$1", allowFullscreen: true }, { regex: /youtube\.com(.+)v=([^&]+)(&([a-z0-9&=\-_]+))?/i, type: "iframe", w: 560, h: 314, url: "www.youtube.com/embed/$2?$4", allowFullscreen: true }, { regex: /youtube.com\/embed\/([a-z0-9\?&=\-_]+)/i, type: "iframe", w: 560, h: 314, url: "www.youtube.com/embed/$1", allowFullscreen: true }, { regex: /vimeo\.com\/([0-9]+)/, type: "iframe", w: 425, h: 350, url: "player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc", allowFullscreen: true }, { regex: /vimeo\.com\/(.*)\/([0-9]+)/, type: "iframe", w: 425, h: 350, url: "player.vimeo.com/video/$2?title=0&byline=0", allowFullscreen: true }, { regex: /maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/, type: "iframe", w: 425, h: 350, url: 'maps.google.com/maps/ms?msid=$2&output=embed"', allowFullscreen: false }, { regex: /dailymotion\.com\/video\/([^_]+)/, type: "iframe", w: 480, h: 270, url: "www.dailymotion.com/embed/video/$1", allowFullscreen: true }, { regex: /dai\.ly\/([^_]+)/, type: "iframe", w: 480, h: 270, url: "www.dailymotion.com/embed/video/$1", allowFullscreen: true } ]; var getProtocol = function(url) { var protocolMatches = url.match(/^(https?:\/\/|www\.)(.+)$/i); if (protocolMatches && protocolMatches.length > 1) { return protocolMatches[1] === "www." ? "https://" : protocolMatches[1]; } else { return "https://"; } }; var getUrl = function(pattern, url) { var protocol = getProtocol(url); var match = pattern.regex.exec(url); var newUrl = protocol + pattern.url; var _loop_1 = function(i2) { newUrl = newUrl.replace("$" + i2, function() { return match[i2] ? match[i2] : ""; }); }; for (var i = 0; i < match.length; i++) { _loop_1(i); } return newUrl.replace(/\?$/, ""); }; var matchPattern = function(url) { var patterns = urlPatterns.filter(function(pattern) { return pattern.regex.test(url); }); if (patterns.length > 0) { return global$8.extend({}, patterns[0], { url: getUrl(patterns[0], url) }); } else { return null; } }; var getIframeHtml = function(data) { var allowFullscreen = data.allowfullscreen ? ' allowFullscreen="1"' : ""; return '"; }; var getFlashHtml = function(data) { var html = ''; if (data.poster) { html += ''; } html += ""; return html; }; var getAudioHtml = function(data, audioTemplateCallback) { if (audioTemplateCallback) { return audioTemplateCallback(data); } else { return '"; } }; var getVideoHtml = function(data, videoTemplateCallback) { if (videoTemplateCallback) { return videoTemplateCallback(data); } else { return '"; } }; var getScriptHtml = function(data) { return '