tinymce_plugins_pagebreak.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import {
  2. __commonJS
  3. } from "./chunk-2LSFTFF7.js";
  4. // node_modules/.pnpm/tinymce@5.10.7/node_modules/tinymce/plugins/pagebreak/plugin.js
  5. var require_plugin = __commonJS({
  6. "node_modules/.pnpm/tinymce@5.10.7/node_modules/tinymce/plugins/pagebreak/plugin.js"() {
  7. (function() {
  8. "use strict";
  9. var global$1 = tinymce.util.Tools.resolve("tinymce.PluginManager");
  10. var global = tinymce.util.Tools.resolve("tinymce.Env");
  11. var getSeparatorHtml = function(editor) {
  12. return editor.getParam("pagebreak_separator", "<!-- pagebreak -->");
  13. };
  14. var shouldSplitBlock = function(editor) {
  15. return editor.getParam("pagebreak_split_block", false);
  16. };
  17. var pageBreakClass = "mce-pagebreak";
  18. var getPlaceholderHtml = function(shouldSplitBlock2) {
  19. var html = '<img src="' + global.transparentSrc + '" class="' + pageBreakClass + '" data-mce-resize="false" data-mce-placeholder />';
  20. return shouldSplitBlock2 ? "<p>" + html + "</p>" : html;
  21. };
  22. var setup$1 = function(editor) {
  23. var separatorHtml = getSeparatorHtml(editor);
  24. var shouldSplitBlock$1 = function() {
  25. return shouldSplitBlock(editor);
  26. };
  27. var pageBreakSeparatorRegExp = new RegExp(separatorHtml.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {
  28. return "\\" + a;
  29. }), "gi");
  30. editor.on("BeforeSetContent", function(e) {
  31. e.content = e.content.replace(pageBreakSeparatorRegExp, getPlaceholderHtml(shouldSplitBlock$1()));
  32. });
  33. editor.on("PreInit", function() {
  34. editor.serializer.addNodeFilter("img", function(nodes) {
  35. var i = nodes.length, node, className;
  36. while (i--) {
  37. node = nodes[i];
  38. className = node.attr("class");
  39. if (className && className.indexOf(pageBreakClass) !== -1) {
  40. var parentNode = node.parent;
  41. if (editor.schema.getBlockElements()[parentNode.name] && shouldSplitBlock$1()) {
  42. parentNode.type = 3;
  43. parentNode.value = separatorHtml;
  44. parentNode.raw = true;
  45. node.remove();
  46. continue;
  47. }
  48. node.type = 3;
  49. node.value = separatorHtml;
  50. node.raw = true;
  51. }
  52. }
  53. });
  54. });
  55. };
  56. var register$1 = function(editor) {
  57. editor.addCommand("mcePageBreak", function() {
  58. editor.insertContent(getPlaceholderHtml(shouldSplitBlock(editor)));
  59. });
  60. };
  61. var setup = function(editor) {
  62. editor.on("ResolveName", function(e) {
  63. if (e.target.nodeName === "IMG" && editor.dom.hasClass(e.target, pageBreakClass)) {
  64. e.name = "pagebreak";
  65. }
  66. });
  67. };
  68. var register = function(editor) {
  69. var onAction = function() {
  70. return editor.execCommand("mcePageBreak");
  71. };
  72. editor.ui.registry.addButton("pagebreak", {
  73. icon: "page-break",
  74. tooltip: "Page break",
  75. onAction
  76. });
  77. editor.ui.registry.addMenuItem("pagebreak", {
  78. text: "Page break",
  79. icon: "page-break",
  80. onAction
  81. });
  82. };
  83. function Plugin() {
  84. global$1.add("pagebreak", function(editor) {
  85. register$1(editor);
  86. register(editor);
  87. setup$1(editor);
  88. setup(editor);
  89. });
  90. }
  91. Plugin();
  92. })();
  93. }
  94. });
  95. // node_modules/.pnpm/tinymce@5.10.7/node_modules/tinymce/plugins/pagebreak/index.js
  96. require_plugin();
  97. //# sourceMappingURL=tinymce_plugins_pagebreak.js.map