UNPKG

@fe6/water-pro

Version:

An enterprise-class UI design language and Vue-based implementation

103 lines (84 loc) 2.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useBreakpoint = useBreakpoint; exports.createBreakpointListen = createBreakpointListen; var _vue = require("vue"); var _useEventListener = require("../../../_util/hooks/use-event-listener"); var _breakpoint = require("../enums/breakpoint"); /** @format */ var globalScreenRef; var globalWidthRef; var globalRealWidthRef; function useBreakpoint() { return { screenRef: (0, _vue.computed)(function () { return (0, _vue.unref)(globalScreenRef); }), widthRef: globalWidthRef, screenEnum: _breakpoint.screenEnum, realWidthRef: globalRealWidthRef }; } // Just call it once function createBreakpointListen(fn) { var screenRef = (0, _vue.ref)(_breakpoint.sizeEnum.XL); var realWidthRef = (0, _vue.ref)(window.innerWidth); function getWindowWidth() { var width = document.body.clientWidth; var xs = _breakpoint.screenMap.get(_breakpoint.sizeEnum.XS); var sm = _breakpoint.screenMap.get(_breakpoint.sizeEnum.SM); var md = _breakpoint.screenMap.get(_breakpoint.sizeEnum.MD); var lg = _breakpoint.screenMap.get(_breakpoint.sizeEnum.LG); var xl = _breakpoint.screenMap.get(_breakpoint.sizeEnum.XL); if (width < xs) { screenRef.value = _breakpoint.sizeEnum.XS; } else if (width < sm) { screenRef.value = _breakpoint.sizeEnum.SM; } else if (width < md) { screenRef.value = _breakpoint.sizeEnum.MD; } else if (width < lg) { screenRef.value = _breakpoint.sizeEnum.LG; } else if (width < xl) { screenRef.value = _breakpoint.sizeEnum.XL; } else { screenRef.value = _breakpoint.sizeEnum.XXL; } realWidthRef.value = width; } (0, _useEventListener.useEventListener)({ el: window, name: 'resize', listener: function listener() { getWindowWidth(); resizeFn(); } }); getWindowWidth(); globalScreenRef = (0, _vue.computed)(function () { return (0, _vue.unref)(screenRef); }); globalWidthRef = (0, _vue.computed)(function () { return _breakpoint.screenMap.get((0, _vue.unref)(screenRef)); }); globalRealWidthRef = (0, _vue.computed)(function () { return (0, _vue.unref)(realWidthRef); }); function resizeFn() { fn === null || fn === void 0 ? void 0 : fn({ screen: globalScreenRef, width: globalWidthRef, realWidth: globalRealWidthRef, screenEnum: _breakpoint.screenEnum, screenMap: _breakpoint.screenMap, sizeEnum: _breakpoint.sizeEnum }); } resizeFn(); return { screenRef: globalScreenRef, screenEnum: _breakpoint.screenEnum, widthRef: globalWidthRef, realWidthRef: globalRealWidthRef }; }