@cargo-ai/utils 1.0.4
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/build/array.js +52 -0
- package/build/collection.js +155 -0
- package/build/components.js +56 -0
- package/build/cron.js +19 -0
- package/build/delay.js +52 -0
- package/build/hooks/index.js +35 -0
- package/build/hooks/useClickOutside.js +46 -0
- package/build/hooks/useCountAnimation.js +34 -0
- package/build/hooks/useDeviceType.js +54 -0
- package/build/hooks/useEventListener.js +27 -0
- package/build/hooks/useHeight.js +26 -0
- package/build/hooks/usePictureInPicture.js +126 -0
- package/build/hooks/useResizeObserver.js +35 -0
- package/build/hooks/useScrollPosition.js +22 -0
- package/build/hooks/useStepper.js +138 -0
- package/build/hooks/useStorageState.js +110 -0
- package/build/hooks/useVideoPlayer/VideoManager.js +78 -0
- package/build/hooks/useVideoPlayer/index.js +5 -0
- package/build/hooks/useVideoPlayer/useVideoPlayer.js +100 -0
- package/build/hooks/useWillUnmountEffect.js +13 -0
- package/build/index.js +28 -0
- package/build/json.js +81 -0
- package/build/random.js +7 -0
- package/build/src/array.d.ts +16 -0
- package/build/src/array.d.ts.map +1 -0
- package/build/src/array.js +81 -0
- package/build/src/base64.d.ts +3 -0
- package/build/src/base64.d.ts.map +1 -0
- package/build/src/base64.js +6 -0
- package/build/src/bytes.d.ts +7 -0
- package/build/src/bytes.d.ts.map +1 -0
- package/build/src/bytes.js +71 -0
- package/build/src/collection/deepMergeObjects.d.ts +2 -0
- package/build/src/collection/deepMergeObjects.d.ts.map +1 -0
- package/build/src/collection/deepMergeObjects.js +30 -0
- package/build/src/collection/index.d.ts +2 -0
- package/build/src/collection/index.d.ts.map +1 -0
- package/build/src/collection/index.js +1 -0
- package/build/src/collection.d.ts +22 -0
- package/build/src/collection.d.ts.map +1 -0
- package/build/src/collection.js +210 -0
- package/build/src/colors.d.ts +2 -0
- package/build/src/colors.d.ts.map +1 -0
- package/build/src/colors.js +14 -0
- package/build/src/components.d.ts +4 -0
- package/build/src/components.js +45 -0
- package/build/src/credits.d.ts +7 -0
- package/build/src/credits.d.ts.map +1 -0
- package/build/src/credits.js +88 -0
- package/build/src/cron.d.ts +3 -0
- package/build/src/cron.d.ts.map +1 -0
- package/build/src/cron.js +16 -0
- package/build/src/date/getContextTimezone.d.ts +2 -0
- package/build/src/date/getContextTimezone.d.ts.map +1 -0
- package/build/src/date/getContextTimezone.js +3 -0
- package/build/src/date/getDate.d.ts +8 -0
- package/build/src/date/getDate.d.ts.map +1 -0
- package/build/src/date/getDate.js +25 -0
- package/build/src/date/getDateString.d.ts +8 -0
- package/build/src/date/getDateString.d.ts.map +1 -0
- package/build/src/date/getDateString.js +13 -0
- package/build/src/date/getDatesDifferenceString.d.ts +2 -0
- package/build/src/date/getDatesDifferenceString.d.ts.map +1 -0
- package/build/src/date/getDatesDifferenceString.js +17 -0
- package/build/src/date/getTimeFromNowString.d.ts +2 -0
- package/build/src/date/getTimeFromNowString.d.ts.map +1 -0
- package/build/src/date/getTimeFromNowString.js +8 -0
- package/build/src/date/getTimezoneHoursOffset.d.ts +2 -0
- package/build/src/date/getTimezoneHoursOffset.d.ts.map +1 -0
- package/build/src/date/getTimezoneHoursOffset.js +7 -0
- package/build/src/date/getTimezoneOffsetString.d.ts +2 -0
- package/build/src/date/getTimezoneOffsetString.d.ts.map +1 -0
- package/build/src/date/getTimezoneOffsetString.js +8 -0
- package/build/src/date/index.d.ts +8 -0
- package/build/src/date/index.d.ts.map +1 -0
- package/build/src/date/index.js +7 -0
- package/build/src/date.d.ts +13 -0
- package/build/src/date.d.ts.map +1 -0
- package/build/src/date.js +14 -0
- package/build/src/delay.d.ts +7 -0
- package/build/src/delay.d.ts.map +1 -0
- package/build/src/delay.js +19 -0
- package/build/src/expression/getExpressionNodesReferences.d.ts +17 -0
- package/build/src/expression/getExpressionNodesReferences.d.ts.map +1 -0
- package/build/src/expression/getExpressionNodesReferences.js +71 -0
- package/build/src/expression/getObjectAccessKeysBeforeCursor.d.ts +17 -0
- package/build/src/expression/getObjectAccessKeysBeforeCursor.d.ts.map +1 -0
- package/build/src/expression/getObjectAccessKeysBeforeCursor.js +97 -0
- package/build/src/expression/index.d.ts +3 -0
- package/build/src/expression/index.d.ts.map +1 -0
- package/build/src/expression/index.js +2 -0
- package/build/src/expression/jsonSchema.d.ts +4 -0
- package/build/src/expression/jsonSchema.d.ts.map +1 -0
- package/build/src/expression/jsonSchema.js +85 -0
- package/build/src/expression/matchIsExpression.d.ts +2 -0
- package/build/src/expression/matchIsExpression.d.ts.map +1 -0
- package/build/src/expression/matchIsExpression.js +10 -0
- package/build/src/expression/matchIsExpressionObject.d.ts +2 -0
- package/build/src/expression/matchIsExpressionObject.d.ts.map +1 -0
- package/build/src/expression/matchIsExpressionObject.js +10 -0
- package/build/src/expression/matchIsExpressionString.d.ts +2 -0
- package/build/src/expression/matchIsExpressionString.d.ts.map +1 -0
- package/build/src/expression/matchIsExpressionString.js +4 -0
- package/build/src/gclid.d.ts +4 -0
- package/build/src/gclid.d.ts.map +1 -0
- package/build/src/gclid.js +30 -0
- package/build/src/hooks/index.d.ts +12 -0
- package/build/src/hooks/index.js +12 -0
- package/build/src/hooks/useClickOutside.d.ts +4 -0
- package/build/src/hooks/useClickOutside.js +42 -0
- package/build/src/hooks/useCountAnimation.d.ts +1 -0
- package/build/src/hooks/useCountAnimation.js +30 -0
- package/build/src/hooks/useDeviceType.d.ts +2 -0
- package/build/src/hooks/useDeviceType.js +50 -0
- package/build/src/hooks/useEventListener.d.ts +6 -0
- package/build/src/hooks/useEventListener.js +23 -0
- package/build/src/hooks/useHeight.d.ts +2 -0
- package/build/src/hooks/useHeight.js +20 -0
- package/build/src/hooks/usePictureInPicture.d.ts +9 -0
- package/build/src/hooks/usePictureInPicture.js +60 -0
- package/build/src/hooks/useResizeObserver.d.ts +4 -0
- package/build/src/hooks/useResizeObserver.js +31 -0
- package/build/src/hooks/useScrollPosition.d.ts +5 -0
- package/build/src/hooks/useScrollPosition.js +18 -0
- package/build/src/hooks/useStepper.d.ts +26 -0
- package/build/src/hooks/useStepper.js +136 -0
- package/build/src/hooks/useStorageState.d.ts +12 -0
- package/build/src/hooks/useStorageState.js +53 -0
- package/build/src/hooks/useVideoPlayer/VideoManager.d.ts +18 -0
- package/build/src/hooks/useVideoPlayer/VideoManager.js +72 -0
- package/build/src/hooks/useVideoPlayer/index.d.ts +1 -0
- package/build/src/hooks/useVideoPlayer/index.js +1 -0
- package/build/src/hooks/useVideoPlayer/useVideoPlayer.d.ts +15 -0
- package/build/src/hooks/useVideoPlayer/useVideoPlayer.js +96 -0
- package/build/src/hooks/useWillUnmountEffect.d.ts +1 -0
- package/build/src/hooks/useWillUnmountEffect.js +8 -0
- package/build/src/index.d.ts +27 -0
- package/build/src/index.d.ts.map +1 -0
- package/build/src/index.js +26 -0
- package/build/src/integration.d.ts +14 -0
- package/build/src/integration.d.ts.map +1 -0
- package/build/src/integration.js +72 -0
- package/build/src/json/castToJsonType.d.ts +5 -0
- package/build/src/json/castToJsonType.d.ts.map +1 -0
- package/build/src/json/castToJsonType.js +58 -0
- package/build/src/json/cleanJson.d.ts +3 -0
- package/build/src/json/cleanJson.d.ts.map +1 -0
- package/build/src/json/cleanJson.js +18 -0
- package/build/src/json/constants.d.ts +3 -0
- package/build/src/json/constants.d.ts.map +1 -0
- package/build/src/json/constants.js +9 -0
- package/build/src/json/getJsonType.d.ts +3 -0
- package/build/src/json/getJsonType.d.ts.map +1 -0
- package/build/src/json/getJsonType.js +24 -0
- package/build/src/json/index.d.ts +8 -0
- package/build/src/json/index.d.ts.map +1 -0
- package/build/src/json/index.js +7 -0
- package/build/src/json/isJson.d.ts +2 -0
- package/build/src/json/isJson.d.ts.map +1 -0
- package/build/src/json/isJson.js +9 -0
- package/build/src/json/isJsonSchemaEmpty.d.ts +3 -0
- package/build/src/json/isJsonSchemaEmpty.d.ts.map +1 -0
- package/build/src/json/isJsonSchemaEmpty.js +7 -0
- package/build/src/json/stringifyJson.d.ts +2 -0
- package/build/src/json/stringifyJson.d.ts.map +1 -0
- package/build/src/json/stringifyJson.js +6 -0
- package/build/src/json/types.d.ts +2 -0
- package/build/src/json/types.d.ts.map +1 -0
- package/build/src/json/types.js +1 -0
- package/build/src/json.d.ts +13 -0
- package/build/src/json.d.ts.map +1 -0
- package/build/src/json.js +107 -0
- package/build/src/jsonSchema/index.d.ts +10 -0
- package/build/src/jsonSchema/index.d.ts.map +1 -0
- package/build/src/jsonSchema/index.js +198 -0
- package/build/src/jsonSchema.d.ts +5 -0
- package/build/src/jsonSchema.d.ts.map +1 -0
- package/build/src/jsonSchema.js +73 -0
- package/build/src/number/formatCredits.d.ts +2 -0
- package/build/src/number/formatCredits.d.ts.map +1 -0
- package/build/src/number/formatCredits.js +7 -0
- package/build/src/number/formatPrice.d.ts +2 -0
- package/build/src/number/formatPrice.d.ts.map +1 -0
- package/build/src/number/formatPrice.js +8 -0
- package/build/src/number/getNumberWithMaxDecimals.d.ts +2 -0
- package/build/src/number/getNumberWithMaxDecimals.d.ts.map +1 -0
- package/build/src/number/getNumberWithMaxDecimals.js +3 -0
- package/build/src/number/index.d.ts +4 -0
- package/build/src/number/index.d.ts.map +1 -0
- package/build/src/number/index.js +3 -0
- package/build/src/poll.d.ts +5 -0
- package/build/src/poll.d.ts.map +1 -0
- package/build/src/poll.js +30 -0
- package/build/src/random.d.ts +2 -0
- package/build/src/random.d.ts.map +1 -0
- package/build/src/random.js +3 -0
- package/build/src/schema.d.ts +24 -0
- package/build/src/schema.d.ts.map +1 -0
- package/build/src/schema.js +315 -0
- package/build/src/searchInTree.d.ts +46 -0
- package/build/src/searchInTree.d.ts.map +1 -0
- package/build/src/searchInTree.js +67 -0
- package/build/src/storage.d.ts +13 -0
- package/build/src/storage.d.ts.map +1 -0
- package/build/src/storage.js +169 -0
- package/build/src/string/capitalizeFirstLetter.d.ts +2 -0
- package/build/src/string/capitalizeFirstLetter.d.ts.map +1 -0
- package/build/src/string/capitalizeFirstLetter.js +3 -0
- package/build/src/string/findAllIndexOf.d.ts +2 -0
- package/build/src/string/findAllIndexOf.d.ts.map +1 -0
- package/build/src/string/findAllIndexOf.js +13 -0
- package/build/src/string/getHash.d.ts +2 -0
- package/build/src/string/getHash.d.ts.map +1 -0
- package/build/src/string/getHash.js +9 -0
- package/build/src/string/index.d.ts +5 -0
- package/build/src/string/index.d.ts.map +1 -0
- package/build/src/string/index.js +4 -0
- package/build/src/string/sentenceCase.d.ts +2 -0
- package/build/src/string/sentenceCase.d.ts.map +1 -0
- package/build/src/string/sentenceCase.js +38 -0
- package/build/src/string.d.ts +2 -0
- package/build/src/string.d.ts.map +1 -0
- package/build/src/string.js +3 -0
- package/build/src/type.d.ts +10 -0
- package/build/src/type.js +1 -0
- package/build/src/types.d.ts +22 -0
- package/build/src/types.d.ts.map +1 -0
- package/build/src/types.js +1 -0
- package/build/src/user.d.ts +3 -0
- package/build/src/user.d.ts.map +1 -0
- package/build/src/user.js +7 -0
- package/build/src/validation/index.d.ts +2 -0
- package/build/src/validation/index.d.ts.map +1 -0
- package/build/src/validation/index.js +1 -0
- package/build/src/validation/matchIsObjectLike.d.ts +2 -0
- package/build/src/validation/matchIsObjectLike.d.ts.map +1 -0
- package/build/src/validation/matchIsObjectLike.js +4 -0
- package/build/src/vm.d.ts +1 -0
- package/build/src/vm.js +32 -0
- package/build/src/zod/index.d.ts +14 -0
- package/build/src/zod/index.d.ts.map +1 -0
- package/build/src/zod/index.js +210 -0
- package/build/src/zod.d.ts +8 -0
- package/build/src/zod.d.ts.map +1 -0
- package/build/src/zod.js +89 -0
- package/build/storage.js +285 -0
- package/build/string.js +17 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/build/type.js +2 -0
- package/build/user.js +12 -0
- package/package.json +50 -0
|
@@ -0,0 +1,126 @@
|
|
|
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;
|
|
@@ -0,0 +1,35 @@
|
|
|
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;
|
|
@@ -0,0 +1,22 @@
|
|
|
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;
|
|
@@ -0,0 +1,138 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
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;
|
|
@@ -0,0 +1,78 @@
|
|
|
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;
|
|
@@ -0,0 +1,5 @@
|
|
|
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; } });
|
|
@@ -0,0 +1,100 @@
|
|
|
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;
|
|
@@ -0,0 +1,13 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
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);
|