@open-condo/ui 1.26.2 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,7 +9,8 @@
9
9
  [Usage](#usage)\
10
10
  [Including styles](#including-styles)\
11
11
  [Access theme colors](#access-theme-colors)\
12
- [Style-variables](#style-variables)
12
+ [Style-variables](#style-variables)\
13
+ [Hooks](#hooks)
13
14
 
14
15
  ## Installation
15
16
  To install package simply run the following command if you're using npm as your package manager:
@@ -56,3 +57,33 @@ import '@open-condo/ui/style-vars/css'
56
57
  ```less
57
58
  @import (reference) "@open-condo/ui/dist/style-vars/variables.less";
58
59
  ```
60
+
61
+ ## Hooks
62
+ Hooks can be imported as follows:
63
+ ```js
64
+ import { useBreakpoints, useContainerSize } from '@open-condo/ui/hooks';
65
+ ```
66
+ - `useBreakpoints` - returns the breakpoint object and its current value.
67
+ Breakpoint value becomes `true` if the window width is greater than or equal to the corresponding breakpoint.
68
+ The name and width of the breakpoints:
69
+ - `MOBILE_SMALL` (0px)
70
+ - `MOBILE_LARGE` (360px)
71
+ - `TABLET_SMALL` (480px)
72
+ - `TABLET_LARGE` (768px)
73
+ - `DESKTOP_SMALL` (992px)
74
+ - `DESKTOP_LARGE` (1200px)
75
+ ```js
76
+ const breakpoints = useBreakpoints()
77
+
78
+ // window width >= 480px and < 992px
79
+ const isTablet = breakpoints.TABLET_SMALL && !breakpoints.DESKTOP_SMALL
80
+ ```
81
+
82
+ - `useContainerSize` provides the dimensions of a specific container.
83
+ ```js
84
+ const [{ width, height }, setRef] = useContainerSize()
85
+
86
+ console.log(width, height)
87
+
88
+ return <div ref={setRef} />
89
+ ```
@@ -8,7 +8,7 @@ export declare type TypographyTitleProps = Pick<DefaultTitleProps, 'ellipsis' |
8
8
  };
9
9
  declare const Title: React.ForwardRefExoticComponent<Pick<DefaultTitleProps, "onClick" | "title" | "children" | "ellipsis"> & {
10
10
  type?: "success" | "info" | "warning" | "secondary" | "danger" | "inverted" | undefined;
11
- level?: 1 | 2 | 3 | 4 | 6 | 5 | undefined;
11
+ level?: 6 | 1 | 2 | 3 | 4 | 5 | undefined;
12
12
  } & React.RefAttributes<HTMLElement>>;
13
13
  export { Title, };
14
14
  //# sourceMappingURL=title.d.ts.map
@@ -1,3 +1,5 @@
1
1
  export { usePatchElement } from './usePatchElement';
2
2
  export { useContainerSize } from './useContainerSize';
3
+ export { useForceUpdate } from './useForceUpdate';
4
+ export { useBreakpoints } from './useBreakpoints';
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/_utils/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/_utils/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { ScreenMap } from '../responsiveObserve';
2
+ export declare function useBreakpoints(refreshOnChange?: boolean): ScreenMap;
3
+ //# sourceMappingURL=useBreakpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBreakpoints.d.ts","sourceRoot":"","sources":["../../../../src/components/_utils/hooks/useBreakpoints.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAKhD,wBAAgB,cAAc,CAAE,eAAe,UAAO,GAAG,SAAS,CAkBjE"}
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ export declare function useForceUpdate(): React.DispatchWithoutAction;
3
+ //# sourceMappingURL=useForceUpdate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useForceUpdate.d.ts","sourceRoot":"","sources":["../../../../src/components/_utils/hooks/useForceUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,wBAAgB,cAAc,gCAG7B"}
@@ -0,0 +1,24 @@
1
+ export declare const BREAKPOINTS: readonly ["MOBILE_SMALL", "MOBILE_LARGE", "TABLET_SMALL", "TABLET_LARGE", "DESKTOP_SMALL", "DESKTOP_LARGE"];
2
+ export declare type Breakpoint = typeof BREAKPOINTS[number];
3
+ declare type BreakpointMap = {
4
+ [Key in Breakpoint]: string;
5
+ };
6
+ export declare type ScreenMap = Partial<Record<Breakpoint, boolean>>;
7
+ export declare type ScreenSizeMap = Partial<Record<Breakpoint, number>>;
8
+ export declare const responsiveMap: BreakpointMap;
9
+ declare type SubscribeFunc = (screens: ScreenMap) => void;
10
+ declare const responsiveObserve: {
11
+ matchHandlers: {
12
+ [prop: string]: {
13
+ mql: MediaQueryList;
14
+ listener: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null;
15
+ };
16
+ };
17
+ dispatch(pointMap: ScreenMap): boolean;
18
+ subscribe(func: SubscribeFunc): number;
19
+ unsubscribe(token: number): void;
20
+ unregister(): void;
21
+ register(): void;
22
+ };
23
+ export default responsiveObserve;
24
+ //# sourceMappingURL=responsiveObserve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responsiveObserve.d.ts","sourceRoot":"","sources":["../../../src/components/_utils/responsiveObserve.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,6GAAkG,CAAA;AAE1H,oBAAY,UAAU,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAA;AACnD,aAAK,aAAa,GAAG;KAAG,GAAG,IAAI,UAAU,GAAG,MAAM;CAAE,CAAA;AAEpD,oBAAY,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;AAC5D,oBAAY,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA;AAE/D,eAAO,MAAM,aAAa,EAAE,aAO3B,CAAA;AAED,aAAK,aAAa,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,CAAA;AAKjD,QAAA,MAAM,iBAAiB;;;iBAGN,cAAc;8BACD,cAAc,MAAM,mBAAmB,KAAK,GAAG;;;uBAGrD,SAAS;oBAKZ,aAAa,GAAG,MAAM;uBAOnB,MAAM;;;CA+B7B,CAAA;AAED,eAAe,iBAAiB,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { useBreakpoints } from './components/_utils/hooks/useBreakpoints';
2
+ export { useContainerSize } from './components/_utils/hooks/useContainerSize';
3
+ export type { Breakpoint, ScreenMap, BREAKPOINTS } from './components/_utils/responsiveObserve';
4
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAA;AAE7E,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA"}
package/dist/hooks.js ADDED
@@ -0,0 +1,321 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory(require("react"));
4
+ else if(typeof define === 'function' && define.amd)
5
+ define(["react"], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["@open-condo/ui"] = factory(require("react"));
8
+ else
9
+ root["@open-condo/ui"] = factory(root["react"]);
10
+ })(this, function(__WEBPACK_EXTERNAL_MODULE__8156__) {
11
+ return /******/ (function() { // webpackBootstrap
12
+ /******/ "use strict";
13
+ /******/ var __webpack_modules__ = ({
14
+
15
+ /***/ 8156:
16
+ /***/ (function(module) {
17
+
18
+ module.exports = __WEBPACK_EXTERNAL_MODULE__8156__;
19
+
20
+ /***/ })
21
+
22
+ /******/ });
23
+ /************************************************************************/
24
+ /******/ // The module cache
25
+ /******/ var __webpack_module_cache__ = {};
26
+ /******/
27
+ /******/ // The require function
28
+ /******/ function __webpack_require__(moduleId) {
29
+ /******/ // Check if module is in cache
30
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
31
+ /******/ if (cachedModule !== undefined) {
32
+ /******/ return cachedModule.exports;
33
+ /******/ }
34
+ /******/ // Create a new module (and put it into the cache)
35
+ /******/ var module = __webpack_module_cache__[moduleId] = {
36
+ /******/ // no module.id needed
37
+ /******/ // no module.loaded needed
38
+ /******/ exports: {}
39
+ /******/ };
40
+ /******/
41
+ /******/ // Execute the module function
42
+ /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
43
+ /******/
44
+ /******/ // Return the exports of the module
45
+ /******/ return module.exports;
46
+ /******/ }
47
+ /******/
48
+ /************************************************************************/
49
+ /******/ /* webpack/runtime/define property getters */
50
+ /******/ !function() {
51
+ /******/ // define getter functions for harmony exports
52
+ /******/ __webpack_require__.d = function(exports, definition) {
53
+ /******/ for(var key in definition) {
54
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
55
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
56
+ /******/ }
57
+ /******/ }
58
+ /******/ };
59
+ /******/ }();
60
+ /******/
61
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
62
+ /******/ !function() {
63
+ /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
64
+ /******/ }();
65
+ /******/
66
+ /******/ /* webpack/runtime/make namespace object */
67
+ /******/ !function() {
68
+ /******/ // define __esModule on exports
69
+ /******/ __webpack_require__.r = function(exports) {
70
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
71
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
72
+ /******/ }
73
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
74
+ /******/ };
75
+ /******/ }();
76
+ /******/
77
+ /************************************************************************/
78
+ var __webpack_exports__ = {};
79
+ // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
80
+ !function() {
81
+ // ESM COMPAT FLAG
82
+ __webpack_require__.r(__webpack_exports__);
83
+
84
+ // EXPORTS
85
+ __webpack_require__.d(__webpack_exports__, {
86
+ "useBreakpoints": function() { return /* reexport */ useBreakpoints; },
87
+ "useContainerSize": function() { return /* reexport */ useContainerSize; }
88
+ });
89
+
90
+ // EXTERNAL MODULE: external "react"
91
+ var external_react_ = __webpack_require__(8156);
92
+ ;// CONCATENATED MODULE: ./src/components/_utils/responsiveObserve.ts
93
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
94
+
95
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
96
+
97
+ 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; }
98
+
99
+ var MOBILE_SMALL = 'MOBILE_SMALL';
100
+ var MOBILE_LARGE = 'MOBILE_LARGE';
101
+ var TABLET_SMALL = 'TABLET_SMALL';
102
+ var TABLET_LARGE = 'TABLET_LARGE';
103
+ var DESKTOP_SMALL = 'DESKTOP_SMALL';
104
+ var DESKTOP_LARGE = 'DESKTOP_LARGE';
105
+ var BREAKPOINTS = [MOBILE_SMALL, MOBILE_LARGE, TABLET_SMALL, TABLET_LARGE, DESKTOP_SMALL, DESKTOP_LARGE];
106
+ var responsiveMap = {
107
+ MOBILE_SMALL: '(min-width: 0px)',
108
+ MOBILE_LARGE: '(min-width: 360px)',
109
+ TABLET_SMALL: '(min-width: 480px)',
110
+ TABLET_LARGE: '(min-width: 768px)',
111
+ DESKTOP_SMALL: '(min-width: 992px)',
112
+ DESKTOP_LARGE: '(min-width: 1200px)'
113
+ };
114
+ var subscribers = new Map();
115
+ var subUid = -1;
116
+ var screens = {};
117
+ var responsiveObserve = {
118
+ matchHandlers: {},
119
+ dispatch: function dispatch(pointMap) {
120
+ screens = pointMap;
121
+ subscribers.forEach(function (func) {
122
+ return func(screens);
123
+ });
124
+ return subscribers.size >= 1;
125
+ },
126
+ subscribe: function subscribe(func) {
127
+ if (!subscribers.size) this.register();
128
+ subUid += 1;
129
+ subscribers.set(subUid, func);
130
+ func(screens);
131
+ return subUid;
132
+ },
133
+ unsubscribe: function unsubscribe(token) {
134
+ subscribers.delete(token);
135
+ if (!subscribers.size) this.unregister();
136
+ },
137
+ unregister: function unregister() {
138
+ var _this = this;
139
+
140
+ Object.keys(responsiveMap).forEach(function (screen) {
141
+ var matchMediaQuery = responsiveMap[screen];
142
+ var handler = _this.matchHandlers[matchMediaQuery];
143
+ handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);
144
+ });
145
+ subscribers.clear();
146
+ },
147
+ register: function register() {
148
+ var _this2 = this;
149
+
150
+ Object.keys(responsiveMap).forEach(function (screen) {
151
+ var matchMediaQuery = responsiveMap[screen];
152
+
153
+ var listener = function listener(_ref) {
154
+ var matches = _ref.matches;
155
+
156
+ _this2.dispatch(_objectSpread(_objectSpread({}, screens), {}, _defineProperty({}, screen, matches)));
157
+ };
158
+
159
+ var mql = window.matchMedia(matchMediaQuery);
160
+ mql.addListener(listener);
161
+ _this2.matchHandlers[matchMediaQuery] = {
162
+ mql: mql,
163
+ listener: listener
164
+ };
165
+ listener(mql);
166
+ });
167
+ }
168
+ };
169
+ /* harmony default export */ var _utils_responsiveObserve = (responsiveObserve);
170
+ ;// CONCATENATED MODULE: ./src/components/_utils/hooks/usePatchElement.ts
171
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
172
+
173
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
174
+
175
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
176
+
177
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
178
+
179
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
180
+
181
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
182
+
183
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
184
+
185
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
186
+
187
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
188
+
189
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
190
+
191
+
192
+ function usePatchElement() {
193
+ var _useState = useState([]),
194
+ _useState2 = _slicedToArray(_useState, 2),
195
+ elements = _useState2[0],
196
+ setElements = _useState2[1];
197
+
198
+ var patchElement = useCallback(function (el) {
199
+ setElements(function (prev) {
200
+ return [].concat(_toConsumableArray(prev), [el]);
201
+ });
202
+ return function () {
203
+ setElements(function (prev) {
204
+ return prev.filter(function (item) {
205
+ return item != el;
206
+ });
207
+ });
208
+ };
209
+ }, []);
210
+ return [elements, patchElement];
211
+ }
212
+ ;// CONCATENATED MODULE: ./src/components/_utils/hooks/useContainerSize.ts
213
+ function useContainerSize_slicedToArray(arr, i) { return useContainerSize_arrayWithHoles(arr) || useContainerSize_iterableToArrayLimit(arr, i) || useContainerSize_unsupportedIterableToArray(arr, i) || useContainerSize_nonIterableRest(); }
214
+
215
+ function useContainerSize_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
216
+
217
+ function useContainerSize_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return useContainerSize_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return useContainerSize_arrayLikeToArray(o, minLen); }
218
+
219
+ function useContainerSize_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
220
+
221
+ function useContainerSize_iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
222
+
223
+ function useContainerSize_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
224
+
225
+
226
+ function useContainerSize() {
227
+ var _useState = (0,external_react_.useState)({
228
+ width: 1200,
229
+ height: 1000
230
+ }),
231
+ _useState2 = useContainerSize_slicedToArray(_useState, 2),
232
+ size = _useState2[0],
233
+ setSize = _useState2[1];
234
+
235
+ var _useState3 = (0,external_react_.useState)(null),
236
+ _useState4 = useContainerSize_slicedToArray(_useState3, 2),
237
+ refElement = _useState4[0],
238
+ setRefElement = _useState4[1];
239
+
240
+ (0,external_react_.useEffect)(function () {
241
+ if (!refElement) return;
242
+ setSize({
243
+ width: refElement.offsetWidth,
244
+ height: refElement.offsetHeight
245
+ });
246
+ var observer = new ResizeObserver(function (entries) {
247
+ if (entries.length == 1) {
248
+ var entry = entries[0];
249
+ setSize({
250
+ width: entry.contentRect.width,
251
+ height: entry.contentRect.height
252
+ });
253
+ }
254
+ });
255
+ observer.observe(refElement);
256
+ return function () {
257
+ observer.unobserve(refElement);
258
+ };
259
+ }, [refElement]);
260
+ return [size, setRefElement];
261
+ }
262
+ ;// CONCATENATED MODULE: ./src/components/_utils/hooks/useForceUpdate.ts
263
+ function useForceUpdate_slicedToArray(arr, i) { return useForceUpdate_arrayWithHoles(arr) || useForceUpdate_iterableToArrayLimit(arr, i) || useForceUpdate_unsupportedIterableToArray(arr, i) || useForceUpdate_nonIterableRest(); }
264
+
265
+ function useForceUpdate_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
266
+
267
+ function useForceUpdate_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return useForceUpdate_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return useForceUpdate_arrayLikeToArray(o, minLen); }
268
+
269
+ function useForceUpdate_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
270
+
271
+ function useForceUpdate_iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
272
+
273
+ function useForceUpdate_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
274
+
275
+
276
+ function useForceUpdate() {
277
+ var _React$useReducer = external_react_.useReducer(function (x) {
278
+ return x + 1;
279
+ }, 0),
280
+ _React$useReducer2 = useForceUpdate_slicedToArray(_React$useReducer, 2),
281
+ forceUpdate = _React$useReducer2[1];
282
+
283
+ return forceUpdate;
284
+ }
285
+ ;// CONCATENATED MODULE: ./src/components/_utils/hooks/index.ts
286
+
287
+
288
+
289
+
290
+ ;// CONCATENATED MODULE: ./src/components/_utils/hooks/useBreakpoints.tsx
291
+
292
+
293
+
294
+ function useBreakpoints() {
295
+ var refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
296
+ var screensRef = (0,external_react_.useRef)({});
297
+ var forceUpdate = useForceUpdate();
298
+ (0,external_react_.useEffect)(function () {
299
+ if (typeof window !== 'undefined') {
300
+ var token = _utils_responsiveObserve.subscribe(function (supportScreens) {
301
+ screensRef.current = supportScreens;
302
+
303
+ if (refreshOnChange) {
304
+ forceUpdate();
305
+ }
306
+ });
307
+ return function () {
308
+ return _utils_responsiveObserve.unsubscribe(token);
309
+ };
310
+ }
311
+ }, []);
312
+ return screensRef.current;
313
+ }
314
+ ;// CONCATENATED MODULE: ./src/hooks.ts
315
+
316
+
317
+ }();
318
+ /******/ return __webpack_exports__;
319
+ /******/ })()
320
+ ;
321
+ });
package/dist/index.js CHANGED
@@ -47713,9 +47713,136 @@ function useContainerSize() {
47713
47713
  }, [refElement]);
