| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
- export var responsiveArray = ['xxxl', 'xxl', 'xl', 'lg', 'md', 'sm', 'xs'];
- export var responsiveMap = {
- xs: '(max-width: 575px)',
- sm: '(min-width: 576px)',
- md: '(min-width: 768px)',
- lg: '(min-width: 992px)',
- xl: '(min-width: 1200px)',
- xxl: '(min-width: 1600px)',
- xxxl: '(min-width: 2000px)'
- };
- var subscribers = new Map();
- var subUid = -1;
- var screens = {};
- var responsiveObserve = {
- matchHandlers: {},
- dispatch: function dispatch(pointMap) {
- screens = pointMap;
- subscribers.forEach(function (func) {
- return func(screens);
- });
- return subscribers.size >= 1;
- },
- subscribe: function subscribe(func) {
- if (!subscribers.size) this.register();
- subUid += 1;
- subscribers.set(subUid, func);
- func(screens);
- return subUid;
- },
- unsubscribe: function unsubscribe(token) {
- subscribers.delete(token);
- if (!subscribers.size) this.unregister();
- },
- unregister: function unregister() {
- var _this = this;
- Object.keys(responsiveMap).forEach(function (screen) {
- var matchMediaQuery = responsiveMap[screen];
- var handler = _this.matchHandlers[matchMediaQuery];
- handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);
- });
- subscribers.clear();
- },
- register: function register() {
- var _this2 = this;
- Object.keys(responsiveMap).forEach(function (screen) {
- var matchMediaQuery = responsiveMap[screen];
- var listener = function listener(_ref) {
- var matches = _ref.matches;
- _this2.dispatch(_objectSpread(_objectSpread({}, screens), {}, _defineProperty({}, screen, matches)));
- };
- var mql = window.matchMedia(matchMediaQuery);
- mql.addListener(listener);
- _this2.matchHandlers[matchMediaQuery] = {
- mql: mql,
- listener: listener
- };
- listener(mql);
- });
- }
- };
- export default responsiveObserve;
|