@cuemath/leap 2.8.62 → 2.8.63-akm

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,88 +1,103 @@
1
- import { useCallback as a } from "react";
2
- import { CircleSoundKeyMapper as A, SWIPE_SOUND_ORDER as i } from "./constants.js";
3
- import { CircleSoundKey as l } from "./use-circle-sounds-enums.js";
4
- let C = 0;
5
- const r = {
6
- [l.BACKGROUND]: null,
7
- [l.BACKGROUND_RUSHHOUR]: null,
8
- [l.TUTORIAL]: null,
9
- [l.SWIPE_01]: null,
10
- [l.SWIPE_02]: null,
11
- [l.SWIPE_03]: null,
12
- [l.SWIPE_04]: null,
13
- [l.SWIPE_DOWN]: null,
14
- [l.TOGGLE]: null,
15
- [l.POINTS_AWARDED]: null,
16
- [l.POINTS_ADDED]: null,
17
- [l.GAME_CARD_CLICK]: null,
18
- [l.CLOCK_IN]: null,
19
- [l.CLOCK_OUT]: null,
20
- [l.ACCURACY_IN]: null,
21
- [l.ACCURACY_OUT]: null,
22
- [l.STREAK_IN]: null,
23
- [l.STREAK_OUT]: null,
24
- [l.ACCURACY_INTRO]: null,
25
- [l.ACCURACY_TARGET]: null,
26
- [l.TIME_INTRO]: null,
27
- [l.TIME_TARGET]: null,
28
- [l.METER_FILL]: null
29
- }, I = {}, O = () => {
30
- const e = a((n) => {
31
- if (!r[n]) {
32
- const t = new Audio(A[n]);
33
- r[n] = t;
1
+ import { useCallback as r, useRef as _, useEffect as R } from "react";
2
+ import { CircleSoundKeyMapper as m, SWIPE_SOUND_ORDER as I } from "./constants.js";
3
+ import { CircleSoundKey as n } from "./use-circle-sounds-enums.js";
4
+ let a = 0;
5
+ const u = {
6
+ [n.BACKGROUND]: null,
7
+ [n.BACKGROUND_RUSHHOUR]: null,
8
+ [n.TUTORIAL]: null,
9
+ [n.SWIPE_01]: null,
10
+ [n.SWIPE_02]: null,
11
+ [n.SWIPE_03]: null,
12
+ [n.SWIPE_04]: null,
13
+ [n.SWIPE_DOWN]: null,
14
+ [n.TOGGLE]: null,
15
+ [n.POINTS_AWARDED]: null,
16
+ [n.POINTS_ADDED]: null,
17
+ [n.GAME_CARD_CLICK]: null,
18
+ [n.CLOCK_IN]: null,
19
+ [n.CLOCK_OUT]: null,
20
+ [n.ACCURACY_IN]: null,
21
+ [n.ACCURACY_OUT]: null,
22
+ [n.STREAK_IN]: null,
23
+ [n.STREAK_OUT]: null,
24
+ [n.ACCURACY_INTRO]: null,
25
+ [n.ACCURACY_TARGET]: null,
26
+ [n.TIME_INTRO]: null,
27
+ [n.TIME_TARGET]: null,
28
+ [n.METER_FILL]: null
29
+ }, d = {}, U = () => {
30
+ const s = r((e) => {
31
+ if (!u[e]) {
32
+ const t = new Audio(m[e]);
33
+ t.preload = "auto", u[e] = t;
34
34
  }
35
- }, []), p = a(() => {
35
+ }, []), p = _(/* @__PURE__ */ new Set());
36
+ R(() => {
37
+ const e = () => {
38
+ document.visibilityState === "hidden" ? Object.keys(u).forEach((t) => {
39
+ const l = u[t];
40
+ l && !l.paused && (l.pause(), p.current.add(t));
41
+ }) : document.visibilityState === "visible" && (p.current.forEach((t) => {
42
+ const l = u[t];
43
+ l == null || l.play();
44
+ }), p.current.clear());
45
+ };
46
+ return document.addEventListener("visibilitychange", e), () => {
47
+ document.removeEventListener("visibilitychange", e);
48
+ };
49
+ }, []);
50
+ const C = r(() => {
36
51
  var t;
37
- i.forEach((o) => {
38
- e(o);
52
+ I.forEach((l) => {
53
+ s(l);
39
54
  });
40
- const n = i[C] || l.SWIPE_01;
41
- C < i.length - 1 ? C++ : C = 0, (t = r[n]) == null || t.play();
42
- }, [e]), _ = a(() => {
55
+ const e = I[a] || n.SWIPE_01;
56
+ a < I.length - 1 ? a++ : a = 0, (t = u[e]) == null || t.play();
57
+ }, [s]), S = r(() => {
43
58
  var t;
44
- return e(l.TOGGLE), (t = r[l.TOGGLE]) == null ? void 0 : t.play();
45
- }, [e]), E = a(
46
- (n, t = !0, o = !1) => {
47
- e(n);
48
- const u = r[n];
49
- if (!u) return;
50
- if (u.loop = o, t) {
51
- u.volume = 1;
52
- const s = u.play();
53
- I[n] = s;
59
+ return s(n.TOGGLE), (t = u[n.TOGGLE]) == null ? void 0 : t.play();
60
+ }, [s]), f = r(
61
+ (e, t = !0, l = !1) => {
62
+ s(e);
63
+ const o = u[e];
64
+ if (!o) return;
65
+ if (o.loop = l, t) {
66
+ o.volume = 1;
67
+ const c = o.play();
68
+ d[e] = c;
54
69
  return;
55
70
  }
56
- u.volume = 0;
57
- const c = u.play();
58
- return I[n] = c, setInterval(() => {
59
- if (!u) return;
60
- const s = 0;
61
- u.volume = s + 0.1;
62
- }, 100), u;
71
+ o.volume = 0;
72
+ const E = o.play();
73
+ d[e] = E;
74
+ const i = setInterval(() => {
75
+ if (!o) return;
76
+ const c = o.volume || 0;
77
+ c < 1 ? o.volume = c + 0.1 : clearInterval(i);
78
+ }, 100);
79
+ return o;
63
80
  },
64
- [e]
65
- ), S = a((n, t = !0) => {
66
- var u;
67
- const o = r[n];
68
- I[n] !== void 0 && ((u = I[n]) == null || u.then(() => {
81
+ [s]
82
+ ), v = r((e, t = !0) => {
83
+ var o;
84
+ const l = u[e];
85
+ d[e] !== void 0 && ((o = d[e]) == null || o.then(() => {
69
86
  if (t) {
70
- o == null || o.pause();
87
+ l == null || l.pause();
71
88
  return;
72
89
  }
73
- const c = setInterval(() => {
74
- if (!o) return;
75
- const s = o.volume || 0;
76
- s - 0.1 <= 0 ? (o.volume = 0, o.pause(), clearInterval(c)) : o.volume = s - 0.1;
90
+ const E = setInterval(() => {
91
+ if (!l) return;
92
+ const i = l.volume || 0;
93
+ i - 0.1 <= 0 ? (l.volume = 0, l.pause(), clearInterval(E)) : l.volume = i - 0.1;
77
94
  }, 100);
78
- }).catch((c) => {
79
- console.log("sound not playing", c);
80
95
  }));
81
96
  }, []);
82
- return { playSwipSound: p, play: E, stop: S, playButtonSound: _ };
97
+ return { playSwipSound: C, play: f, stop: v, playButtonSound: S };
83
98
  };
84
99
  export {
85
- r as soundMapper,
86
- O as useCircleSounds
100
+ u as soundMapper,
101
+ U as useCircleSounds
87
102
  };
88
103
  //# sourceMappingURL=use-circle-sounds.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-circle-sounds.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { CircleSoundKeyMapper, SWIPE_SOUND_ORDER } from './constants';\nimport { CircleSoundKey } from './use-circle-sounds-enums';\n\nlet swipeSoundIndex = 0;\n\nexport const soundMapper: Record<keyof typeof CircleSoundKeyMapper, null | HTMLAudioElement> = {\n [CircleSoundKey.BACKGROUND]: null,\n [CircleSoundKey.BACKGROUND_RUSHHOUR]: null,\n [CircleSoundKey.TUTORIAL]: null,\n [CircleSoundKey.SWIPE_01]: null,\n [CircleSoundKey.SWIPE_02]: null,\n [CircleSoundKey.SWIPE_03]: null,\n [CircleSoundKey.SWIPE_04]: null,\n [CircleSoundKey.SWIPE_DOWN]: null,\n [CircleSoundKey.TOGGLE]: null,\n [CircleSoundKey.POINTS_AWARDED]: null,\n [CircleSoundKey.POINTS_ADDED]: null,\n [CircleSoundKey.GAME_CARD_CLICK]: null,\n [CircleSoundKey.CLOCK_IN]: null,\n [CircleSoundKey.CLOCK_OUT]: null,\n [CircleSoundKey.ACCURACY_IN]: null,\n [CircleSoundKey.ACCURACY_OUT]: null,\n [CircleSoundKey.STREAK_IN]: null,\n [CircleSoundKey.STREAK_OUT]: null,\n [CircleSoundKey.ACCURACY_INTRO]: null,\n [CircleSoundKey.ACCURACY_TARGET]: null,\n [CircleSoundKey.TIME_INTRO]: null,\n [CircleSoundKey.TIME_TARGET]: null,\n [CircleSoundKey.METER_FILL]: null,\n};\n\nconst soundInstancePromise: Partial<Record<keyof typeof CircleSoundKeyMapper, Promise<void>>> = {};\n\nexport const useCircleSounds = () => {\n const loadSound = useCallback((key: CircleSoundKey) => {\n if (!soundMapper[key]) {\n const loadedSound = new Audio(CircleSoundKeyMapper[key]);\n\n soundMapper[key] = loadedSound;\n }\n }, []);\n\n const playSwipSound = useCallback(() => {\n SWIPE_SOUND_ORDER.forEach(key => {\n loadSound(key);\n });\n\n const key = SWIPE_SOUND_ORDER[swipeSoundIndex] || CircleSoundKey.SWIPE_01;\n\n if (swipeSoundIndex < SWIPE_SOUND_ORDER.length - 1) {\n swipeSoundIndex++;\n } else {\n swipeSoundIndex = 0;\n }\n soundMapper[key]?.play();\n }, [loadSound]);\n\n const playButtonSound = useCallback(() => {\n loadSound(CircleSoundKey.TOGGLE);\n const sound = soundMapper[CircleSoundKey.TOGGLE]?.play();\n\n return sound;\n }, [loadSound]);\n\n const play = useCallback(\n (key: CircleSoundKey, immediately: boolean = true, loop = false) => {\n loadSound(key);\n const soundInstance = soundMapper[key];\n\n if (!soundInstance) return;\n\n soundInstance.loop = loop;\n if (immediately) {\n soundInstance.volume = 1;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n return;\n }\n\n soundInstance.volume = 0;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = 0;\n\n if (vol < 1) {\n soundInstance.volume = vol + 0.1;\n } else {\n clearInterval(intervalId);\n }\n }, 100);\n\n return soundInstance;\n },\n [loadSound],\n );\n\n const stop = useCallback((key: CircleSoundKey, immediately: boolean = true) => {\n const soundInstance = soundMapper[key];\n\n // check if the sound is playing as the play() return a promise\n if (soundInstancePromise[key] !== undefined) {\n soundInstancePromise[key]\n ?.then(() => {\n if (immediately) {\n soundInstance?.pause();\n\n return;\n }\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = soundInstance.volume || 0;\n\n if (vol - 0.1 <= 0) {\n soundInstance.volume = 0;\n soundInstance.pause();\n clearInterval(intervalId);\n } else {\n soundInstance.volume = vol - 0.1;\n }\n }, 100);\n })\n .catch(err => {\n // eslint-disable-next-line no-console\n console.log('sound not playing', err);\n });\n }\n }, []);\n\n return { playSwipSound, play, stop, playButtonSound };\n};\n"],"names":["swipeSoundIndex","soundMapper","CircleSoundKey","soundInstancePromise","useCircleSounds","loadSound","useCallback","key","loadedSound","CircleSoundKeyMapper","playSwipSound","SWIPE_SOUND_ORDER","_a","playButtonSound","play","immediately","loop","soundInstance","promise","vol","stop","intervalId","err"],"mappings":";;;AAKA,IAAIA,IAAkB;AAEf,MAAMC,IAAkF;AAAA,EAC7F,CAACC,EAAe,UAAU,GAAG;AAAA,EAC7B,CAACA,EAAe,mBAAmB,GAAG;AAAA,EACtC,CAACA,EAAe,QAAQ,GAAG;AAAA,EAC3B,CAACA,EAAe,QAAQ,GAAG;AAAA,EAC3B,CAACA,EAAe,QAAQ,GAAG;AAAA,EAC3B,CAACA,EAAe,QAAQ,GAAG;AAAA,EAC3B,CAACA,EAAe,QAAQ,GAAG;AAAA,EAC3B,CAACA,EAAe,UAAU,GAAG;AAAA,EAC7B,CAACA,EAAe,MAAM,GAAG;AAAA,EACzB,CAACA,EAAe,cAAc,GAAG;AAAA,EACjC,CAACA,EAAe,YAAY,GAAG;AAAA,EAC/B,CAACA,EAAe,eAAe,GAAG;AAAA,EAClC,CAACA,EAAe,QAAQ,GAAG;AAAA,EAC3B,CAACA,EAAe,SAAS,GAAG;AAAA,EAC5B,CAACA,EAAe,WAAW,GAAG;AAAA,EAC9B,CAACA,EAAe,YAAY,GAAG;AAAA,EAC/B,CAACA,EAAe,SAAS,GAAG;AAAA,EAC5B,CAACA,EAAe,UAAU,GAAG;AAAA,EAC7B,CAACA,EAAe,cAAc,GAAG;AAAA,EACjC,CAACA,EAAe,eAAe,GAAG;AAAA,EAClC,CAACA,EAAe,UAAU,GAAG;AAAA,EAC7B,CAACA,EAAe,WAAW,GAAG;AAAA,EAC9B,CAACA,EAAe,UAAU,GAAG;AAC/B,GAEMC,IAA0F,CAAA,GAEnFC,IAAkB,MAAM;AAC7B,QAAAC,IAAYC,EAAY,CAACC,MAAwB;AACjD,QAAA,CAACN,EAAYM,CAAG,GAAG;AACrB,YAAMC,IAAc,IAAI,MAAMC,EAAqBF,CAAG,CAAC;AAEvD,MAAAN,EAAYM,CAAG,IAAIC;AAAA,IACrB;AAAA,EACF,GAAG,CAAE,CAAA,GAECE,IAAgBJ,EAAY,MAAM;;AACpB,IAAAK,EAAA,QAAQ,CAAAJ,MAAO;AAC/B,MAAAF,EAAUE,CAAG;AAAA,IAAA,CACd;AAED,UAAMA,IAAMI,EAAkBX,CAAe,KAAKE,EAAe;AAE7D,IAAAF,IAAkBW,EAAkB,SAAS,IAC/CX,MAEkBA,IAAA,IAERY,IAAAX,EAAAM,CAAG,MAAH,QAAAK,EAAM;AAAA,EAAK,GACtB,CAACP,CAAS,CAAC,GAERQ,IAAkBP,EAAY,MAAM;;AACxC,WAAAD,EAAUH,EAAe,MAAM,IACjBU,IAAAX,EAAYC,EAAe,MAAM,MAAjC,gBAAAU,EAAoC;AAAA,EAE3C,GACN,CAACP,CAAS,CAAC,GAERS,IAAOR;AAAA,IACX,CAACC,GAAqBQ,IAAuB,IAAMC,IAAO,OAAU;AAClE,MAAAX,EAAUE,CAAG;AACP,YAAAU,IAAgBhB,EAAYM,CAAG;AAErC,UAAI,CAACU,EAAe;AAGpB,UADAA,EAAc,OAAOD,GACjBD,GAAa;AACf,QAAAE,EAAc,SAAS;AACjBC,cAAAA,IAAUD,EAAc;AAE9B,QAAAd,EAAqBI,CAAG,IAAIW;AAE5B;AAAA,MACF;AAEA,MAAAD,EAAc,SAAS;AACjB,YAAAC,IAAUD,EAAc;AAE9B,aAAAd,EAAqBI,CAAG,IAAIW,GAET,YAAY,MAAM;AACnC,YAAI,CAACD,EAAe;AAEpB,cAAME,IAAM;AAGV,QAAAF,EAAc,SAASE,IAAM;AAAA,SAI9B,GAAG,GAECF;AAAA,IACT;AAAA,IACA,CAACZ,CAAS;AAAA,EAAA,GAGNe,IAAOd,EAAY,CAACC,GAAqBQ,IAAuB,OAAS;;AACvE,UAAAE,IAAgBhB,EAAYM,CAAG;AAGjC,IAAAJ,EAAqBI,CAAG,MAAM,YACXK,IAAAT,EAAAI,CAAG,MAAH,QAAAK,EACjB,KAAK,MAAM;AACX,UAAIG,GAAa;AACf,QAAAE,KAAA,QAAAA,EAAe;AAEf;AAAA,MACF;AAEM,YAAAI,IAAa,YAAY,MAAM;AACnC,YAAI,CAACJ,EAAe;AAEd,cAAAE,IAAMF,EAAc,UAAU;AAEhC,QAAAE,IAAM,OAAO,KACfF,EAAc,SAAS,GACvBA,EAAc,MAAM,GACpB,cAAcI,CAAU,KAExBJ,EAAc,SAASE,IAAM;AAAA,SAE9B,GAAG;AAAA,IAAA,GAEP,MAAM,CAAOG,MAAA;AAEJ,cAAA,IAAI,qBAAqBA,CAAG;AAAA,IAAA;AAAA,EAG5C,GAAG,CAAE,CAAA;AAEL,SAAO,EAAE,eAAAZ,GAAe,MAAAI,GAAM,MAAAM,GAAM,iBAAAP,EAAgB;AACtD;"}
1
+ {"version":3,"file":"use-circle-sounds.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nimport { CircleSoundKeyMapper, SWIPE_SOUND_ORDER } from './constants';\nimport { CircleSoundKey } from './use-circle-sounds-enums';\n\nlet swipeSoundIndex = 0;\n\nexport const soundMapper: Record<keyof typeof CircleSoundKeyMapper, null | HTMLAudioElement> = {\n [CircleSoundKey.BACKGROUND]: null,\n [CircleSoundKey.BACKGROUND_RUSHHOUR]: null,\n [CircleSoundKey.TUTORIAL]: null,\n [CircleSoundKey.SWIPE_01]: null,\n [CircleSoundKey.SWIPE_02]: null,\n [CircleSoundKey.SWIPE_03]: null,\n [CircleSoundKey.SWIPE_04]: null,\n [CircleSoundKey.SWIPE_DOWN]: null,\n [CircleSoundKey.TOGGLE]: null,\n [CircleSoundKey.POINTS_AWARDED]: null,\n [CircleSoundKey.POINTS_ADDED]: null,\n [CircleSoundKey.GAME_CARD_CLICK]: null,\n [CircleSoundKey.CLOCK_IN]: null,\n [CircleSoundKey.CLOCK_OUT]: null,\n [CircleSoundKey.ACCURACY_IN]: null,\n [CircleSoundKey.ACCURACY_OUT]: null,\n [CircleSoundKey.STREAK_IN]: null,\n [CircleSoundKey.STREAK_OUT]: null,\n [CircleSoundKey.ACCURACY_INTRO]: null,\n [CircleSoundKey.ACCURACY_TARGET]: null,\n [CircleSoundKey.TIME_INTRO]: null,\n [CircleSoundKey.TIME_TARGET]: null,\n [CircleSoundKey.METER_FILL]: null,\n};\n\nconst soundInstancePromise: Partial<Record<keyof typeof CircleSoundKeyMapper, Promise<void>>> = {};\n\nexport const useCircleSounds = () => {\n const loadSound = useCallback((key: CircleSoundKey) => {\n if (!soundMapper[key]) {\n const loadedSound = new Audio(CircleSoundKeyMapper[key]);\n\n loadedSound.preload = 'auto';\n soundMapper[key] = loadedSound;\n }\n }, []);\n\n const pausedSoundsRef = useRef<Set<CircleSoundKey>>(new Set());\n\n useEffect(() => {\n const handleVisibilityChange = () => {\n if (document.visibilityState === 'hidden') {\n // Pause all playing sounds and track them\n (Object.keys(soundMapper) as CircleSoundKey[]).forEach(key => {\n const sound = soundMapper[key];\n\n if (sound && !sound.paused) {\n sound.pause();\n pausedSoundsRef.current.add(key);\n }\n });\n } else if (document.visibilityState === 'visible') {\n // Resume only previously paused sounds\n pausedSoundsRef.current.forEach(key => {\n const sound = soundMapper[key];\n\n sound?.play();\n });\n pausedSoundsRef.current.clear();\n }\n };\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n };\n }, []);\n\n const playSwipSound = useCallback(() => {\n SWIPE_SOUND_ORDER.forEach(key => {\n loadSound(key);\n });\n\n const key = SWIPE_SOUND_ORDER[swipeSoundIndex] || CircleSoundKey.SWIPE_01;\n\n if (swipeSoundIndex < SWIPE_SOUND_ORDER.length - 1) {\n swipeSoundIndex++;\n } else {\n swipeSoundIndex = 0;\n }\n soundMapper[key]?.play();\n }, [loadSound]);\n\n const playButtonSound = useCallback(() => {\n loadSound(CircleSoundKey.TOGGLE);\n const sound = soundMapper[CircleSoundKey.TOGGLE]?.play();\n\n return sound;\n }, [loadSound]);\n\n const play = useCallback(\n (key: CircleSoundKey, immediately: boolean = true, loop = false) => {\n loadSound(key);\n const soundInstance = soundMapper[key];\n\n if (!soundInstance) return;\n\n soundInstance.loop = loop;\n if (immediately) {\n soundInstance.volume = 1;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n return;\n }\n\n soundInstance.volume = 0;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = soundInstance.volume || 0;\n\n if (vol < 1) {\n soundInstance.volume = vol + 0.1;\n } else {\n clearInterval(intervalId);\n }\n }, 100);\n\n return soundInstance;\n },\n [loadSound],\n );\n\n const stop = useCallback((key: CircleSoundKey, immediately: boolean = true) => {\n const soundInstance = soundMapper[key];\n\n if (soundInstancePromise[key] !== undefined) {\n soundInstancePromise[key]?.then(() => {\n if (immediately) {\n soundInstance?.pause();\n\n return;\n }\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = soundInstance.volume || 0;\n\n if (vol - 0.1 <= 0) {\n soundInstance.volume = 0;\n soundInstance.pause();\n clearInterval(intervalId);\n } else {\n soundInstance.volume = vol - 0.1;\n }\n }, 100);\n });\n }\n }, []);\n\n return { playSwipSound, play, stop, playButtonSound };\n};\n"],"names":["swipeSoundIndex","soundMapper","CircleSoundKey","soundInstancePromise","useCircleSounds","loadSound","useCallback","key","loadedSound","CircleSoundKeyMapper","pausedSoundsRef","useRef","useEffect","handleVisibilityChange","sound","playSwipSound","SWIPE_SOUND_ORDER","_a","playButtonSound","play","immediately","loop","soundInstance","promise","intervalId","vol","stop"],"mappings":"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"}
@@ -1,16 +1,16 @@
1
- import { jsx as t, Fragment as p, jsxs as $ } from "react/jsx-runtime";
2
- import { memo as f, Fragment as c } from "react";
3
- import h from "../layout/flex-view.js";
4
- const u = (m) => {
5
- const { data: i, renderSectionHeader: n, renderItem: s, keyExtractor: o } = m;
6
- return /* @__PURE__ */ t(p, { children: i.map((r, d) => /* @__PURE__ */ $(h, { children: [
7
- n && n(r),
8
- /* @__PURE__ */ t(c, { children: r.data.map((e, a) => {
9
- const l = o ? o(e, a) : `${e}_${a}`;
10
- return /* @__PURE__ */ t(c, { children: s(e) }, l);
1
+ import { jsx as t, Fragment as p, jsxs as h } from "react/jsx-runtime";
2
+ import { memo as $, Fragment as m } from "react";
3
+ import f from "../layout/flex-view.js";
4
+ const g = (i) => {
5
+ const { data: n, renderSectionHeader: o, renderItem: s, keyExtractor: a } = i;
6
+ return /* @__PURE__ */ t(p, { children: n.map((e, d) => /* @__PURE__ */ h(f, { children: [
7
+ n.length > 1 && o && o(e),
8
+ /* @__PURE__ */ t(m, { children: e.data.map((r, c) => {
9
+ const l = a ? a(r, c) : `${r}_${c}`;
10
+ return /* @__PURE__ */ t(m, { children: s(r) }, l);
11
11
  }) })
12
- ] }, `${r.title}_${d}`)) });
13
- }, x = f(u), L = x;
12
+ ] }, `${e.title}_${d}`)) });
13
+ }, u = $(g), L = u;
14
14
  export {
15
15
  L as default
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"section-list.js","sources":["../../../../src/features/ui/section-list/section-list.tsx"],"sourcesContent":["import type { ISectionList, TDefaultSection } from './section-list-types';\n\nimport { Fragment, memo } from 'react';\n\nimport FlexView from '../layout/flex-view';\n\nconst SectionListComponent = <Section extends string | number | TDefaultSection>(\n props: ISectionList<Section>,\n): JSX.Element => {\n const { data, renderSectionHeader, renderItem, keyExtractor } = props;\n\n return (\n <>\n {data.map((section, idx) => {\n return (\n <FlexView key={`${section.title}_${idx}`}>\n {renderSectionHeader && renderSectionHeader(section)}\n\n <Fragment>\n {section.data.map((item, itemIdx) => {\n const key = keyExtractor ? keyExtractor(item, itemIdx) : `${item}_${itemIdx}`;\n\n return <Fragment key={key}>{renderItem(item)}</Fragment>;\n })}\n </Fragment>\n </FlexView>\n );\n })}\n </>\n );\n};\n\nconst SelectionList = memo(SectionListComponent) as <\n Section extends string | number | TDefaultSection,\n>(\n props: ISectionList<Section>,\n) => JSX.Element;\n\nexport default SelectionList;\n"],"names":["SectionListComponent","props","data","renderSectionHeader","renderItem","keyExtractor","jsx","Fragment","section","idx","FlexView","item","itemIdx","key","SelectionList","memo","SectionList"],"mappings":";;;AAMA,MAAMA,IAAuB,CAC3BC,MACgB;AAChB,QAAM,EAAE,MAAAC,GAAM,qBAAAC,GAAqB,YAAAC,GAAY,cAAAC,MAAiBJ;AAEhE,SAEK,gBAAAK,EAAAC,GAAA,EAAA,UAAAL,EAAK,IAAI,CAACM,GAASC,wBAEfC,GACE,EAAA,UAAA;AAAA,IAAAP,KAAuBA,EAAoBK,CAAO;AAAA,IAEnD,gBAAAF,EAACC,GAAA,EACE,UAAAC,EAAQ,KAAK,IAAI,CAACG,GAAMC,MAAY;AAC7B,YAAAC,IAAMR,IAAeA,EAAaM,GAAMC,CAAO,IAAI,GAAGD,CAAI,IAAIC,CAAO;AAE3E,+BAAQL,GAAA,EAAoB,UAAWH,EAAAO,CAAI,KAArBE,CAAuB;AAAA,IAC9C,CAAA,GACH;AAAA,EAAA,EAAA,GATa,GAAGL,EAAQ,KAAK,IAAIC,CAAG,EAUtC,CAEH,EACH,CAAA;AAEJ,GAEMK,IAAgBC,EAAKf,CAAoB,GAM/CgB,IAAeF;"}
1
+ {"version":3,"file":"section-list.js","sources":["../../../../src/features/ui/section-list/section-list.tsx"],"sourcesContent":["import type { ISectionList, TDefaultSection } from './section-list-types';\n\nimport { Fragment, memo } from 'react';\n\nimport FlexView from '../layout/flex-view';\n\nconst SectionListComponent = <Section extends string | number | TDefaultSection>(\n props: ISectionList<Section>,\n): JSX.Element => {\n const { data, renderSectionHeader, renderItem, keyExtractor } = props;\n\n return (\n <>\n {data.map((section, idx) => {\n return (\n <FlexView key={`${section.title}_${idx}`}>\n {data.length > 1 && renderSectionHeader && renderSectionHeader(section)}\n\n <Fragment>\n {section.data.map((item, itemIdx) => {\n const key = keyExtractor ? keyExtractor(item, itemIdx) : `${item}_${itemIdx}`;\n\n return <Fragment key={key}>{renderItem(item)}</Fragment>;\n })}\n </Fragment>\n </FlexView>\n );\n })}\n </>\n );\n};\n\nconst SelectionList = memo(SectionListComponent) as <\n Section extends string | number | TDefaultSection,\n>(\n props: ISectionList<Section>,\n) => JSX.Element;\n\nexport default SelectionList;\n"],"names":["SectionListComponent","props","data","renderSectionHeader","renderItem","keyExtractor","jsx","Fragment","section","idx","FlexView","item","itemIdx","key","SelectionList","memo","SectionList"],"mappings":";;;AAMA,MAAMA,IAAuB,CAC3BC,MACgB;AAChB,QAAM,EAAE,MAAAC,GAAM,qBAAAC,GAAqB,YAAAC,GAAY,cAAAC,MAAiBJ;AAEhE,SAEK,gBAAAK,EAAAC,GAAA,EAAA,UAAAL,EAAK,IAAI,CAACM,GAASC,wBAEfC,GACE,EAAA,UAAA;AAAA,IAAAR,EAAK,SAAS,KAAKC,KAAuBA,EAAoBK,CAAO;AAAA,IAEtE,gBAAAF,EAACC,GAAA,EACE,UAAAC,EAAQ,KAAK,IAAI,CAACG,GAAMC,MAAY;AAC7B,YAAAC,IAAMR,IAAeA,EAAaM,GAAMC,CAAO,IAAI,GAAGD,CAAI,IAAIC,CAAO;AAE3E,+BAAQL,GAAA,EAAoB,UAAWH,EAAAO,CAAI,KAArBE,CAAuB;AAAA,IAC9C,CAAA,GACH;AAAA,EAAA,EAAA,GATa,GAAGL,EAAQ,KAAK,IAAIC,CAAG,EAUtC,CAEH,EACH,CAAA;AAEJ,GAEMK,IAAgBC,EAAKf,CAAoB,GAM/CgB,IAAeF;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "2.8.62",
3
+ "version": "2.8.63-akm",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"