47714
47714
  return [size, setRefElement];
47715
47715
  }
47716
+ ;// CONCATENATED MODULE: ./src/components/_utils/hooks/useForceUpdate.ts
47717
+ function useForceUpdate_slicedToArray(arr, i) { return useForceUpdate_arrayWithHoles(arr) || useForceUpdate_iterableToArrayLimit(arr, i) || useForceUpdate_unsupportedIterableToArray(arr, i) || useForceUpdate_nonIterableRest(); }
47718
+
47719
+ function useForceUpdate_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
47720
+
47721
+ function useForceUpdate_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return useForceUpdate_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return useForceUpdate_arrayLikeToArray(o, minLen); }
47722
+
47723
+ function useForceUpdate_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
47724
+
47725
+ function useForceUpdate_iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
47726
+
47727
+ function useForceUpdate_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
47728
+
47729
+
47730
+ function useForceUpdate_useForceUpdate() {
47731
+ var _React$useReducer = React.useReducer(function (x) {
47732
+ return x + 1;
47733
+ }, 0),
47734
+ _React$useReducer2 = useForceUpdate_slicedToArray(_React$useReducer, 2),
47735
+ forceUpdate = _React$useReducer2[1];
47736
+
47737
+ return forceUpdate;
47738
+ }
47739
+ ;// CONCATENATED MODULE: ./src/components/_utils/responsiveObserve.ts
47740
+ function responsiveObserve_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
47741
+
47742
+ function responsiveObserve_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? responsiveObserve_ownKeys(Object(source), !0).forEach(function (key) { responsiveObserve_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : responsiveObserve_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
47743
+
47744
+ function responsiveObserve_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; }
47745
+
47746
+ var MOBILE_SMALL = 'MOBILE_SMALL';
47747
+ var MOBILE_LARGE = 'MOBILE_LARGE';
47748
+ var TABLET_SMALL = 'TABLET_SMALL';
47749
+ var TABLET_LARGE = 'TABLET_LARGE';
47750
+ var DESKTOP_SMALL = 'DESKTOP_SMALL';
47751
+ var DESKTOP_LARGE = 'DESKTOP_LARGE';
47752
+ var BREAKPOINTS = [MOBILE_SMALL, MOBILE_LARGE, TABLET_SMALL, TABLET_LARGE, DESKTOP_SMALL, DESKTOP_LARGE];
47753
+ var responsiveMap = {
47754
+ MOBILE_SMALL: '(min-width: 0px)',
47755
+ MOBILE_LARGE: '(min-width: 360px)',
47756
+ TABLET_SMALL: '(min-width: 480px)',
47757
+ TABLET_LARGE: '(min-width: 768px)',
47758
+ DESKTOP_SMALL: '(min-width: 992px)',
47759
+ DESKTOP_LARGE: '(min-width: 1200px)'
47760
+ };
47761
+ var subscribers = new Map();
47762
+ var subUid = -1;
47763
+ var screens = {};
47764
+ var responsiveObserve = {
47765
+ matchHandlers: {},
47766
+ dispatch: function dispatch(pointMap) {
47767
+ screens = pointMap;
47768
+ subscribers.forEach(function (func) {
47769
+ return func(screens);
47770
+ });
47771
+ return subscribers.size >= 1;
47772
+ },
47773
+ subscribe: function subscribe(func) {
47774
+ if (!subscribers.size) this.register();
47775
+ subUid += 1;
47776
+ subscribers.set(subUid, func);
47777
+ func(screens);
47778
+ return subUid;
47779
+ },
47780
+ unsubscribe: function unsubscribe(token) {
47781
+ subscribers.delete(token);
47782
+ if (!subscribers.size) this.unregister();
47783
+ },
47784
+ unregister: function unregister() {
47785
+ var _this = this;
47786
+
47787
+ Object.keys(responsiveMap).forEach(function (screen) {
47788
+ var matchMediaQuery = responsiveMap[screen];
47789
+ var handler = _this.matchHandlers[matchMediaQuery];
47790
+ handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);
47791
+ });
47792
+ subscribers.clear();
47793
+ },
47794
+ register: function register() {
47795
+ var _this2 = this;
47796
+
47797
+ Object.keys(responsiveMap).forEach(function (screen) {
47798
+ var matchMediaQuery = responsiveMap[screen];
47799
+
47800
+ var listener = function listener(_ref) {
47801
+ var matches = _ref.matches;
47802
+
47803
+ _this2.dispatch(responsiveObserve_objectSpread(responsiveObserve_objectSpread({}, screens), {}, responsiveObserve_defineProperty({}, screen, matches)));
47804
+ };
47805
+
47806
+ var mql = window.matchMedia(matchMediaQuery);
47807
+ mql.addListener(listener);
47808
+ _this2.matchHandlers[matchMediaQuery] = {
47809
+ mql: mql,
47810
+ listener: listener
47811
+ };
47812
+ listener(mql);
47813
+ });
47814
+ }
47815
+ };
47816
+ /* harmony default export */ var _utils_responsiveObserve = ((/* unused pure expression or super */ null && (responsiveObserve)));
47817
+ ;// CONCATENATED MODULE: ./src/components/_utils/hooks/useBreakpoints.tsx
47818
+
47819
+
47820
+
47821
+ function useBreakpoints() {
47822
+ var refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
47823
+ var screensRef = useRef({});
47824
+ var forceUpdate = useForceUpdate();
47825
+ useEffect(function () {
47826
+ if (typeof window !== 'undefined') {
47827
+ var token = ResponsiveObserve.subscribe(function (supportScreens) {
47828
+ screensRef.current = supportScreens;
47829
+
47830
+ if (refreshOnChange) {
47831
+ forceUpdate();
47832
+ }
47833
+ });
47834
+ return function () {
47835
+ return ResponsiveObserve.unsubscribe(token);
47836
+ };
47837
+ }
47838
+ }, []);
47839
+ return screensRef.current;
47840
+ }
47716
47841
  ;// CONCATENATED MODULE: ./src/components/_utils/hooks/index.ts
