| 1 |
- !function(){"use strict";(e=>{const t="single-file-lazy-load",n="single-file-load-image",i="single-file-request-get-adopted-stylesheets",r={family:"font-family",ascentOverride:"ascent-override",descentOverride:"descent-override",display:"font-display",featureSettings:"font-feature-settings",lineGapOverride:"line-gap-override",stretch:"font-stretch",style:"font-style",unicodeRange:"unicode-range",variationSettings:"font-variation-settings",weight:"font-weight"},o=e.fetch.bind(e),s=e.CustomEvent,l=e.document,a=e.screen,c=e.Element,d=e.UIEvent,g=e.Event,f=e.FileReader,p=e.Blob,u=e.JSON,m=e.MutationObserver,h=e.URL,_=e.CSSStyleSheet,y=new Map,v=new Map;let E,S=new WeakMap;function init(){l.addEventListener("single-file-load-deferred-images-start",()=>loadDeferredImagesStart()),l.addEventListener("single-file-load-deferred-images-keep-zoom-level-start",()=>loadDeferredImagesStart(!0)),l.addEventListener("single-file-load-deferred-images-end",()=>loadDeferredImagesEnd()),l.addEventListener("single-file-load-deferred-images-keep-zoom-level-end",()=>loadDeferredImagesEnd(!0)),l.addEventListener("single-file-load-deferred-images-reset",resetScreenSize),l.addEventListener("single-file-load-deferred-images-keep-zoom-level-reset",()=>{const e=l.documentElement.style.getPropertyValue("-sf-transform"),t=l.documentElement.style.getPropertyPriority("-sf-transform"),n=l.documentElement.style.getPropertyValue("-sf-transform-origin"),i=l.documentElement.style.getPropertyPriority("-sf-transform-origin"),r=l.documentElement.style.getPropertyValue("-sf-min-height"),o=l.documentElement.style.getPropertyPriority("-sf-min-height");l.documentElement.style.setProperty("transform",e,t),l.documentElement.style.setProperty("transform-origin",n,i),l.documentElement.style.setProperty("min-height",r,o),l.documentElement.style.removeProperty("-sf-transform"),l.documentElement.style.removeProperty("-sf-transform-origin"),l.documentElement.style.removeProperty("-sf-min-height"),resetScreenSize()}),l.addEventListener("single-file-dispatch-scroll-event-start",()=>{E=!0}),l.addEventListener("single-file-dispatch-scroll-event-end",()=>{E=!1}),l.addEventListener("single-file-block-cookies-start",()=>{try{l.__defineGetter__("cookie",()=>{throw new Error("document.cookie temporary blocked by SingleFile")})}catch(e){}}),l.addEventListener("single-file-block-cookies-end",()=>{delete l.cookie}),l.addEventListener("single-file-block-storage-start",()=>{e._singleFile_localStorage||(e._singleFile_localStorage=e.localStorage,e.__defineGetter__("localStorage",()=>{throw new Error("localStorage temporary blocked by SingleFile")})),e._singleFile_indexedDB||(e._singleFile_indexedDB=e.indexedDB,e.__defineGetter__("indexedDB",()=>{throw new Error("indexedDB temporary blocked by SingleFile")}))}),l.addEventListener("single-file-block-storage-end",()=>{e._singleFile_localStorage&&(delete e.localStorage,e.localStorage=e._singleFile_localStorage,delete e._singleFile_localStorage),e._singleFile_indexedDB||(delete e.indexedDB,e.indexedDB=e._singleFile_indexedDB,delete e._singleFile_indexedDB)}),l.addEventListener("single-file-request-fetch-supported",()=>l.dispatchEvent(new s("single-file-response-fetch-supported"))),l.addEventListener("single-file-request-fetch",async e=>{const{url:t,options:n}=u.parse(e.detail);let i;try{const e=await o(t,n);i={url:t,response:await e.arrayBuffer(),headers:[...e.headers],status:e.status}}catch(e){i={url:t,error:e&&(e.message||e.toString())}}l.dispatchEvent(new s("single-file-response-fetch",{detail:i}))}),l.addEventListener(i,getAdoptedStylesheetsListener),l.addEventListener("single-file-bootstrap",t=>{try{e.bootstrap&&t.detail.data&&e.bootstrap(t.detail.data)}catch(e){}})}function loadDeferredImagesStart(i){const r=l.scrollingElement||l.documentElement,o=r.clientHeight,d=r.clientWidth,f=Math.max(r.scrollHeight-o,o),p=Math.max(r.scrollWidth-d,d);if(l.querySelectorAll("[loading=lazy]").forEach(e=>{e.loading="eager",e.setAttribute(t,"")}),r.__defineGetter__("clientHeight",()=>f),r.__defineGetter__("clientWidth",()=>p),a.__defineGetter__("height",()=>f),a.__defineGetter__("width",()=>p),e._singleFile_innerHeight=e.innerHeight,e._singleFile_innerWidth=e.innerWidth,e.__defineGetter__("innerHeight",()=>f),e.__defineGetter__("innerWidth",()=>p),i||e._singleFile_getBoundingClientRect||(e._singleFile_getBoundingClientRect=c.prototype.getBoundingClientRect,c.prototype.getBoundingClientRect=function(){const t=e._singleFile_getBoundingClientRect.call(this);return this==r&&(t.__defineGetter__("height",()=>f),t.__defineGetter__("bottom",()=>f+t.top),t.__defineGetter__("width",()=>p),t.__defineGetter__("right",()=>p+t.left)),t}),!e._singleFileImage){const t=e.Image;e._singleFileImage=e.Image,e.__defineGetter__("Image",function(){return function(){const e=new t(...arguments),i=new t(...arguments);return i.__defineSetter__("src",t=>{e.src=t,l.dispatchEvent(new s(n,{detail:e.src}))}),i.__defineGetter__("src",()=>e.src),i.__defineSetter__("srcset",t=>{l.dispatchEvent(new s(n)),e.srcset=t}),i.__defineGetter__("srcset",()=>e.srcset),i.__defineGetter__("height",()=>e.height),i.__defineGetter__("width",()=>e.width),i.__defineGetter__("naturalHeight",()=>e.naturalHeight),i.__defineGetter__("naturalWidth",()=>e.naturalWidth),e.decode&&i.__defineGetter__("decode",()=>()=>e.decode()),e.onload=e.onloadend=e.onerror=t=>{l.dispatchEvent(new s("single-file-image-loaded",{detail:e.src})),i.dispatchEvent(new g(t.type,t))},i}})}let u,m;i?(u=o/f,m=d/p):(u=(o+e.scrollY)/f,m=(d+e.scrollX)/p);const h=Math.min(u,m);if(h<1){const e=l.documentElement.style.getPropertyValue("transform"),t=l.documentElement.style.getPropertyPriority("transform"),n=l.documentElement.style.getPropertyValue("transform-origin"),r=l.documentElement.style.getPropertyPriority("transform-origin"),o=l.documentElement.style.getPropertyValue("min-height"),s=l.documentElement.style.getPropertyPriority("min-height");l.documentElement.style.setProperty("transform-origin",(u<1?"50%":"0")+" "+(m<1?"50%":"0")+" 0","important"),l.documentElement.style.setProperty("transform","scale3d("+h+", "+h+", 1)","important"),l.documentElement.style.setProperty("min-height",100/h+"vh","important"),dispatchResizeEvent(),i?(l.documentElement.style.setProperty("-sf-transform",e,t),l.documentElement.style.setProperty("-sf-transform-origin",n,r),l.documentElement.style.setProperty("-sf-min-height",o,s)):(l.documentElement.style.setProperty("transform",e,t),l.documentElement.style.setProperty("transform-origin",n,r),l.documentElement.style.setProperty("min-height",o,s))}if(!i){dispatchResizeEvent();const t=r.getBoundingClientRect();e.window==e.window.top&&[...y].forEach(([e,n])=>{const i=n.options&&n.options.root&&n.options.root.getBoundingClientRect,r=i&&n.options.root.getBoundingClientRect(),o=v.get(e);if(o){const s=o.map(e=>{const n=e.getBoundingClientRect();return{target:e,intersectionRatio:1,boundingClientRect:n,intersectionRect:n,isIntersecting:!0,rootBounds:i?r:t,time:0}}).filter(e=>e.boundingClientRect.width&&e.boundingClientRect.height);s.length&&n.callback.call(e,s,e)}})}}function loadDeferredImagesEnd(n){l.querySelectorAll("["+t+"]").forEach(e=>{e.loading="lazy",e.removeAttribute(t)}),n||e._singleFile_getBoundingClientRect&&(c.prototype.getBoundingClientRect=e._singleFile_getBoundingClientRect,delete e._singleFile_getBoundingClientRect),e._singleFileImage&&(delete e.Image,e.Image=e._singleFileImage,delete e._singleFileImage),n||dispatchResizeEvent()}function resetScreenSize(){const t=l.scrollingElement||l.documentElement;null!=e._singleFile_innerHeight&&(delete e.innerHeight,e.innerHeight=e._singleFile_innerHeight,delete e._singleFile_innerHeight),null!=e._singleFile_innerWidth&&(delete e.innerWidth,e.innerWidth=e._singleFile_innerWidth,delete e._singleFile_innerWidth),delete t.clientHeight,delete t.clientWidth,delete a.height,delete a.width}if(init(),new m(init).observe(l,{childList:!0}),e.CSS&&e.CSS.paintWorklet&&e.CSS.paintWorklet.addModule){const t=e.CSS.paintWorklet.addModule;e.CSS.paintWorklet.addModule=function(n,i){try{const r=t.apply(e.CSS.paintWorklet,arguments);return n=new h(n,l.baseURI).href,l.dispatchEvent(new s("single-file-new-worklet",{detail:{moduleURL:n,options:i}})),r}catch(e){throw e.stack=e.message+"\n \n"+e.stack.trim().split("\n").slice(-1).join("\n"),e}}}if(e.FontFace){const t=e.FontFace;e.FontFace=function(e,n,...i){try{return new.target?(getDetailObject(e,n,...i).then(e=>l.dispatchEvent(new s("single-file-new-font-face",{detail:e}))),new t(e,n,...i)):t()}catch(e){throw e.stack=e.message+"\n \n"+e.stack.trim().split("\n").slice(-1).join("\n"),e}},e.FontFace.prototype=t.prototype,e.FontFace.toString=function(){return"function FontFace() { [native code] }"};const n=l.fonts.delete;l.fonts.delete=function(e){try{return getDetailObject(e.family).then(e=>l.dispatchEvent(new s("single-file-delete-font",{detail:e}))),n.call(l.fonts,e)}catch(e){throw e.stack=e.message+"\n \n"+e.stack.trim().split("\n").slice(-1).join("\n"),e}},l.fonts.delete.toString=function(){return"function delete() { [native code] }"};const i=l.fonts.clear;l.fonts.clear=function(){try{return l.dispatchEvent(new s("single-file-clear-fonts")),i.call(l.fonts)}catch(e){throw e.stack=e.message+"\n \n"+e.stack.trim().split("\n").slice(-1).join("\n"),e}},l.fonts.clear.toString=function(){return"function clear() { [native code] }"}}if(e.IntersectionObserver){const t=e.IntersectionObserver;e.IntersectionObserver=function(){try{const e=new t(...arguments),n=t.prototype.observe||e.observe,i=t.prototype.unobserve||e.unobserve,r=arguments[0],o=arguments[1];return n&&(e.observe=function(t){try{let i=v.get(e);return i||(i=[],v.set(e,i)),i.push(t),n.call(e,t)}catch(e){throw e.stack=e.message+"\n \n"+e.stack.trim().split("\n").slice(-1).join("\n"),e}},e.observe.toString=function(){return"function observe() { [native code] }"}),i&&(e.unobserve=function(t){try{let n=v.get(e);return n&&(n=n.filter(e=>e!=t),n.length?v.set(e,n):(v.delete(e),y.delete(e))),i.call(e,t)}catch(e){throw e.stack=e.message+"\n \n"+e.stack.trim().split("\n").slice(-1).join("\n"),e}},e.unobserve.toString=function(){return"function unobserve() { [native code] }"}),y.set(e,{callback:r,options:o}),e}catch(e){throw e.stack=e.message+"\n \n"+e.stack.trim().split("\n").slice(-1).join("\n"),e}},e.IntersectionObserver.prototype=t.prototype,e.IntersectionObserver.toString=function(){return"function IntersectionObserver() { [native code] }"}}const w=_.prototype.replaceSync;_.prototype.replaceSync=function(e){try{const t=w.apply(this,[e]);return S.set(this,e),t}catch(e){throw e.stack=e.message+"\n \n"+e.stack.trim().split("\n").slice(-1).join("\n"),e}},_.prototype.replaceSync.toString=function(){return"function replaceSync() { [native code] }"};const b=_.prototype.replace;_.prototype.replace=async function(e){try{const t=await b.apply(this,[e]);return S.set(this,e),t}catch(e){throw e.stack=e.message+"\n \n"+e.stack.trim().split("\n").slice(-1).join("\n"),e}},_.prototype.replace.toString=function(){return"function replace() { [native code] }"};const k=_.prototype.insertRule;_.prototype.insertRule=function(e,t){try{const n=k.apply(this,[e,t]);return S.delete(this),n}catch(e){throw e.stack=e.message+"\n \n"+e.stack.trim().split("\n").slice(-1).join("\n"),e}},_.prototype.insertRule.toString=function(){return"function insertRule() { [native code] }"};const F=_.prototype.deleteRule;function getAdoptedStylesheetsListener(e){const t=e.target.shadowRoot;if(e.stopPropagation(),t){t.addEventListener(i,getAdoptedStylesheetsListener,{capture:!0}),t.addEventListener("single-file-unregister-request-get-adopted-stylesheets",()=>{t.removeEventListener(i,getAdoptedStylesheetsListener)},{once:!0});const e=Array.from(t.adoptedStyleSheets).map(e=>S.has(e)?S.get(e):Array.from(e.cssRules).map(e=>e.cssText).join("\n"));e.length&&t.dispatchEvent(new s("single-file-response-get-adopted-stylesheets",{detail:{adoptedStyleSheets:e}}))}}async function getDetailObject(e,t,n){const i={};return i["font-family"]=e,i.src=t,n&&Object.keys(n).forEach(e=>{r[e]&&(i[r[e]]=n[e])}),new Promise(e=>{if(i.src instanceof ArrayBuffer){const t=new f;t.readAsDataURL(new p([i.src])),t.addEventListener("load",()=>{i.src="url("+t.result+")",e(i)})}else e(i)})}function dispatchResizeEvent(){try{e.dispatchEvent(new d("resize")),E&&e.dispatchEvent(new d("scroll"))}catch(e){}}_.prototype.deleteRule=function(e){try{const t=F.apply(this,[e]);return S.delete(this),t}catch(e){throw e.stack=e.message+"\n \n"+e.stack.trim().split("\n").slice(-1).join("\n"),e}},_.prototype.deleteRule.toString=function(){return"function deleteRule() { [native code] }"}})("object"==typeof globalThis?globalThis:globalThis.window)}();
|