@sima-land/ui-nucleons 43.1.0 → 44.0.1

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.
Files changed (75) hide show
  1. package/alert/index.js +5 -1
  2. package/autocomplete/autocomplete.module.scss +6 -0
  3. package/autocomplete/index.d.ts +1 -9
  4. package/autocomplete/index.js +35 -37
  5. package/avatar/index.js +5 -1
  6. package/avatar/user.js +5 -1
  7. package/base-input/index.d.ts +2 -2
  8. package/base-input/index.js +7 -4
  9. package/bottom-bar/index.js +6 -1
  10. package/box/index.js +5 -1
  11. package/button/index.js +5 -1
  12. package/card/slots.js +5 -1
  13. package/carousel/draggable.js +5 -1
  14. package/carousel/index.js +5 -1
  15. package/checkbox/index.js +5 -1
  16. package/checkbox-field/index.js +5 -1
  17. package/chips/chips.module.scss +2 -4
  18. package/chips/index.js +5 -1
  19. package/clean-buttons/clean-buttons.module.scss +26 -15
  20. package/clean-buttons/index.d.ts +7 -2
  21. package/clean-buttons/index.js +16 -10
  22. package/clean-buttons/types.d.ts +4 -0
  23. package/clean-buttons/types.js +2 -0
  24. package/clean-buttons/utils.d.ts +3 -0
  25. package/clean-buttons/utils.js +5 -0
  26. package/dot-nav/index.js +5 -1
  27. package/dropdown/index.js +5 -1
  28. package/field-grid/index.js +5 -1
  29. package/helpers/styles.d.ts +0 -1
  30. package/helpers/styles.js +0 -1
  31. package/hint/index.js +5 -1
  32. package/hooks/breakpoint/index.js +5 -1
  33. package/hooks/identity.d.ts +1 -1
  34. package/hooks/identity.js +1 -1
  35. package/hooks/index.js +2 -2
  36. package/hooks/intersection/index.d.ts +8 -0
  37. package/hooks/intersection/index.js +26 -0
  38. package/hooks/intersection/readme.md +55 -0
  39. package/hooks/intersection/test-utils.d.ts +64 -0
  40. package/hooks/intersection/test-utils.js +136 -0
  41. package/hooks/keydown.d.ts +1 -1
  42. package/hooks/keydown.js +7 -7
  43. package/layout/index.js +5 -1
  44. package/link/index.js +5 -1
  45. package/masked-field/index.js +5 -1
  46. package/modal/index.js +5 -1
  47. package/modal/slots.js +5 -1
  48. package/package.json +44 -45
  49. package/phone-input/index.js +5 -1
  50. package/plate/index.js +5 -1
  51. package/range/index.js +5 -1
  52. package/screen/slots.js +5 -1
  53. package/select/index.js +5 -1
  54. package/side-page/index.d.ts +3 -1
  55. package/side-page/index.js +5 -1
  56. package/side-page/side-page.module.scss +3 -1
  57. package/side-page/slots.d.ts +3 -1
  58. package/side-page/slots.js +6 -1
  59. package/stepper/index.js +5 -1
  60. package/stroked-svg/index.js +5 -1
  61. package/tabs/index.js +5 -1
  62. package/text/index.js +5 -1
  63. package/text-field/index.js +5 -1
  64. package/timer/index.js +5 -1
  65. package/toggle/index.js +5 -1
  66. package/tooltip/index.js +5 -1
  67. package/unknown-content/index.js +5 -1
  68. package/with-hint/index.js +5 -1
  69. package/with-hint/positioning-hint.js +5 -1
  70. package/with-tooltip/index.js +5 -1
  71. package/with-tooltip/positioning-tooltip.js +5 -1
  72. package/helpers/intersection-observer.d.ts +0 -40
  73. package/helpers/intersection-observer.js +0 -60
  74. package/with-in-viewport-observer/index.d.ts +0 -9
  75. package/with-in-viewport-observer/index.js +0 -43
package/select/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -46,7 +46,9 @@ export declare const SidePage: {
46
46
  displayName: string;
47
47
  };
48
48
  Footer: {
49
- (props: import("../bottom-bar").BottomBarProps): JSX.Element;
49
+ ({ padded, ...props }: import("../bottom-bar").BottomBarProps & {
50
+ padded?: boolean | undefined;
51
+ }): JSX.Element;
50
52
  displayName: string;
51
53
  };
52
54
  };
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -42,7 +42,9 @@ $overlay-color: rgba(0, 0, 0, 0.24);
42
42
  .footer {
43
43
  flex-shrink: 0;
44
44
  width: 100%;
45
- padding: 0 40px;
45
+ &.padded {
46
+ padding: 0 40px;
47
+ }
46
48
  }
47
49
 
48
50
  // transitions
