@lotte-innovate/ui-component-test 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. package/_virtual/index.mjs +1 -1
  2. package/_virtual/index11.mjs +1 -1
  3. package/_virtual/index13.mjs +1 -1
  4. package/_virtual/index15.mjs +1 -1
  5. package/_virtual/index17.mjs +1 -1
  6. package/_virtual/index19.mjs +1 -1
  7. package/_virtual/index2.mjs +1 -1
  8. package/_virtual/index21.mjs +2 -0
  9. package/_virtual/index21.mjs.map +1 -0
  10. package/_virtual/index22.mjs +2 -0
  11. package/_virtual/index22.mjs.map +1 -0
  12. package/_virtual/index3.mjs +1 -1
  13. package/_virtual/index7.mjs +1 -1
  14. package/_virtual/index9.mjs +1 -1
  15. package/_virtual/jsx-runtime.mjs +2 -0
  16. package/_virtual/jsx-runtime.mjs.map +1 -0
  17. package/_virtual/jsx-runtime2.mjs +2 -0
  18. package/_virtual/jsx-runtime2.mjs.map +1 -0
  19. package/_virtual/react-jsx-runtime.development.mjs +2 -0
  20. package/_virtual/react-jsx-runtime.development.mjs.map +1 -0
  21. package/_virtual/react-jsx-runtime.production.min.mjs +2 -0
  22. package/_virtual/react-jsx-runtime.production.min.mjs.map +1 -0
  23. package/_virtual/react.development.mjs +2 -0
  24. package/_virtual/react.development.mjs.map +1 -0
  25. package/_virtual/react.production.min.mjs +2 -0
  26. package/_virtual/react.production.min.mjs.map +1 -0
  27. package/dist/lib/components/Editor/index.mjs +1 -1
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +2 -2
  30. package/public/tinymce/icons/default/index.mjs +1 -1
  31. package/public/tinymce/icons/default/index.mjs.map +1 -1
  32. package/public/tinymce/models/dom/index.mjs +1 -1
  33. package/public/tinymce/plugins/advlist/index.mjs +1 -1
  34. package/public/tinymce/plugins/advlist/index.mjs.map +1 -1
  35. package/public/tinymce/plugins/advlist/plugin.mjs +1 -1
  36. package/public/tinymce/plugins/code/index.mjs +1 -1
  37. package/public/tinymce/plugins/code/plugin.mjs +1 -1
  38. package/public/tinymce/plugins/codesample/index.mjs +1 -1
  39. package/public/tinymce/plugins/image/index.mjs +1 -1
  40. package/public/tinymce/plugins/image/index.mjs.map +1 -1
  41. package/public/tinymce/plugins/image/plugin.mjs +1 -1
  42. package/public/tinymce/plugins/image/plugin.mjs.map +1 -1
  43. package/public/tinymce/plugins/link/index.mjs +1 -1
  44. package/public/tinymce/plugins/link/plugin.mjs +1 -1
  45. package/public/tinymce/plugins/lists/index.mjs +1 -1
  46. package/public/tinymce/plugins/lists/index.mjs.map +1 -1
  47. package/public/tinymce/plugins/lists/plugin.mjs +1 -1
  48. package/public/tinymce/plugins/lists/plugin.mjs.map +1 -1
  49. package/public/tinymce/plugins/table/index.mjs +1 -1
  50. package/public/tinymce/plugins/table/plugin.mjs +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.mjs","sources":["../../../../../../public/tinymce/plugins/image/plugin.js"],"sourcesContent":["/**\n * TinyMCE version 6.8.5 (TBD)\n */\n\n(function () {\n 'use strict';\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n const getPrototypeOf = Object.getPrototypeOf;\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const eq = t => a => t === a;\n const is = (value, constructor) => isObject(value) && hasProto(value, constructor, (o, proto) => getPrototypeOf(o) === proto);\n const isString = isType('string');\n const isObject = isType('object');\n const isPlainObject = value => is(value, Object);\n const isArray = isType('array');\n const isNull = eq(null);\n const isBoolean = isSimpleType('boolean');\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isNumber = isSimpleType('number');\n const isArrayOf = (value, pred) => {\n if (isArray(value)) {\n for (let i = 0, len = value.length; i < len; ++i) {\n if (!pred(value[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n\n const noop = () => {\n };\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const keys = Object.keys;\n const hasOwnProperty = Object.hasOwnProperty;\n const each = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n each(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n };\n const filter = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n const has = (obj, key) => hasOwnProperty.call(obj, key);\n const hasNonNullableKey = (obj, key) => has(obj, key) && obj[key] !== undefined && obj[key] !== null;\n\n const nativePush = Array.prototype.push;\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const get = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get(xs, 0);\n const findMap = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n const r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Optional.none();\n };\n\n typeof window !== 'undefined' ? window : Function('return this;')();\n\n const rawSet = (dom, key, value) => {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n const set = (element, key, value) => {\n rawSet(element.dom, key, value);\n };\n const remove = (element, key) => {\n element.dom.removeAttribute(key);\n };\n\n const fromHtml = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n const message = 'HTML does not have a single root node';\n console.error(message, html);\n throw new Error(message);\n }\n return fromDom(div.childNodes[0]);\n };\n const fromTag = (tag, scope) => {\n const doc = scope || document;\n const node = doc.createElement(tag);\n return fromDom(node);\n };\n const fromText = (text, scope) => {\n const doc = scope || document;\n const node = doc.createTextNode(text);\n return fromDom(node);\n };\n const fromDom = node => {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\n const SugarElement = {\n fromHtml,\n fromTag,\n fromText,\n fromDom,\n fromPoint\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.URI');\n\n const isNotEmpty = s => s.length > 0;\n\n const option = name => editor => editor.options.get(name);\n const register$2 = editor => {\n const registerOption = editor.options.register;\n registerOption('image_dimensions', {\n processor: 'boolean',\n default: true\n });\n registerOption('image_advtab', {\n processor: 'boolean',\n default: false\n });\n registerOption('image_uploadtab', {\n processor: 'boolean',\n default: true\n });\n registerOption('image_prepend_url', {\n processor: 'string',\n default: ''\n });\n registerOption('image_class_list', { processor: 'object[]' });\n registerOption('image_description', {\n processor: 'boolean',\n default: true\n });\n registerOption('image_title', {\n processor: 'boolean',\n default: false\n });\n registerOption('image_caption', {\n processor: 'boolean',\n default: false\n });\n registerOption('image_list', {\n processor: value => {\n const valid = value === false || isString(value) || isArrayOf(value, isObject) || isFunction(value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be false, a string, an array or a function.'\n };\n },\n default: false\n });\n };\n const hasDimensions = option('image_dimensions');\n const hasAdvTab = option('image_advtab');\n const hasUploadTab = option('image_uploadtab');\n const getPrependUrl = option('image_prepend_url');\n const getClassList = option('image_class_list');\n const hasDescription = option('image_description');\n const hasImageTitle = option('image_title');\n const hasImageCaption = option('image_caption');\n const getImageList = option('image_list');\n const showAccessibilityOptions = option('a11y_advanced_options');\n const isAutomaticUploadsEnabled = option('automatic_uploads');\n const hasUploadUrl = editor => isNotEmpty(editor.options.get('images_upload_url'));\n const hasUploadHandler = editor => isNonNullable(editor.options.get('images_upload_handler'));\n\n const parseIntAndGetMax = (val1, val2) => Math.max(parseInt(val1, 10), parseInt(val2, 10));\n const getImageSize = url => new Promise(callback => {\n const img = document.createElement('img');\n const done = dimensions => {\n img.onload = img.onerror = null;\n if (img.parentNode) {\n img.parentNode.removeChild(img);\n }\n callback(dimensions);\n };\n img.onload = () => {\n const width = parseIntAndGetMax(img.width, img.clientWidth);\n const height = parseIntAndGetMax(img.height, img.clientHeight);\n const dimensions = {\n width,\n height\n };\n done(Promise.resolve(dimensions));\n };\n img.onerror = () => {\n done(Promise.reject(`Failed to get image dimensions for: ${ url }`));\n };\n const style = img.style;\n style.visibility = 'hidden';\n style.position = 'fixed';\n style.bottom = style.left = '0px';\n style.width = style.height = 'auto';\n document.body.appendChild(img);\n img.src = url;\n });\n const removePixelSuffix = value => {\n if (value) {\n value = value.replace(/px$/, '');\n }\n return value;\n };\n const addPixelSuffix = value => {\n if (value.length > 0 && /^[0-9]+$/.test(value)) {\n value += 'px';\n }\n return value;\n };\n const mergeMargins = css => {\n if (css.margin) {\n const splitMargin = String(css.margin).split(' ');\n switch (splitMargin.length) {\n case 1:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[0];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n css['margin-left'] = css['margin-left'] || splitMargin[0];\n break;\n case 2:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n css['margin-left'] = css['margin-left'] || splitMargin[1];\n break;\n case 3:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n css['margin-left'] = css['margin-left'] || splitMargin[1];\n break;\n case 4:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n css['margin-left'] = css['margin-left'] || splitMargin[3];\n }\n delete css.margin;\n }\n return css;\n };\n const createImageList = (editor, callback) => {\n const imageList = getImageList(editor);\n if (isString(imageList)) {\n fetch(imageList).then(res => {\n if (res.ok) {\n res.json().then(callback);\n }\n });\n } else if (isFunction(imageList)) {\n imageList(callback);\n } else {\n callback(imageList);\n }\n };\n const waitLoadImage = (editor, data, imgElm) => {\n const selectImage = () => {\n imgElm.onload = imgElm.onerror = null;\n if (editor.selection) {\n editor.selection.select(imgElm);\n editor.nodeChanged();\n }\n };\n imgElm.onload = () => {\n if (!data.width && !data.height && hasDimensions(editor)) {\n editor.dom.setAttribs(imgElm, {\n width: String(imgElm.clientWidth),\n height: String(imgElm.clientHeight)\n });\n }\n selectImage();\n };\n imgElm.onerror = selectImage;\n };\n const blobToDataUri = blob => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n resolve(reader.result);\n };\n reader.onerror = () => {\n var _a;\n reject((_a = reader.error) === null || _a === void 0 ? void 0 : _a.message);\n };\n reader.readAsDataURL(blob);\n });\n const isPlaceholderImage = imgElm => imgElm.nodeName === 'IMG' && (imgElm.hasAttribute('data-mce-object') || imgElm.hasAttribute('data-mce-placeholder'));\n const isSafeImageUrl = (editor, src) => {\n const getOption = editor.options.get;\n return global$2.isDomSafe(src, 'img', {\n allow_html_data_urls: getOption('allow_html_data_urls'),\n allow_script_urls: getOption('allow_script_urls'),\n allow_svg_data_urls: getOption('allow_svg_data_urls')\n });\n };\n\n const DOM = global$3.DOM;\n const getHspace = image => {\n if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) {\n return removePixelSuffix(image.style.marginLeft);\n } else {\n return '';\n }\n };\n const getVspace = image => {\n if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) {\n return removePixelSuffix(image.style.marginTop);\n } else {\n return '';\n }\n };\n const getBorder = image => {\n if (image.style.borderWidth) {\n return removePixelSuffix(image.style.borderWidth);\n } else {\n return '';\n }\n };\n const getAttrib = (image, name) => {\n var _a;\n if (image.hasAttribute(name)) {\n return (_a = image.getAttribute(name)) !== null && _a !== void 0 ? _a : '';\n } else {\n return '';\n }\n };\n const hasCaption = image => image.parentNode !== null && image.parentNode.nodeName === 'FIGURE';\n const updateAttrib = (image, name, value) => {\n if (value === '' || value === null) {\n image.removeAttribute(name);\n } else {\n image.setAttribute(name, value);\n }\n };\n const wrapInFigure = image => {\n const figureElm = DOM.create('figure', { class: 'image' });\n DOM.insertAfter(figureElm, image);\n figureElm.appendChild(image);\n figureElm.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption'));\n figureElm.contentEditable = 'false';\n };\n const removeFigure = image => {\n const figureElm = image.parentNode;\n if (isNonNullable(figureElm)) {\n DOM.insertAfter(image, figureElm);\n DOM.remove(figureElm);\n }\n };\n const toggleCaption = image => {\n if (hasCaption(image)) {\n removeFigure(image);\n } else {\n wrapInFigure(image);\n }\n };\n const normalizeStyle = (image, normalizeCss) => {\n const attrValue = image.getAttribute('style');\n const value = normalizeCss(attrValue !== null ? attrValue : '');\n if (value.length > 0) {\n image.setAttribute('style', value);\n image.setAttribute('data-mce-style', value);\n } else {\n image.removeAttribute('style');\n }\n };\n const setSize = (name, normalizeCss) => (image, name, value) => {\n const styles = image.style;\n if (styles[name]) {\n styles[name] = addPixelSuffix(value);\n normalizeStyle(image, normalizeCss);\n } else {\n updateAttrib(image, name, value);\n }\n };\n const getSize = (image, name) => {\n if (image.style[name]) {\n return removePixelSuffix(image.style[name]);\n } else {\n return getAttrib(image, name);\n }\n };\n const setHspace = (image, value) => {\n const pxValue = addPixelSuffix(value);\n image.style.marginLeft = pxValue;\n image.style.marginRight = pxValue;\n };\n const setVspace = (image, value) => {\n const pxValue = addPixelSuffix(value);\n image.style.marginTop = pxValue;\n image.style.marginBottom = pxValue;\n };\n const setBorder = (image, value) => {\n const pxValue = addPixelSuffix(value);\n image.style.borderWidth = pxValue;\n };\n const setBorderStyle = (image, value) => {\n image.style.borderStyle = value;\n };\n const getBorderStyle = image => {\n var _a;\n return (_a = image.style.borderStyle) !== null && _a !== void 0 ? _a : '';\n };\n const isFigure = elm => isNonNullable(elm) && elm.nodeName === 'FIGURE';\n const isImage = elm => elm.nodeName === 'IMG';\n const getIsDecorative = image => DOM.getAttrib(image, 'alt').length === 0 && DOM.getAttrib(image, 'role') === 'presentation';\n const getAlt = image => {\n if (getIsDecorative(image)) {\n return '';\n } else {\n return getAttrib(image, 'alt');\n }\n };\n const defaultData = () => ({\n src: '',\n alt: '',\n title: '',\n width: '',\n height: '',\n class: '',\n style: '',\n caption: false,\n hspace: '',\n vspace: '',\n border: '',\n borderStyle: '',\n isDecorative: false\n });\n const getStyleValue = (normalizeCss, data) => {\n var _a;\n const image = document.createElement('img');\n updateAttrib(image, 'style', data.style);\n if (getHspace(image) || data.hspace !== '') {\n setHspace(image, data.hspace);\n }\n if (getVspace(image) || data.vspace !== '') {\n setVspace(image, data.vspace);\n }\n if (getBorder(image) || data.border !== '') {\n setBorder(image, data.border);\n }\n if (getBorderStyle(image) || data.borderStyle !== '') {\n setBorderStyle(image, data.borderStyle);\n }\n return normalizeCss((_a = image.getAttribute('style')) !== null && _a !== void 0 ? _a : '');\n };\n const create = (normalizeCss, data) => {\n const image = document.createElement('img');\n write(normalizeCss, {\n ...data,\n caption: false\n }, image);\n setAlt(image, data.alt, data.isDecorative);\n if (data.caption) {\n const figure = DOM.create('figure', { class: 'image' });\n figure.appendChild(image);\n figure.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption'));\n figure.contentEditable = 'false';\n return figure;\n } else {\n return image;\n }\n };\n const read = (normalizeCss, image) => ({\n src: getAttrib(image, 'src'),\n alt: getAlt(image),\n title: getAttrib(image, 'title'),\n width: getSize(image, 'width'),\n height: getSize(image, 'height'),\n class: getAttrib(image, 'class'),\n style: normalizeCss(getAttrib(image, 'style')),\n caption: hasCaption(image),\n hspace: getHspace(image),\n vspace: getVspace(image),\n border: getBorder(image),\n borderStyle: getBorderStyle(image),\n isDecorative: getIsDecorative(image)\n });\n const updateProp = (image, oldData, newData, name, set) => {\n if (newData[name] !== oldData[name]) {\n set(image, name, String(newData[name]));\n }\n };\n const setAlt = (image, alt, isDecorative) => {\n if (isDecorative) {\n DOM.setAttrib(image, 'role', 'presentation');\n const sugarImage = SugarElement.fromDom(image);\n set(sugarImage, 'alt', '');\n } else {\n if (isNull(alt)) {\n const sugarImage = SugarElement.fromDom(image);\n remove(sugarImage, 'alt');\n } else {\n const sugarImage = SugarElement.fromDom(image);\n set(sugarImage, 'alt', alt);\n }\n if (DOM.getAttrib(image, 'role') === 'presentation') {\n DOM.setAttrib(image, 'role', '');\n }\n }\n };\n const updateAlt = (image, oldData, newData) => {\n if (newData.alt !== oldData.alt || newData.isDecorative !== oldData.isDecorative) {\n setAlt(image, newData.alt, newData.isDecorative);\n }\n };\n const normalized = (set, normalizeCss) => (image, name, value) => {\n set(image, value);\n normalizeStyle(image, normalizeCss);\n };\n const write = (normalizeCss, newData, image) => {\n const oldData = read(normalizeCss, image);\n updateProp(image, oldData, newData, 'caption', (image, _name, _value) => toggleCaption(image));\n updateProp(image, oldData, newData, 'src', updateAttrib);\n updateProp(image, oldData, newData, 'title', updateAttrib);\n updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss));\n updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss));\n updateProp(image, oldData, newData, 'class', updateAttrib);\n updateProp(image, oldData, newData, 'style', normalized((image, value) => updateAttrib(image, 'style', value), normalizeCss));\n updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss));\n updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss));\n updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss));\n updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss));\n updateAlt(image, oldData, newData);\n };\n\n const normalizeCss$1 = (editor, cssText) => {\n const css = editor.dom.styles.parse(cssText);\n const mergedCss = mergeMargins(css);\n const compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss));\n return editor.dom.styles.serialize(compressed);\n };\n const getSelectedImage = editor => {\n const imgElm = editor.selection.getNode();\n const figureElm = editor.dom.getParent(imgElm, 'figure.image');\n if (figureElm) {\n return editor.dom.select('img', figureElm)[0];\n }\n if (imgElm && (imgElm.nodeName !== 'IMG' || isPlaceholderImage(imgElm))) {\n return null;\n }\n return imgElm;\n };\n const splitTextBlock = (editor, figure) => {\n var _a;\n const dom = editor.dom;\n const textBlockElements = filter(editor.schema.getTextBlockElements(), (_, parentElm) => !editor.schema.isValidChild(parentElm, 'figure'));\n const textBlock = dom.getParent(figure.parentNode, node => hasNonNullableKey(textBlockElements, node.nodeName), editor.getBody());\n if (textBlock) {\n return (_a = dom.split(textBlock, figure)) !== null && _a !== void 0 ? _a : figure;\n } else {\n return figure;\n }\n };\n const readImageDataFromSelection = editor => {\n const image = getSelectedImage(editor);\n return image ? read(css => normalizeCss$1(editor, css), image) : defaultData();\n };\n const insertImageAtCaret = (editor, data) => {\n const elm = create(css => normalizeCss$1(editor, css), data);\n editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew');\n editor.focus();\n editor.selection.setContent(elm.outerHTML);\n const insertedElm = editor.dom.select('*[data-mce-id=\"__mcenew\"]')[0];\n editor.dom.setAttrib(insertedElm, 'data-mce-id', null);\n if (isFigure(insertedElm)) {\n const figure = splitTextBlock(editor, insertedElm);\n editor.selection.select(figure);\n } else {\n editor.selection.select(insertedElm);\n }\n };\n const syncSrcAttr = (editor, image) => {\n editor.dom.setAttrib(image, 'src', image.getAttribute('src'));\n };\n const deleteImage = (editor, image) => {\n if (image) {\n const elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image;\n editor.dom.remove(elm);\n editor.focus();\n editor.nodeChanged();\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n }\n }\n };\n const writeImageDataToSelection = (editor, data) => {\n const image = getSelectedImage(editor);\n if (image) {\n write(css => normalizeCss$1(editor, css), data, image);\n syncSrcAttr(editor, image);\n if (isFigure(image.parentNode)) {\n const figure = image.parentNode;\n splitTextBlock(editor, figure);\n editor.selection.select(image.parentNode);\n } else {\n editor.selection.select(image);\n waitLoadImage(editor, data, image);\n }\n }\n };\n const sanitizeImageData = (editor, data) => {\n const src = data.src;\n return {\n ...data,\n src: isSafeImageUrl(editor, src) ? src : ''\n };\n };\n const insertOrUpdateImage = (editor, partialData) => {\n const image = getSelectedImage(editor);\n if (image) {\n const selectedImageData = read(css => normalizeCss$1(editor, css), image);\n const data = {\n ...selectedImageData,\n ...partialData\n };\n const sanitizedData = sanitizeImageData(editor, data);\n if (data.src) {\n writeImageDataToSelection(editor, sanitizedData);\n } else {\n deleteImage(editor, image);\n }\n } else if (partialData.src) {\n insertImageAtCaret(editor, {\n ...defaultData(),\n ...partialData\n });\n }\n };\n\n const deep = (old, nu) => {\n const bothObjects = isPlainObject(old) && isPlainObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n const baseMerge = merger => {\n return (...objects) => {\n if (objects.length === 0) {\n throw new Error(`Can't merge zero objects`);\n }\n const ret = {};\n for (let j = 0; j < objects.length; j++) {\n const curObject = objects[j];\n for (const key in curObject) {\n if (has(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n const deepMerge = baseMerge(deep);\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.ImageUploader');\n\n var global = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n const getValue = item => isString(item.value) ? item.value : '';\n const getText = item => {\n if (isString(item.text)) {\n return item.text;\n } else if (isString(item.title)) {\n return item.title;\n } else {\n return '';\n }\n };\n const sanitizeList = (list, extractValue) => {\n const out = [];\n global.each(list, item => {\n const text = getText(item);\n if (item.menu !== undefined) {\n const items = sanitizeList(item.menu, extractValue);\n out.push({\n text,\n items\n });\n } else {\n const value = extractValue(item);\n out.push({\n text,\n value\n });\n }\n });\n return out;\n };\n const sanitizer = (extractor = getValue) => list => {\n if (list) {\n return Optional.from(list).map(list => sanitizeList(list, extractor));\n } else {\n return Optional.none();\n }\n };\n const sanitize = list => sanitizer(getValue)(list);\n const isGroup = item => has(item, 'items');\n const findEntryDelegate = (list, value) => findMap(list, item => {\n if (isGroup(item)) {\n return findEntryDelegate(item.items, value);\n } else if (item.value === value) {\n return Optional.some(item);\n } else {\n return Optional.none();\n }\n });\n const findEntry = (optList, value) => optList.bind(list => findEntryDelegate(list, value));\n const ListUtils = {\n sanitizer,\n sanitize,\n findEntry\n };\n\n const makeTab$2 = _info => ({\n title: 'Advanced',\n name: 'advanced',\n items: [{\n type: 'grid',\n columns: 2,\n items: [\n {\n type: 'input',\n label: 'Vertical space',\n name: 'vspace',\n inputMode: 'numeric'\n },\n {\n type: 'input',\n label: 'Horizontal space',\n name: 'hspace',\n inputMode: 'numeric'\n },\n {\n type: 'input',\n label: 'Border width',\n name: 'border',\n inputMode: 'numeric'\n },\n {\n type: 'listbox',\n name: 'borderstyle',\n label: 'Border style',\n items: [\n {\n text: 'Select...',\n value: ''\n },\n {\n text: 'Solid',\n value: 'solid'\n },\n {\n text: 'Dotted',\n value: 'dotted'\n },\n {\n text: 'Dashed',\n value: 'dashed'\n },\n {\n text: 'Double',\n value: 'double'\n },\n {\n text: 'Groove',\n value: 'groove'\n },\n {\n text: 'Ridge',\n value: 'ridge'\n },\n {\n text: 'Inset',\n value: 'inset'\n },\n {\n text: 'Outset',\n value: 'outset'\n },\n {\n text: 'None',\n value: 'none'\n },\n {\n text: 'Hidden',\n value: 'hidden'\n }\n ]\n }\n ]\n }]\n });\n const AdvTab = { makeTab: makeTab$2 };\n\n const collect = editor => {\n const urlListSanitizer = ListUtils.sanitizer(item => editor.convertURL(item.value || item.url || '', 'src'));\n const futureImageList = new Promise(completer => {\n createImageList(editor, imageList => {\n completer(urlListSanitizer(imageList).map(items => flatten([\n [{\n text: 'None',\n value: ''\n }],\n items\n ])));\n });\n });\n const classList = ListUtils.sanitize(getClassList(editor));\n const hasAdvTab$1 = hasAdvTab(editor);\n const hasUploadTab$1 = hasUploadTab(editor);\n const hasUploadUrl$1 = hasUploadUrl(editor);\n const hasUploadHandler$1 = hasUploadHandler(editor);\n const image = readImageDataFromSelection(editor);\n const hasDescription$1 = hasDescription(editor);\n const hasImageTitle$1 = hasImageTitle(editor);\n const hasDimensions$1 = hasDimensions(editor);\n const hasImageCaption$1 = hasImageCaption(editor);\n const hasAccessibilityOptions = showAccessibilityOptions(editor);\n const automaticUploads = isAutomaticUploadsEnabled(editor);\n const prependURL = Optional.some(getPrependUrl(editor)).filter(preUrl => isString(preUrl) && preUrl.length > 0);\n return futureImageList.then(imageList => ({\n image,\n imageList,\n classList,\n hasAdvTab: hasAdvTab$1,\n hasUploadTab: hasUploadTab$1,\n hasUploadUrl: hasUploadUrl$1,\n hasUploadHandler: hasUploadHandler$1,\n hasDescription: hasDescription$1,\n hasImageTitle: hasImageTitle$1,\n hasDimensions: hasDimensions$1,\n hasImageCaption: hasImageCaption$1,\n prependURL,\n hasAccessibilityOptions,\n automaticUploads\n }));\n };\n\n const makeItems = info => {\n const imageUrl = {\n name: 'src',\n type: 'urlinput',\n filetype: 'image',\n label: 'Source',\n picker_text: 'Browse files'\n };\n const imageList = info.imageList.map(items => ({\n name: 'images',\n type: 'listbox',\n label: 'Image list',\n items\n }));\n const imageDescription = {\n name: 'alt',\n type: 'input',\n label: 'Alternative description',\n enabled: !(info.hasAccessibilityOptions && info.image.isDecorative)\n };\n const imageTitle = {\n name: 'title',\n type: 'input',\n label: 'Image title'\n };\n const imageDimensions = {\n name: 'dimensions',\n type: 'sizeinput'\n };\n const isDecorative = {\n type: 'label',\n label: 'Accessibility',\n items: [{\n name: 'isDecorative',\n type: 'checkbox',\n label: 'Image is decorative'\n }]\n };\n const classList = info.classList.map(items => ({\n name: 'classes',\n type: 'listbox',\n label: 'Class',\n items\n }));\n const caption = {\n type: 'label',\n label: 'Caption',\n items: [{\n type: 'checkbox',\n name: 'caption',\n label: 'Show caption'\n }]\n };\n const getDialogContainerType = useColumns => useColumns ? {\n type: 'grid',\n columns: 2\n } : { type: 'panel' };\n return flatten([\n [imageUrl],\n imageList.toArray(),\n info.hasAccessibilityOptions && info.hasDescription ? [isDecorative] : [],\n info.hasDescription ? [imageDescription] : [],\n info.hasImageTitle ? [imageTitle] : [],\n info.hasDimensions ? [imageDimensions] : [],\n [{\n ...getDialogContainerType(info.classList.isSome() && info.hasImageCaption),\n items: flatten([\n classList.toArray(),\n info.hasImageCaption ? [caption] : []\n ])\n }]\n ]);\n };\n const makeTab$1 = info => ({\n title: 'General',\n name: 'general',\n items: makeItems(info)\n });\n const MainTab = {\n makeTab: makeTab$1,\n makeItems\n };\n\n const makeTab = _info => {\n const items = [{\n type: 'dropzone',\n name: 'fileinput'\n }];\n return {\n title: 'Upload',\n name: 'upload',\n items\n };\n };\n const UploadTab = { makeTab };\n\n const createState = info => ({\n prevImage: ListUtils.findEntry(info.imageList, info.image.src),\n prevAlt: info.image.alt,\n open: true\n });\n const fromImageData = image => ({\n src: {\n value: image.src,\n meta: {}\n },\n images: image.src,\n alt: image.alt,\n title: image.title,\n dimensions: {\n width: image.width,\n height: image.height\n },\n classes: image.class,\n caption: image.caption,\n style: image.style,\n vspace: image.vspace,\n border: image.border,\n hspace: image.hspace,\n borderstyle: image.borderStyle,\n fileinput: [],\n isDecorative: image.isDecorative\n });\n const toImageData = (data, removeEmptyAlt) => ({\n src: data.src.value,\n alt: (data.alt === null || data.alt.length === 0) && removeEmptyAlt ? null : data.alt,\n title: data.title,\n width: data.dimensions.width,\n height: data.dimensions.height,\n class: data.classes,\n style: data.style,\n caption: data.caption,\n hspace: data.hspace,\n vspace: data.vspace,\n border: data.border,\n borderStyle: data.borderstyle,\n isDecorative: data.isDecorative\n });\n const addPrependUrl2 = (info, srcURL) => {\n if (!/^(?:[a-zA-Z]+:)?\\/\\//.test(srcURL)) {\n return info.prependURL.bind(prependUrl => {\n if (srcURL.substring(0, prependUrl.length) !== prependUrl) {\n return Optional.some(prependUrl + srcURL);\n }\n return Optional.none();\n });\n }\n return Optional.none();\n };\n const addPrependUrl = (info, api) => {\n const data = api.getData();\n addPrependUrl2(info, data.src.value).each(srcURL => {\n api.setData({\n src: {\n value: srcURL,\n meta: data.src.meta\n }\n });\n });\n };\n const formFillFromMeta2 = (info, data, meta) => {\n if (info.hasDescription && isString(meta.alt)) {\n data.alt = meta.alt;\n }\n if (info.hasAccessibilityOptions) {\n data.isDecorative = meta.isDecorative || data.isDecorative || false;\n }\n if (info.hasImageTitle && isString(meta.title)) {\n data.title = meta.title;\n }\n if (info.hasDimensions) {\n if (isString(meta.width)) {\n data.dimensions.width = meta.width;\n }\n if (isString(meta.height)) {\n data.dimensions.height = meta.height;\n }\n }\n if (isString(meta.class)) {\n ListUtils.findEntry(info.classList, meta.class).each(entry => {\n data.classes = entry.value;\n });\n }\n if (info.hasImageCaption) {\n if (isBoolean(meta.caption)) {\n data.caption = meta.caption;\n }\n }\n if (info.hasAdvTab) {\n if (isString(meta.style)) {\n data.style = meta.style;\n }\n if (isString(meta.vspace)) {\n data.vspace = meta.vspace;\n }\n if (isString(meta.border)) {\n data.border = meta.border;\n }\n if (isString(meta.hspace)) {\n data.hspace = meta.hspace;\n }\n if (isString(meta.borderstyle)) {\n data.borderstyle = meta.borderstyle;\n }\n }\n };\n const formFillFromMeta = (info, api) => {\n const data = api.getData();\n const meta = data.src.meta;\n if (meta !== undefined) {\n const newData = deepMerge({}, data);\n formFillFromMeta2(info, newData, meta);\n api.setData(newData);\n }\n };\n const calculateImageSize = (helpers, info, state, api) => {\n const data = api.getData();\n const url = data.src.value;\n const meta = data.src.meta || {};\n if (!meta.width && !meta.height && info.hasDimensions) {\n if (isNotEmpty(url)) {\n helpers.imageSize(url).then(size => {\n if (state.open) {\n api.setData({ dimensions: size });\n }\n }).catch(e => console.error(e));\n } else {\n api.setData({\n dimensions: {\n width: '',\n height: ''\n }\n });\n }\n }\n };\n const updateImagesDropdown = (info, state, api) => {\n const data = api.getData();\n const image = ListUtils.findEntry(info.imageList, data.src.value);\n state.prevImage = image;\n api.setData({ images: image.map(entry => entry.value).getOr('') });\n };\n const changeSrc = (helpers, info, state, api) => {\n addPrependUrl(info, api);\n formFillFromMeta(info, api);\n calculateImageSize(helpers, info, state, api);\n updateImagesDropdown(info, state, api);\n };\n const changeImages = (helpers, info, state, api) => {\n const data = api.getData();\n const image = ListUtils.findEntry(info.imageList, data.images);\n image.each(img => {\n const updateAlt = data.alt === '' || state.prevImage.map(image => image.text === data.alt).getOr(false);\n if (updateAlt) {\n if (img.value === '') {\n api.setData({\n src: img,\n alt: state.prevAlt\n });\n } else {\n api.setData({\n src: img,\n alt: img.text\n });\n }\n } else {\n api.setData({ src: img });\n }\n });\n state.prevImage = image;\n changeSrc(helpers, info, state, api);\n };\n const changeFileInput = (helpers, info, state, api) => {\n const data = api.getData();\n api.block('Uploading image');\n head(data.fileinput).fold(() => {\n api.unblock();\n }, file => {\n const blobUri = URL.createObjectURL(file);\n const finalize = () => {\n api.unblock();\n URL.revokeObjectURL(blobUri);\n };\n const updateSrcAndSwitchTab = url => {\n api.setData({\n src: {\n value: url,\n meta: {}\n }\n });\n api.showTab('general');\n changeSrc(helpers, info, state, api);\n };\n blobToDataUri(file).then(dataUrl => {\n const blobInfo = helpers.createBlobCache(file, blobUri, dataUrl);\n if (info.automaticUploads) {\n helpers.uploadImage(blobInfo).then(result => {\n updateSrcAndSwitchTab(result.url);\n finalize();\n }).catch(err => {\n finalize();\n helpers.alertErr(err);\n });\n } else {\n helpers.addToBlobCache(blobInfo);\n updateSrcAndSwitchTab(blobInfo.blobUri());\n api.unblock();\n }\n });\n });\n };\n const changeHandler = (helpers, info, state) => (api, evt) => {\n if (evt.name === 'src') {\n changeSrc(helpers, info, state, api);\n } else if (evt.name === 'images') {\n changeImages(helpers, info, state, api);\n } else if (evt.name === 'alt') {\n state.prevAlt = api.getData().alt;\n } else if (evt.name === 'fileinput') {\n changeFileInput(helpers, info, state, api);\n } else if (evt.name === 'isDecorative') {\n api.setEnabled('alt', !api.getData().isDecorative);\n }\n };\n const closeHandler = state => () => {\n state.open = false;\n };\n const makeDialogBody = info => {\n if (info.hasAdvTab || info.hasUploadUrl || info.hasUploadHandler) {\n const tabPanel = {\n type: 'tabpanel',\n tabs: flatten([\n [MainTab.makeTab(info)],\n info.hasAdvTab ? [AdvTab.makeTab(info)] : [],\n info.hasUploadTab && (info.hasUploadUrl || info.hasUploadHandler) ? [UploadTab.makeTab(info)] : []\n ])\n };\n return tabPanel;\n } else {\n const panel = {\n type: 'panel',\n items: MainTab.makeItems(info)\n };\n return panel;\n }\n };\n const submitHandler = (editor, info, helpers) => api => {\n const data = deepMerge(fromImageData(info.image), api.getData());\n const finalData = {\n ...data,\n style: getStyleValue(helpers.normalizeCss, toImageData(data, false))\n };\n editor.execCommand('mceUpdateImage', false, toImageData(finalData, info.hasAccessibilityOptions));\n editor.editorUpload.uploadImagesAuto();\n api.close();\n };\n const imageSize = editor => url => {\n if (!isSafeImageUrl(editor, url)) {\n return Promise.resolve({\n width: '',\n height: ''\n });\n } else {\n return getImageSize(editor.documentBaseURI.toAbsolute(url)).then(dimensions => ({\n width: String(dimensions.width),\n height: String(dimensions.height)\n }));\n }\n };\n const createBlobCache = editor => (file, blobUri, dataUrl) => {\n var _a;\n return editor.editorUpload.blobCache.create({\n blob: file,\n blobUri,\n name: (_a = file.name) === null || _a === void 0 ? void 0 : _a.replace(/\\.[^\\.]+$/, ''),\n filename: file.name,\n base64: dataUrl.split(',')[1]\n });\n };\n const addToBlobCache = editor => blobInfo => {\n editor.editorUpload.blobCache.add(blobInfo);\n };\n const alertErr = editor => message => {\n editor.windowManager.alert(message);\n };\n const normalizeCss = editor => cssText => normalizeCss$1(editor, cssText);\n const parseStyle = editor => cssText => editor.dom.parseStyle(cssText);\n const serializeStyle = editor => (stylesArg, name) => editor.dom.serializeStyle(stylesArg, name);\n const uploadImage = editor => blobInfo => global$1(editor).upload([blobInfo], false).then(results => {\n var _a;\n if (results.length === 0) {\n return Promise.reject('Failed to upload image');\n } else if (results[0].status === false) {\n return Promise.reject((_a = results[0].error) === null || _a === void 0 ? void 0 : _a.message);\n } else {\n return results[0];\n }\n });\n const Dialog = editor => {\n const helpers = {\n imageSize: imageSize(editor),\n addToBlobCache: addToBlobCache(editor),\n createBlobCache: createBlobCache(editor),\n alertErr: alertErr(editor),\n normalizeCss: normalizeCss(editor),\n parseStyle: parseStyle(editor),\n serializeStyle: serializeStyle(editor),\n uploadImage: uploadImage(editor)\n };\n const open = () => {\n collect(editor).then(info => {\n const state = createState(info);\n return {\n title: 'Insert/Edit Image',\n size: 'normal',\n body: makeDialogBody(info),\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: fromImageData(info.image),\n onSubmit: submitHandler(editor, info, helpers),\n onChange: changeHandler(helpers, info, state),\n onClose: closeHandler(state)\n };\n }).then(editor.windowManager.open);\n };\n return { open };\n };\n\n const register$1 = editor => {\n editor.addCommand('mceImage', Dialog(editor).open);\n editor.addCommand('mceUpdateImage', (_ui, data) => {\n editor.undoManager.transact(() => insertOrUpdateImage(editor, data));\n });\n };\n\n const hasImageClass = node => {\n const className = node.attr('class');\n return isNonNullable(className) && /\\bimage\\b/.test(className);\n };\n const toggleContentEditableState = state => nodes => {\n let i = nodes.length;\n const toggleContentEditable = node => {\n node.attr('contenteditable', state ? 'true' : null);\n };\n while (i--) {\n const node = nodes[i];\n if (hasImageClass(node)) {\n node.attr('contenteditable', state ? 'false' : null);\n global.each(node.getAll('figcaption'), toggleContentEditable);\n }\n }\n };\n const setup = editor => {\n editor.on('PreInit', () => {\n editor.parser.addNodeFilter('figure', toggleContentEditableState(true));\n editor.serializer.addNodeFilter('figure', toggleContentEditableState(false));\n });\n };\n\n const onSetupEditable = editor => api => {\n const nodeChanged = () => {\n api.setEnabled(editor.selection.isEditable());\n };\n editor.on('NodeChange', nodeChanged);\n nodeChanged();\n return () => {\n editor.off('NodeChange', nodeChanged);\n };\n };\n const register = editor => {\n editor.ui.registry.addToggleButton('image', {\n icon: 'image',\n tooltip: 'Insert/edit image',\n onAction: Dialog(editor).open,\n onSetup: buttonApi => {\n buttonApi.setActive(isNonNullable(getSelectedImage(editor)));\n const unbindSelectorChanged = editor.selection.selectorChangedWithUnbind('img:not([data-mce-object]):not([data-mce-placeholder]),figure.image', buttonApi.setActive).unbind;\n const unbindEditable = onSetupEditable(editor)(buttonApi);\n return () => {\n unbindSelectorChanged();\n unbindEditable();\n };\n }\n });\n editor.ui.registry.addMenuItem('image', {\n icon: 'image',\n text: 'Image...',\n onAction: Dialog(editor).open,\n onSetup: onSetupEditable(editor)\n });\n editor.ui.registry.addContextMenu('image', { update: element => editor.selection.isEditable() && (isFigure(element) || isImage(element) && !isPlaceholderImage(element)) ? ['image'] : [] });\n };\n\n var Plugin = () => {\n global$4.add('image', editor => {\n register$2(editor);\n setup(editor);\n register(editor);\n register$1(editor);\n });\n };\n\n Plugin();\n\n})();\n"],"names":["global$4","tinymce","util","Tools","resolve","getPrototypeOf","Object","hasProto","v","constructor","predicate","_a","prototype","name","isType","type","value","x","t","Array","isArray","String","o","proto","isPrototypeOf","typeOf","isSimpleType","isString","isObject","isPlainObject","is","isNull","a","isBoolean","isNonNullable","isNullable","isFunction","isNumber","noop","Optional","tag","this","some","none","singletonNone","fold","onNone","onSome","isSome","isNone","map","mapper","bind","binder","exists","forall","filter","getOr","replacement","or","getOrThunk","thunk","orThunk","getOrDie","message","Error","from","getOrNull","getOrUndefined","each","worker","toArray","toString","keys","hasOwnProperty","internalFilter","obj","pred","onTrue","onFalse","f","props","k","len","length","i","has","key","call","nativePush","push","flatten","xs","r","apply","head","get","window","Function","set","element","dom","console","error","setAttribute","rawSet","fromDom","node","SugarElement","fromHtml","html","scope","div","document","createElement","innerHTML","hasChildNodes","childNodes","fromTag","fromText","text","createTextNode","fromPoint","docElm","y","elementFromPoint","global$3","global$2","isNotEmpty","s","option","editor","options","register$2","registerOption","register","processor","default","valid","isArrayOf","hasDimensions","hasAdvTab","hasUploadTab","getPrependUrl","getClassList","hasDescription","hasImageTitle","hasImageCaption","getImageList","showAccessibilityOptions","isAutomaticUploadsEnabled","parseIntAndGetMax","val1","val2","Math","max","parseInt","removePixelSuffix","replace","addPixelSuffix","test","isPlaceholderImage","imgElm","nodeName","hasAttribute","isSafeImageUrl","src","getOption","isDomSafe","allow_html_data_urls","allow_script_urls","allow_svg_data_urls","DOM","getHspace","image","style","marginLeft","marginRight","getVspace","marginTop","marginBottom","getBorder","borderWidth","getAttrib","getAttribute","hasCaption","parentNode","updateAttrib","removeAttribute","toggleCaption","figureElm","insertAfter","remove","removeFigure","create","class","appendChild","contentEditable","wrapInFigure","normalizeStyle","normalizeCss","attrValue","setSize","styles","getSize","setHspace","pxValue","setVspace","setBorder","setBorderStyle","borderStyle","getBorderStyle","isFigure","elm","getIsDecorative","getAlt","getStyleValue","data","hspace","vspace","border","read","alt","title","width","height","caption","isDecorative","updateProp","oldData","newData","setAlt","setAttrib","sugarImage","normalized","write","_name","_value","updateAlt","normalizeCss$1","cssText","mergedCss","css","margin","splitMargin","split","mergeMargins","parse","compressed","serialize","getSelectedImage","selection","getNode","getParent","select","splitTextBlock","figure","textBlockElements","schema","getTextBlockElements","_","parentElm","isValidChild","textBlock","hasNonNullableKey","undefined","getBody","insertImageAtCaret","focus","setContent","outerHTML","insertedElm","writeImageDataToSelection","syncSrcAttr","selectImage","onload","onerror","nodeChanged","setAttribs","clientWidth","clientHeight","waitLoadImage","insertOrUpdateImage","partialData","sanitizedData","sanitizeImageData","isEmpty","setCursorLocation","deleteImage","deepMerge","merger","old","nu","objects","ret","j","curObject","global$1","global","getValue","item","sanitizeList","list","extractValue","out","getText","menu","items","sanitizer","extractor","findEntryDelegate","arr","findMap","isGroup","ListUtils","optList","AdvTab","_info","columns","label","inputMode","collect","urlListSanitizer","convertURL","url","futureImageList","Promise","completer","callback","imageList","fetch","then","res","ok","json","createImageList","classList","hasAdvTab$1","hasUploadTab$1","hasUploadUrl$1","hasUploadUrl","hasUploadHandler$1","hasUploadHandler","readImageDataFromSelection","hasDescription$1","hasImageTitle$1","hasDimensions$1","hasImageCaption$1","hasAccessibilityOptions","automaticUploads","prependURL","preUrl","makeItems","info","imageDescription","enabled","filetype","picker_text","useColumns","MainTab","UploadTab","fromImageData","meta","images","dimensions","classes","borderstyle","fileinput","toImageData","removeEmptyAlt","addPrependUrl","api","getData","srcURL","prependUrl","substring","addPrependUrl2","setData","formFillFromMeta","entry","formFillFromMeta2","changeSrc","helpers","state","imageSize","size","open","catch","e","calculateImageSize","prevImage","updateImagesDropdown","changeFileInput","block","unblock","file","blobUri","URL","createObjectURL","finalize","revokeObjectURL","updateSrcAndSwitchTab","showTab","blob","reject","reader","FileReader","result","readAsDataURL","dataUrl","blobInfo","createBlobCache","uploadImage","err","alertErr","addToBlobCache","changeHandler","evt","img","prevAlt","changeImages","setEnabled","closeHandler","makeDialogBody","tabs","submitHandler","finalData","execCommand","editorUpload","uploadImagesAuto","close","done","removeChild","visibility","position","bottom","left","body","getImageSize","documentBaseURI","toAbsolute","blobCache","filename","base64","add","windowManager","alert","parseStyle","serializeStyle","stylesArg","upload","results","status","Dialog","createState","buttons","primary","initialData","onSubmit","onChange","onClose","hasImageClass","className","attr","toggleContentEditableState","nodes","toggleContentEditable","getAll","onSetupEditable","isEditable","on","off","parser","addNodeFilter","serializer","setup","ui","registry","addToggleButton","icon","tooltip","onAction","onSetup","buttonApi","setActive","unbindSelectorChanged","selectorChangedWithUnbind","unbind","unbindEditable","addMenuItem","addContextMenu","update","addCommand","_ui","undoManager","transact","register$1"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.mjs","sources":["../../../../../../public/tinymce/plugins/image/plugin.js"],"sourcesContent":["/**\n * TinyMCE version 6.8.5 (TBD)\n */\n\n(function () {\n 'use strict';\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n const getPrototypeOf = Object.getPrototypeOf;\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const eq = t => a => t === a;\n const is = (value, constructor) => isObject(value) && hasProto(value, constructor, (o, proto) => getPrototypeOf(o) === proto);\n const isString = isType('string');\n const isObject = isType('object');\n const isPlainObject = value => is(value, Object);\n const isArray = isType('array');\n const isNull = eq(null);\n const isBoolean = isSimpleType('boolean');\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isNumber = isSimpleType('number');\n const isArrayOf = (value, pred) => {\n if (isArray(value)) {\n for (let i = 0, len = value.length; i < len; ++i) {\n if (!pred(value[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n\n const noop = () => {\n };\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const keys = Object.keys;\n const hasOwnProperty = Object.hasOwnProperty;\n const each = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n each(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n };\n const filter = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n const has = (obj, key) => hasOwnProperty.call(obj, key);\n const hasNonNullableKey = (obj, key) => has(obj, key) && obj[key] !== undefined && obj[key] !== null;\n\n const nativePush = Array.prototype.push;\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const get = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get(xs, 0);\n const findMap = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n const r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Optional.none();\n };\n\n typeof window !== 'undefined' ? window : Function('return this;')();\n\n const rawSet = (dom, key, value) => {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n const set = (element, key, value) => {\n rawSet(element.dom, key, value);\n };\n const remove = (element, key) => {\n element.dom.removeAttribute(key);\n };\n\n const fromHtml = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n const message = 'HTML does not have a single root node';\n console.error(message, html);\n throw new Error(message);\n }\n return fromDom(div.childNodes[0]);\n };\n const fromTag = (tag, scope) => {\n const doc = scope || document;\n const node = doc.createElement(tag);\n return fromDom(node);\n };\n const fromText = (text, scope) => {\n const doc = scope || document;\n const node = doc.createTextNode(text);\n return fromDom(node);\n };\n const fromDom = node => {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\n const SugarElement = {\n fromHtml,\n fromTag,\n fromText,\n fromDom,\n fromPoint\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.URI');\n\n const isNotEmpty = s => s.length > 0;\n\n const option = name => editor => editor.options.get(name);\n const register$2 = editor => {\n const registerOption = editor.options.register;\n registerOption('image_dimensions', {\n processor: 'boolean',\n default: true\n });\n registerOption('image_advtab', {\n processor: 'boolean',\n default: false\n });\n registerOption('image_uploadtab', {\n processor: 'boolean',\n default: true\n });\n registerOption('image_prepend_url', {\n processor: 'string',\n default: ''\n });\n registerOption('image_class_list', { processor: 'object[]' });\n registerOption('image_description', {\n processor: 'boolean',\n default: true\n });\n registerOption('image_title', {\n processor: 'boolean',\n default: false\n });\n registerOption('image_caption', {\n processor: 'boolean',\n default: false\n });\n registerOption('image_list', {\n processor: value => {\n const valid = value === false || isString(value) || isArrayOf(value, isObject) || isFunction(value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be false, a string, an array or a function.'\n };\n },\n default: false\n });\n };\n const hasDimensions = option('image_dimensions');\n const hasAdvTab = option('image_advtab');\n const hasUploadTab = option('image_uploadtab');\n const getPrependUrl = option('image_prepend_url');\n const getClassList = option('image_class_list');\n const hasDescription = option('image_description');\n const hasImageTitle = option('image_title');\n const hasImageCaption = option('image_caption');\n const getImageList = option('image_list');\n const showAccessibilityOptions = option('a11y_advanced_options');\n const isAutomaticUploadsEnabled = option('automatic_uploads');\n const hasUploadUrl = editor => isNotEmpty(editor.options.get('images_upload_url'));\n const hasUploadHandler = editor => isNonNullable(editor.options.get('images_upload_handler'));\n\n const parseIntAndGetMax = (val1, val2) => Math.max(parseInt(val1, 10), parseInt(val2, 10));\n const getImageSize = url => new Promise(callback => {\n const img = document.createElement('img');\n const done = dimensions => {\n img.onload = img.onerror = null;\n if (img.parentNode) {\n img.parentNode.removeChild(img);\n }\n callback(dimensions);\n };\n img.onload = () => {\n const width = parseIntAndGetMax(img.width, img.clientWidth);\n const height = parseIntAndGetMax(img.height, img.clientHeight);\n const dimensions = {\n width,\n height\n };\n done(Promise.resolve(dimensions));\n };\n img.onerror = () => {\n done(Promise.reject(`Failed to get image dimensions for: ${ url }`));\n };\n const style = img.style;\n style.visibility = 'hidden';\n style.position = 'fixed';\n style.bottom = style.left = '0px';\n style.width = style.height = 'auto';\n document.body.appendChild(img);\n img.src = url;\n });\n const removePixelSuffix = value => {\n if (value) {\n value = value.replace(/px$/, '');\n }\n return value;\n };\n const addPixelSuffix = value => {\n if (value.length > 0 && /^[0-9]+$/.test(value)) {\n value += 'px';\n }\n return value;\n };\n const mergeMargins = css => {\n if (css.margin) {\n const splitMargin = String(css.margin).split(' ');\n switch (splitMargin.length) {\n case 1:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[0];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n css['margin-left'] = css['margin-left'] || splitMargin[0];\n break;\n case 2:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n css['margin-left'] = css['margin-left'] || splitMargin[1];\n break;\n case 3:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n css['margin-left'] = css['margin-left'] || splitMargin[1];\n break;\n case 4:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n css['margin-left'] = css['margin-left'] || splitMargin[3];\n }\n delete css.margin;\n }\n return css;\n };\n const createImageList = (editor, callback) => {\n const imageList = getImageList(editor);\n if (isString(imageList)) {\n fetch(imageList).then(res => {\n if (res.ok) {\n res.json().then(callback);\n }\n });\n } else if (isFunction(imageList)) {\n imageList(callback);\n } else {\n callback(imageList);\n }\n };\n const waitLoadImage = (editor, data, imgElm) => {\n const selectImage = () => {\n imgElm.onload = imgElm.onerror = null;\n if (editor.selection) {\n editor.selection.select(imgElm);\n editor.nodeChanged();\n }\n };\n imgElm.onload = () => {\n if (!data.width && !data.height && hasDimensions(editor)) {\n editor.dom.setAttribs(imgElm, {\n width: String(imgElm.clientWidth),\n height: String(imgElm.clientHeight)\n });\n }\n selectImage();\n };\n imgElm.onerror = selectImage;\n };\n const blobToDataUri = blob => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n resolve(reader.result);\n };\n reader.onerror = () => {\n var _a;\n reject((_a = reader.error) === null || _a === void 0 ? void 0 : _a.message);\n };\n reader.readAsDataURL(blob);\n });\n const isPlaceholderImage = imgElm => imgElm.nodeName === 'IMG' && (imgElm.hasAttribute('data-mce-object') || imgElm.hasAttribute('data-mce-placeholder'));\n const isSafeImageUrl = (editor, src) => {\n const getOption = editor.options.get;\n return global$2.isDomSafe(src, 'img', {\n allow_html_data_urls: getOption('allow_html_data_urls'),\n allow_script_urls: getOption('allow_script_urls'),\n allow_svg_data_urls: getOption('allow_svg_data_urls')\n });\n };\n\n const DOM = global$3.DOM;\n const getHspace = image => {\n if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) {\n return removePixelSuffix(image.style.marginLeft);\n } else {\n return '';\n }\n };\n const getVspace = image => {\n if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) {\n return removePixelSuffix(image.style.marginTop);\n } else {\n return '';\n }\n };\n const getBorder = image => {\n if (image.style.borderWidth) {\n return removePixelSuffix(image.style.borderWidth);\n } else {\n return '';\n }\n };\n const getAttrib = (image, name) => {\n var _a;\n if (image.hasAttribute(name)) {\n return (_a = image.getAttribute(name)) !== null && _a !== void 0 ? _a : '';\n } else {\n return '';\n }\n };\n const hasCaption = image => image.parentNode !== null && image.parentNode.nodeName === 'FIGURE';\n const updateAttrib = (image, name, value) => {\n if (value === '' || value === null) {\n image.removeAttribute(name);\n } else {\n image.setAttribute(name, value);\n }\n };\n const wrapInFigure = image => {\n const figureElm = DOM.create('figure', { class: 'image' });\n DOM.insertAfter(figureElm, image);\n figureElm.appendChild(image);\n figureElm.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption'));\n figureElm.contentEditable = 'false';\n };\n const removeFigure = image => {\n const figureElm = image.parentNode;\n if (isNonNullable(figureElm)) {\n DOM.insertAfter(image, figureElm);\n DOM.remove(figureElm);\n }\n };\n const toggleCaption = image => {\n if (hasCaption(image)) {\n removeFigure(image);\n } else {\n wrapInFigure(image);\n }\n };\n const normalizeStyle = (image, normalizeCss) => {\n const attrValue = image.getAttribute('style');\n const value = normalizeCss(attrValue !== null ? attrValue : '');\n if (value.length > 0) {\n image.setAttribute('style', value);\n image.setAttribute('data-mce-style', value);\n } else {\n image.removeAttribute('style');\n }\n };\n const setSize = (name, normalizeCss) => (image, name, value) => {\n const styles = image.style;\n if (styles[name]) {\n styles[name] = addPixelSuffix(value);\n normalizeStyle(image, normalizeCss);\n } else {\n updateAttrib(image, name, value);\n }\n };\n const getSize = (image, name) => {\n if (image.style[name]) {\n return removePixelSuffix(image.style[name]);\n } else {\n return getAttrib(image, name);\n }\n };\n const setHspace = (image, value) => {\n const pxValue = addPixelSuffix(value);\n image.style.marginLeft = pxValue;\n image.style.marginRight = pxValue;\n };\n const setVspace = (image, value) => {\n const pxValue = addPixelSuffix(value);\n image.style.marginTop = pxValue;\n image.style.marginBottom = pxValue;\n };\n const setBorder = (image, value) => {\n const pxValue = addPixelSuffix(value);\n image.style.borderWidth = pxValue;\n };\n const setBorderStyle = (image, value) => {\n image.style.borderStyle = value;\n };\n const getBorderStyle = image => {\n var _a;\n return (_a = image.style.borderStyle) !== null && _a !== void 0 ? _a : '';\n };\n const isFigure = elm => isNonNullable(elm) && elm.nodeName === 'FIGURE';\n const isImage = elm => elm.nodeName === 'IMG';\n const getIsDecorative = image => DOM.getAttrib(image, 'alt').length === 0 && DOM.getAttrib(image, 'role') === 'presentation';\n const getAlt = image => {\n if (getIsDecorative(image)) {\n return '';\n } else {\n return getAttrib(image, 'alt');\n }\n };\n const defaultData = () => ({\n src: '',\n alt: '',\n title: '',\n width: '',\n height: '',\n class: '',\n style: '',\n caption: false,\n hspace: '',\n vspace: '',\n border: '',\n borderStyle: '',\n isDecorative: false\n });\n const getStyleValue = (normalizeCss, data) => {\n var _a;\n const image = document.createElement('img');\n updateAttrib(image, 'style', data.style);\n if (getHspace(image) || data.hspace !== '') {\n setHspace(image, data.hspace);\n }\n if (getVspace(image) || data.vspace !== '') {\n setVspace(image, data.vspace);\n }\n if (getBorder(image) || data.border !== '') {\n setBorder(image, data.border);\n }\n if (getBorderStyle(image) || data.borderStyle !== '') {\n setBorderStyle(image, data.borderStyle);\n }\n return normalizeCss((_a = image.getAttribute('style')) !== null && _a !== void 0 ? _a : '');\n };\n const create = (normalizeCss, data) => {\n const image = document.createElement('img');\n write(normalizeCss, {\n ...data,\n caption: false\n }, image);\n setAlt(image, data.alt, data.isDecorative);\n if (data.caption) {\n const figure = DOM.create('figure', { class: 'image' });\n figure.appendChild(image);\n figure.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption'));\n figure.contentEditable = 'false';\n return figure;\n } else {\n return image;\n }\n };\n const read = (normalizeCss, image) => ({\n src: getAttrib(image, 'src'),\n alt: getAlt(image),\n title: getAttrib(image, 'title'),\n width: getSize(image, 'width'),\n height: getSize(image, 'height'),\n class: getAttrib(image, 'class'),\n style: normalizeCss(getAttrib(image, 'style')),\n caption: hasCaption(image),\n hspace: getHspace(image),\n vspace: getVspace(image),\n border: getBorder(image),\n borderStyle: getBorderStyle(image),\n isDecorative: getIsDecorative(image)\n });\n const updateProp = (image, oldData, newData, name, set) => {\n if (newData[name] !== oldData[name]) {\n set(image, name, String(newData[name]));\n }\n };\n const setAlt = (image, alt, isDecorative) => {\n if (isDecorative) {\n DOM.setAttrib(image, 'role', 'presentation');\n const sugarImage = SugarElement.fromDom(image);\n set(sugarImage, 'alt', '');\n } else {\n if (isNull(alt)) {\n const sugarImage = SugarElement.fromDom(image);\n remove(sugarImage, 'alt');\n } else {\n const sugarImage = SugarElement.fromDom(image);\n set(sugarImage, 'alt', alt);\n }\n if (DOM.getAttrib(image, 'role') === 'presentation') {\n DOM.setAttrib(image, 'role', '');\n }\n }\n };\n const updateAlt = (image, oldData, newData) => {\n if (newData.alt !== oldData.alt || newData.isDecorative !== oldData.isDecorative) {\n setAlt(image, newData.alt, newData.isDecorative);\n }\n };\n const normalized = (set, normalizeCss) => (image, name, value) => {\n set(image, value);\n normalizeStyle(image, normalizeCss);\n };\n const write = (normalizeCss, newData, image) => {\n const oldData = read(normalizeCss, image);\n updateProp(image, oldData, newData, 'caption', (image, _name, _value) => toggleCaption(image));\n updateProp(image, oldData, newData, 'src', updateAttrib);\n updateProp(image, oldData, newData, 'title', updateAttrib);\n updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss));\n updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss));\n updateProp(image, oldData, newData, 'class', updateAttrib);\n updateProp(image, oldData, newData, 'style', normalized((image, value) => updateAttrib(image, 'style', value), normalizeCss));\n updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss));\n updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss));\n updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss));\n updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss));\n updateAlt(image, oldData, newData);\n };\n\n const normalizeCss$1 = (editor, cssText) => {\n const css = editor.dom.styles.parse(cssText);\n const mergedCss = mergeMargins(css);\n const compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss));\n return editor.dom.styles.serialize(compressed);\n };\n const getSelectedImage = editor => {\n const imgElm = editor.selection.getNode();\n const figureElm = editor.dom.getParent(imgElm, 'figure.image');\n if (figureElm) {\n return editor.dom.select('img', figureElm)[0];\n }\n if (imgElm && (imgElm.nodeName !== 'IMG' || isPlaceholderImage(imgElm))) {\n return null;\n }\n return imgElm;\n };\n const splitTextBlock = (editor, figure) => {\n var _a;\n const dom = editor.dom;\n const textBlockElements = filter(editor.schema.getTextBlockElements(), (_, parentElm) => !editor.schema.isValidChild(parentElm, 'figure'));\n const textBlock = dom.getParent(figure.parentNode, node => hasNonNullableKey(textBlockElements, node.nodeName), editor.getBody());\n if (textBlock) {\n return (_a = dom.split(textBlock, figure)) !== null && _a !== void 0 ? _a : figure;\n } else {\n return figure;\n }\n };\n const readImageDataFromSelection = editor => {\n const image = getSelectedImage(editor);\n return image ? read(css => normalizeCss$1(editor, css), image) : defaultData();\n };\n const insertImageAtCaret = (editor, data) => {\n const elm = create(css => normalizeCss$1(editor, css), data);\n editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew');\n editor.focus();\n editor.selection.setContent(elm.outerHTML);\n const insertedElm = editor.dom.select('*[data-mce-id=\"__mcenew\"]')[0];\n editor.dom.setAttrib(insertedElm, 'data-mce-id', null);\n if (isFigure(insertedElm)) {\n const figure = splitTextBlock(editor, insertedElm);\n editor.selection.select(figure);\n } else {\n editor.selection.select(insertedElm);\n }\n };\n const syncSrcAttr = (editor, image) => {\n editor.dom.setAttrib(image, 'src', image.getAttribute('src'));\n };\n const deleteImage = (editor, image) => {\n if (image) {\n const elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image;\n editor.dom.remove(elm);\n editor.focus();\n editor.nodeChanged();\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n }\n }\n };\n const writeImageDataToSelection = (editor, data) => {\n const image = getSelectedImage(editor);\n if (image) {\n write(css => normalizeCss$1(editor, css), data, image);\n syncSrcAttr(editor, image);\n if (isFigure(image.parentNode)) {\n const figure = image.parentNode;\n splitTextBlock(editor, figure);\n editor.selection.select(image.parentNode);\n } else {\n editor.selection.select(image);\n waitLoadImage(editor, data, image);\n }\n }\n };\n const sanitizeImageData = (editor, data) => {\n const src = data.src;\n return {\n ...data,\n src: isSafeImageUrl(editor, src) ? src : ''\n };\n };\n const insertOrUpdateImage = (editor, partialData) => {\n const image = getSelectedImage(editor);\n if (image) {\n const selectedImageData = read(css => normalizeCss$1(editor, css), image);\n const data = {\n ...selectedImageData,\n ...partialData\n };\n const sanitizedData = sanitizeImageData(editor, data);\n if (data.src) {\n writeImageDataToSelection(editor, sanitizedData);\n } else {\n deleteImage(editor, image);\n }\n } else if (partialData.src) {\n insertImageAtCaret(editor, {\n ...defaultData(),\n ...partialData\n });\n }\n };\n\n const deep = (old, nu) => {\n const bothObjects = isPlainObject(old) && isPlainObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n const baseMerge = merger => {\n return (...objects) => {\n if (objects.length === 0) {\n throw new Error(`Can't merge zero objects`);\n }\n const ret = {};\n for (let j = 0; j < objects.length; j++) {\n const curObject = objects[j];\n for (const key in curObject) {\n if (has(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n const deepMerge = baseMerge(deep);\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.ImageUploader');\n\n var global = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n const getValue = item => isString(item.value) ? item.value : '';\n const getText = item => {\n if (isString(item.text)) {\n return item.text;\n } else if (isString(item.title)) {\n return item.title;\n } else {\n return '';\n }\n };\n const sanitizeList = (list, extractValue) => {\n const out = [];\n global.each(list, item => {\n const text = getText(item);\n if (item.menu !== undefined) {\n const items = sanitizeList(item.menu, extractValue);\n out.push({\n text,\n items\n });\n } else {\n const value = extractValue(item);\n out.push({\n text,\n value\n });\n }\n });\n return out;\n };\n const sanitizer = (extractor = getValue) => list => {\n if (list) {\n return Optional.from(list).map(list => sanitizeList(list, extractor));\n } else {\n return Optional.none();\n }\n };\n const sanitize = list => sanitizer(getValue)(list);\n const isGroup = item => has(item, 'items');\n const findEntryDelegate = (list, value) => findMap(list, item => {\n if (isGroup(item)) {\n return findEntryDelegate(item.items, value);\n } else if (item.value === value) {\n return Optional.some(item);\n } else {\n return Optional.none();\n }\n });\n const findEntry = (optList, value) => optList.bind(list => findEntryDelegate(list, value));\n const ListUtils = {\n sanitizer,\n sanitize,\n findEntry\n };\n\n const makeTab$2 = _info => ({\n title: 'Advanced',\n name: 'advanced',\n items: [{\n type: 'grid',\n columns: 2,\n items: [\n {\n type: 'input',\n label: 'Vertical space',\n name: 'vspace',\n inputMode: 'numeric'\n },\n {\n type: 'input',\n label: 'Horizontal space',\n name: 'hspace',\n inputMode: 'numeric'\n },\n {\n type: 'input',\n label: 'Border width',\n name: 'border',\n inputMode: 'numeric'\n },\n {\n type: 'listbox',\n name: 'borderstyle',\n label: 'Border style',\n items: [\n {\n text: 'Select...',\n value: ''\n },\n {\n text: 'Solid',\n value: 'solid'\n },\n {\n text: 'Dotted',\n value: 'dotted'\n },\n {\n text: 'Dashed',\n value: 'dashed'\n },\n {\n text: 'Double',\n value: 'double'\n },\n {\n text: 'Groove',\n value: 'groove'\n },\n {\n text: 'Ridge',\n value: 'ridge'\n },\n {\n text: 'Inset',\n value: 'inset'\n },\n {\n text: 'Outset',\n value: 'outset'\n },\n {\n text: 'None',\n value: 'none'\n },\n {\n text: 'Hidden',\n value: 'hidden'\n }\n ]\n }\n ]\n }]\n });\n const AdvTab = { makeTab: makeTab$2 };\n\n const collect = editor => {\n const urlListSanitizer = ListUtils.sanitizer(item => editor.convertURL(item.value || item.url || '', 'src'));\n const futureImageList = new Promise(completer => {\n createImageList(editor, imageList => {\n completer(urlListSanitizer(imageList).map(items => flatten([\n [{\n text: 'None',\n value: ''\n }],\n items\n ])));\n });\n });\n const classList = ListUtils.sanitize(getClassList(editor));\n const hasAdvTab$1 = hasAdvTab(editor);\n const hasUploadTab$1 = hasUploadTab(editor);\n const hasUploadUrl$1 = hasUploadUrl(editor);\n const hasUploadHandler$1 = hasUploadHandler(editor);\n const image = readImageDataFromSelection(editor);\n const hasDescription$1 = hasDescription(editor);\n const hasImageTitle$1 = hasImageTitle(editor);\n const hasDimensions$1 = hasDimensions(editor);\n const hasImageCaption$1 = hasImageCaption(editor);\n const hasAccessibilityOptions = showAccessibilityOptions(editor);\n const automaticUploads = isAutomaticUploadsEnabled(editor);\n const prependURL = Optional.some(getPrependUrl(editor)).filter(preUrl => isString(preUrl) && preUrl.length > 0);\n return futureImageList.then(imageList => ({\n image,\n imageList,\n classList,\n hasAdvTab: hasAdvTab$1,\n hasUploadTab: hasUploadTab$1,\n hasUploadUrl: hasUploadUrl$1,\n hasUploadHandler: hasUploadHandler$1,\n hasDescription: hasDescription$1,\n hasImageTitle: hasImageTitle$1,\n hasDimensions: hasDimensions$1,\n hasImageCaption: hasImageCaption$1,\n prependURL,\n hasAccessibilityOptions,\n automaticUploads\n }));\n };\n\n const makeItems = info => {\n const imageUrl = {\n name: 'src',\n type: 'urlinput',\n filetype: 'image',\n label: 'Source',\n picker_text: 'Browse files'\n };\n const imageList = info.imageList.map(items => ({\n name: 'images',\n type: 'listbox',\n label: 'Image list',\n items\n }));\n const imageDescription = {\n name: 'alt',\n type: 'input',\n label: 'Alternative description',\n enabled: !(info.hasAccessibilityOptions && info.image.isDecorative)\n };\n const imageTitle = {\n name: 'title',\n type: 'input',\n label: 'Image title'\n };\n const imageDimensions = {\n name: 'dimensions',\n type: 'sizeinput'\n };\n const isDecorative = {\n type: 'label',\n label: 'Accessibility',\n items: [{\n name: 'isDecorative',\n type: 'checkbox',\n label: 'Image is decorative'\n }]\n };\n const classList = info.classList.map(items => ({\n name: 'classes',\n type: 'listbox',\n label: 'Class',\n items\n }));\n const caption = {\n type: 'label',\n label: 'Caption',\n items: [{\n type: 'checkbox',\n name: 'caption',\n label: 'Show caption'\n }]\n };\n const getDialogContainerType = useColumns => useColumns ? {\n type: 'grid',\n columns: 2\n } : { type: 'panel' };\n return flatten([\n [imageUrl],\n imageList.toArray(),\n info.hasAccessibilityOptions && info.hasDescription ? [isDecorative] : [],\n info.hasDescription ? [imageDescription] : [],\n info.hasImageTitle ? [imageTitle] : [],\n info.hasDimensions ? [imageDimensions] : [],\n [{\n ...getDialogContainerType(info.classList.isSome() && info.hasImageCaption),\n items: flatten([\n classList.toArray(),\n info.hasImageCaption ? [caption] : []\n ])\n }]\n ]);\n };\n const makeTab$1 = info => ({\n title: 'General',\n name: 'general',\n items: makeItems(info)\n });\n const MainTab = {\n makeTab: makeTab$1,\n makeItems\n };\n\n const makeTab = _info => {\n const items = [{\n type: 'dropzone',\n name: 'fileinput'\n }];\n return {\n title: 'Upload',\n name: 'upload',\n items\n };\n };\n const UploadTab = { makeTab };\n\n const createState = info => ({\n prevImage: ListUtils.findEntry(info.imageList, info.image.src),\n prevAlt: info.image.alt,\n open: true\n });\n const fromImageData = image => ({\n src: {\n value: image.src,\n meta: {}\n },\n images: image.src,\n alt: image.alt,\n title: image.title,\n dimensions: {\n width: image.width,\n height: image.height\n },\n classes: image.class,\n caption: image.caption,\n style: image.style,\n vspace: image.vspace,\n border: image.border,\n hspace: image.hspace,\n borderstyle: image.borderStyle,\n fileinput: [],\n isDecorative: image.isDecorative\n });\n const toImageData = (data, removeEmptyAlt) => ({\n src: data.src.value,\n alt: (data.alt === null || data.alt.length === 0) && removeEmptyAlt ? null : data.alt,\n title: data.title,\n width: data.dimensions.width,\n height: data.dimensions.height,\n class: data.classes,\n style: data.style,\n caption: data.caption,\n hspace: data.hspace,\n vspace: data.vspace,\n border: data.border,\n borderStyle: data.borderstyle,\n isDecorative: data.isDecorative\n });\n const addPrependUrl2 = (info, srcURL) => {\n if (!/^(?:[a-zA-Z]+:)?\\/\\//.test(srcURL)) {\n return info.prependURL.bind(prependUrl => {\n if (srcURL.substring(0, prependUrl.length) !== prependUrl) {\n return Optional.some(prependUrl + srcURL);\n }\n return Optional.none();\n });\n }\n return Optional.none();\n };\n const addPrependUrl = (info, api) => {\n const data = api.getData();\n addPrependUrl2(info, data.src.value).each(srcURL => {\n api.setData({\n src: {\n value: srcURL,\n meta: data.src.meta\n }\n });\n });\n };\n const formFillFromMeta2 = (info, data, meta) => {\n if (info.hasDescription && isString(meta.alt)) {\n data.alt = meta.alt;\n }\n if (info.hasAccessibilityOptions) {\n data.isDecorative = meta.isDecorative || data.isDecorative || false;\n }\n if (info.hasImageTitle && isString(meta.title)) {\n data.title = meta.title;\n }\n if (info.hasDimensions) {\n if (isString(meta.width)) {\n data.dimensions.width = meta.width;\n }\n if (isString(meta.height)) {\n data.dimensions.height = meta.height;\n }\n }\n if (isString(meta.class)) {\n ListUtils.findEntry(info.classList, meta.class).each(entry => {\n data.classes = entry.value;\n });\n }\n if (info.hasImageCaption) {\n if (isBoolean(meta.caption)) {\n data.caption = meta.caption;\n }\n }\n if (info.hasAdvTab) {\n if (isString(meta.style)) {\n data.style = meta.style;\n }\n if (isString(meta.vspace)) {\n data.vspace = meta.vspace;\n }\n if (isString(meta.border)) {\n data.border = meta.border;\n }\n if (isString(meta.hspace)) {\n data.hspace = meta.hspace;\n }\n if (isString(meta.borderstyle)) {\n data.borderstyle = meta.borderstyle;\n }\n }\n };\n const formFillFromMeta = (info, api) => {\n const data = api.getData();\n const meta = data.src.meta;\n if (meta !== undefined) {\n const newData = deepMerge({}, data);\n formFillFromMeta2(info, newData, meta);\n api.setData(newData);\n }\n };\n const calculateImageSize = (helpers, info, state, api) => {\n const data = api.getData();\n const url = data.src.value;\n const meta = data.src.meta || {};\n if (!meta.width && !meta.height && info.hasDimensions) {\n if (isNotEmpty(url)) {\n helpers.imageSize(url).then(size => {\n if (state.open) {\n api.setData({ dimensions: size });\n }\n }).catch(e => console.error(e));\n } else {\n api.setData({\n dimensions: {\n width: '',\n height: ''\n }\n });\n }\n }\n };\n const updateImagesDropdown = (info, state, api) => {\n const data = api.getData();\n const image = ListUtils.findEntry(info.imageList, data.src.value);\n state.prevImage = image;\n api.setData({ images: image.map(entry => entry.value).getOr('') });\n };\n const changeSrc = (helpers, info, state, api) => {\n addPrependUrl(info, api);\n formFillFromMeta(info, api);\n calculateImageSize(helpers, info, state, api);\n updateImagesDropdown(info, state, api);\n };\n const changeImages = (helpers, info, state, api) => {\n const data = api.getData();\n const image = ListUtils.findEntry(info.imageList, data.images);\n image.each(img => {\n const updateAlt = data.alt === '' || state.prevImage.map(image => image.text === data.alt).getOr(false);\n if (updateAlt) {\n if (img.value === '') {\n api.setData({\n src: img,\n alt: state.prevAlt\n });\n } else {\n api.setData({\n src: img,\n alt: img.text\n });\n }\n } else {\n api.setData({ src: img });\n }\n });\n state.prevImage = image;\n changeSrc(helpers, info, state, api);\n };\n const changeFileInput = (helpers, info, state, api) => {\n const data = api.getData();\n api.block('Uploading image');\n head(data.fileinput).fold(() => {\n api.unblock();\n }, file => {\n const blobUri = URL.createObjectURL(file);\n const finalize = () => {\n api.unblock();\n URL.revokeObjectURL(blobUri);\n };\n const updateSrcAndSwitchTab = url => {\n api.setData({\n src: {\n value: url,\n meta: {}\n }\n });\n api.showTab('general');\n changeSrc(helpers, info, state, api);\n };\n blobToDataUri(file).then(dataUrl => {\n const blobInfo = helpers.createBlobCache(file, blobUri, dataUrl);\n if (info.automaticUploads) {\n helpers.uploadImage(blobInfo).then(result => {\n updateSrcAndSwitchTab(result.url);\n finalize();\n }).catch(err => {\n finalize();\n helpers.alertErr(err);\n });\n } else {\n helpers.addToBlobCache(blobInfo);\n updateSrcAndSwitchTab(blobInfo.blobUri());\n api.unblock();\n }\n });\n });\n };\n const changeHandler = (helpers, info, state) => (api, evt) => {\n if (evt.name === 'src') {\n changeSrc(helpers, info, state, api);\n } else if (evt.name === 'images') {\n changeImages(helpers, info, state, api);\n } else if (evt.name === 'alt') {\n state.prevAlt = api.getData().alt;\n } else if (evt.name === 'fileinput') {\n changeFileInput(helpers, info, state, api);\n } else if (evt.name === 'isDecorative') {\n api.setEnabled('alt', !api.getData().isDecorative);\n }\n };\n const closeHandler = state => () => {\n state.open = false;\n };\n const makeDialogBody = info => {\n if (info.hasAdvTab || info.hasUploadUrl || info.hasUploadHandler) {\n const tabPanel = {\n type: 'tabpanel',\n tabs: flatten([\n [MainTab.makeTab(info)],\n info.hasAdvTab ? [AdvTab.makeTab(info)] : [],\n info.hasUploadTab && (info.hasUploadUrl || info.hasUploadHandler) ? [UploadTab.makeTab(info)] : []\n ])\n };\n return tabPanel;\n } else {\n const panel = {\n type: 'panel',\n items: MainTab.makeItems(info)\n };\n return panel;\n }\n };\n const submitHandler = (editor, info, helpers) => api => {\n const data = deepMerge(fromImageData(info.image), api.getData());\n const finalData = {\n ...data,\n style: getStyleValue(helpers.normalizeCss, toImageData(data, false))\n };\n editor.execCommand('mceUpdateImage', false, toImageData(finalData, info.hasAccessibilityOptions));\n editor.editorUpload.uploadImagesAuto();\n api.close();\n };\n const imageSize = editor => url => {\n if (!isSafeImageUrl(editor, url)) {\n return Promise.resolve({\n width: '',\n height: ''\n });\n } else {\n return getImageSize(editor.documentBaseURI.toAbsolute(url)).then(dimensions => ({\n width: String(dimensions.width),\n height: String(dimensions.height)\n }));\n }\n };\n const createBlobCache = editor => (file, blobUri, dataUrl) => {\n var _a;\n return editor.editorUpload.blobCache.create({\n blob: file,\n blobUri,\n name: (_a = file.name) === null || _a === void 0 ? void 0 : _a.replace(/\\.[^\\.]+$/, ''),\n filename: file.name,\n base64: dataUrl.split(',')[1]\n });\n };\n const addToBlobCache = editor => blobInfo => {\n editor.editorUpload.blobCache.add(blobInfo);\n };\n const alertErr = editor => message => {\n editor.windowManager.alert(message);\n };\n const normalizeCss = editor => cssText => normalizeCss$1(editor, cssText);\n const parseStyle = editor => cssText => editor.dom.parseStyle(cssText);\n const serializeStyle = editor => (stylesArg, name) => editor.dom.serializeStyle(stylesArg, name);\n const uploadImage = editor => blobInfo => global$1(editor).upload([blobInfo], false).then(results => {\n var _a;\n if (results.length === 0) {\n return Promise.reject('Failed to upload image');\n } else if (results[0].status === false) {\n return Promise.reject((_a = results[0].error) === null || _a === void 0 ? void 0 : _a.message);\n } else {\n return results[0];\n }\n });\n const Dialog = editor => {\n const helpers = {\n imageSize: imageSize(editor),\n addToBlobCache: addToBlobCache(editor),\n createBlobCache: createBlobCache(editor),\n alertErr: alertErr(editor),\n normalizeCss: normalizeCss(editor),\n parseStyle: parseStyle(editor),\n serializeStyle: serializeStyle(editor),\n uploadImage: uploadImage(editor)\n };\n const open = () => {\n collect(editor).then(info => {\n const state = createState(info);\n return {\n title: 'Insert/Edit Image',\n size: 'normal',\n body: makeDialogBody(info),\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: fromImageData(info.image),\n onSubmit: submitHandler(editor, info, helpers),\n onChange: changeHandler(helpers, info, state),\n onClose: closeHandler(state)\n };\n }).then(editor.windowManager.open);\n };\n return { open };\n };\n\n const register$1 = editor => {\n editor.addCommand('mceImage', Dialog(editor).open);\n editor.addCommand('mceUpdateImage', (_ui, data) => {\n editor.undoManager.transact(() => insertOrUpdateImage(editor, data));\n });\n };\n\n const hasImageClass = node => {\n const className = node.attr('class');\n return isNonNullable(className) && /\\bimage\\b/.test(className);\n };\n const toggleContentEditableState = state => nodes => {\n let i = nodes.length;\n const toggleContentEditable = node => {\n node.attr('contenteditable', state ? 'true' : null);\n };\n while (i--) {\n const node = nodes[i];\n if (hasImageClass(node)) {\n node.attr('contenteditable', state ? 'false' : null);\n global.each(node.getAll('figcaption'), toggleContentEditable);\n }\n }\n };\n const setup = editor => {\n editor.on('PreInit', () => {\n editor.parser.addNodeFilter('figure', toggleContentEditableState(true));\n editor.serializer.addNodeFilter('figure', toggleContentEditableState(false));\n });\n };\n\n const onSetupEditable = editor => api => {\n const nodeChanged = () => {\n api.setEnabled(editor.selection.isEditable());\n };\n editor.on('NodeChange', nodeChanged);\n nodeChanged();\n return () => {\n editor.off('NodeChange', nodeChanged);\n };\n };\n const register = editor => {\n editor.ui.registry.addToggleButton('image', {\n icon: 'image',\n tooltip: 'Insert/edit image',\n onAction: Dialog(editor).open,\n onSetup: buttonApi => {\n buttonApi.setActive(isNonNullable(getSelectedImage(editor)));\n const unbindSelectorChanged = editor.selection.selectorChangedWithUnbind('img:not([data-mce-object]):not([data-mce-placeholder]),figure.image', buttonApi.setActive).unbind;\n const unbindEditable = onSetupEditable(editor)(buttonApi);\n return () => {\n unbindSelectorChanged();\n unbindEditable();\n };\n }\n });\n editor.ui.registry.addMenuItem('image', {\n icon: 'image',\n text: 'Image...',\n onAction: Dialog(editor).open,\n onSetup: onSetupEditable(editor)\n });\n editor.ui.registry.addContextMenu('image', { update: element => editor.selection.isEditable() && (isFigure(element) || isImage(element) && !isPlaceholderImage(element)) ? ['image'] : [] });\n };\n\n var Plugin = () => {\n global$4.add('image', editor => {\n register$2(editor);\n setup(editor);\n register(editor);\n register$1(editor);\n });\n };\n\n Plugin();\n\n})();\n"],"names":["global$4","tinymce","util","Tools","resolve","getPrototypeOf","Object","hasProto","v","constructor","predicate","_a","prototype","name","isType","type","value","x","t","Array","isArray","String","o","proto","isPrototypeOf","typeOf","isSimpleType","isString","isObject","isPlainObject","is","isNull","a","isBoolean","isNonNullable","isNullable","isFunction","isNumber","noop","Optional","tag","this","some","none","singletonNone","fold","onNone","onSome","isSome","isNone","map","mapper","bind","binder","exists","forall","filter","getOr","replacement","or","getOrThunk","thunk","orThunk","getOrDie","message","Error","from","getOrNull","getOrUndefined","each","worker","toArray","toString","keys","hasOwnProperty","internalFilter","obj","pred","onTrue","onFalse","f","props","k","len","length","i","has","key","call","nativePush","push","flatten","xs","r","apply","head","get","window","Function","set","element","dom","console","error","setAttribute","rawSet","fromDom","node","SugarElement","fromHtml","html","scope","div","document","createElement","innerHTML","hasChildNodes","childNodes","fromTag","fromText","text","createTextNode","fromPoint","docElm","y","elementFromPoint","global$3","global$2","isNotEmpty","s","option","editor","options","register$2","registerOption","register","processor","default","valid","isArrayOf","hasDimensions","hasAdvTab","hasUploadTab","getPrependUrl","getClassList","hasDescription","hasImageTitle","hasImageCaption","getImageList","showAccessibilityOptions","isAutomaticUploadsEnabled","parseIntAndGetMax","val1","val2","Math","max","parseInt","removePixelSuffix","replace","addPixelSuffix","test","isPlaceholderImage","imgElm","nodeName","hasAttribute","isSafeImageUrl","src","getOption","isDomSafe","allow_html_data_urls","allow_script_urls","allow_svg_data_urls","DOM","getHspace","image","style","marginLeft","marginRight","getVspace","marginTop","marginBottom","getBorder","borderWidth","getAttrib","getAttribute","hasCaption","parentNode","updateAttrib","removeAttribute","toggleCaption","figureElm","insertAfter","remove","removeFigure","create","class","appendChild","contentEditable","wrapInFigure","normalizeStyle","normalizeCss","attrValue","setSize","styles","getSize","setHspace","pxValue","setVspace","setBorder","setBorderStyle","borderStyle","getBorderStyle","isFigure","elm","getIsDecorative","getAlt","getStyleValue","data","hspace","vspace","border","read","alt","title","width","height","caption","isDecorative","updateProp","oldData","newData","setAlt","setAttrib","sugarImage","normalized","write","_name","_value","updateAlt","normalizeCss$1","cssText","mergedCss","css","margin","splitMargin","split","mergeMargins","parse","compressed","serialize","getSelectedImage","selection","getNode","getParent","select","splitTextBlock","figure","textBlockElements","schema","getTextBlockElements","_","parentElm","isValidChild","textBlock","hasNonNullableKey","undefined","getBody","insertImageAtCaret","focus","setContent","outerHTML","insertedElm","writeImageDataToSelection","syncSrcAttr","selectImage","onload","onerror","nodeChanged","setAttribs","clientWidth","clientHeight","waitLoadImage","insertOrUpdateImage","partialData","sanitizedData","sanitizeImageData","isEmpty","setCursorLocation","deleteImage","deepMerge","merger","old","nu","objects","ret","j","curObject","global$1","global","getValue","item","sanitizeList","list","extractValue","out","getText","menu","items","sanitizer","extractor","findEntryDelegate","arr","findMap","isGroup","ListUtils","optList","AdvTab","_info","columns","label","inputMode","collect","urlListSanitizer","convertURL","url","futureImageList","Promise","completer","callback","imageList","fetch","then","res","ok","json","createImageList","classList","hasAdvTab$1","hasUploadTab$1","hasUploadUrl$1","hasUploadUrl","hasUploadHandler$1","hasUploadHandler","readImageDataFromSelection","hasDescription$1","hasImageTitle$1","hasDimensions$1","hasImageCaption$1","hasAccessibilityOptions","automaticUploads","prependURL","preUrl","makeItems","info","imageDescription","enabled","filetype","picker_text","useColumns","MainTab","UploadTab","fromImageData","meta","images","dimensions","classes","borderstyle","fileinput","toImageData","removeEmptyAlt","addPrependUrl","api","getData","srcURL","prependUrl","substring","addPrependUrl2","setData","formFillFromMeta","entry","formFillFromMeta2","changeSrc","helpers","state","imageSize","size","open","catch","e","calculateImageSize","prevImage","updateImagesDropdown","changeFileInput","block","unblock","file","blobUri","URL","createObjectURL","finalize","revokeObjectURL","updateSrcAndSwitchTab","showTab","blob","reject","reader","FileReader","result","readAsDataURL","dataUrl","blobInfo","createBlobCache","uploadImage","err","alertErr","addToBlobCache","changeHandler","evt","img","prevAlt","changeImages","setEnabled","closeHandler","makeDialogBody","tabs","submitHandler","finalData","execCommand","editorUpload","uploadImagesAuto","close","done","removeChild","visibility","position","bottom","left","body","getImageSize","documentBaseURI","toAbsolute","blobCache","filename","base64","add","windowManager","alert","parseStyle","serializeStyle","stylesArg","upload","results","status","Dialog","createState","buttons","primary","initialData","onSubmit","onChange","onClose","hasImageClass","className","attr","toggleContentEditableState","nodes","toggleContentEditable","getAll","onSetupEditable","isEditable","on","off","parser","addNodeFilter","serializer","setup","ui","registry","addToggleButton","icon","tooltip","onAction","onSetup","buttonApi","setActive","unbindSelectorChanged","selectorChangedWithUnbind","unbind","unbindEditable","addMenuItem","addContextMenu","update","addCommand","_ui","undoManager","transact","register$1"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{__exports as r}from"../../../../_virtual/index16.mjs";import{__require as e}from"./plugin.mjs";var i;function o(){return i||(i=1,e()),r}export{o as __require};
1
+ import{__exports as r}from"../../../../_virtual/index10.mjs";import{__require as e}from"./plugin.mjs";var i;function o(){return i||(i=1,e()),r}export{o as __require};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,2 +1,2 @@
1
- import{__exports as e}from"../../../../_virtual/plugin6.mjs";var t;function n(){return t||(t=1,function(){var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=o=e,r=(l=String).prototype,r.isPrototypeOf(n)||(null===(i=o.constructor)||void 0===i?void 0:i.name)===l.name)?"string":t;var n,r;var o,l,i})(t)===e,n=e=>t=>typeof t===e,r=t("string"),o=t("object"),l=t("array"),i=(a=null,e=>a===e);var a;const s=n("boolean"),c=e=>!(e=>null==e)(e),u=n("function"),g=(e,t)=>{if(l(e)){for(let n=0,r=e.length;n<r;++n)if(!t(e[n]))return!1;return!0}return!1},d=()=>{},m=(e,t)=>e===t;class h{constructor(e,t){this.tag=e,this.value=t}static some(e){return new h(!0,e)}static none(){return h.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?h.some(e(this.value)):h.none()}bind(e){return this.tag?e(this.value):h.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:h.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return c(e)?h.some(e):h.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}h.singletonNone=new h(!1);const f=Array.prototype.indexOf,p=Array.prototype.push,k=(e,t)=>((e,t)=>f.call(e,t))(e,t)>-1,v=e=>{const t=[];for(let n=0,r=e.length;n<r;++n){if(!l(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);p.apply(t,e[n])}return t},x=(e,t)=>v(((e,t)=>{const n=e.length,r=new Array(n);for(let o=0;o<n;o++){const n=e[o];r[o]=t(n,o)}return r})(e,t)),y=(e,t)=>{for(let n=0;n<e.length;n++){const r=t(e[n],n);if(r.isSome())return r}return h.none()},b=(e,t,n=m)=>e.exists((e=>n(e,t))),_=e=>{const t=[],n=e=>{t.push(e)};for(let t=0;t<e.length;t++)e[t].each(n);return t},w=(e,t)=>e?h.some(t):h.none(),C=e=>t=>t.options.get(e),O=C("link_assume_external_targets"),N=C("link_context_toolbar"),A=C("link_list"),S=C("link_default_target"),E=C("link_default_protocol"),T=C("link_target_list"),R=C("link_rel_list"),P=C("link_class_list"),L=C("link_title"),M=C("allow_unsafe_link_target"),D=C("link_quicklink");var U=tinymce.util.Tools.resolve("tinymce.util.Tools");const B=e=>r(e.value)?e.value:"",j=(e,t)=>{const n=[];return U.each(e,(e=>{const o=(e=>r(e.text)?e.text:r(e.title)?e.title:"")(e);if(void 0!==e.menu){const r=j(e.menu,t);n.push({text:o,items:r})}else{const r=t(e);n.push({text:o,value:r})}})),n},I=(e=B)=>t=>h.from(t).map((t=>j(t,e))),K={sanitize:e=>I(B)(e),sanitizeWith:I,createUi:(e,t)=>n=>({name:e,type:"listbox",label:t,items:n}),getValue:B},z=Object.keys,q=Object.hasOwnProperty,V=(e,t,n,r)=>{((e,t)=>{const n=z(e);for(let r=0,o=n.length;r<o;r++){const o=n[r];t(e[o],o)}})(e,((e,o)=>{(t(e,o)?n:r)(e,o)}))},F=(e,t)=>q.call(e,t);var W=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),$=tinymce.util.Tools.resolve("tinymce.util.URI");const G=e=>c(e)&&"a"===e.nodeName.toLowerCase(),H=e=>G(e)&&!!X(e),J=(e,t)=>{if(e.collapsed)return[];{const n=e.cloneContents(),r=n.firstChild,o=new W(r,n),l=[];let i=r;do{t(i)&&l.push(i)}while(i=o.next());return l}},Q=e=>/^\w+:/i.test(e),X=e=>{var t,n;return null!==(n=null!==(t=e.getAttribute("data-mce-href"))&&void 0!==t?t:e.getAttribute("href"))&&void 0!==n?n:""},Y=(e,t)=>{const n=["noopener"],r=e?e.split(/\s+/):[],o=e=>e.filter((e=>-1===U.inArray(n,e))),l=t?(e=>(e=o(e)).length>0?e.concat(n):n)(r):o(r);return l.length>0?(e=>U.trim(e.sort().join(" ")))(l):""},Z=(e,t)=>(t=t||ne(e.selection.getRng())[0]||e.selection.getNode(),ie(t)?h.from(e.dom.select("a[href]",t)[0]):h.from(e.dom.getParent(t,"a[href]"))),ee=(e,t)=>Z(e,t).isSome(),te=(e,t)=>(e=>e.replace(/\uFEFF/g,""))(t.fold((()=>e.getContent({format:"text"})),(e=>e.innerText||e.textContent||""))),ne=e=>J(e,H),re=e=>U.grep(e,H),oe=e=>re(e).length>0,le=e=>{const t=e.schema.getTextInlineElements(),n=e=>1===e.nodeType&&!G(e)&&!F(t,e.nodeName.toLowerCase());if(Z(e).exists((e=>e.hasAttribute("data-mce-block"))))return!1;const r=e.selection.getRng();if(r.collapsed)return!0;return 0===J(r,n).length},ie=e=>c(e)&&"FIGURE"===e.nodeName&&/\bimage\b/i.test(e.className),ae=(e,t)=>{const n={...t};if(0===R(e).length&&!M(e)){const e=Y(n.rel,"_blank"===n.target);n.rel=e||null}return h.from(n.target).isNone()&&!1===T(e)&&(n.target=S(e)),n.href=((e,t)=>"http"!==t&&"https"!==t||Q(e)?e:t+"://"+e)(n.href,O(e)),n},se=(e,t,n)=>{const r=e.selection.getNode(),o=Z(e,r),l=ae(e,(e=>{return t=["title","rel","class","target"],n=(t,n)=>(e[n].each((e=>{t[n]=e.length>0?e:null})),t),r={href:e.href},((e,t)=>{for(let n=0,r=e.length;n<r;n++)t(e[n],n)})(t,((e,t)=>{r=n(r,e,t)})),r;var t,n,r})(n));e.undoManager.transact((()=>{n.href===t.href&&t.attach(),o.fold((()=>{((e,t,n,r)=>{const o=e.dom;ie(t)?me(o,t,r):n.fold((()=>{e.execCommand("mceInsertLink",!1,r)}),(t=>{e.insertContent(o.createHTML("a",r,o.encode(t)))}))})(e,r,n.text,l)}),(t=>{e.focus(),((e,t,n,r)=>{n.each((e=>{F(t,"innerText")?t.innerText=e:t.textContent=e})),e.dom.setAttribs(t,r),e.selection.select(t)})(e,t,n.text,l)}))}))},ce=e=>{const{class:t,href:n,rel:r,target:o,text:l,title:a}=e;return((e,t)=>{const n={};var r;return V(e,t,(r=n,(e,t)=>{r[t]=e}),d),n})({class:t.getOrNull(),href:n,rel:r.getOrNull(),target:o.getOrNull(),text:l.getOrNull(),title:a.getOrNull()},((e,t)=>!1===i(e)))},ue=(e,t,n)=>{const r=((e,t)=>{const n=e.options.get,r={allow_html_data_urls:n("allow_html_data_urls"),allow_script_urls:n("allow_script_urls"),allow_svg_data_urls:n("allow_svg_data_urls")},o=t.href;return{...t,href:$.isDomSafe(o,"a",r)?o:""}})(e,n);e.hasPlugin("rtc",!0)?e.execCommand("createlink",!1,ce(r)):se(e,t,r)},ge=e=>{e.hasPlugin("rtc",!0)?e.execCommand("unlink"):(e=>{e.undoManager.transact((()=>{const t=e.selection.getNode();ie(t)?de(e,t):(e=>{const t=e.dom,n=e.selection,r=n.getBookmark(),o=n.getRng().cloneRange(),l=t.getParent(o.startContainer,"a[href]",e.getBody()),i=t.getParent(o.endContainer,"a[href]",e.getBody());l&&o.setStartBefore(l),i&&o.setEndAfter(i),n.setRng(o),e.execCommand("unlink"),n.moveToBookmark(r)})(e),e.focus()}))})(e)},de=(e,t)=>{var n;const r=e.dom.select("img",t)[0];if(r){const o=e.dom.getParents(r,"a[href]",t)[0];o&&(null===(n=o.parentNode)||void 0===n||n.insertBefore(r,o),e.dom.remove(o))}},me=(e,t,n)=>{var r;const o=e.select("img",t)[0];if(o){const t=e.create("a",n);null===(r=o.parentNode)||void 0===r||r.insertBefore(t,o),t.appendChild(o)}},he=e=>{return F(t=e,n="items")&&void 0!==t[n]&&null!==t[n];var t,n},fe=(e,t)=>y(t,(t=>he(t)?fe(e,t.items):w(t.value===e,t))),pe=(e,t,n,r)=>{const o=r[t],l=e.length>0;return void 0!==o?fe(o,n).map((t=>({url:{value:t.value,meta:{text:l?e:t.text,attach:d}},text:l?e:t.text}))):h.none()},ke=(e,t)=>{const n={text:e.text,title:e.title},r=e=>{const t=(r=e.url,w(n.text.length<=0,h.from(null===(o=r.meta)||void 0===o?void 0:o.text).getOr(r.value)));var r,o;const l=(e=>{var t;return w(n.title.length<=0,h.from(null===(t=e.meta)||void 0===t?void 0:t.title).getOr(""))})(e.url);return t.isSome()||l.isSome()?h.some({...t.map((e=>({text:e}))).getOr({}),...l.map((e=>({title:e}))).getOr({})}):h.none()},o=(e,r)=>{const o=(l=t,i=r,"link"===i?l.link:"anchor"===i?l.anchor:h.none()).getOr([]);var l,i;return pe(n.text,r,o,e)};return{onChange:(e,t)=>{const l=t.name;return"url"===l?r(e()):k(["anchor","link"],l)?o(e(),l):"text"===l||"title"===l?(n[l]=e()[l],h.none()):h.none()}}};var ve=tinymce.util.Tools.resolve("tinymce.util.Delay");const xe=e=>{const t=e.href;return t.indexOf("@")>0&&-1===t.indexOf("/")&&-1===t.indexOf("mailto:")?h.some({message:"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",preprocess:e=>({...e,href:"mailto:"+t})}):h.none()},ye=(e,t)=>n=>{const r=n.href;return 1===e&&!Q(r)||0===e&&/^\s*www(\.|\d\.)/i.test(r)?h.some({message:`The URL you entered seems to be an external link. Do you want to add the required ${t}:// prefix?`,preprocess:e=>({...e,href:t+"://"+r})}):h.none()},be=(e,t)=>y([xe,ye(O(e),E(e))],(e=>e(t))).fold((()=>Promise.resolve(t)),(n=>new Promise((r=>{((e,t,n)=>{const r=e.selection.getRng();ve.setEditorTimeout(e,(()=>{e.windowManager.confirm(t,(t=>{e.selection.setRng(r),n(t)}))}))})(e,n.message,(e=>{r(e?n.preprocess(t):t)}))})))),_e=e=>{const t=e.dom.select("a:not([href])"),n=x(t,(e=>{const t=e.name||e.id;return t?[{text:t,value:"#"+t}]:[]}));return n.length>0?h.some([{text:"None",value:""}].concat(n)):h.none()},we=e=>{const t=P(e);return t.length>0?K.sanitize(t):h.none()},Ce=e=>{try{return h.some(JSON.parse(e))}catch(e){return h.none()}},Oe=e=>{const t=t=>e.convertURL(t.value||t.url||"","href"),n=A(e);return new Promise((e=>{r(n)?fetch(n).then((e=>e.ok?e.text().then(Ce):Promise.reject())).then(e,(()=>e(h.none()))):u(n)?n((t=>e(h.some(t)))):e(h.from(n))})).then((e=>e.bind(K.sanitizeWith(t)).map((e=>{if(e.length>0){return[{text:"None",value:""}].concat(e)}return e}))))},Ne=(e,t)=>{const n=R(e);if(n.length>0){const r=b(t,"_blank"),o=e=>Y(K.getValue(e),r);return(!1===M(e)?K.sanitizeWith(o):K.sanitize)(n)}return h.none()},Ae=[{text:"Current window",value:""},{text:"New window",value:"_blank"}],Se=e=>{const t=T(e);return l(t)?K.sanitize(t).orThunk((()=>h.some(Ae))):!1===t?h.none():h.some(Ae)},Ee=(e,t,n)=>{const r=e.getAttrib(t,n);return null!==r&&r.length>0?h.some(r):h.none()},Te=(e,t)=>Oe(e).then((n=>{const r=((e,t)=>{const n=e.dom,r=le(e)?h.some(te(e.selection,t)):h.none(),o=t.bind((e=>h.from(n.getAttrib(e,"href")))),l=t.bind((e=>h.from(n.getAttrib(e,"target")))),i=t.bind((e=>Ee(n,e,"rel"))),a=t.bind((e=>Ee(n,e,"class")));return{url:o,text:r,title:t.bind((e=>Ee(n,e,"title"))),target:l,rel:i,linkClass:a}})(e,t);return{anchor:r,catalogs:{targets:Se(e),rels:Ne(e,r.target),classes:we(e),anchor:_e(e),link:n},optNode:t,flags:{titleEnabled:L(e)}}})),Re=e=>{const t=(e=>{const t=Z(e);return Te(e,t)})(e);t.then((t=>{const n=((e,t)=>n=>{const r=n.getData();if(!r.url.value)return ge(e),void n.close();const o=e=>h.from(r[e]).filter((n=>!b(t.anchor[e],n))),l={href:r.url.value,text:o("text"),target:o("target"),rel:o("rel"),class:o("linkClass"),title:o("title")},i={href:r.url.value,attach:void 0!==r.url.meta&&r.url.meta.attach?r.url.meta.attach:d};be(e,l).then((t=>{ue(e,i,t)})),n.close()})(e,t);return((e,t,n)=>{const r=e.anchor.text.map((()=>({name:"text",type:"input",label:"Text to display"}))).toArray(),o=e.flags.titleEnabled?[{name:"title",type:"input",label:"Title"}]:[],l=((e,t)=>{const n=e.anchor,r=n.url.getOr("");return{url:{value:r,meta:{original:{value:r}}},text:n.text.getOr(""),title:n.title.getOr(""),anchor:r,link:r,rel:n.rel.getOr(""),target:n.target.or(t).getOr(""),linkClass:n.linkClass.getOr("")}})(e,h.from(S(n))),i=e.catalogs,a=ke(l,i);return{title:"Insert/Edit Link",size:"normal",body:{type:"panel",items:v([[{name:"url",type:"urlinput",filetype:"file",label:"URL",picker_text:"Browse links"}],r,o,_([i.anchor.map(K.createUi("anchor","Anchors")),i.rels.map(K.createUi("rel","Rel")),i.targets.map(K.createUi("target","Open link in...")),i.link.map(K.createUi("link","Link list")),i.classes.map(K.createUi("linkClass","Class"))])])},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:l,onChange:(e,{name:t})=>{a.onChange(e.getData,{name:t}).each((t=>{e.setData(t)}))},onSubmit:t}})(t,n,e)})).then((t=>{e.windowManager.open(t)}))};var Pe=tinymce.util.Tools.resolve("tinymce.util.VK");const Le=e=>{const t=document.createElement("a");t.target="_blank",t.href=e,t.rel="noreferrer noopener";const n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),((e,t)=>{document.body.appendChild(e),e.dispatchEvent(t),document.body.removeChild(e)})(t,n)},Me=(e,t)=>e.dom.getParent(t,"a[href]"),De=e=>Me(e,e.selection.getStart()),Ue=(e,t)=>{if(t){const n=X(t);if(/^#/.test(n)){const t=e.dom.select(n);t.length&&e.selection.scrollIntoView(t[0],!0)}else Le(t.href)}},Be=e=>()=>{e.execCommand("mceLink",!1,{dialog:!0})},je=e=>()=>{Ue(e,De(e))},Ie=(e,t)=>(e.on("NodeChange",t),()=>e.off("NodeChange",t)),Ke=e=>t=>{const n=()=>{t.setActive(!e.mode.isReadOnly()&&ee(e,e.selection.getNode())),t.setEnabled(e.selection.isEditable())};return n(),Ie(e,n)},ze=e=>t=>{const n=()=>{t.setEnabled(e.selection.isEditable())};return n(),Ie(e,n)},qe=e=>t=>{const n=()=>t.setEnabled((e=>1===(e.selection.isCollapsed()?re(e.dom.getParents(e.selection.getStart())):ne(e.selection.getRng())).length)(e));return n(),Ie(e,n)},Ve=e=>t=>{const n=t=>{return oe(t)||(n=e.selection.getRng(),ne(n).length>0);var n},r=e.dom.getParents(e.selection.getStart()),o=r=>{t.setEnabled(n(r)&&e.selection.isEditable())};return o(r),Ie(e,(e=>o(e.parents)))},Fe=e=>{const t=t=>{const n=e.selection.getNode();return t.setEnabled(ee(e,n)),d};e.ui.registry.addContextForm("quicklink",{launch:{type:"contextformtogglebutton",icon:"link",tooltip:"Link",onSetup:Ke(e)},label:"Link",predicate:t=>N(e)&&ee(e,t),initValue:()=>{return Z(e).fold((t="",()=>t),X);var t},commands:[{type:"contextformtogglebutton",icon:"link",tooltip:"Link",primary:!0,onSetup:t=>{const n=e.selection.getNode();return t.setActive(ee(e,n)),Ke(e)(t)},onAction:t=>{const n=t.getValue(),r=(t=>{const n=Z(e),r=le(e);if(n.isNone()&&r){const r=te(e.selection,n);return w(0===r.length,t)}return h.none()})(n);ue(e,{href:n,attach:d},{href:n,text:r,title:h.none(),rel:h.none(),target:h.none(),class:h.none()}),(e=>{e.selection.collapse(!1)})(e),t.hide()}},{type:"contextformbutton",icon:"unlink",tooltip:"Remove link",onSetup:t,onAction:t=>{ge(e),t.hide()}},{type:"contextformbutton",icon:"new-tab",tooltip:"Open link",onSetup:t,onAction:t=>{je(e)(),t.hide()}}]})};e.add("link",(e=>{(e=>{const t=e.options.register;t("link_assume_external_targets",{processor:e=>{const t=r(e)||s(e);return t?!0===e?{value:1,valid:t}:"http"===e||"https"===e?{value:e,valid:t}:{value:0,valid:t}:{valid:!1,message:"Must be a string or a boolean."}},default:!1}),t("link_context_toolbar",{processor:"boolean",default:!1}),t("link_list",{processor:e=>r(e)||u(e)||g(e,o)}),t("link_default_target",{processor:"string"}),t("link_default_protocol",{processor:"string",default:"https"}),t("link_target_list",{processor:e=>s(e)||g(e,o),default:!0}),t("link_rel_list",{processor:"object[]",default:[]}),t("link_class_list",{processor:"object[]",default:[]}),t("link_title",{processor:"boolean",default:!0}),t("allow_unsafe_link_target",{processor:"boolean",default:!1}),t("link_quicklink",{processor:"boolean",default:!1})})(e),(e=>{e.ui.registry.addToggleButton("link",{icon:"link",tooltip:"Insert/edit link",onAction:Be(e),onSetup:Ke(e)}),e.ui.registry.addButton("openlink",{icon:"new-tab",tooltip:"Open link",onAction:je(e),onSetup:qe(e)}),e.ui.registry.addButton("unlink",{icon:"unlink",tooltip:"Remove link",onAction:()=>ge(e),onSetup:Ve(e)})})(e),(e=>{e.ui.registry.addMenuItem("openlink",{text:"Open link",icon:"new-tab",onAction:je(e),onSetup:qe(e)}),e.ui.registry.addMenuItem("link",{icon:"link",text:"Link...",shortcut:"Meta+K",onSetup:ze(e),onAction:Be(e)}),e.ui.registry.addMenuItem("unlink",{icon:"unlink",text:"Remove link",onAction:()=>ge(e),onSetup:Ve(e)})})(e),(e=>{e.ui.registry.addContextMenu("link",{update:t=>e.dom.isEditable(t)?oe(e.dom.getParents(t,"a"))?"link unlink openlink":"link":""})})(e),Fe(e),(e=>{e.on("click",(t=>{const n=Me(e,t.target);n&&Pe.metaKeyPressed(t)&&(t.preventDefault(),Ue(e,n))})),e.on("keydown",(t=>{if(!t.isDefaultPrevented()&&13===t.keyCode&&(e=>!0===e.altKey&&!1===e.shiftKey&&!1===e.ctrlKey&&!1===e.metaKey)(t)){const n=De(e);n&&(t.preventDefault(),Ue(e,n))}}))})(e),(e=>{e.addCommand("mceLink",((t,n)=>{!0!==(null==n?void 0:n.dialog)&&D(e)?e.dispatch("contexttoolbar-show",{toolbarKey:"quicklink"}):Re(e)}))})(e),(e=>{e.addShortcut("Meta+K","",(()=>{e.execCommand("mceLink")}))})(e)}))}()),e}export{n as __require};
1
+ import{__exports as e}from"../../../../_virtual/plugin4.mjs";var t;function n(){return t||(t=1,function(){var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=o=e,r=(l=String).prototype,r.isPrototypeOf(n)||(null===(i=o.constructor)||void 0===i?void 0:i.name)===l.name)?"string":t;var n,r;var o,l,i})(t)===e,n=e=>t=>typeof t===e,r=t("string"),o=t("object"),l=t("array"),i=(a=null,e=>a===e);var a;const s=n("boolean"),c=e=>!(e=>null==e)(e),u=n("function"),g=(e,t)=>{if(l(e)){for(let n=0,r=e.length;n<r;++n)if(!t(e[n]))return!1;return!0}return!1},d=()=>{},m=(e,t)=>e===t;class h{constructor(e,t){this.tag=e,this.value=t}static some(e){return new h(!0,e)}static none(){return h.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?h.some(e(this.value)):h.none()}bind(e){return this.tag?e(this.value):h.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:h.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return c(e)?h.some(e):h.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}h.singletonNone=new h(!1);const f=Array.prototype.indexOf,p=Array.prototype.push,k=(e,t)=>((e,t)=>f.call(e,t))(e,t)>-1,v=e=>{const t=[];for(let n=0,r=e.length;n<r;++n){if(!l(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);p.apply(t,e[n])}return t},x=(e,t)=>v(((e,t)=>{const n=e.length,r=new Array(n);for(let o=0;o<n;o++){const n=e[o];r[o]=t(n,o)}return r})(e,t)),y=(e,t)=>{for(let n=0;n<e.length;n++){const r=t(e[n],n);if(r.isSome())return r}return h.none()},b=(e,t,n=m)=>e.exists((e=>n(e,t))),_=e=>{const t=[],n=e=>{t.push(e)};for(let t=0;t<e.length;t++)e[t].each(n);return t},w=(e,t)=>e?h.some(t):h.none(),C=e=>t=>t.options.get(e),O=C("link_assume_external_targets"),N=C("link_context_toolbar"),A=C("link_list"),S=C("link_default_target"),E=C("link_default_protocol"),T=C("link_target_list"),R=C("link_rel_list"),P=C("link_class_list"),L=C("link_title"),M=C("allow_unsafe_link_target"),D=C("link_quicklink");var U=tinymce.util.Tools.resolve("tinymce.util.Tools");const B=e=>r(e.value)?e.value:"",j=(e,t)=>{const n=[];return U.each(e,(e=>{const o=(e=>r(e.text)?e.text:r(e.title)?e.title:"")(e);if(void 0!==e.menu){const r=j(e.menu,t);n.push({text:o,items:r})}else{const r=t(e);n.push({text:o,value:r})}})),n},I=(e=B)=>t=>h.from(t).map((t=>j(t,e))),K={sanitize:e=>I(B)(e),sanitizeWith:I,createUi:(e,t)=>n=>({name:e,type:"listbox",label:t,items:n}),getValue:B},z=Object.keys,q=Object.hasOwnProperty,V=(e,t,n,r)=>{((e,t)=>{const n=z(e);for(let r=0,o=n.length;r<o;r++){const o=n[r];t(e[o],o)}})(e,((e,o)=>{(t(e,o)?n:r)(e,o)}))},F=(e,t)=>q.call(e,t);var W=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),$=tinymce.util.Tools.resolve("tinymce.util.URI");const G=e=>c(e)&&"a"===e.nodeName.toLowerCase(),H=e=>G(e)&&!!X(e),J=(e,t)=>{if(e.collapsed)return[];{const n=e.cloneContents(),r=n.firstChild,o=new W(r,n),l=[];let i=r;do{t(i)&&l.push(i)}while(i=o.next());return l}},Q=e=>/^\w+:/i.test(e),X=e=>{var t,n;return null!==(n=null!==(t=e.getAttribute("data-mce-href"))&&void 0!==t?t:e.getAttribute("href"))&&void 0!==n?n:""},Y=(e,t)=>{const n=["noopener"],r=e?e.split(/\s+/):[],o=e=>e.filter((e=>-1===U.inArray(n,e))),l=t?(e=>(e=o(e)).length>0?e.concat(n):n)(r):o(r);return l.length>0?(e=>U.trim(e.sort().join(" ")))(l):""},Z=(e,t)=>(t=t||ne(e.selection.getRng())[0]||e.selection.getNode(),ie(t)?h.from(e.dom.select("a[href]",t)[0]):h.from(e.dom.getParent(t,"a[href]"))),ee=(e,t)=>Z(e,t).isSome(),te=(e,t)=>(e=>e.replace(/\uFEFF/g,""))(t.fold((()=>e.getContent({format:"text"})),(e=>e.innerText||e.textContent||""))),ne=e=>J(e,H),re=e=>U.grep(e,H),oe=e=>re(e).length>0,le=e=>{const t=e.schema.getTextInlineElements(),n=e=>1===e.nodeType&&!G(e)&&!F(t,e.nodeName.toLowerCase());if(Z(e).exists((e=>e.hasAttribute("data-mce-block"))))return!1;const r=e.selection.getRng();if(r.collapsed)return!0;return 0===J(r,n).length},ie=e=>c(e)&&"FIGURE"===e.nodeName&&/\bimage\b/i.test(e.className),ae=(e,t)=>{const n={...t};if(0===R(e).length&&!M(e)){const e=Y(n.rel,"_blank"===n.target);n.rel=e||null}return h.from(n.target).isNone()&&!1===T(e)&&(n.target=S(e)),n.href=((e,t)=>"http"!==t&&"https"!==t||Q(e)?e:t+"://"+e)(n.href,O(e)),n},se=(e,t,n)=>{const r=e.selection.getNode(),o=Z(e,r),l=ae(e,(e=>{return t=["title","rel","class","target"],n=(t,n)=>(e[n].each((e=>{t[n]=e.length>0?e:null})),t),r={href:e.href},((e,t)=>{for(let n=0,r=e.length;n<r;n++)t(e[n],n)})(t,((e,t)=>{r=n(r,e,t)})),r;var t,n,r})(n));e.undoManager.transact((()=>{n.href===t.href&&t.attach(),o.fold((()=>{((e,t,n,r)=>{const o=e.dom;ie(t)?me(o,t,r):n.fold((()=>{e.execCommand("mceInsertLink",!1,r)}),(t=>{e.insertContent(o.createHTML("a",r,o.encode(t)))}))})(e,r,n.text,l)}),(t=>{e.focus(),((e,t,n,r)=>{n.each((e=>{F(t,"innerText")?t.innerText=e:t.textContent=e})),e.dom.setAttribs(t,r),e.selection.select(t)})(e,t,n.text,l)}))}))},ce=e=>{const{class:t,href:n,rel:r,target:o,text:l,title:a}=e;return((e,t)=>{const n={};var r;return V(e,t,(r=n,(e,t)=>{r[t]=e}),d),n})({class:t.getOrNull(),href:n,rel:r.getOrNull(),target:o.getOrNull(),text:l.getOrNull(),title:a.getOrNull()},((e,t)=>!1===i(e)))},ue=(e,t,n)=>{const r=((e,t)=>{const n=e.options.get,r={allow_html_data_urls:n("allow_html_data_urls"),allow_script_urls:n("allow_script_urls"),allow_svg_data_urls:n("allow_svg_data_urls")},o=t.href;return{...t,href:$.isDomSafe(o,"a",r)?o:""}})(e,n);e.hasPlugin("rtc",!0)?e.execCommand("createlink",!1,ce(r)):se(e,t,r)},ge=e=>{e.hasPlugin("rtc",!0)?e.execCommand("unlink"):(e=>{e.undoManager.transact((()=>{const t=e.selection.getNode();ie(t)?de(e,t):(e=>{const t=e.dom,n=e.selection,r=n.getBookmark(),o=n.getRng().cloneRange(),l=t.getParent(o.startContainer,"a[href]",e.getBody()),i=t.getParent(o.endContainer,"a[href]",e.getBody());l&&o.setStartBefore(l),i&&o.setEndAfter(i),n.setRng(o),e.execCommand("unlink"),n.moveToBookmark(r)})(e),e.focus()}))})(e)},de=(e,t)=>{var n;const r=e.dom.select("img",t)[0];if(r){const o=e.dom.getParents(r,"a[href]",t)[0];o&&(null===(n=o.parentNode)||void 0===n||n.insertBefore(r,o),e.dom.remove(o))}},me=(e,t,n)=>{var r;const o=e.select("img",t)[0];if(o){const t=e.create("a",n);null===(r=o.parentNode)||void 0===r||r.insertBefore(t,o),t.appendChild(o)}},he=e=>{return F(t=e,n="items")&&void 0!==t[n]&&null!==t[n];var t,n},fe=(e,t)=>y(t,(t=>he(t)?fe(e,t.items):w(t.value===e,t))),pe=(e,t,n,r)=>{const o=r[t],l=e.length>0;return void 0!==o?fe(o,n).map((t=>({url:{value:t.value,meta:{text:l?e:t.text,attach:d}},text:l?e:t.text}))):h.none()},ke=(e,t)=>{const n={text:e.text,title:e.title},r=e=>{const t=(r=e.url,w(n.text.length<=0,h.from(null===(o=r.meta)||void 0===o?void 0:o.text).getOr(r.value)));var r,o;const l=(e=>{var t;return w(n.title.length<=0,h.from(null===(t=e.meta)||void 0===t?void 0:t.title).getOr(""))})(e.url);return t.isSome()||l.isSome()?h.some({...t.map((e=>({text:e}))).getOr({}),...l.map((e=>({title:e}))).getOr({})}):h.none()},o=(e,r)=>{const o=(l=t,i=r,"link"===i?l.link:"anchor"===i?l.anchor:h.none()).getOr([]);var l,i;return pe(n.text,r,o,e)};return{onChange:(e,t)=>{const l=t.name;return"url"===l?r(e()):k(["anchor","link"],l)?o(e(),l):"text"===l||"title"===l?(n[l]=e()[l],h.none()):h.none()}}};var ve=tinymce.util.Tools.resolve("tinymce.util.Delay");const xe=e=>{const t=e.href;return t.indexOf("@")>0&&-1===t.indexOf("/")&&-1===t.indexOf("mailto:")?h.some({message:"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",preprocess:e=>({...e,href:"mailto:"+t})}):h.none()},ye=(e,t)=>n=>{const r=n.href;return 1===e&&!Q(r)||0===e&&/^\s*www(\.|\d\.)/i.test(r)?h.some({message:`The URL you entered seems to be an external link. Do you want to add the required ${t}:// prefix?`,preprocess:e=>({...e,href:t+"://"+r})}):h.none()},be=(e,t)=>y([xe,ye(O(e),E(e))],(e=>e(t))).fold((()=>Promise.resolve(t)),(n=>new Promise((r=>{((e,t,n)=>{const r=e.selection.getRng();ve.setEditorTimeout(e,(()=>{e.windowManager.confirm(t,(t=>{e.selection.setRng(r),n(t)}))}))})(e,n.message,(e=>{r(e?n.preprocess(t):t)}))})))),_e=e=>{const t=e.dom.select("a:not([href])"),n=x(t,(e=>{const t=e.name||e.id;return t?[{text:t,value:"#"+t}]:[]}));return n.length>0?h.some([{text:"None",value:""}].concat(n)):h.none()},we=e=>{const t=P(e);return t.length>0?K.sanitize(t):h.none()},Ce=e=>{try{return h.some(JSON.parse(e))}catch(e){return h.none()}},Oe=e=>{const t=t=>e.convertURL(t.value||t.url||"","href"),n=A(e);return new Promise((e=>{r(n)?fetch(n).then((e=>e.ok?e.text().then(Ce):Promise.reject())).then(e,(()=>e(h.none()))):u(n)?n((t=>e(h.some(t)))):e(h.from(n))})).then((e=>e.bind(K.sanitizeWith(t)).map((e=>{if(e.length>0){return[{text:"None",value:""}].concat(e)}return e}))))},Ne=(e,t)=>{const n=R(e);if(n.length>0){const r=b(t,"_blank"),o=e=>Y(K.getValue(e),r);return(!1===M(e)?K.sanitizeWith(o):K.sanitize)(n)}return h.none()},Ae=[{text:"Current window",value:""},{text:"New window",value:"_blank"}],Se=e=>{const t=T(e);return l(t)?K.sanitize(t).orThunk((()=>h.some(Ae))):!1===t?h.none():h.some(Ae)},Ee=(e,t,n)=>{const r=e.getAttrib(t,n);return null!==r&&r.length>0?h.some(r):h.none()},Te=(e,t)=>Oe(e).then((n=>{const r=((e,t)=>{const n=e.dom,r=le(e)?h.some(te(e.selection,t)):h.none(),o=t.bind((e=>h.from(n.getAttrib(e,"href")))),l=t.bind((e=>h.from(n.getAttrib(e,"target")))),i=t.bind((e=>Ee(n,e,"rel"))),a=t.bind((e=>Ee(n,e,"class")));return{url:o,text:r,title:t.bind((e=>Ee(n,e,"title"))),target:l,rel:i,linkClass:a}})(e,t);return{anchor:r,catalogs:{targets:Se(e),rels:Ne(e,r.target),classes:we(e),anchor:_e(e),link:n},optNode:t,flags:{titleEnabled:L(e)}}})),Re=e=>{const t=(e=>{const t=Z(e);return Te(e,t)})(e);t.then((t=>{const n=((e,t)=>n=>{const r=n.getData();if(!r.url.value)return ge(e),void n.close();const o=e=>h.from(r[e]).filter((n=>!b(t.anchor[e],n))),l={href:r.url.value,text:o("text"),target:o("target"),rel:o("rel"),class:o("linkClass"),title:o("title")},i={href:r.url.value,attach:void 0!==r.url.meta&&r.url.meta.attach?r.url.meta.attach:d};be(e,l).then((t=>{ue(e,i,t)})),n.close()})(e,t);return((e,t,n)=>{const r=e.anchor.text.map((()=>({name:"text",type:"input",label:"Text to display"}))).toArray(),o=e.flags.titleEnabled?[{name:"title",type:"input",label:"Title"}]:[],l=((e,t)=>{const n=e.anchor,r=n.url.getOr("");return{url:{value:r,meta:{original:{value:r}}},text:n.text.getOr(""),title:n.title.getOr(""),anchor:r,link:r,rel:n.rel.getOr(""),target:n.target.or(t).getOr(""),linkClass:n.linkClass.getOr("")}})(e,h.from(S(n))),i=e.catalogs,a=ke(l,i);return{title:"Insert/Edit Link",size:"normal",body:{type:"panel",items:v([[{name:"url",type:"urlinput",filetype:"file",label:"URL",picker_text:"Browse links"}],r,o,_([i.anchor.map(K.createUi("anchor","Anchors")),i.rels.map(K.createUi("rel","Rel")),i.targets.map(K.createUi("target","Open link in...")),i.link.map(K.createUi("link","Link list")),i.classes.map(K.createUi("linkClass","Class"))])])},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:l,onChange:(e,{name:t})=>{a.onChange(e.getData,{name:t}).each((t=>{e.setData(t)}))},onSubmit:t}})(t,n,e)})).then((t=>{e.windowManager.open(t)}))};var Pe=tinymce.util.Tools.resolve("tinymce.util.VK");const Le=e=>{const t=document.createElement("a");t.target="_blank",t.href=e,t.rel="noreferrer noopener";const n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),((e,t)=>{document.body.appendChild(e),e.dispatchEvent(t),document.body.removeChild(e)})(t,n)},Me=(e,t)=>e.dom.getParent(t,"a[href]"),De=e=>Me(e,e.selection.getStart()),Ue=(e,t)=>{if(t){const n=X(t);if(/^#/.test(n)){const t=e.dom.select(n);t.length&&e.selection.scrollIntoView(t[0],!0)}else Le(t.href)}},Be=e=>()=>{e.execCommand("mceLink",!1,{dialog:!0})},je=e=>()=>{Ue(e,De(e))},Ie=(e,t)=>(e.on("NodeChange",t),()=>e.off("NodeChange",t)),Ke=e=>t=>{const n=()=>{t.setActive(!e.mode.isReadOnly()&&ee(e,e.selection.getNode())),t.setEnabled(e.selection.isEditable())};return n(),Ie(e,n)},ze=e=>t=>{const n=()=>{t.setEnabled(e.selection.isEditable())};return n(),Ie(e,n)},qe=e=>t=>{const n=()=>t.setEnabled((e=>1===(e.selection.isCollapsed()?re(e.dom.getParents(e.selection.getStart())):ne(e.selection.getRng())).length)(e));return n(),Ie(e,n)},Ve=e=>t=>{const n=t=>{return oe(t)||(n=e.selection.getRng(),ne(n).length>0);var n},r=e.dom.getParents(e.selection.getStart()),o=r=>{t.setEnabled(n(r)&&e.selection.isEditable())};return o(r),Ie(e,(e=>o(e.parents)))},Fe=e=>{const t=t=>{const n=e.selection.getNode();return t.setEnabled(ee(e,n)),d};e.ui.registry.addContextForm("quicklink",{launch:{type:"contextformtogglebutton",icon:"link",tooltip:"Link",onSetup:Ke(e)},label:"Link",predicate:t=>N(e)&&ee(e,t),initValue:()=>{return Z(e).fold((t="",()=>t),X);var t},commands:[{type:"contextformtogglebutton",icon:"link",tooltip:"Link",primary:!0,onSetup:t=>{const n=e.selection.getNode();return t.setActive(ee(e,n)),Ke(e)(t)},onAction:t=>{const n=t.getValue(),r=(t=>{const n=Z(e),r=le(e);if(n.isNone()&&r){const r=te(e.selection,n);return w(0===r.length,t)}return h.none()})(n);ue(e,{href:n,attach:d},{href:n,text:r,title:h.none(),rel:h.none(),target:h.none(),class:h.none()}),(e=>{e.selection.collapse(!1)})(e),t.hide()}},{type:"contextformbutton",icon:"unlink",tooltip:"Remove link",onSetup:t,onAction:t=>{ge(e),t.hide()}},{type:"contextformbutton",icon:"new-tab",tooltip:"Open link",onSetup:t,onAction:t=>{je(e)(),t.hide()}}]})};e.add("link",(e=>{(e=>{const t=e.options.register;t("link_assume_external_targets",{processor:e=>{const t=r(e)||s(e);return t?!0===e?{value:1,valid:t}:"http"===e||"https"===e?{value:e,valid:t}:{value:0,valid:t}:{valid:!1,message:"Must be a string or a boolean."}},default:!1}),t("link_context_toolbar",{processor:"boolean",default:!1}),t("link_list",{processor:e=>r(e)||u(e)||g(e,o)}),t("link_default_target",{processor:"string"}),t("link_default_protocol",{processor:"string",default:"https"}),t("link_target_list",{processor:e=>s(e)||g(e,o),default:!0}),t("link_rel_list",{processor:"object[]",default:[]}),t("link_class_list",{processor:"object[]",default:[]}),t("link_title",{processor:"boolean",default:!0}),t("allow_unsafe_link_target",{processor:"boolean",default:!1}),t("link_quicklink",{processor:"boolean",default:!1})})(e),(e=>{e.ui.registry.addToggleButton("link",{icon:"link",tooltip:"Insert/edit link",onAction:Be(e),onSetup:Ke(e)}),e.ui.registry.addButton("openlink",{icon:"new-tab",tooltip:"Open link",onAction:je(e),onSetup:qe(e)}),e.ui.registry.addButton("unlink",{icon:"unlink",tooltip:"Remove link",onAction:()=>ge(e),onSetup:Ve(e)})})(e),(e=>{e.ui.registry.addMenuItem("openlink",{text:"Open link",icon:"new-tab",onAction:je(e),onSetup:qe(e)}),e.ui.registry.addMenuItem("link",{icon:"link",text:"Link...",shortcut:"Meta+K",onSetup:ze(e),onAction:Be(e)}),e.ui.registry.addMenuItem("unlink",{icon:"unlink",text:"Remove link",onAction:()=>ge(e),onSetup:Ve(e)})})(e),(e=>{e.ui.registry.addContextMenu("link",{update:t=>e.dom.isEditable(t)?oe(e.dom.getParents(t,"a"))?"link unlink openlink":"link":""})})(e),Fe(e),(e=>{e.on("click",(t=>{const n=Me(e,t.target);n&&Pe.metaKeyPressed(t)&&(t.preventDefault(),Ue(e,n))})),e.on("keydown",(t=>{if(!t.isDefaultPrevented()&&13===t.keyCode&&(e=>!0===e.altKey&&!1===e.shiftKey&&!1===e.ctrlKey&&!1===e.metaKey)(t)){const n=De(e);n&&(t.preventDefault(),Ue(e,n))}}))})(e),(e=>{e.addCommand("mceLink",((t,n)=>{!0!==(null==n?void 0:n.dialog)&&D(e)?e.dispatch("contexttoolbar-show",{toolbarKey:"quicklink"}):Re(e)}))})(e),(e=>{e.addShortcut("Meta+K","",(()=>{e.execCommand("mceLink")}))})(e)}))}()),e}export{n as __require};
2
2
  //# sourceMappingURL=plugin.mjs.map
@@ -1,2 +1,2 @@
1
- import{__exports as r}from"../../../../_virtual/index12.mjs";import{__require as e}from"./plugin.mjs";var i;function o(){return i||(i=1,e()),r}export{o as __require};
1
+ import{__exports as r}from"../../../../_virtual/index4.mjs";import{__require as e}from"./plugin.mjs";var i;function o(){return i||(i=1,e()),r}export{o as __require};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../public/tinymce/plugins/lists/index.js"],"sourcesContent":["// Exports the \"lists\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/lists')\n// ES2015:\n// import 'tinymce/plugins/lists'\nrequire('./plugin.js');"],"names":["require$$0"],"mappings":"wIAMsBA"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../public/tinymce/plugins/lists/index.js"],"sourcesContent":["// Exports the \"lists\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/lists')\n// ES2015:\n// import 'tinymce/plugins/lists'\nrequire('./plugin.js');"],"names":["require$$0"],"mappings":"uIAMsBA"}