goffeetabler/storage/public/dist/libs/hugerte/plugins/pagebreak/plugin.min.js
2026-09-12 23:29:45 -05:00

7 lines
No EOL
1.8 KiB
JavaScript

/**
* HugeRTE version 1.0.12 (2026-06-29)
* Copyright (c) 2022 Ephox Corporation DBA Tiny Technologies, Inc.
* Copyright (c) 2026 HugeRTE contributors
* Licensed under the MIT license (https://github.com/hugerte/hugerte/blob/main/LICENSE.TXT)
*/
!function(){"use strict";var e=hugerte.util.Tools.resolve("hugerte.PluginManager"),a=hugerte.util.Tools.resolve("hugerte.Env");const t=e=>a=>a.options.get(e),r=t("pagebreak_separator"),o=t("pagebreak_split_block"),n="mce-pagebreak",s=e=>{const t=`<img src="${a.transparentSrc}" class="${n}" data-mce-resize="false" data-mce-placeholder />`;return e?`<p>${t}</p>`:t},g=e=>a=>{const t=()=>{a.setEnabled(e.selection.isEditable())};return e.on("NodeChange",t),t(),()=>{e.off("NodeChange",t)}};e.add("pagebreak",e=>{(e=>{const a=e.options.register;a("pagebreak_separator",{processor:"string",default:"\x3c!-- pagebreak --\x3e"}),a("pagebreak_split_block",{processor:"boolean",default:!1})})(e),(e=>{e.addCommand("mcePageBreak",()=>{e.insertContent(s(o(e)))})})(e),(e=>{const a=()=>e.execCommand("mcePageBreak");e.ui.registry.addButton("pagebreak",{icon:"page-break",tooltip:"Page break",onAction:a,onSetup:g(e)}),e.ui.registry.addMenuItem("pagebreak",{text:"Page break",icon:"page-break",onAction:a,onSetup:g(e)})})(e),(e=>{const a=r(e),t=()=>o(e),g=new RegExp(a.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,e=>"\\"+e),"gi");e.on("BeforeSetContent",e=>{e.content=e.content.replace(g,s(t()))}),e.on("PreInit",()=>{e.serializer.addNodeFilter("img",r=>{let o,s,g=r.length;for(;g--;)if(o=r[g],s=o.attr("class"),s&&-1!==s.indexOf(n)){const r=o.parent;if(r&&e.schema.getBlockElements()[r.name]&&t()){r.type=3,r.value=a,r.raw=!0,o.remove();continue}o.type=3,o.value=a,o.raw=!0}})})})(e),(e=>{e.on("ResolveName",a=>{"IMG"===a.target.nodeName&&e.dom.hasClass(a.target,n)&&(a.name="pagebreak")})})(e)})}();