@@ -27,6 +27,8 @@ export declare const SidePageBody: {
27
27
  * @return Элемент.
28
28
  */
29
29
  export declare const SidePageFooter: {
30
- (props: BottomBarProps): JSX.Element;
30
+ ({ padded, ...props }: BottomBarProps & {
31
+ padded?: boolean | undefined;
32
+ }): JSX.Element;
31
33
  displayName: string;
32
34
  };
@@ -21,6 +21,7 @@ const bottom_bar_1 = require("../bottom-bar");
21
21
  const cross_1 = __importDefault(require("@sima-land/ui-quarks/icons/24x24/Stroked/cross"));
22
22
  const arrow_left_1 = __importDefault(require("@sima-land/ui-quarks/icons/24x24/Stroked/arrow-left"));
23
23
  const side_page_module_scss_1 = __importDefault(require("./side-page.module.scss"));
24
+ const classnames_1 = __importDefault(require("classnames"));
24
25
  /**
25
26
  * @param props Свойства.
26
27
  * @return Элемент.
@@ -54,6 +55,10 @@ exports.SidePageBody.displayName = 'SidePage.Body';
54
55
  * @param props Свойства.
55
56
  * @return Элемент.
56
57
  */
57
- const SidePageFooter = (props) => (react_1.default.createElement(bottom_bar_1.BottomBar, Object.assign({}, props, { size: 'm', className: side_page_module_scss_1.default.footer })));
58
+ const SidePageFooter = (_a) => {
59
+ var { padded = true } = _a, // @todo по умолчанию true для обратной совместимости - убрать true в ближайшем мажоре
60
+ props = __rest(_a, ["padded"]);
61
+ return (react_1.default.createElement(bottom_bar_1.BottomBar, Object.assign({}, props, { size: 'l', className: (0, classnames_1.default)(side_page_module_scss_1.default.footer, padded && side_page_module_scss_1.default.padded) })));
62
+ };
58
63
  exports.SidePageFooter = SidePageFooter;
59
64
  exports.SidePageFooter.displayName = 'SidePage.Footer';
package/stepper/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
package/tabs/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
package/text/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
package/timer/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
package/toggle/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
package/tooltip/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,40 +0,0 @@
1
- import 'intersection-observer';
2
- interface ObserverContainer {
3
- registry: Map<Element, any>;
4
- observer: IntersectionObserver;
5
- }
6
- export declare type Callback = (target: HTMLElement) => void;
7
- /**
8
- * Вызывает onIntersection у подписанного компонента при появлении его в области видимости.
9
- * @param container Контейнер с обсервером и списком подписантов.
10
- * @param entries Массив с появившимися DOM-элементами.
11
- */
12
- export declare const observerHandle: ({ registry }: ObserverContainer, entries: IntersectionObserverEntry[]) => void;
13
- /**
14
- * Подписывает компонент и добавляет его в массив подписавшихся.
15
- * @param container Контейнер с обсервером и списком подписантов.
16
- * @param target HTML-элемент Компонента.
17
- * @param onIntersection Функция, которую необходимо вызвать при срабатывании.
18
- */
19
- export declare const addObserve: ({ observer, registry }: ObserverContainer, target: HTMLElement, onIntersection: Callback) => void;
20
- /**
21
- * Пробрасывает контейнер с экземпляром обсервера в функцию для подписки.
22
- * @param container Контейнер с обсервером и списком подписантов.
23
- * @param addObserveFunc Функция подписки компонента на обсервер.
24
- * @return Функция подиски на обсервер.
25
- */
26
- export declare const wrapAddObserve: (container: ObserverContainer, addObserveFunc: (c: ObserverContainer, t: HTMLElement, cb: Callback) => void) => (target: HTMLElement, onIntersection: Callback) => void;
27
- /**
28
- * Пробрасывает контейнер с экземпляром обсервера в обработчик события обсервера.
29
- * @param container Контейнер с обсервером и списком подписантов.
30
- * @param handler Обработчик, в который нужно добавить контейнер.
31
- * @return Функция обработчик события обсервера.
32
- */
33
- export declare const wrapObserverHandle: (container: ObserverContainer, handler: (c: ObserverContainer, es: IntersectionObserverEntry[]) => void) => (entries: IntersectionObserverEntry[]) => void;
34
- /**
35
- * Создает экземпляр IntersectionObserver и возвращает функцию подписки на него.
36
- * @param options Настройки для создания IntersectionObserver.
37
- * @return Функция подписки на созданный экземпляр IntersectionObserver.
38
- */
39
- declare const initAddObserve: (options?: {}) => (target: HTMLElement, onIntersection: Callback) => void;
40
- export default initAddObserve;
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.wrapObserverHandle = exports.wrapAddObserve = exports.addObserve = exports.observerHandle = void 0;
4
- const lodash_1 = require("lodash");
5
- require("intersection-observer");
6
- /**
7
- * Вызывает onIntersection у подписанного компонента при появлении его в области видимости.
8
- * @param container Контейнер с обсервером и списком подписантов.
9
- * @param entries Массив с появившимися DOM-элементами.
10
- */
11
- const observerHandle = ({ registry }, entries) => {
12
- entries.forEach(entry => {
13
- const onIntersection = registry.get(entry.target);
14
- entry.isIntersecting && (0, lodash_1.isFunction)(onIntersection) && onIntersection();
15
- });
16
- };
17
- exports.observerHandle = observerHandle;
18
- /**
19
- * Подписывает компонент и добавляет его в массив подписавшихся.
20
- * @param container Контейнер с обсервером и списком подписантов.
21
- * @param target HTML-элемент Компонента.
22
- * @param onIntersection Функция, которую необходимо вызвать при срабатывании.
23
- */
24
- const addObserve = ({ observer, registry }, target, onIntersection) => {
25
- if (observer && (0, lodash_1.isFunction)(observer.observe)) {
26
- observer.observe(target);
27
- registry.set(target, onIntersection);
28
- }
29
- };
30
- exports.addObserve = addObserve;
31
- /**
32
- * Пробрасывает контейнер с экземпляром обсервера в функцию для подписки.
33
- * @param container Контейнер с обсервером и списком подписантов.
34
- * @param addObserveFunc Функция подписки компонента на обсервер.
35
- * @return Функция подиски на обсервер.
36
- */
37
- const wrapAddObserve = (container, addObserveFunc) => (target, onIntersection) => addObserveFunc(container, target, onIntersection);
38
- exports.wrapAddObserve = wrapAddObserve;
39
- /**
40
- * Пробрасывает контейнер с экземпляром обсервера в обработчик события обсервера.
41
- * @param container Контейнер с обсервером и списком подписантов.
42
- * @param handler Обработчик, в который нужно добавить контейнер.
43
- * @return Функция обработчик события обсервера.
44
- */
45
- const wrapObserverHandle = (container, handler) => (entries) => handler(container, entries);
46
- exports.wrapObserverHandle = wrapObserverHandle;
47
- /**
48
- * Создает экземпляр IntersectionObserver и возвращает функцию подписки на него.
49
- * @param options Настройки для создания IntersectionObserver.
50
- * @return Функция подписки на созданный экземпляр IntersectionObserver.
51
- */
52
- const initAddObserve = (options = {}) => {
53
- const container = {};
54
- if (typeof window !== 'undefined') {
55
- container.registry = new Map();
56
- container.observer = new window.IntersectionObserver((0, exports.wrapObserverHandle)(container, exports.observerHandle), options);
57
- }
58
- return (0, exports.wrapAddObserve)(container, exports.addObserve);
59
- };
60
- exports.default = initAddObserve;
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- /**
3
- * Создает компонент высшего порядка совершающий подписку на появление в области видимости.
4
- * @param observersDataList Массив с данными объявленных Intersection Observer.
5
- * @return Функция, создающая компонент высшего порядка.
6
- */
7
- export declare function makeInViewportObserverHOC(observersDataList: any): <T, K extends string>(Component: React.ComponentType<T>, options?: IntersectionObserverInit, propName?: K) => React.FC<Omit<T, K> & { [key in K]?: any; }>;
8
- declare const withInViewportObserver: <T, K extends string>(Component: React.ComponentType<T>, options?: IntersectionObserverInit, propName?: K) => React.FC<Omit<T, K> & { [key in K]?: any; }>;
9
- export default withInViewportObserver;
@@ -1,43 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.makeInViewportObserverHOC = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const lodash_1 = require("lodash");
9
- const intersection_observer_1 = __importDefault(require("../helpers/intersection-observer"));
10
- /**
11
- * Создает компонент высшего порядка совершающий подписку на появление в области видимости.
12
- * @param observersDataList Массив с данными объявленных Intersection Observer.
13
- * @return Функция, создающая компонент высшего порядка.
14
- */
15
- function makeInViewportObserverHOC(observersDataList) {
16
- return function HOC(Component, options = {}, propName = 'addObserve') {
17
- let addObserve;
18
- observersDataList.forEach(({ add, options: observeOptions }) => {
19
- if ((0, lodash_1.isEqual)(observeOptions, options)) {
20
- addObserve = add;
21
- }
22
- });
23
- if (!addObserve) {
24
- addObserve = (0, intersection_observer_1.default)(options);
25
- observersDataList.push({
26
- options,
27
- add: addObserve,
28
- });
29
- }
30
- /**
31
- * Компонент-обертка.
32
- * @param props Свойства для оборачиваемого компонента.
33
- * @return Компонент высшего порядка.
34
- */
35
- const Wrapper = (props) => (react_1.default.createElement(Component, Object.assign({}, { [propName]: addObserve }, props)));
36
- Wrapper.displayName = `withInViewportObserver(${Component.displayName || Component.name})`;
37
- return Wrapper;
38
- };
39
- }
40
- exports.makeInViewportObserverHOC = makeInViewportObserverHOC;
41
- const observersList = [];
42
- const withInViewportObserver = makeInViewportObserverHOC(observersList);
43
- exports.default = withInViewportObserver;