47717
47842
 
47718
47843
 
47844
+
47845
+
47719
47846
  // EXTERNAL MODULE: ../../node_modules/rc-util/es/omit.js
47720
47847
  var es_omit = __webpack_require__(94899);
47721
47848
  ;// CONCATENATED MODULE: ./node_modules/antd/es/config-provider/DisabledContext.js
@@ -59540,7 +59667,7 @@ var detectFlexGapSupported = function detectFlexGapSupported() {
59540
59667
 
59541
59668
 
59542
59669
  var responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];
59543
- var responsiveMap = {
59670
+ var responsiveObserve_responsiveMap = {
59544
59671
  xs: '(max-width: 575px)',
59545
59672
  sm: '(min-width: 576px)',
59546
59673
  md: '(min-width: 768px)',
@@ -59548,45 +59675,45 @@ var responsiveMap = {
59548
59675
  xl: '(min-width: 1200px)',
59549
59676
  xxl: '(min-width: 1600px)'
59550
59677
  };
59551
- var subscribers = new Map();
59552
- var subUid = -1;
59553
- var screens = {};
59554
- var responsiveObserve = {
59678
+ var responsiveObserve_subscribers = new Map();
59679
+ var responsiveObserve_subUid = -1;
59680
+ var responsiveObserve_screens = {};
59681
+ var responsiveObserve_responsiveObserve = {
59555
59682
  matchHandlers: {},
59556
59683
  dispatch: function dispatch(pointMap) {
59557
- screens = pointMap;
59558
- subscribers.forEach(function (func) {
59559
- return func(screens);
59684
+ responsiveObserve_screens = pointMap;
59685
+ responsiveObserve_subscribers.forEach(function (func) {
59686
+ return func(responsiveObserve_screens);
59560
59687
  });
59561
- return subscribers.size >= 1;
59688
+ return responsiveObserve_subscribers.size >= 1;
59562
59689
  },
59563
59690
  subscribe: function subscribe(func) {
59564
- if (!subscribers.size) this.register();
59565
- subUid += 1;
59566
- subscribers.set(subUid, func);
59567
- func(screens);
59568
- return subUid;
59691
+ if (!responsiveObserve_subscribers.size) this.register();
59692
+ responsiveObserve_subUid += 1;
59693
+ responsiveObserve_subscribers.set(responsiveObserve_subUid, func);
59694
+ func(responsiveObserve_screens);
59695
+ return responsiveObserve_subUid;
59569
59696
  },
59570
59697
  unsubscribe: function unsubscribe(token) {
59571
- subscribers["delete"](token);
59572
- if (!subscribers.size) this.unregister();
59698
+ responsiveObserve_subscribers["delete"](token);
59699
+ if (!responsiveObserve_subscribers.size) this.unregister();
59573
59700
  },
59574
59701
  unregister: function unregister() {
59575
59702
  var _this = this;
59576
- Object.keys(responsiveMap).forEach(function (screen) {
59577
- var matchMediaQuery = responsiveMap[screen];
59703
+ Object.keys(responsiveObserve_responsiveMap).forEach(function (screen) {
59704
+ var matchMediaQuery = responsiveObserve_responsiveMap[screen];
59578
59705
  var handler = _this.matchHandlers[matchMediaQuery];
59579
59706
  handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);
59580
59707
  });
59581
- subscribers.clear();
59708
+ responsiveObserve_subscribers.clear();
59582
59709
  },
59583
59710
  register: function register() {
59584
59711
  var _this2 = this;
59585
- Object.keys(responsiveMap).forEach(function (screen) {
59586
- var matchMediaQuery = responsiveMap[screen];
59712
+ Object.keys(responsiveObserve_responsiveMap).forEach(function (screen) {
59713
+ var matchMediaQuery = responsiveObserve_responsiveMap[screen];
59587
59714
  var listener = function listener(_ref) {
59588
59715
  var matches = _ref.matches;
59589
- _this2.dispatch((0,esm_extends/* default */.Z)((0,esm_extends/* default */.Z)({}, screens), (0,defineProperty/* default */.Z)({}, screen, matches)));
59716
+ _this2.dispatch((0,esm_extends/* default */.Z)((0,esm_extends/* default */.Z)({}, responsiveObserve_screens), (0,defineProperty/* default */.Z)({}, screen, matches)));
59590
59717
  };
59591
59718
  var mql = window.matchMedia(matchMediaQuery);
59592
59719
  mql.addListener(listener);
@@ -59598,7 +59725,7 @@ var responsiveObserve = {
59598
59725
  });
59599
59726
  }
59600
59727
  };
59601
- /* harmony default export */ var _util_responsiveObserve = (responsiveObserve);
59728
+ /* harmony default export */ var _util_responsiveObserve = (responsiveObserve_responsiveObserve);
59602
59729
  ;// CONCATENATED MODULE: ./node_modules/antd/es/grid/RowContext.js
59603
59730
 
59604
59731
  var RowContext = /*#__PURE__*/(0,external_react_.createContext)({});
@@ -59771,7 +59898,7 @@ if (false) {}
59771
59898
  ;// CONCATENATED MODULE: ./node_modules/antd/es/_util/hooks/useForceUpdate.js
59772
59899
 
59773
59900
 
59774
- function useForceUpdate() {
59901
+ function hooks_useForceUpdate_useForceUpdate() {
59775
59902
  var _React$useReducer = external_react_.useReducer(function (x) {
59776
59903
  return x + 1;
59777
59904
  }, 0),
@@ -59786,7 +59913,7 @@ function useForceUpdate() {
59786
59913
  function useBreakpoint() {
59787
59914
  var refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
59788
59915
  var screensRef = (0,external_react_.useRef)({});
59789
- var forceUpdate = useForceUpdate();
59916
+ var forceUpdate = hooks_useForceUpdate_useForceUpdate();
59790
59917
  (0,external_react_.useEffect)(function () {
59791
59918
  var token = _util_responsiveObserve.subscribe(function (supportScreens) {
59792
59919
  screensRef.current = supportScreens;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Mon, 03 Apr 2023 08:16:46 GMT
3
+ * Generated on Mon, 03 Apr 2023 14:15:42 GMT
4
4
  */
5
5
 
6
6
  :root {
@@ -1,6 +1,6 @@
1
1
 
2
2
  // Do not edit directly
3
- // Generated on Mon, 03 Apr 2023 08:16:46 GMT
3
+ // Generated on Mon, 03 Apr 2023 14:15:42 GMT
4
4
 
5
5
  @condo-global-spacing-4: 4px;
6
6
  @condo-global-spacing-8: 8px;
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "React",
9
9
  "components"
10
10
  ],
11
- "version": "1.26.2",
11
+ "version": "1.27.0",
12
12
  "repository": {
13
13
  "type": "git",
14
14
  "url": "git+https://github.com/open-condo-software/condo.git",
@@ -51,7 +51,8 @@
51
51
  "./src/": "./src/",
52
52
  "./dist/": "./dist/",
53
53
  "./style-vars/css": "./dist/style-vars/variables.css",
54
- "./style-vars/less": "./dist/style-vars/variables.less"
54
+ "./style-vars/less": "./dist/style-vars/variables.less",
55
+ "./hooks": "./dist/hooks.js"
55
56
  },
56
57
  "typesVersions": {
57
58
  "*": {