@cuemath/leap 2.8.55 → 2.8.56-hg1

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.
@@ -1,26 +1,26 @@
1
- import { jsxs as d, jsx as r } from "react/jsx-runtime";
2
- import { useState as f, useRef as h, useCallback as l } from "react";
1
+ import { jsxs as a, jsx as r } from "react/jsx-runtime";
2
+ import { useState as l, useRef as f, useCallback as h } from "react";
3
3
  import g from "../../../../assets/line-icons/icons/cross.js";
4
4
  import C from "../../../ui/text/text.js";
5
- import { GameTutorialWrapper as V, GameTutorialHeader as x, HeaderIconContainer as I, GameTutorialContainer as T, VideoContainer as $, VideoProgressWrapper as G, VideoProgressContainer as H, VideoProgress as P } from "./tutorial-styled.js";
5
+ import { GameTutorialWrapper as I, GameTutorialHeader as V, HeaderIconContainer as x, GameTutorialContainer as T, VideoContainer as $, VideoProgressWrapper as G, VideoProgressContainer as H, VideoProgress as P } from "./tutorial-styled.js";
6
6
  const E = ({
7
- src: a,
8
- title: o,
9
- onCross: t,
7
+ src: d,
8
+ title: t,
9
+ onCross: o,
10
10
  showProgress: m = !0,
11
11
  onTutorialPlayedOnce: e
12
12
  }) => {
13
- const [i, u] = f(0), s = h(!1), p = l(
13
+ const [i, u] = l(0), s = f(!1), p = h(
14
14
  (n) => {
15
15
  const c = (n.target.currentTime || 0) / (n.target.duration || 1) * 100;
16
16
  c >= 90 && !s.current && (s.current = !0, e == null || e()), u(c);
17
17
  },
18
18
  [e]
19
19
  );
20
- return /* @__PURE__ */ d(V, { children: [
21
- (o || t) && /* @__PURE__ */ d(x, { children: [
22
- o && /* @__PURE__ */ r(C, { $renderAs: "ac3", $color: "WHITE", $align: "center", children: o }),
23
- t && /* @__PURE__ */ r(I, { children: /* @__PURE__ */ r(g, { color: "#fff", onClick: t }) })
20
+ return /* @__PURE__ */ a(I, { children: [
21
+ (t || o) && /* @__PURE__ */ a(V, { children: [
22
+ t && /* @__PURE__ */ r(C, { $renderAs: "ac3", $color: "WHITE", $align: "center", children: t }),
23
+ o && /* @__PURE__ */ r(x, { children: /* @__PURE__ */ r(g, { color: "#fff", onClick: o }) })
24
24
  ] }),
25
25
  /* @__PURE__ */ r(T, { children: /* @__PURE__ */ r($, { children: /* @__PURE__ */ r(
26
26
  "video",
@@ -28,10 +28,11 @@ const E = ({
28
28
  loop: !0,
29
29
  autoPlay: !0,
30
30
  muted: !0,
31
- src: a,
31
+ src: d,
32
32
  onTimeUpdate: p,
33
33
  disablePictureInPicture: !0,
34
- itemType: "video/mp4"
34
+ itemType: "video/mp4",
35
+ playsInline: !0
35
36
  }
36
37
  ) }) }),
37
38
  m && /* @__PURE__ */ r(G, { children: /* @__PURE__ */ r(H, { children: i > 0 && /* @__PURE__ */ r(P, { $width: i }) }) })
@@ -1 +1 @@
1
- {"version":3,"file":"tutorial.js","sources":["../../../../../src/features/circle-games/games/tutorial/tutorial.tsx"],"sourcesContent":["import type { ITutorialProps } from './tutorial-types';\nimport type { ChangeEvent } from 'react';\n\nimport { useCallback, useRef, useState } from 'react';\n\nimport CrossIcon from '../../../../assets/line-icons/icons/cross';\nimport Text from '../../../ui/text/text';\nimport * as Styled from './tutorial-styled';\n\nexport const Tutorial = ({\n src,\n title,\n onCross,\n showProgress = true,\n onTutorialPlayedOnce,\n}: ITutorialProps) => {\n const [progress, setProgress] = useState(0);\n const hasVideoEnded = useRef(false);\n\n const onProgress = useCallback(\n (e: ChangeEvent<HTMLVideoElement>) => {\n const p = ((e.target.currentTime || 0) / (e.target.duration || 1)) * 100;\n\n if (p >= 90 && !hasVideoEnded.current) {\n hasVideoEnded.current = true;\n onTutorialPlayedOnce?.();\n }\n\n setProgress(p);\n },\n [onTutorialPlayedOnce],\n );\n\n return (\n <Styled.GameTutorialWrapper>\n {(title || onCross) && (\n <Styled.GameTutorialHeader>\n {title && (\n <Text $renderAs=\"ac3\" $color=\"WHITE\" $align=\"center\">\n {title}\n </Text>\n )}\n {onCross && (\n <Styled.HeaderIconContainer>\n <CrossIcon color=\"#fff\" onClick={onCross} />\n </Styled.HeaderIconContainer>\n )}\n </Styled.GameTutorialHeader>\n )}\n\n <Styled.GameTutorialContainer>\n <Styled.VideoContainer>\n <video\n loop={true}\n autoPlay={true}\n muted={true}\n src={src}\n onTimeUpdate={onProgress}\n disablePictureInPicture={true}\n itemType=\"video/mp4\"\n />\n </Styled.VideoContainer>\n </Styled.GameTutorialContainer>\n\n {showProgress && (\n <Styled.VideoProgressWrapper>\n <Styled.VideoProgressContainer>\n {progress > 0 && <Styled.VideoProgress $width={progress} />}\n </Styled.VideoProgressContainer>\n </Styled.VideoProgressWrapper>\n )}\n </Styled.GameTutorialWrapper>\n );\n};\n"],"names":["Tutorial","src","title","onCross","showProgress","onTutorialPlayedOnce","progress","setProgress","useState","hasVideoEnded","useRef","onProgress","useCallback","e","p","jsxs","Styled.GameTutorialWrapper","Styled.GameTutorialHeader","jsx","Text","Styled.HeaderIconContainer","CrossIcon","Styled.GameTutorialContainer","Styled.VideoContainer","Styled.VideoProgressWrapper","Styled.VideoProgressContainer","Styled.VideoProgress"],"mappings":";;;;;AASO,MAAMA,IAAW,CAAC;AAAA,EACvB,KAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,sBAAAC;AACF,MAAsB;AACpB,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,CAAC,GACpCC,IAAgBC,EAAO,EAAK,GAE5BC,IAAaC;AAAA,IACjB,CAACC,MAAqC;AAC9B,YAAAC,KAAMD,EAAE,OAAO,eAAe,MAAMA,EAAE,OAAO,YAAY,KAAM;AAErE,MAAIC,KAAK,MAAM,CAACL,EAAc,YAC5BA,EAAc,UAAU,IACDJ,KAAA,QAAAA,MAGzBE,EAAYO,CAAC;AAAA,IACf;AAAA,IACA,CAACT,CAAoB;AAAA,EAAA;AAIrB,SAAA,gBAAAU,EAACC,GAAA,EACG,UAAA;AAAA,KAAAd,KAASC,MACT,gBAAAY,EAACE,GAAA,EACE,UAAA;AAAA,MACCf,KAAA,gBAAAgB,EAACC,KAAK,WAAU,OAAM,QAAO,SAAQ,QAAO,UACzC,UACHjB,EAAA,CAAA;AAAA,MAEDC,KACE,gBAAAe,EAAAE,GAAA,EACC,UAAC,gBAAAF,EAAAG,GAAA,EAAU,OAAM,QAAO,SAASlB,EAAA,CAAS,EAC5C,CAAA;AAAA,IAAA,GAEJ;AAAA,sBAGDmB,GAAA,EACC,UAAC,gBAAAJ,EAAAK,GAAA,EACC,UAAA,gBAAAL;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,UAAU;AAAA,QACV,OAAO;AAAA,QACP,KAAAjB;AAAA,QACA,cAAcU;AAAA,QACd,yBAAyB;AAAA,QACzB,UAAS;AAAA,MAAA;AAAA,OAEb,EACF,CAAA;AAAA,IAECP,KACE,gBAAAc,EAAAM,GAAA,EACC,UAAA,gBAAAN,EAACO,GAAA,EACE,UAAWnB,IAAA,uBAAMoB,GAAA,EAAqB,QAAQpB,EAAU,CAAA,EAC3D,CAAA,GACF;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"tutorial.js","sources":["../../../../../src/features/circle-games/games/tutorial/tutorial.tsx"],"sourcesContent":["import type { ITutorialProps } from './tutorial-types';\nimport type { ChangeEvent } from 'react';\n\nimport { useCallback, useRef, useState } from 'react';\n\nimport CrossIcon from '../../../../assets/line-icons/icons/cross';\nimport Text from '../../../ui/text/text';\nimport * as Styled from './tutorial-styled';\n\nexport const Tutorial = ({\n src,\n title,\n onCross,\n showProgress = true,\n onTutorialPlayedOnce,\n}: ITutorialProps) => {\n const [progress, setProgress] = useState(0);\n const hasVideoEnded = useRef(false);\n\n const onProgress = useCallback(\n (e: ChangeEvent<HTMLVideoElement>) => {\n const p = ((e.target.currentTime || 0) / (e.target.duration || 1)) * 100;\n\n if (p >= 90 && !hasVideoEnded.current) {\n hasVideoEnded.current = true;\n onTutorialPlayedOnce?.();\n }\n\n setProgress(p);\n },\n [onTutorialPlayedOnce],\n );\n\n return (\n <Styled.GameTutorialWrapper>\n {(title || onCross) && (\n <Styled.GameTutorialHeader>\n {title && (\n <Text $renderAs=\"ac3\" $color=\"WHITE\" $align=\"center\">\n {title}\n </Text>\n )}\n {onCross && (\n <Styled.HeaderIconContainer>\n <CrossIcon color=\"#fff\" onClick={onCross} />\n </Styled.HeaderIconContainer>\n )}\n </Styled.GameTutorialHeader>\n )}\n\n <Styled.GameTutorialContainer>\n <Styled.VideoContainer>\n <video\n loop={true}\n autoPlay={true}\n muted={true}\n src={src}\n onTimeUpdate={onProgress}\n disablePictureInPicture={true}\n itemType=\"video/mp4\"\n playsInline\n />\n </Styled.VideoContainer>\n </Styled.GameTutorialContainer>\n\n {showProgress && (\n <Styled.VideoProgressWrapper>\n <Styled.VideoProgressContainer>\n {progress > 0 && <Styled.VideoProgress $width={progress} />}\n </Styled.VideoProgressContainer>\n </Styled.VideoProgressWrapper>\n )}\n </Styled.GameTutorialWrapper>\n );\n};\n"],"names":["Tutorial","src","title","onCross","showProgress","onTutorialPlayedOnce","progress","setProgress","useState","hasVideoEnded","useRef","onProgress","useCallback","e","p","jsxs","Styled.GameTutorialWrapper","Styled.GameTutorialHeader","jsx","Text","Styled.HeaderIconContainer","CrossIcon","Styled.GameTutorialContainer","Styled.VideoContainer","Styled.VideoProgressWrapper","Styled.VideoProgressContainer","Styled.VideoProgress"],"mappings":";;;;;AASO,MAAMA,IAAW,CAAC;AAAA,EACvB,KAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,sBAAAC;AACF,MAAsB;AACpB,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,CAAC,GACpCC,IAAgBC,EAAO,EAAK,GAE5BC,IAAaC;AAAA,IACjB,CAACC,MAAqC;AAC9B,YAAAC,KAAMD,EAAE,OAAO,eAAe,MAAMA,EAAE,OAAO,YAAY,KAAM;AAErE,MAAIC,KAAK,MAAM,CAACL,EAAc,YAC5BA,EAAc,UAAU,IACDJ,KAAA,QAAAA,MAGzBE,EAAYO,CAAC;AAAA,IACf;AAAA,IACA,CAACT,CAAoB;AAAA,EAAA;AAIrB,SAAA,gBAAAU,EAACC,GAAA,EACG,UAAA;AAAA,KAAAd,KAASC,MACT,gBAAAY,EAACE,GAAA,EACE,UAAA;AAAA,MACCf,KAAA,gBAAAgB,EAACC,KAAK,WAAU,OAAM,QAAO,SAAQ,QAAO,UACzC,UACHjB,EAAA,CAAA;AAAA,MAEDC,KACE,gBAAAe,EAAAE,GAAA,EACC,UAAC,gBAAAF,EAAAG,GAAA,EAAU,OAAM,QAAO,SAASlB,EAAA,CAAS,EAC5C,CAAA;AAAA,IAAA,GAEJ;AAAA,sBAGDmB,GAAA,EACC,UAAC,gBAAAJ,EAAAK,GAAA,EACC,UAAA,gBAAAL;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,UAAU;AAAA,QACV,OAAO;AAAA,QACP,KAAAjB;AAAA,QACA,cAAcU;AAAA,QACd,yBAAyB;AAAA,QACzB,UAAS;AAAA,QACT,aAAW;AAAA,MAAA;AAAA,OAEf,EACF,CAAA;AAAA,IAECP,KACE,gBAAAc,EAAAM,GAAA,EACC,UAAA,gBAAAN,EAACO,GAAA,EACE,UAAWnB,IAAA,uBAAMoB,GAAA,EAAqB,QAAQpB,EAAU,CAAA,EAC3D,CAAA,GACF;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
@@ -7,7 +7,7 @@ const v = E({
7
7
  canAutoPlayAudio: !1,
8
8
  canAutoPlayVideo: !1
9
9
  }), O = ({ children: u }) => {
10
- const [l, a] = s(!1), [A, c] = s(!1), { onEvent: t } = f();
10
+ const [l, a] = s(!1), [A, c] = s(!1), { onEvent: o } = f();
11
11
  return d(() => {
12
12
  const n = () => {
13
13
  a(!0), c(!0), r.forEach((e) => {
@@ -17,36 +17,36 @@ const v = E({
17
17
  r.forEach((e) => {
18
18
  document.addEventListener(e, n);
19
19
  });
20
- const o = (e) => {
21
- e instanceof DOMException ? e.name !== "NotAllowedError" && t(i.ERROR_LOADING_MEDIA, {
20
+ const t = (e) => {
21
+ e instanceof DOMException ? e.name !== "NotAllowedError" && o(i.ERROR_LOADING_MEDIA, {
22
22
  name: e.name
23
- }) : (console.log(e), t(i.ERROR_LOADING_MEDIA, {
23
+ }) : (console.log(e), o(i.ERROR_LOADING_MEDIA, {
24
24
  error: e
25
25
  }));
26
26
  };
27
27
  try {
28
28
  new Audio(y).play().then(() => {
29
29
  a(!0);
30
- }).catch(o);
30
+ }).catch(t);
31
31
  } catch (e) {
32
- o(e);
32
+ t(e);
33
33
  }
34
34
  try {
35
35
  const e = document.createElement("video");
36
- e.src = P, e.play().then(() => {
36
+ e.src = P, e.setAttribute("playsinline", "true"), e.play().then(() => {
37
37
  c(!0);
38
- }).catch(o).finally(() => {
38
+ }).catch(t).finally(() => {
39
39
  e.remove();
40
40
  });
41
41
  } catch (e) {
42
- o(e);
42
+ t(e);
43
43
  }
44
44
  return () => {
45
45
  r.forEach((e) => {
46
46
  document.removeEventListener(e, n);
47
47
  });
48
48
  };
49
- }, [t]), /* @__PURE__ */ m(v.Provider, { value: { canAutoPlayAudio: l, canAutoPlayVideo: A }, children: u });
49
+ }, [o]), /* @__PURE__ */ m(v.Provider, { value: { canAutoPlayAudio: l, canAutoPlayVideo: A }, children: u });
50
50
  };
51
51
  export {
52
52
  v as AutoPlayPermissionContext,
@@ -1 +1 @@
1
- {"version":3,"file":"use-auto-play-permission-context-provider.js","sources":["../../../../src/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.tsx"],"sourcesContent":["import type { IAutoPlayPermissionContextType } from './use-auto-play-permission-context-types';\nimport type { FC, ReactNode } from 'react';\n\nimport { useState, useEffect, createContext } from 'react';\n\nimport { useUIContext } from '../../ui/context/context';\nimport { EVENTS, SMALL_AUDIO, SMALL_VIDEO } from './constants';\nimport { USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS } from './use-auto-play-permission-analytics-events';\n\nexport const AutoPlayPermissionContext = createContext<IAutoPlayPermissionContextType>({\n canAutoPlayAudio: false,\n canAutoPlayVideo: false,\n});\n\nexport const AutoPlayPermissionProvider: FC<{ children: ReactNode }> = ({ children }) => {\n const [canAutoPlayAudio, setCanAutoPlayAudio] = useState(false);\n const [canAutoPlayVideo, setCanAutoPlayVideo] = useState(false);\n const { onEvent } = useUIContext();\n\n useEffect(() => {\n const enableAutoplay = () => {\n setCanAutoPlayAudio(true);\n setCanAutoPlayVideo(true);\n EVENTS.forEach(event => {\n document.removeEventListener(event, enableAutoplay);\n });\n };\n\n EVENTS.forEach(event => {\n document.addEventListener(event, enableAutoplay);\n });\n\n const handleError = (err: unknown) => {\n if (err instanceof DOMException) {\n err.name !== 'NotAllowedError' &&\n onEvent(USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS.ERROR_LOADING_MEDIA, {\n name: err.name,\n });\n } else {\n // eslint-disable-next-line no-console\n console.log(err);\n onEvent(USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS.ERROR_LOADING_MEDIA, {\n error: err,\n });\n }\n };\n\n // audio autoplay check\n // way to check if autoplay is allowed by the browser for audio\n try {\n new Audio(SMALL_AUDIO) // smallest silent audio file\n .play()\n .then(() => {\n setCanAutoPlayAudio(true);\n })\n .catch(handleError);\n } catch (err) {\n handleError(err);\n }\n\n // video autoplay check\n // way to check if autoplay is allowed by the browserfor video\n try {\n const video = document.createElement('video');\n\n video.src = SMALL_VIDEO; // smallest silent video file\n\n video\n .play()\n .then(() => {\n setCanAutoPlayVideo(true);\n })\n .catch(handleError)\n .finally(() => {\n video.remove();\n });\n } catch (err) {\n handleError(err);\n }\n\n return () => {\n EVENTS.forEach(event => {\n document.removeEventListener(event, enableAutoplay);\n });\n };\n }, [onEvent]);\n\n return (\n <AutoPlayPermissionContext.Provider value={{ canAutoPlayAudio, canAutoPlayVideo }}>\n {children}\n </AutoPlayPermissionContext.Provider>\n );\n};\n"],"names":["AutoPlayPermissionContext","createContext","AutoPlayPermissionProvider","children","canAutoPlayAudio","setCanAutoPlayAudio","useState","canAutoPlayVideo","setCanAutoPlayVideo","onEvent","useUIContext","useEffect","enableAutoplay","EVENTS","event","handleError","err","USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS","SMALL_AUDIO","video","SMALL_VIDEO","jsx"],"mappings":";;;;;AASO,MAAMA,IAA4BC,EAA8C;AAAA,EACrF,kBAAkB;AAAA,EAClB,kBAAkB;AACpB,CAAC,GAEYC,IAA0D,CAAC,EAAE,UAAAC,QAAe;AACvF,QAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAAS,EAAK,GACxD,CAACC,GAAkBC,CAAmB,IAAIF,EAAS,EAAK,GACxD,EAAE,SAAAG,MAAYC;AAEpB,SAAAC,EAAU,MAAM;AACd,UAAMC,IAAiB,MAAM;AAC3B,MAAAP,EAAoB,EAAI,GACxBG,EAAoB,EAAI,GACxBK,EAAO,QAAQ,CAASC,MAAA;AACb,iBAAA,oBAAoBA,GAAOF,CAAc;AAAA,MAAA,CACnD;AAAA,IAAA;AAGH,IAAAC,EAAO,QAAQ,CAASC,MAAA;AACb,eAAA,iBAAiBA,GAAOF,CAAc;AAAA,IAAA,CAChD;AAEK,UAAAG,IAAc,CAACC,MAAiB;AACpC,MAAIA,aAAe,eACjBA,EAAI,SAAS,qBACXP,EAAQQ,EAA0C,qBAAqB;AAAA,QACrE,MAAMD,EAAI;AAAA,MAAA,CACX,KAGH,QAAQ,IAAIA,CAAG,GACfP,EAAQQ,EAA0C,qBAAqB;AAAA,QACrE,OAAOD;AAAA,MAAA,CACR;AAAA,IACH;AAKE,QAAA;AACF,UAAI,MAAME,CAAW,EAClB,KAAK,EACL,KAAK,MAAM;AACV,QAAAb,EAAoB,EAAI;AAAA,MAAA,CACzB,EACA,MAAMU,CAAW;AAAA,aACbC,GAAK;AACZ,MAAAD,EAAYC,CAAG;AAAA,IACjB;AAII,QAAA;AACI,YAAAG,IAAQ,SAAS,cAAc,OAAO;AAE5C,MAAAA,EAAM,MAAMC,GAGTD,EAAA,OACA,KAAK,MAAM;AACV,QAAAX,EAAoB,EAAI;AAAA,MACzB,CAAA,EACA,MAAMO,CAAW,EACjB,QAAQ,MAAM;AACb,QAAAI,EAAM,OAAO;AAAA,MAAA,CACd;AAAA,aACIH,GAAK;AACZ,MAAAD,EAAYC,CAAG;AAAA,IACjB;AAEA,WAAO,MAAM;AACX,MAAAH,EAAO,QAAQ,CAASC,MAAA;AACb,iBAAA,oBAAoBA,GAAOF,CAAc;AAAA,MAAA,CACnD;AAAA,IAAA;AAAA,EACH,GACC,CAACH,CAAO,CAAC,GAGV,gBAAAY,EAACrB,EAA0B,UAA1B,EAAmC,OAAO,EAAE,kBAAAI,GAAkB,kBAAAG,EAAiB,GAC7E,UAAAJ,EACH,CAAA;AAEJ;"}
1
+ {"version":3,"file":"use-auto-play-permission-context-provider.js","sources":["../../../../src/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.tsx"],"sourcesContent":["import type { IAutoPlayPermissionContextType } from './use-auto-play-permission-context-types';\nimport type { FC, ReactNode } from 'react';\n\nimport { useState, useEffect, createContext } from 'react';\n\nimport { useUIContext } from '../../ui/context/context';\nimport { EVENTS, SMALL_AUDIO, SMALL_VIDEO } from './constants';\nimport { USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS } from './use-auto-play-permission-analytics-events';\n\nexport const AutoPlayPermissionContext = createContext<IAutoPlayPermissionContextType>({\n canAutoPlayAudio: false,\n canAutoPlayVideo: false,\n});\n\nexport const AutoPlayPermissionProvider: FC<{ children: ReactNode }> = ({ children }) => {\n const [canAutoPlayAudio, setCanAutoPlayAudio] = useState(false);\n const [canAutoPlayVideo, setCanAutoPlayVideo] = useState(false);\n const { onEvent } = useUIContext();\n\n useEffect(() => {\n const enableAutoplay = () => {\n setCanAutoPlayAudio(true);\n setCanAutoPlayVideo(true);\n EVENTS.forEach(event => {\n document.removeEventListener(event, enableAutoplay);\n });\n };\n\n EVENTS.forEach(event => {\n document.addEventListener(event, enableAutoplay);\n });\n\n const handleError = (err: unknown) => {\n if (err instanceof DOMException) {\n err.name !== 'NotAllowedError' &&\n onEvent(USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS.ERROR_LOADING_MEDIA, {\n name: err.name,\n });\n } else {\n // eslint-disable-next-line no-console\n console.log(err);\n onEvent(USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS.ERROR_LOADING_MEDIA, {\n error: err,\n });\n }\n };\n\n // audio autoplay check\n // way to check if autoplay is allowed by the browser for audio\n try {\n new Audio(SMALL_AUDIO) // smallest silent audio file\n .play()\n .then(() => {\n setCanAutoPlayAudio(true);\n })\n .catch(handleError);\n } catch (err) {\n handleError(err);\n }\n\n // video autoplay check\n // way to check if autoplay is allowed by the browserfor video\n try {\n const video = document.createElement('video');\n\n video.src = SMALL_VIDEO; // smallest silent video file\n video.setAttribute('playsinline', 'true');\n\n video\n .play()\n .then(() => {\n setCanAutoPlayVideo(true);\n })\n .catch(handleError)\n .finally(() => {\n video.remove();\n });\n } catch (err) {\n handleError(err);\n }\n\n return () => {\n EVENTS.forEach(event => {\n document.removeEventListener(event, enableAutoplay);\n });\n };\n }, [onEvent]);\n\n return (\n <AutoPlayPermissionContext.Provider value={{ canAutoPlayAudio, canAutoPlayVideo }}>\n {children}\n </AutoPlayPermissionContext.Provider>\n );\n};\n"],"names":["AutoPlayPermissionContext","createContext","AutoPlayPermissionProvider","children","canAutoPlayAudio","setCanAutoPlayAudio","useState","canAutoPlayVideo","setCanAutoPlayVideo","onEvent","useUIContext","useEffect","enableAutoplay","EVENTS","event","handleError","err","USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS","SMALL_AUDIO","video","SMALL_VIDEO","jsx"],"mappings":";;;;;AASO,MAAMA,IAA4BC,EAA8C;AAAA,EACrF,kBAAkB;AAAA,EAClB,kBAAkB;AACpB,CAAC,GAEYC,IAA0D,CAAC,EAAE,UAAAC,QAAe;AACvF,QAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAAS,EAAK,GACxD,CAACC,GAAkBC,CAAmB,IAAIF,EAAS,EAAK,GACxD,EAAE,SAAAG,MAAYC;AAEpB,SAAAC,EAAU,MAAM;AACd,UAAMC,IAAiB,MAAM;AAC3B,MAAAP,EAAoB,EAAI,GACxBG,EAAoB,EAAI,GACxBK,EAAO,QAAQ,CAASC,MAAA;AACb,iBAAA,oBAAoBA,GAAOF,CAAc;AAAA,MAAA,CACnD;AAAA,IAAA;AAGH,IAAAC,EAAO,QAAQ,CAASC,MAAA;AACb,eAAA,iBAAiBA,GAAOF,CAAc;AAAA,IAAA,CAChD;AAEK,UAAAG,IAAc,CAACC,MAAiB;AACpC,MAAIA,aAAe,eACjBA,EAAI,SAAS,qBACXP,EAAQQ,EAA0C,qBAAqB;AAAA,QACrE,MAAMD,EAAI;AAAA,MAAA,CACX,KAGH,QAAQ,IAAIA,CAAG,GACfP,EAAQQ,EAA0C,qBAAqB;AAAA,QACrE,OAAOD;AAAA,MAAA,CACR;AAAA,IACH;AAKE,QAAA;AACF,UAAI,MAAME,CAAW,EAClB,KAAK,EACL,KAAK,MAAM;AACV,QAAAb,EAAoB,EAAI;AAAA,MAAA,CACzB,EACA,MAAMU,CAAW;AAAA,aACbC,GAAK;AACZ,MAAAD,EAAYC,CAAG;AAAA,IACjB;AAII,QAAA;AACI,YAAAG,IAAQ,SAAS,cAAc,OAAO;AAE5C,MAAAA,EAAM,MAAMC,GACND,EAAA,aAAa,eAAe,MAAM,GAGrCA,EAAA,OACA,KAAK,MAAM;AACV,QAAAX,EAAoB,EAAI;AAAA,MACzB,CAAA,EACA,MAAMO,CAAW,EACjB,QAAQ,MAAM;AACb,QAAAI,EAAM,OAAO;AAAA,MAAA,CACd;AAAA,aACIH,GAAK;AACZ,MAAAD,EAAYC,CAAG;AAAA,IACjB;AAEA,WAAO,MAAM;AACX,MAAAH,EAAO,QAAQ,CAASC,MAAA;AACb,iBAAA,oBAAoBA,GAAOF,CAAc;AAAA,MAAA,CACnD;AAAA,IAAA;AAAA,EACH,GACC,CAACH,CAAO,CAAC,GAGV,gBAAAY,EAACrB,EAA0B,UAA1B,EAAmC,OAAO,EAAE,kBAAAI,GAAkB,kBAAAG,EAAiB,GAC7E,UAAAJ,EACH,CAAA;AAEJ;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "2.8.55",
3
+ "version": "2.8.56-hg1",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"