santrix 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/NOTICE.md +18 -0
  3. package/README.md +107 -0
  4. package/js/santrix/README.md +161 -0
  5. package/js/santrix/icons/default/icons.js +198 -0
  6. package/js/santrix/icons/default/icons.min.js +1 -0
  7. package/js/santrix/langs/README.md +3 -0
  8. package/js/santrix/license.txt +22 -0
  9. package/js/santrix/models/dom/model.js +8054 -0
  10. package/js/santrix/models/dom/model.min.js +7 -0
  11. package/js/santrix/plugins/accordion/plugin.js +1057 -0
  12. package/js/santrix/plugins/accordion/plugin.min.js +7 -0
  13. package/js/santrix/plugins/advlist/plugin.js +262 -0
  14. package/js/santrix/plugins/advlist/plugin.min.js +7 -0
  15. package/js/santrix/plugins/anchor/plugin.js +217 -0
  16. package/js/santrix/plugins/anchor/plugin.min.js +7 -0
  17. package/js/santrix/plugins/autolink/plugin.js +231 -0
  18. package/js/santrix/plugins/autolink/plugin.min.js +7 -0
  19. package/js/santrix/plugins/autoresize/plugin.js +195 -0
  20. package/js/santrix/plugins/autoresize/plugin.min.js +7 -0
  21. package/js/santrix/plugins/autosave/plugin.js +236 -0
  22. package/js/santrix/plugins/autosave/plugin.min.js +7 -0
  23. package/js/santrix/plugins/charmap/plugin.js +1661 -0
  24. package/js/santrix/plugins/charmap/plugin.min.js +7 -0
  25. package/js/santrix/plugins/code/plugin.js +88 -0
  26. package/js/santrix/plugins/code/plugin.min.js +7 -0
  27. package/js/santrix/plugins/codesample/plugin.js +2474 -0
  28. package/js/santrix/plugins/codesample/plugin.min.js +14 -0
  29. package/js/santrix/plugins/directionality/plugin.js +398 -0
  30. package/js/santrix/plugins/directionality/plugin.min.js +7 -0
  31. package/js/santrix/plugins/emoticons/js/emojiimages.js +1 -0
  32. package/js/santrix/plugins/emoticons/js/emojiimages.min.js +3 -0
  33. package/js/santrix/plugins/emoticons/js/emojis.js +1 -0
  34. package/js/santrix/plugins/emoticons/js/emojis.min.js +2 -0
  35. package/js/santrix/plugins/emoticons/plugin.js +599 -0
  36. package/js/santrix/plugins/emoticons/plugin.min.js +7 -0
  37. package/js/santrix/plugins/fullscreen/plugin.js +1253 -0
  38. package/js/santrix/plugins/fullscreen/plugin.min.js +7 -0
  39. package/js/santrix/plugins/help/js/i18n/keynav/ar.js +90 -0
  40. package/js/santrix/plugins/help/js/i18n/keynav/bg_BG.js +90 -0
  41. package/js/santrix/plugins/help/js/i18n/keynav/ca.js +90 -0
  42. package/js/santrix/plugins/help/js/i18n/keynav/cs.js +90 -0
  43. package/js/santrix/plugins/help/js/i18n/keynav/da.js +90 -0
  44. package/js/santrix/plugins/help/js/i18n/keynav/de.js +90 -0
  45. package/js/santrix/plugins/help/js/i18n/keynav/el.js +90 -0
  46. package/js/santrix/plugins/help/js/i18n/keynav/en.js +90 -0
  47. package/js/santrix/plugins/help/js/i18n/keynav/es.js +90 -0
  48. package/js/santrix/plugins/help/js/i18n/keynav/eu.js +90 -0
  49. package/js/santrix/plugins/help/js/i18n/keynav/fa.js +90 -0
  50. package/js/santrix/plugins/help/js/i18n/keynav/fi.js +90 -0
  51. package/js/santrix/plugins/help/js/i18n/keynav/fr_FR.js +90 -0
  52. package/js/santrix/plugins/help/js/i18n/keynav/he_IL.js +90 -0
  53. package/js/santrix/plugins/help/js/i18n/keynav/hi.js +90 -0
  54. package/js/santrix/plugins/help/js/i18n/keynav/hr.js +90 -0
  55. package/js/santrix/plugins/help/js/i18n/keynav/hu_HU.js +90 -0
  56. package/js/santrix/plugins/help/js/i18n/keynav/id.js +90 -0
  57. package/js/santrix/plugins/help/js/i18n/keynav/it.js +90 -0
  58. package/js/santrix/plugins/help/js/i18n/keynav/ja.js +90 -0
  59. package/js/santrix/plugins/help/js/i18n/keynav/kk.js +90 -0
  60. package/js/santrix/plugins/help/js/i18n/keynav/ko_KR.js +90 -0
  61. package/js/santrix/plugins/help/js/i18n/keynav/ms.js +90 -0
  62. package/js/santrix/plugins/help/js/i18n/keynav/nb_NO.js +90 -0
  63. package/js/santrix/plugins/help/js/i18n/keynav/nl.js +90 -0
  64. package/js/santrix/plugins/help/js/i18n/keynav/pl.js +90 -0
  65. package/js/santrix/plugins/help/js/i18n/keynav/pt_BR.js +90 -0
  66. package/js/santrix/plugins/help/js/i18n/keynav/pt_PT.js +90 -0
  67. package/js/santrix/plugins/help/js/i18n/keynav/ro.js +90 -0
  68. package/js/santrix/plugins/help/js/i18n/keynav/ru.js +90 -0
  69. package/js/santrix/plugins/help/js/i18n/keynav/sk.js +90 -0
  70. package/js/santrix/plugins/help/js/i18n/keynav/sl_SI.js +90 -0
  71. package/js/santrix/plugins/help/js/i18n/keynav/sv_SE.js +90 -0
  72. package/js/santrix/plugins/help/js/i18n/keynav/th_TH.js +90 -0
  73. package/js/santrix/plugins/help/js/i18n/keynav/tr.js +90 -0
  74. package/js/santrix/plugins/help/js/i18n/keynav/uk.js +90 -0
  75. package/js/santrix/plugins/help/js/i18n/keynav/vi.js +90 -0
  76. package/js/santrix/plugins/help/js/i18n/keynav/zh_CN.js +84 -0
  77. package/js/santrix/plugins/help/js/i18n/keynav/zh_TW.js +90 -0
  78. package/js/santrix/plugins/help/plugin.js +750 -0
  79. package/js/santrix/plugins/help/plugin.min.js +7 -0
  80. package/js/santrix/plugins/image/plugin.js +1508 -0
  81. package/js/santrix/plugins/image/plugin.min.js +7 -0
  82. package/js/santrix/plugins/importcss/plugin.js +347 -0
  83. package/js/santrix/plugins/importcss/plugin.min.js +7 -0
  84. package/js/santrix/plugins/insertdatetime/plugin.js +190 -0
  85. package/js/santrix/plugins/insertdatetime/plugin.min.js +7 -0
  86. package/js/santrix/plugins/link/plugin.js +1246 -0
  87. package/js/santrix/plugins/link/plugin.min.js +7 -0
  88. package/js/santrix/plugins/lists/plugin.js +2175 -0
  89. package/js/santrix/plugins/lists/plugin.min.js +7 -0
  90. package/js/santrix/plugins/media/plugin.js +1220 -0
  91. package/js/santrix/plugins/media/plugin.min.js +7 -0
  92. package/js/santrix/plugins/nonbreaking/plugin.js +126 -0
  93. package/js/santrix/plugins/nonbreaking/plugin.min.js +7 -0
  94. package/js/santrix/plugins/pagebreak/plugin.js +120 -0
  95. package/js/santrix/plugins/pagebreak/plugin.min.js +7 -0
  96. package/js/santrix/plugins/preview/plugin.js +100 -0
  97. package/js/santrix/plugins/preview/plugin.min.js +7 -0
  98. package/js/santrix/plugins/quickbars/plugin.js +450 -0
  99. package/js/santrix/plugins/quickbars/plugin.min.js +7 -0
  100. package/js/santrix/plugins/save/plugin.js +122 -0
  101. package/js/santrix/plugins/save/plugin.min.js +7 -0
  102. package/js/santrix/plugins/searchreplace/plugin.js +1097 -0
  103. package/js/santrix/plugins/searchreplace/plugin.min.js +7 -0
  104. package/js/santrix/plugins/table/plugin.js +3468 -0
  105. package/js/santrix/plugins/table/plugin.min.js +7 -0
  106. package/js/santrix/plugins/template/plugin.js +570 -0
  107. package/js/santrix/plugins/template/plugin.min.js +7 -0
  108. package/js/santrix/plugins/visualblocks/plugin.js +101 -0
  109. package/js/santrix/plugins/visualblocks/plugin.min.js +7 -0
  110. package/js/santrix/plugins/visualchars/plugin.js +563 -0
  111. package/js/santrix/plugins/visualchars/plugin.min.js +7 -0
  112. package/js/santrix/plugins/wordcount/plugin.js +408 -0
  113. package/js/santrix/plugins/wordcount/plugin.min.js +7 -0
  114. package/js/santrix/santrix.d.ts +3252 -0
  115. package/js/santrix/santrix.js +31756 -0
  116. package/js/santrix/santrix.min.js +339 -0
  117. package/js/santrix/skins/content/dark/content.css +66 -0
  118. package/js/santrix/skins/content/dark/content.js +2 -0
  119. package/js/santrix/skins/content/dark/content.js.map +1 -0
  120. package/js/santrix/skins/content/dark/content.min.css +2 -0
  121. package/js/santrix/skins/content/dark/content.min.css.map +1 -0
  122. package/js/santrix/skins/content/default/content.css +61 -0
  123. package/js/santrix/skins/content/default/content.js +2 -0
  124. package/js/santrix/skins/content/default/content.js.map +1 -0
  125. package/js/santrix/skins/content/default/content.min.css +2 -0
  126. package/js/santrix/skins/content/default/content.min.css.map +1 -0
  127. package/js/santrix/skins/content/document/content.css +66 -0
  128. package/js/santrix/skins/content/document/content.js +2 -0
  129. package/js/santrix/skins/content/document/content.js.map +1 -0
  130. package/js/santrix/skins/content/document/content.min.css +2 -0
  131. package/js/santrix/skins/content/document/content.min.css.map +1 -0
  132. package/js/santrix/skins/content/santrix-5/content.css +61 -0
  133. package/js/santrix/skins/content/santrix-5/content.js +2 -0
  134. package/js/santrix/skins/content/santrix-5/content.js.map +1 -0
  135. package/js/santrix/skins/content/santrix-5/content.min.css +2 -0
  136. package/js/santrix/skins/content/santrix-5/content.min.css.map +1 -0
  137. package/js/santrix/skins/content/santrix-5-dark/content.css +66 -0
  138. package/js/santrix/skins/content/santrix-5-dark/content.js +2 -0
  139. package/js/santrix/skins/content/santrix-5-dark/content.js.map +1 -0
  140. package/js/santrix/skins/content/santrix-5-dark/content.min.css +2 -0
  141. package/js/santrix/skins/content/santrix-5-dark/content.min.css.map +1 -0
  142. package/js/santrix/skins/content/writer/content.css +62 -0
  143. package/js/santrix/skins/content/writer/content.js +2 -0
  144. package/js/santrix/skins/content/writer/content.js.map +1 -0
  145. package/js/santrix/skins/content/writer/content.min.css +2 -0
  146. package/js/santrix/skins/content/writer/content.min.css.map +1 -0
  147. package/js/santrix/skins/ui/oxide/content.css +785 -0
  148. package/js/santrix/skins/ui/oxide/content.inline.css +779 -0
  149. package/js/santrix/skins/ui/oxide/content.inline.js +2 -0
  150. package/js/santrix/skins/ui/oxide/content.inline.js.map +1 -0
  151. package/js/santrix/skins/ui/oxide/content.inline.min.css +2 -0
  152. package/js/santrix/skins/ui/oxide/content.inline.min.css.map +1 -0
  153. package/js/santrix/skins/ui/oxide/content.js +2 -0
  154. package/js/santrix/skins/ui/oxide/content.js.map +1 -0
  155. package/js/santrix/skins/ui/oxide/content.min.css +2 -0
  156. package/js/santrix/skins/ui/oxide/content.min.css.map +1 -0
  157. package/js/santrix/skins/ui/oxide/skin.css +4029 -0
  158. package/js/santrix/skins/ui/oxide/skin.js +2 -0
  159. package/js/santrix/skins/ui/oxide/skin.js.map +1 -0
  160. package/js/santrix/skins/ui/oxide/skin.min.css +2 -0
  161. package/js/santrix/skins/ui/oxide/skin.min.css.map +1 -0
  162. package/js/santrix/skins/ui/oxide/skin.shadowdom.css +30 -0
  163. package/js/santrix/skins/ui/oxide/skin.shadowdom.js +2 -0
  164. package/js/santrix/skins/ui/oxide/skin.shadowdom.js.map +1 -0
  165. package/js/santrix/skins/ui/oxide/skin.shadowdom.min.css +2 -0
  166. package/js/santrix/skins/ui/oxide/skin.shadowdom.min.css.map +1 -0
  167. package/js/santrix/skins/ui/oxide-dark/content.css +766 -0
  168. package/js/santrix/skins/ui/oxide-dark/content.inline.css +779 -0
  169. package/js/santrix/skins/ui/oxide-dark/content.inline.js +2 -0
  170. package/js/santrix/skins/ui/oxide-dark/content.inline.js.map +1 -0
  171. package/js/santrix/skins/ui/oxide-dark/content.inline.min.css +2 -0
  172. package/js/santrix/skins/ui/oxide-dark/content.inline.min.css.map +1 -0
  173. package/js/santrix/skins/ui/oxide-dark/content.js +2 -0
  174. package/js/santrix/skins/ui/oxide-dark/content.js.map +1 -0
  175. package/js/santrix/skins/ui/oxide-dark/content.min.css +2 -0
  176. package/js/santrix/skins/ui/oxide-dark/content.min.css.map +1 -0
  177. package/js/santrix/skins/ui/oxide-dark/skin.css +4032 -0
  178. package/js/santrix/skins/ui/oxide-dark/skin.js +2 -0
  179. package/js/santrix/skins/ui/oxide-dark/skin.js.map +1 -0
  180. package/js/santrix/skins/ui/oxide-dark/skin.min.css +2 -0
  181. package/js/santrix/skins/ui/oxide-dark/skin.min.css.map +1 -0
  182. package/js/santrix/skins/ui/oxide-dark/skin.shadowdom.css +30 -0
  183. package/js/santrix/skins/ui/oxide-dark/skin.shadowdom.js +2 -0
  184. package/js/santrix/skins/ui/oxide-dark/skin.shadowdom.js.map +1 -0
  185. package/js/santrix/skins/ui/oxide-dark/skin.shadowdom.min.css +2 -0
  186. package/js/santrix/skins/ui/oxide-dark/skin.shadowdom.min.css.map +1 -0
  187. package/js/santrix/skins/ui/santrix-5/content.css +785 -0
  188. package/js/santrix/skins/ui/santrix-5/content.inline.css +779 -0
  189. package/js/santrix/skins/ui/santrix-5/content.inline.js +2 -0
  190. package/js/santrix/skins/ui/santrix-5/content.inline.js.map +1 -0
  191. package/js/santrix/skins/ui/santrix-5/content.inline.min.css +2 -0
  192. package/js/santrix/skins/ui/santrix-5/content.inline.min.css.map +1 -0
  193. package/js/santrix/skins/ui/santrix-5/content.js +2 -0
  194. package/js/santrix/skins/ui/santrix-5/content.js.map +1 -0
  195. package/js/santrix/skins/ui/santrix-5/content.min.css +2 -0
  196. package/js/santrix/skins/ui/santrix-5/content.min.css.map +1 -0
  197. package/js/santrix/skins/ui/santrix-5/skin.css +4116 -0
  198. package/js/santrix/skins/ui/santrix-5/skin.js +2 -0
  199. package/js/santrix/skins/ui/santrix-5/skin.js.map +1 -0
  200. package/js/santrix/skins/ui/santrix-5/skin.min.css +2 -0
  201. package/js/santrix/skins/ui/santrix-5/skin.min.css.map +1 -0
  202. package/js/santrix/skins/ui/santrix-5/skin.shadowdom.css +30 -0
  203. package/js/santrix/skins/ui/santrix-5/skin.shadowdom.js +2 -0
  204. package/js/santrix/skins/ui/santrix-5/skin.shadowdom.js.map +1 -0
  205. package/js/santrix/skins/ui/santrix-5/skin.shadowdom.min.css +2 -0
  206. package/js/santrix/skins/ui/santrix-5/skin.shadowdom.min.css.map +1 -0
  207. package/js/santrix/skins/ui/santrix-5-dark/content.css +766 -0
  208. package/js/santrix/skins/ui/santrix-5-dark/content.inline.css +779 -0
  209. package/js/santrix/skins/ui/santrix-5-dark/content.inline.js +2 -0
  210. package/js/santrix/skins/ui/santrix-5-dark/content.inline.js.map +1 -0
  211. package/js/santrix/skins/ui/santrix-5-dark/content.inline.min.css +2 -0
  212. package/js/santrix/skins/ui/santrix-5-dark/content.inline.min.css.map +1 -0
  213. package/js/santrix/skins/ui/santrix-5-dark/content.js +2 -0
  214. package/js/santrix/skins/ui/santrix-5-dark/content.js.map +1 -0
  215. package/js/santrix/skins/ui/santrix-5-dark/content.min.css +2 -0
  216. package/js/santrix/skins/ui/santrix-5-dark/content.min.css.map +1 -0
  217. package/js/santrix/skins/ui/santrix-5-dark/skin.css +4116 -0
  218. package/js/santrix/skins/ui/santrix-5-dark/skin.js +2 -0
  219. package/js/santrix/skins/ui/santrix-5-dark/skin.js.map +1 -0
  220. package/js/santrix/skins/ui/santrix-5-dark/skin.min.css +2 -0
  221. package/js/santrix/skins/ui/santrix-5-dark/skin.min.css.map +1 -0
  222. package/js/santrix/skins/ui/santrix-5-dark/skin.shadowdom.css +30 -0
  223. package/js/santrix/skins/ui/santrix-5-dark/skin.shadowdom.js +2 -0
  224. package/js/santrix/skins/ui/santrix-5-dark/skin.shadowdom.js.map +1 -0
  225. package/js/santrix/skins/ui/santrix-5-dark/skin.shadowdom.min.css +2 -0
  226. package/js/santrix/skins/ui/santrix-5-dark/skin.shadowdom.min.css.map +1 -0
  227. package/js/santrix/themes/silver/theme.js +30787 -0
  228. package/js/santrix/themes/silver/theme.min.js +339 -0
  229. package/package.json +49 -0
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SanTrix version 0.1.0 (2026-01-18)
3
+ * Copyright (c) 2026 SanTrix Team
4
+ * Portions Copyright (c) 2022 Ephox Corporation DBA Tiny Technologies, Inc.
5
+ * Licensed under the MIT license (https://github.com/NopeThisIsShini/SanTrix/blob/main/LICENSE.TXT)
6
+ */
7
+ !function(){"use strict";var t=santrix.util.Tools.resolve("santrix.PluginManager");const e=t=>e=>(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(n=o=t,(r=String).prototype.isPrototypeOf(n)||(null===(s=o.constructor)||void 0===s?void 0:s.name)===r.name)?"string":e;var n,o,r,s})(e)===t,n=t=>e=>typeof e===t,o=e("string"),r=e("object"),s=e("array"),i=n("boolean"),l=t=>!(t=>null==t)(t),a=n("function"),d=n("number"),c=()=>{},u=t=>()=>t,m=(t,e)=>t===e,p=t=>e=>!t(e),g=u(!1);class h{constructor(t,e){this.tag=t,this.value=e}static some(t){return new h(!0,t)}static none(){return h.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?h.some(t(this.value)):h.none()}bind(t){return this.tag?t(this.value):h.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:h.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(null!=t?t:"Called getOrDie on None")}static from(t){return l(t)?h.some(t):h.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}h.singletonNone=new h(!1);const f=Array.prototype.slice,y=Array.prototype.indexOf,v=Array.prototype.push,C=(t,e)=>{return n=t,o=e,y.call(n,o)>-1;var n,o},b=(t,e)=>{for(let n=0,o=t.length;n<o;n++)if(e(t[n],n))return!0;return!1},N=(t,e)=>{const n=t.length,o=new Array(n);for(let r=0;r<n;r++){const n=t[r];o[r]=e(n,r)}return o},S=(t,e)=>{for(let n=0,o=t.length;n<o;n++)e(t[n],n)},L=(t,e)=>{const n=[];for(let o=0,r=t.length;o<r;o++){const r=t[o];e(r,o)&&n.push(r)}return n},x=(t,e,n)=>(S(t,(t,o)=>{n=e(n,t,o)}),n),O=(t,e,n)=>{for(let o=0,r=t.length;o<r;o++){const r=t[o];if(e(r,o))return h.some(r);if(n(r,o))break}return h.none()},A=(t,e)=>O(t,e,g),T=(t,e)=>(t=>{const e=[];for(let n=0,o=t.length;n<o;++n){if(!s(t[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+t);v.apply(e,t[n])}return e})(N(t,e)),E=t=>{const e=f.call(t,0);return e.reverse(),e},k=(t,e)=>e>=0&&e<t.length?h.some(t[e]):h.none(),w=t=>k(t,0),D=t=>k(t,t.length-1),B=(t,e)=>{const n=[],o=a(e)?t=>b(n,n=>e(n,t)):t=>C(n,t);for(let e=0,r=t.length;e<r;e++){const r=t[e];o(r)||n.push(r)}return n},M=(t,e,n=m)=>t.exists(t=>n(t,e)),P=(t,e,n)=>t.isSome()&&e.isSome()?h.some(n(t.getOrDie(),e.getOrDie())):h.none(),I=t=>{if(null==t)throw new Error("Node cannot be null or undefined");return{dom:t}},R=(t,e)=>{const n=(e||document).createElement("div");if(n.innerHTML=t,!n.hasChildNodes()||n.childNodes.length>1){const e="HTML does not have a single root node";throw console.error(e,t),new Error(e)}return I(n.childNodes[0])},U=(t,e)=>{const n=(e||document).createElement(t);return I(n)},$=I,_=(t,e)=>{const n=t.dom;if(1!==n.nodeType)return!1;{const t=n;if(void 0!==t.matches)return t.matches(e);if(void 0!==t.msMatchesSelector)return t.msMatchesSelector(e);if(void 0!==t.webkitMatchesSelector)return t.webkitMatchesSelector(e);if(void 0!==t.mozMatchesSelector)return t.mozMatchesSelector(e);throw new Error("Browser lacks native selectors")}},H=(t,e)=>t.dom===e.dom,F=_,V="undefined"!=typeof window?window:Function("return this;")(),j=(t,e)=>((t,e)=>{let n=null!=e?e:V;for(let e=0;e<t.length&&null!=n;++e)n=n[t[e]];return n})(t.split("."),e),K=Object.getPrototypeOf,z=t=>{const e=j("ownerDocument.defaultView",t);return r(t)&&((t=>((t,e)=>{const n=((t,e)=>j(t,e))(t,e);if(null==n)throw new Error(t+" not available on this browser");return n})("HTMLElement",t))(e).prototype.isPrototypeOf(t)||/^HTML\w*Element$/.test(K(t).constructor.name))},Q=t=>t.dom.nodeName.toLowerCase(),W=t=>t.dom.nodeType,q=t=>e=>W(e)===t,Z=t=>G(t)&&z(t.dom),G=q(1),J=q(3),X=q(9),Y=q(11),tt=t=>e=>G(e)&&Q(e)===t,et=t=>h.from(t.dom.parentNode).map($),nt=t=>N(t.dom.childNodes,$),ot=(t,e)=>{const n=t.dom.childNodes;return h.from(n[e]).map($)},rt=t=>ot(t,0),st=t=>ot(t,t.dom.childNodes.length-1),it=a(Element.prototype.attachShadow)&&a(Node.prototype.getRootNode)?t=>$(t.dom.getRootNode()):t=>X(t)?t:$(t.dom.ownerDocument),lt=t=>$(t.dom.host),at=t=>{const e=J(t)?t.dom.parentNode:t.dom;if(null==e||null===e.ownerDocument)return!1;const n=e.ownerDocument;return(t=>{const e=it(t);return Y(n=e)&&l(n.dom.host)?h.some(e):h.none();var n})($(e)).fold(()=>n.body.contains(e),(o=at,r=lt,t=>o(r(t))));var o,r};var dt=(t,e,n,o,r)=>t(n,o)?h.some(n):a(r)&&r(n)?h.none():e(n,o,r);const ct=(t,e,n)=>{let o=t.dom;const r=a(n)?n:g;for(;o.parentNode;){o=o.parentNode;const t=$(o);if(e(t))return h.some(t);if(r(t))break}return h.none()},ut=(t,e,n)=>dt((t,e)=>e(t),ct,t,e,n),mt=(t,e,n)=>ct(t,t=>_(t,e),n),pt=(t,e)=>{et(t).each(n=>{n.dom.insertBefore(e.dom,t.dom)})},gt=(t,e)=>{t.dom.appendChild(e.dom)},ht=(t,e)=>{S(e,e=>{gt(t,e)})},ft=t=>{t.dom.textContent="",S(nt(t),t=>{yt(t)})},yt=t=>{const e=t.dom;null!==e.parentNode&&e.parentNode.removeChild(e)};var vt=santrix.util.Tools.resolve("santrix.dom.RangeUtils"),Ct=santrix.util.Tools.resolve("santrix.dom.TreeWalker"),bt=santrix.util.Tools.resolve("santrix.util.VK");const Nt=t=>N(t,$),St=Object.keys,Lt=(t,e)=>{const n=St(t);for(let o=0,r=n.length;o<r;o++){const r=n[o];e(t[r],r)}},xt=(t,e)=>{const n=t.dom;Lt(e,(t,e)=>{((t,e,n)=>{if(!(o(n)||i(n)||d(n)))throw console.error("Invalid call to Attribute.set. Key ",e,":: Value ",n,":: Element ",t),new Error("Attribute value was not simple");t.setAttribute(e,n+"")})(n,e,t)})},Ot=t=>x(t.dom.attributes,(t,e)=>(t[e.name]=e.value,t),{}),At=t=>(t=>$(t.dom.cloneNode(!0)))(t),Tt=(t,e)=>{const n=((t,e)=>{const n=U(e),o=Ot(t);return xt(n,o),n})(t,e);var o,r;r=n,(t=>h.from(t.dom.nextSibling).map($))(o=t).fold(()=>{et(o).each(t=>{gt(t,r)})},t=>{pt(t,r)});const s=nt(t);return ht(n,s),yt(t),n};var Et=santrix.util.Tools.resolve("santrix.dom.DOMUtils"),kt=santrix.util.Tools.resolve("santrix.util.Tools");const wt=t=>e=>l(e)&&e.nodeName.toLowerCase()===t,Dt=t=>e=>l(e)&&t.test(e.nodeName),Bt=t=>l(t)&&3===t.nodeType,Mt=t=>l(t)&&1===t.nodeType,Pt=Dt(/^(OL|UL|DL)$/),It=Dt(/^(OL|UL)$/),Rt=wt("ol"),Ut=Dt(/^(LI|DT|DD)$/),$t=Dt(/^(DT|DD)$/),_t=Dt(/^(TH|TD)$/),Ht=wt("br"),Ft=(t,e)=>l(e)&&e.nodeName in t.schema.getTextBlockElements(),Vt=(t,e)=>l(t)&&t.nodeName in e,jt=(t,e)=>l(e)&&e.nodeName in t.schema.getVoidElements(),Kt=(t,e,n)=>{const o=t.isEmpty(e);return!(n&&t.select("span[data-mce-type=bookmark]",e).length>0)&&o},zt=(t,e)=>t.isChildOf(e,t.getRoot()),Qt=t=>e=>e.options.get(t),Wt=Qt("lists_indent_on_tab"),qt=Qt("forced_root_block"),Zt=Qt("forced_root_block_attrs"),Gt=(t,e)=>{const n=t.dom,o=t.schema.getBlockElements(),r=n.createFragment(),s=qt(t),i=Zt(t);let l,a,d=!1;for(a=n.create(s,i),Vt(e.firstChild,o)||r.appendChild(a);l=e.firstChild;){const t=l.nodeName;d||"SPAN"===t&&"bookmark"===l.getAttribute("data-mce-type")||(d=!0),Vt(l,o)?(r.appendChild(l),a=null):(a||(a=n.create(s,i),r.appendChild(a)),a.appendChild(l))}return!d&&a&&a.appendChild(n.create("br",{"data-mce-bogus":"1"})),r},Jt=Et.DOM,Xt=tt("dd"),Yt=tt("dt"),te=(t,e)=>{var n;Xt(e)?Tt(e,"dt"):Yt(e)&&(n=e,h.from(n.dom.parentElement).map($)).each(n=>((t,e,n)=>{const o=Jt.select('span[data-mce-type="bookmark"]',e),r=Gt(t,n),s=Jt.createRng();s.setStartAfter(n),s.setEndAfter(e);const i=s.extractContents();for(let e=i.firstChild;e;e=e.firstChild)if("LI"===e.nodeName&&t.dom.isEmpty(e)){Jt.remove(e);break}t.dom.isEmpty(i)||Jt.insertAfter(i,e),Jt.insertAfter(r,e);const l=n.parentElement;l&&Kt(t.dom,l)&&(t=>{const e=t.parentNode;e&&kt.each(o,t=>{e.insertBefore(t,n.parentNode)}),Jt.remove(t)})(l),Jt.remove(n),Kt(t.dom,e)&&Jt.remove(e)})(t,n.dom,e.dom))},ee=t=>{Yt(t)&&Tt(t,"dd")},ne=(t,e)=>{if(Bt(t))return{container:t,offset:e};const n=vt.getNode(t,e);return Bt(n)?{container:n,offset:e>=t.childNodes.length?n.data.length:0}:n.previousSibling&&Bt(n.previousSibling)?{container:n.previousSibling,offset:n.previousSibling.data.length}:n.nextSibling&&Bt(n.nextSibling)?{container:n.nextSibling,offset:0}:{container:t,offset:e}},oe=t=>{const e=t.cloneRange(),n=ne(t.startContainer,t.startOffset);e.setStart(n.container,n.offset);const o=ne(t.endContainer,t.endOffset);return e.setEnd(o.container,o.offset),e},re=["OL","UL","DL"],se=re.join(","),ie=(t,e)=>{const n=e||t.selection.getStart(!0);return t.dom.getParent(n,se,de(t,n))},le=t=>{const e=t.selection.getSelectedBlocks();return L(((t,e)=>{const n=kt.map(e,e=>t.dom.getParent(e,"li,dd,dt",de(t,e))||e);return B(n)})(t,e),Ut)},ae=(t,e)=>{const n=t.dom.getParents(e,"TD,TH");return n.length>0?n[0]:t.getBody()},de=(t,e)=>{const n=t.dom.getParents(e,t.dom.isBlock),o=A(n,e=>{return n=t.schema,!Pt(o=e)&&!Ut(o)&&b(re,t=>n.isValidChild(o.nodeName,t));var n,o});return o.getOr(t.getBody())},ce=(t,e)=>{const n=t.dom.getParents(e,"ol,ul",de(t,e));return D(n)},ue=(t,e)=>{const n=N(e,e=>ce(t,e).getOr(e));return B(n)},me=t=>/\btox\-/.test(t.className),pe=(t,e)=>O(t,Pt,_t).exists(t=>t.nodeName===e&&!me(t)),ge=(t,e)=>null!==e&&!t.dom.isEditable(e),he=(t,e)=>{const n=t.dom.getParent(e,"ol,ul,dl");return ge(t,n)},fe=(t,e)=>{const n=t.selection.getNode();return e({parents:t.dom.getParents(n),element:n}),t.on("NodeChange",e),()=>t.off("NodeChange",e)},ye=(t,e)=>{const n=(e||document).createDocumentFragment();return S(t,t=>{n.appendChild(t.dom)}),$(n)},ve=(t,e,n)=>t.dispatch("ListMutation",{action:e,element:n}),Ce=(be=/^\s+|\s+$/g,t=>t.replace(be,""));var be;const Ne=(t,e,n)=>{((t,e,n)=>{if(!o(n))throw console.error("Invalid call to CSS.set. Property ",e,":: Value ",n,":: Element ",t),new Error("CSS value must be a string: "+n);(t=>void 0!==t.style&&a(t.style.getPropertyValue))(t)&&t.style.setProperty(e,n)})(t.dom,e,n)},Se=t=>F(t,"OL,UL"),Le=t=>rt(t).exists(Se),xe=t=>"listAttributes"in t,Oe=t=>"isComment"in t,Ae=t=>t.depth>0,Te=t=>t.isSelected,Ee=t=>{const e=nt(t),n=st(t).exists(Se)?e.slice(0,-1):e;return N(n,At)},ke=(t,e)=>{gt(t.item,e.list)},we=(t,e)=>{const n={list:U(e,t),item:U("li",t)};return gt(n.list,n.item),n},De=(t,e,n)=>{const o=e.slice(0,n.depth);return D(o).each(e=>{if(xe(n)){const o=((t,e,n)=>{const o=U("li",t);return xt(o,e),ht(o,n),o})(t,n.itemAttributes,n.content);((t,e)=>{gt(t.list,e),t.item=e})(e,o),((t,e)=>{Q(t.list)!==e.listType&&(t.list=Tt(t.list,e.listType)),xt(t.list,e.listAttributes)})(e,n)}else if((t=>"isFragment"in t)(n))ht(e.item,n.content);else{const t=R(`\x3c!--${n.content}--\x3e`);gt(e.list,t)}}),o},Be=(t,e)=>{let n=h.none();const o=x(e,(e,o,r)=>Oe(o)?0===r?(n=h.some(o),e):De(t,e,o):o.depth>e.length?((t,e,n)=>{const o=((t,e,n)=>{const o=[];for(let r=0;r<n;r++)o.push(we(t,xe(e)?e.listType:e.parentListType));return o})(t,n,n.depth-e.length);var r;return(t=>{for(let e=1;e<t.length;e++)ke(t[e-1],t[e])})(o),((t,e)=>{for(let e=0;e<t.length-1;e++)Ne(t[e].item,"list-style-type","none");D(t).each(t=>{xe(e)&&(xt(t.list,e.listAttributes),xt(t.item,e.itemAttributes)),ht(t.item,e.content)})})(o,n),r=o,P(D(e),w(r),ke),e.concat(o)})(t,e,o):De(t,e,o),[]);return n.each(t=>{const e=R(`\x3c!--${t.content}--\x3e`);w(o).each(t=>{((t,e)=>{rt(t).fold(()=>{gt(t,e)},n=>{t.dom.insertBefore(e.dom,n.dom)})})(t.list,e)})}),w(o).map(t=>t.list)},Me=t=>(S(t,(e,n)=>{((t,e)=>{const n=t[e].depth,o=t=>t.depth===n&&!t.dirty,r=t=>t.depth<n;return O(E(t.slice(0,e)),o,r).orThunk(()=>O(t.slice(e+1),o,r))})(t,n).fold(()=>{e.dirty&&xe(e)&&(t=>{t.listAttributes=((t,e)=>{const n={};var o;return((t,e,n,o)=>{Lt(t,(t,r)=>{(e(t,r)?n:o)(t,r)})})(t,e,(o=n,(t,e)=>{o[e]=t}),c),n})(t.listAttributes,(t,e)=>"start"!==e)})(e)},t=>{return o=t,void(xe(n=e)&&xe(o)&&(n.listType=o.listType,n.listAttributes={...o.listAttributes}));var n,o})}),t),Pe=(t,e,n,o)=>{var r,s;if(8===W(s=o)||"#comment"===Q(s))return[{depth:t+1,content:null!==(r=o.dom.nodeValue)&&void 0!==r?r:"",dirty:!1,isSelected:!1,isComment:!0}];e.each(t=>{H(t.start,o)&&n.set(!0)});const i=((t,e,n)=>et(t).filter(G).map(o=>({depth:e,dirty:!1,isSelected:n,content:Ee(t),itemAttributes:Ot(t),listAttributes:Ot(o),listType:Q(o),isInPreviousLi:!1})))(o,t,n.get());e.each(t=>{H(t.end,o)&&n.set(!1)});const l=st(o).filter(Se).map(o=>Re(t,e,n,o)).getOr([]);return i.toArray().concat(l)},Ie=(t,e,n,o)=>rt(o).filter(Se).fold(()=>Pe(t,e,n,o),r=>{const s=x(nt(o),(o,s,i)=>{if(0===i)return o;if(F(s,"LI"))return o.concat(Pe(t,e,n,s));{const e={isFragment:!0,depth:t,content:[s],isSelected:!1,dirty:!1,parentListType:Q(r)};return o.concat(e)}},[]);return Re(t,e,n,r).concat(s)}),Re=(t,e,n,o)=>T(nt(o),o=>(Se(o)?Re:Ie)(t+1,e,n,o)),Ue=(t,e,n)=>{const o=((t,e)=>{const n=(()=>{let t=!1;return{get:()=>t,set:e=>{t=e}}})();return N(t,t=>({sourceList:t,entries:Re(0,e,n,t)}))})(e,(t=>{const e=N(le(t),$);return P(A(e,p(Le)),A(E(e),p(Le)),(t,e)=>({start:t,end:e}))})(t));S(o,e=>{((t,e)=>{S(L(t,Te),t=>((t,e)=>{switch(t){case"Indent":e.depth++;break;case"Outdent":e.depth--;break;case"Flatten":e.depth=0}e.dirty=!0})(e,t))})(e.entries,n);const o=((t,e)=>T(((t,e)=>{if(0===t.length)return[];{let n=e(t[0]);const o=[];let r=[];for(let s=0,i=t.length;s<i;s++){const i=t[s],l=e(i);l!==n&&(o.push(r),r=[]),n=l,r.push(i)}return 0!==r.length&&o.push(r),o}})(e,Ae),e=>w(e).exists(Ae)?((t,e)=>{const n=Me(e);return Be(t.contentDocument,n).toArray()})(t,e):((t,e)=>{const n=Me(e);return N(n,e=>{const n=Oe(e)?ye([R(`\x3c!--${e.content}--\x3e`)]):ye(e.content);return $(Gt(t,n.dom))})})(t,e)))(t,e.entries);var r;S(o,e=>{ve(t,"Indent"===n?"IndentList":"OutdentList",e.dom)}),r=e.sourceList,S(o,t=>{pt(r,t)}),yt(e.sourceList)})},$e=(t,e)=>{const n=Nt((t=>{const e=(t=>{const e=ce(t,t.selection.getStart()),n=L(t.selection.getSelectedBlocks(),It);return e.toArray().concat(n)})(t),n=(t=>{const e=t.selection.getStart();return t.dom.getParents(e,"ol,ul",de(t,e))})(t);return A(n,t=>{return e=$(t),et(e).exists(t=>Ut(t.dom)&&rt(t).exists(t=>!Pt(t.dom))&&st(t).exists(t=>!Pt(t.dom)));var e}).fold(()=>ue(t,e),t=>[t])})(t)),o=Nt((t=>L(le(t),$t))(t));let r=!1;if(n.length||o.length){const s=t.selection.getBookmark();Ue(t,n,e),((t,e,n)=>{S(n,"Indent"===e?ee:e=>te(t,e))})(t,e,o),t.selection.moveToBookmark(s),t.selection.setRng(oe(t.selection.getRng())),t.nodeChanged(),r=!0}return r},_e=(t,e)=>!(t=>{const e=ie(t);return ge(t,e)})(t)&&$e(t,e),He=t=>_e(t,"Indent"),Fe=t=>_e(t,"Outdent"),Ve=t=>_e(t,"Flatten"),je=t=>"\ufeff"===t;var Ke=santrix.util.Tools.resolve("santrix.dom.BookmarkManager");const ze=Et.DOM,Qe=t=>{const e={},n=n=>{let o=t[n?"startContainer":"endContainer"],r=t[n?"startOffset":"endOffset"];if(Mt(o)){const t=ze.create("span",{"data-mce-type":"bookmark"});o.hasChildNodes()?(r=Math.min(r,o.childNodes.length-1),n?o.insertBefore(t,o.childNodes[r]):ze.insertAfter(t,o.childNodes[r])):o.appendChild(t),o=t,r=0}e[n?"startContainer":"endContainer"]=o,e[n?"startOffset":"endOffset"]=r};return n(!0),t.collapsed||n(),e},We=t=>{const e=e=>{let n=t[e?"startContainer":"endContainer"],o=t[e?"startOffset":"endOffset"];if(n){if(Mt(n)&&n.parentNode){const t=n;o=(t=>{var e;let n=null===(e=t.parentNode)||void 0===e?void 0:e.firstChild,o=0;for(;n;){if(n===t)return o;Mt(n)&&"bookmark"===n.getAttribute("data-mce-type")||o++,n=n.nextSibling}return-1})(n),n=n.parentNode,ze.remove(t),!n.hasChildNodes()&&ze.isBlock(n)&&n.appendChild(ze.create("br"))}t[e?"startContainer":"endContainer"]=n,t[e?"startOffset":"endOffset"]=o}};e(!0),e();const n=ze.createRng();return n.setStart(t.startContainer,t.startOffset),t.endContainer&&n.setEnd(t.endContainer,t.endOffset),oe(n)},qe=t=>{switch(t){case"UL":return"ToggleUlList";case"OL":return"ToggleOlList";case"DL":return"ToggleDLList"}},Ze=(t,e)=>{kt.each(e,(e,n)=>{t.setAttribute(n,e)})},Ge=(t,e,n)=>{((t,e,n)=>{const o=n["list-style-type"]?n["list-style-type"]:null;t.setStyle(e,"list-style-type",o)})(t,e,n),((t,e,n)=>{Ze(e,n["list-attributes"]),kt.each(t.select("li",e),t=>{Ze(t,n["list-item-attributes"])})})(t,e,n)},Je=(t,e)=>l(e)&&!Vt(e,t.schema.getBlockElements()),Xe=(t,e,n,o)=>{let r=e[n?"startContainer":"endContainer"];const s=e[n?"startOffset":"endOffset"];Mt(r)&&(r=r.childNodes[Math.min(s,r.childNodes.length-1)]||r),!n&&Ht(r.nextSibling)&&(r=r.nextSibling);const i=(e,n)=>{var r;const s=new Ct(e,(e=>{for(;!t.dom.isBlock(e)&&e.parentNode&&o!==e;)e=e.parentNode;return e})(e)),i=n?"next":"prev";let l;for(;l=s[i]();)if(!jt(t,l)&&!je(l.textContent)&&0!==(null===(r=l.textContent)||void 0===r?void 0:r.length))return h.some(l);return h.none()};if(n&&Bt(r))if(je(r.textContent))r=i(r,!1).getOr(r);else for(null!==r.parentNode&&Je(t,r.parentNode)&&(r=r.parentNode);null!==r.previousSibling&&(Je(t,r.previousSibling)||Bt(r.previousSibling));)r=r.previousSibling;if(!n&&Bt(r))if(je(r.textContent))r=i(r,!0).getOr(r);else for(null!==r.parentNode&&Je(t,r.parentNode)&&(r=r.parentNode);null!==r.nextSibling&&(Je(t,r.nextSibling)||Bt(r.nextSibling));)r=r.nextSibling;for(;r.parentNode!==o;){const e=r.parentNode;if(Ft(t,r))return r;if(/^(TD|TH)$/.test(e.nodeName))return r;r=e}return r},Ye=(t,e,n)=>{const o=t.selection.getRng();let r="LI";const s=de(t,((t,e)=>{const n=t.selection.getStart(!0),o=Xe(t,e,!0,t.getBody());return r=$(o),s=$(e.commonAncestorContainer),i=r,l=function(t,...e){return(...n)=>{const o=e.concat(n);return t.apply(null,o)}}(H,s),ct(i,l,void 0).isSome()?e.commonAncestorContainer:n;var r,s,i,l})(t,o)),i=t.dom;if("false"===i.getContentEditable(t.selection.getNode()))return;"DL"===(e=e.toUpperCase())&&(r="DT");const l=Qe(o),a=L(((t,e,n)=>{const o=[],r=t.dom,s=Xe(t,e,!0,n),i=Xe(t,e,!1,n);let l;const a=[];for(let t=s;t&&(a.push(t),t!==i);t=t.nextSibling);return kt.each(a,e=>{var s;if(Ft(t,e))return o.push(e),void(l=null);if(r.isBlock(e)||Ht(e))return Ht(e)&&r.remove(e),void(l=null);const i=e.nextSibling;Ke.isBookmarkNode(e)&&(Pt(i)||Ft(t,i)||!i&&e.parentNode===n)?l=null:(l||(l=r.create("p"),null===(s=e.parentNode)||void 0===s||s.insertBefore(l,e),o.push(l)),l.appendChild(e))}),o})(t,o,s),t.dom.isEditable);kt.each(a,o=>{let s;const l=o.previousSibling,a=o.parentNode;Ut(a)||(l&&Pt(l)&&l.nodeName===e&&((t,e,n)=>{const o=t.getStyle(e,"list-style-type");let r=n?n["list-style-type"]:"";return r=null===r?"":r,o===r})(i,l,n)?(s=l,o=i.rename(o,r),l.appendChild(o)):(s=i.create(e),a.insertBefore(s,o),s.appendChild(o),o=i.rename(o,r)),((t,e)=>{kt.each(["margin","margin-right","margin-bottom","margin-left","margin-top","padding","padding-right","padding-bottom","padding-left","padding-top"],n=>t.setStyle(e,n,""))})(i,o),Ge(i,s,n),en(t.dom,s))}),t.selection.setRng(We(l))},tn=(t,e,n)=>{return((t,e)=>Pt(t)&&t.nodeName===(null==e?void 0:e.nodeName))(e,n)&&((t,e,n)=>t.getStyle(e,"list-style-type",!0)===t.getStyle(n,"list-style-type",!0))(t,e,n)&&(o=n,e.className===o.className);var o},en=(t,e)=>{let n,o=e.nextSibling;if(tn(t,e,o)){const r=o;for(;n=r.firstChild;)e.appendChild(n);t.remove(r)}if(o=e.previousSibling,tn(t,e,o)){const r=o;for(;n=r.lastChild;)e.insertBefore(n,e.firstChild);t.remove(r)}},nn=(t,e,n,o)=>{if(e.nodeName!==n){const r=t.dom.rename(e,n);Ge(t.dom,r,o),ve(t,qe(n),r)}else Ge(t.dom,e,o),ve(t,qe(n),e)},on=(t,e,n,o)=>{if(e.classList.forEach((t,n,o)=>{t.startsWith("tox-")&&(o.remove(t),0===o.length&&e.removeAttribute("class"))}),e.nodeName!==n){const r=t.dom.rename(e,n);Ge(t.dom,r,o),ve(t,qe(n),r)}else Ge(t.dom,e,o),ve(t,qe(n),e)},rn=t=>"list-style-type"in t,sn=(t,e,n)=>{const o=ie(t);if(he(t,o))return;const s=(t=>{const e=ie(t),n=t.selection.getSelectedBlocks();return((t,e)=>l(t)&&1===e.length&&e[0]===t)(e,n)?(t=>L(t.querySelectorAll(se),Pt))(e):L(n,t=>Pt(t)&&e!==t)})(t),i=r(n)?n:{};s.length>0?((t,e,n,o,r)=>{const s=Pt(e);if(!s||e.nodeName!==o||rn(r)||me(e)){Ye(t,o,r);const i=Qe(t.selection.getRng()),l=s?[e,...n]:n,a=s&&me(e)?on:nn;kt.each(l,e=>{a(t,e,o,r)}),t.selection.setRng(We(i))}else Ve(t)})(t,o,s,e,i):((t,e,n,o)=>{if(e!==t.getBody())if(e)if(e.nodeName!==n||rn(o)||me(e)){const r=Qe(t.selection.getRng());me(e)&&e.classList.forEach((t,n,o)=>{t.startsWith("tox-")&&(o.remove(t),0===o.length&&e.removeAttribute("class"))}),Ge(t.dom,e,o);const s=t.dom.rename(e,n);en(t.dom,s),t.selection.setRng(We(r)),Ye(t,n,o),ve(t,qe(n),s)}else Ve(t);else Ye(t,n,o),ve(t,qe(n),e)})(t,o,e,i)},ln=Et.DOM,an=(t,e)=>{const n=kt.grep(t.select("ol,ul",e));kt.each(n,e=>{((t,e)=>{const n=e.parentElement;if(n&&"LI"===n.nodeName&&n.firstChild===e){const o=n.previousSibling;o&&"LI"===o.nodeName?(o.appendChild(e),Kt(t,n)&&ln.remove(n)):ln.setStyle(n,"listStyleType","none")}if(Pt(n)){const t=n.previousSibling;t&&"LI"===t.nodeName&&t.appendChild(e)}})(t,e)})},dn=(t,e,n,o)=>{let r=e.startContainer;const s=e.startOffset;if(Bt(r)&&(n?s<r.data.length:s>0))return r;const i=t.schema.getNonEmptyElements();Mt(r)&&(r=vt.getNode(r,s));const l=new Ct(r,o);n&&((t,e)=>!!Ht(e)&&t.isBlock(e.nextSibling)&&!Ht(e.previousSibling))(t.dom,r)&&l.next();const a=n?l.next.bind(l):l.prev2.bind(l);for(;r=a();){if("LI"===r.nodeName&&!r.hasChildNodes())return r;if(i[r.nodeName])return r;if(Bt(r)&&r.data.length>0)return r}return null},cn=(t,e)=>{const n=e.childNodes;return 1===n.length&&!Pt(n[0])&&t.isBlock(n[0])},un=t=>h.from(t).map($).filter(Z).exists(t=>((t,e=!1)=>{return at(t)?t.dom.isContentEditable:(n=t,dt((t,e)=>_(t,e),mt,n,"[contenteditable]",void 0)).fold(u(e),t=>"true"===(t=>t.dom.contentEditable)(t));var n})(t)&&!C(["details"],Q(t))),mn=(t,e,n)=>{let o;const r=cn(t,n)?n.firstChild:n;if(((t,e)=>{cn(t,e)&&un(e.firstChild)&&t.remove(e.firstChild,!0)})(t,e),!Kt(t,e,!0))for(;o=e.firstChild;)r.appendChild(o)},pn=(t,e,n)=>{let o;const r=e.parentNode;if(!zt(t,e)||!zt(t,n))return;Pt(n.lastChild)&&(o=n.lastChild),r===n.lastChild&&Ht(r.previousSibling)&&t.remove(r.previousSibling);const s=n.lastChild;s&&Ht(s)&&e.hasChildNodes()&&t.remove(s),Kt(t,n,!0)&&ft($(n)),mn(t,e,n),o&&n.appendChild(o);const i=((t,e)=>{const n=t.dom,o=e.dom;return n!==o&&n.contains(o)})($(n),$(e))?t.getParents(e,Pt,n):[];t.remove(e),S(i,e=>{Kt(t,e)&&e!==t.getRoot()&&t.remove(e)})},gn=(t,e)=>{const n=t.dom,o=t.selection,r=o.getStart(),s=ae(t,r),i=n.getParent(o.getStart(),"LI",s);if(i){const r=i.parentElement;if(r===t.getBody()&&Kt(n,r))return!0;const l=oe(o.getRng()),a=n.getParent(dn(t,l,e,s),"LI",s),d=a&&(e?n.isChildOf(i,a):n.isChildOf(a,i));if(a&&a!==i&&!d)return t.undoManager.transact(()=>{var n,o;e?((t,e,n,o)=>{const r=t.dom;if(r.isEmpty(o))((t,e,n)=>{ft($(n)),pn(t.dom,e,n),t.selection.setCursorLocation(n,0)})(t,n,o);else{const s=Qe(e);pn(r,n,o),t.selection.setRng(We(s))}})(t,l,a,i):(null===(o=(n=i).parentNode)||void 0===o?void 0:o.firstChild)===n?Fe(t):((t,e,n,o)=>{const r=Qe(e);pn(t.dom,n,o);const s=We(r);t.selection.setRng(s)})(t,l,i,a)}),!0;if(d&&!e&&a!==i)return t.undoManager.transact(()=>{if(l.commonAncestorContainer.parentElement){const e=Qe(l),o=l.commonAncestorContainer.parentElement;mn(n,l.commonAncestorContainer.parentElement,a),o.remove();const r=We(e);t.selection.setRng(r)}}),!0;if(!a&&!e&&0===l.startOffset&&0===l.endOffset)return t.undoManager.transact(()=>{Ve(t)}),!0}return!1},hn=t=>{const e=t.selection.getStart(),n=ae(t,e);return t.dom.getParent(e,"LI,DT,DD",n)||le(t).length>0},fn=(t,e)=>{const n=t.selection;return!he(t,n.getNode())&&(n.isCollapsed()?((t,e)=>gn(t,e)||((t,e)=>{const n=t.dom,o=t.selection.getStart(),r=ae(t,o),s=n.getParent(o,n.isBlock,r);if(s&&n.isEmpty(s,void 0,{checkRootAsContent:!0})){const o=oe(t.selection.getRng()),i=n.getParent(dn(t,o,e,r),"LI",r);if(i){const l=t=>C(["td","th","caption"],Q(t)),a=t=>t.dom===r;return!!((t,e,n=m)=>P(t,e,n).getOr(t.isNone()&&e.isNone()))(ut($(i),l,a),ut($(o.startContainer),l,a),H)&&(t.undoManager.transact(()=>{const o=i.parentNode;((t,e,n)=>{const o=t.getParent(e.parentNode,t.isBlock,n);t.remove(e),o&&t.isEmpty(o)&&t.remove(o)})(n,s,r),en(n,o),t.selection.select(i,!0),t.selection.collapse(e)}),!0)}}return!1})(t,e))(t,e):(t=>!!hn(t)&&(t.undoManager.transact(()=>{t.execCommand("Delete"),an(t.dom,t.getBody())}),!0))(t))},yn=t=>{const e=E(Ce(t).split("")),n=N(e,(t,e)=>{const n=t.toUpperCase().charCodeAt(0)-"A".charCodeAt(0)+1;return Math.pow(26,e)*n});return x(n,(t,e)=>t+e,0)},vn=t=>{if(--t<0)return"";{const e=t%26,n=Math.floor(t/26);return vn(n)+String.fromCharCode("A".charCodeAt(0)+e)}},Cn=t=>{const e=parseInt(t.start,10);return M(t.listStyleType,"upper-alpha")?vn(e):M(t.listStyleType,"lower-alpha")?vn(e).toLowerCase():t.start},bn=(t,e)=>()=>{const n=ie(t);return l(n)&&n.nodeName===e},Nn=t=>{t.addCommand("mceListProps",()=>{(t=>{const e=ie(t);Rt(e)&&!he(t,e)&&t.windowManager.open({title:"List Properties",body:{type:"panel",items:[{type:"input",name:"start",label:"Start list at number",inputMode:"numeric"}]},initialData:{start:Cn({start:t.dom.getAttrib(e,"start","1"),listStyleType:h.from(t.dom.getStyle(e,"list-style-type"))})},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],onSubmit:e=>{(t=>{switch((t=>/^[0-9]+$/.test(t)?2:/^[A-Z]+$/.test(t)?0:/^[a-z]+$/.test(t)?1:t.length>0?4:3)(t)){case 2:return h.some({listStyleType:h.none(),start:t});case 0:return h.some({listStyleType:h.some("upper-alpha"),start:yn(t).toString()});case 1:return h.some({listStyleType:h.some("lower-alpha"),start:yn(t).toString()});case 3:return h.some({listStyleType:h.none(),start:""});case 4:return h.none()}})(e.getData().start).each(e=>{t.execCommand("mceListUpdate",!1,{attrs:{start:"1"===e.start?"":e.start},styles:{"list-style-type":e.listStyleType.getOr("")}})}),e.close()}})})(t)})};var Sn=santrix.util.Tools.resolve("santrix.html.Node");const Ln=t=>3===t.type,xn=t=>0===t.length,On=t=>{const e=(e,n)=>{const o=Sn.create("li");S(e,t=>o.append(t)),n?t.insert(o,n,!0):t.append(o)},n=x(t.children(),(t,n)=>Ln(n)?[...t,n]:xn(t)||Ln(n)?t:(e(t,n),[]),[]);xn(n)||e(n)},An=(t,e)=>n=>(n.setEnabled(t.selection.isEditable()),fe(t,o=>{n.setActive(pe(o.parents,e)),n.setEnabled(!he(t,o.element)&&t.selection.isEditable())})),Tn=(t,e)=>n=>fe(t,o=>n.setEnabled(pe(o.parents,e)&&!he(t,o.element)));t.add("lists",t=>((t=>{(0,t.options.register)("lists_indent_on_tab",{processor:"boolean",default:!0})})(t),(t=>{t.on("PreInit",()=>{const{parser:e}=t;e.addNodeFilter("ul,ol",t=>S(t,On))})})(t),t.hasPlugin("rtc",!0)?Nn(t):((t=>{Wt(t)&&(t=>{t.on("keydown",e=>{e.keyCode!==bt.TAB||bt.metaKeyPressed(e)||t.undoManager.transact(()=>{(e.shiftKey?Fe(t):He(t))&&e.preventDefault()})})})(t),(t=>{t.on("ExecCommand",e=>{const n=e.command.toLowerCase();"delete"!==n&&"forwarddelete"!==n||!hn(t)||an(t.dom,t.getBody())}),t.on("keydown",e=>{e.keyCode===bt.BACKSPACE?fn(t,!1)&&e.preventDefault():e.keyCode===bt.DELETE&&fn(t,!0)&&e.preventDefault()})})(t)})(t),(t=>{t.on("BeforeExecCommand",e=>{const n=e.command.toLowerCase();"indent"===n?He(t):"outdent"===n&&Fe(t)}),t.addCommand("InsertUnorderedList",(e,n)=>{sn(t,"UL",n)}),t.addCommand("InsertOrderedList",(e,n)=>{sn(t,"OL",n)}),t.addCommand("InsertDefinitionList",(e,n)=>{sn(t,"DL",n)}),t.addCommand("RemoveList",()=>{Ve(t)}),Nn(t),t.addCommand("mceListUpdate",(e,n)=>{r(n)&&((t,e)=>{const n=ie(t);null===n||he(t,n)||t.undoManager.transact(()=>{r(e.styles)&&t.dom.setStyles(n,e.styles),r(e.attrs)&&Lt(e.attrs,(e,o)=>t.dom.setAttrib(n,o,e))})})(t,n)}),t.addQueryStateHandler("InsertUnorderedList",bn(t,"UL")),t.addQueryStateHandler("InsertOrderedList",bn(t,"OL")),t.addQueryStateHandler("InsertDefinitionList",bn(t,"DL"))})(t)),(t=>{const e=e=>()=>t.execCommand(e);t.hasPlugin("advlist")||(t.ui.registry.addToggleButton("numlist",{icon:"ordered-list",active:!1,tooltip:"Numbered list",onAction:e("InsertOrderedList"),onSetup:An(t,"OL")}),t.ui.registry.addToggleButton("bullist",{icon:"unordered-list",active:!1,tooltip:"Bullet list",onAction:e("InsertUnorderedList"),onSetup:An(t,"UL")}))})(t),(t=>{const e={text:"List properties...",icon:"ordered-list",onAction:()=>t.execCommand("mceListProps"),onSetup:Tn(t,"OL")};t.ui.registry.addMenuItem("listprops",e),t.ui.registry.addContextMenu("lists",{update:e=>{const n=ie(t,e);return Rt(n)?["listprops"]:[]}})})(t),(t=>({backspaceDelete:e=>{fn(t,e)}}))(t)))}();