@remotion/player 2.6.12 → 2.6.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,8 +1,86 @@
1
1
  ### Remotion Player
2
2
 
3
- [![NPM Version](http://img.shields.io/npm/v/@remotion/player.svg?style=flat)](https://www.npmjs.org/package/@remotion/player)
3
+ [![NPM Version](https://img.shields.io/npm/v/@remotion/player.svg?style=flat)](https://www.npmjs.org/package/@remotion/player)
4
4
  [![NPM Downloads](https://img.shields.io/npm/dm/@remotion/player.svg?style=flat)](https://npmcharts.com/compare/@remotion/player?minimal=true)
5
5
  [![Install Size](https://packagephobia.now.sh/badge?p=@remotion/player)](https://packagephobia.now.sh/result?p=@remotion/player)
6
6
 
7
- This package allows you to include a Remotion video in your React app.
8
- Full documentation can be found under http://remotion.dev/docs/player.
7
+ The `@remotion/player` package allows you to embed a video powered by Remotion in a React application.
8
+
9
+ ## Installation and prerequisites
10
+
11
+ The dependencies that Remotion requires you to have pre-installed on your machine are Node.js and FFMPEG. You can take a look at this [guide](https://github.com/adaptlearning/adapt_authoring/wiki/Installing-FFmpeg) on how to get FFMPEG on your machine.
12
+
13
+ Install this package and Remotion with the package manager that you use for project:
14
+
15
+ ```bash
16
+ npm i remotion @remotion/player
17
+ ```
18
+
19
+ ```bash
20
+ yarn add remotion @remotion/player
21
+ ```
22
+
23
+ ```bash
24
+ pnpm i remotion @remotion/player
25
+ ```
26
+
27
+ > Make sure all Remotion packages you install (`remotion`, `@remotion/player`, `@remotion/gif`...) [have the same version](https://remotion.dev/docs/version-mismatch).
28
+
29
+ ## Getting started
30
+
31
+ Now that you have this package as a dependency in your React project, it is time to see some of the basic examples that you can spin up with this package.
32
+
33
+ The `@remotion/player` package can be imported as a React component from the library, which you can make use of in your components, either by nesting it in a custom component of yours or simply making it a standalone component.
34
+
35
+ ```javascript
36
+ // components/MyVideo.js
37
+ import React from 'react';
38
+ import {useCurrentFrame} from 'remotion';
39
+
40
+ const MyVideo = () => {
41
+ const frame = useCurrentFrame();
42
+
43
+ return (
44
+ <div
45
+ style={{
46
+ flex: 1,
47
+ textAlign: 'center',
48
+ fontSize: '7em',
49
+ }}
50
+ >
51
+ The current frame is {frame}.
52
+ </div>
53
+ );
54
+ };
55
+ ```
56
+
57
+ ```javascript
58
+ import {Player} from '@remotion/player';
59
+ import {MyVideo} from '../components/MyVideo';
60
+
61
+ export const App = () => {
62
+ return (
63
+ <Player
64
+ component={MyVideo}
65
+ durationInFrames={120}
66
+ compositionWidth={1920}
67
+ compositionHeight={1080}
68
+ fps={30}
69
+ />
70
+ );
71
+ };
72
+ ```
73
+
74
+ ## API
75
+
76
+ The most important props accepted:
77
+
78
+ | Props | Function |
79
+ | ----------------- | ---------------------------------------- |
80
+ | component | A React component that renders the video |
81
+ | durationInFrames | The duration of the video in frames |
82
+ | compositionHeight | The height of the composition in pixels |
83
+ | compositionWidth | The width of the composition in pixels |
84
+ | fps | The frame rate of the video |
85
+
86
+ For a complete reference of the available props, refer to [@remotion/player API](https://www.remotion.dev/docs/player/api).
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { CallbackListener, EventTypes, PlayerEmitter } from './event-emitter';
3
2
  export { Player, ErrorFallback } from './Player';
4
3
  export type { RenderLoading } from './PlayerUI';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAM5E,OAAO,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,UAAU,CAAC;AAC/C,YAAY,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAC,IAAI,EAAC,MAAM,0BAA0B,CAAC;AAE9C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS3B,CAAC;AAEF,YAAY,EAAC,gBAAgB,EAAE,UAAU,EAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAM5E,OAAO,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,UAAU,CAAC;AAC/C,YAAY,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAC,IAAI,EAAC,MAAM,0BAA0B,CAAC;AAE9C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS3B,CAAC;AAEF,YAAY,EAAC,gBAAgB,EAAE,UAAU,EAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/player",
3
- "version": "2.6.12",
3
+ "version": "2.6.15",
4
4
  "description": "Remotion Player",
5
5
  "main": "dist/index.js",
6
6
  "sideEffects": false,
@@ -28,7 +28,7 @@
28
28
  ],
29
29
  "license": "SEE LICENSE IN LICENSE.md",
30
30
  "dependencies": {
31
- "remotion": "2.6.12"
31
+ "remotion": "2.6.15"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "react": ">=16.8.0",
@@ -63,5 +63,5 @@
63
63
  "publishConfig": {
64
64
  "access": "public"
65
65
  },
66
- "gitHead": "6d76097a98c44dc976cecfa04526d663339cf45c"
66
+ "gitHead": "b175877d7ce5e0bbcb9d923cc98546fd6c748b44"
67
67
  }
package/dist/Loading.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export declare const Loading: React.FC<{
2
- size: number;
3
- }>;
4
- //# sourceMappingURL=Loading.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Loading.d.ts","sourceRoot":"","sources":["../src/Loading.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACb,CA+CA,CAAC"}
package/dist/Loading.js DELETED
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Loading = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const Loading = ({ size }) => {
6
- const triangle = (opacity, triangleSize) => ((0, jsx_runtime_1.jsxs)("svg", Object.assign({ xmlnsXlink: "http://www.w3.org/1999/xlink", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 400 400", style: {
7
- opacity,
8
- width: triangleSize,
9
- height: triangleSize,
10
- position: 'absolute',
11
- transform: 'rotate(90deg)',
12
- } }, { children: [(0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsxs)("linearGradient", Object.assign({ id: "gradient" }, { children: [(0, jsx_runtime_1.jsx)("stop", { stopColor: "#42e9f5", stopOpacity: "1", offset: "0" }, void 0), (0, jsx_runtime_1.jsx)("stop", { stopColor: "#4290f5", stopOpacity: "1", offset: "100%" }, void 0)] }), void 0) }, void 0), (0, jsx_runtime_1.jsx)("g", Object.assign({ stroke: 'url("#gradient")', strokeWidth: "100px", strokeLinejoin: "round" }, { children: (0, jsx_runtime_1.jsx)("path", { fill: 'url("#gradient")', d: "M 102 272 a 196 100 0 0 0 195 5 A 196 240 0 0 0 200 102.259 A 196 240 0 0 0 102 272 z", stroke: 'url("#gradient")', strokeWidth: "100px" }, void 0) }), void 0)] }), void 0));
13
- return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ style: {
14
- display: 'flex',
15
- justifyContent: 'center',
16
- alignItems: 'center',
17
- flex: 1,
18
- height: '100%',
19
- width: '100%',
20
- } }, { children: [triangle(0.2, size), triangle(0.4, (size * 9) / 11), triangle(1, (size * 7) / 11)] }), void 0));
21
- };
22
- exports.Loading = Loading;
23
- //# sourceMappingURL=Loading.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Loading.js","sourceRoot":"","sources":["../src/Loading.tsx"],"names":[],"mappings":";;;;AAAO,MAAM,OAAO,GAEf,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE;IACf,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,YAAoB,EAAE,EAAE,CAAC,CAC3D,+CACC,UAAU,EAAC,8BAA8B,EACzC,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,aAAa,EACrB,KAAK,EAAE;YACN,OAAO;YACP,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,eAAe;SAC1B,iBAED,2CACC,0DAAgB,EAAE,EAAC,UAAU,iBAC5B,iCAAM,SAAS,EAAC,SAAS,EAAC,WAAW,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,WAAG,EACvD,iCAAM,SAAS,EAAC,SAAS,EAAC,WAAW,EAAC,GAAG,EAAC,MAAM,EAAC,MAAM,WAAG,aAC1C,WACX,EACP,4CAAG,MAAM,EAAC,kBAAkB,EAAC,WAAW,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,gBACtE,iCACC,IAAI,EAAC,kBAAkB,EACvB,CAAC,EAAC,uFAAuF,EACzF,MAAM,EAAC,kBAAkB,EACzB,WAAW,EAAC,OAAO,WAClB,YACC,aACC,CACN,CAAC;IAEF,OAAO,CACN,+CACC,KAAK,EAAE;YACN,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,MAAM;SACb,iBAEA,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,EACnB,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAC9B,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,aACxB,CACN,CAAC;AACH,CAAC,CAAC;AAjDW,QAAA,OAAO,WAiDlB"}
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import { RemotionAudioProps } from 'remotion';
3
- declare type AudioElem = {
4
- id: number;
5
- props: RemotionAudioProps;
6
- el: React.RefObject<HTMLAudioElement>;
7
- };
8
- export declare const SharedAudioContextProvider: React.FC;
9
- export declare const useSharedAudio: (aud: RemotionAudioProps) => AudioElem;
10
- export {};
11
- //# sourceMappingURL=PredefinedAudioTags.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PredefinedAudioTags.d.ts","sourceRoot":"","sources":["../src/PredefinedAudioTags.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AACf,OAAO,EAAC,kBAAkB,EAAC,MAAM,UAAU,CAAC;AAE5C,aAAK,SAAS,GAAG;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,kBAAkB,CAAC;IAC1B,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;CACtC,CAAC;AAsBF,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EA4F9C,CAAC;AAEF,eAAO,MAAM,cAAc,QAAS,kBAAkB,cAgBrD,CAAC"}
@@ -1,98 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useSharedAudio = exports.SharedAudioContextProvider = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const SharedAudioContext = react_1.createContext({
7
- registerAudio: () => {
8
- throw new Error('sharedaudiocontext not mounted');
9
- },
10
- unregisterAudio: () => {
11
- throw new Error('sharedaudiocontext not mounted');
12
- },
13
- updateAudio: () => {
14
- throw new Error('sharedaudiocontext not mounted');
15
- },
16
- });
17
- const numberOfAudios = 5;
18
- const SharedAudioContextProvider = ({ children }) => {
19
- const [, setAudios] = react_1.useState([]);
20
- const refs = react_1.useMemo(() => {
21
- return new Array(numberOfAudios).fill(true).map(() => {
22
- return { id: Math.random(), ref: react_1.createRef() };
23
- });
24
- }, []);
25
- const [takenAudios, setTakenAudios] = react_1.useState(() => new Array(numberOfAudios).fill(false));
26
- const registerAudio = react_1.useCallback((aud) => {
27
- const firstFreeAudio = takenAudios.findIndex((a) => a === false);
28
- if (firstFreeAudio === -1) {
29
- throw new Error('Trying to register more than XXX audio elements at the same time');
30
- }
31
- setTakenAudios((prevTaken) => {
32
- const cloned = [...prevTaken];
33
- cloned[firstFreeAudio] = true;
34
- return cloned;
35
- });
36
- const { id, ref } = refs[firstFreeAudio];
37
- const newElem = {
38
- props: aud,
39
- id,
40
- el: ref,
41
- };
42
- setAudios((prevAudios) => [...prevAudios, newElem]);
43
- return newElem;
44
- }, [refs, takenAudios]);
45
- const unregisterAudio = react_1.useCallback((id) => {
46
- setTakenAudios((prevTaken) => {
47
- const cloned = [...prevTaken];
48
- const index = refs.findIndex((r) => r.id === id);
49
- if (index === -1) {
50
- throw new TypeError('unregister audio');
51
- }
52
- cloned[index] = false;
53
- return cloned;
54
- });
55
- setAudios((prevAudios) => {
56
- return prevAudios.filter((a) => a.id !== id);
57
- });
58
- }, [refs]);
59
- const updateAudio = react_1.useCallback((id, aud) => {
60
- setAudios((prevAudios) => {
61
- return prevAudios.map((prevA) => {
62
- if (prevA.id === id) {
63
- return {
64
- ...prevA,
65
- props: aud,
66
- };
67
- }
68
- return prevA;
69
- });
70
- });
71
- }, []);
72
- const value = react_1.useMemo(() => {
73
- return {
74
- registerAudio,
75
- unregisterAudio,
76
- updateAudio,
77
- };
78
- }, [registerAudio, unregisterAudio, updateAudio]);
79
- return (jsx_runtime_1.jsxs(SharedAudioContext.Provider, Object.assign({ value: value }, { children: [refs.map(({ id, ref }) => {
80
- return jsx_runtime_1.jsx("audio", { ref: ref }, id);
81
- }), children] }), void 0));
82
- };
83
- exports.SharedAudioContextProvider = SharedAudioContextProvider;
84
- const useSharedAudio = (aud) => {
85
- const ctx = react_1.useContext(SharedAudioContext);
86
- const [elem] = react_1.useState(() => ctx.registerAudio(aud));
87
- react_1.useLayoutEffect(() => {
88
- return () => {
89
- ctx.unregisterAudio(elem.id);
90
- };
91
- }, [ctx, elem.id]);
92
- react_1.useLayoutEffect(() => {
93
- ctx.updateAudio(elem.id, aud);
94
- }, [aud, ctx, elem.id]);
95
- return elem;
96
- };
97
- exports.useSharedAudio = useSharedAudio;
98
- //# sourceMappingURL=PredefinedAudioTags.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PredefinedAudioTags.js","sourceRoot":"","sources":["../src/PredefinedAudioTags.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- declare const root: false | typeof globalThis;
2
- declare function isConstructor(fn: any): boolean;
3
- //# sourceMappingURL=event-target-polyfill.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-target-polyfill.d.ts","sourceRoot":"","sources":["../src/event-target-polyfill.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,IAAI,2BAGgC,CAAC;AAE3C,iBAAS,aAAa,CAAC,EAAE,KAAA,WASxB"}
@@ -1,114 +0,0 @@
1
- "use strict";
2
- // https://raw.githubusercontent.com/benlesh/event-target-polyfill/master/index.js
3
- // @ts-nocheck
4
- const root = (typeof globalThis !== 'undefined' && globalThis) ||
5
- (typeof self !== 'undefined' && self) ||
6
- (typeof global !== 'undefined' && global);
7
- function isConstructor(fn) {
8
- try {
9
- // eslint-disable-next-line
10
- new fn();
11
- }
12
- catch (error) {
13
- return false;
14
- }
15
- return true;
16
- }
17
- if (typeof root.Event !== 'function' || !isConstructor(root.Event)) {
18
- root.Event = (function () {
19
- function Event(type, options) {
20
- this.bubbles = Boolean(options) && Boolean(options.bubbles);
21
- this.cancelable = Boolean(options) && Boolean(options.cancelable);
22
- this.composed = Boolean(options) && Boolean(options.composed);
23
- this.type = type;
24
- }
25
- return Event;
26
- })();
27
- }
28
- if (typeof root.EventTarget === 'undefined' || !isConstructor(root.Event)) {
29
- root.EventTarget = (function () {
30
- function EventTarget() {
31
- this.__listeners = new Map();
32
- }
33
- EventTarget.prototype = Object.create(Object.prototype);
34
- EventTarget.prototype.addEventListener = function (type, listener, options) {
35
- if (arguments.length < 2) {
36
- throw new TypeError(`TypeError: Failed to execute 'addEventListener'
37
- on 'EventTarget': 2 arguments required, but only $ {
38
- arguments.length
39
- }
40
- present.`);
41
- }
42
- const { __listeners } = this;
43
- const actualType = type.toString();
44
- if (!__listeners.has(actualType)) {
45
- __listeners.set(actualType, new Map());
46
- }
47
- const listenersForType = __listeners.get(actualType);
48
- if (!listenersForType.has(listener)) {
49
- // Any given listener is only registered once
50
- listenersForType.set(listener, options);
51
- }
52
- };
53
- EventTarget.prototype.removeEventListener = function (type, listener) {
54
- if (arguments.length < 2) {
55
- throw new TypeError(`TypeError: Failed to execute 'addEventListener'
56
- on 'EventTarget': 2 arguments required, but only $ {
57
- arguments.length
58
- }
59
- present.`);
60
- }
61
- const { __listeners } = this;
62
- const actualType = type.toString();
63
- if (__listeners.has(actualType)) {
64
- const listenersForType = __listeners.get(actualType);
65
- if (listenersForType.has(listener)) {
66
- listenersForType.delete(listener);
67
- }
68
- }
69
- };
70
- EventTarget.prototype.dispatchEvent = function (event) {
71
- if (!(event instanceof Event)) {
72
- throw new TypeError(`Failed to execute 'dispatchEvent'
73
- on 'EventTarget': parameter 1 is not of type 'Event'.`);
74
- }
75
- const { type } = event;
76
- const { __listeners } = this;
77
- const listenersForType = __listeners.get(type);
78
- if (listenersForType) {
79
- for (const [listener, options] of listenersForType.entries()) {
80
- try {
81
- if (typeof listener === 'function') {
82
- // Listener functions must be executed with the EventTarget as the `this` context.
83
- listener.call(this, event);
84
- }
85
- else if (listener && typeof listener.handleEvent === 'function') {
86
- // Listener objects have their handleEvent method called, if they have one
87
- listener.handleEvent(event);
88
- }
89
- }
90
- catch (err) {
91
- // We need to report the error to the global error handling event,
92
- // but we do not want to break the loop that is executing the events.
93
- // Unfortunately, this is the best we can do, which isn't great, because the
94
- // native EventTarget will actually do this synchronously before moving to the next
95
- // event in the loop.
96
- setTimeout(() => {
97
- throw err;
98
- });
99
- }
100
- if (options === null || options === void 0 ? void 0 : options.once) {
101
- // If this was registered with { once: true }, we need
102
- // to remove it now.
103
- listenersForType.delete(listener);
104
- }
105
- }
106
- }
107
- // Since there are no cancellable events on a base EventTarget,
108
- // this should always return true.
109
- return true;
110
- };
111
- return EventTarget;
112
- })();
113
- }
114
- //# sourceMappingURL=event-target-polyfill.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-target-polyfill.js","sourceRoot":"","sources":["../src/event-target-polyfill.ts"],"names":[],"mappings":"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"}
package/dist/events.d.ts DELETED
@@ -1 +0,0 @@
1
- //# sourceMappingURL=events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":""}
package/dist/events.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- export declare function adjustedBoundingRect(el: HTMLElement): DOMRect | {
2
- x: number;
3
- y: number;
4
- width: number;
5
- height: number;
6
- top: number;
7
- right: number;
8
- bottom: number;
9
- left: number;
10
- };
11
- //# sourceMappingURL=adjusted-bounding-rect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adjusted-bounding-rect.d.ts","sourceRoot":"","sources":["../../src/utils/adjusted-bounding-rect.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,WAAW;;;;;;;;;EA6CnD"}
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.adjustedBoundingRect = void 0;
4
- function adjustedBoundingRect(el) {
5
- const rect = el.getBoundingClientRect();
6
- const style = getComputedStyle(el);
7
- const tx = style.transform;
8
- if (tx) {
9
- let sx;
10
- let sy;
11
- let dx;
12
- let dy;
13
- if (tx.startsWith('matrix3d(')) {
14
- var ta = tx.slice(9, -1).split(/, /);
15
- sx = Number(ta[0]);
16
- sy = Number(ta[5]);
17
- dx = Number(ta[12]);
18
- dy = Number(ta[13]);
19
- }
20
- else if (tx.startsWith('matrix(')) {
21
- var ta = tx.slice(7, -1).split(/, /);
22
- sx = Number(ta[0]);
23
- sy = Number(ta[3]);
24
- dx = Number(ta[4]);
25
- dy = Number(ta[5]);
26
- }
27
- else {
28
- return rect;
29
- }
30
- const to = style.transformOrigin;
31
- const x = rect.x - dx - (1 - sx) * parseFloat(to);
32
- const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(' ') + 1));
33
- const w = sx ? rect.width / sx : el.offsetWidth;
34
- const h = sy ? rect.height / sy : el.offsetHeight;
35
- return {
36
- x,
37
- y,
38
- width: w,
39
- height: h,
40
- top: y,
41
- right: x + w,
42
- bottom: y + h,
43
- left: x,
44
- };
45
- }
46
- return rect;
47
- }
48
- exports.adjustedBoundingRect = adjustedBoundingRect;
49
- //# sourceMappingURL=adjusted-bounding-rect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adjusted-bounding-rect.js","sourceRoot":"","sources":["../../src/utils/adjusted-bounding-rect.ts"],"names":[],"mappings":";;;AAAA,SAAgB,oBAAoB,CAAC,EAAe;IACnD,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;IAE3B,IAAI,EAAE,EAAE;QACP,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAC/B,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACpB;aAAM,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;YACpC,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACnB;aAAM;YACN,OAAO,IAAI,CAAC;SACZ;QAED,MAAM,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,GACN,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC;QAChD,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC;QAClD,OAAO;YACN,CAAC;YACD,CAAC;YACD,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,KAAK,EAAE,CAAC,GAAG,CAAC;YACZ,MAAM,EAAE,CAAC,GAAG,CAAC;YACb,IAAI,EAAE,CAAC;SACP,CAAC;KACF;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AA7CD,oDA6CC"}
@@ -1,2 +0,0 @@
1
- export declare const useThrottle: <T>(value: T, interval?: number) => T;
2
- //# sourceMappingURL=use-throttle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-throttle.d.ts","sourceRoot":"","sources":["../../src/utils/use-throttle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,uCAmBvB,CAAC"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useThrottle = void 0;
4
- const react_1 = require("react");
5
- const useThrottle = (value, interval = 250) => {
6
- const [throttledValue, setThrottledValue] = react_1.useState(value);
7
- const lastExecuted = react_1.useRef(Date.now());
8
- react_1.useEffect(() => {
9
- if (Date.now() >= lastExecuted.current + interval) {
10
- lastExecuted.current = Date.now();
11
- setThrottledValue(value);
12
- }
13
- else {
14
- const timerId = setTimeout(() => {
15
- lastExecuted.current = Date.now();
16
- setThrottledValue(value);
17
- }, interval);
18
- return () => clearTimeout(timerId);
19
- }
20
- }, [value, interval]);
21
- return throttledValue;
22
- };
23
- exports.useThrottle = useThrottle;
24
- //# sourceMappingURL=use-throttle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-throttle.js","sourceRoot":"","sources":["../../src/utils/use-throttle.ts"],"names":[],"mappings":";;;AAAA,iCAAkD;AAE3C,MAAM,WAAW,GAAG,CAAI,KAAQ,EAAE,QAAQ,GAAG,GAAG,EAAK,EAAE;IAC7D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,gBAAQ,CAAI,KAAK,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,cAAM,CAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAEhD,iBAAS,CAAC,GAAG,EAAE;QACd,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,YAAY,CAAC,OAAO,GAAG,QAAQ,EAAE;YAClD,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAClC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACN,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC/B,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAClC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC,EAAE,QAAQ,CAAC,CAAC;YAEb,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;SACnC;IACF,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtB,OAAO,cAAc,CAAC;AACvB,CAAC,CAAC;AAnBW,QAAA,WAAW,eAmBtB"}