etudes 5.2.0 → 5.3.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.
Files changed (164) hide show
  1. package/components/Accordion.js +171 -205
  2. package/components/BurgerButton.js +40 -94
  3. package/components/Carousel.js +87 -123
  4. package/components/Collection.js +84 -120
  5. package/components/Counter.js +32 -63
  6. package/components/CoverImage.js +24 -68
  7. package/components/CoverVideo.js +25 -69
  8. package/components/DebugConsole.js +27 -79
  9. package/components/Dial.js +28 -65
  10. package/components/Dropdown.js +86 -98
  11. package/components/FlatSVG.js +22 -71
  12. package/components/Image.js +21 -50
  13. package/components/MasonryGrid.js +122 -257
  14. package/components/Panorama.js +48 -92
  15. package/components/PanoramaSlider.js +57 -113
  16. package/components/RangeSlider.js +125 -182
  17. package/components/RotatingGallery.js +28 -59
  18. package/components/SelectableButton.js +10 -54
  19. package/components/Slider.js +108 -159
  20. package/components/StepwiseSlider.js +124 -176
  21. package/components/SwipeContainer.js +30 -73
  22. package/components/TextField.js +12 -49
  23. package/components/Video.js +31 -61
  24. package/components/WithTooltip.js +117 -111
  25. package/components/index.js +24 -0
  26. package/hooks/index.js +17 -0
  27. package/hooks/useClickOutsideEffect.js +8 -38
  28. package/hooks/useDragEffect.js +20 -53
  29. package/hooks/useDragValueEffect.js +31 -81
  30. package/hooks/useImageSize.js +16 -38
  31. package/hooks/useInterval.js +9 -41
  32. package/hooks/useLoadImageEffect.js +15 -48
  33. package/hooks/useLoadVideoMetadataEffect.js +15 -48
  34. package/hooks/useMounted.js +5 -25
  35. package/hooks/usePrevious.js +4 -9
  36. package/hooks/useRect.js +9 -29
  37. package/hooks/useResizeEffect.js +10 -44
  38. package/hooks/useScrollPositionEffect.js +19 -50
  39. package/hooks/useSearchParamState.js +12 -34
  40. package/hooks/useSize.js +9 -29
  41. package/hooks/useTimeout.js +8 -38
  42. package/hooks/useVideoSize.js +16 -38
  43. package/hooks/useViewportSize.js +7 -27
  44. package/operators/Conditional.js +6 -11
  45. package/operators/Each.js +6 -14
  46. package/operators/ExtractChild.js +9 -36
  47. package/operators/ExtractChildren.js +7 -34
  48. package/operators/Repeat.js +4 -37
  49. package/operators/index.js +5 -0
  50. package/package.json +27 -41
  51. package/providers/ScrollPositionProvider.js +37 -60
  52. package/providers/index.js +1 -0
  53. package/utils/asClassNameDict.js +1 -5
  54. package/utils/asComponentDict.js +11 -16
  55. package/utils/asStyleDict.js +1 -5
  56. package/utils/cloneStyledElement.js +14 -61
  57. package/utils/index.js +5 -22
  58. package/utils/styles.js +5 -21
  59. package/components/Accordion.d.ts +0 -219
  60. package/components/Accordion.js.map +0 -1
  61. package/components/BurgerButton.d.ts +0 -34
  62. package/components/BurgerButton.js.map +0 -1
  63. package/components/Carousel.d.ts +0 -53
  64. package/components/Carousel.js.map +0 -1
  65. package/components/Collection.d.ts +0 -171
  66. package/components/Collection.js.map +0 -1
  67. package/components/Counter.d.ts +0 -11
  68. package/components/Counter.js.map +0 -1
  69. package/components/CoverImage.d.ts +0 -28
  70. package/components/CoverImage.js.map +0 -1
  71. package/components/CoverVideo.d.ts +0 -28
  72. package/components/CoverVideo.js.map +0 -1
  73. package/components/DebugConsole.d.ts +0 -15
  74. package/components/DebugConsole.js.map +0 -1
  75. package/components/Dial.d.ts +0 -79
  76. package/components/Dial.js.map +0 -1
  77. package/components/Dropdown.d.ts +0 -109
  78. package/components/Dropdown.js.map +0 -1
  79. package/components/FlatSVG.d.ts +0 -72
  80. package/components/FlatSVG.js.map +0 -1
  81. package/components/Image.d.ts +0 -144
  82. package/components/Image.js.map +0 -1
  83. package/components/MasonryGrid.d.ts +0 -29
  84. package/components/MasonryGrid.js.map +0 -1
  85. package/components/Panorama.d.ts +0 -77
  86. package/components/Panorama.js.map +0 -1
  87. package/components/PanoramaSlider.d.ts +0 -71
  88. package/components/PanoramaSlider.js.map +0 -1
  89. package/components/RangeSlider.d.ts +0 -34
  90. package/components/RangeSlider.js.map +0 -1
  91. package/components/RotatingGallery.d.ts +0 -91
  92. package/components/RotatingGallery.js.map +0 -1
  93. package/components/SelectableButton.d.ts +0 -19
  94. package/components/SelectableButton.js.map +0 -1
  95. package/components/Slider.d.ts +0 -160
  96. package/components/Slider.js.map +0 -1
  97. package/components/StepwiseSlider.d.ts +0 -215
  98. package/components/StepwiseSlider.js.map +0 -1
  99. package/components/SwipeContainer.d.ts +0 -21
  100. package/components/SwipeContainer.js.map +0 -1
  101. package/components/TextField.d.ts +0 -21
  102. package/components/TextField.js.map +0 -1
  103. package/components/Video.d.ts +0 -38
  104. package/components/Video.js.map +0 -1
  105. package/components/WithTooltip.d.ts +0 -32
  106. package/components/WithTooltip.js.map +0 -1
  107. package/hooks/useClickOutsideEffect.d.ts +0 -2
  108. package/hooks/useClickOutsideEffect.js.map +0 -1
  109. package/hooks/useDragEffect.d.ts +0 -48
  110. package/hooks/useDragEffect.js.map +0 -1
  111. package/hooks/useDragValueEffect.d.ts +0 -56
  112. package/hooks/useDragValueEffect.js.map +0 -1
  113. package/hooks/useImageSize.d.ts +0 -21
  114. package/hooks/useImageSize.js.map +0 -1
  115. package/hooks/useInterval.d.ts +0 -18
  116. package/hooks/useInterval.js.map +0 -1
  117. package/hooks/useLoadImageEffect.d.ts +0 -43
  118. package/hooks/useLoadImageEffect.js.map +0 -1
  119. package/hooks/useLoadVideoMetadataEffect.d.ts +0 -35
  120. package/hooks/useLoadVideoMetadataEffect.js.map +0 -1
  121. package/hooks/useMounted.d.ts +0 -1
  122. package/hooks/useMounted.js.map +0 -1
  123. package/hooks/usePrevious.d.ts +0 -19
  124. package/hooks/usePrevious.js.map +0 -1
  125. package/hooks/useRect.d.ts +0 -11
  126. package/hooks/useRect.js.map +0 -1
  127. package/hooks/useResizeEffect.d.ts +0 -17
  128. package/hooks/useResizeEffect.js.map +0 -1
  129. package/hooks/useScrollPositionEffect.d.ts +0 -13
  130. package/hooks/useScrollPositionEffect.js.map +0 -1
  131. package/hooks/useSearchParamState.d.ts +0 -34
  132. package/hooks/useSearchParamState.js.map +0 -1
  133. package/hooks/useSize.d.ts +0 -10
  134. package/hooks/useSize.js.map +0 -1
  135. package/hooks/useTimeout.d.ts +0 -10
  136. package/hooks/useTimeout.js.map +0 -1
  137. package/hooks/useVideoSize.d.ts +0 -21
  138. package/hooks/useVideoSize.js.map +0 -1
  139. package/hooks/useViewportSize.d.ts +0 -7
  140. package/hooks/useViewportSize.js.map +0 -1
  141. package/operators/Conditional.d.ts +0 -5
  142. package/operators/Conditional.js.map +0 -1
  143. package/operators/Each.d.ts +0 -7
  144. package/operators/Each.js.map +0 -1
  145. package/operators/ExtractChild.d.ts +0 -8
  146. package/operators/ExtractChild.js.map +0 -1
  147. package/operators/ExtractChildren.d.ts +0 -6
  148. package/operators/ExtractChildren.js.map +0 -1
  149. package/operators/Repeat.d.ts +0 -11
  150. package/operators/Repeat.js.map +0 -1
  151. package/providers/ScrollPositionProvider.d.ts +0 -15
  152. package/providers/ScrollPositionProvider.js.map +0 -1
  153. package/utils/asClassNameDict.d.ts +0 -3
  154. package/utils/asClassNameDict.js.map +0 -1
  155. package/utils/asComponentDict.d.ts +0 -5
  156. package/utils/asComponentDict.js.map +0 -1
  157. package/utils/asStyleDict.d.ts +0 -4
  158. package/utils/asStyleDict.js.map +0 -1
  159. package/utils/cloneStyledElement.d.ts +0 -18
  160. package/utils/cloneStyledElement.js.map +0 -1
  161. package/utils/index.d.ts +0 -5
  162. package/utils/index.js.map +0 -1
  163. package/utils/styles.d.ts +0 -2
  164. package/utils/styles.js.map +0 -1
