@lotte-innovate/ui-component-test 0.1.121 → 0.1.123

Sign up to get free protection for your applications and to get access to all the features.
Files changed (161) hide show
  1. package/_virtual/icons.mjs +2 -0
  2. package/_virtual/icons.mjs.map +1 -0
  3. package/_virtual/index.mjs +2 -0
  4. package/_virtual/index.mjs.map +1 -0
  5. package/_virtual/index10.mjs +2 -0
  6. package/_virtual/index10.mjs.map +1 -0
  7. package/_virtual/index11.mjs +2 -0
  8. package/_virtual/index11.mjs.map +1 -0
  9. package/_virtual/index12.mjs +2 -0
  10. package/_virtual/index12.mjs.map +1 -0
  11. package/_virtual/index13.mjs +2 -0
  12. package/_virtual/index13.mjs.map +1 -0
  13. package/_virtual/index14.mjs +2 -0
  14. package/_virtual/index14.mjs.map +1 -0
  15. package/_virtual/index15.mjs +2 -0
  16. package/_virtual/index15.mjs.map +1 -0
  17. package/_virtual/index16.mjs +2 -0
  18. package/_virtual/index16.mjs.map +1 -0
  19. package/_virtual/index17.mjs +2 -0
  20. package/_virtual/index17.mjs.map +1 -0
  21. package/_virtual/index18.mjs +2 -0
  22. package/_virtual/index18.mjs.map +1 -0
  23. package/_virtual/index19.mjs +2 -0
  24. package/_virtual/index19.mjs.map +1 -0
  25. package/_virtual/index2.mjs +2 -0
  26. package/_virtual/index2.mjs.map +1 -0
  27. package/_virtual/index20.mjs +2 -0
  28. package/_virtual/index20.mjs.map +1 -0
  29. package/_virtual/index3.mjs +2 -0
  30. package/_virtual/index3.mjs.map +1 -0
  31. package/_virtual/index4.mjs +2 -0
  32. package/_virtual/index4.mjs.map +1 -0
  33. package/_virtual/index5.mjs +2 -0
  34. package/_virtual/index5.mjs.map +1 -0
  35. package/_virtual/index6.mjs +2 -0
  36. package/_virtual/index6.mjs.map +1 -0
  37. package/_virtual/index7.mjs +2 -0
  38. package/_virtual/index7.mjs.map +1 -0
  39. package/_virtual/index8.mjs +2 -0
  40. package/_virtual/index8.mjs.map +1 -0
  41. package/_virtual/index9.mjs +2 -0
  42. package/_virtual/index9.mjs.map +1 -0
  43. package/_virtual/model.mjs +2 -0
  44. package/_virtual/model.mjs.map +1 -0
  45. package/_virtual/plugin.mjs +2 -0
  46. package/_virtual/plugin.mjs.map +1 -0
  47. package/_virtual/plugin2.mjs +2 -0
  48. package/_virtual/plugin2.mjs.map +1 -0
  49. package/_virtual/plugin3.mjs +2 -0
  50. package/_virtual/plugin3.mjs.map +1 -0
  51. package/_virtual/plugin4.mjs +2 -0
  52. package/_virtual/plugin4.mjs.map +1 -0
  53. package/_virtual/plugin5.mjs +2 -0
  54. package/_virtual/plugin5.mjs.map +1 -0
  55. package/_virtual/plugin6.mjs +2 -0
  56. package/_virtual/plugin6.mjs.map +1 -0
  57. package/_virtual/plugin7.mjs +2 -0
  58. package/_virtual/plugin7.mjs.map +1 -0
  59. package/_virtual/theme.mjs +2 -0
  60. package/_virtual/theme.mjs.map +1 -0
  61. package/_virtual/tinymce.mjs +2 -0
  62. package/_virtual/tinymce.mjs.map +1 -0
  63. package/_virtual/tinymce2.mjs +2 -0
  64. package/_virtual/tinymce2.mjs.map +1 -0
  65. package/dist/lib/components/Editor/index.mjs +1 -1
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +2 -1
  68. package/public/tinymce/icons/default/icons.mjs +2 -0
  69. package/public/tinymce/icons/default/icons.mjs.map +1 -0
  70. package/public/tinymce/icons/default/index.mjs +2 -0
  71. package/public/tinymce/icons/default/index.mjs.map +1 -0
  72. package/public/tinymce/models/dom/index.mjs +2 -0
  73. package/public/tinymce/models/dom/index.mjs.map +1 -0
  74. package/public/tinymce/models/dom/model.mjs +2 -0
  75. package/public/tinymce/models/dom/model.mjs.map +1 -0
  76. package/public/tinymce/plugins/advlist/index.mjs +2 -0
  77. package/public/tinymce/plugins/advlist/index.mjs.map +1 -0
  78. package/public/tinymce/plugins/advlist/plugin.mjs +2 -0
  79. package/public/tinymce/plugins/advlist/plugin.mjs.map +1 -0
  80. package/public/tinymce/plugins/code/index.mjs +2 -0
  81. package/public/tinymce/plugins/code/index.mjs.map +1 -0
  82. package/public/tinymce/plugins/code/plugin.mjs +2 -0
  83. package/public/tinymce/plugins/code/plugin.mjs.map +1 -0
  84. package/public/tinymce/plugins/codesample/index.mjs +2 -0
  85. package/public/tinymce/plugins/codesample/index.mjs.map +1 -0
  86. package/public/tinymce/plugins/codesample/plugin.mjs +2 -0
  87. package/public/tinymce/plugins/codesample/plugin.mjs.map +1 -0
  88. package/public/tinymce/plugins/image/index.mjs +2 -0
  89. package/public/tinymce/plugins/image/index.mjs.map +1 -0
  90. package/public/tinymce/plugins/image/plugin.mjs +2 -0
  91. package/public/tinymce/plugins/image/plugin.mjs.map +1 -0
  92. package/public/tinymce/plugins/link/index.mjs +2 -0
  93. package/public/tinymce/plugins/link/index.mjs.map +1 -0
  94. package/public/tinymce/plugins/link/plugin.mjs +2 -0
  95. package/public/tinymce/plugins/link/plugin.mjs.map +1 -0
  96. package/public/tinymce/plugins/lists/index.mjs +2 -0
  97. package/public/tinymce/plugins/lists/index.mjs.map +1 -0
  98. package/public/tinymce/plugins/lists/plugin.mjs +2 -0
  99. package/public/tinymce/plugins/lists/plugin.mjs.map +1 -0
  100. package/public/tinymce/plugins/table/index.mjs +2 -0
  101. package/public/tinymce/plugins/table/index.mjs.map +1 -0
  102. package/public/tinymce/plugins/table/plugin.mjs +2 -0
  103. package/public/tinymce/plugins/table/plugin.mjs.map +1 -0
  104. package/public/tinymce/skins/content/default/content.mjs +2 -0
  105. package/public/tinymce/skins/content/default/content.mjs.map +1 -0
  106. package/public/tinymce/skins/ui/oxide/content.mjs +2 -0
  107. package/public/tinymce/skins/ui/oxide/content.mjs.map +1 -0
  108. package/public/tinymce/skins/ui/oxide/skin.mjs +2 -0
  109. package/public/tinymce/skins/ui/oxide/skin.mjs.map +1 -0
  110. package/public/tinymce/themes/silver/index.mjs +2 -0
  111. package/public/tinymce/themes/silver/index.mjs.map +1 -0
  112. package/public/tinymce/themes/silver/theme.mjs +2 -0
  113. package/public/tinymce/themes/silver/theme.mjs.map +1 -0
  114. package/public/tinymce/tinymce.mjs +2 -0
  115. package/public/tinymce/tinymce.mjs.map +1 -0
  116. package/dist/public/tinymce/icons/default/icons.d.ts +0 -0
  117. package/dist/public/tinymce/icons/default/icons.js +0 -195
  118. package/dist/public/tinymce/icons/default/index.js +0 -8
  119. package/dist/public/tinymce/models/dom/index.js +0 -8
  120. package/dist/public/tinymce/models/dom/model.d.ts +0 -0
  121. package/dist/public/tinymce/models/dom/model.js +0 -7988
  122. package/dist/public/tinymce/plugins/advlist/index.js +0 -8
  123. package/dist/public/tinymce/plugins/advlist/plugin.d.ts +0 -0
  124. package/dist/public/tinymce/plugins/advlist/plugin.js +0 -255
  125. package/dist/public/tinymce/plugins/code/index.js +0 -8
  126. package/dist/public/tinymce/plugins/code/plugin.d.ts +0 -0
  127. package/dist/public/tinymce/plugins/code/plugin.js +0 -77
  128. package/dist/public/tinymce/plugins/codesample/index.js +0 -8
  129. package/dist/public/tinymce/plugins/codesample/plugin.js +0 -2462
  130. package/dist/public/tinymce/plugins/image/index.js +0 -8
  131. package/dist/public/tinymce/plugins/image/plugin.d.ts +0 -0
  132. package/dist/public/tinymce/plugins/image/plugin.js +0 -1523
  133. package/dist/public/tinymce/plugins/link/index.js +0 -8
  134. package/dist/public/tinymce/plugins/link/plugin.d.ts +0 -0
  135. package/dist/public/tinymce/plugins/link/plugin.js +0 -1246
  136. package/dist/public/tinymce/plugins/lists/index.js +0 -8
  137. package/dist/public/tinymce/plugins/lists/plugin.d.ts +0 -0
  138. package/dist/public/tinymce/plugins/lists/plugin.js +0 -2191
  139. package/dist/public/tinymce/plugins/table/index.js +0 -8
  140. package/dist/public/tinymce/plugins/table/plugin.d.ts +0 -0
  141. package/dist/public/tinymce/plugins/table/plugin.js +0 -3399
  142. package/dist/public/tinymce/skins/content/default/content.d.ts +0 -0
  143. package/dist/public/tinymce/skins/content/default/content.js +0 -3
  144. package/dist/public/tinymce/skins/ui/oxide/content.d.ts +0 -0
  145. package/dist/public/tinymce/skins/ui/oxide/content.js +0 -3
  146. package/dist/public/tinymce/skins/ui/oxide/skin.d.ts +0 -0
  147. package/dist/public/tinymce/skins/ui/oxide/skin.js +0 -3
  148. package/dist/public/tinymce/themes/silver/index.js +0 -8
  149. package/dist/public/tinymce/themes/silver/theme.d.ts +0 -0
  150. package/dist/public/tinymce/themes/silver/theme.js +0 -29731
  151. /package/{dist/public → public}/tinymce/icons/default/index.d.ts +0 -0
  152. /package/{dist/public → public}/tinymce/models/dom/index.d.ts +0 -0
  153. /package/{dist/public → public}/tinymce/plugins/advlist/index.d.ts +0 -0
  154. /package/{dist/public → public}/tinymce/plugins/code/index.d.ts +0 -0
  155. /package/{dist/public → public}/tinymce/plugins/codesample/index.d.ts +0 -0
  156. /package/{dist/public → public}/tinymce/plugins/codesample/plugin.d.ts +0 -0
  157. /package/{dist/public → public}/tinymce/plugins/image/index.d.ts +0 -0
  158. /package/{dist/public → public}/tinymce/plugins/link/index.d.ts +0 -0
  159. /package/{dist/public → public}/tinymce/plugins/lists/index.d.ts +0 -0
  160. /package/{dist/public → public}/tinymce/plugins/table/index.d.ts +0 -0
  161. /package/{dist/public → public}/tinymce/themes/silver/index.d.ts +0 -0
