@cuemath/leap 3.1.23 → 3.1.24-hg5
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/dist/features/analytics-events/whitelist-events.js +5 -7
- package/dist/features/analytics-events/whitelist-events.js.map +1 -1
- package/dist/features/chapters-v2/chapter-details/chapter-details.js +26 -26
- package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
- package/dist/features/circle-games/hooks/use-circle-sounds/helper.js +18 -0
- package/dist/features/circle-games/hooks/use-circle-sounds/helper.js.map +1 -0
- package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js +95 -110
- package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js.map +1 -1
- package/dist/features/hooks/use-auto-play-permission/constants.js +2 -4
- package/dist/features/hooks/use-auto-play-permission/constants.js.map +1 -1
- package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.js +23 -42
- package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/styled.js +1 -1
- package/dist/features/milestone/milestone-list-container/styled.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/index.js +56 -59
- package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/learning-plan-styled.js +16 -24
- package/dist/features/trial-session/comps/learning-plan/learning-plan-styled.js.map +1 -1
- package/dist/features/trial-session/right-panel/right-panel-styled.js +2 -2
- package/dist/features/trial-session/right-panel/right-panel-styled.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/package.json +1 -1
- package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-analytics-events.js +0 -10
- package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-analytics-events.js.map +0 -1
|
@@ -5,13 +5,12 @@ import { HOMEWORK_ANALYTICS_WHITELIST_EVENTS as _ } from "../homework/homework-a
|
|
|
5
5
|
import { RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS as I } from "../milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js";
|
|
6
6
|
import { TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS as A } from "../milestone/milestone-tests/tests-creation/tests-creation-analytics-events.js";
|
|
7
7
|
import { SHEETS_ANALYTICS_WHITELIST_EVENTS as L } from "../sheets/sheets-analytics-events.js";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
const O = {
|
|
8
|
+
import { PLATFORM_WHITELIST_EVENTS_STUDENT as N } from "./platform-events-student.js";
|
|
9
|
+
import { PLATFORM_WHITELIST_EVENTS_TEACHER as o } from "./platform-events-teacher.js";
|
|
10
|
+
const f = {
|
|
12
11
|
//* Global/Platform specific events
|
|
12
|
+
...N,
|
|
13
13
|
...o,
|
|
14
|
-
...r,
|
|
15
14
|
//* Feature specific events
|
|
16
15
|
...E,
|
|
17
16
|
...S,
|
|
@@ -19,10 +18,9 @@ const O = {
|
|
|
19
18
|
...L,
|
|
20
19
|
...A,
|
|
21
20
|
..._,
|
|
22
|
-
...N,
|
|
23
21
|
...T
|
|
24
22
|
};
|
|
25
23
|
export {
|
|
26
|
-
|
|
24
|
+
f as WHITELIST_EVENTS
|
|
27
25
|
};
|
|
28
26
|
//# sourceMappingURL=whitelist-events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whitelist-events.js","sources":["../../../src/features/analytics-events/whitelist-events.ts"],"sourcesContent":["import type { PLUGIN_NAME } from '@cuemath/analytics-v2/dist/constants';\n\nimport { GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/game-launcher/game-launcher-analytics-events';\nimport { WEBVIEW_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/games/web-view/web-view-analytics-events';\nimport { LEADERBOARD_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/leaderboard/leaderboard-analytics-events';\nimport { HOMEWORK_ANALYTICS_WHITELIST_EVENTS } from '../homework/homework-analytics-events';\nimport { RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS } from '../milestone/milestone-resources/resources-assign/resource-assign-analytics-events';\nimport { TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS } from '../milestone/milestone-tests/tests-creation/tests-creation-analytics-events';\nimport { SHEETS_ANALYTICS_WHITELIST_EVENTS } from '../sheets/sheets-analytics-events';\nimport {
|
|
1
|
+
{"version":3,"file":"whitelist-events.js","sources":["../../../src/features/analytics-events/whitelist-events.ts"],"sourcesContent":["import type { PLUGIN_NAME } from '@cuemath/analytics-v2/dist/constants';\n\nimport { GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/game-launcher/game-launcher-analytics-events';\nimport { WEBVIEW_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/games/web-view/web-view-analytics-events';\nimport { LEADERBOARD_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/leaderboard/leaderboard-analytics-events';\nimport { HOMEWORK_ANALYTICS_WHITELIST_EVENTS } from '../homework/homework-analytics-events';\nimport { RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS } from '../milestone/milestone-resources/resources-assign/resource-assign-analytics-events';\nimport { TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS } from '../milestone/milestone-tests/tests-creation/tests-creation-analytics-events';\nimport { SHEETS_ANALYTICS_WHITELIST_EVENTS } from '../sheets/sheets-analytics-events';\nimport { PLATFORM_WHITELIST_EVENTS_STUDENT } from './platform-events-student';\nimport { PLATFORM_WHITELIST_EVENTS_TEACHER } from './platform-events-teacher';\n\n/**\n ** Feature specific & Global/Platform specific events are imported here\n */\nconst WHITELIST_EVENTS: Record<string, PLUGIN_NAME[]> = {\n //* Global/Platform specific events\n ...PLATFORM_WHITELIST_EVENTS_STUDENT,\n ...PLATFORM_WHITELIST_EVENTS_TEACHER,\n\n //* Feature specific events\n ...GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS,\n ...LEADERBOARD_ANALYTICS_WHITELIST_EVENTS,\n ...RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS,\n ...SHEETS_ANALYTICS_WHITELIST_EVENTS,\n ...TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS,\n ...HOMEWORK_ANALYTICS_WHITELIST_EVENTS,\n ...WEBVIEW_ANALYTICS_WHITELIST_EVENTS,\n};\n\nexport { WHITELIST_EVENTS };\n"],"names":["WHITELIST_EVENTS","PLATFORM_WHITELIST_EVENTS_STUDENT","PLATFORM_WHITELIST_EVENTS_TEACHER","GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS","LEADERBOARD_ANALYTICS_WHITELIST_EVENTS","RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS","SHEETS_ANALYTICS_WHITELIST_EVENTS","TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS","HOMEWORK_ANALYTICS_WHITELIST_EVENTS","WEBVIEW_ANALYTICS_WHITELIST_EVENTS"],"mappings":";;;;;;;;;AAeA,MAAMA,IAAkD;AAAA;AAAA,EAEtD,GAAGC;AAAA,EACH,GAAGC;AAAA;AAAA,EAGH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AACL;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsxs as m, jsx as
|
|
1
|
+
import { jsxs as m, jsx as t, Fragment as _ } from "react/jsx-runtime";
|
|
2
2
|
import { memo as v, useCallback as D, useEffect as p } from "react";
|
|
3
3
|
import { ILLUSTRATIONS as E } from "../../../assets/illustrations/illustrations.js";
|
|
4
4
|
import L from "../../../assets/line-icons/icons/back2.js";
|
|
@@ -12,31 +12,31 @@ import { useGetChapterDetails as F } from "../api/chapter.js";
|
|
|
12
12
|
import O from "./block-sections/block-sections.js";
|
|
13
13
|
import W from "./chapter-banner/chapter-banner.js";
|
|
14
14
|
import { ContentWrapper as X, BackButtonContainer as z, BackButtonWrapper as G, LoaderWrapper as V } from "./chapter-details-styled.js";
|
|
15
|
-
const q = v((
|
|
15
|
+
const q = v((g) => {
|
|
16
16
|
const {
|
|
17
17
|
userChapterId: n,
|
|
18
18
|
studentId: i,
|
|
19
19
|
userType: a,
|
|
20
|
-
onBlockSkipUnskip:
|
|
20
|
+
onBlockSkipUnskip: f,
|
|
21
21
|
onNodeAttempt: u,
|
|
22
22
|
onNodeAssignAsHomework: k,
|
|
23
23
|
onNodeMarkAsDone: C,
|
|
24
24
|
onNodeReattempt: y,
|
|
25
25
|
onNodeReview: A,
|
|
26
26
|
onNodeView: B,
|
|
27
|
-
onExit:
|
|
28
|
-
onNodeUnassign:
|
|
27
|
+
onExit: N,
|
|
28
|
+
onNodeUnassign: $,
|
|
29
29
|
onNodeUnlock: S,
|
|
30
|
-
onNodeSkipUnSkip:
|
|
30
|
+
onNodeSkipUnSkip: w,
|
|
31
31
|
startChapterPageJourney: s,
|
|
32
|
-
chapterPageRef:
|
|
33
|
-
bannerRef:
|
|
32
|
+
chapterPageRef: x,
|
|
33
|
+
bannerRef: I,
|
|
34
34
|
coreBlocksRef: R,
|
|
35
35
|
canStartJourney: c
|
|
36
|
-
} =
|
|
36
|
+
} = g, { isJourneyActive: l } = P(), {
|
|
37
37
|
get: d,
|
|
38
38
|
data: e,
|
|
39
|
-
isProcessing:
|
|
39
|
+
isProcessing: r,
|
|
40
40
|
isProcessingFailed: b,
|
|
41
41
|
isStale: h
|
|
42
42
|
} = F(), o = D(() => {
|
|
@@ -60,10 +60,10 @@ const q = v((f) => {
|
|
|
60
60
|
n,
|
|
61
61
|
a
|
|
62
62
|
]), p(() => {
|
|
63
|
-
!
|
|
64
|
-
}, [o,
|
|
65
|
-
/* @__PURE__ */
|
|
66
|
-
/* @__PURE__ */
|
|
63
|
+
!r && h && o();
|
|
64
|
+
}, [o, r, h]), b ? /* @__PURE__ */ m(j, { $flexGapX: 1.5, $height: "100vh", $justifyContent: "center", $alignItems: "center", children: [
|
|
65
|
+
/* @__PURE__ */ t(J, { $renderAs: "h6", children: "Oops! Something went wrong. Please try again later." }),
|
|
66
|
+
/* @__PURE__ */ t(
|
|
67
67
|
T,
|
|
68
68
|
{
|
|
69
69
|
widthX: 14,
|
|
@@ -74,44 +74,44 @@ const q = v((f) => {
|
|
|
74
74
|
onClick: o
|
|
75
75
|
}
|
|
76
76
|
)
|
|
77
|
-
] }) : !e &&
|
|
77
|
+
] }) : !e && r ? /* @__PURE__ */ t(H, { height: "80vh" }) : /* @__PURE__ */ m(
|
|
78
78
|
X,
|
|
79
79
|
{
|
|
80
|
-
ref:
|
|
80
|
+
ref: x,
|
|
81
81
|
$widthX: 50,
|
|
82
|
-
$disablePointerEvents:
|
|
82
|
+
$disablePointerEvents: r,
|
|
83
83
|
$justifyContent: "center",
|
|
84
84
|
$alignItems: "center",
|
|
85
85
|
children: [
|
|
86
|
-
a === "TEACHER" && /* @__PURE__ */
|
|
86
|
+
a === "TEACHER" && /* @__PURE__ */ t(z, { $height: "100%", className: "goal-widget-chapter-item", children: /* @__PURE__ */ t(G, { children: /* @__PURE__ */ t(
|
|
87
87
|
U,
|
|
88
88
|
{
|
|
89
89
|
Icon: L,
|
|
90
90
|
renderAs: "secondary-gray",
|
|
91
91
|
analyticsLabel: "chapter_page_exit",
|
|
92
92
|
size: "xsmall",
|
|
93
|
-
onClick:
|
|
93
|
+
onClick: N
|
|
94
94
|
}
|
|
95
95
|
) }) }),
|
|
96
|
-
|
|
96
|
+
r && /* @__PURE__ */ t(V, { children: /* @__PURE__ */ t("img", { src: E.LOADER_1, alt: "loader" }) }),
|
|
97
97
|
e && /* @__PURE__ */ m(_, { children: [
|
|
98
|
-
/* @__PURE__ */
|
|
98
|
+
/* @__PURE__ */ t(
|
|
99
99
|
W,
|
|
100
100
|
{
|
|
101
101
|
title: e.name,
|
|
102
102
|
imageHue: e.image_hue,
|
|
103
103
|
imageUrl: e.image_url,
|
|
104
104
|
progressStats: e == null ? void 0 : e.progress_stat,
|
|
105
|
-
bannerRef:
|
|
105
|
+
bannerRef: I
|
|
106
106
|
}
|
|
107
107
|
),
|
|
108
|
-
/* @__PURE__ */
|
|
108
|
+
/* @__PURE__ */ t(
|
|
109
109
|
O,
|
|
110
110
|
{
|
|
111
111
|
imageHue: e.image_hue,
|
|
112
112
|
userType: a,
|
|
113
113
|
blocks: e.blocks,
|
|
114
|
-
onBlockSkipUnskip:
|
|
114
|
+
onBlockSkipUnskip: f,
|
|
115
115
|
onNodeAttempt: u,
|
|
116
116
|
onNodeAssignAsHomework: k,
|
|
117
117
|
onNodeMarkAsDone: C,
|
|
@@ -119,9 +119,9 @@ const q = v((f) => {
|
|
|
119
119
|
onNodeReview: A,
|
|
120
120
|
onNodeView: B,
|
|
121
121
|
coreBlocksRef: R,
|
|
122
|
-
onNodeUnassign:
|
|
122
|
+
onNodeUnassign: $,
|
|
123
123
|
onNodeUnlock: S,
|
|
124
|
-
onNodeSkipUnSkip:
|
|
124
|
+
onNodeSkipUnSkip: w
|
|
125
125
|
}
|
|
126
126
|
)
|
|
127
127
|
] })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chapter-details.js","sources":["../../../../src/features/chapters-v2/chapter-details/chapter-details.tsx"],"sourcesContent":["import type { IChapterDetails } from './chapter-details-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport Back2Icon from '../../../assets/line-icons/icons/back2';\nimport { useJourney } from '../../journey/use-journey/use-journey';\nimport Button from '../../ui/buttons/button/button';\nimport IconButton from '../../ui/buttons/icon-button/icon-button';\nimport FlexView from '../../ui/layout/flex-view';\nimport AppLoader from '../../ui/loader/app-loader/app-loader';\nimport Text from '../../ui/text/text';\nimport { useGetChapterDetails } from '../api/chapter';\nimport BlockSections from './block-sections/block-sections';\nimport ChapterBanner from './chapter-banner/chapter-banner';\nimport * as Styled from './chapter-details-styled';\n\nconst ChapterDetails: FC<IChapterDetails> = memo(props => {\n const {\n userChapterId,\n studentId,\n userType,\n onBlockSkipUnskip,\n onNodeAttempt,\n onNodeAssignAsHomework,\n onNodeMarkAsDone,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n onExit,\n onNodeUnassign,\n onNodeUnlock,\n onNodeSkipUnSkip,\n startChapterPageJourney,\n chapterPageRef,\n bannerRef,\n coreBlocksRef,\n canStartJourney,\n } = props;\n const { isJourneyActive } = useJourney();\n const {\n get: getChapterDetails,\n data: chapterDetails,\n isProcessing,\n isProcessingFailed,\n isStale,\n } = useGetChapterDetails();\n\n const fetchChapterDetails = useCallback(() => {\n getChapterDetails(userChapterId, undefined, { studentId });\n }, [getChapterDetails, userChapterId, studentId]);\n\n useEffect(() => {\n fetchChapterDetails();\n }, [fetchChapterDetails]);\n\n useEffect(() => {\n if (chapterDetails && canStartJourney && !isJourneyActive && startChapterPageJourney) {\n startChapterPageJourney({\n chapterDetails: chapterDetails,\n userChapterId,\n studentId,\n userType,\n });\n }\n }, [\n canStartJourney,\n chapterDetails,\n isJourneyActive,\n startChapterPageJourney,\n studentId,\n userChapterId,\n userType,\n ]);\n\n useEffect(() => {\n if (!isProcessing && isStale) {\n fetchChapterDetails();\n }\n }, [fetchChapterDetails, isProcessing, isStale]);\n\n if (isProcessingFailed) {\n return (\n <FlexView $flexGapX={1.5} $height=\"100vh\" $justifyContent=\"center\" $alignItems=\"center\">\n <Text $renderAs=\"h6\">Oops! Something went wrong. Please try again later.</Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n onClick={fetchChapterDetails}\n />\n </FlexView>\n );\n }\n\n if (!chapterDetails && isProcessing) {\n return <AppLoader height=\"80vh\" />;\n }\n\n return (\n <Styled.ContentWrapper\n ref={chapterPageRef}\n $widthX={50}\n $disablePointerEvents={isProcessing}\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n {userType === 'TEACHER' && (\n <Styled.BackButtonContainer $height=\"100%\">\n <Styled.BackButtonWrapper>\n <IconButton\n Icon={Back2Icon}\n renderAs=\"secondary-gray\"\n analyticsLabel=\"chapter_page_exit\"\n size=\"xsmall\"\n onClick={onExit}\n />\n </Styled.BackButtonWrapper>\n </Styled.BackButtonContainer>\n )}\n\n {isProcessing && (\n <Styled.LoaderWrapper>\n <img src={ILLUSTRATIONS.LOADER_1} alt=\"loader\" />\n </Styled.LoaderWrapper>\n )}\n\n {chapterDetails && (\n <>\n <ChapterBanner\n title={chapterDetails.name}\n imageHue={chapterDetails.image_hue}\n imageUrl={chapterDetails.image_url}\n progressStats={chapterDetails?.progress_stat}\n bannerRef={bannerRef}\n />\n <BlockSections\n imageHue={chapterDetails.image_hue}\n userType={userType}\n blocks={chapterDetails.blocks}\n onBlockSkipUnskip={onBlockSkipUnskip}\n onNodeAttempt={onNodeAttempt}\n onNodeAssignAsHomework={onNodeAssignAsHomework}\n onNodeMarkAsDone={onNodeMarkAsDone}\n onNodeReattempt={onNodeReattempt}\n onNodeReview={onNodeReview}\n onNodeView={onNodeView}\n coreBlocksRef={coreBlocksRef}\n onNodeUnassign={onNodeUnassign}\n onNodeUnlock={onNodeUnlock}\n onNodeSkipUnSkip={onNodeSkipUnSkip}\n />\n </>\n )}\n </Styled.ContentWrapper>\n );\n});\n\nexport default ChapterDetails;\n"],"names":["ChapterDetails","memo","props","userChapterId","studentId","userType","onBlockSkipUnskip","onNodeAttempt","onNodeAssignAsHomework","onNodeMarkAsDone","onNodeReattempt","onNodeReview","onNodeView","onExit","onNodeUnassign","onNodeUnlock","onNodeSkipUnSkip","startChapterPageJourney","chapterPageRef","bannerRef","coreBlocksRef","canStartJourney","isJourneyActive","useJourney","getChapterDetails","chapterDetails","isProcessing","isProcessingFailed","isStale","useGetChapterDetails","fetchChapterDetails","useCallback","useEffect","jsxs","FlexView","jsx","Text","Button","AppLoader","Styled.ContentWrapper","Styled.BackButtonContainer","Styled.BackButtonWrapper","IconButton","Back2Icon","Styled.LoaderWrapper","ILLUSTRATIONS","Fragment","ChapterBanner","BlockSections","ChapterDetails$1"],"mappings":";;;;;;;;;;;;;;AAkBA,MAAMA,IAAsCC,EAAK,CAASC,MAAA;AAClD,QAAA;AAAA,IACJ,eAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,QAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC;AAAA,EACE,IAAAnB,GACE,EAAE,iBAAAoB,MAAoBC,KACtB;AAAA,IACJ,KAAKC;AAAA,IACL,MAAMC;AAAA,IACN,cAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,SAAAC;AAAA,MACEC,EAAqB,GAEnBC,IAAsBC,EAAY,MAAM;AAC5C,IAAAP,EAAkBrB,GAAe,QAAW,EAAE,WAAAC,EAAW,CAAA;AAAA,EACxD,GAAA,CAACoB,GAAmBrB,GAAeC,CAAS,CAAC;AA+BhD,SA7BA4B,EAAU,MAAM;AACM,IAAAF;EAAA,GACnB,CAACA,CAAmB,CAAC,GAExBE,EAAU,MAAM;AACd,IAAIP,KAAkBJ,KAAmB,CAACC,KAAmBL,KACnCA,EAAA;AAAA,MACtB,gBAAAQ;AAAA,MACA,eAAAtB;AAAA,MACA,WAAAC;AAAA,MACA,UAAAC;AAAA,IAAA,CACD;AAAA,EACH,GACC;AAAA,IACDgB;AAAA,IACAI;AAAA,IACAH;AAAA,IACAL;AAAA,IACAb;AAAA,IACAD;AAAA,IACAE;AAAA,EAAA,CACD,GAED2B,EAAU,MAAM;AACV,IAAA,CAACN,KAAgBE,KACCE;EAErB,GAAA,CAACA,GAAqBJ,GAAcE,CAAO,CAAC,GAE3CD,IAEA,gBAAAM,EAACC,KAAS,WAAW,KAAK,SAAQ,SAAQ,iBAAgB,UAAS,aAAY,UAC7E,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAK,WAAU,MAAK,UAAmD,uDAAA;AAAA,IACxE,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,QAAQ;AAAA,QACR,MAAK;AAAA,QACL,OAAM;AAAA,QACN,UAAS;AAAA,QACT,OAAM;AAAA,QACN,SAASP;AAAA,MAAA;AAAA,IACX;AAAA,EACF,EAAA,CAAA,IAIA,CAACL,KAAkBC,IACd,gBAAAS,EAACG,GAAU,EAAA,QAAO,OAAO,CAAA,IAIhC,gBAAAL;AAAA,IAACM;AAAAA,IAAA;AAAA,MACC,KAAKrB;AAAA,MACL,SAAS;AAAA,MACT,uBAAuBQ;AAAA,MACvB,iBAAgB;AAAA,MAChB,aAAY;AAAA,MAEX,UAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"chapter-details.js","sources":["../../../../src/features/chapters-v2/chapter-details/chapter-details.tsx"],"sourcesContent":["import type { IChapterDetails } from './chapter-details-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport Back2Icon from '../../../assets/line-icons/icons/back2';\nimport { useJourney } from '../../journey/use-journey/use-journey';\nimport Button from '../../ui/buttons/button/button';\nimport IconButton from '../../ui/buttons/icon-button/icon-button';\nimport FlexView from '../../ui/layout/flex-view';\nimport AppLoader from '../../ui/loader/app-loader/app-loader';\nimport Text from '../../ui/text/text';\nimport { useGetChapterDetails } from '../api/chapter';\nimport BlockSections from './block-sections/block-sections';\nimport ChapterBanner from './chapter-banner/chapter-banner';\nimport * as Styled from './chapter-details-styled';\n\nconst ChapterDetails: FC<IChapterDetails> = memo(props => {\n const {\n userChapterId,\n studentId,\n userType,\n onBlockSkipUnskip,\n onNodeAttempt,\n onNodeAssignAsHomework,\n onNodeMarkAsDone,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n onExit,\n onNodeUnassign,\n onNodeUnlock,\n onNodeSkipUnSkip,\n startChapterPageJourney,\n chapterPageRef,\n bannerRef,\n coreBlocksRef,\n canStartJourney,\n } = props;\n const { isJourneyActive } = useJourney();\n const {\n get: getChapterDetails,\n data: chapterDetails,\n isProcessing,\n isProcessingFailed,\n isStale,\n } = useGetChapterDetails();\n\n const fetchChapterDetails = useCallback(() => {\n getChapterDetails(userChapterId, undefined, { studentId });\n }, [getChapterDetails, userChapterId, studentId]);\n\n useEffect(() => {\n fetchChapterDetails();\n }, [fetchChapterDetails]);\n\n useEffect(() => {\n if (chapterDetails && canStartJourney && !isJourneyActive && startChapterPageJourney) {\n startChapterPageJourney({\n chapterDetails: chapterDetails,\n userChapterId,\n studentId,\n userType,\n });\n }\n }, [\n canStartJourney,\n chapterDetails,\n isJourneyActive,\n startChapterPageJourney,\n studentId,\n userChapterId,\n userType,\n ]);\n\n useEffect(() => {\n if (!isProcessing && isStale) {\n fetchChapterDetails();\n }\n }, [fetchChapterDetails, isProcessing, isStale]);\n\n if (isProcessingFailed) {\n return (\n <FlexView $flexGapX={1.5} $height=\"100vh\" $justifyContent=\"center\" $alignItems=\"center\">\n <Text $renderAs=\"h6\">Oops! Something went wrong. Please try again later.</Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n onClick={fetchChapterDetails}\n />\n </FlexView>\n );\n }\n\n if (!chapterDetails && isProcessing) {\n return <AppLoader height=\"80vh\" />;\n }\n\n return (\n <Styled.ContentWrapper\n ref={chapterPageRef}\n $widthX={50}\n $disablePointerEvents={isProcessing}\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n {userType === 'TEACHER' && (\n <Styled.BackButtonContainer $height=\"100%\" className=\"goal-widget-chapter-item\">\n <Styled.BackButtonWrapper>\n <IconButton\n Icon={Back2Icon}\n renderAs=\"secondary-gray\"\n analyticsLabel=\"chapter_page_exit\"\n size=\"xsmall\"\n onClick={onExit}\n />\n </Styled.BackButtonWrapper>\n </Styled.BackButtonContainer>\n )}\n\n {isProcessing && (\n <Styled.LoaderWrapper>\n <img src={ILLUSTRATIONS.LOADER_1} alt=\"loader\" />\n </Styled.LoaderWrapper>\n )}\n\n {chapterDetails && (\n <>\n <ChapterBanner\n title={chapterDetails.name}\n imageHue={chapterDetails.image_hue}\n imageUrl={chapterDetails.image_url}\n progressStats={chapterDetails?.progress_stat}\n bannerRef={bannerRef}\n />\n <BlockSections\n imageHue={chapterDetails.image_hue}\n userType={userType}\n blocks={chapterDetails.blocks}\n onBlockSkipUnskip={onBlockSkipUnskip}\n onNodeAttempt={onNodeAttempt}\n onNodeAssignAsHomework={onNodeAssignAsHomework}\n onNodeMarkAsDone={onNodeMarkAsDone}\n onNodeReattempt={onNodeReattempt}\n onNodeReview={onNodeReview}\n onNodeView={onNodeView}\n coreBlocksRef={coreBlocksRef}\n onNodeUnassign={onNodeUnassign}\n onNodeUnlock={onNodeUnlock}\n onNodeSkipUnSkip={onNodeSkipUnSkip}\n />\n </>\n )}\n </Styled.ContentWrapper>\n );\n});\n\nexport default ChapterDetails;\n"],"names":["ChapterDetails","memo","props","userChapterId","studentId","userType","onBlockSkipUnskip","onNodeAttempt","onNodeAssignAsHomework","onNodeMarkAsDone","onNodeReattempt","onNodeReview","onNodeView","onExit","onNodeUnassign","onNodeUnlock","onNodeSkipUnSkip","startChapterPageJourney","chapterPageRef","bannerRef","coreBlocksRef","canStartJourney","isJourneyActive","useJourney","getChapterDetails","chapterDetails","isProcessing","isProcessingFailed","isStale","useGetChapterDetails","fetchChapterDetails","useCallback","useEffect","jsxs","FlexView","jsx","Text","Button","AppLoader","Styled.ContentWrapper","Styled.BackButtonContainer","Styled.BackButtonWrapper","IconButton","Back2Icon","Styled.LoaderWrapper","ILLUSTRATIONS","Fragment","ChapterBanner","BlockSections","ChapterDetails$1"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const r = (e) => {
|
|
2
|
+
const l = setInterval(() => {
|
|
3
|
+
const t = e.volume || 0;
|
|
4
|
+
t < 1 ? e.volume = Math.min(t + 0.1, 1) : clearInterval(l);
|
|
5
|
+
}, 100);
|
|
6
|
+
return l;
|
|
7
|
+
}, v = (e) => {
|
|
8
|
+
let l = e.volume || 0;
|
|
9
|
+
const t = setInterval(() => {
|
|
10
|
+
l - 0.1 <= 0 ? (e.volume = 0, e.pause(), clearInterval(t)) : (l = l - 0.1, e.volume = l);
|
|
11
|
+
}, 100);
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
r as fadeInSound,
|
|
16
|
+
v as fadeOutSound
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/helper.ts"],"sourcesContent":["export const fadeInSound = (soundInstance: HTMLAudioElement) => {\n const intervalId = setInterval(() => {\n const vol = soundInstance.volume || 0;\n\n if (vol < 1) {\n soundInstance.volume = Math.min(vol + 0.1, 1);\n } else {\n clearInterval(intervalId);\n }\n }, 100);\n\n return intervalId;\n};\n\nexport const fadeOutSound = (soundInstance: HTMLAudioElement) => {\n let vol = soundInstance.volume || 0;\n const intervalId = setInterval(() => {\n if (vol - 0.1 <= 0) {\n soundInstance.volume = 0;\n soundInstance.pause();\n clearInterval(intervalId);\n } else {\n vol = vol - 0.1;\n soundInstance.volume = vol;\n }\n }, 100);\n\n return intervalId;\n};\n"],"names":["fadeInSound","soundInstance","intervalId","vol","fadeOutSound"],"mappings":"AAAa,MAAAA,IAAc,CAACC,MAAoC;AACxD,QAAAC,IAAa,YAAY,MAAM;AAC7B,UAAAC,IAAMF,EAAc,UAAU;AAEpC,IAAIE,IAAM,IACRF,EAAc,SAAS,KAAK,IAAIE,IAAM,KAAK,CAAC,IAE5C,cAAcD,CAAU;AAAA,KAEzB,GAAG;AAEC,SAAAA;AACT,GAEaE,IAAe,CAACH,MAAoC;AAC3D,MAAAE,IAAMF,EAAc,UAAU;AAC5B,QAAAC,IAAa,YAAY,MAAM;AAC/B,IAAAC,IAAM,OAAO,KACfF,EAAc,SAAS,GACvBA,EAAc,MAAM,GACpB,cAAcC,CAAU,MAExBC,IAAMA,IAAM,KACZF,EAAc,SAASE;AAAA,KAExB,GAAG;AAEC,SAAAD;AACT;"}
|
|
@@ -1,123 +1,108 @@
|
|
|
1
|
-
import { useCallback as s, useRef as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
[
|
|
9
|
-
[
|
|
10
|
-
[
|
|
11
|
-
[
|
|
12
|
-
[
|
|
13
|
-
[
|
|
14
|
-
[
|
|
15
|
-
[
|
|
16
|
-
[
|
|
17
|
-
[
|
|
18
|
-
[
|
|
19
|
-
[
|
|
20
|
-
[
|
|
21
|
-
[
|
|
22
|
-
[
|
|
23
|
-
[
|
|
24
|
-
[
|
|
25
|
-
[
|
|
26
|
-
[
|
|
27
|
-
[
|
|
28
|
-
[
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
import { useCallback as s, useRef as _, useEffect as m } from "react";
|
|
2
|
+
import { useAutoPlayPermission as P } from "../../../hooks/use-auto-play-permission/use-auto-play-permission.js";
|
|
3
|
+
import { CircleSoundKeyMapper as U, SWIPE_SOUND_ORDER as R } from "./constants.js";
|
|
4
|
+
import { fadeInSound as O, fadeOutSound as h } from "./helper.js";
|
|
5
|
+
import { CircleSoundKey as t } from "./use-circle-sounds-enums.js";
|
|
6
|
+
let i = 0;
|
|
7
|
+
const c = {
|
|
8
|
+
[t.BACKGROUND]: null,
|
|
9
|
+
[t.BACKGROUND_RUSHHOUR]: null,
|
|
10
|
+
[t.TUTORIAL]: null,
|
|
11
|
+
[t.SWIPE_01]: null,
|
|
12
|
+
[t.SWIPE_02]: null,
|
|
13
|
+
[t.SWIPE_03]: null,
|
|
14
|
+
[t.SWIPE_04]: null,
|
|
15
|
+
[t.SWIPE_DOWN]: null,
|
|
16
|
+
[t.TOGGLE]: null,
|
|
17
|
+
[t.POINTS_AWARDED]: null,
|
|
18
|
+
[t.POINTS_ADDED]: null,
|
|
19
|
+
[t.GAME_CARD_CLICK]: null,
|
|
20
|
+
[t.CLOCK_IN]: null,
|
|
21
|
+
[t.CLOCK_OUT]: null,
|
|
22
|
+
[t.ACCURACY_IN]: null,
|
|
23
|
+
[t.ACCURACY_OUT]: null,
|
|
24
|
+
[t.STREAK_IN]: null,
|
|
25
|
+
[t.STREAK_OUT]: null,
|
|
26
|
+
[t.ACCURACY_INTRO]: null,
|
|
27
|
+
[t.ACCURACY_TARGET]: null,
|
|
28
|
+
[t.TIME_INTRO]: null,
|
|
29
|
+
[t.TIME_TARGET]: null,
|
|
30
|
+
[t.METER_FILL]: null
|
|
31
|
+
}, E = {}, K = () => {
|
|
32
|
+
const { canAutoPlayAudio: C } = P(), A = s((n) => {
|
|
33
|
+
if (!c[n]) {
|
|
34
|
+
const u = new Audio(U[n]);
|
|
35
|
+
c[n] = u;
|
|
34
36
|
}
|
|
35
|
-
}, []),
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const n = r.current;
|
|
47
|
-
return () => {
|
|
48
|
-
document.removeEventListener("visibilitychange", p);
|
|
49
|
-
for (const l of Object.values(n))
|
|
50
|
-
l != null && clearInterval(l);
|
|
51
|
-
};
|
|
52
|
-
}, [p]);
|
|
53
|
-
const _ = s(() => {
|
|
54
|
-
var l;
|
|
55
|
-
S.forEach((u) => {
|
|
56
|
-
c(u);
|
|
57
|
-
});
|
|
58
|
-
const n = S[d] || e.SWIPE_01;
|
|
59
|
-
d < S.length - 1 ? d++ : d = 0, (l = o[n]) == null || l.play();
|
|
60
|
-
}, [c]), m = s(() => {
|
|
61
|
-
var l;
|
|
62
|
-
return c(e.TOGGLE), (l = o[e.TOGGLE]) == null ? void 0 : l.play();
|
|
63
|
-
}, [c]), R = s(
|
|
64
|
-
(n, l = !0, u = !1) => {
|
|
65
|
-
c(n);
|
|
66
|
-
const t = o[n];
|
|
67
|
-
if (!t) return;
|
|
68
|
-
if (r.current[n] && clearInterval(r.current[n]), !t.paused && t.currentTime > 0 && !t.ended)
|
|
69
|
-
return t;
|
|
70
|
-
if (t.loop = u, l) {
|
|
71
|
-
t.volume = 1;
|
|
72
|
-
const i = t.play();
|
|
73
|
-
i && (I[n] = i);
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
t.volume = 0;
|
|
77
|
-
const a = t.play();
|
|
78
|
-
I[n] = a;
|
|
79
|
-
const E = setInterval(() => {
|
|
80
|
-
if (!t) {
|
|
81
|
-
clearInterval(E);
|
|
82
|
-
return;
|
|
37
|
+
}, []), a = _(/* @__PURE__ */ new Set()), o = _({}), r = s(
|
|
38
|
+
(n, u = !0, l = !1) => {
|
|
39
|
+
A(n);
|
|
40
|
+
const e = c[n];
|
|
41
|
+
if (!e || !C) return;
|
|
42
|
+
if (l && (e.loop = l), o.current[n] && clearInterval(o.current[n]), !e.paused && e.currentTime > 0 && !e.ended) {
|
|
43
|
+
if (u)
|
|
44
|
+
e.volume = 1;
|
|
45
|
+
else {
|
|
46
|
+
const S = O(e);
|
|
47
|
+
o.current[n] = S;
|
|
83
48
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
49
|
+
return e;
|
|
50
|
+
}
|
|
51
|
+
e.volume = u ? 1 : 0;
|
|
52
|
+
const p = e.play();
|
|
53
|
+
if (p && (E[n] = p), !u) {
|
|
54
|
+
const S = O(e);
|
|
55
|
+
o.current[n] = S;
|
|
56
|
+
}
|
|
57
|
+
return e;
|
|
88
58
|
},
|
|
89
|
-
[
|
|
90
|
-
),
|
|
91
|
-
const
|
|
92
|
-
if (!
|
|
93
|
-
if (
|
|
94
|
-
|
|
59
|
+
[A, C]
|
|
60
|
+
), d = s((n, u) => {
|
|
61
|
+
const l = c[n];
|
|
62
|
+
if (!l) return;
|
|
63
|
+
if (o.current[n] && clearInterval(o.current[n]), u) {
|
|
64
|
+
l.pause();
|
|
95
65
|
return;
|
|
96
66
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
v(n, l);
|
|
108
|
-
}).catch((t) => {
|
|
109
|
-
console.log("sound not playing", t);
|
|
67
|
+
const e = h(l);
|
|
68
|
+
o.current[n] = e;
|
|
69
|
+
}, []), f = s(
|
|
70
|
+
(n, u = !0) => {
|
|
71
|
+
var l;
|
|
72
|
+
if (E[n] !== void 0) {
|
|
73
|
+
(l = E[n]) == null || l.then(() => {
|
|
74
|
+
d(n, u);
|
|
75
|
+
}).catch((e) => {
|
|
76
|
+
console.log("sound not playing", e);
|
|
110
77
|
});
|
|
111
78
|
return;
|
|
112
79
|
}
|
|
113
|
-
|
|
80
|
+
d(n, u);
|
|
114
81
|
},
|
|
115
|
-
[
|
|
116
|
-
)
|
|
117
|
-
|
|
82
|
+
[d]
|
|
83
|
+
), T = s(() => {
|
|
84
|
+
const n = R[i] || t.SWIPE_01;
|
|
85
|
+
i < R.length - 1 ? i++ : i = 0, r(n);
|
|
86
|
+
}, [r]), v = s(() => r(t.TOGGLE), [r]), I = s(() => {
|
|
87
|
+
document.visibilityState === "hidden" && Object.keys(c).forEach((n) => {
|
|
88
|
+
const u = c[n];
|
|
89
|
+
u && !u.paused && (f(n, !0), a.current.add(n));
|
|
90
|
+
}), document.visibilityState === "visible" && (a.current.forEach((n) => {
|
|
91
|
+
r(n);
|
|
92
|
+
}), a.current.clear());
|
|
93
|
+
}, [r, f]);
|
|
94
|
+
return m(() => {
|
|
95
|
+
document.addEventListener("visibilitychange", I);
|
|
96
|
+
const n = o.current;
|
|
97
|
+
return () => {
|
|
98
|
+
document.removeEventListener("visibilitychange", I), Object.values(n).forEach((u) => {
|
|
99
|
+
u && clearInterval(u);
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
}, [I]), { playSwipSound: T, play: r, stop: f, playButtonSound: v };
|
|
118
103
|
};
|
|
119
104
|
export {
|
|
120
|
-
|
|
121
|
-
|
|
105
|
+
c as soundMapper,
|
|
106
|
+
K as useCircleSounds
|
|
122
107
|
};
|
|
123
108
|
//# 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 type { TimeoutMap } from './use-circle-sound-types';\n\nimport { 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 soundMapper[key] = loadedSound;\n }\n }, []);\n\n const pausedSoundsRef = useRef<Set<CircleSoundKey>>(new Set());\n const timeoutRefs = useRef<TimeoutMap>({});\n\n const handleVisibilityChange = useCallback(() => {\n if (document.visibilityState === 'hidden') {\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 pausedSoundsRef.current.forEach(key => {\n const sound = soundMapper[key];\n\n sound?.play();\n });\n pausedSoundsRef.current.clear();\n }\n }, []);\n\n useEffect(() => {\n document.addEventListener('visibilitychange', handleVisibilityChange);\n const timeouts = timeoutRefs.current;\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n for (const id of Object.values(timeouts)) {\n if (id != null) clearInterval(id);\n }\n };\n }, [handleVisibilityChange]);\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 if (timeoutRefs.current[key]) {\n clearInterval(timeoutRefs.current[key]);\n }\n\n if (!soundInstance.paused && soundInstance.currentTime > 0 && !soundInstance.ended) {\n return soundInstance;\n }\n\n soundInstance.loop = loop;\n if (immediately) {\n soundInstance.volume = 1;\n const promise = soundInstance.play();\n\n if (promise) {\n soundInstancePromise[key] = promise;\n }\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) {\n clearInterval(intervalId);\n\n return;\n }\n\n const vol = soundInstance.volume || 0;\n\n if (vol < 1) {\n soundInstance.volume = Math.min(vol + 0.1, 1);\n } else {\n clearInterval(intervalId);\n }\n }, 100);\n\n timeoutRefs.current[key] = intervalId;\n\n return soundInstance;\n },\n [loadSound],\n );\n\n const handleSoundStop = useCallback((key: CircleSoundKey, immediately: boolean) => {\n const soundInstance = soundMapper[key];\n\n if (!soundInstance) return;\n\n if (timeoutRefs.current[key]) {\n clearInterval(timeoutRefs.current[key]);\n }\n\n if (immediately) {\n soundInstance.pause();\n\n return;\n }\n\n let vol = soundInstance.volume || 0;\n const intervalId = setInterval(() => {\n if (vol - 0.1 <= 0) {\n soundInstance.volume = 0;\n soundInstance.pause();\n clearInterval(intervalId);\n } else {\n vol = vol - 0.1;\n soundInstance.volume = vol;\n }\n }, 100);\n\n timeoutRefs.current[key] = intervalId;\n }, []);\n\n const stop = useCallback(\n (key: CircleSoundKey, immediately: boolean = true) => {\n // if play returned a promise\n if (soundInstancePromise[key] !== undefined) {\n soundInstancePromise[key]\n ?.then(() => {\n handleSoundStop(key, immediately);\n })\n .catch(err => {\n // eslint-disable-next-line no-console\n console.log('sound not playing', err);\n });\n\n return;\n }\n\n handleSoundStop(key, immediately);\n },\n [handleSoundStop],\n );\n\n return { playSwipSound, play, stop, playButtonSound };\n};\n"],"names":["swipeSoundIndex","soundMapper","CircleSoundKey","soundInstancePromise","useCircleSounds","loadSound","useCallback","key","loadedSound","CircleSoundKeyMapper","pausedSoundsRef","useRef","timeoutRefs","handleVisibilityChange","sound","useEffect","timeouts","id","playSwipSound","SWIPE_SOUND_ORDER","_a","playButtonSound","play","immediately","loop","soundInstance","promise","intervalId","vol","handleSoundStop","stop","err"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-circle-sounds.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.ts"],"sourcesContent":["import type { TimeoutMap } from './use-circle-sound-types';\n\nimport { useCallback, useEffect, useRef } from 'react';\n\nimport { useAutoPlayPermission } from '../../../hooks/use-auto-play-permission/use-auto-play-permission';\nimport { CircleSoundKeyMapper, SWIPE_SOUND_ORDER } from './constants';\nimport { fadeInSound, fadeOutSound } from './helper';\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 { canAutoPlayAudio: canPlayAudio } = useAutoPlayPermission();\n\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 pausedSoundsRef = useRef<Set<CircleSoundKey>>(new Set());\n const timeoutRefs = useRef<TimeoutMap>({});\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 || !canPlayAudio) return;\n\n // this makes sure that it keeps the default loop value at the time it was requested to be loaded\n // helps in visibility change where we only want to resume\n if (loop) {\n soundInstance.loop = loop;\n }\n\n if (timeoutRefs.current[key]) {\n clearInterval(timeoutRefs.current[key]);\n }\n\n // resume sound\n if (!soundInstance.paused && soundInstance.currentTime > 0 && !soundInstance.ended) {\n if (!immediately) {\n const intervalId = fadeInSound(soundInstance);\n\n timeoutRefs.current[key] = intervalId;\n } else {\n soundInstance.volume = 1;\n }\n\n return soundInstance;\n }\n\n // play sound\n soundInstance.volume = immediately ? 1 : 0;\n const promise = soundInstance.play();\n\n if (promise) {\n soundInstancePromise[key] = promise;\n }\n\n if (!immediately) {\n const intervalId = fadeInSound(soundInstance);\n\n timeoutRefs.current[key] = intervalId;\n }\n\n return soundInstance;\n },\n [loadSound, canPlayAudio],\n );\n\n const handleSoundStop = useCallback((key: CircleSoundKey, immediately: boolean) => {\n const soundInstance = soundMapper[key];\n\n if (!soundInstance) return;\n\n if (timeoutRefs.current[key]) {\n clearInterval(timeoutRefs.current[key]);\n }\n\n if (immediately) {\n soundInstance.pause();\n\n return;\n }\n\n const intervalId = fadeOutSound(soundInstance);\n\n timeoutRefs.current[key] = intervalId;\n }, []);\n\n const stop = useCallback(\n (key: CircleSoundKey, immediately: boolean = true) => {\n // if play returned a promise\n if (soundInstancePromise[key] !== undefined) {\n soundInstancePromise[key]\n ?.then(() => {\n handleSoundStop(key, immediately);\n })\n .catch(err => {\n // eslint-disable-next-line no-console\n console.log('sound not playing', err);\n });\n\n return;\n }\n\n handleSoundStop(key, immediately);\n },\n [handleSoundStop],\n );\n\n const playSwipSound = useCallback(() => {\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\n play(key);\n }, [play]);\n\n const playButtonSound = useCallback(() => {\n const sound = play(CircleSoundKey.TOGGLE);\n\n return sound;\n }, [play]);\n\n const handleVisibilityChange = useCallback(() => {\n if (document.visibilityState === 'hidden') {\n (Object.keys(soundMapper) as CircleSoundKey[]).forEach(key => {\n const sound = soundMapper[key];\n\n if (sound && !sound.paused) {\n stop(key, true);\n pausedSoundsRef.current.add(key);\n }\n });\n }\n\n if (document.visibilityState === 'visible') {\n pausedSoundsRef.current.forEach(key => {\n play(key);\n });\n pausedSoundsRef.current.clear();\n }\n }, [play, stop]);\n\n useEffect(() => {\n document.addEventListener('visibilitychange', handleVisibilityChange);\n const timeouts = timeoutRefs.current;\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n Object.values(timeouts).forEach(id => {\n id && clearInterval(id);\n });\n };\n }, [handleVisibilityChange]);\n\n return { playSwipSound, play, stop, playButtonSound };\n};\n"],"names":["swipeSoundIndex","soundMapper","CircleSoundKey","soundInstancePromise","useCircleSounds","canPlayAudio","useAutoPlayPermission","loadSound","useCallback","key","loadedSound","CircleSoundKeyMapper","pausedSoundsRef","useRef","timeoutRefs","play","immediately","loop","soundInstance","intervalId","fadeInSound","promise","handleSoundStop","fadeOutSound","stop","_a","err","playSwipSound","SWIPE_SOUND_ORDER","playButtonSound","handleVisibilityChange","sound","useEffect","timeouts","id"],"mappings":";;;;;AASA,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;AACnC,QAAM,EAAE,kBAAkBC,EAAa,IAAIC,EAAsB,GAE3DC,IAAYC,EAAY,CAACC,MAAwB;AACjD,QAAA,CAACR,EAAYQ,CAAG,GAAG;AACrB,YAAMC,IAAc,IAAI,MAAMC,EAAqBF,CAAG,CAAC;AAEvD,MAAAR,EAAYQ,CAAG,IAAIC;AAAA,IACrB;AAAA,EACF,GAAG,CAAE,CAAA,GAECE,IAAkBC,EAAgC,oBAAA,IAAK,CAAA,GACvDC,IAAcD,EAAmB,CAAA,CAAE,GAEnCE,IAAOP;AAAA,IACX,CAACC,GAAqBO,IAAuB,IAAMC,IAAO,OAAU;AAClE,MAAAV,EAAUE,CAAG;AACP,YAAAS,IAAgBjB,EAAYQ,CAAG;AAEjC,UAAA,CAACS,KAAiB,CAACb,EAAc;AAajC,UATAY,MACFC,EAAc,OAAOD,IAGnBH,EAAY,QAAQL,CAAG,KACX,cAAAK,EAAY,QAAQL,CAAG,CAAC,GAIpC,CAACS,EAAc,UAAUA,EAAc,cAAc,KAAK,CAACA,EAAc,OAAO;AAClF,YAAKF;AAKH,UAAAE,EAAc,SAAS;AAAA,aALP;AACV,gBAAAC,IAAaC,EAAYF,CAAa;AAEhC,UAAAJ,EAAA,QAAQL,CAAG,IAAIU;AAAA,QAAA;AAKtB,eAAAD;AAAA,MACT;AAGc,MAAAA,EAAA,SAASF,IAAc,IAAI;AACnC,YAAAK,IAAUH,EAAc;AAM9B,UAJIG,MACFlB,EAAqBM,CAAG,IAAIY,IAG1B,CAACL,GAAa;AACV,cAAAG,IAAaC,EAAYF,CAAa;AAEhC,QAAAJ,EAAA,QAAQL,CAAG,IAAIU;AAAA,MAC7B;AAEO,aAAAD;AAAA,IACT;AAAA,IACA,CAACX,GAAWF,CAAY;AAAA,EAAA,GAGpBiB,IAAkBd,EAAY,CAACC,GAAqBO,MAAyB;AAC3E,UAAAE,IAAgBjB,EAAYQ,CAAG;AAErC,QAAI,CAACS,EAAe;AAMpB,QAJIJ,EAAY,QAAQL,CAAG,KACX,cAAAK,EAAY,QAAQL,CAAG,CAAC,GAGpCO,GAAa;AACf,MAAAE,EAAc,MAAM;AAEpB;AAAA,IACF;AAEM,UAAAC,IAAaI,EAAaL,CAAa;AAEjC,IAAAJ,EAAA,QAAQL,CAAG,IAAIU;AAAA,EAC7B,GAAG,CAAE,CAAA,GAECK,IAAOhB;AAAA,IACX,CAACC,GAAqBO,IAAuB,OAAS;;AAEhD,UAAAb,EAAqBM,CAAG,MAAM,QAAW;AACtB,SAAAgB,IAAAtB,EAAAM,CAAG,MAAH,QAAAgB,EACjB,KAAK,MAAM;AACX,UAAAH,EAAgBb,GAAKO,CAAW;AAAA,QAAA,GAEjC,MAAM,CAAOU,MAAA;AAEJ,kBAAA,IAAI,qBAAqBA,CAAG;AAAA,QAAA;AAGxC;AAAA,MACF;AAEA,MAAAJ,EAAgBb,GAAKO,CAAW;AAAA,IAClC;AAAA,IACA,CAACM,CAAe;AAAA,EAAA,GAGZK,IAAgBnB,EAAY,MAAM;AACtC,UAAMC,IAAMmB,EAAkB5B,CAAe,KAAKE,EAAe;AAE7D,IAAAF,IAAkB4B,EAAkB,SAAS,IAC/C5B,MAEkBA,IAAA,GAGpBe,EAAKN,CAAG;AAAA,EAAA,GACP,CAACM,CAAI,CAAC,GAEHc,IAAkBrB,EAAY,MACpBO,EAAKb,EAAe,MAAM,GAGvC,CAACa,CAAI,CAAC,GAEHe,IAAyBtB,EAAY,MAAM;AAC3C,IAAA,SAAS,oBAAoB,YAC9B,OAAO,KAAKP,CAAW,EAAuB,QAAQ,CAAOQ,MAAA;AACtD,YAAAsB,IAAQ9B,EAAYQ,CAAG;AAEzB,MAAAsB,KAAS,CAACA,EAAM,WAClBP,EAAKf,GAAK,EAAI,GACEG,EAAA,QAAQ,IAAIH,CAAG;AAAA,IACjC,CACD,GAGC,SAAS,oBAAoB,cACfG,EAAA,QAAQ,QAAQ,CAAOH,MAAA;AACrC,MAAAM,EAAKN,CAAG;AAAA,IAAA,CACT,GACDG,EAAgB,QAAQ;EAC1B,GACC,CAACG,GAAMS,CAAI,CAAC;AAEf,SAAAQ,EAAU,MAAM;AACL,aAAA,iBAAiB,oBAAoBF,CAAsB;AACpE,UAAMG,IAAWnB,EAAY;AAE7B,WAAO,MAAM;AACF,eAAA,oBAAoB,oBAAoBgB,CAAsB,GACvE,OAAO,OAAOG,CAAQ,EAAE,QAAQ,CAAMC,MAAA;AACpC,QAAAA,KAAM,cAAcA,CAAE;AAAA,MAAA,CACvB;AAAA,IAAA;AAAA,EACH,GACC,CAACJ,CAAsB,CAAC,GAEpB,EAAE,eAAAH,GAAe,MAAAZ,GAAM,MAAAS,GAAM,iBAAAK,EAAgB;AACtD;"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
const
|
|
1
|
+
const t = ["click", "keydown", "touchstart"];
|
|
2
2
|
export {
|
|
3
|
-
|
|
4
|
-
t as SMALL_AUDIO,
|
|
5
|
-
o as SMALL_VIDEO
|
|
3
|
+
t as EVENTS
|
|
6
4
|
};
|
|
7
5
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../src/features/hooks/use-auto-play-permission/constants.ts"],"sourcesContent":["export const EVENTS = ['click', 'keydown', 'touchstart'];\
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/features/hooks/use-auto-play-permission/constants.ts"],"sourcesContent":["export const EVENTS = ['click', 'keydown', 'touchstart'];\n"],"names":["EVENTS"],"mappings":"AAAO,MAAMA,IAAS,CAAC,SAAS,WAAW,YAAY;"}
|
package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.js
CHANGED
|
@@ -1,55 +1,36 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { createContext as
|
|
1
|
+
import { jsx as c } from "react/jsx-runtime";
|
|
2
|
+
import { createContext as i, useState as m, useEffect as l, useMemo as d } from "react";
|
|
3
3
|
import { useUIContext as f } from "../../ui/context/context.js";
|
|
4
|
-
import { EVENTS as
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
a(!0), c(!0), r.forEach((e) => {
|
|
14
|
-
document.removeEventListener(e, n);
|
|
4
|
+
import { EVENTS as o } from "./constants.js";
|
|
5
|
+
const P = i({
|
|
6
|
+
canAutoPlayAudio: !1
|
|
7
|
+
}), y = ({ children: s }) => {
|
|
8
|
+
const [n, r] = m(!1), { onEvent: u } = f();
|
|
9
|
+
l(() => {
|
|
10
|
+
const e = () => {
|
|
11
|
+
r(!0), o.forEach((t) => {
|
|
12
|
+
document.removeEventListener(t, e);
|
|
15
13
|
});
|
|
16
14
|
};
|
|
17
|
-
|
|
18
|
-
document.addEventListener(
|
|
15
|
+
o.forEach((t) => {
|
|
16
|
+
document.addEventListener(t, e);
|
|
19
17
|
});
|
|
20
|
-
const t = (e) => {
|
|
21
|
-
e instanceof DOMException ? e.name !== "NotAllowedError" && o(i.ERROR_LOADING_MEDIA, {
|
|
22
|
-
name: e.name
|
|
23
|
-
}) : (console.log(e), o(i.ERROR_LOADING_MEDIA, {
|
|
24
|
-
error: e
|
|
25
|
-
}));
|
|
26
|
-
};
|
|
27
|
-
try {
|
|
28
|
-
new Audio(y).play().then(() => {
|
|
29
|
-
a(!0);
|
|
30
|
-
}).catch(t);
|
|
31
|
-
} catch (e) {
|
|
32
|
-
t(e);
|
|
33
|
-
}
|
|
34
18
|
try {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}).catch(t).finally(() => {
|
|
39
|
-
e.remove();
|
|
40
|
-
});
|
|
41
|
-
} catch (e) {
|
|
42
|
-
t(e);
|
|
19
|
+
new AudioContext().state === "running" && r(!0);
|
|
20
|
+
} catch (t) {
|
|
21
|
+
console.log(t);
|
|
43
22
|
}
|
|
44
23
|
return () => {
|
|
45
|
-
|
|
46
|
-
document.removeEventListener(
|
|
24
|
+
o.forEach((t) => {
|
|
25
|
+
document.removeEventListener(t, e);
|
|
47
26
|
});
|
|
48
27
|
};
|
|
49
|
-
}, [
|
|
28
|
+
}, [u]);
|
|
29
|
+
const a = d(() => ({ canAutoPlayAudio: n }), [n]);
|
|
30
|
+
return /* @__PURE__ */ c(P.Provider, { value: a, children: s });
|
|
50
31
|
};
|
|
51
32
|
export {
|
|
52
|
-
|
|
53
|
-
|
|
33
|
+
P as AutoPlayPermissionContext,
|
|
34
|
+
y as AutoPlayPermissionProvider
|
|
54
35
|
};
|
|
55
36
|
//# sourceMappingURL=use-auto-play-permission-context-provider.js.map
|
|
@@ -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
|
|
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, useMemo } from 'react';\n\nimport { useUIContext } from '../../ui/context/context';\nimport { EVENTS } from './constants';\n\nexport const AutoPlayPermissionContext = createContext<IAutoPlayPermissionContextType>({\n canAutoPlayAudio: false,\n});\n\nexport const AutoPlayPermissionProvider: FC<{ children: ReactNode }> = ({ children }) => {\n const [canAutoPlayAudio, setCanAutoPlayAudio] = useState(false);\n const { onEvent } = useUIContext();\n\n useEffect(() => {\n const enableAutoplay = () => {\n setCanAutoPlayAudio(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 // audio autoplay check\n // way to check if autoplay is allowed by the browser for audio\n try {\n const context = new AudioContext();\n\n context.state === 'running' && setCanAutoPlayAudio(true);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log(err);\n }\n\n return () => {\n EVENTS.forEach(event => {\n document.removeEventListener(event, enableAutoplay);\n });\n };\n }, [onEvent]);\n\n const autoPlayPermission = useMemo(() => ({ canAutoPlayAudio }), [canAutoPlayAudio]);\n\n return (\n <AutoPlayPermissionContext.Provider value={autoPlayPermission}>\n {children}\n </AutoPlayPermissionContext.Provider>\n );\n};\n"],"names":["AutoPlayPermissionContext","createContext","AutoPlayPermissionProvider","children","canAutoPlayAudio","setCanAutoPlayAudio","useState","onEvent","useUIContext","useEffect","enableAutoplay","EVENTS","event","err","autoPlayPermission","useMemo"],"mappings":";;;;AAQO,MAAMA,IAA4BC,EAA8C;AAAA,EACrF,kBAAkB;AACpB,CAAC,GAEYC,IAA0D,CAAC,EAAE,UAAAC,QAAe;AACvF,QAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAAS,EAAK,GACxD,EAAE,SAAAC,MAAYC;AAEpB,EAAAC,EAAU,MAAM;AACd,UAAMC,IAAiB,MAAM;AAC3B,MAAAL,EAAoB,EAAI,GACxBM,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;AAIG,QAAA;AAGM,MAFQ,IAAI,eAEZ,UAAU,aAAaL,EAAoB,EAAI;AAAA,aAChDQ,GAAK;AAEZ,cAAQ,IAAIA,CAAG;AAAA,IACjB;AAEA,WAAO,MAAM;AACX,MAAAF,EAAO,QAAQ,CAASC,MAAA;AACb,iBAAA,oBAAoBA,GAAOF,CAAc;AAAA,MAAA,CACnD;AAAA,IAAA;AAAA,EACH,GACC,CAACH,CAAO,CAAC;AAEN,QAAAO,IAAqBC,EAAQ,OAAO,EAAE,kBAAAX,MAAqB,CAACA,CAAgB,CAAC;AAEnF,2BACGJ,EAA0B,UAA1B,EAAmC,OAAOc,GACxC,UAAAX,EACH,CAAA;AAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styled.js","sources":["../../../../src/features/milestone/milestone-list-container/styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nconst LoaderWrapper = styled.div(({ theme }) => {\n return `\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(204, 204, 204, 0.25);\n z-index:
|
|
1
|
+
{"version":3,"file":"styled.js","sources":["../../../../src/features/milestone/milestone-list-container/styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nconst LoaderWrapper = styled.div(({ theme }) => {\n return `\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(204, 204, 204, 0.25);\n z-index: 3;\n & * {\n pointer-events: none;\n }\n & img {\n top: 50%;\n position: absolute;\n left: 50%;\n transform: translate(-50%, -50%);\n width: ${theme.layout.gutter * 5}px;\n height: ${theme.layout.gutter * 5}px;\n filter: brightness(0);\n }\n `;\n});\n\nconst ContentWrapper = styled.div<{ $disablePointerEvents: boolean }>(\n ({ $disablePointerEvents }) => `\n position: relative;\n pointer-events: ${$disablePointerEvents ? 'none' : 'auto'};\n `,\n);\n\nexport { ContentWrapper, LoaderWrapper };\n"],"names":["LoaderWrapper","styled","theme","ContentWrapper","$disablePointerEvents"],"mappings":";AAEA,MAAMA,IAAgBC,EAAO,IAAI,CAAC,EAAE,OAAAC,QAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAgBQA,EAAM,OAAO,SAAS,CAAC;AAAA,kBACtBA,EAAM,OAAO,SAAS,CAAC;AAAA;AAAA;AAAA,KAIxC,GAEKC,IAAiBF,EAAO;AAAA,EAC5B,CAAC,EAAE,uBAAAG,EAAA,MAA4B;AAAA;AAAA,sBAEXA,IAAwB,SAAS,MAAM;AAAA;AAE7D;"}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { jsx as t, jsxs as
|
|
2
|
-
import
|
|
3
|
-
import { useRef as g, useCallback as
|
|
4
|
-
import
|
|
5
|
-
import G from "../../../chapters/
|
|
1
|
+
import { jsx as t, jsxs as N, Fragment as O } from "react/jsx-runtime";
|
|
2
|
+
import w from "../../../../node_modules/lodash.throttle/index.js";
|
|
3
|
+
import { useRef as g, useCallback as l, useMemo as F, useEffect as h } from "react";
|
|
4
|
+
import j from "../../../chapters-v2/chapter-details/chapter-details.js";
|
|
5
|
+
import { useGetChapterData as G } from "../../../chapters/api/chapter.js";
|
|
6
6
|
import H from "../../../milestone/milestone-list-container/milestone-list-container.js";
|
|
7
7
|
import M from "../../../ui/buttons/button/button.js";
|
|
8
|
-
import
|
|
9
|
-
import
|
|
8
|
+
import X from "../../../ui/layout/flex-view.js";
|
|
9
|
+
import B from "../../../ui/loader/app-loader/app-loader.js";
|
|
10
10
|
import U from "../../../ui/text/text.js";
|
|
11
|
-
import { useTrialSessionContext as
|
|
12
|
-
import { Container as
|
|
13
|
-
import { useLearningPlanScrollSync as
|
|
14
|
-
const
|
|
15
|
-
const { trialHomeData: L, studentId:
|
|
16
|
-
demo_info: { student_classroom_id: T, stream:
|
|
17
|
-
} = L || {}, { name:
|
|
18
|
-
publishScrollEvents:
|
|
19
|
-
closeChannel:
|
|
20
|
-
scrollPoints:
|
|
21
|
-
} =
|
|
22
|
-
get:
|
|
11
|
+
import { useTrialSessionContext as W } from "../../context/use-trial-session-context.js";
|
|
12
|
+
import { Container as q, Wrapper as z, ChapterWrapper as V } from "./learning-plan-styled.js";
|
|
13
|
+
import { useLearningPlanScrollSync as J } from "./use-learning-plan-scroll-sync.js";
|
|
14
|
+
const ae = () => {
|
|
15
|
+
const { trialHomeData: L, studentId: n, formData: y, isTeacher: r, updateSlideConfig: i } = W(), {
|
|
16
|
+
demo_info: { student_classroom_id: T, stream: I }
|
|
17
|
+
} = L || {}, { name: D = "", chapterId: c } = y || {}, o = g(null), a = g([]), u = g(!1), {
|
|
18
|
+
publishScrollEvents: d,
|
|
19
|
+
closeChannel: E,
|
|
20
|
+
scrollPoints: s
|
|
21
|
+
} = J(T), {
|
|
22
|
+
get: P,
|
|
23
23
|
data: m,
|
|
24
|
-
isProcessing:
|
|
25
|
-
isProcessingFailed:
|
|
24
|
+
isProcessing: R,
|
|
25
|
+
isProcessingFailed: $,
|
|
26
26
|
error: f
|
|
27
|
-
} =
|
|
28
|
-
|
|
29
|
-
studentId:
|
|
27
|
+
} = G(), C = l(() => {
|
|
28
|
+
c && n && P(c, void 0, {
|
|
29
|
+
studentId: n
|
|
30
30
|
}).then(() => {
|
|
31
31
|
const e = o.current;
|
|
32
32
|
e == null || e.scrollTo({
|
|
@@ -34,29 +34,29 @@ const he = () => {
|
|
|
34
34
|
behavior: "smooth"
|
|
35
35
|
});
|
|
36
36
|
});
|
|
37
|
-
}, [
|
|
37
|
+
}, [P, n, c]), b = l(
|
|
38
38
|
(e) => {
|
|
39
|
-
|
|
39
|
+
i({
|
|
40
40
|
chapterId: e.id
|
|
41
41
|
});
|
|
42
42
|
},
|
|
43
|
-
[
|
|
44
|
-
), x =
|
|
45
|
-
|
|
43
|
+
[i]
|
|
44
|
+
), x = l(() => {
|
|
45
|
+
i({
|
|
46
46
|
chapterId: void 0
|
|
47
47
|
});
|
|
48
|
-
}, [
|
|
49
|
-
a.current.length === 0 ||
|
|
48
|
+
}, [i]), v = l(() => {
|
|
49
|
+
a.current.length === 0 || u.current || (u.current = !0, d && d({
|
|
50
50
|
eventName: "TRIAL_SESSION_GOAL_PLAN_SCROLL",
|
|
51
51
|
eventPayload: {
|
|
52
52
|
scrollPoints: a.current
|
|
53
53
|
}
|
|
54
|
-
}), a.current = [],
|
|
55
|
-
}, [
|
|
54
|
+
}), a.current = [], u.current = !1);
|
|
55
|
+
}, [d]), A = F(() => w(v, 500), [v]), S = l(() => {
|
|
56
56
|
var p;
|
|
57
57
|
const e = ((p = o.current) == null ? void 0 : p.scrollTop) || 0;
|
|
58
|
-
a.current.push(e),
|
|
59
|
-
}, [
|
|
58
|
+
a.current.push(e), A();
|
|
59
|
+
}, [A]);
|
|
60
60
|
return h(() => {
|
|
61
61
|
C();
|
|
62
62
|
}, [C]), h(() => {
|
|
@@ -68,18 +68,18 @@ const he = () => {
|
|
|
68
68
|
}
|
|
69
69
|
}, [r, m, S]), h(() => {
|
|
70
70
|
const e = o.current;
|
|
71
|
-
if (
|
|
71
|
+
if (s && Array.isArray(s) && !r && e) {
|
|
72
72
|
const p = Math.floor(
|
|
73
|
-
|
|
73
|
+
s.reduce((k, _) => k + _, 0) / s.length
|
|
74
74
|
);
|
|
75
75
|
e.scrollTo({
|
|
76
76
|
top: p,
|
|
77
77
|
behavior: "smooth"
|
|
78
78
|
});
|
|
79
79
|
}
|
|
80
|
-
}, [
|
|
81
|
-
|
|
82
|
-
}, [
|
|
80
|
+
}, [s, r]), h(() => () => {
|
|
81
|
+
E();
|
|
82
|
+
}, [E]), R ? /* @__PURE__ */ t(B, { height: "100%" }) : $ ? /* @__PURE__ */ N(X, { $height: "100%", $flexGapX: 1.5, $alignItems: "center", $justifyContent: "center", children: [
|
|
83
83
|
/* @__PURE__ */ t(U, { $renderAs: "h6", children: (f == null ? void 0 : f.message) || "Oops! Something went wrong." }),
|
|
84
84
|
/* @__PURE__ */ t(
|
|
85
85
|
M,
|
|
@@ -92,40 +92,37 @@ const he = () => {
|
|
|
92
92
|
onClick: C
|
|
93
93
|
}
|
|
94
94
|
)
|
|
95
|
-
] }) : /* @__PURE__ */ t(
|
|
96
|
-
|
|
95
|
+
] }) : /* @__PURE__ */ t(q, { ref: o, $isScrollable: r, children: /* @__PURE__ */ t(
|
|
96
|
+
z,
|
|
97
97
|
{
|
|
98
98
|
$clickable: r,
|
|
99
99
|
$gutterX: 2,
|
|
100
100
|
$isScrollable: r,
|
|
101
101
|
id: "milestone-list-element-container",
|
|
102
|
-
children:
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}
|
|
112
|
-
) })
|
|
113
|
-
] }) : /* @__PURE__ */ t(
|
|
102
|
+
children: c && m ? /* @__PURE__ */ t(O, { children: /* @__PURE__ */ t(V, { children: /* @__PURE__ */ t(
|
|
103
|
+
j,
|
|
104
|
+
{
|
|
105
|
+
userChapterId: m.id,
|
|
106
|
+
studentId: n,
|
|
107
|
+
userType: r ? "TEACHER" : "STUDENT",
|
|
108
|
+
onExit: x
|
|
109
|
+
}
|
|
110
|
+
) }) }) : /* @__PURE__ */ t(
|
|
114
111
|
H,
|
|
115
112
|
{
|
|
116
113
|
userType: r ? "TEACHER" : "STUDENT",
|
|
117
|
-
studentName:
|
|
118
|
-
studentId:
|
|
114
|
+
studentName: D,
|
|
115
|
+
studentId: n,
|
|
119
116
|
studentClassroomId: T,
|
|
120
117
|
milestoneType: "DRAFT",
|
|
121
|
-
onChapterClick:
|
|
122
|
-
courseStream:
|
|
118
|
+
onChapterClick: b,
|
|
119
|
+
courseStream: I
|
|
123
120
|
}
|
|
124
121
|
)
|
|
125
122
|
}
|
|
126
123
|
) });
|
|
127
124
|
};
|
|
128
125
|
export {
|
|
129
|
-
|
|
126
|
+
ae as default
|
|
130
127
|
};
|
|
131
128
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/features/trial-session/comps/learning-plan/index.tsx"],"sourcesContent":["import type { IChapterDataProps } from '../../../chapters/chapter/chapter-types';\n\nimport throttle from 'lodash.throttle';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport { useGetChapterData } from '../../../chapters/api/chapter';\nimport Chapter from '../../../chapters/chapter/chapter';\nimport MilestoneList from '../../../milestone/milestone-list-container/milestone-list-container';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport * as Styled from './learning-plan-styled';\nimport { useLearningPlanScrollSync } from './use-learning-plan-scroll-sync';\n\nconst LearningPlan: React.FC = () => {\n const { trialHomeData, studentId, teacherId, formData, isTeacher, updateSlideConfig } =\n useTrialSessionContext();\n const {\n demo_info: { student_classroom_id: studentClassroomId, stream },\n } = trialHomeData || {};\n const { name = '', chapterId } = formData || {};\n\n const containerRef = useRef<HTMLDivElement>(null);\n const scrollPointsRef = useRef<number[]>([]);\n const isSendingScrollPointsRef = useRef(false);\n\n const {\n publishScrollEvents,\n closeChannel,\n scrollPoints: receivedScrollPoints,\n } = useLearningPlanScrollSync(studentClassroomId);\n\n const {\n get: getChapterData,\n data: chapterData,\n isProcessing,\n isProcessingFailed,\n error,\n } = useGetChapterData();\n\n const fetchChapter = useCallback(() => {\n if (chapterId && studentId) {\n getChapterData(chapterId, undefined, {\n studentId,\n }).then(() => {\n const scrollElement = containerRef.current;\n\n scrollElement?.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n });\n }\n }, [getChapterData, studentId, chapterId]);\n\n const handleOnChapterClick = useCallback(\n (chapter: IChapterDataProps) => {\n updateSlideConfig({\n chapterId: chapter.id,\n });\n },\n [updateSlideConfig],\n );\n\n const handleOnBackIconClick = useCallback(() => {\n updateSlideConfig({\n chapterId: undefined,\n });\n }, [updateSlideConfig]);\n\n const sendScrollPoints = useCallback(() => {\n if (scrollPointsRef.current.length === 0 || isSendingScrollPointsRef.current) return;\n\n isSendingScrollPointsRef.current = true;\n\n if (publishScrollEvents) {\n publishScrollEvents({\n eventName: 'TRIAL_SESSION_GOAL_PLAN_SCROLL',\n eventPayload: {\n scrollPoints: scrollPointsRef.current,\n },\n });\n }\n\n scrollPointsRef.current = [];\n isSendingScrollPointsRef.current = false;\n }, [publishScrollEvents]);\n\n const throttleSend = useMemo(() => throttle(sendScrollPoints, 500), [sendScrollPoints]);\n\n const handleScroll = useCallback(() => {\n const scrollPoint = containerRef.current?.scrollTop || 0;\n\n scrollPointsRef.current.push(scrollPoint);\n\n throttleSend();\n }, [throttleSend]);\n\n useEffect(() => {\n fetchChapter();\n }, [fetchChapter]);\n\n useEffect(() => {\n if (containerRef.current) {\n if ((chapterData && isTeacher) || isTeacher) {\n const scrollElement = containerRef.current;\n\n scrollElement.addEventListener('scroll', handleScroll);\n\n return () => {\n if (scrollElement) {\n scrollElement.removeEventListener('scroll', handleScroll);\n }\n };\n }\n }\n }, [isTeacher, chapterData, handleScroll]);\n\n useEffect(() => {\n const scrollElement = containerRef.current;\n\n if (\n receivedScrollPoints &&\n Array.isArray(receivedScrollPoints) &&\n !isTeacher &&\n scrollElement\n ) {\n const averageScroll = Math.floor(\n receivedScrollPoints.reduce((a, b) => a + b, 0) / receivedScrollPoints.length,\n );\n\n scrollElement.scrollTo({\n top: averageScroll,\n behavior: 'smooth',\n });\n }\n }, [receivedScrollPoints, isTeacher]);\n\n useEffect(() => {\n return () => {\n closeChannel();\n };\n }, [closeChannel]);\n\n if (isProcessing) {\n return <AppLoader height=\"100%\" />;\n }\n\n if (isProcessingFailed) {\n return (\n <FlexView $height=\"100%\" $flexGapX={1.5} $alignItems=\"center\" $justifyContent=\"center\">\n <Text $renderAs=\"h6\">{error?.message || 'Oops! Something went wrong.'}</Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n onClick={fetchChapter}\n />\n </FlexView>\n );\n }\n\n return (\n <Styled.Container ref={containerRef} $isScrollable={isTeacher}>\n <Styled.Wrapper\n $clickable={isTeacher}\n $gutterX={2}\n $isScrollable={isTeacher}\n id=\"milestone-list-element-container\"\n >\n {chapterId && chapterData ? (\n <>\n <Styled.BackIconWrapper>\n <Styled.BackIcon $clickable={isTeacher} onClick={handleOnBackIconClick} />\n </Styled.BackIconWrapper>\n\n <Styled.ChapterWrapper>\n <Chapter\n user_type={isTeacher ? 'TEACHER' : 'STUDENT'}\n teacherId={teacherId}\n {...chapterData}\n loading={isProcessing}\n />\n </Styled.ChapterWrapper>\n </>\n ) : (\n <MilestoneList\n userType={isTeacher ? 'TEACHER' : 'STUDENT'}\n studentName={name}\n studentId={studentId}\n studentClassroomId={studentClassroomId}\n milestoneType=\"DRAFT\"\n onChapterClick={handleOnChapterClick}\n courseStream={stream}\n />\n )}\n </Styled.Wrapper>\n </Styled.Container>\n );\n};\n\nexport default LearningPlan;\n"],"names":["LearningPlan","trialHomeData","studentId","teacherId","formData","isTeacher","updateSlideConfig","useTrialSessionContext","studentClassroomId","stream","name","chapterId","containerRef","useRef","scrollPointsRef","isSendingScrollPointsRef","publishScrollEvents","closeChannel","receivedScrollPoints","useLearningPlanScrollSync","getChapterData","chapterData","isProcessing","isProcessingFailed","error","useGetChapterData","fetchChapter","useCallback","scrollElement","handleOnChapterClick","chapter","handleOnBackIconClick","sendScrollPoints","throttleSend","useMemo","throttle","handleScroll","scrollPoint","_a","useEffect","averageScroll","a","b","jsx","AppLoader","jsxs","FlexView","Text","Button","Styled.Container","Styled.Wrapper","Fragment","Styled.BackIconWrapper","Styled.BackIcon","Styled.ChapterWrapper","Chapter","MilestoneList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/features/trial-session/comps/learning-plan/index.tsx"],"sourcesContent":["import type { IChapterDataProps } from '../../../chapters/chapter/chapter-types';\n\nimport throttle from 'lodash.throttle';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport ChapterDetails from '../../../chapters-v2/chapter-details/chapter-details';\nimport { useGetChapterData } from '../../../chapters/api/chapter';\nimport MilestoneList from '../../../milestone/milestone-list-container/milestone-list-container';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport * as Styled from './learning-plan-styled';\nimport { useLearningPlanScrollSync } from './use-learning-plan-scroll-sync';\n\nconst LearningPlan: React.FC = () => {\n const { trialHomeData, studentId, formData, isTeacher, updateSlideConfig } =\n useTrialSessionContext();\n const {\n demo_info: { student_classroom_id: studentClassroomId, stream },\n } = trialHomeData || {};\n const { name = '', chapterId } = formData || {};\n\n const containerRef = useRef<HTMLDivElement>(null);\n const scrollPointsRef = useRef<number[]>([]);\n const isSendingScrollPointsRef = useRef(false);\n\n const {\n publishScrollEvents,\n closeChannel,\n scrollPoints: receivedScrollPoints,\n } = useLearningPlanScrollSync(studentClassroomId);\n\n const {\n get: getChapterData,\n data: chapterData,\n isProcessing,\n isProcessingFailed,\n error,\n } = useGetChapterData();\n\n const fetchChapter = useCallback(() => {\n if (chapterId && studentId) {\n getChapterData(chapterId, undefined, {\n studentId,\n }).then(() => {\n const scrollElement = containerRef.current;\n\n scrollElement?.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n });\n }\n }, [getChapterData, studentId, chapterId]);\n\n const handleOnChapterClick = useCallback(\n (chapter: IChapterDataProps) => {\n updateSlideConfig({\n chapterId: chapter.id,\n });\n },\n [updateSlideConfig],\n );\n\n const handleOnBackIconClick = useCallback(() => {\n updateSlideConfig({\n chapterId: undefined,\n });\n }, [updateSlideConfig]);\n\n const sendScrollPoints = useCallback(() => {\n if (scrollPointsRef.current.length === 0 || isSendingScrollPointsRef.current) return;\n\n isSendingScrollPointsRef.current = true;\n\n if (publishScrollEvents) {\n publishScrollEvents({\n eventName: 'TRIAL_SESSION_GOAL_PLAN_SCROLL',\n eventPayload: {\n scrollPoints: scrollPointsRef.current,\n },\n });\n }\n\n scrollPointsRef.current = [];\n isSendingScrollPointsRef.current = false;\n }, [publishScrollEvents]);\n\n const throttleSend = useMemo(() => throttle(sendScrollPoints, 500), [sendScrollPoints]);\n\n const handleScroll = useCallback(() => {\n const scrollPoint = containerRef.current?.scrollTop || 0;\n\n scrollPointsRef.current.push(scrollPoint);\n\n throttleSend();\n }, [throttleSend]);\n\n useEffect(() => {\n fetchChapter();\n }, [fetchChapter]);\n\n useEffect(() => {\n if (containerRef.current) {\n if ((chapterData && isTeacher) || isTeacher) {\n const scrollElement = containerRef.current;\n\n scrollElement.addEventListener('scroll', handleScroll);\n\n return () => {\n if (scrollElement) {\n scrollElement.removeEventListener('scroll', handleScroll);\n }\n };\n }\n }\n }, [isTeacher, chapterData, handleScroll]);\n\n useEffect(() => {\n const scrollElement = containerRef.current;\n\n if (\n receivedScrollPoints &&\n Array.isArray(receivedScrollPoints) &&\n !isTeacher &&\n scrollElement\n ) {\n const averageScroll = Math.floor(\n receivedScrollPoints.reduce((a, b) => a + b, 0) / receivedScrollPoints.length,\n );\n\n scrollElement.scrollTo({\n top: averageScroll,\n behavior: 'smooth',\n });\n }\n }, [receivedScrollPoints, isTeacher]);\n\n useEffect(() => {\n return () => {\n closeChannel();\n };\n }, [closeChannel]);\n\n if (isProcessing) {\n return <AppLoader height=\"100%\" />;\n }\n\n if (isProcessingFailed) {\n return (\n <FlexView $height=\"100%\" $flexGapX={1.5} $alignItems=\"center\" $justifyContent=\"center\">\n <Text $renderAs=\"h6\">{error?.message || 'Oops! Something went wrong.'}</Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n onClick={fetchChapter}\n />\n </FlexView>\n );\n }\n\n return (\n <Styled.Container ref={containerRef} $isScrollable={isTeacher}>\n <Styled.Wrapper\n $clickable={isTeacher}\n $gutterX={2}\n $isScrollable={isTeacher}\n id=\"milestone-list-element-container\"\n >\n {chapterId && chapterData ? (\n <>\n <Styled.ChapterWrapper>\n <ChapterDetails\n userChapterId={chapterData.id}\n studentId={studentId}\n userType={isTeacher ? 'TEACHER' : 'STUDENT'}\n onExit={handleOnBackIconClick}\n />\n </Styled.ChapterWrapper>\n </>\n ) : (\n <MilestoneList\n userType={isTeacher ? 'TEACHER' : 'STUDENT'}\n studentName={name}\n studentId={studentId}\n studentClassroomId={studentClassroomId}\n milestoneType=\"DRAFT\"\n onChapterClick={handleOnChapterClick}\n courseStream={stream}\n />\n )}\n </Styled.Wrapper>\n </Styled.Container>\n );\n};\n\nexport default LearningPlan;\n"],"names":["LearningPlan","trialHomeData","studentId","formData","isTeacher","updateSlideConfig","useTrialSessionContext","studentClassroomId","stream","name","chapterId","containerRef","useRef","scrollPointsRef","isSendingScrollPointsRef","publishScrollEvents","closeChannel","receivedScrollPoints","useLearningPlanScrollSync","getChapterData","chapterData","isProcessing","isProcessingFailed","error","useGetChapterData","fetchChapter","useCallback","scrollElement","handleOnChapterClick","chapter","handleOnBackIconClick","sendScrollPoints","throttleSend","useMemo","throttle","handleScroll","scrollPoint","_a","useEffect","averageScroll","a","b","jsx","AppLoader","jsxs","FlexView","Text","Button","Styled.Container","Styled.Wrapper","Fragment","Styled.ChapterWrapper","ChapterDetails","MilestoneList"],"mappings":"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"}
|
|
@@ -1,56 +1,48 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from "styled-components";
|
|
2
2
|
import p from "../../../../assets/line-icons/icons/back2.js";
|
|
3
|
-
import
|
|
4
|
-
const
|
|
3
|
+
import r from "../../../ui/layout/flex-view.js";
|
|
4
|
+
const l = t.div(({ $isScrollable: o }) => `
|
|
5
5
|
overflow-y: auto;
|
|
6
|
-
pointer-events: ${
|
|
7
|
-
`),
|
|
6
|
+
pointer-events: ${o ? "auto" : "none"};
|
|
7
|
+
`), u = t(r)(({ $clickable: o, $isScrollable: e }) => `
|
|
8
8
|
& > * {
|
|
9
9
|
pointer-events: ${e ? "auto" : "none"};
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
cursor: not-allowed;
|
|
13
13
|
|
|
14
|
-
${
|
|
14
|
+
${o && `
|
|
15
15
|
& .goal-widget-chapter-item {
|
|
16
16
|
pointer-events: auto;
|
|
17
17
|
}
|
|
18
18
|
`}
|
|
19
19
|
|
|
20
20
|
`);
|
|
21
|
-
|
|
21
|
+
t(r)`
|
|
22
22
|
position: relative;
|
|
23
23
|
overflow: auto;
|
|
24
24
|
`;
|
|
25
|
-
const
|
|
25
|
+
const c = t(r)`
|
|
26
26
|
& > * {
|
|
27
27
|
pointer-events: none;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
cursor: not-allowed;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
top: 0;
|
|
35
|
-
z-index: 1;
|
|
36
|
-
padding: 16px;
|
|
37
|
-
height: 100%;
|
|
38
|
-
`, v = o(p)(({ theme: t, $clickable: e }) => {
|
|
39
|
-
const { gutter: r } = t.layout;
|
|
31
|
+
`;
|
|
32
|
+
t(p)(({ theme: o, $clickable: e }) => {
|
|
33
|
+
const { gutter: n } = o.layout;
|
|
40
34
|
return `
|
|
41
35
|
position: sticky;
|
|
42
36
|
top: 16px;
|
|
43
37
|
left: 24px;
|
|
44
|
-
width: ${
|
|
45
|
-
height: ${
|
|
38
|
+
width: ${n * 2.5}px;
|
|
39
|
+
height: ${n * 2.5}px;
|
|
46
40
|
cursor: ${e ? "pointer" : "not-allowed"};
|
|
47
41
|
`;
|
|
48
42
|
});
|
|
49
43
|
export {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
u as
|
|
53
|
-
c as Container,
|
|
54
|
-
l as Wrapper
|
|
44
|
+
c as ChapterWrapper,
|
|
45
|
+
l as Container,
|
|
46
|
+
u as Wrapper
|
|
55
47
|
};
|
|
56
48
|
//# sourceMappingURL=learning-plan-styled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learning-plan-styled.js","sources":["../../../../../src/features/trial-session/comps/learning-plan/learning-plan-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport Back2Icon from '../../../../assets/line-icons/icons/back2';\nimport FlexView from '../../../ui/layout/flex-view';\n\ninterface IStyledContainer {\n $isScrollable?: boolean;\n}\n\nconst Container = styled.div<IStyledContainer>(({ $isScrollable }) => {\n return `\n overflow-y: auto;\n pointer-events: ${$isScrollable ? 'auto' : 'none'};\n `;\n});\n\ninterface IWrapper {\n $clickable: boolean;\n $isScrollable?: boolean;\n}\n\nconst Wrapper = styled(FlexView)<IWrapper>(({ $clickable, $isScrollable }) => {\n return `\n & > * {\n pointer-events: ${$isScrollable ? 'auto' : 'none'};\n }\n \n cursor: not-allowed;\n\n ${\n $clickable &&\n `\n & .goal-widget-chapter-item {\n pointer-events: auto;\n }\n `\n }\n\n `;\n});\n\nconst ChapterContainer = styled(FlexView)`\n position: relative;\n overflow: auto;\n`;\n\nconst ChapterWrapper = styled(FlexView)`\n & > * {\n pointer-events: none;\n }\n\n cursor: not-allowed;\n`;\n\nconst
|
|
1
|
+
{"version":3,"file":"learning-plan-styled.js","sources":["../../../../../src/features/trial-session/comps/learning-plan/learning-plan-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport Back2Icon from '../../../../assets/line-icons/icons/back2';\nimport FlexView from '../../../ui/layout/flex-view';\n\ninterface IStyledContainer {\n $isScrollable?: boolean;\n}\n\nconst Container = styled.div<IStyledContainer>(({ $isScrollable }) => {\n return `\n overflow-y: auto;\n pointer-events: ${$isScrollable ? 'auto' : 'none'};\n `;\n});\n\ninterface IWrapper {\n $clickable: boolean;\n $isScrollable?: boolean;\n}\n\nconst Wrapper = styled(FlexView)<IWrapper>(({ $clickable, $isScrollable }) => {\n return `\n & > * {\n pointer-events: ${$isScrollable ? 'auto' : 'none'};\n }\n \n cursor: not-allowed;\n\n ${\n $clickable &&\n `\n & .goal-widget-chapter-item {\n pointer-events: auto;\n }\n `\n }\n\n `;\n});\n\nconst ChapterContainer = styled(FlexView)`\n position: relative;\n overflow: auto;\n`;\n\nconst ChapterWrapper = styled(FlexView)`\n & > * {\n pointer-events: none;\n }\n\n cursor: not-allowed;\n`;\n\nconst BackIcon = styled(Back2Icon)<IWrapper>(({ theme, $clickable }) => {\n const { gutter } = theme.layout;\n\n return `\n position: sticky;\n top: 16px;\n left: 24px;\n width: ${gutter * 2.5}px;\n height: ${gutter * 2.5}px;\n cursor: ${$clickable ? 'pointer' : 'not-allowed'};\n `;\n});\n\nexport { Container, Wrapper, BackIcon, ChapterContainer, ChapterWrapper };\n"],"names":["Container","styled","$isScrollable","Wrapper","FlexView","$clickable","ChapterWrapper","Back2Icon","theme","gutter"],"mappings":";;;AASA,MAAMA,IAAYC,EAAO,IAAsB,CAAC,EAAE,eAAAC,QACzC;AAAA;AAAA,sBAEaA,IAAgB,SAAS,MAAM;AAAA,GAEpD,GAOKC,IAAUF,EAAOG,CAAQ,EAAY,CAAC,EAAE,YAAAC,GAAY,eAAAH,QACjD;AAAA;AAAA,wBAEeA,IAAgB,SAAS,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,MAMjDG,KACA;AAAA;AAAA;AAAA;AAAA,KAKF;AAAA;AAAA,GAGH;AAEwBJ,EAAOG,CAAQ;AAAA;AAAA;AAAA;AAKlC,MAAAE,IAAiBL,EAAOG,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQrBH,EAAOM,CAAS,EAAY,CAAC,EAAE,OAAAC,GAAO,YAAAH,QAAiB;AAChE,QAAA,EAAE,QAAAI,EAAO,IAAID,EAAM;AAElB,SAAA;AAAA;AAAA;AAAA;AAAA,aAIIC,IAAS,GAAG;AAAA,cACXA,IAAS,GAAG;AAAA,cACZJ,IAAa,YAAY,aAAa;AAAA;AAEpD,CAAC;"}
|
|
@@ -55,7 +55,7 @@ const a = n`
|
|
|
55
55
|
top: 0;
|
|
56
56
|
right: 0;
|
|
57
57
|
justify-self: center;
|
|
58
|
-
z-index:
|
|
58
|
+
z-index: 4;
|
|
59
59
|
padding: 4px 12px 6px;
|
|
60
60
|
`, b = e(p)(
|
|
61
61
|
({ theme: { layout: t, colors: o } }) => `
|
|
@@ -65,7 +65,7 @@ const a = n`
|
|
|
65
65
|
transform: translateX(-50%);
|
|
66
66
|
display: flex;
|
|
67
67
|
align-items: center;
|
|
68
|
-
z-index:
|
|
68
|
+
z-index: 4;
|
|
69
69
|
padding: 0px ${t.gutter * 0.75}px;
|
|
70
70
|
background-color: ${o.BLACK_5};
|
|
71
71
|
height: ${t.gutter * 1.75}px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"right-panel-styled.js","sources":["../../../../src/features/trial-session/right-panel/right-panel-styled.tsx"],"sourcesContent":["import styled, { keyframes } from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport { RIGHT_PANEL_WIDTH } from '../trial-session-constants';\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n`;\n\nconst Container = styled.div<{ $readOnly: boolean; $isTeacher: boolean }>(\n ({ $readOnly, $isTeacher, theme: { colors } }) => {\n return `\n position: relative;\n width: ${RIGHT_PANEL_WIDTH}px;\n height: 100%;\n background-color: white;\n flex-shrink: 0;\n z-index: 1;\n overflow: hidden;\n ${$readOnly ? `cursor: not-allowed;` : ''}\n ${\n $isTeacher\n ? `border: 4px solid ${colors.GREEN_4};`\n : `\n border-left: 1px solid ${colors.WHITE_5};\n border-right: 1px solid ${colors.WHITE_5};\n `\n }\n `;\n },\n);\n\nconst SlideWrapper = styled(FlexView)<{ $minDevice: boolean; $readOnly: boolean }>(\n ({ $minDevice, $readOnly, theme: { layout } }) => `\n ${\n $minDevice\n ? `\n height: calc(100% + ${layout.gutter * 3.125}px);\n transform: translateY(-${layout.gutter * 3.125}px);\n `\n : ''\n }\n ${$readOnly ? `pointer-events: none;` : ''}\n `,\n);\n\nconst Animation = styled.div`\n width: inherit;\n height: 100%;\n animation: ${fadeIn} 0.3s ease-in-out;\n`;\n\nconst Wrapper = styled.div<{ $readOnly: boolean }>(\n ({ $readOnly }) => `\n width: 950px;\n height: 100%;\n transform: translateX(-11px);\n ${$readOnly ? `pointer-events: none;` : ''}\n`,\n);\n\nconst GridWrapper = styled.div`\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n z-index: -1;\n`;\n\nconst SharedTag = styled(FlexView)`\n position: absolute;\n top: 0;\n right: 0;\n justify-self: center;\n z-index:
|
|
1
|
+
{"version":3,"file":"right-panel-styled.js","sources":["../../../../src/features/trial-session/right-panel/right-panel-styled.tsx"],"sourcesContent":["import styled, { keyframes } from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport { RIGHT_PANEL_WIDTH } from '../trial-session-constants';\n\nconst fadeIn = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n`;\n\nconst Container = styled.div<{ $readOnly: boolean; $isTeacher: boolean }>(\n ({ $readOnly, $isTeacher, theme: { colors } }) => {\n return `\n position: relative;\n width: ${RIGHT_PANEL_WIDTH}px;\n height: 100%;\n background-color: white;\n flex-shrink: 0;\n z-index: 1;\n overflow: hidden;\n ${$readOnly ? `cursor: not-allowed;` : ''}\n ${\n $isTeacher\n ? `border: 4px solid ${colors.GREEN_4};`\n : `\n border-left: 1px solid ${colors.WHITE_5};\n border-right: 1px solid ${colors.WHITE_5};\n `\n }\n `;\n },\n);\n\nconst SlideWrapper = styled(FlexView)<{ $minDevice: boolean; $readOnly: boolean }>(\n ({ $minDevice, $readOnly, theme: { layout } }) => `\n ${\n $minDevice\n ? `\n height: calc(100% + ${layout.gutter * 3.125}px);\n transform: translateY(-${layout.gutter * 3.125}px);\n `\n : ''\n }\n ${$readOnly ? `pointer-events: none;` : ''}\n `,\n);\n\nconst Animation = styled.div`\n width: inherit;\n height: 100%;\n animation: ${fadeIn} 0.3s ease-in-out;\n`;\n\nconst Wrapper = styled.div<{ $readOnly: boolean }>(\n ({ $readOnly }) => `\n width: 950px;\n height: 100%;\n transform: translateX(-11px);\n ${$readOnly ? `pointer-events: none;` : ''}\n`,\n);\n\nconst GridWrapper = styled.div`\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n z-index: -1;\n`;\n\nconst SharedTag = styled(FlexView)`\n position: absolute;\n top: 0;\n right: 0;\n justify-self: center;\n z-index: 4;\n padding: 4px 12px 6px;\n`;\n\nconst ParentDiscussion = styled(Text)(\n ({ theme: { layout, colors } }) => `\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n align-items: center;\n z-index: 4;\n padding: 0px ${layout.gutter * 0.75}px;\n background-color: ${colors.BLACK_5};\n height: ${layout.gutter * 1.75}px;\n`,\n);\n\nexport { Container, Animation, Wrapper, GridWrapper, SlideWrapper, SharedTag, ParentDiscussion };\n"],"names":["fadeIn","keyframes","Container","styled","$readOnly","$isTeacher","colors","RIGHT_PANEL_WIDTH","SlideWrapper","FlexView","$minDevice","layout","Animation","Wrapper","GridWrapper","SharedTag","ParentDiscussion","Text"],"mappings":";;;;AAMA,MAAMA,IAASC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASTC,IAAYC,EAAO;AAAA,EACvB,CAAC,EAAE,WAAAC,GAAW,YAAAC,GAAY,OAAO,EAAE,QAAAC,UAC1B;AAAA;AAAA,eAEIC,CAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMxBH,IAAY,yBAAyB,EAAE;AAAA,QAEvCC,IACI,qBAAqBC,EAAO,OAAO,MACnC;AAAA,qCACyBA,EAAO,OAAO;AAAA,sCACbA,EAAO,OAAO;AAAA,WAE9C;AAAA;AAGN,GAEME,IAAeL,EAAOM,CAAQ;AAAA,EAClC,CAAC,EAAE,YAAAC,GAAY,WAAAN,GAAW,OAAO,EAAE,QAAAO,UAAe;AAAA,MAE9CD,IACI;AAAA,gCACsBC,EAAO,SAAS,KAAK;AAAA,mCAClBA,EAAO,SAAS,KAAK;AAAA,YAE9C,EACN;AAAA,MACEP,IAAY,0BAA0B,EAAE;AAAA;AAE9C,GAEMQ,IAAYT,EAAO;AAAA;AAAA;AAAA,eAGVH,CAAM;AAAA,GAGfa,IAAUV,EAAO;AAAA,EACrB,CAAC,EAAE,WAAAC,EAAA,MAAgB;AAAA;AAAA;AAAA;AAAA,IAIjBA,IAAY,0BAA0B,EAAE;AAAA;AAE5C,GAEMU,IAAcX,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASrBY,IAAYZ,EAAOM,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAS3BO,IAAmBb,EAAOc,CAAI;AAAA,EAClC,CAAC,EAAE,OAAO,EAAE,QAAAN,GAAQ,QAAAL,EAAA,EAAe,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAQpBK,EAAO,SAAS,IAAI;AAAA,sBACfL,EAAO,OAAO;AAAA,YACxBK,EAAO,SAAS,IAAI;AAAA;AAEhC;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -667,7 +667,6 @@ declare interface IAuthTab {
|
|
|
667
667
|
|
|
668
668
|
declare interface IAutoPlayPermissionContextType {
|
|
669
669
|
canAutoPlayAudio: boolean;
|
|
670
|
-
canAutoPlayVideo: boolean;
|
|
671
670
|
}
|
|
672
671
|
|
|
673
672
|
declare interface IAvatarLayer {
|
|
@@ -5778,7 +5777,7 @@ export declare const useCircleSounds: () => {
|
|
|
5778
5777
|
playSwipSound: () => void;
|
|
5779
5778
|
play: (key: CircleSoundKey, immediately?: boolean, loop?: boolean) => HTMLAudioElement | undefined;
|
|
5780
5779
|
stop: (key: CircleSoundKey, immediately?: boolean) => void;
|
|
5781
|
-
playButtonSound: () =>
|
|
5780
|
+
playButtonSound: () => HTMLAudioElement | undefined;
|
|
5782
5781
|
};
|
|
5783
5782
|
|
|
5784
5783
|
export declare const useClassTimeAlerts: ({ alertLevel, classStartedOn, classDuration, onUpdateClassTimeAlertConfig, }: IUseClassTimeAlerts) => {
|
package/package.json
CHANGED
package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-analytics-events.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { PLUGINS as _ } from "../../../node_modules/@cuemath/analytics-v2/dist/constants.js";
|
|
2
|
-
var I = /* @__PURE__ */ ((r) => (r.ERROR_LOADING_MEDIA = "error_loading_media", r))(I || {});
|
|
3
|
-
const E = {
|
|
4
|
-
error_loading_media: [_.MIXPANEL]
|
|
5
|
-
};
|
|
6
|
-
export {
|
|
7
|
-
I as USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS,
|
|
8
|
-
E as USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=use-auto-play-permission-analytics-events.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-auto-play-permission-analytics-events.js","sources":["../../../../src/features/hooks/use-auto-play-permission/use-auto-play-permission-analytics-events.ts"],"sourcesContent":["import { PLUGINS } from '@cuemath/analytics-v2/dist/constants';\n\nexport enum USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS {\n ERROR_LOADING_MEDIA = 'error_loading_media',\n}\n\nexport const USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS = {\n [USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS.ERROR_LOADING_MEDIA]: [PLUGINS.MIXPANEL],\n};\n"],"names":["USE_AUTO_PLAY_PERMISSION_ANALYTICS_EVENTS","USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS","PLUGINS"],"mappings":";AAEY,IAAAA,sBAAAA,OACVA,EAAA,sBAAsB,uBADZA,IAAAA,KAAA,CAAA,CAAA;AAIL,MAAMC,IAAsD;AAAA,EAChE,qBAAgE,CAACC,EAAQ,QAAQ;AACpF;"}
|