@@ -1,31 +1,11 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.useMounted = useMounted;
20
- var react_1 = require("react");
21
- function useMounted() {
22
- var _a = __read((0, react_1.useState)(false), 2), isMounted = _a[0], setIsMounted = _a[1];
23
- (0, react_1.useEffect)(function () {
1
+ import { useEffect, useState } from 'react';
2
+ export function useMounted() {
3
+ const [isMounted, setIsMounted] = useState(false);
4
+ useEffect(() => {
24
5
  setIsMounted(true);
25
- return function () {
6
+ return () => {
26
7
  setIsMounted(false);
27
8
  };
28
9
  }, []);
29
10
  return isMounted;
30
11
  }
31
- //# sourceMappingURL=useMounted.js.map
@@ -1,19 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.usePrevious = usePrevious;
4
- var react_1 = require("react");
1
+ import { useEffect, useRef } from 'react';
5
2
  /**
6
3
  * Returns the previous value of a value.
7
4
  *
8
5
  * @param value The value.
9
6
  * @param options See {@link Options}.
10
7
  */
11
- function usePrevious(value, _a) {
12
- var _b = _a === void 0 ? {} : _a, _c = _b.sanitizeDependency, sanitizeDependency = _c === void 0 ? function (t) { return t; } : _c;
13
- var ref = (0, react_1.useRef)();
14
- (0, react_1.useEffect)(function () {
8
+ export function usePrevious(value, { sanitizeDependency = t => t } = {}) {
9
+ const ref = useRef();
10
+ useEffect(() => {
15
11
  ref.current = value;
16
12
  }, [sanitizeDependency(value)]);
17
13
  return ref.current;
18
14
  }
19
- //# sourceMappingURL=usePrevious.js.map
package/hooks/useRect.js CHANGED
@@ -1,25 +1,6 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.useRect = useRect;
20
- var react_1 = require("react");
21
- var spase_1 = require("spase");
22
- var useResizeEffect_1 = require("./useResizeEffect");
1
+ import { useState } from 'react';
2
+ import { Rect } from 'spase';
3
+ import { useResizeEffect } from './useResizeEffect.js';
23
4
  /**
24
5
  * Hook for monitoring changes in and returning the size and position of the
25
6
  * target element.
@@ -28,17 +9,16 @@ var useResizeEffect_1 = require("./useResizeEffect");
28
9
  *
29
10
  * @returns The most current {@link Rect} of the target element.
30
11
  */
31
- function useRect(targetRef) {
32
- var _a = __read((0, react_1.useState)(new spase_1.Rect()), 2), rect = _a[0], setRect = _a[1];
33
- var handleResize = function (element) {
34
- var newRect = spase_1.Rect.from(element);
12
+ export function useRect(targetRef) {
13
+ const [rect, setRect] = useState(new Rect());
14
+ const handleResize = (element) => {
15
+ const newRect = Rect.from(element);
35
16
  if (!newRect)
36
17
  return;
37
18
  setRect(newRect);
38
19
  };
39
- (0, useResizeEffect_1.useResizeEffect)(targetRef, {
40
- onResize: function (element) { return handleResize(element); },
20
+ useResizeEffect(targetRef, {
21
+ onResize: element => handleResize(element),
41
22
  });
42
23
  return rect;
43
24
  }
44
- //# sourceMappingURL=useRect.js.map
@@ -1,36 +1,5 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
- if (ar || !(i in from)) {
21
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
- ar[i] = from[i];
23
- }
24
- }
25
- return to.concat(ar || Array.prototype.slice.call(from));
26
- };
27
- var __importDefault = (this && this.__importDefault) || function (mod) {
28
- return (mod && mod.__esModule) ? mod : { "default": mod };
29
- };
30
- Object.defineProperty(exports, "__esModule", { value: true });
31
- exports.useResizeEffect = useResizeEffect;
32
- var react_1 = require("react");
33
- var resize_observer_polyfill_1 = __importDefault(require("resize-observer-polyfill"));
1
+ import { useEffect, useRef } from 'react';
2
+ import ResizeObserver from 'resize-observer-polyfill';
34
3
  /**
35
4
  * Hook for monitoring the resizing event of the target element.
36
5
  *
@@ -38,25 +7,22 @@ var resize_observer_polyfill_1 = __importDefault(require("resize-observer-polyfi
38
7
  * @param options See {@link Options}.
39
8
  * @param deps Additional dependencies.
40
9
  */
41
- function useResizeEffect(targetRef, _a, deps) {
42
- var _b = _a === void 0 ? {} : _a, onResize = _b.onResize;
43
- if (deps === void 0) { deps = []; }
44
- var observerRef = (0, react_1.useRef)(undefined);
45
- (0, react_1.useEffect)(function () {
46
- observerRef.current = new resize_observer_polyfill_1.default(function () {
47
- var element = targetRef.current;
10
+ export function useResizeEffect(targetRef, { onResize } = {}, deps = []) {
11
+ const observerRef = useRef(undefined);
12
+ useEffect(() => {
13
+ observerRef.current = new ResizeObserver(() => {
14
+ const element = targetRef.current;
48
15
  if (!element)
49
16
  return;
50
- onResize === null || onResize === void 0 ? void 0 : onResize(element);
17
+ onResize?.(element);
51
18
  });
52
19
  if (observerRef.current && targetRef.current) {
53
20
  observerRef.current.observe(targetRef.current);
54
21
  }
55
- return function () {
22
+ return () => {
56
23
  if (observerRef.current && targetRef.current) {
57
24
  observerRef.current.unobserve(targetRef.current);
58
25
  }
59
26
  };
60
- }, __spreadArray([targetRef.current], __read(deps), false));
27
+ }, [targetRef.current, ...deps]);
61
28
  }
62
- //# sourceMappingURL=useResizeEffect.js.map
@@ -1,69 +1,38 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
- if (ar || !(i in from)) {
21
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
- ar[i] = from[i];
23
- }
24
- }
25
- return to.concat(ar || Array.prototype.slice.call(from));
26
- };
27
- Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.useScrollPositionEffect = useScrollPositionEffect;
29
- var react_1 = require("react");
30
- var spase_1 = require("spase");
31
- function useScrollPositionEffect(_a, deps) {
32
- var onChange = _a.onChange;
33
- if (deps === void 0) { deps = []; }
34
- var handleScrollPositionChange = function () {
35
- var newValue = getScrollPositionInfo();
1
+ import { useEffect, useRef } from 'react';
2
+ import { Point, Rect } from 'spase';
3
+ export function useScrollPositionEffect({ onChange }, deps = []) {
4
+ const handleScrollPositionChange = () => {
5
+ const newValue = getScrollPositionInfo();
36
6
  if (!newValue)
37
7
  return;
38
8
  onChange(newValue, prevInfo.current);
39
9
  prevInfo.current = newValue;
40
10
  };
41
- var getScrollPositionInfo = function () {
42
- var refRect = spase_1.Rect.fromViewport();
43
- var refRectMin = refRect.clone({ x: 0, y: 0 });
44
- var refRectFull = spase_1.Rect.from(window, { overflow: true });
11
+ const getScrollPositionInfo = () => {
12
+ const refRect = Rect.fromViewport();
13
+ const refRectMin = refRect.clone({ x: 0, y: 0 });
14
+ const refRectFull = Rect.from(window, { overflow: true });
45
15
  if (!refRectFull)
46
16
  return undefined;
47
- var refRectMax = refRectMin.clone({ x: refRectFull.width - refRect.width, y: refRectFull.height - refRect.height });
48
- var step = new spase_1.Point([refRect.left / refRectMax.left, refRect.top / refRectMax.top]);
17
+ const refRectMax = refRectMin.clone({ x: refRectFull.width - refRect.width, y: refRectFull.height - refRect.height });
18
+ const step = new Point([refRect.left / refRectMax.left, refRect.top / refRectMax.top]);
49
19
  return {
50
- minPos: new spase_1.Point([refRectMin.left, refRectMin.top]),
51
- maxPos: new spase_1.Point([refRectMax.left, refRectMax.top]),
52
- pos: new spase_1.Point([refRect.left, refRect.top]),
53
- step: step,
20
+ minPos: new Point([refRectMin.left, refRectMin.top]),
21
+ maxPos: new Point([refRectMax.left, refRectMax.top]),
22
+ pos: new Point([refRect.left, refRect.top]),
23
+ step,
54
24
  };
55
25
  };
56
- var prevInfo = (0, react_1.useRef)();
57
- (0, react_1.useEffect)(function () {
26
+ const prevInfo = useRef();
27
+ useEffect(() => {
58
28
  window.addEventListener('scroll', handleScrollPositionChange);
59
29
  window.addEventListener('resize', handleScrollPositionChange);
60
30
  window.addEventListener('orientationchange', handleScrollPositionChange);
61
31
  handleScrollPositionChange();
62
- return function () {
32
+ return () => {
63
33
  window.removeEventListener('scroll', handleScrollPositionChange);
64
34
  window.removeEventListener('resize', handleScrollPositionChange);
65
35
  window.removeEventListener('orientationchange', handleScrollPositionChange);
66
36
  };
67
- }, __spreadArray([], __read(deps), false));
37
+ }, [...deps]);
68
38
  }
69
- //# sourceMappingURL=useScrollPositionEffect.js.map
@@ -1,24 +1,5 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.useSearchParamState = useSearchParamState;
20
- var react_1 = require("react");
21
- var react_router_dom_1 = require("react-router-dom");
1
+ import { useEffect, useState } from 'react';
2
+ import { useSearchParams } from 'react-router-dom';
22
3
  /**
23
4
  * Hook for mapping a search param to a state. Whenever the value of the target
24
5
  * search param changes, the mapped state will change as well, and vice versa.
@@ -30,10 +11,8 @@ var react_router_dom_1 = require("react-router-dom");
30
11
  * @returns A tuple consisting of a stateful value representing the current
31
12
  * value of the mapped state and a function that updates it.
32
13
  */
33
- function useSearchParamState(param, defaultValue, _a) {
34
- var _b;
35
- var _c = _a === void 0 ? {} : _a, mapSearchParamToState = _c.mapSearchParamToState, mapStateToSearchParam = _c.mapStateToSearchParam;
36
- var defaultMapSearchParamToState = function (value, fallback) {
14
+ export function useSearchParamState(param, defaultValue, { mapSearchParamToState, mapStateToSearchParam } = {}) {
15
+ const defaultMapSearchParamToState = (value, fallback) => {
37
16
  if (mapSearchParamToState) {
38
17
  return mapSearchParamToState(value);
39
18
  }
@@ -44,7 +23,7 @@ function useSearchParamState(param, defaultValue, _a) {
44
23
  return value;
45
24
  }
46
25
  };
47
- var defaultMapStateToSearchParam = function (state) {
26
+ const defaultMapStateToSearchParam = (state) => {
48
27
  if (mapStateToSearchParam) {
49
28
  return mapStateToSearchParam(state);
50
29
  }
@@ -52,15 +31,15 @@ function useSearchParamState(param, defaultValue, _a) {
52
31
  return undefined;
53
32
  }
54
33
  else {
55
- return "".concat(state);
34
+ return `${state}`;
56
35
  }
57
36
  };
58
- var _d = __read((0, react_router_dom_1.useSearchParams)(), 2), searchParams = _d[0], setSearchParams = _d[1];
59
- var currentState = defaultMapSearchParamToState((_b = searchParams.get(param)) !== null && _b !== void 0 ? _b : undefined, defaultValue);
60
- var _e = __read((0, react_1.useState)(currentState), 2), state = _e[0], setState = _e[1];
61
- (0, react_1.useEffect)(function () {
62
- var value = searchParams.get(param);
63
- var newValue = defaultMapStateToSearchParam(state);
37
+ const [searchParams, setSearchParams] = useSearchParams();
38
+ const currentState = defaultMapSearchParamToState(searchParams.get(param) ?? undefined, defaultValue);
39
+ const [state, setState] = useState(currentState);
40
+ useEffect(() => {
41
+ const value = searchParams.get(param);
42
+ const newValue = defaultMapStateToSearchParam(state);
64
43
  if (newValue === value)
65
44
  return;
66
45
  if (!newValue) {
@@ -73,4 +52,3 @@ function useSearchParamState(param, defaultValue, _a) {
73
52
  }, [state]);
74
53
  return [state, setState];
75
54
  }
76
- //# sourceMappingURL=useSearchParamState.js.map
package/hooks/useSize.js CHANGED
@@ -1,25 +1,6 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.useSize = useSize;
20
- var react_1 = require("react");
21
- var spase_1 = require("spase");
22
- var useResizeEffect_1 = require("./useResizeEffect");
1
+ import { useState } from 'react';
2
+ import { Rect } from 'spase';
3
+ import { useResizeEffect } from './useResizeEffect.js';
23
4
  /**
24
5
  * Hook for monitoring changes in and returning the size of the target element.
25
6
  *
@@ -27,17 +8,16 @@ var useResizeEffect_1 = require("./useResizeEffect");
27
8
  *
28
9
  * @returns The most current {@link Size} of the target element.
29
10
  */
30
- function useSize(targetRef) {
31
- var _a = __read((0, react_1.useState)(new spase_1.Rect()), 2), rect = _a[0], setRect = _a[1];
32
- var handleResize = function (element) {
33
- var newRect = spase_1.Rect.from(element);
11
+ export function useSize(targetRef) {
12
+ const [rect, setRect] = useState(new Rect());
13
+ const handleResize = (element) => {
14
+ const newRect = Rect.from(element);
34
15
  if (!newRect)
35
16
  return;
36
17
  setRect(newRect);
37
18
  };
38
- (0, useResizeEffect_1.useResizeEffect)(targetRef, {
39
- onResize: function (element) { return handleResize(element); },
19
+ useResizeEffect(targetRef, {
20
+ onResize: element => handleResize(element),
40
21
  });
41
22
  return rect.size;
42
23
  }
43
- //# sourceMappingURL=useSize.js.map
@@ -1,32 +1,4 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
- if (ar || !(i in from)) {
21
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
- ar[i] = from[i];
23
- }
24
- }
25
- return to.concat(ar || Array.prototype.slice.call(from));
26
- };
27
- Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.useTimeout = useTimeout;
29
- var react_1 = require("react");
1
+ import { useEffect, useRef } from 'react';
30
2
  /**
31
3
  * Hoook for invoking a method after a set timeout.
32
4
  *
@@ -35,17 +7,15 @@ var react_1 = require("react");
35
7
  * `undefined` or less than 0, the timeout is disabled.
36
8
  * @param deps Dependencies that trigger this effect.
37
9
  */
38
- function useTimeout(handler, timeout, deps) {
39
- if (deps === void 0) { deps = []; }
40
- var handlerRef = (0, react_1.useRef)();
41
- (0, react_1.useEffect)(function () {
10
+ export function useTimeout(handler, timeout, deps = []) {
11
+ const handlerRef = useRef();
12
+ useEffect(() => {
42
13
  handlerRef.current = handler;
43
14
  }, [handler]);
44
- (0, react_1.useEffect)(function () {
15
+ useEffect(() => {
45
16
  if (timeout === undefined || timeout < 0)
46
17
  return;
47
- var timer = window.setTimeout(function () { var _a; return (_a = handlerRef.current) === null || _a === void 0 ? void 0 : _a.call(handlerRef); }, timeout);
48
- return function () { return clearTimeout(timer); };
49
- }, __spreadArray([timeout], __read(deps), false));
18
+ const timer = window.setTimeout(() => handlerRef.current?.(), timeout);
19
+ return () => clearTimeout(timer);
20
+ }, [timeout, ...deps]);
50
21
  }
51
- //# sourceMappingURL=useTimeout.js.map
@@ -1,25 +1,6 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.useVideoSize = useVideoSize;
20
- var react_1 = require("react");
21
- var spase_1 = require("spase");
22
- var useLoadVideoMetadataEffect_1 = require("./useLoadVideoMetadataEffect");
1
+ import { useState } from 'react';
2
+ import { Size } from 'spase';
3
+ import { useLoadVideoMetadataEffect } from './useLoadVideoMetadataEffect.js';
23
4
  /**
24
5
  * Hook for retrieving the size of a video.
25
6
  *
@@ -29,28 +10,26 @@ var useLoadVideoMetadataEffect_1 = require("./useLoadVideoMetadataEffect");
29
10
  * @returns The actual size of the video if loading was successful, `undefined`
30
11
  * otherwise.
31
12
  */
32
- function useVideoSize(_a, _b) {
33
- var src = _a.src;
34
- var _c = _b === void 0 ? {} : _b, _d = _c.preservesSizeBetweenLoads, preservesSizeBetweenLoads = _d === void 0 ? true : _d, onLoadStart = _c.onLoadStart, onLoadComplete = _c.onLoadComplete, onLoadError = _c.onLoadError;
35
- var handleLoad = function (element) {
13
+ export function useVideoSize({ src }, { preservesSizeBetweenLoads = true, onLoadStart, onLoadComplete, onLoadError } = {}) {
14
+ const handleLoad = (element) => {
36
15
  if (!preservesSizeBetweenLoads)
37
16
  setSize(undefined);
38
- onLoadStart === null || onLoadStart === void 0 ? void 0 : onLoadStart(element);
17
+ onLoadStart?.(element);
39
18
  };
40
- var handleLoadComplete = function (element) {
19
+ const handleLoadComplete = (element) => {
41
20
  setSize(getSize(element));
42
- onLoadComplete === null || onLoadComplete === void 0 ? void 0 : onLoadComplete(element);
21
+ onLoadComplete?.(element);
43
22
  };
44
- var handleLoadError = function (element) {
23
+ const handleLoadError = (element) => {
45
24
  if (!preservesSizeBetweenLoads)
46
25
  setSize(undefined);
47
- onLoadError === null || onLoadError === void 0 ? void 0 : onLoadError(element);
26
+ onLoadError?.(element);
48
27
  };
49
- var _e = __read((0, react_1.useState)(undefined), 2), size = _e[0], setSize = _e[1];
50
- (0, useLoadVideoMetadataEffect_1.useLoadVideoMetadataEffect)({ src: src }, {
51
- onLoadStart: function (t) { return handleLoad(t); },
52
- onLoadComplete: function (t) { return handleLoadComplete(t); },
53
- onLoadError: function (t) { return handleLoadError(t); },
28
+ const [size, setSize] = useState(undefined);
29
+ useLoadVideoMetadataEffect({ src }, {
30
+ onLoadStart: t => handleLoad(t),
31
+ onLoadComplete: t => handleLoadComplete(t),
32
+ onLoadError: t => handleLoadError(t),
54
33
  });
55
34
  return size;
56
35
  }
@@ -61,6 +40,5 @@ function getSize(element) {
61
40
  return undefined;
62
41
  if (typeof element.videoHeight !== 'number')
63
42
  return undefined;
64
- return new spase_1.Size([element.videoWidth, element.videoHeight]);
43
+ return new Size([element.videoWidth, element.videoHeight]);
65
44
  }
66
- //# sourceMappingURL=useVideoSize.js.map
@@ -1,40 +1,20 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.useViewportSize = useViewportSize;
20
- var react_1 = require("react");
21
- var spase_1 = require("spase");
1
+ import { useEffect, useState } from 'react';
2
+ import { Rect, Size } from 'spase';
22
3
  /**
23
4
  * Hook for returning the size of the viewport whenever it changes.
24
5
  *
25
6
  * @returns The most current viewport size.
26
7
  */
27
- function useViewportSize() {
28
- var _a = __read((0, react_1.useState)(new spase_1.Size()), 2), size = _a[0], setSize = _a[1];
29
- (0, react_1.useEffect)(function () {
8
+ export function useViewportSize() {
9
+ const [size, setSize] = useState(new Size());
10
+ useEffect(() => {
30
11
  function onViewportResize() {
31
- var viewportSize = spase_1.Rect.fromViewport().size;
12
+ const viewportSize = Rect.fromViewport().size;
32
13
  setSize(viewportSize);
33
14
  }
34
15
  window.addEventListener('resize', onViewportResize);
35
16
  onViewportResize();
36
- return function () { return window.removeEventListener('resize', onViewportResize); };
17
+ return () => window.removeEventListener('resize', onViewportResize);
37
18
  }, []);
38
19
  return size;
39
20
  }
40
- //# sourceMappingURL=useViewportSize.js.map
@@ -1,18 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Conditional = Conditional;
4
- var jsx_runtime_1 = require("react/jsx-runtime");
5
- function Conditional(_a) {
6
- var children = _a.children, boolOrExpression = _a.if;
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ export function Conditional({ children, if: boolOrExpression }) {
7
3
  switch (typeof boolOrExpression) {
8
4
  case 'boolean':
9
- return boolOrExpression ? (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children }) : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
5
+ return boolOrExpression ? _jsx(_Fragment, { children: children }) : _jsx(_Fragment, {});
10
6
  case 'function':
11
- return boolOrExpression() ? (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children }) : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
7
+ return boolOrExpression() ? _jsx(_Fragment, { children: children }) : _jsx(_Fragment, {});
12
8
  default:
13
- console.error("[etudes::Conditional] The type of provided condition ".concat(boolOrExpression, " is not supported."));
14
- return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
9
+ console.error(`[etudes::Conditional] The type of provided condition ${boolOrExpression} is not supported.`);
10
+ return _jsx(_Fragment, {});
15
11
  }
16
12
  }
17
13
  Object.defineProperty(Conditional, 'displayName', { value: 'Conditional', writable: false });
18
- //# sourceMappingURL=Conditional.js.map
package/operators/Each.js CHANGED
@@ -1,18 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Each = Each;
4
- var jsx_runtime_1 = require("react/jsx-runtime");
5
- var react_1 = require("react");
6
- function Each(_a) {
7
- var array = _a.in, children = _a.children, render = _a.render;
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Fragment } from 'react';
3
+ export function Each({ in: array, children, render, }) {
8
4
  if (array === undefined || array === null)
9
- return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
5
+ return _jsx(_Fragment, {});
10
6
  if (!(array instanceof Array))
11
- throw TypeError("Provided list <".concat(array, "> is not an array"));
12
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: array.map(function (v, i) {
13
- var _a;
14
- return ((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: (_a = render === null || render === void 0 ? void 0 : render(v, i)) !== null && _a !== void 0 ? _a : (typeof children === 'function' ? children(v, i) : children) }, "item-".concat(i)));
15
- }) }));
7
+ throw TypeError(`Provided list <${array}> is not an array`);
8
+ return (_jsx(_Fragment, { children: array.map((v, i) => (_jsx(Fragment, { children: render?.(v, i) ?? (typeof children === 'function' ? children(v, i) : children) }, `item-${i}`))) }));
16
9
  }
17
10
  Object.defineProperty(Each, 'displayName', { value: 'Each', writable: false });
18
- //# sourceMappingURL=Each.js.map