UNPKG

viewport-extra

Version:

Enable setting minimum and maximum viewport width

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