AlkantarClanX12
Current Path : /home/thanudqk/128shen.com/wp-content/plugins/embedpress/assets/pdf/web/ |
Current File : /home/thanudqk/128shen.com/wp-content/plugins/embedpress/assets/pdf/web/ep-scripts.js |
"use strict"; //Create theme mode function const setThemeMode = (themeMode) => { const htmlEL = document.getElementsByTagName("html")[0]; if (htmlEL) { htmlEL.setAttribute('ep-data-theme', themeMode); } } const getParamObj = (hash) => { let paramsObj = {}; let colorsObj = {}; if (location.hash) { let hashParams = new URLSearchParams(hash.substring(1)); if (hashParams.get('key') !== null) { hashParams = '#' + atob(hashParams.get('key')); hashParams = new URLSearchParams(hashParams.substring(1)); } if (hashParams.get('themeMode') == 'custom') { colorsObj = { customColor: hashParams.get('customColor'), }; } paramsObj = { themeMode: hashParams.get('themeMode'), ...colorsObj, presentation: hashParams.get('presentation'), lazyLoad: hashParams.get('lazyLoad'), copy_text: hashParams.get('copy_text'), add_text: hashParams.get('add_text'), draw: hashParams.get('draw'), add_image: hashParams.get('add_image'), position: hashParams.get('position'), download: hashParams.get('download'), toolbar: hashParams.get('toolbar'), doc_details: hashParams.get('pdf_details'), doc_rotation: hashParams.get('pdf_rotation'), selection_tool: hashParams.get('selection_tool'), scrolling: hashParams.get('scrolling'), spreads: hashParams.get('spreads'), is_pro_active: hashParams.get('is_pro_active'), }; if (hashParams.get('download') !== 'true' && hashParams.get('download') !== 'yes') { window.addEventListener('beforeunload', function (event) { event.stopImmediatePropagation(); }); } } return paramsObj; } const isDisplay = (selectorName) => { if (selectorName == 'false' || selectorName == false) { selectorName = 'none'; } else { selectorName = 'block'; } return selectorName; } const adjustHexColor = (hexColor, percentage) => { // Convert hex color to RGB values const r = parseInt(hexColor.slice(1, 3), 16); const g = parseInt(hexColor.slice(3, 5), 16); const b = parseInt(hexColor.slice(5, 7), 16); // Calculate adjusted RGB values const adjustment = Math.round((percentage / 100) * 255); const newR = Math.max(Math.min(r + adjustment, 255), 0); const newG = Math.max(Math.min(g + adjustment, 255), 0); const newB = Math.max(Math.min(b + adjustment, 255), 0); // Convert adjusted RGB values back to hex color const newHexColor = '#' + ((1 << 24) + (newR << 16) + (newG << 8) + newB).toString(16).slice(1); return newHexColor; } const getColorBrightness = (hexColor) => { const r = parseInt(hexColor.slice(1, 3), 16); const g = parseInt(hexColor.slice(3, 5), 16); const b = parseInt(hexColor.slice(5, 7), 16); // Convert the RGB color to HSL const max = Math.max(r, g, b); const min = Math.min(r, g, b); const l = (max + min) / 2; // Calculate the brightness position in percentage const brightnessPercentage = Math.round(l / 255 * 100); return brightnessPercentage; } const pdfIframeStyle = (data) => { const isAllNull = Object.values(data).every(value => value === null);; if (isAllNull) { return false; }; let settingsPos = ''; if (data.toolbar === false || data.toolbar == 'false') { data.presentation = false; data.download = true; data.copy_text = true; data.add_text = true; data.draw = true, data.doc_details = false; data.doc_rotation = false, data.add_image = false; } let position = 'top'; let toolbar = isDisplay(data.toolbar); let presentation = isDisplay(data.presentation); let download = isDisplay(data.download); let copy_text = isDisplay(data.copy_text); let add_text = isDisplay(data.add_text); let draw = isDisplay(data.draw); if (copy_text === 'block' || copy_text == 'true' || copy_text == true) { copy_text = 'text'; } let doc_details = isDisplay(data.doc_details); let doc_rotation = isDisplay(data.doc_rotation); let add_image = isDisplay(data.add_image); const otherhead = document.getElementsByTagName("head")[0]; const style = document.createElement("style"); style.setAttribute('id', 'EBiframeStyleID'); let pdfCustomColor = ''; if (data.themeMode == 'custom') { if (!data.customColor) { data.customColor = '#38383d'; } let colorBrightness = getColorBrightness(data.customColor); let iconsTextsColor = 'white'; if (colorBrightness > 60) { iconsTextsColor = 'black'; } pdfCustomColor = ` [ep-data-theme="custom"] { --body-bg-color: ${data.customColor}; --toolbar-bg-color: ${adjustHexColor(data.customColor, 15)}; --doorhanger-bg-color: ${data.customColor}; --field-bg-color: ${data.customColor}; --dropdown-btn-bg-color: ${data.customColor}; --button-hover-color: ${adjustHexColor(data.customColor, 25)}; --toggled-btn-bg-color: ${adjustHexColor(data.customColor, 25)}; --doorhanger-hover-bg-color: ${adjustHexColor(data.customColor, 20)}; --toolbar-border-color: ${adjustHexColor(data.customColor, 10)}; --doorhanger-border-color: ${adjustHexColor(data.customColor, 10)}; --doorhanger-border-color-whcm: ${adjustHexColor(data.customColor, 10)}; --separator-color: ${adjustHexColor(data.customColor, 10)}; --doorhanger-separator-color: ${adjustHexColor(data.customColor, 15)}; --toolbar-icon-bg-color: ${iconsTextsColor}; --toolbar-icon-bg-color: ${iconsTextsColor}; --main-color: ${iconsTextsColor}; --field-color: ${iconsTextsColor}; --doorhanger-hover-color: ${iconsTextsColor}; --toolbar-icon-hover-bg-color: ${iconsTextsColor}; --toggled-btn-color: ${iconsTextsColor}; }`; } if (data.position === 'top') { position = 'top:0;bottom:auto;' settingsPos = ''; } else { position = 'bottom:0;top:auto;' settingsPos = ` .findbar, .secondaryToolbar { top: auto;bottom: 32px; } .doorHangerRight:after{ transform: rotate(180deg); bottom: -16px; } .doorHangerRight:before { transform: rotate(180deg); bottom: -18px; } .findbar.doorHanger:before { bottom: -18px; transform: rotate(180deg); } .findbar.doorHanger:after { bottom: -16px; transform: rotate(180deg); } div#editorInkParamsToolbar, #editorFreeTextParamsToolbar { bottom: 32px; top: auto; } `; } style.textContent = ` .toolbar{ display: ${toolbar}!important; position: absolute; ${position} } #secondaryToolbar{ display: ${toolbar}; } #secondaryPresentationMode, #toolbarViewerRight #presentationMode{ display: ${presentation}!important; } #secondaryOpenFile, #toolbarViewerRight #openFile{ display: none!important; } #secondaryDownload, #secondaryPrint, #print, #download{ display: ${download}!important; } #pageRotateCw{ display: ${doc_rotation}!important; } #editorStamp{ display: ${add_image}!important; } #pageRotateCcw{ display: ${doc_rotation}!important; } #documentProperties{ display: ${doc_details}!important; } .textLayer{ user-select: ${copy_text}!important; -webkit-user-select: ${copy_text}!important; -moz-user-select: ${copy_text}!important; -ms-user-select: ${copy_text}!important; } button#cursorSelectTool{ display: ${copy_text}!important; } #editorFreeText{ display: ${add_text}!important; } #editorInk{ display: ${draw}!important; } ${pdfCustomColor} ${settingsPos} `; if (otherhead) { if (document.getElementById("EBiframeStyleID")) { document.getElementById("EBiframeStyleID").remove(); } otherhead.appendChild(style); } } const manupulatePDFIframe = (e) => { let hashNewUrl = new URL(e.newURL); let data = getParamObj(hashNewUrl.hash); pdfIframeStyle(data); setThemeMode(data.themeMode); } window.addEventListener('hashchange', (e) => { manupulatePDFIframe(e); }, false); let data = getParamObj(location.hash); pdfIframeStyle(data); setThemeMode(data.themeMode); document.querySelector(".presentationMode")?.addEventListener("click", function () { var mainContainer = document.getElementById("mainContainer"); if (mainContainer && !document.fullscreenElement) { mainContainer.requestFullscreen().catch(err => { alert(`Error attempting to enable full-screen mode: ${err.message} (${err.name})`); }); } else { if (document.exitFullscreen) { document.exitFullscreen(); } } }); document.getElementById("viewBookmark")?.addEventListener('click', (e) => { e.preventDefault(); const url = e.target.getAttribute('href'); if (url !== null) { alert(`Current Page: ${url}`); } }); if (data.lazyLoad === false || data.lazyLoad == 'false') { document.querySelector('html').style.opacity = '1'; } else { function updateOpacity() { const pdfViewer = document.querySelector('.pdfViewer'); if (pdfViewer.innerHTML.trim()) { document.querySelector('html').style.opacity = '1'; document.querySelector('html').style.transition = '500ms'; clearInterval(intervalId); // Clear the interval once opacity is set to 1 } } const intervalId = setInterval(updateOpacity, 100); updateOpacity(); }