@cargo-ai/utils 1.0.4 → 1.0.6

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 (96) hide show
  1. package/README.md +52 -0
  2. package/build/tsconfig.tsbuildinfo +1 -1
  3. package/package.json +10 -4
  4. package/build/array.js +0 -52
  5. package/build/collection.js +0 -155
  6. package/build/components.js +0 -56
  7. package/build/cron.js +0 -19
  8. package/build/delay.js +0 -52
  9. package/build/hooks/index.js +0 -35
  10. package/build/hooks/useClickOutside.js +0 -46
  11. package/build/hooks/useCountAnimation.js +0 -34
  12. package/build/hooks/useDeviceType.js +0 -54
  13. package/build/hooks/useEventListener.js +0 -27
  14. package/build/hooks/useHeight.js +0 -26
  15. package/build/hooks/usePictureInPicture.js +0 -126
  16. package/build/hooks/useResizeObserver.js +0 -35
  17. package/build/hooks/useScrollPosition.js +0 -22
  18. package/build/hooks/useStepper.js +0 -138
  19. package/build/hooks/useStorageState.js +0 -110
  20. package/build/hooks/useVideoPlayer/VideoManager.js +0 -78
  21. package/build/hooks/useVideoPlayer/index.js +0 -5
  22. package/build/hooks/useVideoPlayer/useVideoPlayer.js +0 -100
  23. package/build/hooks/useWillUnmountEffect.js +0 -13
  24. package/build/index.js +0 -28
  25. package/build/json.js +0 -81
  26. package/build/random.js +0 -7
  27. package/build/src/components.d.ts +0 -4
  28. package/build/src/components.js +0 -45
  29. package/build/src/date.d.ts +0 -13
  30. package/build/src/date.d.ts.map +0 -1
  31. package/build/src/date.js +0 -14
  32. package/build/src/expression/jsonSchema.d.ts +0 -4
  33. package/build/src/expression/jsonSchema.d.ts.map +0 -1
  34. package/build/src/expression/jsonSchema.js +0 -85
  35. package/build/src/expression/matchIsExpression.d.ts +0 -2
  36. package/build/src/expression/matchIsExpression.d.ts.map +0 -1
  37. package/build/src/expression/matchIsExpression.js +0 -10
  38. package/build/src/expression/matchIsExpressionObject.d.ts +0 -2
  39. package/build/src/expression/matchIsExpressionObject.d.ts.map +0 -1
  40. package/build/src/expression/matchIsExpressionObject.js +0 -10
  41. package/build/src/expression/matchIsExpressionString.d.ts +0 -2
  42. package/build/src/expression/matchIsExpressionString.d.ts.map +0 -1
  43. package/build/src/expression/matchIsExpressionString.js +0 -4
  44. package/build/src/hooks/index.d.ts +0 -12
  45. package/build/src/hooks/index.js +0 -12
  46. package/build/src/hooks/useClickOutside.d.ts +0 -4
  47. package/build/src/hooks/useClickOutside.js +0 -42
  48. package/build/src/hooks/useCountAnimation.d.ts +0 -1
  49. package/build/src/hooks/useCountAnimation.js +0 -30
  50. package/build/src/hooks/useDeviceType.d.ts +0 -2
  51. package/build/src/hooks/useDeviceType.js +0 -50
  52. package/build/src/hooks/useEventListener.d.ts +0 -6
  53. package/build/src/hooks/useEventListener.js +0 -23
  54. package/build/src/hooks/useHeight.d.ts +0 -2
  55. package/build/src/hooks/useHeight.js +0 -20
  56. package/build/src/hooks/usePictureInPicture.d.ts +0 -9
  57. package/build/src/hooks/usePictureInPicture.js +0 -60
  58. package/build/src/hooks/useResizeObserver.d.ts +0 -4
  59. package/build/src/hooks/useResizeObserver.js +0 -31
  60. package/build/src/hooks/useScrollPosition.d.ts +0 -5
  61. package/build/src/hooks/useScrollPosition.js +0 -18
  62. package/build/src/hooks/useStepper.d.ts +0 -26
  63. package/build/src/hooks/useStepper.js +0 -136
  64. package/build/src/hooks/useStorageState.d.ts +0 -12
  65. package/build/src/hooks/useStorageState.js +0 -53
  66. package/build/src/hooks/useVideoPlayer/VideoManager.d.ts +0 -18
  67. package/build/src/hooks/useVideoPlayer/VideoManager.js +0 -72
  68. package/build/src/hooks/useVideoPlayer/index.d.ts +0 -1
  69. package/build/src/hooks/useVideoPlayer/index.js +0 -1
  70. package/build/src/hooks/useVideoPlayer/useVideoPlayer.d.ts +0 -15
  71. package/build/src/hooks/useVideoPlayer/useVideoPlayer.js +0 -96
  72. package/build/src/hooks/useWillUnmountEffect.d.ts +0 -1
  73. package/build/src/hooks/useWillUnmountEffect.js +0 -8
  74. package/build/src/integration.d.ts +0 -14
  75. package/build/src/integration.d.ts.map +0 -1
  76. package/build/src/integration.js +0 -72
  77. package/build/src/json/cleanJson.d.ts +0 -3
  78. package/build/src/json/cleanJson.d.ts.map +0 -1
  79. package/build/src/json/cleanJson.js +0 -18
  80. package/build/src/json.d.ts +0 -13
  81. package/build/src/json.d.ts.map +0 -1
  82. package/build/src/json.js +0 -107
  83. package/build/src/jsonSchema.d.ts +0 -5
  84. package/build/src/jsonSchema.d.ts.map +0 -1
  85. package/build/src/jsonSchema.js +0 -73
  86. package/build/src/type.d.ts +0 -10
  87. package/build/src/type.js +0 -1
  88. package/build/src/vm.d.ts +0 -1
  89. package/build/src/vm.js +0 -32
  90. package/build/src/zod.d.ts +0 -8
  91. package/build/src/zod.d.ts.map +0 -1
  92. package/build/src/zod.js +0 -89
  93. package/build/storage.js +0 -285
  94. package/build/string.js +0 -17
  95. package/build/type.js +0 -2
  96. package/build/user.js +0 -12
