spanning-css-polyfill
Advanced tools
Comparing version 1.0.6 to 1.0.8
@@ -1,2 +0,2 @@ | ||
var e="spanning",n="single-fold-horizontal",t="single-fold-vertical",o="none",r="fold-top",i="fold-left",a="fold-height",d="fold-width",l="__foldables_env_vars__",u="(@media.*?\\b"+e+"\\b[^{]+)\\{([\\s\\S]+?\\})\\s*\\}",c=/\((.*?)\)/gi,f=/@media[^\(]+/gi,s=function(e){return new RegExp("env\\(\\s*"+e+"\\s*\\)","gi")};function h(e,n){return e.replace(new RegExp(u,"gi"),n)}function p(r){var i=function(e){var n,t=new RegExp(u,"gi");if("function"==typeof e.matchAll)n=Array.from(e.matchAll(t));else{for(n=[];n[n.length]=t.exec(e););n.length--}return n}(r),a={};return a[n]="",a[t]="",a[o]="",i.forEach(function(r){var i=r[1],d=r[2],l=o;i.indexOf(n)>-1&&(l=n),i.indexOf(t)>-1&&(l=t);var u=i.match(f)||[],s=i.match(c)||[];s=s.filter(function(n){return!n.includes(e)}).join(" and "),a[l]+="\n "+u+" "+s+" {\n "+d+"\n }"}),a}function w(e,n){var t;return function(){var o=arguments,r=this;clearTimeout(t),t=setTimeout(function(){return e.apply(r,o)},n)}}if(void 0===window[l]){var g=sessionStorage.getItem(l+"-spanning")||o,m=+sessionStorage.getItem(l+"-foldSize")||0,v=+sessionStorage.getItem(l+"-browserShellSize")||0;Object.defineProperty(window,l,{value:{spanning:g,foldSize:m,browserShellSize:v,update:A,onupdate:[x]}}),window.addEventListener("message",function(e){"update"===(e.data.action||"")&&window[l].update(e.data.value||{})})}else window[l].onupdate.push(x);var S,y=Array.from(document.querySelectorAll('link[rel="stylesheet"], style')),E={};function b(e,r){var i,a=h(e,""),d=p(e);r&&(E[r]=((i={})[n]="",i[t]="",i[o]="",i));var l=r?E[r]:E;return Object.keys(d).forEach(function(e){void 0!==l[e]&&(l[e]+="\n /* origin: "+(r||"inline")+" */\n "+d[e])}),l["non-spanning"]=a,a}function z(e){x(e),window.addEventListener("resize",function(){return w(x(e),150)}),window[l].onupdate.push(function(){return x(e)})}function x(e){e?Array.from(e.shadowRoot.querySelectorAll("."+l)).forEach(function(e){return e.parentNode.removeChild(e)}):Array.from(document.querySelectorAll("."+l)).forEach(function(e){return e.parentElement.removeChild(e)});var o=window[l],u=e?E[e.nodeName.toLowerCase()][o.spanning]:E[o.spanning],c=e?E[e.nodeName.toLowerCase()]["non-spanning"]:null,f=function(e){var o,l=0,u=0,c=0,f=0;return e.spanning===t&&(c=e.foldSize,f=window.innerHeight,l=window.innerWidth/2-e.foldSize/2),e.spanning===n&&(c=window.innerWidth,f=e.foldSize,u=(window.innerHeight-e.browserShellSize)/2-e.foldSize/2),(o={})[r]=u,o[i]=l,o[a]=f,o[d]=c,o}(o);Object.keys(f).forEach(function(e){var n;n=f[e]+"px",u=u.replace(s(e),n)});var h=document.createElement("style");if(h.className=l,h.textContent=u,e){var p=e.shadowRoot;"adoptedStyleSheets"in p&&p.adoptedStyleSheets.length>0?p.adoptedStyleSheets[0].replace(c+u):p.appendChild(h)}else document.head.appendChild(h)}E[n]="",E[t]="",E[o]="",(S=y,Promise.all(S.map(function(e){var n=e.href;return n?fetch(n).then(function(e){return e.text()}):e.textContent}))).then(function(e){var n=new DocumentFragment;e.forEach(function(e,t){var o,r,i,a=h(e,""),d=p(e),l=y[t].href||"inline";Object.keys(d).forEach(function(e){void 0!==E[e]&&(E[e]+="\n /* origin: "+l+" */\n "+d[e])}),n.appendChild((o={"data-css-origin":l},r=a,i=document.createElement("style"),Object.keys(o).forEach(function(e){i.setAttribute(e,o[e])}),void 0!==r&&(i.textContent=r),i))}),y.forEach(function(e){return null!=e.parentElement&&e.parentElement.removeChild(e)}),document.head.appendChild(n),x(),window.addEventListener("resize",function(){return w(x,150)})});var C=new Set(["foldSize","browserShellSize","spanning"]);function A(e){Object.keys(e).forEach(function(n){C.has(n)&&(window[l][n]=e[n],sessionStorage.setItem(l+"-"+n,window[l][n]))}),window[l].onupdate.forEach(function(e){return e()})}export{b as adjustCSS,z as observe,A as update}; | ||
var e="spanning",n="single-fold-horizontal",t="single-fold-vertical",i="none",o="fold-top",r="fold-left",a="fold-height",d="fold-width",l="__foldables_env_vars__",s="(@media.*?\\b"+e+"\\b[^{]+)\\{([\\s\\S]+?\\})\\s*\\}",c=/\((.*?)\)/gi,f=/@media[^\(]+/gi,u=function(e){return new RegExp("env\\(\\s*"+e+"\\s*\\)","gi")};function h(e,n){return e.replace(new RegExp(s,"gi"),n)}function p(o){var r=function(e){var n,t=new RegExp(s,"gi");if("function"==typeof e.matchAll)n=Array.from(e.matchAll(t));else{for(n=[];n[n.length]=t.exec(e););n.length--}return n}(o),a={};return a[n]="",a[t]="",a[i]="",r.forEach(function(o){var r=o[1],d=o[2],l=i;r.indexOf(n)>-1&&(l=n),r.indexOf(t)>-1&&(l=t);var s=r.match(f)||[],u=r.match(c)||[];u=u.filter(function(n){return!n.includes(e)}).join(" and "),a[l]+="\n "+s+" "+u+" {\n "+d+"\n }"}),a}var g,v=window.matchMedia("(spanning: single-fold-horizontal)").matches||window.matchMedia("(spanning: single-fold-vertical)").matches||window.matchMedia("(spanning: none)").matches||!1;if(console.info("CSS Spanning Media Queries are supported? "+v),!v){if(void 0===window[l]){var w=document.createDocumentFragment();Object.defineProperty(window,l,{value:{update:E,spanning:sessionStorage.getItem(l+"-spanning")||i,foldSize:+sessionStorage.getItem(l+"-foldSize")||0,browserShellSize:+sessionStorage.getItem(l+"-browserShellSize")||0,addEventListener:w.addEventListener.bind(w),dispatchEvent:w.dispatchEvent.bind(w)}}),window.addEventListener("message",function(e){"update"===(e.data.action||"")&&window[l].update(e.data.value||{})})}var m=Array.from(document.querySelectorAll('link[rel="stylesheet"], style'));(g=m,Promise.all(g.map(function(e){var n=e.href;return n?fetch(n).then(function(e){return e.text()}):e.textContent}))).then(function(e){if(v)return sheet;var n=new DocumentFragment;e.forEach(function(e,t){for(var i,o,r,a=h(e,""),d=p(e),l=m[t].href||"inline",s=0,c=Object.entries(d);s<c.length;s+=1){var f=c[s];y[f[0]]+="/* origin: "+l+" */\n"+f[1]}n.appendChild((i={"data-css-origin":l},o=a,r=document.createElement("style"),Object.keys(i).forEach(function(e){r.setAttribute(e,i[e])}),void 0!==o&&(r.textContent=o),r))}),m.forEach(function(e){return null!=e.parentElement&&e.parentElement.removeChild(e)}),document.head.appendChild(n),z()})}var S=new Set(["foldSize","browserShellSize","spanning"]);function E(e){if(v)throw new DOMException("Failed updating; spanning is natively supported by the user agent.","NotSupportedError");Object.keys(e).forEach(function(n){S.has(n)&&(window[l][n]=e[n],sessionStorage.setItem(l+"-"+n,window[l][n]))}),window[l].dispatchEvent(new Event("update"))}var y={};function b(e,o){var r;if(v)return e;var a=h(e,""),d=p(e);o&&(y[o]=((r={})[n]="",r[t]="",r[i]="",r));for(var l=o?y[o]:y,s=o||"inline",c=0,f=Object.entries(d);c<f.length;c+=1){var u=f[c];l[u[0]]+="/* origin: "+s+" */\n"+u[1]}return l["non-spanning"]=a,a}function z(e){v||(x(e),window.addEventListener("resize",function(){return n=x(e),function(){var e=arguments,i=this;clearTimeout(t),t=setTimeout(function(){return n.apply(i,e)},150)};var n,t}),window[l].addEventListener("update",function(){return x(e)}))}function x(e){for(var i,s,c,f,h,p,g,v=window[l],w=e?y[e.nodeName.toLowerCase()][v.spanning]:y[v.spanning],m=e?y[e.nodeName.toLowerCase()]["non-spanning"]:null,S=0,E=Object.entries((c=void 0,f=void 0,h=void 0,p=void 0,g=void 0,f=0,h=0,p=0,g=0,(s=v).spanning===t&&(p=s.foldSize,g=window.innerHeight,f=window.innerWidth/2-s.foldSize/2),s.spanning===n&&(p=window.innerWidth,g=s.foldSize,h=(window.innerHeight-s.browserShellSize)/2-s.foldSize/2),(c={})[o]=h,c[r]=f,c[a]=g,c[d]=p,c));S<E.length;S+=1){var b=E[S];i=b[1]+"px",w=w.replace(u(b[0]),i)}var z=function(e,n){for(var t=0,i=e.querySelectorAll("."+l);t<i.length;t+=1)i[t].remove();var o=document.createElement("style");o.className=l,o.textContent=n,e===document?document.head.appendChild(o):e.appendChild(o)};if(e){var x=e.shadowRoot;"adoptedStyleSheets"in x&&x.adoptedStyleSheets.length>0?x.adoptedStyleSheets[0].replace(m+w):z(x,w)}else z(document,w)}y[n]="",y[t]="",y[i]="";export{E as update,b as adjustCSS,z as observe}; | ||
//# sourceMappingURL=spanning-css-polyfill.js.map |
{ | ||
"name": "spanning-css-polyfill", | ||
"version": "1.0.6", | ||
"version": "1.0.8", | ||
"description": "Polyfill for CSS spanning media query", | ||
@@ -5,0 +5,0 @@ "module": "build/spanning-css-polyfill.js", |
11975
17