1window.CkeditorGwtProxy = { 2 3 createEditor: function(elemId, compact, landscape, allowFormat, templateFields, printFilename, callbackSuccess, unloadCallback, callbackError, textCallback) { 4 5 try { 6 var elem = document.getElementById(elemId); 7 $(elem).empty(); 8 9 var version = '?v=2019'; 10 11 var url = compact ? '/portalcidadao/assets/ckeditor-compact-frame-portal.html' + version : landscape ? '/portalcidadao/assets/ckeditor-landscape-frame-portal.html' + version : '/portalcidadao/assets/ckeditor-frame-portal.html' + version; 12 13 var frame = $('<iframe src="' + url + '" style="width: 640px; height: 100%;" frameborder="0" scrolling="no"></iframe>'); 14 15 frame.on('load', function () { 16 17 var printCallback = function(url) { 18 window.location.replace(url); 19 }; 20 21 var loadCallback = function(editor) { 22 23 frame[0].contentWindow.onbeforeunload = function() { 24 25 unloadCallback(editor.getData()); 26 27 }; 28 29 editor.model.document.on( 'change', function() { 30 if ( editor.model.document.differ.getChanges().length > 0 ) { 31 textCallback(editor.getData()); 32 } 33 } ); 34 35 callbackSuccess(editor, frame[0].contentWindow); 36 }; 37 38 if (compact) { 39 frame[0].contentWindow.loadEditor(allowFormat, templateFields, printFilename, printCallback, loadCallback); 40 } else if (landscape) { 41 frame[0].contentWindow.loadEditor(templateFields, printFilename, printCallback, loadCallback); 42 } else { 43 frame[0].contentWindow.loadEditor(templateFields, printFilename, printCallback, loadCallback); 44 } 45 }); 46 47 frame.appendTo($(elem)); 48 49 } catch (e) { 50 console.error(e); 51 } 52 }, 53 54 getTextElements: function(editor) { 55 56 var extractedElements = []; 57 58 function traverseDoc(element) { 59 60 if (element.name === 'table') { 61 return; 62 } 63 64 if (element.name === 'blockQuote') { 65 return; 66 } 67 68 if (element.name === 'paragraph') { 69 70 var textIt = element.getChildren(); 71 72 if (textIt) { 73 74 var eText = textIt.next(); 75 76 var text = ""; 77 78 while (!eText.done) { 79 if (eText.value.data) { 80 text += eText.value.data; 81 } 82 eText = textIt.next(); 83 } 84 85 if (text.trim().length > 0) { 86 extractedElements.push({text: text, element: element}); 87 } 88 89 } 90 91 92 return; 93 } 94 95 var elems = element.getChildren ? element.getChildren() : null; 96 97 if (elems) { 98 99 var e = elems.next(); 100 101 while(!e.done) { 102 traverseDoc(e.value); 103 e = elems.next(); 104 } 105 106 } 107 108 } 109 110 traverseDoc(editor.model.document.getRoot(editor.model.document.getRootNames()[0])); 111 112 return extractedElements; 113 }, 114 115 insertText: function(editor, text) { 116 117 editor.model.change(function(writer) { 118 119 var insertPosition = editor.model.document.selection.getFirstPosition(); 120 writer.insertText(text, insertPosition); 121 122 }); 123 124 }, 125 126 insertTextAfterElement: function(editor, element, text) { 127 128 editor.model.change(function(writer) { 129 130 writer.insertText(text, element, 'end'); 131 132 }); 133 134 }, 135 136 removeElement: function(editor, element) { 137 138 editor.model.change(function(writer) { 139 140 writer.remove(element); 141 142 }); 143 144 }, 145 146 selectElement: function(editor, element) { 147 148 setTimeout(function() { 149 150 editor.editing.view.focus(); 151 152 editor.model.change(function(writer) { 153 154 writer.setSelection(element, 'on'); 155 156 }); 157 158 editor.editing.view.scrollToTheSelection(); 159 160 }, 200); 161 162 }, 163 164 destroyEditor: function(elemId, editor) { 165 var elem = document.getElementById(elemId); 166 $(elem).empty(); 167 } 168 169};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.