@@ -1,126 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.usePictureInPicture = void 0;
40
- var react_1 = require("react");
41
- function usePictureInPicture(videoRef) {
42
- var _this = this;
43
- var _a = react_1.default.useState(false), isPipAvailable = _a[0], setIsPipAvailable = _a[1];
44
- var _b = react_1.default.useState(false), isPipActive = _b[0], setIsPipActive = _b[1];
45
- var pipWindowRef = react_1.default.useRef(null);
46
- react_1.default.useEffect(function () {
47
- setIsPipAvailable(document.pictureInPictureEnabled === true);
48
- }, []);
49
- var enterPip = react_1.default.useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
50
- var videoElement, _a, error_1;
51
- return __generator(this, function (_b) {
52
- switch (_b.label) {
53
- case 0:
54
- videoElement = videoRef.current;
55
- if (videoElement === null || isPipAvailable === false) {
56
- return [2 /*return*/];
57
- }
58
- _b.label = 1;
59
- case 1:
60
- _b.trys.push([1, 3, , 4]);
61
- _a = pipWindowRef;
62
- return [4 /*yield*/, videoElement.requestPictureInPicture()];
63
- case 2:
64
- _a.current = _b.sent();
65
- setIsPipActive(true);
66
- videoElement.play();
67
- return [3 /*break*/, 4];
68
- case 3:
69
- error_1 = _b.sent();
70
- console.error("Failed to enter Picture-in-Picture mode:", { error: error_1 });
71
- return [3 /*break*/, 4];
72
- case 4: return [2 /*return*/];
73
- }
74
- });
75
- }); }, [isPipAvailable, videoRef]);
76
- var exitPip = react_1.default.useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
77
- var error_2;
78
- return __generator(this, function (_a) {
79
- switch (_a.label) {
80
- case 0:
81
- if (document.pictureInPictureElement === null) {
82
- return [2 /*return*/];
83
- }
84
- _a.label = 1;
85
- case 1:
86
- _a.trys.push([1, 3, , 4]);
87
- return [4 /*yield*/, document.exitPictureInPicture()];
88
- case 2:
89
- _a.sent();
90
- setIsPipActive(false);
91
- return [3 /*break*/, 4];
92
- case 3:
93
- error_2 = _a.sent();
94
- console.error("Failed to exit Picture-in-Picture mode:", { error: error_2 });
95
- return [3 /*break*/, 4];
96
- case 4: return [2 /*return*/];
97
- }
98
- });
99
- }); }, []);
100
- var handlePipChange = react_1.default.useCallback(function () {
101
- var isPipActive = document.pictureInPictureElement === videoRef.current;
102
- setIsPipActive(isPipActive);
103
- }, [videoRef]);
104
- react_1.default.useEffect(function () {
105
- var videoElement = videoRef.current;
106
- if (videoElement === null) {
107
- return;
108
- }
109
- videoElement.addEventListener("enterpictureinpicture", handlePipChange);
110
- videoElement.addEventListener("leavepictureinpicture", handlePipChange);
111
- return function () {
112
- videoElement.removeEventListener("enterpictureinpicture", handlePipChange);
113
- videoElement.removeEventListener("leavepictureinpicture", handlePipChange);
114
- };
115
- }, [handlePipChange, videoRef]);
116
- var values = react_1.default.useMemo(function () {
117
- return {
118
- isPipAvailable: isPipAvailable,
119
- isPipActive: isPipActive,
120
- enterPip: enterPip,
121
- exitPip: exitPip,
122
- };
123
- }, [enterPip, exitPip, isPipActive, isPipAvailable]);
124
- return values;
125
- }
126
- exports.usePictureInPicture = usePictureInPicture;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useResizeObserver = void 0;
4
- var resize_observer_1 = require("@juggle/resize-observer");
5
- var react_1 = require("react");
6
- function useResizeObserver(ref, callback) {
7
- react_1.default.useEffect(function () {
8
- var element = ref === null ? null : "current" in ref ? ref.current : ref;
9
- if (element === null || callback === undefined) {
10
- return;
11
- }
12
- var observer = new resize_observer_1.ResizeObserver(function (entries) {
13
- // https://stackoverflow.com/questions/49384120/resizeobserver-loop-limit-exceeded/58701523#58701523
14
- requestAnimationFrame(function () {
15
- if (!Array.isArray(entries) || !entries.length) {
16
- return;
17
- }
18
- // By the time the animation frame fires, the DOM might have be unmounted already
19
- if (element === null || callback === undefined) {
20
- return;
21
- }
22
- var entry = entries[0];
23
- if (entry === undefined) {
24
- return;
25
- }
26
- callback(entry.contentRect);
27
- });
28
- });
29
- observer.observe(element);
30
- return function () {
31
- observer.disconnect();
32
- };
33
- }, [ref, callback]);
34
- }
35
- exports.useResizeObserver = useResizeObserver;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useScrollPosition = void 0;
4
- var react_1 = require("react");
5
- var useEventListener_js_1 = require("./useEventListener.js");
6
- function useScrollPosition() {
7
- var elementRef = react_1.default.useRef(null);
8
- var _a = react_1.default.useState(true), isScrollAtStart = _a[0], setIsScrollAtStart = _a[1];
9
- var _b = react_1.default.useState(false), isScrollAtEnd = _b[0], setIsScrollAtEnd = _b[1];
10
- var onScroll = react_1.default.useCallback(function () {
11
- var element = elementRef.current;
12
- if (element === null) {
13
- return;
14
- }
15
- var scrollTop = element.scrollTop, scrollHeight = element.scrollHeight, clientHeight = element.clientHeight;
16
- setIsScrollAtStart(scrollTop === 0);
17
- setIsScrollAtEnd(scrollTop + clientHeight >= scrollHeight);
18
- }, []);
19
- (0, useEventListener_js_1.useEventListener)("scroll", onScroll, elementRef);
20
- return [elementRef, { isScrollAtStart: isScrollAtStart, isScrollAtEnd: isScrollAtEnd }];
21
- }
22
- exports.useScrollPosition = useScrollPosition;
@@ -1,138 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.useStepper = void 0;
15
- var react_1 = require("react");
16
- function useStepper(props) {
17
- var steps = props.steps, initialStep = props.initialStep, onStep = props.onStep;
18
- react_1.default.useEffect(function () {
19
- checkUniqueKeys(steps);
20
- }, [steps]);
21
- var initialIndex = react_1.default.useMemo(function () {
22
- var stepIndex = steps.findIndex(function (step) {
23
- return step.key === initialStep;
24
- });
25
- if (stepIndex === -1) {
26
- return 0;
27
- }
28
- return stepIndex;
29
- }, [initialStep, steps]);
30
- var _a = react_1.default.useState(initialIndex), stepIndex = _a[0], setStepIndex = _a[1];
31
- var step = react_1.default.useMemo(function () {
32
- return steps[stepIndex];
33
- }, [stepIndex, steps]);
34
- var isFirstStep = react_1.default.useMemo(function () {
35
- return stepIndex === 0;
36
- }, [stepIndex]);
37
- var isLastStep = react_1.default.useMemo(function () {
38
- return stepIndex === steps.length - 1;
39
- }, [stepIndex, steps.length]);
40
- var goToNextStep = react_1.default.useCallback(function () {
41
- setStepIndex(function (currentStepIndex) {
42
- var nextIndex = Math.min(currentStepIndex + 1, steps.length - 1);
43
- var nextStep = steps[nextIndex];
44
- if (nextStep !== undefined && onStep !== undefined) {
45
- onStep(nextStep, nextIndex);
46
- }
47
- return nextIndex;
48
- });
49
- }, [steps, onStep]);
50
- var goToPreviousStep = react_1.default.useCallback(function () {
51
- setStepIndex(function (currentStepIndex) {
52
- var previousIndex = Math.max(currentStepIndex - 1, 0);
53
- var previousStep = steps[previousIndex];
54
- if (previousStep !== undefined && onStep !== undefined) {
55
- onStep(previousStep, previousIndex);
56
- }
57
- return previousIndex;
58
- });
59
- }, [steps, onStep]);
60
- var goToStep = react_1.default.useCallback(function (key) {
61
- var index = steps.findIndex(function (curentStep) {
62
- return curentStep.key === key;
63
- });
64
- if (index === -1) {
65
- return;
66
- }
67
- setStepIndex(index);
68
- var indexStep = steps[index];
69
- if (indexStep !== undefined && onStep !== undefined) {
70
- onStep(indexStep, index);
71
- }
72
- }, [steps, onStep]);
73
- var reset = react_1.default.useCallback(function () {
74
- setStepIndex(initialIndex);
75
- var initialIndexStep = steps[initialIndex];
76
- if (initialIndexStep !== undefined && onStep !== undefined) {
77
- onStep(initialIndexStep, initialIndex);
78
- }
79
- }, [initialIndex, steps, onStep]);
80
- var ComponentWithInjectedProps = react_1.default.useMemo(function () {
81
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, react/display-name
82
- return function (props) {
83
- if (step === undefined) {
84
- return null;
85
- }
86
- return react_1.default.createElement(step.Component, __assign(__assign({}, props), { step: step, stepIndex: stepIndex, isFirstStep: isFirstStep, isLastStep: isLastStep, goToNextStep: goToNextStep, goToPreviousStep: goToPreviousStep, goToStep: goToStep, reset: reset }));
87
- };
88
- }, [
89
- step,
90
- goToStep,
91
- isFirstStep,
92
- isLastStep,
93
- goToNextStep,
94
- goToPreviousStep,
95
- reset,
96
- stepIndex,
97
- ]);
98
- var currentStep = react_1.default.useMemo(function () {
99
- if (step === undefined) {
100
- return undefined;
101
- }
102
- return __assign(__assign({}, step), { Component: ComponentWithInjectedProps });
103
- }, [ComponentWithInjectedProps, step]);
104
- var values = react_1.default.useMemo(function () {
105
- return {
106
- step: currentStep,
107
- stepIndex: stepIndex,
108
- isFirstStep: isFirstStep,
109
- isLastStep: isLastStep,
110
- goToNextStep: goToNextStep,
111
- goToPreviousStep: goToPreviousStep,
112
- goToStep: goToStep,
113
- reset: reset,
114
- };
115
- }, [
116
- currentStep,
117
- stepIndex,
118
- isFirstStep,
119
- isLastStep,
120
- goToNextStep,
121
- goToPreviousStep,
122
- goToStep,
123
- reset,
124
- ]);
125
- return values;
126
- }
127
- exports.useStepper = useStepper;
128
- function checkUniqueKeys(steps) {
129
- var keys = steps.map(function (step) {
130
- return step.key;
131
- });
132
- var duplicates = keys.filter(function (key, index) {
133
- return keys.indexOf(key) !== index;
134
- });
135
- if (duplicates.length > 0) {
136
- throw new Error("Duplicate step keys found: ".concat(duplicates.join(", ")));
137
- }
138
- }
@@ -1,110 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.useStorageState = void 0;
40
- var react_1 = require("react");
41
- var storage_js_1 = require("../storage.js");
42
- function useStorageState(options) {
43
- var _this = this;
44
- var key = options.key, defaultValue = options.defaultValue, _a = options.storage, storage = _a === void 0 ? "localStorage" : _a, getValueOverrideAfterRestore = options.getValueOverrideAfterRestore, matchIsValueToBeStored = options.matchIsValueToBeStored;
45
- var _b = react_1.default.useState(defaultValue), storedValue = _b[0], setStoreValue = _b[1];
46
- var _c = react_1.default.useState(false), hasRestoredValue = _c[0], setHasRestoredValue = _c[1];
47
- var isRestoringValueRef = react_1.default.useRef(false);
48
- var lastKeyRestoredRef = react_1.default.useRef(undefined);
49
- var callbacksAfterRestoreRef = react_1.default.useRef([]);
50
- react_1.default.useEffect(function () {
51
- if (key === undefined || key === lastKeyRestoredRef.current) {
52
- return;
53
- }
54
- setHasRestoredValue(false);
55
- isRestoringValueRef.current = true;
56
- lastKeyRestoredRef.current = key;
57
- var updateRestoredStorageValue = function () { return __awaiter(_this, void 0, void 0, function () {
58
- var storageValue, restoredValue, _a, restoredValueAfterCallbacks, _i, _b, callback;
59
- return __generator(this, function (_c) {
60
- switch (_c.label) {
61
- case 0: return [4 /*yield*/, (0, storage_js_1.getItemFromStorage)(key, { storage: storage })];
62
- case 1:
63
- storageValue = _c.sent();
64
- if (!(getValueOverrideAfterRestore !== undefined)) return [3 /*break*/, 3];
65
- return [4 /*yield*/, getValueOverrideAfterRestore(storageValue)];
66
- case 2:
67
- _a = _c.sent();
68
- return [3 /*break*/, 4];
69
- case 3:
70
- _a = storageValue;
71
- _c.label = 4;
72
- case 4:
73
- restoredValue = _a;
74
- if (restoredValue !== undefined) {
75
- restoredValueAfterCallbacks = restoredValue;
76
- // eslint-disable-next-line no-restricted-syntax
77
- for (_i = 0, _b = callbacksAfterRestoreRef.current; _i < _b.length; _i++) {
78
- callback = _b[_i];
79
- restoredValueAfterCallbacks = callback(restoredValueAfterCallbacks);
80
- }
81
- setStoreValue(restoredValueAfterCallbacks);
82
- }
83
- setHasRestoredValue(true);
84
- isRestoringValueRef.current = false;
85
- callbacksAfterRestoreRef.current = [];
86
- return [2 /*return*/];
87
- }
88
- });
89
- }); };
90
- updateRestoredStorageValue();
91
- }, [defaultValue, getValueOverrideAfterRestore, key, storage]);
92
- var setValue = react_1.default.useCallback(function (value) {
93
- if (isRestoringValueRef.current === true) {
94
- callbacksAfterRestoreRef.current.push(value instanceof Function ? value : function () { return value; });
95
- return;
96
- }
97
- var valueToStore = value instanceof Function ? value(storedValue) : value;
98
- setStoreValue(valueToStore);
99
- if (key !== undefined &&
100
- (matchIsValueToBeStored === undefined ||
101
- matchIsValueToBeStored(valueToStore))) {
102
- (0, storage_js_1.setItemInStorage)(key, valueToStore, { storage: storage });
103
- }
104
- }, [key, storedValue, matchIsValueToBeStored, storage]);
105
- var returnValue = react_1.default.useMemo(function () {
106
- return [storedValue, setValue, hasRestoredValue];
107
- }, [storedValue, setValue, hasRestoredValue]);
108
- return returnValue;
109
- }
110
- exports.useStorageState = useStorageState;
@@ -1,78 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VideoManager = void 0;
4
- // Singleton to ensure unique video element
5
- var VideoManager = /** @class */ (function () {
6
- function VideoManager() {
7
- this.videoElement = null;
8
- this.isPlaying = false;
9
- this.hasStarted = false;
10
- this.currentTime = 0;
11
- }
12
- VideoManager.getInstance = function () {
13
- if (VideoManager.instance === null) {
14
- VideoManager.instance = new VideoManager();
15
- }
16
- return VideoManager.instance;
17
- };
18
- VideoManager.prototype.setVideoElement = function (video) {
19
- if (this.videoElement !== null && this.videoElement !== video) {
20
- this.saveVideoState();
21
- this.releaseVideo();
22
- }
23
- this.videoElement = video;
24
- this.restoreVideoState();
25
- };
26
- VideoManager.prototype.getVideoElement = function () {
27
- return this.videoElement;
28
- };
29
- VideoManager.prototype.play = function () {
30
- if (this.videoElement === null) {
31
- return;
32
- }
33
- this.videoElement.play();
34
- this.isPlaying = true;
35
- this.hasStarted = true;
36
- };
37
- VideoManager.prototype.pause = function () {
38
- if (this.videoElement === null) {
39
- return;
40
- }
41
- this.videoElement.pause();
42
- this.isPlaying = false;
43
- };
44
- VideoManager.prototype.saveVideoState = function () {
45
- if (this.videoElement === null) {
46
- return;
47
- }
48
- this.currentTime = this.videoElement.currentTime;
49
- this.isPlaying = this.videoElement.paused === false;
50
- this.hasStarted = this.isPlaying || this.currentTime > 0;
51
- };
52
- VideoManager.prototype.restoreVideoState = function () {
53
- if (this.videoElement === null) {
54
- return;
55
- }
56
- this.videoElement.currentTime = this.currentTime;
57
- if (this.isPlaying === true && this.videoElement.paused === true) {
58
- this.videoElement.play();
59
- }
60
- };
61
- VideoManager.prototype.releaseVideo = function () {
62
- if (this.videoElement === null) {
63
- return;
64
- }
65
- this.pause();
66
- this.videoElement = null;
67
- this.hasStarted = false;
68
- };
69
- VideoManager.prototype.isSameVideo = function (video) {
70
- return this.videoElement === video;
71
- };
72
- VideoManager.prototype.getHasStarted = function () {
73
- return this.hasStarted;
74
- };
75
- VideoManager.instance = null;
76
- return VideoManager;
77
- }());
78
- exports.VideoManager = VideoManager;
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useVideoPlayer = void 0;
4
- var useVideoPlayer_js_1 = require("./useVideoPlayer.js");
5
- Object.defineProperty(exports, "useVideoPlayer", { enumerable: true, get: function () { return useVideoPlayer_js_1.useVideoPlayer; } });
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useVideoPlayer = void 0;
4
- var react_1 = require("react");
5
- var VideoManager_js_1 = require("./VideoManager.js");
6
- function useVideoPlayer() {
7
- var videoRef = react_1.default.useRef(null);
8
- var videoManagerRef = react_1.default.useRef(VideoManager_js_1.VideoManager.getInstance());
9
- var _a = react_1.default.useState(false), isPlaying = _a[0], setIsPlaying = _a[1];
10
- var _b = react_1.default.useState(videoManagerRef.current.getHasStarted()), hasStarted = _b[0], setHasStarted = _b[1];
11
- var _c = react_1.default.useState(null), videoDuration = _c[0], setVideoDuration = _c[1];
12
- var onPlayback = react_1.default.useCallback(function () {
13
- var videoElement = videoRef.current;
14
- if (videoElement === null) {
15
- return;
16
- }
17
- var videoManager = videoManagerRef.current;
18
- videoManager.setVideoElement(videoElement);
19
- if (videoElement.paused === true || videoElement.ended === true) {
20
- videoManager.play();
21
- setIsPlaying(true);
22
- setHasStarted(true);
23
- }
24
- else {
25
- videoManager.pause();
26
- setIsPlaying(false);
27
- }
28
- }, []);
29
- var onVideoEnd = react_1.default.useCallback(function () {
30
- var videoElement = videoRef.current;
31
- if (videoElement === null) {
32
- return;
33
- }
34
- var videoManager = videoManagerRef.current;
35
- videoManager.releaseVideo();
36
- videoManager.saveVideoState();
37
- videoManager.pause();
38
- setIsPlaying(false);
39
- setHasStarted(false);
40
- }, []);
41
- react_1.default.useEffect(function () {
42
- var videoElement = videoRef.current;
43
- if (videoElement === null) {
44
- return undefined;
45
- }
46
- var videoManager = videoManagerRef.current;
47
- if (videoManager.isSameVideo(videoElement) === true) {
48
- videoManager.restoreVideoState();
49
- setHasStarted(videoManager.getHasStarted());
50
- setIsPlaying(videoElement.paused === false);
51
- }
52
- else {
53
- videoElement.currentTime = 0;
54
- setHasStarted(false);
55
- setIsPlaying(false);
56
- }
57
- var handlePlay = function () {
58
- setIsPlaying(true);
59
- setHasStarted(true);
60
- };
61
- var handlePause = function () {
62
- setIsPlaying(false);
63
- };
64
- var handleEnded = function () {
65
- setIsPlaying(false);
66
- setHasStarted(false);
67
- };
68
- var handleLoadedMetadata = function () {
69
- setVideoDuration(videoElement.duration);
70
- };
71
- videoElement.addEventListener("play", handlePlay);
72
- videoElement.addEventListener("pause", handlePause);
73
- videoElement.addEventListener("ended", handleEnded);
74
- videoElement.addEventListener("loadedmetadata", handleLoadedMetadata);
75
- return function () {
76
- videoElement.removeEventListener("play", handlePlay);
77
- videoElement.removeEventListener("pause", handlePause);
78
- videoElement.removeEventListener("ended", handleEnded);
79
- videoElement.removeEventListener("loadedmetadata", handleLoadedMetadata);
80
- var videoManager = VideoManager_js_1.VideoManager.getInstance();
81
- if (videoManager.isSameVideo(videoElement) === true) {
82
- videoManager.saveVideoState();
83
- }
84
- };
85
- }, []);
86
- return react_1.default.useMemo(function () {
87
- return [
88
- videoRef,
89
- {
90
- isPlaying: isPlaying,
91
- hasStarted: hasStarted,
92
- onPlayback: onPlayback,
93
- onVideoEnd: onVideoEnd,
94
- videoDuration: videoDuration,
95
- videoManager: videoManagerRef.current,
96
- },
97
- ];
98
- }, [hasStarted, isPlaying, onPlayback, onVideoEnd, videoDuration]);
99
- }
100
- exports.useVideoPlayer = useVideoPlayer;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useWillUnmountEffect = void 0;
4
- var react_1 = require("react");
5
- var useWillUnmountEffect = function (cleanupCallback) {
6
- if (cleanupCallback === void 0) { cleanupCallback = function () { }; }
7
- var callbackRef = react_1.default.useRef(cleanupCallback);
8
- callbackRef.current = cleanupCallback; // always up to date
9
- react_1.default.useEffect(function () {
10
- return function () { return callbackRef.current(); };
11
- }, []);
12
- };
13
- exports.useWillUnmountEffect = useWillUnmountEffect;
package/build/index.js DELETED
@@ -1,28 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = 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);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./array.js"), exports);
18
- __exportStar(require("./collection.js"), exports);
19
- __exportStar(require("./components.js"), exports);
20
- __exportStar(require("./cron.js"), exports);
21
- __exportStar(require("./delay.js"), exports);
22
- __exportStar(require("./hooks/index.js"), exports);
23
- __exportStar(require("./json.js"), exports);
24
- __exportStar(require("./random.js"), exports);
25
- __exportStar(require("./storage.js"), exports);
26
- __exportStar(require("./string.js"), exports);
27
- __exportStar(require("./type.js"), exports);
28
- __exportStar(require("./user.js"), exports);