1var e2pdfViewer = { 2 updateViewArea: function (pdfIframe, listener) { 3 if (pdfIframe.hasClass('e2pdf-pages-loaded') && pdfIframe.hasClass('e2pdf-responsive')) { 4 var pdfIframeContents = pdfIframe.contents(); 5 var viewerHeight = parseInt(pdfIframeContents.find('#viewer').outerHeight()); 6 if (pdfIframe.hasClass('e2pdf-responsive-page')) { 7 viewerHeight = parseInt(pdfIframeContents.find('#viewer .page').first().outerHeight()); 8 } 9 var viewerContainerTop = parseInt(pdfIframeContents.find('#viewerContainer').offset().top); 10 pdfIframe.innerHeight(viewerHeight + viewerContainerTop + 2); 11 if (!pdfIframe.hasClass('e2pdf-responsive-page')) { 12 pdfIframeContents.find('#viewerContainer').scrollTop(0); 13 } 14 } 15 if (listener == 'pagesloaded') { 16 var pdfIframeContents = pdfIframe.contents(); 17 pdfIframeContents.find('#viewerContainer').scrollTop(0); 18 } 19 }, 20 viewSinglePageSwitch: function (pdfIframe, page) { 21 if (pdfIframe.hasClass('e2pdf-single-page-mode') && pdfIframe.hasClass('e2pdf-responsive')) { 22 var page = parseInt(page); 23 if (page) { 24 var pdfIframeContents = pdfIframe.contents(); 25 pdfIframeContents.find('.page').not('.page[data-page-number="' + page + '"]').css({'position': 'absolute', 'visibility': 'hidden', 'z-index': '-1'}); 26 pdfIframeContents.find('.page[data-page-number="' + page + '"]').css({'position': 'relative', 'visibility': '', 'z-index': ''}); 27 } 28 } 29 }, 30 iframeLoad: function (iframe) { 31 var pdfIframe = jQuery(iframe); 32 if (!pdfIframe.hasClass('e2pdf-preload')) { 33 var pdfIframeContents = pdfIframe.contents(); 34 pdfIframe.addClass('e2pdf-view-loaded'); 35 pdfIframeContents.find('html').addClass('e2pdf-view-loaded'); 36 if (iframe.contentWindow && iframe.contentWindow.PDFViewerApplication) { 37 var PDFViewerApplication = iframe.contentWindow.PDFViewerApplication; 38 if (pdfIframe.attr('cursor')) { 39 PDFViewerApplication.pdfCursorTools.switchTool(parseInt(pdfIframe.attr('cursor'))); 40 } 41 if (iframe.contentWindow.PDFViewerApplicationOptions) { 42 if (pdfIframe.attr('resolution')) { 43 iframe.contentWindow.PDFViewerApplicationOptions.set('printResolution', parseInt(pdfIframe.attr('resolution'))); 44 } 45 if (pdfIframe.attr('scroll')) { 46 iframe.contentWindow.PDFViewerApplicationOptions.set('scrollModeOnLoad', parseInt(pdfIframe.attr('scroll'))); 47 } 48 if (pdfIframe.attr('spread')) { 49 iframe.contentWindow.PDFViewerApplicationOptions.set('spreadModeOnLoad', parseInt(pdfIframe.attr('spread'))); 50 } 51 } 52 PDFViewerApplication.initializedPromise.then(function () { 53 PDFViewerApplication.eventBus.on('pagesloaded', function (event) { 54 pdfIframe.addClass('e2pdf-pages-loaded'); 55 pdfIframeContents.find('html').addClass('e2pdf-pages-loaded'); 56 e2pdfViewer.viewSinglePageSwitch(pdfIframe, 1); 57 e2pdfViewer.updateViewArea(pdfIframe, 'pagesloaded'); 58 }); 59 PDFViewerApplication.eventBus.on('pagechanging', function (event) { 60 if (event && event.pageNumber) { 61 e2pdfViewer.viewSinglePageSwitch(pdfIframe, event.pageNumber); 62 e2pdfViewer.updateViewArea(pdfIframe, 'pagechanging'); 63 } 64 }); 65 var title = document.title; 66 PDFViewerApplication.eventBus.on('beforeprint', function (event) { 67 if (PDFViewerApplication.printService) { 68 var pdfTitle; 69 var metadataTitle = PDFViewerApplication.metadata && PDFViewerApplication.metadata.get("dc:title"); 70 if (metadataTitle) { 71 if (metadataTitle !== "Untitled" && !/[\uFFF0-\uFFFF]/g.test(metadataTitle)) { 72 pdfTitle = metadataTitle; 73 } 74 } 75 if (pdfTitle) { 76 document.title = pdfTitle; 77 } else if (PDFViewerApplication.contentDispositionFilename) { 78 document.title = PDFViewerApplication.contentDispositionFilename; 79 } 80 } 81 }); 82 PDFViewerApplication.eventBus.on('afterprint', function (event) { 83 document.title = title; 84 }); 85 var listeners = [ 86 'scalechanging', 87 'scalechanged', 88 'rotationchanging', 89 'updateviewarea', 90 'scrollmodechanged', 91 'spreadmodechanged', 92 'pagechanging', 93 'zoomin', 94 'zoomout', 95 'zoomreset', 96 'nextpage', 97 'previouspage' 98 ];
99 listeners.forEach(function (listener) { 100 PDFViewerApplication.eventBus.on(listener, function (event) { 101 e2pdfViewer.updateViewArea(pdfIframe, listener); 102 }); 103 }); 104 }); 105 } else { 106 pdfIframeContents[0].addEventListener('pagesloaded', function (event) { 107 pdfIframe.addClass('e2pdf-pages-loaded'); 108 pdfIframeContents.find('html').addClass('e2pdf-pages-loaded'); 109 e2pdfViewer.viewSinglePageSwitch(pdfIframe, 1); 110 e2pdfViewer.updateViewArea(pdfIframe, 'pagesloaded'); 111 }); 112 pdfIframeContents[0].addEventListener('pagechanging', function (event) { 113 if (event && event.detail && event.detail.pageNumber) { 114 e2pdfViewer.viewSinglePageSwitch(pdfIframe, event.detail.pageNumber); 115 e2pdfViewer.updateViewArea(pdfIframe, 'pagechanging'); 116 } 117 }); 118 var listeners = [ 119 'scalechanging', 120 'scalechanged', 121 'rotationchanging', 122 'updateviewarea', 123 'scrollmodechanged', 124 'spreadmodechanged', 125 'pagechanging', 126 'zoomin', 127 'zoomout', 128 'zoomreset', 129 'nextpage', 130 'previouspage' 131 ]; 132 listeners.forEach(function (listener) { 133 pdfIframeContents[0].addEventListener(listener, function (event) { 134 e2pdfViewer.updateViewArea(pdfIframe, listener); 135 }); 136 }); 137 } 138 } 139 }, 140 imageLoad: function (image) { 141 var img = jQuery(image); 142 var preload = img.attr('preload'); 143 if (preload) { 144 img.removeClass('e2pdf-preload') 145 img.removeAttr('preload'); 146 img.attr('src', preload); 147 } 148 }, 149 print: { 150 browser: { 151 isFirefox: function () { 152 return typeof InstallTrigger !== 'undefined'; 153 }, 154 isIE: function () { 155 return navigator.userAgent.indexOf('MSIE') !== -1 || !!document.documentMode; 156 }, 157 isEdge: function () { 158 return !e2pdfViewer.print.browser.isIE() && !!window.StyleMedia; 159 } 160 }, 161 iframeSupport: function () { 162 if (navigator.userAgent.indexOf('Mobile') !== -1) { 163 return false; 164 } 165 return true; 166 }, 167 pdf: function (blobURL) { 168 var iframe = document.createElement('iframe'); 169 if (e2pdfViewer.print.iframeSupport()) { 170 if (e2pdfViewer.print.browser.isFirefox()) { 171 iframe.setAttribute('style', 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0'); 172 } else { 173 iframe.setAttribute('style', 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0'); 174 } 175 iframe.onload = function () { 176 try { 177 iframe.focus(); 178 if (e2pdfViewer.print.browser.isEdge() || e2pdfViewer.print.browser.isIE()) { 179 try { 180 iframe.contentWindow.document.execCommand('print', false, null); 181 } catch (e) { 182 iframe.contentWindow.print(); 183 } 184 } else { 185 iframe.contentWindow.print(); 186 } 187 } catch (error) { 188 189 } finally { 190 if (e2pdfViewer.print.browser.isFirefox()) { 191 iframe.style.visibility = 'hidden'; 192 iframe.style.left = '-1px'; 193 } 194 195 } 196 }; 197 iframe.setAttribute('src', blobURL); 198 document.getElementsByTagName('body')[0].appendChild(iframe); 199 } 200 } 201 } 202 203}; 204jQuery(document).ready(function () {
205 jQuery(document).on('click', 'a.e2pdf-download-loader', function (e) { 206 var link = jQuery(this); 207 if (!link.hasClass('e2pdf-download-ready')) { 208 e.preventDefault(); 209 } 210 var linkURL = link.attr('href'); 211 if (!link.hasClass('e2pdf-download-progress')) { 212 link.addClass('e2pdf-download-progress'); 213 fetch(link.attr('href'), { 214 method: 'GET', 215 headers: { 216 'X-E2PDF-REQUEST': 'true' 217 } 218 }).then(resp => { 219 if (resp.ok) { 220 return resp.blob().then((blob) => { 221 const blobURL = URL.createObjectURL(blob); 222 link.attr('href', blobURL).addClass('e2pdf-download-ready'); 223 link[0].click(); 224 link.attr('href', linkURL).removeClass('e2pdf-download-ready e2pdf-download-progress'); 225 }); 226 } else { 227 var errorMessage = 'Something went wrong!'; 228 return resp.json().then((json) => { 229 if (json && json.redirect_url) { 230 link.attr('href', linkURL).removeClass('e2pdf-download-ready e2pdf-download-progress'); 231 window.location.href = json.redirect_url; 232 } else { 233 if (json && json.error) { 234 errorMessage = json.error; 235 } 236 throw new Error(errorMessage); 237 } 238 }).catch(() => { 239 throw new Error(errorMessage); 240 }); 241 } 242 }).catch((error) => { 243 link.attr('href', linkURL).removeClass('e2pdf-download-ready e2pdf-download-progress'); 244 alert(error.message || 'Something went wrong!'); 245 }); 246 } 247 }); 248 jQuery(document).on('click', 'a.e2pdf-print-pdf', function (e) { 249 var link = jQuery(this); 250 e.preventDefault(); 251 if (!link.hasClass('e2pdf-download-ready')) { 252 e.preventDefault(); 253 } 254 var linkURL = link.attr('href'); 255 if (!link.hasClass('e2pdf-download-progress')) { 256 link.addClass('e2pdf-download-progress'); 257 fetch(link.attr('href'), { 258 method: 'GET', 259 headers: { 260 'X-E2PDF-REQUEST': 'true' 261 } 262 }).then(resp => { 263 if (resp.ok) { 264 resp.blob().then((blob) => { 265 const blobURL = URL.createObjectURL(new Blob([blob], {type: 'application/pdf'})); 266 e2pdfViewer.print.pdf(blobURL); 267 link.addClass('e2pdf-download-ready'); 268 link.removeClass('e2pdf-download-ready e2pdf-download-progress'); 269 }); 270 } else { 271 var errorMessage = 'Something went wrong!'; 272 return resp.json().then((json) => { 273 if (json && json.redirect_url) { 274 link.attr('href', linkURL).removeClass('e2pdf-download-ready e2pdf-download-progress'); 275 window.location.href = json.redirect_url; 276 } else { 277 if (json && json.error) { 278 errorMessage = json.error; 279 } 280 throw new Error(errorMessage); 281 } 282 }).catch(() => { 283 throw new Error(errorMessage); 284 }); 285 } 286 }).catch((error) => { 287 link.attr('href', linkURL).removeClass('e2pdf-download-ready e2pdf-download-progress'); 288 alert(error.message || 'Something went wrong!'); 289 }); 290 } 291 }); 292 if (jQuery('.e2pdf-download.e2pdf-auto').not('.e2pdf-iframe-download').length > 0) { 293 jQuery('.e2pdf-download.e2pdf-auto').not('.e2pdf-iframe-download').each(function () { 294 if (jQuery(this).hasClass('e2pdf-print-pdf') || jQuery(this).hasClass('e2pdf-d
294ownload-loader')) { 295 jQuery(this).click(); 296 } else if (jQuery(this).hasClass('e2pdf-inline')) { 297 window.open(jQuery(this).attr('href'), '_blank'); 298 } else { 299 location.href = jQuery(this).attr('href'); 300 } 301 }); 302 } 303 jQuery('.modal').on('show.bs.modal', function () { 304 var modal = jQuery(this); 305 modal.find('iframe.e2pdf-preload').each(function () { 306 jQuery(this).removeClass('e2pdf-preload').attr('src', jQuery(this).attr('preload')); 307 }); 308 }); 309 var wpcf = document.querySelector('.wpcf7'); 310 if (wpcf !== null) { 311 wpcf.addEventListener('wpcf7mailsent', function (event) { 312 var message = event.detail.apiResponse.message; 313 if (message && (message.includes('e2pdf-view') || message.includes('e2pdf-download'))) { 314 if (jQuery('.wpcf7-response-output').length > 0) { 315 if (window.MutationObserver) { 316 new MutationObserver((mutationsList, observer) => { 317 for (var mutation of mutationsList) { 318 observer.disconnect(); 319 jQuery('.wpcf7-response-output').html(jQuery('.wpcf7-response-output').text()); 320 } 321 }).observe(jQuery('.wpcf7-response-output')[0], {attributes: false, childList: true, characterData: false}); 322 } else { 323 setTimeout(function () { 324 jQuery('.wpcf7-response-output').html(jQuery('.wpcf7-response-output').text()); 325 }, 500); 326 } 327 } 328 } 329 }, false); 330 } 331});
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.