UNPKG

ll-package

Version:

2 lines (1 loc) 1.25 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("../../../@babel/runtime/helpers/esm/extends.js"),h=require("vue"),x=require("../theme/internal.js"),m=["xxxl","xxl","xl","lg","md","sm","xs"],p=r=>({xs:`(max-width: ${r.screenXSMax}px)`,sm:`(min-width: ${r.screenSM}px)`,md:`(min-width: ${r.screenMD}px)`,lg:`(min-width: ${r.screenLG}px)`,xl:`(min-width: ${r.screenXL}px)`,xxl:`(min-width: ${r.screenXXL}px)`,xxxl:`{min-width: ${r.screenXXXL}px}`});function v(){const[,r]=x.useToken();return h.computed(()=>{const n=p(r.value),t=new Map;let a=-1,c={};return{matchHandlers:{},dispatch(e){return c=e,t.forEach(i=>i(c)),t.size>=1},subscribe(e){return t.size||this.register(),a+=1,t.set(a,e),e(c),a},unsubscribe(e){t.delete(e),t.size||this.unregister()},unregister(){Object.keys(n).forEach(e=>{const i=n[e],s=this.matchHandlers[i];s==null||s.mql.removeListener(s==null?void 0:s.listener)}),t.clear()},register(){Object.keys(n).forEach(e=>{const i=n[e],s=u=>{let{matches:o}=u;this.dispatch(l.default(l.default({},c),{[e]:o}))},d=window.matchMedia(i);d.addListener(s),this.matchHandlers[i]={mql:d,listener:s},s(d)})},responsiveMap:n}})}exports.default=v;exports.responsiveArray=m;