UNPKG

viewport-extra

Version:

Enable setting minimum and maximum viewport width

3 lines (2 loc) 1.38 kB
/*! Viewport Extra v3.0.0 | (c) dsktschy | MIT License */ var ViewportExtra=function(t){"use strict";const e=Math.trunc,i={width:"device-width",initialScale:1,minimumWidth:0,maximumWidth:1/0},n=(t={})=>({...i,...t}),a=(t={...i},n=0,a=0)=>{const{width:d,initialScale:r}=t,{minimumWidth:c,maximumWidth:m,minWidth:o,maxWidth:u,...h}=t,l=o??c,s=u??m;return l<=s&&"device-width"===d&&(n<l?(h.width=l,h.initialScale=n/l*r):n>s&&(h.width=s,h.initialScale=n/s*r)),Object.keys(h).map(t=>{return`${i=t,i.replace(/\s+/g,"").replace(/[A-Z]+/g,t=>`-${t[0]}`).toLowerCase()}=${"number"==typeof h[t]?((t,i)=>isFinite(i)?e(t*10**i)/10**i:t)(h[t],a):h[t]}`;var i}).sort().join(",")},d=(t={})=>{return{content:n(t.content),media:(e=t.media,e??"")};var e},r=(t,e,i)=>t&&void 0!==e&&void 0!==i?a(t.content,e,i):a(),c=(t,e)=>t.setAttribute("content",e);return t.apply=t=>{var e,i,n;"undefined"!=typeof window&&(e=(t=>{const e=t.querySelector('meta[name="viewport"]');if(e)return e;const i=t.createElement("meta");return i.setAttribute("name","viewport"),t.head.appendChild(i),i})(document),c(e,r()),c(e,r(d(t.reduce((n=matchMedia,i=t=>void 0===t||n(t).matches,(t,e)=>i(e.media)?((t,e)=>{const i={},n=(d=e.content,(a=t.content)?{...a,...d??{}}:d);var a,d;const r=e.media??t.media;return n&&(i.content=n),void 0!==r&&(i.media=r),i})(t,e):t),d())),document.documentElement.clientWidth,1/0)))},t}({});