"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.responsiveMap = exports.responsiveArray = void 0; function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } // matchMedia polyfill for // https://github.com/WickyNilliams/enquire.js/issues/82 var enquire; // TODO: Will be removed in antd 4.0 because we will no longer support ie9 if (typeof window !== 'undefined') { var matchMediaPolyfill = function matchMediaPolyfill(mediaQuery) { return { media: mediaQuery, matches: false, addListener: function addListener() {}, removeListener: function removeListener() {} }; }; // ref: https://github.com/ant-design/ant-design/issues/18774 if (!window.matchMedia) window.matchMedia = matchMediaPolyfill; // eslint-disable-next-line global-require enquire = require('enquire.js'); } var responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs']; exports.responsiveArray = responsiveArray; 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)' }; exports.responsiveMap = responsiveMap; var subscribers = []; var subUid = -1; var screens = {}; var responsiveObserve = { dispatch: function dispatch(pointMap) { screens = pointMap; if (subscribers.length < 1) { return false; } subscribers.forEach(function (item) { item.func(screens); }); return true; }, subscribe: function subscribe(func) { if (subscribers.length === 0) { this.register(); } var token = (++subUid).toString(); subscribers.push({ token: token, func: func }); func(screens); return token; }, unsubscribe: function unsubscribe(token) { subscribers = subscribers.filter(function (item) { return item.token !== token; }); if (subscribers.length === 0) { this.unregister(); } }, unregister: function unregister() { Object.keys(responsiveMap).map(function (screen) { return enquire.unregister(responsiveMap[screen]); }); }, register: function register() { var _this = this; Object.keys(responsiveMap).map(function (screen) { return enquire.register(responsiveMap[screen], { match: function match() { var pointMap = _extends(_extends({}, screens), _defineProperty({}, screen, true)); _this.dispatch(pointMap); }, unmatch: function unmatch() { var pointMap = _extends(_extends({}, screens), _defineProperty({}, screen, false)); _this.dispatch(pointMap); }, // Keep a empty destory to avoid triggering unmatch when unregister destroy: function destroy() {} }); }); } }; var _default = responsiveObserve; exports["default"] = _default;