@@ -0,0 +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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"}
@@ -0,0 +1,2 @@
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
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../public/tinymce/plugins/link/index.js"],"sourcesContent":["// Exports the \"link\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/link')\n// ES2015:\n// import 'tinymce/plugins/link'\nrequire('./plugin.js');"],"names":["require$$0"],"mappings":"wIAMsBA"}
@@ -0,0 +1,2 @@
1
+ import{__exports as e}from"../../../../_virtual/plugin3.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
+ //# sourceMappingURL=plugin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.mjs","sources":["../../../../../../public/tinymce/plugins/link/plugin.js"],"sourcesContent":["/**\n * TinyMCE version 6.8.5 (TBD)\n */\n\n(function () {\n 'use strict';\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\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 isString = isType('string');\n const isObject = isType('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 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 const constant = value => {\n return () => {\n return value;\n };\n };\n const tripleEquals = (a, b) => {\n return a === b;\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 nativeIndexOf = Array.prototype.indexOf;\n const nativePush = Array.prototype.push;\n const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t);\n const contains = (xs, x) => rawIndexOf(xs, x) > -1;\n const map = (xs, f) => {\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n const each$1 = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const foldl = (xs, f, acc) => {\n each$1(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\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 bind = (xs, f) => flatten(map(xs, f));\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 const is = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs));\n const cat = arr => {\n const r = [];\n const push = x => {\n r.push(x);\n };\n for (let i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n const someIf = (b, a) => b ? Optional.some(a) : Optional.none();\n\n const option = name => editor => editor.options.get(name);\n const register$1 = editor => {\n const registerOption = editor.options.register;\n registerOption('link_assume_external_targets', {\n processor: value => {\n const valid = isString(value) || isBoolean(value);\n if (valid) {\n if (value === true) {\n return {\n value: 1,\n valid\n };\n } else if (value === 'http' || value === 'https') {\n return {\n value,\n valid\n };\n } else {\n return {\n value: 0,\n valid\n };\n }\n } else {\n return {\n valid: false,\n message: 'Must be a string or a boolean.'\n };\n }\n },\n default: false\n });\n registerOption('link_context_toolbar', {\n processor: 'boolean',\n default: false\n });\n registerOption('link_list', { processor: value => isString(value) || isFunction(value) || isArrayOf(value, isObject) });\n registerOption('link_default_target', { processor: 'string' });\n registerOption('link_default_protocol', {\n processor: 'string',\n default: 'https'\n });\n registerOption('link_target_list', {\n processor: value => isBoolean(value) || isArrayOf(value, isObject),\n default: true\n });\n registerOption('link_rel_list', {\n processor: 'object[]',\n default: []\n });\n registerOption('link_class_list', {\n processor: 'object[]',\n default: []\n });\n registerOption('link_title', {\n processor: 'boolean',\n default: true\n });\n registerOption('allow_unsafe_link_target', {\n processor: 'boolean',\n default: false\n });\n registerOption('link_quicklink', {\n processor: 'boolean',\n default: false\n });\n };\n const assumeExternalTargets = option('link_assume_external_targets');\n const hasContextToolbar = option('link_context_toolbar');\n const getLinkList = option('link_list');\n const getDefaultLinkTarget = option('link_default_target');\n const getDefaultLinkProtocol = option('link_default_protocol');\n const getTargetList = option('link_target_list');\n const getRelList = option('link_rel_list');\n const getLinkClassList = option('link_class_list');\n const shouldShowLinkTitle = option('link_title');\n const allowUnsafeLinkTarget = option('allow_unsafe_link_target');\n const useQuickLink = option('link_quicklink');\n\n var global$4 = 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$4.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 sanitizeWith = (extracter = getValue) => list => Optional.from(list).map(list => sanitizeList(list, extracter));\n const sanitize = list => sanitizeWith(getValue)(list);\n const createUi = (name, label) => items => ({\n name,\n type: 'listbox',\n label,\n items\n });\n const ListOptions = {\n sanitize,\n sanitizeWith,\n createUi,\n getValue\n };\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 var global$3 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.URI');\n\n const isAnchor = elm => isNonNullable(elm) && elm.nodeName.toLowerCase() === 'a';\n const isLink = elm => isAnchor(elm) && !!getHref(elm);\n const collectNodesInRange = (rng, predicate) => {\n if (rng.collapsed) {\n return [];\n } else {\n const contents = rng.cloneContents();\n const firstChild = contents.firstChild;\n const walker = new global$3(firstChild, contents);\n const elements = [];\n let current = firstChild;\n do {\n if (predicate(current)) {\n elements.push(current);\n }\n } while (current = walker.next());\n return elements;\n }\n };\n const hasProtocol = url => /^\\w+:/i.test(url);\n const getHref = elm => {\n var _a, _b;\n return (_b = (_a = elm.getAttribute('data-mce-href')) !== null && _a !== void 0 ? _a : elm.getAttribute('href')) !== null && _b !== void 0 ? _b : '';\n };\n const applyRelTargetRules = (rel, isUnsafe) => {\n const rules = ['noopener'];\n const rels = rel ? rel.split(/\\s+/) : [];\n const toString = rels => global$4.trim(rels.sort().join(' '));\n const addTargetRules = rels => {\n rels = removeTargetRules(rels);\n return rels.length > 0 ? rels.concat(rules) : rules;\n };\n const removeTargetRules = rels => rels.filter(val => global$4.inArray(rules, val) === -1);\n const newRels = isUnsafe ? addTargetRules(rels) : removeTargetRules(rels);\n return newRels.length > 0 ? toString(newRels) : '';\n };\n const trimCaretContainers = text => text.replace(/\\uFEFF/g, '');\n const getAnchorElement = (editor, selectedElm) => {\n selectedElm = selectedElm || getLinksInSelection(editor.selection.getRng())[0] || editor.selection.getNode();\n if (isImageFigure(selectedElm)) {\n return Optional.from(editor.dom.select('a[href]', selectedElm)[0]);\n } else {\n return Optional.from(editor.dom.getParent(selectedElm, 'a[href]'));\n }\n };\n const isInAnchor = (editor, selectedElm) => getAnchorElement(editor, selectedElm).isSome();\n const getAnchorText = (selection, anchorElm) => {\n const text = anchorElm.fold(() => selection.getContent({ format: 'text' }), anchorElm => anchorElm.innerText || anchorElm.textContent || '');\n return trimCaretContainers(text);\n };\n const getLinksInSelection = rng => collectNodesInRange(rng, isLink);\n const getLinks$1 = elements => global$4.grep(elements, isLink);\n const hasLinks = elements => getLinks$1(elements).length > 0;\n const hasLinksInSelection = rng => getLinksInSelection(rng).length > 0;\n const isOnlyTextSelected = editor => {\n const inlineTextElements = editor.schema.getTextInlineElements();\n const isElement = elm => elm.nodeType === 1 && !isAnchor(elm) && !has(inlineTextElements, elm.nodeName.toLowerCase());\n const isInBlockAnchor = getAnchorElement(editor).exists(anchor => anchor.hasAttribute('data-mce-block'));\n if (isInBlockAnchor) {\n return false;\n }\n const rng = editor.selection.getRng();\n if (!rng.collapsed) {\n const elements = collectNodesInRange(rng, isElement);\n return elements.length === 0;\n } else {\n return true;\n }\n };\n const isImageFigure = elm => isNonNullable(elm) && elm.nodeName === 'FIGURE' && /\\bimage\\b/i.test(elm.className);\n const getLinkAttrs = data => {\n const attrs = [\n 'title',\n 'rel',\n 'class',\n 'target'\n ];\n return foldl(attrs, (acc, key) => {\n data[key].each(value => {\n acc[key] = value.length > 0 ? value : null;\n });\n return acc;\n }, { href: data.href });\n };\n const handleExternalTargets = (href, assumeExternalTargets) => {\n if ((assumeExternalTargets === 'http' || assumeExternalTargets === 'https') && !hasProtocol(href)) {\n return assumeExternalTargets + '://' + href;\n }\n return href;\n };\n const applyLinkOverrides = (editor, linkAttrs) => {\n const newLinkAttrs = { ...linkAttrs };\n if (getRelList(editor).length === 0 && !allowUnsafeLinkTarget(editor)) {\n const newRel = applyRelTargetRules(newLinkAttrs.rel, newLinkAttrs.target === '_blank');\n newLinkAttrs.rel = newRel ? newRel : null;\n }\n if (Optional.from(newLinkAttrs.target).isNone() && getTargetList(editor) === false) {\n newLinkAttrs.target = getDefaultLinkTarget(editor);\n }\n newLinkAttrs.href = handleExternalTargets(newLinkAttrs.href, assumeExternalTargets(editor));\n return newLinkAttrs;\n };\n const updateLink = (editor, anchorElm, text, linkAttrs) => {\n text.each(text => {\n if (has(anchorElm, 'innerText')) {\n anchorElm.innerText = text;\n } else {\n anchorElm.textContent = text;\n }\n });\n editor.dom.setAttribs(anchorElm, linkAttrs);\n editor.selection.select(anchorElm);\n };\n const createLink = (editor, selectedElm, text, linkAttrs) => {\n const dom = editor.dom;\n if (isImageFigure(selectedElm)) {\n linkImageFigure(dom, selectedElm, linkAttrs);\n } else {\n text.fold(() => {\n editor.execCommand('mceInsertLink', false, linkAttrs);\n }, text => {\n editor.insertContent(dom.createHTML('a', linkAttrs, dom.encode(text)));\n });\n }\n };\n const linkDomMutation = (editor, attachState, data) => {\n const selectedElm = editor.selection.getNode();\n const anchorElm = getAnchorElement(editor, selectedElm);\n const linkAttrs = applyLinkOverrides(editor, getLinkAttrs(data));\n editor.undoManager.transact(() => {\n if (data.href === attachState.href) {\n attachState.attach();\n }\n anchorElm.fold(() => {\n createLink(editor, selectedElm, data.text, linkAttrs);\n }, elm => {\n editor.focus();\n updateLink(editor, elm, data.text, linkAttrs);\n });\n });\n };\n const unlinkSelection = editor => {\n const dom = editor.dom, selection = editor.selection;\n const bookmark = selection.getBookmark();\n const rng = selection.getRng().cloneRange();\n const startAnchorElm = dom.getParent(rng.startContainer, 'a[href]', editor.getBody());\n const endAnchorElm = dom.getParent(rng.endContainer, 'a[href]', editor.getBody());\n if (startAnchorElm) {\n rng.setStartBefore(startAnchorElm);\n }\n if (endAnchorElm) {\n rng.setEndAfter(endAnchorElm);\n }\n selection.setRng(rng);\n editor.execCommand('unlink');\n selection.moveToBookmark(bookmark);\n };\n const unlinkDomMutation = editor => {\n editor.undoManager.transact(() => {\n const node = editor.selection.getNode();\n if (isImageFigure(node)) {\n unlinkImageFigure(editor, node);\n } else {\n unlinkSelection(editor);\n }\n editor.focus();\n });\n };\n const unwrapOptions = data => {\n const {\n class: cls,\n href,\n rel,\n target,\n text,\n title\n } = data;\n return filter({\n class: cls.getOrNull(),\n href,\n rel: rel.getOrNull(),\n target: target.getOrNull(),\n text: text.getOrNull(),\n title: title.getOrNull()\n }, (v, _k) => isNull(v) === false);\n };\n const sanitizeData = (editor, data) => {\n const getOption = editor.options.get;\n const uriOptions = {\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 const href = data.href;\n return {\n ...data,\n href: global$2.isDomSafe(href, 'a', uriOptions) ? href : ''\n };\n };\n const link = (editor, attachState, data) => {\n const sanitizedData = sanitizeData(editor, data);\n editor.hasPlugin('rtc', true) ? editor.execCommand('createlink', false, unwrapOptions(sanitizedData)) : linkDomMutation(editor, attachState, sanitizedData);\n };\n const unlink = editor => {\n editor.hasPlugin('rtc', true) ? editor.execCommand('unlink') : unlinkDomMutation(editor);\n };\n const unlinkImageFigure = (editor, fig) => {\n var _a;\n const img = editor.dom.select('img', fig)[0];\n if (img) {\n const a = editor.dom.getParents(img, 'a[href]', fig)[0];\n if (a) {\n (_a = a.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(img, a);\n editor.dom.remove(a);\n }\n }\n };\n const linkImageFigure = (dom, fig, attrs) => {\n var _a;\n const img = dom.select('img', fig)[0];\n if (img) {\n const a = dom.create('a', attrs);\n (_a = img.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(a, img);\n a.appendChild(img);\n }\n };\n\n const isListGroup = item => hasNonNullableKey(item, 'items');\n const findTextByValue = (value, catalog) => findMap(catalog, item => {\n if (isListGroup(item)) {\n return findTextByValue(value, item.items);\n } else {\n return someIf(item.value === value, item);\n }\n });\n const getDelta = (persistentText, fieldName, catalog, data) => {\n const value = data[fieldName];\n const hasPersistentText = persistentText.length > 0;\n return value !== undefined ? findTextByValue(value, catalog).map(i => ({\n url: {\n value: i.value,\n meta: {\n text: hasPersistentText ? persistentText : i.text,\n attach: noop\n }\n },\n text: hasPersistentText ? persistentText : i.text\n })) : Optional.none();\n };\n const findCatalog = (catalogs, fieldName) => {\n if (fieldName === 'link') {\n return catalogs.link;\n } else if (fieldName === 'anchor') {\n return catalogs.anchor;\n } else {\n return Optional.none();\n }\n };\n const init = (initialData, linkCatalog) => {\n const persistentData = {\n text: initialData.text,\n title: initialData.title\n };\n const getTitleFromUrlChange = url => {\n var _a;\n return someIf(persistentData.title.length <= 0, Optional.from((_a = url.meta) === null || _a === void 0 ? void 0 : _a.title).getOr(''));\n };\n const getTextFromUrlChange = url => {\n var _a;\n return someIf(persistentData.text.length <= 0, Optional.from((_a = url.meta) === null || _a === void 0 ? void 0 : _a.text).getOr(url.value));\n };\n const onUrlChange = data => {\n const text = getTextFromUrlChange(data.url);\n const title = getTitleFromUrlChange(data.url);\n if (text.isSome() || title.isSome()) {\n return Optional.some({\n ...text.map(text => ({ text })).getOr({}),\n ...title.map(title => ({ title })).getOr({})\n });\n } else {\n return Optional.none();\n }\n };\n const onCatalogChange = (data, change) => {\n const catalog = findCatalog(linkCatalog, change).getOr([]);\n return getDelta(persistentData.text, change, catalog, data);\n };\n const onChange = (getData, change) => {\n const name = change.name;\n if (name === 'url') {\n return onUrlChange(getData());\n } else if (contains([\n 'anchor',\n 'link'\n ], name)) {\n return onCatalogChange(getData(), name);\n } else if (name === 'text' || name === 'title') {\n persistentData[name] = getData()[name];\n return Optional.none();\n } else {\n return Optional.none();\n }\n };\n return { onChange };\n };\n const DialogChanges = {\n init,\n getDelta\n };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n const delayedConfirm = (editor, message, callback) => {\n const rng = editor.selection.getRng();\n global$1.setEditorTimeout(editor, () => {\n editor.windowManager.confirm(message, state => {\n editor.selection.setRng(rng);\n callback(state);\n });\n });\n };\n const tryEmailTransform = data => {\n const url = data.href;\n const suggestMailTo = url.indexOf('@') > 0 && url.indexOf('/') === -1 && url.indexOf('mailto:') === -1;\n return suggestMailTo ? Optional.some({\n message: 'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?',\n preprocess: oldData => ({\n ...oldData,\n href: 'mailto:' + url\n })\n }) : Optional.none();\n };\n const tryProtocolTransform = (assumeExternalTargets, defaultLinkProtocol) => data => {\n const url = data.href;\n const suggestProtocol = assumeExternalTargets === 1 && !hasProtocol(url) || assumeExternalTargets === 0 && /^\\s*www(\\.|\\d\\.)/i.test(url);\n return suggestProtocol ? Optional.some({\n message: `The URL you entered seems to be an external link. Do you want to add the required ${ defaultLinkProtocol }:// prefix?`,\n preprocess: oldData => ({\n ...oldData,\n href: defaultLinkProtocol + '://' + url\n })\n }) : Optional.none();\n };\n const preprocess = (editor, data) => findMap([\n tryEmailTransform,\n tryProtocolTransform(assumeExternalTargets(editor), getDefaultLinkProtocol(editor))\n ], f => f(data)).fold(() => Promise.resolve(data), transform => new Promise(callback => {\n delayedConfirm(editor, transform.message, state => {\n callback(state ? transform.preprocess(data) : data);\n });\n }));\n const DialogConfirms = { preprocess };\n\n const getAnchors = editor => {\n const anchorNodes = editor.dom.select('a:not([href])');\n const anchors = bind(anchorNodes, anchor => {\n const id = anchor.name || anchor.id;\n return id ? [{\n text: id,\n value: '#' + id\n }] : [];\n });\n return anchors.length > 0 ? Optional.some([{\n text: 'None',\n value: ''\n }].concat(anchors)) : Optional.none();\n };\n const AnchorListOptions = { getAnchors };\n\n const getClasses = editor => {\n const list = getLinkClassList(editor);\n if (list.length > 0) {\n return ListOptions.sanitize(list);\n }\n return Optional.none();\n };\n const ClassListOptions = { getClasses };\n\n const parseJson = text => {\n try {\n return Optional.some(JSON.parse(text));\n } catch (err) {\n return Optional.none();\n }\n };\n const getLinks = editor => {\n const extractor = item => editor.convertURL(item.value || item.url || '', 'href');\n const linkList = getLinkList(editor);\n return new Promise(resolve => {\n if (isString(linkList)) {\n fetch(linkList).then(res => res.ok ? res.text().then(parseJson) : Promise.reject()).then(resolve, () => resolve(Optional.none()));\n } else if (isFunction(linkList)) {\n linkList(output => resolve(Optional.some(output)));\n } else {\n resolve(Optional.from(linkList));\n }\n }).then(optItems => optItems.bind(ListOptions.sanitizeWith(extractor)).map(items => {\n if (items.length > 0) {\n const noneItem = [{\n text: 'None',\n value: ''\n }];\n return noneItem.concat(items);\n } else {\n return items;\n }\n }));\n };\n const LinkListOptions = { getLinks };\n\n const getRels = (editor, initialTarget) => {\n const list = getRelList(editor);\n if (list.length > 0) {\n const isTargetBlank = is(initialTarget, '_blank');\n const enforceSafe = allowUnsafeLinkTarget(editor) === false;\n const safeRelExtractor = item => applyRelTargetRules(ListOptions.getValue(item), isTargetBlank);\n const sanitizer = enforceSafe ? ListOptions.sanitizeWith(safeRelExtractor) : ListOptions.sanitize;\n return sanitizer(list);\n }\n return Optional.none();\n };\n const RelOptions = { getRels };\n\n const fallbacks = [\n {\n text: 'Current window',\n value: ''\n },\n {\n text: 'New window',\n value: '_blank'\n }\n ];\n const getTargets = editor => {\n const list = getTargetList(editor);\n if (isArray(list)) {\n return ListOptions.sanitize(list).orThunk(() => Optional.some(fallbacks));\n } else if (list === false) {\n return Optional.none();\n }\n return Optional.some(fallbacks);\n };\n const TargetOptions = { getTargets };\n\n const nonEmptyAttr = (dom, elem, name) => {\n const val = dom.getAttrib(elem, name);\n return val !== null && val.length > 0 ? Optional.some(val) : Optional.none();\n };\n const extractFromAnchor = (editor, anchor) => {\n const dom = editor.dom;\n const onlyText = isOnlyTextSelected(editor);\n const text = onlyText ? Optional.some(getAnchorText(editor.selection, anchor)) : Optional.none();\n const url = anchor.bind(anchorElm => Optional.from(dom.getAttrib(anchorElm, 'href')));\n const target = anchor.bind(anchorElm => Optional.from(dom.getAttrib(anchorElm, 'target')));\n const rel = anchor.bind(anchorElm => nonEmptyAttr(dom, anchorElm, 'rel'));\n const linkClass = anchor.bind(anchorElm => nonEmptyAttr(dom, anchorElm, 'class'));\n const title = anchor.bind(anchorElm => nonEmptyAttr(dom, anchorElm, 'title'));\n return {\n url,\n text,\n title,\n target,\n rel,\n linkClass\n };\n };\n const collect = (editor, linkNode) => LinkListOptions.getLinks(editor).then(links => {\n const anchor = extractFromAnchor(editor, linkNode);\n return {\n anchor,\n catalogs: {\n targets: TargetOptions.getTargets(editor),\n rels: RelOptions.getRels(editor, anchor.target),\n classes: ClassListOptions.getClasses(editor),\n anchor: AnchorListOptions.getAnchors(editor),\n link: links\n },\n optNode: linkNode,\n flags: { titleEnabled: shouldShowLinkTitle(editor) }\n };\n });\n const DialogInfo = { collect };\n\n const handleSubmit = (editor, info) => api => {\n const data = api.getData();\n if (!data.url.value) {\n unlink(editor);\n api.close();\n return;\n }\n const getChangedValue = key => Optional.from(data[key]).filter(value => !is(info.anchor[key], value));\n const changedData = {\n href: data.url.value,\n text: getChangedValue('text'),\n target: getChangedValue('target'),\n rel: getChangedValue('rel'),\n class: getChangedValue('linkClass'),\n title: getChangedValue('title')\n };\n const attachState = {\n href: data.url.value,\n attach: data.url.meta !== undefined && data.url.meta.attach ? data.url.meta.attach : noop\n };\n DialogConfirms.preprocess(editor, changedData).then(pData => {\n link(editor, attachState, pData);\n });\n api.close();\n };\n const collectData = editor => {\n const anchorNode = getAnchorElement(editor);\n return DialogInfo.collect(editor, anchorNode);\n };\n const getInitialData = (info, defaultTarget) => {\n const anchor = info.anchor;\n const url = anchor.url.getOr('');\n return {\n url: {\n value: url,\n meta: { original: { value: url } }\n },\n text: anchor.text.getOr(''),\n title: anchor.title.getOr(''),\n anchor: url,\n link: url,\n rel: anchor.rel.getOr(''),\n target: anchor.target.or(defaultTarget).getOr(''),\n linkClass: anchor.linkClass.getOr('')\n };\n };\n const makeDialog = (settings, onSubmit, editor) => {\n const urlInput = [{\n name: 'url',\n type: 'urlinput',\n filetype: 'file',\n label: 'URL',\n picker_text: 'Browse links'\n }];\n const displayText = settings.anchor.text.map(() => ({\n name: 'text',\n type: 'input',\n label: 'Text to display'\n })).toArray();\n const titleText = settings.flags.titleEnabled ? [{\n name: 'title',\n type: 'input',\n label: 'Title'\n }] : [];\n const defaultTarget = Optional.from(getDefaultLinkTarget(editor));\n const initialData = getInitialData(settings, defaultTarget);\n const catalogs = settings.catalogs;\n const dialogDelta = DialogChanges.init(initialData, catalogs);\n const body = {\n type: 'panel',\n items: flatten([\n urlInput,\n displayText,\n titleText,\n cat([\n catalogs.anchor.map(ListOptions.createUi('anchor', 'Anchors')),\n catalogs.rels.map(ListOptions.createUi('rel', 'Rel')),\n catalogs.targets.map(ListOptions.createUi('target', 'Open link in...')),\n catalogs.link.map(ListOptions.createUi('link', 'Link list')),\n catalogs.classes.map(ListOptions.createUi('linkClass', 'Class'))\n ])\n ])\n };\n return {\n title: 'Insert/Edit Link',\n size: 'normal',\n body,\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,\n onChange: (api, {name}) => {\n dialogDelta.onChange(api.getData, { name }).each(newData => {\n api.setData(newData);\n });\n },\n onSubmit\n };\n };\n const open$1 = editor => {\n const data = collectData(editor);\n data.then(info => {\n const onSubmit = handleSubmit(editor, info);\n return makeDialog(info, onSubmit, editor);\n }).then(spec => {\n editor.windowManager.open(spec);\n });\n };\n\n const register = editor => {\n editor.addCommand('mceLink', (_ui, value) => {\n if ((value === null || value === void 0 ? void 0 : value.dialog) === true || !useQuickLink(editor)) {\n open$1(editor);\n } else {\n editor.dispatch('contexttoolbar-show', { toolbarKey: 'quicklink' });\n }\n });\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n const appendClickRemove = (link, evt) => {\n document.body.appendChild(link);\n link.dispatchEvent(evt);\n document.body.removeChild(link);\n };\n const open = url => {\n const link = document.createElement('a');\n link.target = '_blank';\n link.href = url;\n link.rel = 'noreferrer noopener';\n const evt = document.createEvent('MouseEvents');\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n appendClickRemove(link, evt);\n };\n\n const getLink = (editor, elm) => editor.dom.getParent(elm, 'a[href]');\n const getSelectedLink = editor => getLink(editor, editor.selection.getStart());\n const hasOnlyAltModifier = e => {\n return e.altKey === true && e.shiftKey === false && e.ctrlKey === false && e.metaKey === false;\n };\n const gotoLink = (editor, a) => {\n if (a) {\n const href = getHref(a);\n if (/^#/.test(href)) {\n const targetEl = editor.dom.select(href);\n if (targetEl.length) {\n editor.selection.scrollIntoView(targetEl[0], true);\n }\n } else {\n open(a.href);\n }\n }\n };\n const openDialog = editor => () => {\n editor.execCommand('mceLink', false, { dialog: true });\n };\n const gotoSelectedLink = editor => () => {\n gotoLink(editor, getSelectedLink(editor));\n };\n const setupGotoLinks = editor => {\n editor.on('click', e => {\n const link = getLink(editor, e.target);\n if (link && global.metaKeyPressed(e)) {\n e.preventDefault();\n gotoLink(editor, link);\n }\n });\n editor.on('keydown', e => {\n if (!e.isDefaultPrevented() && e.keyCode === 13 && hasOnlyAltModifier(e)) {\n const link = getSelectedLink(editor);\n if (link) {\n e.preventDefault();\n gotoLink(editor, link);\n }\n }\n });\n };\n const toggleState = (editor, toggler) => {\n editor.on('NodeChange', toggler);\n return () => editor.off('NodeChange', toggler);\n };\n const toggleLinkState = editor => api => {\n const updateState = () => {\n api.setActive(!editor.mode.isReadOnly() && isInAnchor(editor, editor.selection.getNode()));\n api.setEnabled(editor.selection.isEditable());\n };\n updateState();\n return toggleState(editor, updateState);\n };\n const toggleLinkMenuState = editor => api => {\n const updateState = () => {\n api.setEnabled(editor.selection.isEditable());\n };\n updateState();\n return toggleState(editor, updateState);\n };\n const hasExactlyOneLinkInSelection = editor => {\n const links = editor.selection.isCollapsed() ? getLinks$1(editor.dom.getParents(editor.selection.getStart())) : getLinksInSelection(editor.selection.getRng());\n return links.length === 1;\n };\n const toggleGotoLinkState = editor => api => {\n const updateState = () => api.setEnabled(hasExactlyOneLinkInSelection(editor));\n updateState();\n return toggleState(editor, updateState);\n };\n const toggleUnlinkState = editor => api => {\n const hasLinks$1 = parents => hasLinks(parents) || hasLinksInSelection(editor.selection.getRng());\n const parents = editor.dom.getParents(editor.selection.getStart());\n const updateEnabled = parents => {\n api.setEnabled(hasLinks$1(parents) && editor.selection.isEditable());\n };\n updateEnabled(parents);\n return toggleState(editor, e => updateEnabled(e.parents));\n };\n\n const setup = editor => {\n editor.addShortcut('Meta+K', '', () => {\n editor.execCommand('mceLink');\n });\n };\n\n const setupButtons = editor => {\n editor.ui.registry.addToggleButton('link', {\n icon: 'link',\n tooltip: 'Insert/edit link',\n onAction: openDialog(editor),\n onSetup: toggleLinkState(editor)\n });\n editor.ui.registry.addButton('openlink', {\n icon: 'new-tab',\n tooltip: 'Open link',\n onAction: gotoSelectedLink(editor),\n onSetup: toggleGotoLinkState(editor)\n });\n editor.ui.registry.addButton('unlink', {\n icon: 'unlink',\n tooltip: 'Remove link',\n onAction: () => unlink(editor),\n onSetup: toggleUnlinkState(editor)\n });\n };\n const setupMenuItems = editor => {\n editor.ui.registry.addMenuItem('openlink', {\n text: 'Open link',\n icon: 'new-tab',\n onAction: gotoSelectedLink(editor),\n onSetup: toggleGotoLinkState(editor)\n });\n editor.ui.registry.addMenuItem('link', {\n icon: 'link',\n text: 'Link...',\n shortcut: 'Meta+K',\n onSetup: toggleLinkMenuState(editor),\n onAction: openDialog(editor)\n });\n editor.ui.registry.addMenuItem('unlink', {\n icon: 'unlink',\n text: 'Remove link',\n onAction: () => unlink(editor),\n onSetup: toggleUnlinkState(editor)\n });\n };\n const setupContextMenu = editor => {\n const inLink = 'link unlink openlink';\n const noLink = 'link';\n editor.ui.registry.addContextMenu('link', {\n update: element => {\n const isEditable = editor.dom.isEditable(element);\n if (!isEditable) {\n return '';\n }\n return hasLinks(editor.dom.getParents(element, 'a')) ? inLink : noLink;\n }\n });\n };\n const setupContextToolbars = editor => {\n const collapseSelectionToEnd = editor => {\n editor.selection.collapse(false);\n };\n const onSetupLink = buttonApi => {\n const node = editor.selection.getNode();\n buttonApi.setEnabled(isInAnchor(editor, node));\n return noop;\n };\n const getLinkText = value => {\n const anchor = getAnchorElement(editor);\n const onlyText = isOnlyTextSelected(editor);\n if (anchor.isNone() && onlyText) {\n const text = getAnchorText(editor.selection, anchor);\n return someIf(text.length === 0, value);\n } else {\n return Optional.none();\n }\n };\n editor.ui.registry.addContextForm('quicklink', {\n launch: {\n type: 'contextformtogglebutton',\n icon: 'link',\n tooltip: 'Link',\n onSetup: toggleLinkState(editor)\n },\n label: 'Link',\n predicate: node => hasContextToolbar(editor) && isInAnchor(editor, node),\n initValue: () => {\n const elm = getAnchorElement(editor);\n return elm.fold(constant(''), getHref);\n },\n commands: [\n {\n type: 'contextformtogglebutton',\n icon: 'link',\n tooltip: 'Link',\n primary: true,\n onSetup: buttonApi => {\n const node = editor.selection.getNode();\n buttonApi.setActive(isInAnchor(editor, node));\n return toggleLinkState(editor)(buttonApi);\n },\n onAction: formApi => {\n const value = formApi.getValue();\n const text = getLinkText(value);\n const attachState = {\n href: value,\n attach: noop\n };\n link(editor, attachState, {\n href: value,\n text,\n title: Optional.none(),\n rel: Optional.none(),\n target: Optional.none(),\n class: Optional.none()\n });\n collapseSelectionToEnd(editor);\n formApi.hide();\n }\n },\n {\n type: 'contextformbutton',\n icon: 'unlink',\n tooltip: 'Remove link',\n onSetup: onSetupLink,\n onAction: formApi => {\n unlink(editor);\n formApi.hide();\n }\n },\n {\n type: 'contextformbutton',\n icon: 'new-tab',\n tooltip: 'Open link',\n onSetup: onSetupLink,\n onAction: formApi => {\n gotoSelectedLink(editor)();\n formApi.hide();\n }\n }\n ]\n });\n };\n\n var Plugin = () => {\n global$5.add('link', editor => {\n register$1(editor);\n setupButtons(editor);\n setupMenuItems(editor);\n setupContextMenu(editor);\n setupContextToolbars(editor);\n setupGotoLinks(editor);\n register(editor);\n setup(editor);\n });\n };\n\n Plugin();\n\n})();\n"],"names":["global$5","tinymce","util","Tools","resolve","isType","type","value","x","t","Array","isArray","o","v","proto","constructor","String","prototype","isPrototypeOf","_a","name","typeOf","isSimpleType","isString","isObject","isNull","a","isBoolean","isNonNullable","isNullable","isFunction","isArrayOf","pred","i","len","length","noop","tripleEquals","b","Optional","tag","this","some","none","singletonNone","fold","onNone","onSome","isSome","isNone","map","mapper","bind","binder","exists","predicate","forall","filter","getOr","replacement","or","getOrThunk","thunk","orThunk","getOrDie","message","Error","from","getOrNull","getOrUndefined","each","worker","toArray","toString","nativeIndexOf","indexOf","nativePush","push","contains","xs","ts","call","rawIndexOf","flatten","r","apply","f","findMap","arr","is","lhs","rhs","comparator","left","cat","someIf","option","editor","options","get","assumeExternalTargets","hasContextToolbar","getLinkList","getDefaultLinkTarget","getDefaultLinkProtocol","getTargetList","getRelList","getLinkClassList","shouldShowLinkTitle","allowUnsafeLinkTarget","useQuickLink","global$4","getValue","item","sanitizeList","list","extractValue","out","text","title","getText","undefined","menu","items","sanitizeWith","extracter","ListOptions","sanitize","createUi","label","keys","Object","hasOwnProperty","internalFilter","obj","onTrue","onFalse","props","k","has","key","global$3","global$2","isAnchor","elm","nodeName","toLowerCase","isLink","getHref","collectNodesInRange","rng","collapsed","contents","cloneContents","firstChild","walker","elements","current","next","hasProtocol","url","test","_b","getAttribute","applyRelTargetRules","rel","isUnsafe","rules","rels","split","removeTargetRules","val","inArray","newRels","concat","addTargetRules","trim","sort","join","getAnchorElement","selectedElm","getLinksInSelection","selection","getRng","getNode","isImageFigure","dom","select","getParent","isInAnchor","getAnchorText","anchorElm","replace","trimCaretContainers","getContent","format","innerText","textContent","getLinks$1","grep","hasLinks","isOnlyTextSelected","inlineTextElements","schema","getTextInlineElements","isElement","nodeType","anchor","hasAttribute","className","applyLinkOverrides","linkAttrs","newLinkAttrs","newRel","target","href","handleExternalTargets","linkDomMutation","attachState","data","acc","each$1","getLinkAttrs","undoManager","transact","attach","linkImageFigure","execCommand","insertContent","createHTML","encode","createLink","focus","setAttribs","updateLink","unwrapOptions","class","cls","_k","link","sanitizedData","getOption","uriOptions","allow_html_data_urls","allow_script_urls","allow_svg_data_urls","isDomSafe","sanitizeData","hasPlugin","unlink","node","unlinkImageFigure","bookmark","getBookmark","cloneRange","startAnchorElm","startContainer","getBody","endAnchorElm","endContainer","setStartBefore","setEndAfter","setRng","moveToBookmark","unlinkSelection","unlinkDomMutation","fig","img","getParents","parentNode","insertBefore","remove","attrs","create","appendChild","isListGroup","hasNonNullableKey","findTextByValue","catalog","getDelta","persistentText","fieldName","hasPersistentText","meta","DialogChanges","initialData","linkCatalog","persistentData","onUrlChange","getTitleFromUrlChange","onCatalogChange","change","catalogs","onChange","getData","global$1","tryEmailTransform","preprocess","oldData","tryProtocolTransform","defaultLinkProtocol","DialogConfirms","Promise","transform","callback","setEditorTimeout","windowManager","confirm","state","delayedConfirm","AnchorListOptions","anchorNodes","anchors","id","ClassListOptions","parseJson","JSON","parse","err","LinkListOptions","extractor","convertURL","linkList","fetch","then","res","ok","reject","output","optItems","RelOptions","initialTarget","isTargetBlank","safeRelExtractor","fallbacks","TargetOptions","nonEmptyAttr","elem","getAttrib","DialogInfo","linkNode","links","linkClass","extractFromAnchor","targets","classes","optNode","flags","titleEnabled","open$1","anchorNode","collectData","info","onSubmit","api","close","getChangedValue","changedData","pData","handleSubmit","settings","displayText","titleText","defaultTarget","original","getInitialData","dialogDelta","size","body","filetype","picker_text","buttons","primary","newData","setData","makeDialog","spec","open","global","document","createElement","evt","createEvent","initMouseEvent","window","dispatchEvent","removeChild","appendClickRemove","getLink","getSelectedLink","getStart","gotoLink","targetEl","scrollIntoView","openDialog","dialog","gotoSelectedLink","toggleState","toggler","on","off","toggleLinkState","updateState","setActive","mode","isReadOnly","setEnabled","isEditable","toggleLinkMenuState","toggleGotoLinkState","isCollapsed","hasExactlyOneLinkInSelection","toggleUnlinkState","hasLinks$1","parents","updateEnabled","e","setupContextToolbars","onSetupLink","buttonApi","ui","registry","addContextForm","launch","icon","tooltip","onSetup","initValue","commands","onAction","formApi","onlyText","getLinkText","collapse","collapseSelectionToEnd","hide","add","registerOption","register","processor","valid","default","register$1","addToggleButton","addButton","setupButtons","addMenuItem","shortcut","setupMenuItems","addContextMenu","update","element","setupContextMenu","metaKeyPressed","preventDefault","isDefaultPrevented","keyCode","altKey","shiftKey","ctrlKey","metaKey","hasOnlyAltModifier","setupGotoLinks","addCommand","_ui","dispatch","toolbarKey","addShortcut","setup"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{__exports as r}from"../../../../_virtual/index18.mjs";import{__require as e}from"./plugin.mjs";var i;function o(){return i||(i=1,e()),r}export{o as __require};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ import{__exports as e}from"../../../../_virtual/plugin7.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=r=e,o=(s=String).prototype,o.isPrototypeOf(n)||(null===(i=r.constructor)||void 0===i?void 0:i.name)===s.name)?"string":t;var n,o;var r,s,i})(t)===e,n=e=>t=>typeof t===e,o=t("string"),r=t("object"),s=t("array"),i=n("boolean"),l=e=>!(e=>null==e)(e),a=n("function"),d=n("number"),c=()=>{},m=e=>()=>e,u=(e,t)=>e===t;const p=e=>t=>!e(t),f=m(!1);class g{constructor(e,t){this.tag=e,this.value=t}static some(e){return new g(!0,e)}static none(){return g.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?g.some(e(this.value)):g.none()}bind(e){return this.tag?e(this.value):g.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:g.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 l(e)?g.some(e):g.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()"}}g.singletonNone=new g(!1);const h=Array.prototype.slice,y=Array.prototype.indexOf,v=Array.prototype.push,C=(e,t)=>{return n=e,o=t,y.call(n,o)>-1;var n,o},b=(e,t)=>{for(let n=0,o=e.length;n<o;n++){if(t(e[n],n))return!0}return!1},N=(e,t)=>{const n=e.length,o=new Array(n);for(let r=0;r<n;r++){const n=e[r];o[r]=t(n,r)}return o},S=(e,t)=>{for(let n=0,o=e.length;n<o;n++){t(e[n],n)}},L=(e,t)=>{const n=[];for(let o=0,r=e.length;o<r;o++){const r=e[o];t(r,o)&&n.push(r)}return n},D=(e,t,n)=>(S(e,((e,o)=>{n=t(n,e,o)})),n),T=(e,t,n)=>{for(let o=0,r=e.length;o<r;o++){const r=e[o];if(t(r,o))return g.some(r);if(n(r,o))break}return g.none()},O=(e,t)=>T(e,t,f),x=(e,t)=>(e=>{const t=[];for(let n=0,o=e.length;n<o;++n){if(!s(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);v.apply(t,e[n])}return t})(N(e,t)),A=e=>{const t=h.call(e,0);return t.reverse(),t},E=(e,t)=>t>=0&&t<e.length?g.some(e[t]):g.none(),w=e=>E(e,0),k=e=>E(e,e.length-1),B=(e,t)=>{const n=[],o=a(t)?e=>b(n,(n=>t(n,e))):e=>C(n,e);for(let t=0,r=e.length;t<r;t++){const r=e[t];o(r)||n.push(r)}return n},P=(e,t,n=u)=>e.exists((e=>n(e,t))),M=(e,t,n)=>e.isSome()&&t.isSome()?g.some(n(e.getOrDie(),t.getOrDie())):g.none(),I=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},R={fromHtml:(e,t)=>{const n=(t||document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||n.childNodes.length>1){const t="HTML does not have a single root node";throw console.error(t,e),new Error(t)}return I(n.childNodes[0])},fromTag:(e,t)=>{const n=(t||document).createElement(e);return I(n)},fromText:(e,t)=>{const n=(t||document).createTextNode(e);return I(n)},fromDom:I,fromPoint:(e,t,n)=>g.from(e.dom.elementFromPoint(t,n)).map(I)},U=(e,t)=>{const n=e.dom;if(1!==n.nodeType)return!1;{const e=n;if(void 0!==e.matches)return e.matches(t);if(void 0!==e.msMatchesSelector)return e.msMatchesSelector(t);if(void 0!==e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(void 0!==e.mozMatchesSelector)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}},_=(e,t)=>e.dom===t.dom,$=U,H="undefined"!=typeof window?window:Function("return this;")(),F=(e,t)=>((e,t)=>{let n=null!=t?t:H;for(let t=0;t<e.length&&null!=n;++t)n=n[e[t]];return n})(e.split("."),t),V=(e,t)=>{const n=((e,t)=>F(e,t))(e,t);if(null==n)throw new Error(e+" not available on this browser");return n},j=Object.getPrototypeOf,K=e=>{const t=F("ownerDocument.defaultView",e);return r(e)&&((e=>V("HTMLElement",e))(t).prototype.isPrototypeOf(e)||/^HTML\w*Element$/.test(j(e).constructor.name))},z=e=>e.dom.nodeName.toLowerCase(),Q=e=>e.dom.nodeType,W=e=>t=>Q(t)===e,q=e=>Z(e)&&K(e.dom),Z=W(1),G=W(3),J=W(9),X=W(11),Y=e=>t=>Z(t)&&z(t)===e,ee=e=>g.from(e.dom.parentNode).map(R.fromDom),te=e=>N(e.dom.childNodes,R.fromDom),ne=(e,t)=>{const n=e.dom.childNodes;return g.from(n[t]).map(R.fromDom)},oe=e=>ne(e,0),re=e=>ne(e,e.dom.childNodes.length-1),se=a(Element.prototype.attachShadow)&&a(Node.prototype.getRootNode)?e=>R.fromDom(e.dom.getRootNode()):e=>{return J(e)?e:(t=e,R.fromDom(t.dom.ownerDocument));var t},ie=e=>{const t=se(e);return X(n=t)&&l(n.dom.host)?g.some(t):g.none();var n},le=e=>R.fromDom(e.dom.host),ae=e=>{const t=G(e)?e.dom.parentNode:e.dom;if(null==t||null===t.ownerDocument)return!1;const n=t.ownerDocument;return ie(R.fromDom(t)).fold((()=>n.body.contains(t)),(o=ae,r=le,e=>o(r(e))));var o,r};var de=(e,t,n,o,r)=>e(n,o)?g.some(n):a(r)&&r(n)?g.none():t(n,o,r);const ce=(e,t,n)=>{let o=e.dom;const r=a(n)?n:f;for(;o.parentNode;){o=o.parentNode;const e=R.fromDom(o);if(t(e))return g.some(e);if(r(e))break}return g.none()},me=(e,t,n)=>de(((e,t)=>t(e)),ce,e,t,n),ue=(e,t,n)=>ce(e,(e=>U(e,t)),n),pe=e=>{return de(((e,t)=>U(e,t)),ue,e,"[contenteditable]",t);var t},fe=e=>e.dom.contentEditable,ge=(e,t)=>{ee(e).each((n=>{n.dom.insertBefore(t.dom,e.dom)}))},he=(e,t)=>{const n=(e=>g.from(e.dom.nextSibling).map(R.fromDom))(e);n.fold((()=>{ee(e).each((e=>{ye(e,t)}))}),(e=>{ge(e,t)}))},ye=(e,t)=>{e.dom.appendChild(t.dom)},ve=(e,t)=>{S(t,(t=>{ye(e,t)}))},Ce=e=>{e.dom.textContent="",S(te(e),(e=>{be(e)}))},be=e=>{const t=e.dom;null!==t.parentNode&&t.parentNode.removeChild(t)};var Ne=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),Se=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),Le=tinymce.util.Tools.resolve("tinymce.util.VK");const De=e=>N(e,R.fromDom),Te=Object.keys,Oe=(e,t)=>{const n=Te(e);for(let o=0,r=n.length;o<r;o++){const r=n[o];t(e[r],r)}},xe=(e,t)=>{const n={};var o;return((e,t,n,o)=>{Oe(e,((e,r)=>{(t(e,r)?n:o)(e,r)}))})(e,t,(o=n,(e,t)=>{o[t]=e}),c),n},Ae=(e,t)=>{const n=e.dom;Oe(t,((e,t)=>{((e,t,n)=>{if(!(o(n)||i(n)||d(n)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,n+"")})(n,t,e)}))},Ee=e=>D(e.dom.attributes,((e,t)=>(e[t.name]=t.value,e)),{}),we=e=>((e,t)=>R.fromDom(e.dom.cloneNode(t)))(e,!0),ke=(e,t)=>{const n=((e,t)=>{const n=R.fromTag(t),o=Ee(e);return Ae(n,o),n})(e,t);he(e,n);const o=te(e);return ve(n,o),be(e),n};var Be=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),Pe=tinymce.util.Tools.resolve("tinymce.util.Tools");const Me=e=>t=>l(t)&&t.nodeName.toLowerCase()===e,Ie=e=>t=>l(t)&&e.test(t.nodeName),Re=e=>l(e)&&3===e.nodeType,Ue=e=>l(e)&&1===e.nodeType,_e=Ie(/^(OL|UL|DL)$/),$e=Ie(/^(OL|UL)$/),He=Me("ol"),Fe=Ie(/^(LI|DT|DD)$/),Ve=Ie(/^(DT|DD)$/),je=Ie(/^(TH|TD)$/),Ke=Me("br"),ze=(e,t)=>l(t)&&t.nodeName in e.schema.getTextBlockElements(),Qe=(e,t)=>l(e)&&e.nodeName in t,We=(e,t)=>l(t)&&t.nodeName in e.schema.getVoidElements(),qe=(e,t,n)=>{const o=e.isEmpty(t);return!(n&&e.select("span[data-mce-type=bookmark]",t).length>0)&&o},Ze=(e,t)=>e.isChildOf(t,e.getRoot()),Ge=e=>t=>t.options.get(e),Je=Ge("lists_indent_on_tab"),Xe=Ge("forced_root_block"),Ye=Ge("forced_root_block_attrs"),et=(e,t)=>{const n=e.dom,o=e.schema.getBlockElements(),r=n.createFragment(),s=Xe(e),i=Ye(e);let l,a,d=!1;for(a=n.create(s,i),Qe(t.firstChild,o)||r.appendChild(a);l=t.firstChild;){const e=l.nodeName;d||"SPAN"===e&&"bookmark"===l.getAttribute("data-mce-type")||(d=!0),Qe(l,o)?(r.appendChild(l),a=null):(a||(a=n.create(s,i),r.appendChild(a)),a.appendChild(l))}return!d&&a&&a.appendChild(n.create("br",{"data-mce-bogus":"1"})),r},tt=Be.DOM,nt=(e,t,n)=>{const o=tt.select('span[data-mce-type="bookmark"]',t),r=et(e,n),s=tt.createRng();s.setStartAfter(n),s.setEndAfter(t);const i=s.extractContents();for(let t=i.firstChild;t;t=t.firstChild)if("LI"===t.nodeName&&e.dom.isEmpty(t)){tt.remove(t);break}e.dom.isEmpty(i)||tt.insertAfter(i,t),tt.insertAfter(r,t);const l=n.parentElement;l&&qe(e.dom,l)&&(e=>{const t=e.parentNode;t&&Pe.each(o,(e=>{t.insertBefore(e,n.parentNode)})),tt.remove(e)})(l),tt.remove(n),qe(e.dom,t)&&tt.remove(t)},ot=Y("dd"),rt=Y("dt"),st=(e,t)=>{var n;ot(t)?ke(t,"dt"):rt(t)&&(n=t,g.from(n.dom.parentElement).map(R.fromDom)).each((n=>nt(e,n.dom,t.dom)))},it=e=>{rt(e)&&ke(e,"dd")},lt=(e,t)=>{if(Re(e))return{container:e,offset:t};const n=Ne.getNode(e,t);return Re(n)?{container:n,offset:t>=e.childNodes.length?n.data.length:0}:n.previousSibling&&Re(n.previousSibling)?{container:n.previousSibling,offset:n.previousSibling.data.length}:n.nextSibling&&Re(n.nextSibling)?{container:n.nextSibling,offset:0}:{container:e,offset:t}},at=e=>{const t=e.cloneRange(),n=lt(e.startContainer,e.startOffset);t.setStart(n.container,n.offset);const o=lt(e.endContainer,e.endOffset);return t.setEnd(o.container,o.offset),t},dt=["OL","UL","DL"],ct=dt.join(","),mt=(e,t)=>{const n=t||e.selection.getStart(!0);return e.dom.getParent(n,ct,gt(e,n))},ut=e=>{const t=mt(e),n=e.selection.getSelectedBlocks();return((e,t)=>l(e)&&1===t.length&&t[0]===e)(t,n)?(e=>L(e.querySelectorAll(ct),_e))(t):L(n,(e=>_e(e)&&t!==e))},pt=e=>{const t=e.selection.getSelectedBlocks();return L(((e,t)=>{const n=Pe.map(t,(t=>e.dom.getParent(t,"li,dd,dt",gt(e,t))||t));return B(n)})(e,t),Fe)},ft=(e,t)=>{const n=e.dom.getParents(t,"TD,TH");return n.length>0?n[0]:e.getBody()},gt=(e,t)=>{const n=e.dom.getParents(t,e.dom.isBlock),o=O(n,(t=>{return n=e.schema,!_e(o=t)&&!Fe(o)&&b(dt,(e=>n.isValidChild(o.nodeName,e)));var n,o}));return o.getOr(e.getBody())},ht=(e,t)=>{const n=e.dom.getParents(t,"ol,ul",gt(e,t));return k(n)},yt=e=>{const t=(e=>{const t=ht(e,e.selection.getStart()),n=L(e.selection.getSelectedBlocks(),$e);return t.toArray().concat(n)})(e),n=(e=>{const t=e.selection.getStart();return e.dom.getParents(t,"ol,ul",gt(e,t))})(e);return O(n,(e=>{return t=R.fromDom(e),ee(t).exists((e=>Fe(e.dom)&&oe(e).exists((e=>!_e(e.dom)))&&re(e).exists((e=>!_e(e.dom)))));var t})).fold((()=>vt(e,t)),(e=>[e]))},vt=(e,t)=>{const n=N(t,(t=>ht(e,t).getOr(t)));return B(n)},Ct=e=>/\btox\-/.test(e.className),bt=(e,t)=>T(e,_e,je).exists((e=>e.nodeName===t&&!Ct(e))),Nt=(e,t)=>null!==t&&!e.dom.isEditable(t),St=(e,t)=>{const n=e.dom.getParent(t,"ol,ul,dl");return Nt(e,n)},Lt=(e,t)=>{const n=e.selection.getNode();return t({parents:e.dom.getParents(n),element:n}),e.on("NodeChange",t),()=>e.off("NodeChange",t)},Dt=(e,t)=>{const n=(t||document).createDocumentFragment();return S(e,(e=>{n.appendChild(e.dom)})),R.fromDom(n)},Tt=(e,t,n)=>e.dispatch("ListMutation",{action:t,element:n}),Ot=(xt=/^\s+|\s+$/g,e=>e.replace(xt,""));var xt;const At=(e,t,n)=>{if(!o(n))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",n,":: Element ",e),new Error("CSS value must be a string: "+n);(e=>void 0!==e.style&&a(e.style.getPropertyValue))(e)&&e.style.setProperty(t,n)},Et=(e,t,n)=>{const o=e.dom;At(o,t,n)},wt=e=>$(e,"OL,UL"),kt=e=>oe(e).exists(wt),Bt=e=>"listAttributes"in e,Pt=e=>"isComment"in e,Mt=e=>e.depth>0,It=e=>e.isSelected,Rt=e=>{const t=te(e),n=re(e).exists(wt)?t.slice(0,-1):t;return N(n,we)},Ut=(e,t)=>{ye(e.item,t.list)},_t=(e,t)=>{const n={list:R.fromTag(t,e),item:R.fromTag("li",e)};return ye(n.list,n.item),n},$t=(e,t,n)=>{const o=t.slice(0,n.depth);return k(o).each((t=>{if(Bt(n)){const o=((e,t,n)=>{const o=R.fromTag("li",e);return Ae(o,t),ve(o,n),o})(e,n.itemAttributes,n.content);((e,t)=>{ye(e.list,t),e.item=t})(t,o),((e,t)=>{z(e.list)!==t.listType&&(e.list=ke(e.list,t.listType)),Ae(e.list,t.listAttributes)})(t,n)}else if((e=>"isFragment"in e)(n))ve(t.item,n.content);else{const e=R.fromHtml(`\x3c!--${n.content}--\x3e`);ye(t.list,e)}})),o},Ht=(e,t,n)=>{const o=((e,t,n)=>{const o=[];for(let r=0;r<n;r++)o.push(_t(e,Bt(t)?t.listType:t.parentListType));return o})(e,n,n.depth-t.length);var r;return(e=>{for(let t=1;t<e.length;t++)Ut(e[t-1],e[t])})(o),((e,t)=>{for(let t=0;t<e.length-1;t++)Et(e[t].item,"list-style-type","none");k(e).each((e=>{Bt(t)&&(Ae(e.list,t.listAttributes),Ae(e.item,t.itemAttributes)),ve(e.item,t.content)}))})(o,n),r=o,M(k(t),w(r),Ut),t.concat(o)},Ft=(e,t)=>{let n=g.none();const o=D(t,((t,o,r)=>Pt(o)?0===r?(n=g.some(o),t):$t(e,t,o):o.depth>t.length?Ht(e,t,o):$t(e,t,o)),[]);return n.each((e=>{const t=R.fromHtml(`\x3c!--${e.content}--\x3e`);w(o).each((e=>{((e,t)=>{oe(e).fold((()=>{ye(e,t)}),(n=>{e.dom.insertBefore(t.dom,n.dom)}))})(e.list,t)}))})),w(o).map((e=>e.list))},Vt=e=>(S(e,((t,n)=>{((e,t)=>{const n=e[t].depth,o=e=>e.depth===n&&!e.dirty,r=e=>e.depth<n;return T(A(e.slice(0,t)),o,r).orThunk((()=>T(e.slice(t+1),o,r)))})(e,n).fold((()=>{t.dirty&&Bt(t)&&(e=>{e.listAttributes=xe(e.listAttributes,((e,t)=>"start"!==t))})(t)}),(e=>{return o=e,void(Bt(n=t)&&Bt(o)&&(n.listType=o.listType,n.listAttributes={...o.listAttributes}));var n,o}))})),e),jt=(e,t,n,o)=>{var r,s;if(8===Q(s=o)||"#comment"===z(s))return[{depth:e+1,content:null!==(r=o.dom.nodeValue)&&void 0!==r?r:"",dirty:!1,isSelected:!1,isComment:!0}];t.each((e=>{_(e.start,o)&&n.set(!0)}));const i=((e,t,n)=>ee(e).filter(Z).map((o=>({depth:t,dirty:!1,isSelected:n,content:Rt(e),itemAttributes:Ee(e),listAttributes:Ee(o),listType:z(o),isInPreviousLi:!1}))))(o,e,n.get());t.each((e=>{_(e.end,o)&&n.set(!1)}));const l=re(o).filter(wt).map((o=>zt(e,t,n,o))).getOr([]);return i.toArray().concat(l)},Kt=(e,t,n,o)=>oe(o).filter(wt).fold((()=>jt(e,t,n,o)),(r=>{const s=D(te(o),((o,s,i)=>{if(0===i)return o;if($(s,"LI"))return o.concat(jt(e,t,n,s));{const t={isFragment:!0,depth:e,content:[s],isSelected:!1,dirty:!1,parentListType:z(r)};return o.concat(t)}}),[]);return zt(e,t,n,r).concat(s)})),zt=(e,t,n,o)=>x(te(o),(o=>(wt(o)?zt:Kt)(e+1,t,n,o))),Qt=(e,t)=>x(((e,t)=>{if(0===e.length)return[];{let n=t(e[0]);const o=[];let r=[];for(let s=0,i=e.length;s<i;s++){const i=e[s],l=t(i);l!==n&&(o.push(r),r=[]),n=l,r.push(i)}return 0!==r.length&&o.push(r),o}})(t,Mt),(t=>w(t).exists(Mt)?((e,t)=>{const n=Vt(t);return Ft(e.contentDocument,n).toArray()})(e,t):((e,t)=>{const n=Vt(t);return N(n,(t=>{const n=Pt(t)?Dt([R.fromHtml(`\x3c!--${t.content}--\x3e`)]):Dt(t.content);return R.fromDom(et(e,n.dom))}))})(e,t))),Wt=(e,t,n)=>{const o=((e,t)=>{const n=(e=>{let t=!1;return{get:()=>t,set:e=>{t=e}}})();return N(e,(e=>({sourceList:e,entries:zt(0,t,n,e)})))})(t,(e=>{const t=N(pt(e),R.fromDom);return M(O(t,p(kt)),O(A(t),p(kt)),((e,t)=>({start:e,end:t})))})(e));S(o,(t=>{((e,t)=>{S(L(e,It),(e=>((e,t)=>{switch(e){case"Indent":t.depth++;break;case"Outdent":t.depth--;break;case"Flatten":t.depth=0}t.dirty=!0})(t,e)))})(t.entries,n);const o=Qt(e,t.entries);var r;S(o,(t=>{Tt(e,"Indent"===n?"IndentList":"OutdentList",t.dom)})),r=t.sourceList,S(o,(e=>{ge(r,e)})),be(t.sourceList)}))},qt=(e,t)=>{const n=De(yt(e)),o=De((e=>L(pt(e),Ve))(e));let r=!1;if(n.length||o.length){const s=e.selection.getBookmark();Wt(e,n,t),((e,t,n)=>{S(n,"Indent"===t?it:t=>st(e,t))})(e,t,o),e.selection.moveToBookmark(s),e.selection.setRng(at(e.selection.getRng())),e.nodeChanged(),r=!0}return r},Zt=(e,t)=>!(e=>{const t=mt(e);return Nt(e,t)})(e)&&qt(e,t),Gt=e=>Zt(e,"Indent"),Jt=e=>Zt(e,"Outdent"),Xt=e=>Zt(e,"Flatten"),Yt=e=>"\ufeff"===e,en=(e,t)=>{return n=e,o=function(e,...t){return(...n)=>{const o=t.concat(n);return e.apply(null,o)}}(_,t),ce(n,o,r).isSome();var n,o,r};var tn=tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager");const nn=Be.DOM,on=e=>{const t={},n=n=>{let o=e[n?"startContainer":"endContainer"],r=e[n?"startOffset":"endOffset"];if(Ue(o)){const e=nn.create("span",{"data-mce-type":"bookmark"});o.hasChildNodes()?(r=Math.min(r,o.childNodes.length-1),n?o.insertBefore(e,o.childNodes[r]):nn.insertAfter(e,o.childNodes[r])):o.appendChild(e),o=e,r=0}t[n?"startContainer":"endContainer"]=o,t[n?"startOffset":"endOffset"]=r};return n(!0),e.collapsed||n(),t},rn=e=>{const t=t=>{let n=e[t?"startContainer":"endContainer"],o=e[t?"startOffset":"endOffset"];if(n){if(Ue(n)&&n.parentNode){const e=n;o=(e=>{var t;let n=null===(t=e.parentNode)||void 0===t?void 0:t.firstChild,o=0;for(;n;){if(n===e)return o;Ue(n)&&"bookmark"===n.getAttribute("data-mce-type")||o++,n=n.nextSibling}return-1})(n),n=n.parentNode,nn.remove(e),!n.hasChildNodes()&&nn.isBlock(n)&&n.appendChild(nn.create("br"))}e[t?"startContainer":"endContainer"]=n,e[t?"startOffset":"endOffset"]=o}};t(!0),t();const n=nn.createRng();return n.setStart(e.startContainer,e.startOffset),e.endContainer&&n.setEnd(e.endContainer,e.endOffset),at(n)},sn=e=>{switch(e){case"UL":return"ToggleUlList";case"OL":return"ToggleOlList";case"DL":return"ToggleDLList"}},ln=(e,t)=>{Pe.each(t,((t,n)=>{e.setAttribute(n,t)}))},an=(e,t,n)=>{((e,t,n)=>{const o=n["list-style-type"]?n["list-style-type"]:null;e.setStyle(t,"list-style-type",o)})(e,t,n),((e,t,n)=>{ln(t,n["list-attributes"]),Pe.each(e.select("li",t),(e=>{ln(e,n["list-item-attributes"])}))})(e,t,n)},dn=(e,t)=>l(t)&&!Qe(t,e.schema.getBlockElements()),cn=(e,t,n,o)=>{let r=t[n?"startContainer":"endContainer"];const s=t[n?"startOffset":"endOffset"];Ue(r)&&(r=r.childNodes[Math.min(s,r.childNodes.length-1)]||r),!n&&Ke(r.nextSibling)&&(r=r.nextSibling);const i=(t,n)=>{var r;const s=new Se(t,(t=>{for(;!e.dom.isBlock(t)&&t.parentNode&&o!==t;)t=t.parentNode;return t})(t)),i=n?"next":"prev";let l;for(;l=s[i]();)if(!We(e,l)&&!Yt(l.textContent)&&0!==(null===(r=l.textContent)||void 0===r?void 0:r.length))return g.some(l);return g.none()};if(n&&Re(r))if(Yt(r.textContent))r=i(r,!1).getOr(r);else for(null!==r.parentNode&&dn(e,r.parentNode)&&(r=r.parentNode);null!==r.previousSibling&&(dn(e,r.previousSibling)||Re(r.previousSibling));)r=r.previousSibling;if(!n&&Re(r))if(Yt(r.textContent))r=i(r,!0).getOr(r);else for(null!==r.parentNode&&dn(e,r.parentNode)&&(r=r.parentNode);null!==r.nextSibling&&(dn(e,r.nextSibling)||Re(r.nextSibling));)r=r.nextSibling;for(;r.parentNode!==o;){const t=r.parentNode;if(ze(e,r))return r;if(/^(TD|TH)$/.test(t.nodeName))return r;r=t}return r},mn=(e,t,n)=>{const o=e.selection.getRng();let r="LI";const s=gt(e,((e,t)=>{const n=e.selection.getStart(!0),o=cn(e,t,!0,e.getBody());return en(R.fromDom(o),R.fromDom(t.commonAncestorContainer))?t.commonAncestorContainer:n})(e,o)),i=e.dom;if("false"===i.getContentEditable(e.selection.getNode()))return;"DL"===(t=t.toUpperCase())&&(r="DT");const l=on(o),a=L(((e,t,n)=>{const o=[],r=e.dom,s=cn(e,t,!0,n),i=cn(e,t,!1,n);let l;const a=[];for(let e=s;e&&(a.push(e),e!==i);e=e.nextSibling);return Pe.each(a,(t=>{var s;if(ze(e,t))return o.push(t),void(l=null);if(r.isBlock(t)||Ke(t))return Ke(t)&&r.remove(t),void(l=null);const i=t.nextSibling;tn.isBookmarkNode(t)&&(_e(i)||ze(e,i)||!i&&t.parentNode===n)?l=null:(l||(l=r.create("p"),null===(s=t.parentNode)||void 0===s||s.insertBefore(l,t),o.push(l)),l.appendChild(t))})),o})(e,o,s),e.dom.isEditable);Pe.each(a,(o=>{let s;const l=o.previousSibling,a=o.parentNode;Fe(a)||(l&&_e(l)&&l.nodeName===t&&((e,t,n)=>{const o=e.getStyle(t,"list-style-type");let r=n?n["list-style-type"]:"";return r=null===r?"":r,o===r})(i,l,n)?(s=l,o=i.rename(o,r),l.appendChild(o)):(s=i.create(t),a.insertBefore(s,o),s.appendChild(o),o=i.rename(o,r)),((e,t,n)=>{Pe.each(n,(n=>e.setStyle(t,n,"")))})(i,o,["margin","margin-right","margin-bottom","margin-left","margin-top","padding","padding-right","padding-bottom","padding-left","padding-top"]),an(i,s,n),pn(e.dom,s))})),e.selection.setRng(rn(l))},un=(e,t,n)=>{return((e,t)=>_e(e)&&e.nodeName===(null==t?void 0:t.nodeName))(t,n)&&((e,t,n)=>e.getStyle(t,"list-style-type",!0)===e.getStyle(n,"list-style-type",!0))(e,t,n)&&(o=n,t.className===o.className);var o},pn=(e,t)=>{let n,o=t.nextSibling;if(un(e,t,o)){const r=o;for(;n=r.firstChild;)t.appendChild(n);e.remove(r)}if(o=t.previousSibling,un(e,t,o)){const r=o;for(;n=r.lastChild;)t.insertBefore(n,t.firstChild);e.remove(r)}},fn=(e,t,n,o)=>{if(t.nodeName!==n){const r=e.dom.rename(t,n);an(e.dom,r,o),Tt(e,sn(n),r)}else an(e.dom,t,o),Tt(e,sn(n),t)},gn=(e,t,n,o)=>{if(t.classList.forEach(((e,n,o)=>{e.startsWith("tox-")&&(o.remove(e),0===o.length&&t.removeAttribute("class"))})),t.nodeName!==n){const r=e.dom.rename(t,n);an(e.dom,r,o),Tt(e,sn(n),r)}else an(e.dom,t,o),Tt(e,sn(n),t)},hn=e=>"list-style-type"in e,yn=(e,t,n)=>{const o=mt(e);if(St(e,o))return;const s=ut(e),i=r(n)?n:{};s.length>0?((e,t,n,o,r)=>{const s=_e(t);if(!s||t.nodeName!==o||hn(r)||Ct(t)){mn(e,o,r);const i=on(e.selection.getRng()),l=s?[t,...n]:n,a=s&&Ct(t)?gn:fn;Pe.each(l,(t=>{a(e,t,o,r)})),e.selection.setRng(rn(i))}else Xt(e)})(e,o,s,t,i):((e,t,n,o)=>{if(t!==e.getBody())if(t)if(t.nodeName!==n||hn(o)||Ct(t)){const r=on(e.selection.getRng());Ct(t)&&t.classList.forEach(((e,n,o)=>{e.startsWith("tox-")&&(o.remove(e),0===o.length&&t.removeAttribute("class"))})),an(e.dom,t,o);const s=e.dom.rename(t,n);pn(e.dom,s),e.selection.setRng(rn(r)),mn(e,n,o),Tt(e,sn(n),s)}else Xt(e);else mn(e,n,o),Tt(e,sn(n),t)})(e,o,t,i)},vn=Be.DOM,Cn=(e,t)=>{const n=Pe.grep(e.select("ol,ul",t));Pe.each(n,(t=>{((e,t)=>{const n=t.parentElement;if(n&&"LI"===n.nodeName&&n.firstChild===t){const o=n.previousSibling;o&&"LI"===o.nodeName?(o.appendChild(t),qe(e,n)&&vn.remove(n)):vn.setStyle(n,"listStyleType","none")}if(_e(n)){const e=n.previousSibling;e&&"LI"===e.nodeName&&e.appendChild(t)}})(e,t)}))},bn=(e,t,n,o)=>{let r=t.startContainer;const s=t.startOffset;if(Re(r)&&(n?s<r.data.length:s>0))return r;const i=e.schema.getNonEmptyElements();Ue(r)&&(r=Ne.getNode(r,s));const l=new Se(r,o);n&&((e,t)=>!!Ke(t)&&e.isBlock(t.nextSibling)&&!Ke(t.previousSibling))(e.dom,r)&&l.next();const a=n?l.next.bind(l):l.prev2.bind(l);for(;r=a();){if("LI"===r.nodeName&&!r.hasChildNodes())return r;if(i[r.nodeName])return r;if(Re(r)&&r.data.length>0)return r}return null},Nn=(e,t)=>{const n=t.childNodes;return 1===n.length&&!_e(n[0])&&e.isBlock(n[0])},Sn=e=>g.from(e).map(R.fromDom).filter(q).exists((e=>((e,t=!1)=>ae(e)?e.dom.isContentEditable:pe(e).fold(m(t),(e=>"true"===fe(e))))(e)&&!C(["details"],z(e)))),Ln=(e,t,n)=>{let o;const r=Nn(e,n)?n.firstChild:n;if(((e,t)=>{Nn(e,t)&&Sn(t.firstChild)&&e.remove(t.firstChild,!0)})(e,t),!qe(e,t,!0))for(;o=t.firstChild;)r.appendChild(o)},Dn=(e,t,n)=>{let o;const r=t.parentNode;if(!Ze(e,t)||!Ze(e,n))return;_e(n.lastChild)&&(o=n.lastChild),r===n.lastChild&&Ke(r.previousSibling)&&e.remove(r.previousSibling);const s=n.lastChild;s&&Ke(s)&&t.hasChildNodes()&&e.remove(s),qe(e,n,!0)&&Ce(R.fromDom(n)),Ln(e,t,n),o&&n.appendChild(o);const i=((e,t)=>{const n=e.dom,o=t.dom;return n!==o&&n.contains(o)})(R.fromDom(n),R.fromDom(t))?e.getParents(t,_e,n):[];e.remove(t),S(i,(t=>{qe(e,t)&&t!==e.getRoot()&&e.remove(t)}))},Tn=(e,t,n,o)=>{const r=e.dom;if(r.isEmpty(o))((e,t,n)=>{Ce(R.fromDom(n)),Dn(e.dom,t,n),e.selection.setCursorLocation(n,0)})(e,n,o);else{const s=on(t);Dn(r,n,o),e.selection.setRng(rn(s))}},On=(e,t)=>{const n=e.dom,o=e.selection,r=o.getStart(),s=ft(e,r),i=n.getParent(o.getStart(),"LI",s);if(i){const r=i.parentElement;if(r===e.getBody()&&qe(n,r))return!0;const l=at(o.getRng()),a=n.getParent(bn(e,l,t,s),"LI",s),d=a&&(t?n.isChildOf(i,a):n.isChildOf(a,i));if(a&&a!==i&&!d)return e.undoManager.transact((()=>{var n,o;t?Tn(e,l,a,i):(null===(o=(n=i).parentNode)||void 0===o?void 0:o.firstChild)===n?Jt(e):((e,t,n,o)=>{const r=on(t);Dn(e.dom,n,o);const s=rn(r);e.selection.setRng(s)})(e,l,i,a)})),!0;if(d&&!t&&a!==i)return e.undoManager.transact((()=>{if(l.commonAncestorContainer.parentElement){const t=on(l),o=l.commonAncestorContainer.parentElement;Ln(n,l.commonAncestorContainer.parentElement,a),o.remove();const r=rn(t);e.selection.setRng(r)}})),!0;if(!a&&!t&&0===l.startOffset&&0===l.endOffset)return e.undoManager.transact((()=>{Xt(e)})),!0}return!1},xn=(e,t)=>{const n=e.dom,o=e.selection.getStart(),r=ft(e,o),s=n.getParent(o,n.isBlock,r);if(s&&n.isEmpty(s)){const o=at(e.selection.getRng()),i=n.getParent(bn(e,o,t,r),"LI",r);if(i){const l=e=>C(["td","th","caption"],z(e)),a=e=>e.dom===r;return!!((e,t,n=u)=>M(e,t,n).getOr(e.isNone()&&t.isNone()))(me(R.fromDom(i),l,a),me(R.fromDom(o.startContainer),l,a),_)&&(e.undoManager.transact((()=>{const o=i.parentNode;((e,t,n)=>{const o=e.getParent(t.parentNode,e.isBlock,n);e.remove(t),o&&e.isEmpty(o)&&e.remove(o)})(n,s,r),pn(n,o),e.selection.select(i,!0),e.selection.collapse(t)})),!0)}}return!1},An=e=>{const t=e.selection.getStart(),n=ft(e,t);return e.dom.getParent(t,"LI,DT,DD",n)||pt(e).length>0},En=(e,t)=>{const n=e.selection;return!St(e,n.getNode())&&(n.isCollapsed()?((e,t)=>On(e,t)||xn(e,t))(e,t):(e=>!!An(e)&&(e.undoManager.transact((()=>{e.execCommand("Delete"),Cn(e.dom,e.getBody())})),!0))(e))},wn=e=>{const t=A(Ot(e).split("")),n=N(t,((e,t)=>{const n=e.toUpperCase().charCodeAt(0)-"A".charCodeAt(0)+1;return Math.pow(26,t)*n}));return D(n,((e,t)=>e+t),0)},kn=e=>{if(--e<0)return"";{const t=e%26,n=Math.floor(e/26);return kn(n)+String.fromCharCode("A".charCodeAt(0)+t)}},Bn=e=>{const t=parseInt(e.start,10);return P(e.listStyleType,"upper-alpha")?kn(t):P(e.listStyleType,"lower-alpha")?kn(t).toLowerCase():e.start},Pn=e=>{const t=mt(e);He(t)&&!St(e,t)&&e.windowManager.open({title:"List Properties",body:{type:"panel",items:[{type:"input",name:"start",label:"Start list at number",inputMode:"numeric"}]},initialData:{start:Bn({start:e.dom.getAttrib(t,"start","1"),listStyleType:g.from(e.dom.getStyle(t,"list-style-type"))})},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],onSubmit:t=>{(e=>{switch((e=>/^[0-9]+$/.test(e)?2:/^[A-Z]+$/.test(e)?0:(e=>/^[a-z]+$/.test(e))(e)?1:e.length>0?4:3)(e)){case 2:return g.some({listStyleType:g.none(),start:e});case 0:return g.some({listStyleType:g.some("upper-alpha"),start:wn(e).toString()});case 1:return g.some({listStyleType:g.some("lower-alpha"),start:wn(e).toString()});case 3:return g.some({listStyleType:g.none(),start:""});case 4:return g.none()}})(t.getData().start).each((t=>{e.execCommand("mceListUpdate",!1,{attrs:{start:"1"===t.start?"":t.start},styles:{"list-style-type":t.listStyleType.getOr("")}})})),t.close()}})},Mn=(e,t)=>()=>{const n=mt(e);return l(n)&&n.nodeName===t},In=e=>{e.addCommand("mceListProps",(()=>{Pn(e)}))},Rn=e=>{e.on("BeforeExecCommand",(t=>{const n=t.command.toLowerCase();"indent"===n?Gt(e):"outdent"===n&&Jt(e)})),e.addCommand("InsertUnorderedList",((t,n)=>{yn(e,"UL",n)})),e.addCommand("InsertOrderedList",((t,n)=>{yn(e,"OL",n)})),e.addCommand("InsertDefinitionList",((t,n)=>{yn(e,"DL",n)})),e.addCommand("RemoveList",(()=>{Xt(e)})),In(e),e.addCommand("mceListUpdate",((t,n)=>{r(n)&&((e,t)=>{const n=mt(e);null===n||St(e,n)||e.undoManager.transact((()=>{r(t.styles)&&e.dom.setStyles(n,t.styles),r(t.attrs)&&Oe(t.attrs,((t,o)=>e.dom.setAttrib(n,o,t)))}))})(e,n)})),e.addQueryStateHandler("InsertUnorderedList",Mn(e,"UL")),e.addQueryStateHandler("InsertOrderedList",Mn(e,"OL")),e.addQueryStateHandler("InsertDefinitionList",Mn(e,"DL"))};var Un=tinymce.util.Tools.resolve("tinymce.html.Node");const _n=e=>3===e.type,$n=e=>0===e.length,Hn=e=>{const t=(t,n)=>{const o=Un.create("li");S(t,(e=>o.append(e))),n?e.insert(o,n,!0):e.append(o)},n=D(e.children(),((e,n)=>_n(n)?[...e,n]:$n(e)||_n(n)?e:(t(e,n),[])),[]);$n(n)||t(n)},Fn=e=>{Je(e)&&(e=>{e.on("keydown",(t=>{t.keyCode!==Le.TAB||Le.metaKeyPressed(t)||e.undoManager.transact((()=>{(t.shiftKey?Jt(e):Gt(e))&&t.preventDefault()}))}))})(e),(e=>{e.on("ExecCommand",(t=>{const n=t.command.toLowerCase();"delete"!==n&&"forwarddelete"!==n||!An(e)||Cn(e.dom,e.getBody())})),e.on("keydown",(t=>{t.keyCode===Le.BACKSPACE?En(e,!1)&&t.preventDefault():t.keyCode===Le.DELETE&&En(e,!0)&&t.preventDefault()}))})(e)},Vn=(e,t)=>n=>(n.setEnabled(e.selection.isEditable()),Lt(e,(o=>{n.setActive(bt(o.parents,t)),n.setEnabled(!St(e,o.element)&&e.selection.isEditable())}))),jn=(e,t)=>n=>Lt(e,(o=>n.setEnabled(bt(o.parents,t)&&!St(e,o.element))));e.add("lists",(e=>((e=>{(0,e.options.register)("lists_indent_on_tab",{processor:"boolean",default:!0})})(e),(e=>{e.on("PreInit",(()=>{const{parser:t}=e;t.addNodeFilter("ul,ol",(e=>S(e,Hn)))}))})(e),e.hasPlugin("rtc",!0)?In(e):(Fn(e),Rn(e)),(e=>{const t=t=>()=>e.execCommand(t);e.hasPlugin("advlist")||(e.ui.registry.addToggleButton("numlist",{icon:"ordered-list",active:!1,tooltip:"Numbered list",onAction:t("InsertOrderedList"),onSetup:Vn(e,"OL")}),e.ui.registry.addToggleButton("bullist",{icon:"unordered-list",active:!1,tooltip:"Bullet list",onAction:t("InsertUnorderedList"),onSetup:Vn(e,"UL")}))})(e),(e=>{const t={text:"List properties...",icon:"ordered-list",onAction:()=>e.execCommand("mceListProps"),onSetup:jn(e,"OL")};e.ui.registry.addMenuItem("listprops",t),e.ui.registry.addContextMenu("lists",{update:t=>{const n=mt(e,t);return He(n)?["listprops"]:[]}})})(e),(e=>({backspaceDelete:t=>{En(e,t)}}))(e))))}()),e}export{n as __require};
2
+ //# sourceMappingURL=plugin.mjs.map