@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/codesample/plugin.js"],"sourcesContent":["/**\n * TinyMCE version 6.8.5 (TBD)\n */\n\n(function () {\n 'use strict';\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n\n const noop = () => {\n };\n const constant = value => {\n return () => {\n return value;\n };\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 get$1 = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get$1(xs, 0);\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n const Global = typeof window !== 'undefined' ? window : Function('return this;')();\n\n const prismjs = function (global, module, exports) {\n const oldprism = window.Prism;\n window.Prism = { manual: true };\n var _self = typeof window !== 'undefined' ? window : typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ? self : {};\n var Prism = function (_self) {\n var lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n var uniqueId = 0;\n var plainTextGrammar = {};\n var _ = {\n manual: _self.Prism && _self.Prism.manual,\n disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n util: {\n encode: function encode(tokens) {\n if (tokens instanceof Token) {\n return new Token(tokens.type, encode(tokens.content), tokens.alias);\n } else if (Array.isArray(tokens)) {\n return tokens.map(encode);\n } else {\n return tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\\u00a0/g, ' ');\n }\n },\n type: function (o) {\n return Object.prototype.toString.call(o).slice(8, -1);\n },\n objId: function (obj) {\n if (!obj['__id']) {\n Object.defineProperty(obj, '__id', { value: ++uniqueId });\n }\n return obj['__id'];\n },\n clone: function deepClone(o, visited) {\n visited = visited || {};\n var clone;\n var id;\n switch (_.util.type(o)) {\n case 'Object':\n id = _.util.objId(o);\n if (visited[id]) {\n return visited[id];\n }\n clone = {};\n visited[id] = clone;\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited);\n }\n }\n return clone;\n case 'Array':\n id = _.util.objId(o);\n if (visited[id]) {\n return visited[id];\n }\n clone = [];\n visited[id] = clone;\n o.forEach(function (v, i) {\n clone[i] = deepClone(v, visited);\n });\n return clone;\n default:\n return o;\n }\n },\n getLanguage: function (element) {\n while (element) {\n var m = lang.exec(element.className);\n if (m) {\n return m[1].toLowerCase();\n }\n element = element.parentElement;\n }\n return 'none';\n },\n setLanguage: function (element, language) {\n element.className = element.className.replace(RegExp(lang, 'gi'), '');\n element.classList.add('language-' + language);\n },\n currentScript: function () {\n if (typeof document === 'undefined') {\n return null;\n }\n if ('currentScript' in document && 1 < 2) {\n return document.currentScript;\n }\n try {\n throw new Error();\n } catch (err) {\n var src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n if (src) {\n var scripts = document.getElementsByTagName('script');\n for (var i in scripts) {\n if (scripts[i].src == src) {\n return scripts[i];\n }\n }\n }\n return null;\n }\n },\n isActive: function (element, className, defaultActivation) {\n var no = 'no-' + className;\n while (element) {\n var classList = element.classList;\n if (classList.contains(className)) {\n return true;\n }\n if (classList.contains(no)) {\n return false;\n }\n element = element.parentElement;\n }\n return !!defaultActivation;\n }\n },\n languages: {\n plain: plainTextGrammar,\n plaintext: plainTextGrammar,\n text: plainTextGrammar,\n txt: plainTextGrammar,\n extend: function (id, redef) {\n var lang = _.util.clone(_.languages[id]);\n for (var key in redef) {\n lang[key] = redef[key];\n }\n return lang;\n },\n insertBefore: function (inside, before, insert, root) {\n root = root || _.languages;\n var grammar = root[inside];\n var ret = {};\n for (var token in grammar) {\n if (grammar.hasOwnProperty(token)) {\n if (token == before) {\n for (var newToken in insert) {\n if (insert.hasOwnProperty(newToken)) {\n ret[newToken] = insert[newToken];\n }\n }\n }\n if (!insert.hasOwnProperty(token)) {\n ret[token] = grammar[token];\n }\n }\n }\n var old = root[inside];\n root[inside] = ret;\n _.languages.DFS(_.languages, function (key, value) {\n if (value === old && key != inside) {\n this[key] = ret;\n }\n });\n return ret;\n },\n DFS: function DFS(o, callback, type, visited) {\n visited = visited || {};\n var objId = _.util.objId;\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n callback.call(o, i, o[i], type || i);\n var property = o[i];\n var propertyType = _.util.type(property);\n if (propertyType === 'Object' && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, null, visited);\n } else if (propertyType === 'Array' && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, i, visited);\n }\n }\n }\n }\n },\n plugins: {},\n highlightAll: function (async, callback) {\n _.highlightAllUnder(document, async, callback);\n },\n highlightAllUnder: function (container, async, callback) {\n var env = {\n callback: callback,\n container: container,\n selector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n };\n _.hooks.run('before-highlightall', env);\n env.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n _.hooks.run('before-all-elements-highlight', env);\n for (var i = 0, element; element = env.elements[i++];) {\n _.highlightElement(element, async === true, env.callback);\n }\n },\n highlightElement: function (element, async, callback) {\n var language = _.util.getLanguage(element);\n var grammar = _.languages[language];\n _.util.setLanguage(element, language);\n var parent = element.parentElement;\n if (parent && parent.nodeName.toLowerCase() === 'pre') {\n _.util.setLanguage(parent, language);\n }\n var code = element.textContent;\n var env = {\n element: element,\n language: language,\n grammar: grammar,\n code: code\n };\n function insertHighlightedCode(highlightedCode) {\n env.highlightedCode = highlightedCode;\n _.hooks.run('before-insert', env);\n env.element.innerHTML = env.highlightedCode;\n _.hooks.run('after-highlight', env);\n _.hooks.run('complete', env);\n callback && callback.call(env.element);\n }\n _.hooks.run('before-sanity-check', env);\n parent = env.element.parentElement;\n if (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n parent.setAttribute('tabindex', '0');\n }\n if (!env.code) {\n _.hooks.run('complete', env);\n callback && callback.call(env.element);\n return;\n }\n _.hooks.run('before-highlight', env);\n if (!env.grammar) {\n insertHighlightedCode(_.util.encode(env.code));\n return;\n }\n if (async && _self.Worker) {\n var worker = new Worker(_.filename);\n worker.onmessage = function (evt) {\n insertHighlightedCode(evt.data);\n };\n worker.postMessage(JSON.stringify({\n language: env.language,\n code: env.code,\n immediateClose: true\n }));\n } else {\n insertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n }\n },\n highlight: function (text, grammar, language) {\n var env = {\n code: text,\n grammar: grammar,\n language: language\n };\n _.hooks.run('before-tokenize', env);\n if (!env.grammar) {\n throw new Error('The language \"' + env.language + '\" has no grammar.');\n }\n env.tokens = _.tokenize(env.code, env.grammar);\n _.hooks.run('after-tokenize', env);\n return Token.stringify(_.util.encode(env.tokens), env.language);\n },\n tokenize: function (text, grammar) {\n var rest = grammar.rest;\n if (rest) {\n for (var token in rest) {\n grammar[token] = rest[token];\n }\n delete grammar.rest;\n }\n var tokenList = new LinkedList();\n addAfter(tokenList, tokenList.head, text);\n matchGrammar(text, tokenList, grammar, tokenList.head, 0);\n return toArray(tokenList);\n },\n hooks: {\n all: {},\n add: function (name, callback) {\n var hooks = _.hooks.all;\n hooks[name] = hooks[name] || [];\n hooks[name].push(callback);\n },\n run: function (name, env) {\n var callbacks = _.hooks.all[name];\n if (!callbacks || !callbacks.length) {\n return;\n }\n for (var i = 0, callback; callback = callbacks[i++];) {\n callback(env);\n }\n }\n },\n Token: Token\n };\n _self.Prism = _;\n function Token(type, content, alias, matchedStr) {\n this.type = type;\n this.content = content;\n this.alias = alias;\n this.length = (matchedStr || '').length | 0;\n }\n Token.stringify = function stringify(o, language) {\n if (typeof o == 'string') {\n return o;\n }\n if (Array.isArray(o)) {\n var s = '';\n o.forEach(function (e) {\n s += stringify(e, language);\n });\n return s;\n }\n var env = {\n type: o.type,\n content: stringify(o.content, language),\n tag: 'span',\n classes: [\n 'token',\n o.type\n ],\n attributes: {},\n language: language\n };\n var aliases = o.alias;\n if (aliases) {\n if (Array.isArray(aliases)) {\n Array.prototype.push.apply(env.classes, aliases);\n } else {\n env.classes.push(aliases);\n }\n }\n _.hooks.run('wrap', env);\n var attributes = '';\n for (var name in env.attributes) {\n attributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '&quot;') + '\"';\n }\n return '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n };\n function matchPattern(pattern, pos, text, lookbehind) {\n pattern.lastIndex = pos;\n var match = pattern.exec(text);\n if (match && lookbehind && match[1]) {\n var lookbehindLength = match[1].length;\n match.index += lookbehindLength;\n match[0] = match[0].slice(lookbehindLength);\n }\n return match;\n }\n function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n for (var token in grammar) {\n if (!grammar.hasOwnProperty(token) || !grammar[token]) {\n continue;\n }\n var patterns = grammar[token];\n patterns = Array.isArray(patterns) ? patterns : [patterns];\n for (var j = 0; j < patterns.length; ++j) {\n if (rematch && rematch.cause == token + ',' + j) {\n return;\n }\n var patternObj = patterns[j];\n var inside = patternObj.inside;\n var lookbehind = !!patternObj.lookbehind;\n var greedy = !!patternObj.greedy;\n var alias = patternObj.alias;\n if (greedy && !patternObj.pattern.global) {\n var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n patternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n }\n var pattern = patternObj.pattern || patternObj;\n for (var currentNode = startNode.next, pos = startPos; currentNode !== tokenList.tail; pos += currentNode.value.length, currentNode = currentNode.next) {\n if (rematch && pos >= rematch.reach) {\n break;\n }\n var str = currentNode.value;\n if (tokenList.length > text.length) {\n return;\n }\n if (str instanceof Token) {\n continue;\n }\n var removeCount = 1;\n var match;\n if (greedy) {\n match = matchPattern(pattern, pos, text, lookbehind);\n if (!match || match.index >= text.length) {\n break;\n }\n var from = match.index;\n var to = match.index + match[0].length;\n var p = pos;\n p += currentNode.value.length;\n while (from >= p) {\n currentNode = currentNode.next;\n p += currentNode.value.length;\n }\n p -= currentNode.value.length;\n pos = p;\n if (currentNode.value instanceof Token) {\n continue;\n }\n for (var k = currentNode; k !== tokenList.tail && (p < to || typeof k.value === 'string'); k = k.next) {\n removeCount++;\n p += k.value.length;\n }\n removeCount--;\n str = text.slice(pos, p);\n match.index -= pos;\n } else {\n match = matchPattern(pattern, 0, str, lookbehind);\n if (!match) {\n continue;\n }\n }\n var from = match.index;\n var matchStr = match[0];\n var before = str.slice(0, from);\n var after = str.slice(from + matchStr.length);\n var reach = pos + str.length;\n if (rematch && reach > rematch.reach) {\n rematch.reach = reach;\n }\n var removeFrom = currentNode.prev;\n if (before) {\n removeFrom = addAfter(tokenList, removeFrom, before);\n pos += before.length;\n }\n removeRange(tokenList, removeFrom, removeCount);\n var wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n currentNode = addAfter(tokenList, removeFrom, wrapped);\n if (after) {\n addAfter(tokenList, currentNode, after);\n }\n if (removeCount > 1) {\n var nestedRematch = {\n cause: token + ',' + j,\n reach: reach\n };\n matchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n if (rematch && nestedRematch.reach > rematch.reach) {\n rematch.reach = nestedRematch.reach;\n }\n }\n }\n }\n }\n }\n function LinkedList() {\n var head = {\n value: null,\n prev: null,\n next: null\n };\n var tail = {\n value: null,\n prev: head,\n next: null\n };\n head.next = tail;\n this.head = head;\n this.tail = tail;\n this.length = 0;\n }\n function addAfter(list, node, value) {\n var next = node.next;\n var newNode = {\n value: value,\n prev: node,\n next: next\n };\n node.next = newNode;\n next.prev = newNode;\n list.length++;\n return newNode;\n }\n function removeRange(list, node, count) {\n var next = node.next;\n for (var i = 0; i < count && next !== list.tail; i++) {\n next = next.next;\n }\n node.next = next;\n next.prev = node;\n list.length -= i;\n }\n function toArray(list) {\n var array = [];\n var node = list.head.next;\n while (node !== list.tail) {\n array.push(node.value);\n node = node.next;\n }\n return array;\n }\n if (!_self.document) {\n if (!_self.addEventListener) {\n return _;\n }\n if (!_.disableWorkerMessageHandler) {\n _self.addEventListener('message', function (evt) {\n var message = JSON.parse(evt.data);\n var lang = message.language;\n var code = message.code;\n var immediateClose = message.immediateClose;\n _self.postMessage(_.highlight(code, _.languages[lang], lang));\n if (immediateClose) {\n _self.close();\n }\n }, false);\n }\n return _;\n }\n var script = _.util.currentScript();\n if (script) {\n _.filename = script.src;\n if (script.hasAttribute('data-manual')) {\n _.manual = true;\n }\n }\n function highlightAutomaticallyCallback() {\n if (!_.manual) {\n _.highlightAll();\n }\n }\n if (!_.manual) {\n var readyState = document.readyState;\n if (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n document.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n } else {\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(highlightAutomaticallyCallback);\n } else {\n window.setTimeout(highlightAutomaticallyCallback, 16);\n }\n }\n }\n return _;\n }(_self);\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Prism;\n }\n if (typeof global !== 'undefined') {\n global.Prism = Prism;\n }\n Prism.languages.clike = {\n 'comment': [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n 'string': {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n lookbehind: true,\n inside: { 'punctuation': /[.\\\\]/ }\n },\n 'keyword': /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n 'boolean': /\\b(?:false|true)\\b/,\n 'function': /\\b\\w+(?=\\()/,\n 'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n 'operator': /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n 'punctuation': /[{}[\\];(),.:]/\n };\n (function (Prism) {\n function getPlaceholder(language, index) {\n return '___' + language.toUpperCase() + index + '___';\n }\n Object.defineProperties(Prism.languages['markup-templating'] = {}, {\n buildPlaceholders: {\n value: function (env, language, placeholderPattern, replaceFilter) {\n if (env.language !== language) {\n return;\n }\n var tokenStack = env.tokenStack = [];\n env.code = env.code.replace(placeholderPattern, function (match) {\n if (typeof replaceFilter === 'function' && !replaceFilter(match)) {\n return match;\n }\n var i = tokenStack.length;\n var placeholder;\n while (env.code.indexOf(placeholder = getPlaceholder(language, i)) !== -1) {\n ++i;\n }\n tokenStack[i] = match;\n return placeholder;\n });\n env.grammar = Prism.languages.markup;\n }\n },\n tokenizePlaceholders: {\n value: function (env, language) {\n if (env.language !== language || !env.tokenStack) {\n return;\n }\n env.grammar = Prism.languages[language];\n var j = 0;\n var keys = Object.keys(env.tokenStack);\n function walkTokens(tokens) {\n for (var i = 0; i < tokens.length; i++) {\n if (j >= keys.length) {\n break;\n }\n var token = tokens[i];\n if (typeof token === 'string' || token.content && typeof token.content === 'string') {\n var k = keys[j];\n var t = env.tokenStack[k];\n var s = typeof token === 'string' ? token : token.content;\n var placeholder = getPlaceholder(language, k);\n var index = s.indexOf(placeholder);\n if (index > -1) {\n ++j;\n var before = s.substring(0, index);\n var middle = new Prism.Token(language, Prism.tokenize(t, env.grammar), 'language-' + language, t);\n var after = s.substring(index + placeholder.length);\n var replacement = [];\n if (before) {\n replacement.push.apply(replacement, walkTokens([before]));\n }\n replacement.push(middle);\n if (after) {\n replacement.push.apply(replacement, walkTokens([after]));\n }\n if (typeof token === 'string') {\n tokens.splice.apply(tokens, [\n i,\n 1\n ].concat(replacement));\n } else {\n token.content = replacement;\n }\n }\n } else if (token.content) {\n walkTokens(token.content);\n }\n }\n return tokens;\n }\n walkTokens(env.tokens);\n }\n }\n });\n }(Prism));\n Prism.languages.c = Prism.languages.extend('clike', {\n 'comment': {\n pattern: /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n 'string': {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/,\n lookbehind: true\n },\n 'keyword': /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/,\n 'function': /\\b[a-z_]\\w*(?=\\s*\\()/i,\n 'number': /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n 'operator': />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/\n });\n Prism.languages.insertBefore('c', 'string', {\n 'char': {\n pattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/,\n greedy: true\n }\n });\n Prism.languages.insertBefore('c', 'string', {\n 'macro': {\n pattern: /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n greedy: true,\n alias: 'property',\n inside: {\n 'string': [\n {\n pattern: /^(#\\s*include\\s*)<[^>]+>/,\n lookbehind: true\n },\n Prism.languages.c['string']\n ],\n 'char': Prism.languages.c['char'],\n 'comment': Prism.languages.c['comment'],\n 'macro-name': [\n {\n pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i,\n lookbehind: true\n },\n {\n pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i,\n lookbehind: true,\n alias: 'function'\n }\n ],\n 'directive': {\n pattern: /^(#\\s*)[a-z]+/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'directive-hash': /^#/,\n 'punctuation': /##|\\\\(?=[\\r\\n])/,\n 'expression': {\n pattern: /\\S[\\s\\S]*/,\n inside: Prism.languages.c\n }\n }\n }\n });\n Prism.languages.insertBefore('c', 'function', { 'constant': /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/ });\n delete Prism.languages.c['boolean'];\n (function (Prism) {\n var keyword = /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/;\n var modName = /\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b/.source.replace(/<keyword>/g, function () {\n return keyword.source;\n });\n Prism.languages.cpp = Prism.languages.extend('c', {\n 'class-name': [\n {\n pattern: RegExp(/(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(/<keyword>/g, function () {\n return keyword.source;\n })),\n lookbehind: true\n },\n /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/,\n /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i,\n /\\b\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/\n ],\n 'keyword': keyword,\n 'number': {\n pattern: /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i,\n greedy: true\n },\n 'operator': />>=?|<<=?|->|--|\\+\\+|&&|\\|\\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/,\n 'boolean': /\\b(?:false|true)\\b/\n });\n Prism.languages.insertBefore('cpp', 'string', {\n 'module': {\n pattern: RegExp(/(\\b(?:import|module)\\s+)/.source + '(?:' + /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source + '|' + /<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>/.source.replace(/<mod-name>/g, function () {\n return modName;\n }) + ')'),\n lookbehind: true,\n greedy: true,\n inside: {\n 'string': /^[<\"][\\s\\S]+/,\n 'operator': /:/,\n 'punctuation': /\\./\n }\n },\n 'raw-string': {\n pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,\n alias: 'string',\n greedy: true\n }\n });\n Prism.languages.insertBefore('cpp', 'keyword', {\n 'generic-function': {\n pattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*<(?:[^<>]|<[^<>]*>)*>(?=\\s*\\()/i,\n inside: {\n 'function': /^\\w+/,\n 'generic': {\n pattern: /<[\\s\\S]+/,\n alias: 'class-name',\n inside: Prism.languages.cpp\n }\n }\n }\n });\n Prism.languages.insertBefore('cpp', 'operator', {\n 'double-colon': {\n pattern: /::/,\n alias: 'punctuation'\n }\n });\n Prism.languages.insertBefore('cpp', 'class-name', {\n 'base-clause': {\n pattern: /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/,\n lookbehind: true,\n greedy: true,\n inside: Prism.languages.extend('cpp', {})\n }\n });\n Prism.languages.insertBefore('inside', 'double-colon', { 'class-name': /\\b[a-z_]\\w*\\b(?!\\s*::)/i }, Prism.languages.cpp['base-clause']);\n }(Prism));\n (function (Prism) {\n function replace(pattern, replacements) {\n return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n return '(?:' + replacements[+index] + ')';\n });\n }\n function re(pattern, replacements, flags) {\n return RegExp(replace(pattern, replacements), flags || '');\n }\n function nested(pattern, depthLog2) {\n for (var i = 0; i < depthLog2; i++) {\n pattern = pattern.replace(/<<self>>/g, function () {\n return '(?:' + pattern + ')';\n });\n }\n return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]');\n }\n var keywordKinds = {\n type: 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void',\n typeDeclaration: 'class enum interface record struct',\n contextual: 'add alias and ascending async await by descending from(?=\\\\s*(?:\\\\w|$)) get global group into init(?=\\\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\\\s*{)',\n other: 'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield'\n };\n function keywordsToPattern(words) {\n return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b';\n }\n var typeDeclarationKeywords = keywordsToPattern(keywordKinds.typeDeclaration);\n var keywords = RegExp(keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.typeDeclaration + ' ' + keywordKinds.contextual + ' ' + keywordKinds.other));\n var nonTypeKeywords = keywordsToPattern(keywordKinds.typeDeclaration + ' ' + keywordKinds.contextual + ' ' + keywordKinds.other);\n var nonContextualKeywords = keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.typeDeclaration + ' ' + keywordKinds.other);\n var generic = nested(/<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>/.source, 2);\n var nestedRound = nested(/\\((?:[^()]|<<self>>)*\\)/.source, 2);\n var name = /@?\\b[A-Za-z_]\\w*\\b/.source;\n var genericName = replace(/<<0>>(?:\\s*<<1>>)?/.source, [\n name,\n generic\n ]);\n var identifier = replace(/(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*/.source, [\n nonTypeKeywords,\n genericName\n ]);\n var array = /\\[\\s*(?:,\\s*)*\\]/.source;\n var typeExpressionWithoutTuple = replace(/<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?/.source, [\n identifier,\n array\n ]);\n var tupleElement = replace(/[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source, [\n generic,\n nestedRound,\n array\n ]);\n var tuple = replace(/\\(<<0>>+(?:,<<0>>+)+\\)/.source, [tupleElement]);\n var typeExpression = replace(/(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?/.source, [\n tuple,\n identifier,\n array\n ]);\n var typeInside = {\n 'keyword': keywords,\n 'punctuation': /[<>()?,.:[\\]]/\n };\n var character = /'(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'/.source;\n var regularString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/.source;\n var verbatimString = /@\"(?:\"\"|\\\\[\\s\\S]|[^\\\\\"])*\"(?!\")/.source;\n Prism.languages.csharp = Prism.languages.extend('clike', {\n 'string': [\n {\n pattern: re(/(^|[^$\\\\])<<0>>/.source, [verbatimString]),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: re(/(^|[^@$\\\\])<<0>>/.source, [regularString]),\n lookbehind: true,\n greedy: true\n }\n ],\n 'class-name': [\n {\n pattern: re(/(\\busing\\s+static\\s+)<<0>>(?=\\s*;)/.source, [identifier]),\n lookbehind: true,\n inside: typeInside\n },\n {\n pattern: re(/(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)/.source, [\n name,\n typeExpression\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n pattern: re(/(\\busing\\s+)<<0>>(?=\\s*=)/.source, [name]),\n lookbehind: true\n },\n {\n pattern: re(/(\\b<<0>>\\s+)<<1>>/.source, [\n typeDeclarationKeywords,\n genericName\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n pattern: re(/(\\bcatch\\s*\\(\\s*)<<0>>/.source, [identifier]),\n lookbehind: true,\n inside: typeInside\n },\n {\n pattern: re(/(\\bwhere\\s+)<<0>>/.source, [name]),\n lookbehind: true\n },\n {\n pattern: re(/(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>/.source, [typeExpressionWithoutTuple]),\n lookbehind: true,\n inside: typeInside\n },\n {\n pattern: re(/\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))/.source, [\n typeExpression,\n nonContextualKeywords,\n name\n ]),\n inside: typeInside\n }\n ],\n 'keyword': keywords,\n 'number': /(?:\\b0(?:x[\\da-f_]*[\\da-f]|b[01_]*[01])|(?:\\B\\.\\d+(?:_+\\d+)*|\\b\\d+(?:_+\\d+)*(?:\\.\\d+(?:_+\\d+)*)?)(?:e[-+]?\\d+(?:_+\\d+)*)?)(?:[dflmu]|lu|ul)?\\b/i,\n 'operator': />>=?|<<=?|[-=]>|([-+&|])\\1|~|\\?\\?=?|[-+*/%&|^!=<>]=?/,\n 'punctuation': /\\?\\.?|::|[{}[\\];(),.:]/\n });\n Prism.languages.insertBefore('csharp', 'number', {\n 'range': {\n pattern: /\\.\\./,\n alias: 'operator'\n }\n });\n Prism.languages.insertBefore('csharp', 'punctuation', {\n 'named-parameter': {\n pattern: re(/([(,]\\s*)<<0>>(?=\\s*:)/.source, [name]),\n lookbehind: true,\n alias: 'punctuation'\n }\n });\n Prism.languages.insertBefore('csharp', 'class-name', {\n 'namespace': {\n pattern: re(/(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])/.source, [name]),\n lookbehind: true,\n inside: { 'punctuation': /\\./ }\n },\n 'type-expression': {\n pattern: re(/(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))/.source, [nestedRound]),\n lookbehind: true,\n alias: 'class-name',\n inside: typeInside\n },\n 'return-type': {\n pattern: re(/<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))/.source, [\n typeExpression,\n identifier\n ]),\n inside: typeInside,\n alias: 'class-name'\n },\n 'constructor-invocation': {\n pattern: re(/(\\bnew\\s+)<<0>>(?=\\s*[[({])/.source, [typeExpression]),\n lookbehind: true,\n inside: typeInside,\n alias: 'class-name'\n },\n 'generic-method': {\n pattern: re(/<<0>>\\s*<<1>>(?=\\s*\\()/.source, [\n name,\n generic\n ]),\n inside: {\n 'function': re(/^<<0>>/.source, [name]),\n 'generic': {\n pattern: RegExp(generic),\n alias: 'class-name',\n inside: typeInside\n }\n }\n },\n 'type-list': {\n pattern: re(/\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))/.source, [\n typeDeclarationKeywords,\n genericName,\n name,\n typeExpression,\n keywords.source,\n nestedRound,\n /\\bnew\\s*\\(\\s*\\)/.source\n ]),\n lookbehind: true,\n inside: {\n 'record-arguments': {\n pattern: re(/(^(?!new\\s*\\()<<0>>\\s*)<<1>>/.source, [\n genericName,\n nestedRound\n ]),\n lookbehind: true,\n greedy: true,\n inside: Prism.languages.csharp\n },\n 'keyword': keywords,\n 'class-name': {\n pattern: RegExp(typeExpression),\n greedy: true,\n inside: typeInside\n },\n 'punctuation': /[,()]/\n }\n },\n 'preprocessor': {\n pattern: /(^[\\t ]*)#.*/m,\n lookbehind: true,\n alias: 'property',\n inside: {\n 'directive': {\n pattern: /(#)\\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\\b/,\n lookbehind: true,\n alias: 'keyword'\n }\n }\n }\n });\n var regularStringOrCharacter = regularString + '|' + character;\n var regularStringCharacterOrComment = replace(/\\/(?![*/])|\\/\\/[^\\r\\n]*[\\r\\n]|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>/.source, [regularStringOrCharacter]);\n var roundExpression = nested(replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [regularStringCharacterOrComment]), 2);\n var attrTarget = /\\b(?:assembly|event|field|method|module|param|property|return|type)\\b/.source;\n var attr = replace(/<<0>>(?:\\s*\\(<<1>>*\\))?/.source, [\n identifier,\n roundExpression\n ]);\n Prism.languages.insertBefore('csharp', 'class-name', {\n 'attribute': {\n pattern: re(/((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])/.source, [\n attrTarget,\n attr\n ]),\n lookbehind: true,\n greedy: true,\n inside: {\n 'target': {\n pattern: re(/^<<0>>(?=\\s*:)/.source, [attrTarget]),\n alias: 'keyword'\n },\n 'attribute-arguments': {\n pattern: re(/\\(<<0>>*\\)/.source, [roundExpression]),\n inside: Prism.languages.csharp\n },\n 'class-name': {\n pattern: RegExp(identifier),\n inside: { 'punctuation': /\\./ }\n },\n 'punctuation': /[:,]/\n }\n }\n });\n var formatString = /:[^}\\r\\n]+/.source;\n var mInterpolationRound = nested(replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [regularStringCharacterOrComment]), 2);\n var mInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n mInterpolationRound,\n formatString\n ]);\n var sInterpolationRound = nested(replace(/[^\"'/()]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>|\\(<<self>>*\\)/.source, [regularStringOrCharacter]), 2);\n var sInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n sInterpolationRound,\n formatString\n ]);\n function createInterpolationInside(interpolation, interpolationRound) {\n return {\n 'interpolation': {\n pattern: re(/((?:^|[^{])(?:\\{\\{)*)<<0>>/.source, [interpolation]),\n lookbehind: true,\n inside: {\n 'format-string': {\n pattern: re(/(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)/.source, [\n interpolationRound,\n formatString\n ]),\n lookbehind: true,\n inside: { 'punctuation': /^:/ }\n },\n 'punctuation': /^\\{|\\}$/,\n 'expression': {\n pattern: /[\\s\\S]+/,\n alias: 'language-csharp',\n inside: Prism.languages.csharp\n }\n }\n },\n 'string': /[\\s\\S]+/\n };\n }\n Prism.languages.insertBefore('csharp', 'string', {\n 'interpolation-string': [\n {\n pattern: re(/(^|[^\\\\])(?:\\$@|@\\$)\"(?:\"\"|\\\\[\\s\\S]|\\{\\{|<<0>>|[^\\\\{\"])*\"/.source, [mInterpolation]),\n lookbehind: true,\n greedy: true,\n inside: createInterpolationInside(mInterpolation, mInterpolationRound)\n },\n {\n pattern: re(/(^|[^@\\\\])\\$\"(?:\\\\.|\\{\\{|<<0>>|[^\\\\\"{])*\"/.source, [sInterpolation]),\n lookbehind: true,\n greedy: true,\n inside: createInterpolationInside(sInterpolation, sInterpolationRound)\n }\n ],\n 'char': {\n pattern: RegExp(character),\n greedy: true\n }\n });\n Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp;\n }(Prism));\n (function (Prism) {\n var string = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/;\n Prism.languages.css = {\n 'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n 'atrule': {\n pattern: RegExp('@[\\\\w-](?:' + /[^;{\\s\"']|\\s+(?!\\s)/.source + '|' + string.source + ')*?' + /(?:;|(?=\\s*\\{))/.source),\n inside: {\n 'rule': /^@[\\w-]+/,\n 'selector-function-argument': {\n pattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n lookbehind: true,\n alias: 'selector'\n },\n 'keyword': {\n pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n lookbehind: true\n }\n }\n },\n 'url': {\n pattern: RegExp('\\\\burl\\\\((?:' + string.source + '|' + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + ')\\\\)', 'i'),\n greedy: true,\n inside: {\n 'function': /^url/i,\n 'punctuation': /^\\(|\\)$/,\n 'string': {\n pattern: RegExp('^' + string.source + '$'),\n alias: 'url'\n }\n }\n },\n 'selector': {\n pattern: RegExp('(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' + string.source + ')*(?=\\\\s*\\\\{)'),\n lookbehind: true\n },\n 'string': {\n pattern: string,\n greedy: true\n },\n 'property': {\n pattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n lookbehind: true\n },\n 'important': /!important\\b/i,\n 'function': {\n pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n lookbehind: true\n },\n 'punctuation': /[(){};:,]/\n };\n Prism.languages.css['atrule'].inside.rest = Prism.languages.css;\n var markup = Prism.languages.markup;\n if (markup) {\n markup.tag.addInlined('style', 'css');\n markup.tag.addAttribute('style', 'css');\n }\n }(Prism));\n (function (Prism) {\n var keywords = /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\\s*[(){}[\\]<>=%~.:,;?+\\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/;\n var classNamePrefix = /(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/.source;\n var className = {\n pattern: RegExp(/(^|[^\\w.])/.source + classNamePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n lookbehind: true,\n inside: {\n 'namespace': {\n pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n inside: { 'punctuation': /\\./ }\n },\n 'punctuation': /\\./\n }\n };\n Prism.languages.java = Prism.languages.extend('clike', {\n 'string': {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': [\n className,\n {\n pattern: RegExp(/(^|[^\\w.])/.source + classNamePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)/.source),\n lookbehind: true,\n inside: className.inside\n },\n {\n pattern: RegExp(/(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)/.source + classNamePrefix + /[A-Z]\\w*\\b/.source),\n lookbehind: true,\n inside: className.inside\n }\n ],\n 'keyword': keywords,\n 'function': [\n Prism.languages.clike.function,\n {\n pattern: /(::\\s*)[a-z_]\\w*/,\n lookbehind: true\n }\n ],\n 'number': /\\b0b[01][01_]*L?\\b|\\b0x(?:\\.[\\da-f_p+-]+|[\\da-f_]+(?:\\.[\\da-f_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n 'operator': {\n pattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\\+\\+|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,\n lookbehind: true\n },\n 'constant': /\\b[A-Z][A-Z_\\d]+\\b/\n });\n Prism.languages.insertBefore('java', 'string', {\n 'triple-quoted-string': {\n pattern: /\"\"\"[ \\t]*[\\r\\n](?:(?:\"|\"\")?(?:\\\\.|[^\"\\\\]))*\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n 'char': {\n pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){1,6}'/,\n greedy: true\n }\n });\n Prism.languages.insertBefore('java', 'class-name', {\n 'annotation': {\n pattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'generics': {\n pattern: /<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&))*>)*>)*>)*>/,\n inside: {\n 'class-name': className,\n 'keyword': keywords,\n 'punctuation': /[<>(),.:]/,\n 'operator': /[?&|]/\n }\n },\n 'import': [\n {\n pattern: RegExp(/(\\bimport\\s+)/.source + classNamePrefix + /(?:[A-Z]\\w*|\\*)(?=\\s*;)/.source),\n lookbehind: true,\n inside: {\n 'namespace': className.inside.namespace,\n 'punctuation': /\\./,\n 'operator': /\\*/,\n 'class-name': /\\w+/\n }\n },\n {\n pattern: RegExp(/(\\bimport\\s+static\\s+)/.source + classNamePrefix + /(?:\\w+|\\*)(?=\\s*;)/.source),\n lookbehind: true,\n alias: 'static',\n inside: {\n 'namespace': className.inside.namespace,\n 'static': /\\b\\w+$/,\n 'punctuation': /\\./,\n 'operator': /\\*/,\n 'class-name': /\\w+/\n }\n }\n ],\n 'namespace': {\n pattern: RegExp(/(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?/.source.replace(/<keyword>/g, function () {\n return keywords.source;\n })),\n lookbehind: true,\n inside: { 'punctuation': /\\./ }\n }\n });\n }(Prism));\n Prism.languages.javascript = Prism.languages.extend('clike', {\n 'class-name': [\n Prism.languages.clike['class-name'],\n {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n lookbehind: true\n }\n ],\n 'keyword': [\n {\n pattern: /((?:^|\\})\\s*)catch\\b/,\n lookbehind: true\n },\n {\n pattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n lookbehind: true\n }\n ],\n 'function': /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n 'number': {\n pattern: RegExp(/(^|[^\\w$])/.source + '(?:' + (/NaN|Infinity/.source + '|' + /0[bB][01]+(?:_[01]+)*n?/.source + '|' + /0[oO][0-7]+(?:_[0-7]+)*n?/.source + '|' + /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source + '|' + /\\d+(?:_\\d+)*n/.source + '|' + /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source) + ')' + /(?![\\w$])/.source),\n lookbehind: true\n },\n 'operator': /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n });\n Prism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/;\n Prism.languages.insertBefore('javascript', 'keyword', {\n 'regex': {\n pattern: RegExp(/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source + /\\//.source + '(?:' + /(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source + '|' + /(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source + ')' + /(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^\\/|\\/$/,\n 'regex-flags': /^[a-z]+$/\n }\n },\n 'function-variable': {\n pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n },\n 'parameter': [\n {\n pattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n ],\n 'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n });\n Prism.languages.insertBefore('javascript', 'string', {\n 'hashbang': {\n pattern: /^#!.*/,\n greedy: true,\n alias: 'comment'\n },\n 'template-string': {\n pattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n 'interpolation': {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.javascript\n }\n },\n 'string': /[\\s\\S]+/\n }\n },\n 'string-property': {\n pattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n }\n });\n Prism.languages.insertBefore('javascript', 'operator', {\n 'literal-property': {\n pattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n lookbehind: true,\n alias: 'property'\n }\n });\n if (Prism.languages.markup) {\n Prism.languages.markup.tag.addInlined('script', 'javascript');\n Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source, 'javascript');\n }\n Prism.languages.js = Prism.languages.javascript;\n Prism.languages.markup = {\n 'comment': {\n pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n greedy: true\n },\n 'prolog': {\n pattern: /<\\?[\\s\\S]+?\\?>/,\n greedy: true\n },\n 'doctype': {\n pattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n greedy: true,\n inside: {\n 'internal-subset': {\n pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n lookbehind: true,\n greedy: true,\n inside: null\n },\n 'string': {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n 'punctuation': /^<!|>$|[[\\]]/,\n 'doctype-tag': /^DOCTYPE/i,\n 'name': /[^\\s<>'\"]+/\n }\n },\n 'cdata': {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n greedy: true\n },\n 'tag': {\n pattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n greedy: true,\n inside: {\n 'tag': {\n pattern: /^<\\/?[^\\s>\\/]+/,\n inside: {\n 'punctuation': /^<\\/?/,\n 'namespace': /^[^\\s>\\/:]+:/\n }\n },\n 'special-attr': [],\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n inside: {\n 'punctuation': [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n {\n pattern: /^(\\s*)[\"']|[\"']$/,\n lookbehind: true\n }\n ]\n }\n },\n 'punctuation': /\\/?>/,\n 'attr-name': {\n pattern: /[^\\s>\\/]+/,\n inside: { 'namespace': /^[^\\s>\\/:]+:/ }\n }\n }\n },\n 'entity': [\n {\n pattern: /&[\\da-z]{1,8};/i,\n alias: 'named-entity'\n },\n /&#x?[\\da-f]{1,8};/i\n ]\n };\n Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = Prism.languages.markup['entity'];\n Prism.languages.markup['doctype'].inside['internal-subset'].inside = Prism.languages.markup;\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.replace(/&amp;/, '&');\n }\n });\n Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n value: function addInlined(tagName, lang) {\n var includedCdataInside = {};\n includedCdataInside['language-' + lang] = {\n pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n lookbehind: true,\n inside: Prism.languages[lang]\n };\n includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i;\n var inside = {\n 'included-cdata': {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n inside: includedCdataInside\n }\n };\n inside['language-' + lang] = {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages[lang]\n };\n var def = {};\n def[tagName] = {\n pattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function () {\n return tagName;\n }), 'i'),\n lookbehind: true,\n greedy: true,\n inside: inside\n };\n Prism.languages.insertBefore('markup', 'cdata', def);\n }\n });\n Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n value: function (attrName, lang) {\n Prism.languages.markup.tag.inside['special-attr'].push({\n pattern: RegExp(/(^|[\"'\\s])/.source + '(?:' + attrName + ')' + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source, 'i'),\n lookbehind: true,\n inside: {\n 'attr-name': /^[^\\s=]+/,\n 'attr-value': {\n pattern: /=[\\s\\S]+/,\n inside: {\n 'value': {\n pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n lookbehind: true,\n alias: [\n lang,\n 'language-' + lang\n ],\n inside: Prism.languages[lang]\n },\n 'punctuation': [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n /\"|'/\n ]\n }\n }\n }\n });\n }\n });\n Prism.languages.html = Prism.languages.markup;\n Prism.languages.mathml = Prism.languages.markup;\n Prism.languages.svg = Prism.languages.markup;\n Prism.languages.xml = Prism.languages.extend('markup', {});\n Prism.languages.ssml = Prism.languages.xml;\n Prism.languages.atom = Prism.languages.xml;\n Prism.languages.rss = Prism.languages.xml;\n (function (Prism) {\n var comment = /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*|#(?!\\[).*/;\n var constant = [\n {\n pattern: /\\b(?:false|true)\\b/i,\n alias: 'boolean'\n },\n {\n pattern: /(::\\s*)\\b[a-z_]\\w*\\b(?!\\s*\\()/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\b(?:case|const)\\s+)\\b[a-z_]\\w*(?=\\s*[;=])/i,\n greedy: true,\n lookbehind: true\n },\n /\\b(?:null)\\b/i,\n /\\b[A-Z_][A-Z0-9_]*\\b(?!\\s*\\()/\n ];\n var number = /\\b0b[01]+(?:_[01]+)*\\b|\\b0o[0-7]+(?:_[0-7]+)*\\b|\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b|(?:\\b\\d+(?:_\\d+)*\\.?(?:\\d+(?:_\\d+)*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i;\n var operator = /<?=>|\\?\\?=?|\\.{3}|\\??->|[!=]=?=?|::|\\*\\*=?|--|\\+\\+|&&|\\|\\||<<|>>|[?~]|[/^|%*&<>.+-]=?/;\n var punctuation = /[{}\\[\\](),:;]/;\n Prism.languages.php = {\n 'delimiter': {\n pattern: /\\?>$|^<\\?(?:php(?=\\s)|=)?/i,\n alias: 'important'\n },\n 'comment': comment,\n 'variable': /\\$+(?:\\w+\\b|(?=\\{))/,\n 'package': {\n pattern: /(namespace\\s+|use\\s+(?:function\\s+)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n lookbehind: true,\n inside: { 'punctuation': /\\\\/ }\n },\n 'class-name-definition': {\n pattern: /(\\b(?:class|enum|interface|trait)\\s+)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n lookbehind: true,\n alias: 'class-name'\n },\n 'function-definition': {\n pattern: /(\\bfunction\\s+)[a-z_]\\w*(?=\\s*\\()/i,\n lookbehind: true,\n alias: 'function'\n },\n 'keyword': [\n {\n pattern: /(\\(\\s*)\\b(?:array|bool|boolean|float|int|integer|object|string)\\b(?=\\s*\\))/i,\n alias: 'type-casting',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([(,?]\\s*)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string)\\b(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|never|object|self|static|string|void)\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /\\b(?:array(?!\\s*\\()|bool|float|int|iterable|mixed|object|string|void)\\b/i,\n alias: 'type-declaration',\n greedy: true\n },\n {\n pattern: /(\\|\\s*)(?:false|null)\\b|\\b(?:false|null)(?=\\s*\\|)/i,\n alias: 'type-declaration',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /\\b(?:parent|self|static)(?=\\s*::)/i,\n alias: 'static-context',\n greedy: true\n },\n {\n pattern: /(\\byield\\s+)from\\b/i,\n lookbehind: true\n },\n /\\bclass\\b/i,\n {\n pattern: /((?:^|[^\\s>:]|(?:^|[^-])>|(?:^|[^:]):)\\s*)\\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\\b/i,\n lookbehind: true\n }\n ],\n 'argument-name': {\n pattern: /([(,]\\s*)\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n lookbehind: true\n },\n 'class-name': [\n {\n pattern: /(\\b(?:extends|implements|instanceof|new(?!\\s+self|\\s+static))\\s+|\\bcatch\\s*\\()\\b[a-z_]\\w*(?!\\\\)\\b/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\|\\s*)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /\\b[a-z_]\\w*(?!\\\\)\\b(?=\\s*\\|)/i,\n greedy: true\n },\n {\n pattern: /(\\|\\s*)(?:\\\\?\\b[a-z_]\\w*)+\\b/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n lookbehind: true,\n inside: { 'punctuation': /\\\\/ }\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+\\b(?=\\s*\\|)/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n inside: { 'punctuation': /\\\\/ }\n },\n {\n pattern: /(\\b(?:extends|implements|instanceof|new(?!\\s+self\\b|\\s+static\\b))\\s+|\\bcatch\\s*\\()(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n lookbehind: true,\n inside: { 'punctuation': /\\\\/ }\n },\n {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\$)/i,\n alias: 'type-declaration',\n greedy: true\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n alias: [\n 'class-name-fully-qualified',\n 'type-declaration'\n ],\n greedy: true,\n inside: { 'punctuation': /\\\\/ }\n },\n {\n pattern: /\\b[a-z_]\\w*(?=\\s*::)/i,\n alias: 'static-context',\n greedy: true\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*::)/i,\n alias: [\n 'class-name-fully-qualified',\n 'static-context'\n ],\n greedy: true,\n inside: { 'punctuation': /\\\\/ }\n },\n {\n pattern: /([(,?]\\s*)[a-z_]\\w*(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([(,?]\\s*)(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n alias: [\n 'class-name-fully-qualified',\n 'type-hint'\n ],\n greedy: true,\n lookbehind: true,\n inside: { 'punctuation': /\\\\/ }\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n alias: [\n 'class-name-fully-qualified',\n 'return-type'\n ],\n greedy: true,\n lookbehind: true,\n inside: { 'punctuation': /\\\\/ }\n }\n ],\n 'constant': constant,\n 'function': {\n pattern: /(^|[^\\\\\\w])\\\\?[a-z_](?:[\\w\\\\]*\\w)?(?=\\s*\\()/i,\n lookbehind: true,\n inside: { 'punctuation': /\\\\/ }\n },\n 'property': {\n pattern: /(->\\s*)\\w+/,\n lookbehind: true\n },\n 'number': number,\n 'operator': operator,\n 'punctuation': punctuation\n };\n var string_interpolation = {\n pattern: /\\{\\$(?:\\{(?:\\{[^{}]+\\}|[^{}]+)\\}|[^{}])+\\}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[[^\\r\\n\\[\\]]+\\]|->\\w+)?)/,\n lookbehind: true,\n inside: Prism.languages.php\n };\n var string = [\n {\n pattern: /<<<'([^']+)'[\\r\\n](?:.*[\\r\\n])*?\\1;/,\n alias: 'nowdoc-string',\n greedy: true,\n inside: {\n 'delimiter': {\n pattern: /^<<<'[^']+'|[a-z_]\\w*;$/i,\n alias: 'symbol',\n inside: { 'punctuation': /^<<<'?|[';]$/ }\n }\n }\n },\n {\n pattern: /<<<(?:\"([^\"]+)\"[\\r\\n](?:.*[\\r\\n])*?\\1;|([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\2;)/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n 'delimiter': {\n pattern: /^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,\n alias: 'symbol',\n inside: { 'punctuation': /^<<<\"?|[\";]$/ }\n },\n 'interpolation': string_interpolation\n }\n },\n {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n alias: 'backtick-quoted-string',\n greedy: true\n },\n {\n pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n alias: 'single-quoted-string',\n greedy: true\n },\n {\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n alias: 'double-quoted-string',\n greedy: true,\n inside: { 'interpolation': string_interpolation }\n }\n ];\n Prism.languages.insertBefore('php', 'variable', {\n 'string': string,\n 'attribute': {\n pattern: /#\\[(?:[^\"'\\/#]|\\/(?![*/])|\\/\\/.*$|#(?!\\[).*$|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*')+\\](?=\\s*[a-z$#])/im,\n greedy: true,\n inside: {\n 'attribute-content': {\n pattern: /^(#\\[)[\\s\\S]+(?=\\]$)/,\n lookbehind: true,\n inside: {\n 'comment': comment,\n 'string': string,\n 'attribute-class-name': [\n {\n pattern: /([^:]|^)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n alias: 'class-name',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([^:]|^)(?:\\\\?\\b[a-z_]\\w*)+/i,\n alias: [\n 'class-name',\n 'class-name-fully-qualified'\n ],\n greedy: true,\n lookbehind: true,\n inside: { 'punctuation': /\\\\/ }\n }\n ],\n 'constant': constant,\n 'number': number,\n 'operator': operator,\n 'punctuation': punctuation\n }\n },\n 'delimiter': {\n pattern: /^#\\[|\\]$/,\n alias: 'punctuation'\n }\n }\n }\n });\n Prism.hooks.add('before-tokenize', function (env) {\n if (!/<\\?/.test(env.code)) {\n return;\n }\n var phpPattern = /<\\?(?:[^\"'/#]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|(?:\\/\\/|#(?!\\[))(?:[^?\\n\\r]|\\?(?!>))*(?=$|\\?>|[\\r\\n])|#\\[|\\/\\*(?:[^*]|\\*(?!\\/))*(?:\\*\\/|$))*?(?:\\?>|$)/g;\n Prism.languages['markup-templating'].buildPlaceholders(env, 'php', phpPattern);\n });\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'php');\n });\n }(Prism));\n Prism.languages.python = {\n 'comment': {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true,\n greedy: true\n },\n 'string-interpolation': {\n pattern: /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n greedy: true,\n inside: {\n 'interpolation': {\n pattern: /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/,\n lookbehind: true,\n inside: {\n 'format-spec': {\n pattern: /(:)[^:(){}]+(?=\\}$)/,\n lookbehind: true\n },\n 'conversion-option': {\n pattern: /![sra](?=[:}]$)/,\n alias: 'punctuation'\n },\n rest: null\n }\n },\n 'string': /[\\s\\S]+/\n }\n },\n 'triple-quoted-string': {\n pattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n greedy: true,\n alias: 'string'\n },\n 'string': {\n pattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n greedy: true\n },\n 'function': {\n pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n lookbehind: true\n },\n 'class-name': {\n pattern: /(\\bclass\\s+)\\w+/i,\n lookbehind: true\n },\n 'decorator': {\n pattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m,\n lookbehind: true,\n alias: [\n 'annotation',\n 'punctuation'\n ],\n inside: { 'punctuation': /\\./ }\n },\n 'keyword': /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n 'builtin': /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n 'boolean': /\\b(?:False|None|True)\\b/,\n 'number': /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n 'operator': /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n 'punctuation': /[{}[\\];(),.:]/\n };\n Prism.languages.python['string-interpolation'].inside['interpolation'].inside.rest = Prism.languages.python;\n Prism.languages.py = Prism.languages.python;\n (function (Prism) {\n Prism.languages.ruby = Prism.languages.extend('clike', {\n 'comment': {\n pattern: /#.*|^=begin\\s[\\s\\S]*?^=end/m,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:class|module)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+|\\b[A-Z_]\\w*(?=\\s*\\.\\s*new\\b)/,\n lookbehind: true,\n inside: { 'punctuation': /[.\\\\]/ }\n },\n 'keyword': /\\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\\b/,\n 'operator': /\\.{2,3}|&\\.|===|<?=>|[!=]?~|(?:&&|\\|\\||<<|>>|\\*\\*|[+\\-*/%<>!^&|=])=?|[?:]/,\n 'punctuation': /[(){}[\\].,;]/\n });\n Prism.languages.insertBefore('ruby', 'operator', {\n 'double-colon': {\n pattern: /::/,\n alias: 'punctuation'\n }\n });\n var interpolation = {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)#\\{(?:[^{}]|\\{[^{}]*\\})*\\}/,\n lookbehind: true,\n inside: {\n 'content': {\n pattern: /^(#\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n 'delimiter': {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n }\n }\n };\n delete Prism.languages.ruby.function;\n var percentExpression = '(?:' + [\n /([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n /\\((?:[^()\\\\]|\\\\[\\s\\S]|\\((?:[^()\\\\]|\\\\[\\s\\S])*\\))*\\)/.source,\n /\\{(?:[^{}\\\\]|\\\\[\\s\\S]|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\})*\\}/.source,\n /\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S]|\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\])*\\]/.source,\n /<(?:[^<>\\\\]|\\\\[\\s\\S]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)*>/.source\n ].join('|') + ')';\n var symbolName = /(?:\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|(?:\\b[a-zA-Z_]\\w*|[^\\s\\0-\\x7F]+)[?!]?|\\$.)/.source;\n Prism.languages.insertBefore('ruby', 'keyword', {\n 'regex-literal': [\n {\n pattern: RegExp(/%r/.source + percentExpression + /[egimnosux]{0,6}/.source),\n greedy: true,\n inside: {\n 'interpolation': interpolation,\n 'regex': /[\\s\\S]+/\n }\n },\n {\n pattern: /(^|[^/])\\/(?!\\/)(?:\\[[^\\r\\n\\]]+\\]|\\\\.|[^[/\\\\\\r\\n])+\\/[egimnosux]{0,6}(?=\\s*(?:$|[\\r\\n,.;})#]))/,\n lookbehind: true,\n greedy: true,\n inside: {\n 'interpolation': interpolation,\n 'regex': /[\\s\\S]+/\n }\n }\n ],\n 'variable': /[@$]+[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n 'symbol': [\n {\n pattern: RegExp(/(^|[^:]):/.source + symbolName),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: RegExp(/([\\r\\n{(,][ \\t]*)/.source + symbolName + /(?=:(?!:))/.source),\n lookbehind: true,\n greedy: true\n }\n ],\n 'method-definition': {\n pattern: /(\\bdef\\s+)\\w+(?:\\s*\\.\\s*\\w+)?/,\n lookbehind: true,\n inside: {\n 'function': /\\b\\w+$/,\n 'keyword': /^self\\b/,\n 'class-name': /^\\w+/,\n 'punctuation': /\\./\n }\n }\n });\n Prism.languages.insertBefore('ruby', 'string', {\n 'string-literal': [\n {\n pattern: RegExp(/%[qQiIwWs]?/.source + percentExpression),\n greedy: true,\n inside: {\n 'interpolation': interpolation,\n 'string': /[\\s\\S]+/\n }\n },\n {\n pattern: /(\"|')(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\#\\r\\n])*\\1/,\n greedy: true,\n inside: {\n 'interpolation': interpolation,\n 'string': /[\\s\\S]+/\n }\n },\n {\n pattern: /<<[-~]?([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n 'delimiter': {\n pattern: /^<<[-~]?[a-z_]\\w*|\\b[a-z_]\\w*$/i,\n inside: {\n 'symbol': /\\b\\w+/,\n 'punctuation': /^<<[-~]?/\n }\n },\n 'interpolation': interpolation,\n 'string': /[\\s\\S]+/\n }\n },\n {\n pattern: /<<[-~]?'([a-z_]\\w*)'[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n 'delimiter': {\n pattern: /^<<[-~]?'[a-z_]\\w*'|\\b[a-z_]\\w*$/i,\n inside: {\n 'symbol': /\\b\\w+/,\n 'punctuation': /^<<[-~]?'|'$/\n }\n },\n 'string': /[\\s\\S]+/\n }\n }\n ],\n 'command-literal': [\n {\n pattern: RegExp(/%x/.source + percentExpression),\n greedy: true,\n inside: {\n 'interpolation': interpolation,\n 'command': {\n pattern: /[\\s\\S]+/,\n alias: 'string'\n }\n }\n },\n {\n pattern: /`(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|[^\\\\`#\\r\\n])*`/,\n greedy: true,\n inside: {\n 'interpolation': interpolation,\n 'command': {\n pattern: /[\\s\\S]+/,\n alias: 'string'\n }\n }\n }\n ]\n });\n delete Prism.languages.ruby.string;\n Prism.languages.insertBefore('ruby', 'number', {\n 'builtin': /\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\\b/,\n 'constant': /\\b[A-Z][A-Z0-9_]*(?:[?!]|\\b)/\n });\n Prism.languages.rb = Prism.languages.ruby;\n }(Prism));\n window.Prism = oldprism;\n return Prism;\n }(undefined, undefined);\n\n const option = name => editor => editor.options.get(name);\n const register$2 = editor => {\n const registerOption = editor.options.register;\n registerOption('codesample_languages', { processor: 'object[]' });\n registerOption('codesample_global_prismjs', {\n processor: 'boolean',\n default: false\n });\n };\n const getLanguages$1 = option('codesample_languages');\n const useGlobalPrismJS = option('codesample_global_prismjs');\n\n const get = editor => Global.Prism && useGlobalPrismJS(editor) ? Global.Prism : prismjs;\n\n const isCodeSample = elm => {\n return isNonNullable(elm) && elm.nodeName === 'PRE' && elm.className.indexOf('language-') !== -1;\n };\n\n const getSelectedCodeSample = editor => {\n const node = editor.selection ? editor.selection.getNode() : null;\n return isCodeSample(node) ? Optional.some(node) : Optional.none();\n };\n const insertCodeSample = (editor, language, code) => {\n const dom = editor.dom;\n editor.undoManager.transact(() => {\n const node = getSelectedCodeSample(editor);\n code = global$1.DOM.encode(code);\n return node.fold(() => {\n editor.insertContent('<pre id=\"__new\" class=\"language-' + language + '\">' + code + '</pre>');\n const newPre = dom.select('#__new')[0];\n dom.setAttrib(newPre, 'id', null);\n editor.selection.select(newPre);\n }, n => {\n dom.setAttrib(n, 'class', 'language-' + language);\n n.innerHTML = code;\n get(editor).highlightElement(n);\n editor.selection.select(n);\n });\n });\n };\n const getCurrentCode = editor => {\n const node = getSelectedCodeSample(editor);\n return node.bind(n => Optional.from(n.textContent)).getOr('');\n };\n\n const getLanguages = editor => {\n const defaultLanguages = [\n {\n text: 'HTML/XML',\n value: 'markup'\n },\n {\n text: 'JavaScript',\n value: 'javascript'\n },\n {\n text: 'CSS',\n value: 'css'\n },\n {\n text: 'PHP',\n value: 'php'\n },\n {\n text: 'Ruby',\n value: 'ruby'\n },\n {\n text: 'Python',\n value: 'python'\n },\n {\n text: 'Java',\n value: 'java'\n },\n {\n text: 'C',\n value: 'c'\n },\n {\n text: 'C#',\n value: 'csharp'\n },\n {\n text: 'C++',\n value: 'cpp'\n }\n ];\n const customLanguages = getLanguages$1(editor);\n return customLanguages ? customLanguages : defaultLanguages;\n };\n const getCurrentLanguage = (editor, fallback) => {\n const node = getSelectedCodeSample(editor);\n return node.fold(() => fallback, n => {\n const matches = n.className.match(/language-(\\w+)/);\n return matches ? matches[1] : fallback;\n });\n };\n\n const open = editor => {\n const languages = getLanguages(editor);\n const defaultLanguage = head(languages).fold(constant(''), l => l.value);\n const currentLanguage = getCurrentLanguage(editor, defaultLanguage);\n const currentCode = getCurrentCode(editor);\n editor.windowManager.open({\n title: 'Insert/Edit Code Sample',\n size: 'large',\n body: {\n type: 'panel',\n items: [\n {\n type: 'listbox',\n name: 'language',\n label: 'Language',\n items: languages\n },\n {\n type: 'textarea',\n name: 'code',\n label: 'Code view'\n }\n ]\n },\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 language: currentLanguage,\n code: currentCode\n },\n onSubmit: api => {\n const data = api.getData();\n insertCodeSample(editor, data.language, data.code);\n api.close();\n }\n });\n };\n\n const register$1 = editor => {\n editor.addCommand('codesample', () => {\n const node = editor.selection.getNode();\n if (editor.selection.isCollapsed() || isCodeSample(node)) {\n open(editor);\n } else {\n editor.formatter.toggle('code');\n }\n });\n };\n\n const blank = r => s => s.replace(r, '');\n const trim = blank(/^\\s+|\\s+$/g);\n\n var global = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n const setup = editor => {\n editor.on('PreProcess', e => {\n const dom = editor.dom;\n const pres = dom.select('pre[contenteditable=false]', e.node);\n global.each(global.grep(pres, isCodeSample), elm => {\n const code = elm.textContent;\n dom.setAttrib(elm, 'class', trim(dom.getAttrib(elm, 'class')));\n dom.setAttrib(elm, 'contentEditable', null);\n dom.setAttrib(elm, 'data-mce-highlighted', null);\n let child;\n while (child = elm.firstChild) {\n elm.removeChild(child);\n }\n const codeElm = dom.add(elm, 'code');\n codeElm.textContent = code;\n });\n });\n editor.on('SetContent', () => {\n const dom = editor.dom;\n const unprocessedCodeSamples = global.grep(dom.select('pre'), elm => {\n return isCodeSample(elm) && dom.getAttrib(elm, 'data-mce-highlighted') !== 'true';\n });\n if (unprocessedCodeSamples.length) {\n editor.undoManager.transact(() => {\n global.each(unprocessedCodeSamples, elm => {\n var _a;\n global.each(dom.select('br', elm), elm => {\n dom.replace(editor.getDoc().createTextNode('\\n'), elm);\n });\n elm.innerHTML = dom.encode((_a = elm.textContent) !== null && _a !== void 0 ? _a : '');\n get(editor).highlightElement(elm);\n dom.setAttrib(elm, 'data-mce-highlighted', true);\n elm.className = trim(elm.className);\n });\n });\n }\n });\n editor.on('PreInit', () => {\n editor.parser.addNodeFilter('pre', nodes => {\n var _a;\n for (let i = 0, l = nodes.length; i < l; i++) {\n const node = nodes[i];\n const isCodeSample = ((_a = node.attr('class')) !== null && _a !== void 0 ? _a : '').indexOf('language-') !== -1;\n if (isCodeSample) {\n node.attr('contenteditable', 'false');\n node.attr('data-mce-highlighted', 'false');\n }\n }\n });\n });\n };\n\n const onSetupEditable = (editor, onChanged = noop) => api => {\n const nodeChanged = () => {\n api.setEnabled(editor.selection.isEditable());\n onChanged(api);\n };\n editor.on('NodeChange', nodeChanged);\n nodeChanged();\n return () => {\n editor.off('NodeChange', nodeChanged);\n };\n };\n const isCodeSampleSelection = editor => {\n const node = editor.selection.getStart();\n return editor.dom.is(node, 'pre[class*=\"language-\"]');\n };\n const register = editor => {\n const onAction = () => editor.execCommand('codesample');\n editor.ui.registry.addToggleButton('codesample', {\n icon: 'code-sample',\n tooltip: 'Insert/edit code sample',\n onAction,\n onSetup: onSetupEditable(editor, api => {\n api.setActive(isCodeSampleSelection(editor));\n })\n });\n editor.ui.registry.addMenuItem('codesample', {\n text: 'Code sample...',\n icon: 'code-sample',\n onAction,\n onSetup: onSetupEditable(editor)\n });\n };\n\n var Plugin = () => {\n global$2.add('codesample', editor => {\n register$2(editor);\n setup(editor);\n register(editor);\n register$1(editor);\n editor.on('dblclick', ev => {\n if (isCodeSample(ev.target)) {\n open(editor);\n }\n });\n });\n };\n\n Plugin();\n\n})();\n"],"names":["global$2","tinymce","util","Tools","resolve","isNonNullable","a","isNullable","noop","Optional","constructor","tag","value","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","head","xs","i","length","get$1","global$1","Global","window","Function","prismjs","global","module","exports","oldprism","Prism","manual","_self","lang","uniqueId","plainTextGrammar","_","disableWorkerMessageHandler","encode","tokens","Token","type","content","alias","Array","isArray","replace","o","Object","prototype","call","slice","objId","obj","defineProperty","clone","deepClone","visited","id","key","hasOwnProperty","forEach","v","getLanguage","element","m","exec","className","toLowerCase","parentElement","setLanguage","language","RegExp","classList","add","currentScript","document","err","src","stack","scripts","getElementsByTagName","isActive","defaultActivation","no","contains","languages","plain","plaintext","text","txt","extend","redef","insertBefore","inside","before","insert","root","grammar","ret","token","newToken","old","DFS","callback","property","propertyType","plugins","highlightAll","async","highlightAllUnder","container","env","selector","hooks","run","elements","apply","querySelectorAll","highlightElement","parent","nodeName","code","textContent","insertHighlightedCode","highlightedCode","innerHTML","hasAttribute","setAttribute","Worker","filename","onmessage","evt","data","postMessage","JSON","stringify","immediateClose","highlight","tokenize","rest","tokenList","LinkedList","addAfter","matchGrammar","list","array","node","next","tail","push","all","name","callbacks","matchedStr","matchPattern","pattern","pos","lookbehind","lastIndex","match","lookbehindLength","index","startNode","startPos","rematch","patterns","j","cause","patternObj","greedy","flags","source","currentNode","reach","str","removeCount","to","p","k","matchStr","after","removeFrom","prev","removeRange","nestedRematch","newNode","count","s","e","classes","attributes","aliases","join","addEventListener","parse","close","script","highlightAutomaticallyCallback","readyState","defer","requestAnimationFrame","setTimeout","WorkerGlobalScope","self","clike","comment","string","punctuation","keyword","boolean","function","number","operator","getPlaceholder","toUpperCase","defineProperties","buildPlaceholders","placeholderPattern","replaceFilter","tokenStack","placeholder","indexOf","markup","tokenizePlaceholders","keys","walkTokens","t","substring","middle","splice","concat","c","char","macro","directive","expression","constant","modName","cpp","generic","replacements","re","nested","depthLog2","keywordKinds","keywordsToPattern","words","trim","typeDeclarationKeywords","keywords","nonTypeKeywords","nonContextualKeywords","nestedRound","genericName","identifier","typeExpressionWithoutTuple","tupleElement","tuple","typeExpression","typeInside","character","regularString","verbatimString","csharp","range","namespace","preprocessor","regularStringOrCharacter","regularStringCharacterOrComment","roundExpression","attrTarget","attr","attribute","target","formatString","mInterpolationRound","mInterpolation","sInterpolationRound","sInterpolation","createInterpolationInside","interpolation","interpolationRound","dotnet","cs","css","atrule","rule","url","important","addInlined","addAttribute","classNamePrefix","java","annotation","generics","import","static","javascript","regex","parameter","hashbang","js","prolog","doctype","cdata","entity","tagName","includedCdataInside","def","attrName","html","mathml","svg","xml","ssml","atom","rss","php","delimiter","variable","package","string_interpolation","test","python","decorator","builtin","py","ruby","percentExpression","symbolName","symbol","command","rb","undefined","option","editor","options","get","getLanguages$1","useGlobalPrismJS","isCodeSample","elm","getSelectedCodeSample","selection","getNode","open","customLanguages","getLanguages","defaultLanguage","l","currentLanguage","fallback","n","matches","getCurrentLanguage","currentCode","getCurrentCode","windowManager","title","size","body","items","label","buttons","primary","initialData","onSubmit","api","getData","dom","undoManager","transact","DOM","insertContent","newPre","select","setAttrib","insertCodeSample","r","onSetupEditable","onChanged","nodeChanged","setEnabled","isEditable","on","off","registerOption","register","processor","default","register$2","pres","grep","child","getAttrib","firstChild","removeChild","unprocessedCodeSamples","_a","getDoc","createTextNode","parser","addNodeFilter","nodes","setup","onAction","execCommand","ui","registry","addToggleButton","icon","tooltip","onSetup","setActive","getStart","is","isCodeSampleSelection","addMenuItem","addCommand","isCollapsed","formatter","toggle","register$1","ev"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{__exports as r}from"../../../../_virtual/index16.mjs";import{__require as e}from"./plugin.mjs";var i;function o(){return i||(i=1,e()),r}export{o as __require};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../public/tinymce/plugins/image/index.js"],"sourcesContent":["// Exports the \"image\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/image')\n// ES2015:\n// import 'tinymce/plugins/image'\nrequire('./plugin.js');"],"names":["require$$0"],"mappings":"wIAMsBA"}
@@ -0,0 +1,2 @@
1
+ import{__exports as e}from"../../../../_virtual/plugin6.mjs";var t;function a(){return t||(t=1,function(){var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=Object.getPrototypeOf,a=(e,t,a)=>{var i;return!!a(e,t.prototype)||(null===(i=e.constructor)||void 0===i?void 0:i.name)===t.name},i=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&a(e,String,((e,t)=>t.isPrototypeOf(e)))?"string":t})(t)===e,o=e=>t=>typeof t===e,r=i("string"),s=i("object"),n=e=>((e,i)=>s(e)&&a(e,i,((e,a)=>t(e)===a)))(e,Object),l=i("array"),c=(m=null,e=>m===e);var m;const d=o("boolean"),g=e=>!(e=>null==e)(e),u=o("function"),p=o("number"),h=()=>{};class b{constructor(e,t){this.tag=e,this.value=t}static some(e){return new b(!0,e)}static none(){return b.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?b.some(e(this.value)):b.none()}bind(e){return this.tag?e(this.value):b.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:b.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 g(e)?b.some(e):b.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()"}}b.singletonNone=new b(!1);const v=Object.keys,y=Object.hasOwnProperty,f=(e,t,a,i)=>{((e,t)=>{const a=v(e);for(let i=0,o=a.length;i<o;i++){const o=a[i];t(e[o],o)}})(e,((e,o)=>{(t(e,o)?a:i)(e,o)}))},w=(e,t)=>y.call(e,t),A=Array.prototype.push,D=e=>{const t=[];for(let a=0,i=e.length;a<i;++a){if(!l(e[a]))throw new Error("Arr.flatten item "+a+" was not an array, input: "+e);A.apply(t,e[a])}return t},_=e=>((e,t)=>t>=0&&t<e.length?b.some(e[t]):b.none())(e,0);"undefined"!=typeof window?window:Function("return this;")();const C=(e,t,a)=>{((e,t,a)=>{if(!(r(a)||d(a)||p(a)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",a,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,a+"")})(e.dom,t,a)},x=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},I={fromHtml:(e,t)=>{const a=(t||document).createElement("div");if(a.innerHTML=e,!a.hasChildNodes()||a.childNodes.length>1){const t="HTML does not have a single root node";throw console.error(t,e),new Error(t)}return x(a.childNodes[0])},fromTag:(e,t)=>{const a=(t||document).createElement(e);return x(a)},fromText:(e,t)=>{const a=(t||document).createTextNode(e);return x(a)},fromDom:x,fromPoint:(e,t,a)=>b.from(e.dom.elementFromPoint(t,a)).map(x)};var U=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),S=tinymce.util.Tools.resolve("tinymce.util.URI");const N=e=>e.length>0,T=e=>t=>t.options.get(e),E=e=>{const t=e.options.register;t("image_dimensions",{processor:"boolean",default:!0}),t("image_advtab",{processor:"boolean",default:!1}),t("image_uploadtab",{processor:"boolean",default:!0}),t("image_prepend_url",{processor:"string",default:""}),t("image_class_list",{processor:"object[]"}),t("image_description",{processor:"boolean",default:!0}),t("image_title",{processor:"boolean",default:!1}),t("image_caption",{processor:"boolean",default:!1}),t("image_list",{processor:e=>{const t=!1===e||r(e)||((e,t)=>{if(l(e)){for(let a=0,i=e.length;a<i;++a)if(!t(e[a]))return!1;return!0}return!1})(e,s)||u(e);return t?{value:e,valid:t}:{valid:!1,message:"Must be false, a string, an array or a function."}},default:!1})},L=T("image_dimensions"),O=T("image_advtab"),M=T("image_uploadtab"),j=T("image_prepend_url"),P=T("image_class_list"),R=T("image_description"),k=T("image_title"),z=T("image_caption"),B=T("image_list"),H=T("a11y_advanced_options"),F=T("automatic_uploads"),G=(e,t)=>Math.max(parseInt(e,10),parseInt(t,10)),W=e=>(e&&(e=e.replace(/px$/,"")),e),$=e=>(e.length>0&&/^[0-9]+$/.test(e)&&(e+="px"),e),V=e=>"IMG"===e.nodeName&&(e.hasAttribute("data-mce-object")||e.hasAttribute("data-mce-placeholder")),q=(e,t)=>{const a=e.options.get;return S.isDomSafe(t,"img",{allow_html_data_urls:a("allow_html_data_urls"),allow_script_urls:a("allow_script_urls"),allow_svg_data_urls:a("allow_svg_data_urls")})},K=U.DOM,Z=e=>e.style.marginLeft&&e.style.marginRight&&e.style.marginLeft===e.style.marginRight?W(e.style.marginLeft):"",J=e=>e.style.marginTop&&e.style.marginBottom&&e.style.marginTop===e.style.marginBottom?W(e.style.marginTop):"",Q=e=>e.style.borderWidth?W(e.style.borderWidth):"",X=(e,t)=>{var a;return e.hasAttribute(t)&&null!==(a=e.getAttribute(t))&&void 0!==a?a:""},Y=e=>null!==e.parentNode&&"FIGURE"===e.parentNode.nodeName,ee=(e,t,a)=>{""===a||null===a?e.removeAttribute(t):e.setAttribute(t,a)},te=e=>{Y(e)?(e=>{const t=e.parentNode;g(t)&&(K.insertAfter(e,t),K.remove(t))})(e):(e=>{const t=K.create("figure",{class:"image"});K.insertAfter(t,e),t.appendChild(e),t.appendChild(K.create("figcaption",{contentEditable:"true"},"Caption")),t.contentEditable="false"})(e)},ae=(e,t)=>{const a=e.getAttribute("style"),i=t(null!==a?a:"");i.length>0?(e.setAttribute("style",i),e.setAttribute("data-mce-style",i)):e.removeAttribute("style")},ie=(e,t)=>(e,a,i)=>{const o=e.style;o[a]?(o[a]=$(i),ae(e,t)):ee(e,a,i)},oe=(e,t)=>e.style[t]?W(e.style[t]):X(e,t),re=(e,t)=>{const a=$(t);e.style.marginLeft=a,e.style.marginRight=a},se=(e,t)=>{const a=$(t);e.style.marginTop=a,e.style.marginBottom=a},ne=(e,t)=>{const a=$(t);e.style.borderWidth=a},le=(e,t)=>{e.style.borderStyle=t},ce=e=>{var t;return null!==(t=e.style.borderStyle)&&void 0!==t?t:""},me=e=>g(e)&&"FIGURE"===e.nodeName,de=e=>0===K.getAttrib(e,"alt").length&&"presentation"===K.getAttrib(e,"role"),ge=e=>de(e)?"":X(e,"alt"),ue=(e,t)=>{var a;const i=document.createElement("img");return ee(i,"style",t.style),(Z(i)||""!==t.hspace)&&re(i,t.hspace),(J(i)||""!==t.vspace)&&se(i,t.vspace),(Q(i)||""!==t.border)&&ne(i,t.border),(ce(i)||""!==t.borderStyle)&&le(i,t.borderStyle),e(null!==(a=i.getAttribute("style"))&&void 0!==a?a:"")},pe=(e,t)=>({src:X(t,"src"),alt:ge(t),title:X(t,"title"),width:oe(t,"width"),height:oe(t,"height"),class:X(t,"class"),style:e(X(t,"style")),caption:Y(t),hspace:Z(t),vspace:J(t),border:Q(t),borderStyle:ce(t),isDecorative:de(t)}),he=(e,t,a,i,o)=>{a[i]!==t[i]&&o(e,i,String(a[i]))},be=(e,t,a)=>{if(a){K.setAttrib(e,"role","presentation");const t=I.fromDom(e);C(t,"alt","")}else{if(c(t)){const t=I.fromDom(e);i="alt",t.dom.removeAttribute(i)}else{const a=I.fromDom(e);C(a,"alt",t)}"presentation"===K.getAttrib(e,"role")&&K.setAttrib(e,"role","")}var i},ve=(e,t)=>(a,i,o)=>{e(a,o),ae(a,t)},ye=(e,t,a)=>{const i=pe(e,a);he(a,i,t,"caption",((e,t,a)=>te(e))),he(a,i,t,"src",ee),he(a,i,t,"title",ee),he(a,i,t,"width",ie(0,e)),he(a,i,t,"height",ie(0,e)),he(a,i,t,"class",ee),he(a,i,t,"style",ve(((e,t)=>ee(e,"style",t)),e)),he(a,i,t,"hspace",ve(re,e)),he(a,i,t,"vspace",ve(se,e)),he(a,i,t,"border",ve(ne,e)),he(a,i,t,"borderStyle",ve(le,e)),((e,t,a)=>{a.alt===t.alt&&a.isDecorative===t.isDecorative||be(e,a.alt,a.isDecorative)})(a,i,t)},fe=(e,t)=>{const a=(e=>{if(e.margin){const t=String(e.margin).split(" ");switch(t.length){case 1:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[0],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[0];break;case 2:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[1];break;case 3:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[1];break;case 4:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[3]}delete e.margin}return e})(e.dom.styles.parse(t)),i=e.dom.styles.parse(e.dom.styles.serialize(a));return e.dom.styles.serialize(i)},we=e=>{const t=e.selection.getNode(),a=e.dom.getParent(t,"figure.image");return a?e.dom.select("img",a)[0]:t&&("IMG"!==t.nodeName||V(t))?null:t},Ae=(e,t)=>{var a;const i=e.dom,o=((e,t)=>{const a={};var i;return f(e,t,(i=a,(e,t)=>{i[t]=e}),h),a})(e.schema.getTextBlockElements(),((t,a)=>!e.schema.isValidChild(a,"figure"))),r=i.getParent(t.parentNode,(e=>{return t=o,a=e.nodeName,w(t,a)&&void 0!==t[a]&&null!==t[a];var t,a}),e.getBody());return r&&null!==(a=i.split(r,t))&&void 0!==a?a:t},De=(e,t)=>{const a=((e,t)=>{const a=document.createElement("img");if(ye(e,{...t,caption:!1},a),be(a,t.alt,t.isDecorative),t.caption){const e=K.create("figure",{class:"image"});return e.appendChild(a),e.appendChild(K.create("figcaption",{contentEditable:"true"},"Caption")),e.contentEditable="false",e}return a})((t=>fe(e,t)),t);e.dom.setAttrib(a,"data-mce-id","__mcenew"),e.focus(),e.selection.setContent(a.outerHTML);const i=e.dom.select('*[data-mce-id="__mcenew"]')[0];if(e.dom.setAttrib(i,"data-mce-id",null),me(i)){const t=Ae(e,i);e.selection.select(t)}else e.selection.select(i)},_e=(e,t)=>{const a=we(e);if(a)if(ye((t=>fe(e,t)),t,a),((e,t)=>{e.dom.setAttrib(t,"src",t.getAttribute("src"))})(e,a),me(a.parentNode)){const t=a.parentNode;Ae(e,t),e.selection.select(a.parentNode)}else e.selection.select(a),((e,t,a)=>{const i=()=>{a.onload=a.onerror=null,e.selection&&(e.selection.select(a),e.nodeChanged())};a.onload=()=>{t.width||t.height||!L(e)||e.dom.setAttribs(a,{width:String(a.clientWidth),height:String(a.clientHeight)}),i()},a.onerror=i})(e,t,a)},Ce=(e,t)=>{const a=we(e);if(a){const i={...pe((t=>fe(e,t)),a),...t},o=((e,t)=>{const a=t.src;return{...t,src:q(e,a)?a:""}})(e,i);i.src?_e(e,o):((e,t)=>{if(t){const a=e.dom.is(t.parentNode,"figure.image")?t.parentNode:t;e.dom.remove(a),e.focus(),e.nodeChanged(),e.dom.isEmpty(e.getBody())&&(e.setContent(""),e.selection.setCursorLocation())}})(e,a)}else t.src&&De(e,{src:"",alt:"",title:"",width:"",height:"",class:"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:"",isDecorative:!1,...t})},xe=(Ie=(e,t)=>n(e)&&n(t)?xe(e,t):t,(...e)=>{if(0===e.length)throw new Error("Can't merge zero objects");const t={};for(let a=0;a<e.length;a++){const i=e[a];for(const e in i)w(i,e)&&(t[e]=Ie(t[e],i[e]))}return t});var Ie,Ue=tinymce.util.Tools.resolve("tinymce.util.ImageUploader"),Se=tinymce.util.Tools.resolve("tinymce.util.Tools");const Ne=e=>r(e.value)?e.value:"",Te=(e,t)=>{const a=[];return Se.each(e,(e=>{const i=(e=>r(e.text)?e.text:r(e.title)?e.title:"")(e);if(void 0!==e.menu){const o=Te(e.menu,t);a.push({text:i,items:o})}else{const o=t(e);a.push({text:i,value:o})}})),a},Ee=(e=Ne)=>t=>t?b.from(t).map((t=>Te(t,e))):b.none(),Le=(e,t)=>((e,t)=>{for(let a=0;a<e.length;a++){const i=t(e[a],a);if(i.isSome())return i}return b.none()})(e,(e=>(e=>w(e,"items"))(e)?Le(e.items,t):e.value===t?b.some(e):b.none())),Oe=Ee,Me=e=>Ee(Ne)(e),je=(e,t)=>e.bind((e=>Le(e,t))),Pe=e=>({title:"Advanced",name:"advanced",items:[{type:"grid",columns:2,items:[{type:"input",label:"Vertical space",name:"vspace",inputMode:"numeric"},{type:"input",label:"Horizontal space",name:"hspace",inputMode:"numeric"},{type:"input",label:"Border width",name:"border",inputMode:"numeric"},{type:"listbox",name:"borderstyle",label:"Border style",items:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]}]}]}),Re=e=>{const t=Oe((t=>e.convertURL(t.value||t.url||"","src"))),a=new Promise((a=>{((e,t)=>{const a=B(e);r(a)?fetch(a).then((e=>{e.ok&&e.json().then(t)})):u(a)?a(t):t(a)})(e,(e=>{a(t(e).map((e=>D([[{text:"None",value:""}],e]))))}))})),i=Me(P(e)),o=O(e),s=M(e),n=(e=>N(e.options.get("images_upload_url")))(e),l=(e=>g(e.options.get("images_upload_handler")))(e),c=(e=>{const t=we(e);return t?pe((t=>fe(e,t)),t):{src:"",alt:"",title:"",width:"",height:"",class:"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:"",isDecorative:!1}})(e),m=R(e),d=k(e),p=L(e),h=z(e),v=H(e),y=F(e),f=b.some(j(e)).filter((e=>r(e)&&e.length>0));return a.then((e=>({image:c,imageList:e,classList:i,hasAdvTab:o,hasUploadTab:s,hasUploadUrl:n,hasUploadHandler:l,hasDescription:m,hasImageTitle:d,hasDimensions:p,hasImageCaption:h,prependURL:f,hasAccessibilityOptions:v,automaticUploads:y})))},ke=e=>{const t=e.imageList.map((e=>({name:"images",type:"listbox",label:"Image list",items:e}))),a={name:"alt",type:"input",label:"Alternative description",enabled:!(e.hasAccessibilityOptions&&e.image.isDecorative)},i=e.classList.map((e=>({name:"classes",type:"listbox",label:"Class",items:e})));return D([[{name:"src",type:"urlinput",filetype:"image",label:"Source",picker_text:"Browse files"}],t.toArray(),e.hasAccessibilityOptions&&e.hasDescription?[{type:"label",label:"Accessibility",items:[{name:"isDecorative",type:"checkbox",label:"Image is decorative"}]}]:[],e.hasDescription?[a]:[],e.hasImageTitle?[{name:"title",type:"input",label:"Image title"}]:[],e.hasDimensions?[{name:"dimensions",type:"sizeinput"}]:[],[{...(o=e.classList.isSome()&&e.hasImageCaption,o?{type:"grid",columns:2}:{type:"panel"}),items:D([i.toArray(),e.hasImageCaption?[{type:"label",label:"Caption",items:[{type:"checkbox",name:"caption",label:"Show caption"}]}]:[]])}]]);var o},ze=e=>({title:"General",name:"general",items:ke(e)}),Be=ke,He=e=>({title:"Upload",name:"upload",items:[{type:"dropzone",name:"fileinput"}]}),Fe=e=>({src:{value:e.src,meta:{}},images:e.src,alt:e.alt,title:e.title,dimensions:{width:e.width,height:e.height},classes:e.class,caption:e.caption,style:e.style,vspace:e.vspace,border:e.border,hspace:e.hspace,borderstyle:e.borderStyle,fileinput:[],isDecorative:e.isDecorative}),Ge=(e,t)=>({src:e.src.value,alt:null!==e.alt&&0!==e.alt.length||!t?e.alt:null,title:e.title,width:e.dimensions.width,height:e.dimensions.height,class:e.classes,style:e.style,caption:e.caption,hspace:e.hspace,vspace:e.vspace,border:e.border,borderStyle:e.borderstyle,isDecorative:e.isDecorative}),We=(e,t)=>{const a=t.getData();((e,t)=>/^(?:[a-zA-Z]+:)?\/\//.test(t)?b.none():e.prependURL.bind((e=>t.substring(0,e.length)!==e?b.some(e+t):b.none())))(e,a.src.value).each((e=>{t.setData({src:{value:e,meta:a.src.meta}})}))},$e=(e,t)=>{const a=t.getData(),i=a.src.meta;if(void 0!==i){const o=xe({},a);((e,t,a)=>{e.hasDescription&&r(a.alt)&&(t.alt=a.alt),e.hasAccessibilityOptions&&(t.isDecorative=a.isDecorative||t.isDecorative||!1),e.hasImageTitle&&r(a.title)&&(t.title=a.title),e.hasDimensions&&(r(a.width)&&(t.dimensions.width=a.width),r(a.height)&&(t.dimensions.height=a.height)),r(a.class)&&je(e.classList,a.class).each((e=>{t.classes=e.value})),e.hasImageCaption&&d(a.caption)&&(t.caption=a.caption),e.hasAdvTab&&(r(a.style)&&(t.style=a.style),r(a.vspace)&&(t.vspace=a.vspace),r(a.border)&&(t.border=a.border),r(a.hspace)&&(t.hspace=a.hspace),r(a.borderstyle)&&(t.borderstyle=a.borderstyle))})(e,o,i),t.setData(o)}},Ve=(e,t,a,i)=>{We(t,i),$e(t,i),((e,t,a,i)=>{const o=i.getData(),r=o.src.value,s=o.src.meta||{};s.width||s.height||!t.hasDimensions||(N(r)?e.imageSize(r).then((e=>{a.open&&i.setData({dimensions:e})})).catch((e=>console.error(e))):i.setData({dimensions:{width:"",height:""}}))})(e,t,a,i),((e,t,a)=>{const i=a.getData(),o=je(e.imageList,i.src.value);t.prevImage=o,a.setData({images:o.map((e=>e.value)).getOr("")})})(t,a,i)},qe=(e,t,a,i)=>{const o=i.getData();i.block("Uploading image"),_(o.fileinput).fold((()=>{i.unblock()}),(o=>{const r=URL.createObjectURL(o),s=()=>{i.unblock(),URL.revokeObjectURL(r)},n=o=>{i.setData({src:{value:o,meta:{}}}),i.showTab("general"),Ve(e,t,a,i)};var l;(l=o,new Promise(((e,t)=>{const a=new FileReader;a.onload=()=>{e(a.result)},a.onerror=()=>{var e;t(null===(e=a.error)||void 0===e?void 0:e.message)},a.readAsDataURL(l)}))).then((a=>{const l=e.createBlobCache(o,r,a);t.automaticUploads?e.uploadImage(l).then((e=>{n(e.url),s()})).catch((t=>{s(),e.alertErr(t)})):(e.addToBlobCache(l),n(l.blobUri()),i.unblock())}))}))},Ke=(e,t,a)=>(i,o)=>{"src"===o.name?Ve(e,t,a,i):"images"===o.name?((e,t,a,i)=>{const o=i.getData(),r=je(t.imageList,o.images);r.each((e=>{const t=""===o.alt||a.prevImage.map((e=>e.text===o.alt)).getOr(!1);t?""===e.value?i.setData({src:e,alt:a.prevAlt}):i.setData({src:e,alt:e.text}):i.setData({src:e})})),a.prevImage=r,Ve(e,t,a,i)})(e,t,a,i):"alt"===o.name?a.prevAlt=i.getData().alt:"fileinput"===o.name?qe(e,t,a,i):"isDecorative"===o.name&&i.setEnabled("alt",!i.getData().isDecorative)},Ze=e=>()=>{e.open=!1},Je=e=>{if(e.hasAdvTab||e.hasUploadUrl||e.hasUploadHandler){return{type:"tabpanel",tabs:D([[ze(e)],e.hasAdvTab?[Pe(e)]:[],e.hasUploadTab&&(e.hasUploadUrl||e.hasUploadHandler)?[He(e)]:[]])}}return{type:"panel",items:Be(e)}},Qe=(e,t,a)=>i=>{const o=xe(Fe(t.image),i.getData()),r={...o,style:ue(a.normalizeCss,Ge(o,!1))};e.execCommand("mceUpdateImage",!1,Ge(r,t.hasAccessibilityOptions)),e.editorUpload.uploadImagesAuto(),i.close()},Xe=e=>t=>q(e,t)?(e=>new Promise((t=>{const a=document.createElement("img"),i=e=>{a.onload=a.onerror=null,a.parentNode&&a.parentNode.removeChild(a),t(e)};a.onload=()=>{const e={width:G(a.width,a.clientWidth),height:G(a.height,a.clientHeight)};i(Promise.resolve(e))},a.onerror=()=>{i(Promise.reject(`Failed to get image dimensions for: ${e}`))};const o=a.style;o.visibility="hidden",o.position="fixed",o.bottom=o.left="0px",o.width=o.height="auto",document.body.appendChild(a),a.src=e})))(e.documentBaseURI.toAbsolute(t)).then((e=>({width:String(e.width),height:String(e.height)}))):Promise.resolve({width:"",height:""}),Ye=e=>(t,a,i)=>{var o;return e.editorUpload.blobCache.create({blob:t,blobUri:a,name:null===(o=t.name)||void 0===o?void 0:o.replace(/\.[^\.]+$/,""),filename:t.name,base64:i.split(",")[1]})},et=e=>t=>{e.editorUpload.blobCache.add(t)},tt=e=>t=>{e.windowManager.alert(t)},at=e=>t=>fe(e,t),it=e=>t=>e.dom.parseStyle(t),ot=e=>(t,a)=>e.dom.serializeStyle(t,a),rt=e=>t=>Ue(e).upload([t],!1).then((e=>{var t;return 0===e.length?Promise.reject("Failed to upload image"):!1===e[0].status?Promise.reject(null===(t=e[0].error)||void 0===t?void 0:t.message):e[0]})),st=e=>{const t={imageSize:Xe(e),addToBlobCache:et(e),createBlobCache:Ye(e),alertErr:tt(e),normalizeCss:at(e),parseStyle:it(e),serializeStyle:ot(e),uploadImage:rt(e)};return{open:()=>{Re(e).then((a=>{const i=(e=>({prevImage:je(e.imageList,e.image.src),prevAlt:e.image.alt,open:!0}))(a);return{title:"Insert/Edit Image",size:"normal",body:Je(a),buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:Fe(a.image),onSubmit:Qe(e,a,t),onChange:Ke(t,a,i),onClose:Ze(i)}})).then(e.windowManager.open)}}},nt=e=>{const t=e.attr("class");return g(t)&&/\bimage\b/.test(t)},lt=e=>t=>{let a=t.length;const i=t=>{t.attr("contenteditable",e?"true":null)};for(;a--;){const o=t[a];nt(o)&&(o.attr("contenteditable",e?"false":null),Se.each(o.getAll("figcaption"),i))}},ct=e=>t=>{const a=()=>{t.setEnabled(e.selection.isEditable())};return e.on("NodeChange",a),a(),()=>{e.off("NodeChange",a)}};e.add("image",(e=>{E(e),(e=>{e.on("PreInit",(()=>{e.parser.addNodeFilter("figure",lt(!0)),e.serializer.addNodeFilter("figure",lt(!1))}))})(e),(e=>{e.ui.registry.addToggleButton("image",{icon:"image",tooltip:"Insert/edit image",onAction:st(e).open,onSetup:t=>{t.setActive(g(we(e)));const a=e.selection.selectorChangedWithUnbind("img:not([data-mce-object]):not([data-mce-placeholder]),figure.image",t.setActive).unbind,i=ct(e)(t);return()=>{a(),i()}}}),e.ui.registry.addMenuItem("image",{icon:"image",text:"Image...",onAction:st(e).open,onSetup:ct(e)}),e.ui.registry.addContextMenu("image",{update:t=>e.selection.isEditable()&&(me(t)||"IMG"===t.nodeName&&!V(t))?["image"]:[]})})(e),(e=>{e.addCommand("mceImage",st(e).open),e.addCommand("mceUpdateImage",((t,a)=>{e.undoManager.transact((()=>Ce(e,a)))}))})(e)}))}()),e}export{a as __require};
2
+ //# sourceMappingURL=plugin.mjs.map