You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							109 lines
						
					
					
						
							3.3 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							109 lines
						
					
					
						
							3.3 KiB
						
					
					
				| (function () { | |
| var pagebreak = (function () { | |
|   'use strict'; | |
| 
 | |
|   var PluginManager = tinymce.util.Tools.resolve('tinymce.PluginManager'); | |
| 
 | |
|   var Env = tinymce.util.Tools.resolve('tinymce.Env'); | |
| 
 | |
|   var getSeparatorHtml = function (editor) { | |
|     return editor.getParam('pagebreak_separator', '<!-- pagebreak -->'); | |
|   }; | |
|   var shouldSplitBlock = function (editor) { | |
|     return editor.getParam('pagebreak_split_block', false); | |
|   }; | |
|   var $_88kiosgrjd09ewp6 = { | |
|     getSeparatorHtml: getSeparatorHtml, | |
|     shouldSplitBlock: shouldSplitBlock | |
|   }; | |
| 
 | |
|   var getPageBreakClass = function () { | |
|     return 'mce-pagebreak'; | |
|   }; | |
|   var getPlaceholderHtml = function () { | |
|     return '<img src="' + Env.transparentSrc + '" class="' + getPageBreakClass() + '" data-mce-resize="false" data-mce-placeholder />'; | |
|   }; | |
|   var setup = function (editor) { | |
|     var separatorHtml = $_88kiosgrjd09ewp6.getSeparatorHtml(editor); | |
|     var pageBreakSeparatorRegExp = new RegExp(separatorHtml.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function (a) { | |
|       return '\\' + a; | |
|     }), 'gi'); | |
|     editor.on('BeforeSetContent', function (e) { | |
|       e.content = e.content.replace(pageBreakSeparatorRegExp, getPlaceholderHtml()); | |
|     }); | |
|     editor.on('PreInit', function () { | |
|       editor.serializer.addNodeFilter('img', function (nodes) { | |
|         var i = nodes.length, node, className; | |
|         while (i--) { | |
|           node = nodes[i]; | |
|           className = node.attr('class'); | |
|           if (className && className.indexOf('mce-pagebreak') !== -1) { | |
|             var parentNode = node.parent; | |
|             if (editor.schema.getBlockElements()[parentNode.name] && $_88kiosgrjd09ewp6.shouldSplitBlock(editor)) { | |
|               parentNode.type = 3; | |
|               parentNode.value = separatorHtml; | |
|               parentNode.raw = true; | |
|               node.remove(); | |
|               continue; | |
|             } | |
|             node.type = 3; | |
|             node.value = separatorHtml; | |
|             node.raw = true; | |
|           } | |
|         } | |
|       }); | |
|     }); | |
|   }; | |
|   var $_29wg7jgpjd09ewp4 = { | |
|     setup: setup, | |
|     getPlaceholderHtml: getPlaceholderHtml, | |
|     getPageBreakClass: getPageBreakClass | |
|   }; | |
| 
 | |
|   var register = function (editor) { | |
|     editor.addCommand('mcePageBreak', function () { | |
|       if (editor.settings.pagebreak_split_block) { | |
|         editor.insertContent('<p>' + $_29wg7jgpjd09ewp4.getPlaceholderHtml() + '</p>'); | |
|       } else { | |
|         editor.insertContent($_29wg7jgpjd09ewp4.getPlaceholderHtml()); | |
|       } | |
|     }); | |
|   }; | |
|   var $_1qv5rxgojd09ewp3 = { register: register }; | |
| 
 | |
|   var setup$1 = function (editor) { | |
|     editor.on('ResolveName', function (e) { | |
|       if (e.target.nodeName === 'IMG' && editor.dom.hasClass(e.target, $_29wg7jgpjd09ewp4.getPageBreakClass())) { | |
|         e.name = 'pagebreak'; | |
|       } | |
|     }); | |
|   }; | |
|   var $_55qj4igsjd09ewp7 = { setup: setup$1 }; | |
| 
 | |
|   var register$1 = function (editor) { | |
|     editor.addButton('pagebreak', { | |
|       title: 'Page break', | |
|       cmd: 'mcePageBreak' | |
|     }); | |
|     editor.addMenuItem('pagebreak', { | |
|       text: 'Page break', | |
|       icon: 'pagebreak', | |
|       cmd: 'mcePageBreak', | |
|       context: 'insert' | |
|     }); | |
|   }; | |
|   var $_fsphpggtjd09ewp8 = { register: register$1 }; | |
| 
 | |
|   PluginManager.add('pagebreak', function (editor) { | |
|     $_1qv5rxgojd09ewp3.register(editor); | |
|     $_fsphpggtjd09ewp8.register(editor); | |
|     $_29wg7jgpjd09ewp4.setup(editor); | |
|     $_55qj4igsjd09ewp7.setup(editor); | |
|   }); | |
|   function Plugin () { | |
|   } | |
| 
 | |
|   return Plugin; | |
| 
 | |
| }()); | |
| })()
 |