@cuemath/leap 3.5.71-as1 → 3.5.71-j3
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/chapters-v2/comps/node-card/node-card-types.js.map +1 -1
- package/dist/features/homework/homework-card.js +215 -198
- package/dist/features/homework/homework-card.js.map +1 -1
- package/dist/features/math-fit/math-fit-overview/math-fit-overview-types.js.map +1 -1
- package/dist/features/math-fit/math-fit-overview/math-fit-overview.js +16 -16
- package/dist/features/math-fit/math-fit-overview/math-fit-overview.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js +66 -61
- package/dist/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js +41 -40
- package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/search-chapter/search-chapters.js +32 -25
- package/dist/features/milestone/create/comps/add-custom-chapter/search-chapter/search-chapters.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapter-item.js +14 -12
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapter-item.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapters.js +17 -10
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/selected-chapters.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/tags-render.js +6 -6
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/tags-render.js.map +1 -1
- package/dist/features/milestone/create/comps/body-layout/body-layout.js +23 -22
- package/dist/features/milestone/create/comps/body-layout/body-layout.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +78 -75
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
- package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js +53 -49
- package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-styled.js +10 -8
- package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
- package/dist/features/milestone/create/milestone-create.js +53 -49
- package/dist/features/milestone/create/milestone-create.js.map +1 -1
- package/dist/features/milestone/edit/goal-draft-edit-sync.js +26 -0
- package/dist/features/milestone/edit/goal-draft-edit-sync.js.map +1 -0
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +80 -72
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
- package/dist/features/milestone/edit/hooks/use-milestone-edit-sync.js +82 -0
- package/dist/features/milestone/edit/hooks/use-milestone-edit-sync.js.map +1 -0
- package/dist/features/milestone/milestone-list-container/hooks/use-milestone-list-sync.js +49 -0
- package/dist/features/milestone/milestone-list-container/hooks/use-milestone-list-sync.js.map +1 -0
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +108 -104
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +14 -14
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +9 -9
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js +30 -22
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +100 -92
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +136 -117
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js +99 -95
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list-sync.js +25 -0
- package/dist/features/milestone/milestone-list-container/milestone-list-sync.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +62 -66
- package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +26 -25
- package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js +40 -33
- package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/hooks/use-resource-assign-sync.js +71 -0
- package/dist/features/milestone/milestone-resources/resources-assign/hooks/use-resource-assign-sync.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-sync.js +17 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-sync.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js +43 -53
- package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +183 -168
- package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-assign/store/resource-assign-store.js +198 -0
- package/dist/features/milestone/milestone-resources/resources-assign/store/resource-assign-store.js.map +1 -0
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +70 -68
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +62 -60
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +1 -1
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +36 -34
- package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/hooks/use-tests-creation-sync.js +68 -0
- package/dist/features/milestone/milestone-tests/tests-creation/hooks/use-tests-creation-sync.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-creation/store/tests-creation-store.js +78 -0
- package/dist/features/milestone/milestone-tests/tests-creation/store/tests-creation-store.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js +47 -42
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/chapter-selection/chapter-selection.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js +59 -58
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/difficulty-and-duration-selection/difficulty-and-duration-selection.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview-styled.js +7 -5
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview-styled.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js +36 -26
- package/dist/features/milestone/milestone-tests/tests-creation/test-stages/test-preview/test-preview.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-sync.js +17 -0
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-sync.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-types.js +5 -0
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation-types.js.map +1 -0
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +120 -89
- package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
- package/dist/features/sheet-v2/resource-list/resource-list.js +28 -26
- package/dist/features/sheet-v2/resource-list/resource-list.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/index.js +221 -92
- 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 +7 -6
- package/dist/features/trial-session/comps/learning-plan/learning-plan-styled.js.map +1 -1
- package/dist/features/trial-session/hooks/use-learning-plan-scroll-sync.js +75 -0
- package/dist/features/trial-session/hooks/use-learning-plan-scroll-sync.js.map +1 -0
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js +113 -116
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
- package/dist/features/trial-session/trial-session-types.js +3 -2
- package/dist/features/trial-session/trial-session-types.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js +90 -74
- package/dist/features/worksheet/worksheet/worksheet-behavior-helper.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet.js +39 -28
- package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js +27 -24
- package/dist/features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +41 -37
- package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/worksheet-preview.js +2 -2
- package/dist/features/worksheet/worksheet-preview/worksheet-preview.js.map +1 -1
- package/dist/index.d.ts +70 -8
- package/dist/node_modules/uuid/dist/esm-browser/native.js +7 -0
- package/dist/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/rng.js +3 -2
- package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js +6 -10
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/v4.js +12 -9
- package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
- package/package.json +1 -1
- package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js +0 -37
- package/dist/features/trial-session/comps/learning-plan/use-learning-plan-scroll-sync.js.map +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/regex.js +0 -5
- package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/validate.js +0 -8
- package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math-fit-overview-types.js","sources":["../../../../src/features/math-fit/math-fit-overview/math-fit-overview-types.ts"],"sourcesContent":["import type { INodeDataProps } from '../../chapters-v2/comps/node-card/node-card-types';\nimport { type TUserTypes } from '../../ui/types';\n\nexport enum ESectionStatus {\n COMPLETED = 'COMPLETED',\n ACTIVE = 'ACTIVE',\n LOCKED = 'LOCKED',\n}\n\nexport enum EQuestionState {\n CORRECT = 'CORRECT',\n INCORRECT = 'INCORRECT',\n SKIPPED = 'SKIPPED',\n UNATTEMPTED = 'UNATTEMPTED',\n}\n\nexport enum EMathFitTestState {\n IN_PROGRESS = 'IN_PROGRESS',\n COMPLETED = 'COMPLETED',\n NOT_STARTED = 'NOT_STARTED',\n EXPIRED = 'EXPIRED',\n}\n\nexport interface ISectionData {\n id: string;\n title: string;\n status: ESectionStatus;\n questionsCount: number;\n timeInMinutes: number;\n sheetData: INodeDataProps;\n}\n\nexport interface IQuestionDetail {\n item_reference: string;\n state: EQuestionState;\n order: number;\n}\n\nexport interface IMiniGoalDetail {\n order: number;\n description: string;\n items: IQuestionDetail[];\n}\n\nexport interface IMathFitSection {\n id: string;\n section_number: number;\n score: number;\n previous_score: number;\n user_node_id: string;\n created_on: string;\n created_on_ts: number;\n updated_on: string;\n updated_on_ts: number;\n sheet: INodeDataProps;\n summary: {\n [goalId: string]: IMiniGoalDetail;\n };\n}\n\nexport interface IMathFitAssessmentResponse {\n id: string;\n user_id: string;\n state: EMathFitTestState;\n score: number;\n previous_score: number;\n created_on: string;\n created_on_ts: number;\n updated_on: string;\n updated_on_ts: number;\n sections: IMathFitSection[];\n}\n\nexport interface IMathFitOverviewProps {\n data: IMathFitAssessmentResponse;\n onResume
|
|
1
|
+
{"version":3,"file":"math-fit-overview-types.js","sources":["../../../../src/features/math-fit/math-fit-overview/math-fit-overview-types.ts"],"sourcesContent":["import type { INodeDataProps } from '../../chapters-v2/comps/node-card/node-card-types';\nimport { type TUserTypes } from '../../ui/types';\n\nexport enum ESectionStatus {\n COMPLETED = 'COMPLETED',\n ACTIVE = 'ACTIVE',\n LOCKED = 'LOCKED',\n}\n\nexport enum EQuestionState {\n CORRECT = 'CORRECT',\n INCORRECT = 'INCORRECT',\n SKIPPED = 'SKIPPED',\n UNATTEMPTED = 'UNATTEMPTED',\n}\n\nexport enum EMathFitTestState {\n IN_PROGRESS = 'IN_PROGRESS',\n COMPLETED = 'COMPLETED',\n NOT_STARTED = 'NOT_STARTED',\n EXPIRED = 'EXPIRED',\n}\n\nexport interface ISectionData {\n id: string;\n title: string;\n status: ESectionStatus;\n questionsCount: number;\n timeInMinutes: number;\n sheetData: INodeDataProps;\n}\n\nexport interface IQuestionDetail {\n item_reference: string;\n state: EQuestionState;\n order: number;\n}\n\nexport interface IMiniGoalDetail {\n order: number;\n description: string;\n items: IQuestionDetail[];\n}\n\nexport interface IMathFitSection {\n id: string;\n section_number: number;\n score: number;\n previous_score: number;\n user_node_id: string;\n created_on: string;\n created_on_ts: number;\n updated_on: string;\n updated_on_ts: number;\n sheet: INodeDataProps;\n summary: {\n [goalId: string]: IMiniGoalDetail;\n };\n}\n\nexport interface IMathFitAssessmentResponse {\n id: string;\n user_id: string;\n state: EMathFitTestState;\n score: number;\n previous_score: number;\n created_on: string;\n created_on_ts: number;\n updated_on: string;\n updated_on_ts: number;\n sections: IMathFitSection[];\n}\n\nexport interface IMathFitOverviewProps {\n data: IMathFitAssessmentResponse;\n onResume: (sheetData: INodeDataProps, sectionId: string) => void;\n onDoLater: () => void;\n}\n\nexport interface IMathFitProps {\n mathfitTestId: string;\n userId: string;\n onResume: (sheetData: INodeDataProps, sectionId: string) => void;\n onReview: (sheetData: INodeDataProps, sectionId: string) => void;\n onDoLater: () => void;\n studentName: string;\n userType: TUserTypes;\n onAPIComplete?: (success: boolean) => void;\n}\n\nexport type TTimeUnit = 'minutes' | 'hours' | 'days';\n\nexport interface ITimeLeft {\n value: number;\n unit: TTimeUnit;\n}\n"],"names":["ESectionStatus","EQuestionState","EMathFitTestState"],"mappings":"AAGY,IAAAA,sBAAAA,OACVA,EAAA,YAAY,aACZA,EAAA,SAAS,UACTA,EAAA,SAAS,UAHCA,IAAAA,KAAA,CAAA,CAAA,GAMAC,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,YAAY,aACZA,EAAA,UAAU,WACVA,EAAA,cAAc,eAJJA,IAAAA,KAAA,CAAA,CAAA,GAOAC,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,YAAY,aACZA,EAAA,cAAc,eACdA,EAAA,UAAU,WAJAA,IAAAA,KAAA,CAAA,CAAA;"}
|
|
@@ -5,43 +5,43 @@ import n from "../../ui/layout/flex-view.js";
|
|
|
5
5
|
import X from "../../ui/separator/separator.js";
|
|
6
6
|
import a from "../../ui/text/text.js";
|
|
7
7
|
import D from "./comps/section-card/section-card.js";
|
|
8
|
-
import { findActiveSection as
|
|
8
|
+
import { findActiveSection as R, getStartButtonText as N, getBeforeYouStartText as U, getSectionAnalyticsProps as G, mapSectionStatus as K, calculateTimeLeft as Y } from "./math-fit-overview-helpers.js";
|
|
9
9
|
import { CountdownBadge as j } from "./math-fit-overview-styled.js";
|
|
10
|
-
import { MATHFIT_ANALYTICS_EVENTS as
|
|
10
|
+
import { MATHFIT_ANALYTICS_EVENTS as d } from "../mathfit-events.js";
|
|
11
11
|
import { NODE_CARD_STATES as H } from "../../chapters-v2/constants/node-constants.js";
|
|
12
12
|
import { useUIContext as P } from "../../ui/context/context.js";
|
|
13
13
|
const q = O(function({
|
|
14
14
|
data: l,
|
|
15
|
-
onResume:
|
|
15
|
+
onResume: m,
|
|
16
16
|
onDoLater: v
|
|
17
17
|
}) {
|
|
18
18
|
var C, E;
|
|
19
|
-
const { sections: r, user_id:
|
|
20
|
-
if (!
|
|
21
|
-
const e = Y(
|
|
19
|
+
const { sections: r, user_id: $ } = l, u = (E = (C = r[0]) == null ? void 0 : C.sheet) == null ? void 0 : E.due_date_ts, { onEvent: _ } = P(), f = s(() => {
|
|
20
|
+
if (!u) return;
|
|
21
|
+
const e = Y(u);
|
|
22
22
|
if (!e) return;
|
|
23
23
|
const { value: i, unit: x } = e, F = x.slice(0, -1);
|
|
24
24
|
return `${i} ${i === 1 ? F : x} left`;
|
|
25
|
-
}, [
|
|
26
|
-
() => g === H.IN_PROGRESS ?
|
|
25
|
+
}, [u]), o = s(() => R(r), [r]), h = s(() => N(r), [r]), T = s(() => U(r), [r]), { sheet: L, section_number: p } = o || {}, { state: g, total_questions: A, correct_answers: S } = L || {}, b = s(
|
|
26
|
+
() => g === H.IN_PROGRESS ? d.MATHFIT_SECTION_RESUMED : d.MATHFIT_SECTION_STARTED,
|
|
27
27
|
[g]
|
|
28
28
|
), B = s(
|
|
29
29
|
() => ({
|
|
30
30
|
total_questions: A,
|
|
31
31
|
correct_answers: S,
|
|
32
|
-
student_id:
|
|
32
|
+
student_id: $,
|
|
33
33
|
section_type: `L${p}`
|
|
34
34
|
}),
|
|
35
|
-
[p, S, A,
|
|
35
|
+
[p, S, A, $]
|
|
36
36
|
), y = k(() => {
|
|
37
|
-
o &&
|
|
38
|
-
}, [o,
|
|
37
|
+
o && m(o.sheet, o.id);
|
|
38
|
+
}, [o, m]);
|
|
39
39
|
return w(() => {
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
_(
|
|
41
|
+
d.MATHFIT_LANDING_PAGE_VIEWED,
|
|
42
42
|
G(l)
|
|
43
43
|
);
|
|
44
|
-
}, [l,
|
|
44
|
+
}, [l, _]), /* @__PURE__ */ c(M, { children: [
|
|
45
45
|
/* @__PURE__ */ t(n, { $gutterX: 1.5, $gapX: 0.75, $background: "BLACK_T_04", children: /* @__PURE__ */ t(a, { $renderAs: "ac4", $color: "BLACK_1", children: "TEST STRUCTURE" }) }),
|
|
46
46
|
/* @__PURE__ */ t(n, { $gutterX: 1, $gapX: 1.5, $flexGapX: 1, children: r.map((e, i) => /* @__PURE__ */ t(
|
|
47
47
|
D,
|
|
@@ -70,7 +70,7 @@ const q = O(function({
|
|
|
70
70
|
children: [
|
|
71
71
|
/* @__PURE__ */ t(I, { label: "I'll do it later", renderAs: "secondary", size: "regular", onClick: v }),
|
|
72
72
|
/* @__PURE__ */ c(n, { $alignItems: "center", $justifyContent: "center", children: [
|
|
73
|
-
!!
|
|
73
|
+
!!f && /* @__PURE__ */ t(j, { $background: "YELLOW_1", $gapX: 0.35, $gutterX: 0.5, children: /* @__PURE__ */ t(a, { $renderAs: "ac5-black", $color: "BLACK_T_60", children: f }) }),
|
|
74
74
|
!!h && /* @__PURE__ */ t(
|
|
75
75
|
I,
|
|
76
76
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math-fit-overview.js","sources":["../../../../src/features/math-fit/math-fit-overview/math-fit-overview.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, type FC } from 'react';\n\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport SectionCard from './comps/section-card/section-card';\nimport {\n calculateTimeLeft,\n findActiveSection,\n getBeforeYouStartText,\n getSectionAnalyticsProps,\n getStartButtonText,\n mapSectionStatus,\n} from './math-fit-overview-helpers';\nimport { type IMathFitOverviewProps } from './math-fit-overview-types';\nimport * as Styled from './math-fit-overview-styled';\nimport { MATHFIT_ANALYTICS_EVENTS } from '../mathfit-events';\nimport { NODE_CARD_STATES } from '../../chapters-v2/constants/node-constants';\nimport { useUIContext } from '../../ui/context/context';\n\nconst MathFitOverview: FC<IMathFitOverviewProps> = memo(function MathFitOverview({\n data,\n onResume,\n onDoLater,\n}) {\n const { sections, user_id } = data;\n\n const dueDateTS = sections[0]?.sheet?.due_date_ts;\n const { onEvent: trackEvent } = useUIContext();\n\n const timeleftText = useMemo(() => {\n if (!dueDateTS) return undefined;\n\n const timeLeft = calculateTimeLeft(dueDateTS);\n\n if (!timeLeft) return undefined;\n\n const { value, unit } = timeLeft;\n const singularUnit = unit.slice(0, -1); // Remove 's' from end\n const displayUnit = value === 1 ? singularUnit : unit;\n\n return `${value} ${displayUnit} left`;\n }, [dueDateTS]);\n\n const activeSection = useMemo(() => findActiveSection(sections), [sections]);\n const startButtonText = useMemo(() => getStartButtonText(sections), [sections]);\n const beforeYouStartText = useMemo(() => getBeforeYouStartText(sections), [sections]);\n\n const { sheet, section_number } = activeSection || {};\n const { state, total_questions, correct_answers } = sheet || {};\n\n const analyticsLabel = useMemo(\n () =>\n state === NODE_CARD_STATES.IN_PROGRESS\n ? MATHFIT_ANALYTICS_EVENTS.MATHFIT_SECTION_RESUMED\n : MATHFIT_ANALYTICS_EVENTS.MATHFIT_SECTION_STARTED,\n [state],\n );\n const analyticsProps = useMemo(\n () => ({\n total_questions,\n correct_answers,\n student_id: user_id,\n section_type: `L${section_number}`,\n }),\n [section_number, correct_answers, total_questions, user_id],\n );\n\n const handleStartClick = useCallback(() => {\n if (activeSection
|
|
1
|
+
{"version":3,"file":"math-fit-overview.js","sources":["../../../../src/features/math-fit/math-fit-overview/math-fit-overview.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, type FC } from 'react';\n\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport SectionCard from './comps/section-card/section-card';\nimport {\n calculateTimeLeft,\n findActiveSection,\n getBeforeYouStartText,\n getSectionAnalyticsProps,\n getStartButtonText,\n mapSectionStatus,\n} from './math-fit-overview-helpers';\nimport { type IMathFitOverviewProps } from './math-fit-overview-types';\nimport * as Styled from './math-fit-overview-styled';\nimport { MATHFIT_ANALYTICS_EVENTS } from '../mathfit-events';\nimport { NODE_CARD_STATES } from '../../chapters-v2/constants/node-constants';\nimport { useUIContext } from '../../ui/context/context';\n\nconst MathFitOverview: FC<IMathFitOverviewProps> = memo(function MathFitOverview({\n data,\n onResume,\n onDoLater,\n}) {\n const { sections, user_id } = data;\n\n const dueDateTS = sections[0]?.sheet?.due_date_ts;\n const { onEvent: trackEvent } = useUIContext();\n\n const timeleftText = useMemo(() => {\n if (!dueDateTS) return undefined;\n\n const timeLeft = calculateTimeLeft(dueDateTS);\n\n if (!timeLeft) return undefined;\n\n const { value, unit } = timeLeft;\n const singularUnit = unit.slice(0, -1); // Remove 's' from end\n const displayUnit = value === 1 ? singularUnit : unit;\n\n return `${value} ${displayUnit} left`;\n }, [dueDateTS]);\n\n const activeSection = useMemo(() => findActiveSection(sections), [sections]);\n const startButtonText = useMemo(() => getStartButtonText(sections), [sections]);\n const beforeYouStartText = useMemo(() => getBeforeYouStartText(sections), [sections]);\n\n const { sheet, section_number } = activeSection || {};\n const { state, total_questions, correct_answers } = sheet || {};\n\n const analyticsLabel = useMemo(\n () =>\n state === NODE_CARD_STATES.IN_PROGRESS\n ? MATHFIT_ANALYTICS_EVENTS.MATHFIT_SECTION_RESUMED\n : MATHFIT_ANALYTICS_EVENTS.MATHFIT_SECTION_STARTED,\n [state],\n );\n const analyticsProps = useMemo(\n () => ({\n total_questions,\n correct_answers,\n student_id: user_id,\n section_type: `L${section_number}`,\n }),\n [section_number, correct_answers, total_questions, user_id],\n );\n\n const handleStartClick = useCallback(() => {\n if (activeSection) {\n onResume(activeSection.sheet, activeSection.id);\n }\n }, [activeSection, onResume]);\n\n useEffect(() => {\n trackEvent(\n MATHFIT_ANALYTICS_EVENTS.MATHFIT_LANDING_PAGE_VIEWED,\n getSectionAnalyticsProps(data),\n );\n }, [data, trackEvent]);\n\n return (\n <>\n <FlexView $gutterX={1.5} $gapX={0.75} $background=\"BLACK_T_04\">\n <Text $renderAs=\"ac4\" $color=\"BLACK_1\">\n TEST STRUCTURE\n </Text>\n </FlexView>\n <FlexView $gutterX={1} $gapX={1.5} $flexGapX={1}>\n {sections.map((section, index) => (\n <SectionCard\n key={section.id}\n title={`Section ${section.section_number} - ${section.sheet.title}`}\n questionsCount={section.sheet.total_questions || 0}\n timeInMinutes={section.sheet.sheet_time ? section.sheet.sheet_time / 60 : 0}\n status={mapSectionStatus(section)}\n showDivider={index < sections.length - 1}\n />\n ))}\n </FlexView>\n <Separator heightX={1} />\n {!!beforeYouStartText && (\n <FlexView>\n <FlexView $gutterX={1.5} $gapX={0.75} $background=\"BLACK_T_04\">\n <Text $renderAs=\"ac4\" $color=\"BLACK_1\">\n BEFORE YOU START\n </Text>\n </FlexView>\n <FlexView $gutterX={2.5} $gapX={1} $flexRowGapX={0.5}>\n {beforeYouStartText.map((item, index) => (\n <li key={index}>\n <Text $renderAs=\"ub2\" $color=\"BLACK_1\">\n {item}\n </Text>\n </li>\n ))}\n </FlexView>\n </FlexView>\n )}\n <Separator heightX={2.5} />\n <FlexView\n $flexDirection=\"row\"\n $justifyContent=\"center\"\n $alignItems=\"flex-end\"\n $flexColumnGapX={1}\n >\n <Button label=\"I'll do it later\" renderAs=\"secondary\" size=\"regular\" onClick={onDoLater} />\n <FlexView $alignItems=\"center\" $justifyContent=\"center\">\n {!!timeleftText && (\n <Styled.CountdownBadge $background=\"YELLOW_1\" $gapX={0.35} $gutterX={0.5}>\n <Text $renderAs=\"ac5-black\" $color=\"BLACK_T_60\">\n {timeleftText}\n </Text>\n </Styled.CountdownBadge>\n )}\n {!!startButtonText && (\n <Button\n analyticsLabel={analyticsLabel}\n analyticsProps={analyticsProps}\n label={startButtonText}\n renderAs=\"primary\"\n size=\"regular\"\n onClick={handleStartClick}\n disabled={!activeSection}\n />\n )}\n </FlexView>\n </FlexView>\n </>\n );\n});\n\nexport default MathFitOverview;\n"],"names":["MathFitOverview","memo","data","onResume","onDoLater","sections","user_id","dueDateTS","_b","_a","trackEvent","useUIContext","timeleftText","useMemo","timeLeft","calculateTimeLeft","value","unit","singularUnit","activeSection","findActiveSection","startButtonText","getStartButtonText","beforeYouStartText","getBeforeYouStartText","sheet","section_number","state","total_questions","correct_answers","analyticsLabel","NODE_CARD_STATES","MATHFIT_ANALYTICS_EVENTS","analyticsProps","handleStartClick","useCallback","useEffect","getSectionAnalyticsProps","jsxs","Fragment","jsx","FlexView","Text","section","index","SectionCard","mapSectionStatus","Separator","item","Button","Styled.CountdownBadge","MathFitOverview$1"],"mappings":"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"}
|
|
@@ -1,51 +1,53 @@
|
|
|
1
|
-
import { jsx as t, jsxs as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import { useChaptersGetAll as
|
|
8
|
-
import { getFormChapters as
|
|
9
|
-
import
|
|
10
|
-
import { StyledButton as
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
const
|
|
1
|
+
import { jsx as t, jsxs as P } from "react/jsx-runtime";
|
|
2
|
+
import { memo as $, useEffect as j, useCallback as k } from "react";
|
|
3
|
+
import B from "../../../../hooks/use-previous.js";
|
|
4
|
+
import G from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
|
|
5
|
+
import H from "../../../../ui/layout/flex-view.js";
|
|
6
|
+
import I from "../../../../ui/text/text.js";
|
|
7
|
+
import { useChaptersGetAll as T } from "../../api/recommended-chapters.js";
|
|
8
|
+
import { getFormChapters as X } from "../../utils/index.js";
|
|
9
|
+
import q from "../body-layout/body-layout.js";
|
|
10
|
+
import { StyledButton as z } from "./add-custom-chapters-styled.js";
|
|
11
|
+
import N from "./course-catalog.js";
|
|
12
|
+
import U from "./search-chapter/search-chapters.js";
|
|
13
|
+
const ee = $(function({
|
|
14
14
|
onFormDataChange: e,
|
|
15
|
-
formData:
|
|
15
|
+
formData: d,
|
|
16
16
|
config: p,
|
|
17
|
-
currentStep:
|
|
18
|
-
isGoalCreation:
|
|
19
|
-
courseStream:
|
|
20
|
-
classRatio:
|
|
17
|
+
currentStep: m,
|
|
18
|
+
isGoalCreation: C,
|
|
19
|
+
courseStream: n,
|
|
20
|
+
classRatio: f,
|
|
21
21
|
enrollmentType: u,
|
|
22
|
-
isTeacherTrainingAccount:
|
|
22
|
+
isTeacherTrainingAccount: L,
|
|
23
|
+
userType: o,
|
|
24
|
+
useAbsoluteFooter: b
|
|
23
25
|
}) {
|
|
24
26
|
const {
|
|
25
|
-
region:
|
|
27
|
+
region: A,
|
|
26
28
|
primaryChaptersList: r,
|
|
27
|
-
searchChapterFields:
|
|
28
|
-
searchedChaptersList:
|
|
29
|
-
selectedChaptersList:
|
|
30
|
-
} =
|
|
31
|
-
getAll:
|
|
32
|
-
data:
|
|
33
|
-
isProcessing:
|
|
29
|
+
searchChapterFields: l = {},
|
|
30
|
+
searchedChaptersList: g = [],
|
|
31
|
+
selectedChaptersList: i = []
|
|
32
|
+
} = d, { buttonLabel: S, title: x } = m, {
|
|
33
|
+
getAll: y,
|
|
34
|
+
data: a,
|
|
35
|
+
isProcessing: v,
|
|
34
36
|
isProcessed: s
|
|
35
|
-
} =
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
searchedChaptersList:
|
|
37
|
+
} = T(), c = B(s), h = i.length === 0;
|
|
38
|
+
j(() => {
|
|
39
|
+
c === !1 && s === !0 && a && e({
|
|
40
|
+
searchedChaptersList: X(a, !0)
|
|
39
41
|
});
|
|
40
|
-
}, [
|
|
41
|
-
const
|
|
42
|
-
const
|
|
42
|
+
}, [c, s, a, e]);
|
|
43
|
+
const w = k(() => {
|
|
44
|
+
const E = r == null ? void 0 : r.concat(i);
|
|
43
45
|
e({
|
|
44
46
|
searchedChaptersList: [],
|
|
45
47
|
selectedChaptersList: [],
|
|
46
48
|
chapterSubStages: void 0,
|
|
47
49
|
searchChapterFields: void 0,
|
|
48
|
-
primaryChaptersList:
|
|
50
|
+
primaryChaptersList: E,
|
|
49
51
|
committed: {
|
|
50
52
|
selectedChaptersList: !0,
|
|
51
53
|
chapterSubStages: !1,
|
|
@@ -54,59 +56,62 @@ const _ = P(function({
|
|
|
54
56
|
searchChapterFields: !1
|
|
55
57
|
}
|
|
56
58
|
});
|
|
57
|
-
}, [e, r,
|
|
59
|
+
}, [e, r, i]);
|
|
58
60
|
return /* @__PURE__ */ t(
|
|
59
|
-
|
|
61
|
+
q,
|
|
60
62
|
{
|
|
61
63
|
overflowHidden: !0,
|
|
62
64
|
bodyHeight: "100%",
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
useAbsoluteFooter: b,
|
|
66
|
+
headerElement: /* @__PURE__ */ P(H, { $flexDirection: "row", $alignItems: "center", $flexGapX: 1, children: [
|
|
67
|
+
/* @__PURE__ */ t(I, { $renderAs: "ab2", children: x }),
|
|
65
68
|
/* @__PURE__ */ t(
|
|
66
|
-
|
|
69
|
+
N,
|
|
67
70
|
{
|
|
68
71
|
config: p,
|
|
69
|
-
region:
|
|
70
|
-
courseStream:
|
|
71
|
-
classRatio:
|
|
72
|
-
searchChapterFields:
|
|
72
|
+
region: A,
|
|
73
|
+
courseStream: n,
|
|
74
|
+
classRatio: f,
|
|
75
|
+
searchChapterFields: l,
|
|
73
76
|
onFormDataChange: e,
|
|
74
|
-
getCatalogChapters:
|
|
77
|
+
getCatalogChapters: y,
|
|
75
78
|
enrollmentType: u,
|
|
76
|
-
isTeacherTrainingAccount:
|
|
79
|
+
isTeacherTrainingAccount: L,
|
|
80
|
+
userType: o
|
|
77
81
|
}
|
|
78
82
|
)
|
|
79
83
|
] }),
|
|
80
84
|
bodyElement: /* @__PURE__ */ t(
|
|
81
|
-
|
|
85
|
+
U,
|
|
82
86
|
{
|
|
83
|
-
searchChapterFields:
|
|
87
|
+
searchChapterFields: l,
|
|
84
88
|
onFormDataChange: e,
|
|
85
|
-
searchedChaptersList:
|
|
89
|
+
searchedChaptersList: g,
|
|
86
90
|
chaptersList: r,
|
|
87
91
|
config: p,
|
|
88
|
-
formData:
|
|
89
|
-
isProcessing:
|
|
90
|
-
isProcessed: s
|
|
92
|
+
formData: d,
|
|
93
|
+
isProcessing: v,
|
|
94
|
+
isProcessed: s,
|
|
95
|
+
userType: o
|
|
91
96
|
}
|
|
92
97
|
),
|
|
93
|
-
footerElement: /* @__PURE__ */ t(
|
|
94
|
-
|
|
98
|
+
footerElement: o === "STUDENT" ? void 0 : /* @__PURE__ */ t(
|
|
99
|
+
G,
|
|
95
100
|
{
|
|
96
101
|
renderAs: "primary",
|
|
97
102
|
tooltipItem: "Select chapters to add",
|
|
98
103
|
position: "top",
|
|
99
|
-
hidden: !
|
|
104
|
+
hidden: !h,
|
|
100
105
|
children: /* @__PURE__ */ t(
|
|
101
|
-
|
|
106
|
+
z,
|
|
102
107
|
{
|
|
103
108
|
renderAs: "primary",
|
|
104
109
|
size: "small",
|
|
105
110
|
shape: "square",
|
|
106
|
-
widthX:
|
|
107
|
-
label:
|
|
108
|
-
onClick:
|
|
109
|
-
disabled:
|
|
111
|
+
widthX: C ? 9 : 12,
|
|
112
|
+
label: S,
|
|
113
|
+
onClick: w,
|
|
114
|
+
disabled: h
|
|
110
115
|
}
|
|
111
116
|
)
|
|
112
117
|
}
|
|
@@ -115,6 +120,6 @@ const _ = P(function({
|
|
|
115
120
|
);
|
|
116
121
|
});
|
|
117
122
|
export {
|
|
118
|
-
|
|
123
|
+
ee as default
|
|
119
124
|
};
|
|
120
125
|
//# sourceMappingURL=add-custom-chapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-custom-chapter.js","sources":["../../../../../../src/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, type FC } from 'react';\n\nimport usePrevious from '../../../../hooks/use-previous';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { useChaptersGetAll } from '../../api/recommended-chapters';\nimport type { IFormStepProps } from '../../milestone-create-types';\nimport { getFormChapters } from '../../utils';\nimport BodyLayout from '../body-layout/body-layout';\nimport * as Styled from './add-custom-chapters-styled';\nimport CourseCatalog from './course-catalog';\nimport ChapterSearch from './search-chapter/search-chapters';\n\nconst AddCustomChapter: FC<IFormStepProps> = memo(function AddCustomChapter({\n onFormDataChange,\n formData,\n config,\n currentStep,\n isGoalCreation,\n courseStream,\n classRatio,\n enrollmentType,\n isTeacherTrainingAccount,\n}) {\n const {\n region,\n primaryChaptersList,\n searchChapterFields = {},\n searchedChaptersList = [],\n selectedChaptersList = [],\n } = formData;\n\n const { buttonLabel, title } = currentStep;\n\n const {\n getAll: getCatalogChapters,\n data: catalogChaptersData,\n isProcessing,\n isProcessed,\n } = useChaptersGetAll();\n\n const prevCatalogChaptersProcessed = usePrevious(isProcessed);\n const isAddChapterCtaDisabled = selectedChaptersList.length === 0;\n\n useEffect(() => {\n if (prevCatalogChaptersProcessed === false && isProcessed === true && catalogChaptersData) {\n onFormDataChange({\n searchedChaptersList: getFormChapters(catalogChaptersData, true),\n });\n }\n }, [prevCatalogChaptersProcessed, isProcessed, catalogChaptersData, onFormDataChange]);\n\n const handleConfirmCustomChapterAddition = useCallback(() => {\n const updatedPrimaryChaptersList = primaryChaptersList?.concat(selectedChaptersList);\n\n onFormDataChange({\n searchedChaptersList: [],\n selectedChaptersList: [],\n chapterSubStages: undefined,\n searchChapterFields: undefined,\n primaryChaptersList: updatedPrimaryChaptersList,\n committed: {\n selectedChaptersList: true,\n chapterSubStages: false,\n searchedChaptersList: true,\n primaryChaptersList: true,\n searchChapterFields: false,\n },\n });\n }, [onFormDataChange, primaryChaptersList, selectedChaptersList]);\n\n return (\n <BodyLayout\n overflowHidden\n bodyHeight=\"100%\"\n headerElement={\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGapX={1}>\n <Text $renderAs=\"ab2\">{title}</Text>\n <CourseCatalog\n config={config}\n region={region}\n courseStream={courseStream}\n classRatio={classRatio}\n searchChapterFields={searchChapterFields}\n onFormDataChange={onFormDataChange}\n getCatalogChapters={getCatalogChapters}\n enrollmentType={enrollmentType}\n isTeacherTrainingAccount={isTeacherTrainingAccount}\n />\n </FlexView>\n }\n bodyElement={\n <ChapterSearch\n searchChapterFields={searchChapterFields}\n onFormDataChange={onFormDataChange}\n searchedChaptersList={searchedChaptersList}\n chaptersList={primaryChaptersList}\n config={config}\n formData={formData}\n isProcessing={isProcessing}\n isProcessed={isProcessed}\n />\n }\n footerElement={\n <ArrowTooltip\n
|
|
1
|
+
{"version":3,"file":"add-custom-chapter.js","sources":["../../../../../../src/features/milestone/create/comps/add-custom-chapter/add-custom-chapter.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, type FC } from 'react';\n\nimport usePrevious from '../../../../hooks/use-previous';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { useChaptersGetAll } from '../../api/recommended-chapters';\nimport type { IFormStepProps } from '../../milestone-create-types';\nimport { getFormChapters } from '../../utils';\nimport BodyLayout from '../body-layout/body-layout';\nimport * as Styled from './add-custom-chapters-styled';\nimport CourseCatalog from './course-catalog';\nimport ChapterSearch from './search-chapter/search-chapters';\n\nconst AddCustomChapter: FC<IFormStepProps> = memo(function AddCustomChapter({\n onFormDataChange,\n formData,\n config,\n currentStep,\n isGoalCreation,\n courseStream,\n classRatio,\n enrollmentType,\n isTeacherTrainingAccount,\n userType,\n useAbsoluteFooter,\n}) {\n const {\n region,\n primaryChaptersList,\n searchChapterFields = {},\n searchedChaptersList = [],\n selectedChaptersList = [],\n } = formData;\n\n const { buttonLabel, title } = currentStep;\n\n const {\n getAll: getCatalogChapters,\n data: catalogChaptersData,\n isProcessing,\n isProcessed,\n } = useChaptersGetAll();\n\n const prevCatalogChaptersProcessed = usePrevious(isProcessed);\n const isAddChapterCtaDisabled = selectedChaptersList.length === 0;\n\n useEffect(() => {\n if (prevCatalogChaptersProcessed === false && isProcessed === true && catalogChaptersData) {\n onFormDataChange({\n searchedChaptersList: getFormChapters(catalogChaptersData, true),\n });\n }\n }, [prevCatalogChaptersProcessed, isProcessed, catalogChaptersData, onFormDataChange]);\n\n const handleConfirmCustomChapterAddition = useCallback(() => {\n const updatedPrimaryChaptersList = primaryChaptersList?.concat(selectedChaptersList);\n\n onFormDataChange({\n searchedChaptersList: [],\n selectedChaptersList: [],\n chapterSubStages: undefined,\n searchChapterFields: undefined,\n primaryChaptersList: updatedPrimaryChaptersList,\n committed: {\n selectedChaptersList: true,\n chapterSubStages: false,\n searchedChaptersList: true,\n primaryChaptersList: true,\n searchChapterFields: false,\n },\n });\n }, [onFormDataChange, primaryChaptersList, selectedChaptersList]);\n\n return (\n <BodyLayout\n overflowHidden\n bodyHeight=\"100%\"\n useAbsoluteFooter={useAbsoluteFooter}\n headerElement={\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGapX={1}>\n <Text $renderAs=\"ab2\">{title}</Text>\n <CourseCatalog\n config={config}\n region={region}\n courseStream={courseStream}\n classRatio={classRatio}\n searchChapterFields={searchChapterFields}\n onFormDataChange={onFormDataChange}\n getCatalogChapters={getCatalogChapters}\n enrollmentType={enrollmentType}\n isTeacherTrainingAccount={isTeacherTrainingAccount}\n userType={userType}\n />\n </FlexView>\n }\n bodyElement={\n <ChapterSearch\n searchChapterFields={searchChapterFields}\n onFormDataChange={onFormDataChange}\n searchedChaptersList={searchedChaptersList}\n chaptersList={primaryChaptersList}\n config={config}\n formData={formData}\n isProcessing={isProcessing}\n isProcessed={isProcessed}\n userType={userType}\n />\n }\n footerElement={\n userType === 'STUDENT' ? undefined : (\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Select chapters to add\"\n position=\"top\"\n hidden={!isAddChapterCtaDisabled}\n >\n <Styled.StyledButton\n renderAs=\"primary\"\n size=\"small\"\n shape=\"square\"\n widthX={isGoalCreation ? 9 : 12}\n label={buttonLabel}\n onClick={handleConfirmCustomChapterAddition}\n disabled={isAddChapterCtaDisabled}\n />\n </ArrowTooltip>\n )\n }\n />\n );\n});\n\nexport default AddCustomChapter;\n"],"names":["AddCustomChapter","memo","onFormDataChange","formData","config","currentStep","isGoalCreation","courseStream","classRatio","enrollmentType","isTeacherTrainingAccount","userType","useAbsoluteFooter","region","primaryChaptersList","searchChapterFields","searchedChaptersList","selectedChaptersList","buttonLabel","title","getCatalogChapters","catalogChaptersData","isProcessing","isProcessed","useChaptersGetAll","prevCatalogChaptersProcessed","usePrevious","isAddChapterCtaDisabled","useEffect","getFormChapters","handleConfirmCustomChapterAddition","useCallback","updatedPrimaryChaptersList","jsx","BodyLayout","FlexView","Text","CourseCatalog","ChapterSearch","ArrowTooltip","Styled.StyledButton"],"mappings":"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"}
|
|
@@ -1,32 +1,33 @@
|
|
|
1
|
-
import { jsxs as A, Fragment as
|
|
2
|
-
import { memo as
|
|
1
|
+
import { jsxs as A, Fragment as w, jsx as G } from "react/jsx-runtime";
|
|
2
|
+
import { memo as P, useMemo as O, useCallback as j, useEffect as M } from "react";
|
|
3
3
|
import n from "../../../../ui/inputs/select-input/select-input.js";
|
|
4
|
-
import { GOAL_CATEGORY as
|
|
5
|
-
import { useMilestoneContext as
|
|
6
|
-
import { getCurriculumStandardsFromConfig as
|
|
4
|
+
import { GOAL_CATEGORY as k } from "../../../constants.js";
|
|
5
|
+
import { useMilestoneContext as R } from "../../milestone-create-context.js";
|
|
6
|
+
import { getCurriculumStandardsFromConfig as U } from "../../milestone-create-helpers.js";
|
|
7
7
|
import { getGradeBoardAndMajorBasedProgramCode as X } from "../chapters-selection-step/utils.js";
|
|
8
|
-
import { useCatalogHelpers as
|
|
9
|
-
const
|
|
10
|
-
config:
|
|
11
|
-
region:
|
|
8
|
+
import { useCatalogHelpers as h } from "./hooks/use-catalog-helpers.js";
|
|
9
|
+
const g = P(function({
|
|
10
|
+
config: o,
|
|
11
|
+
region: s = "",
|
|
12
12
|
courseStream: t,
|
|
13
13
|
classRatio: p,
|
|
14
14
|
searchChapterFields: e,
|
|
15
15
|
getCatalogChapters: x,
|
|
16
16
|
onFormDataChange: r,
|
|
17
17
|
enrollmentType: u,
|
|
18
|
-
isTeacherTrainingAccount: l
|
|
18
|
+
isTeacherTrainingAccount: l,
|
|
19
|
+
userType: S
|
|
19
20
|
}) {
|
|
20
|
-
const { mode: _ } =
|
|
21
|
-
config:
|
|
22
|
-
region:
|
|
21
|
+
const { mode: _ } = R(), { selectedCurriculum: a = "", selectedGrade: C = "", selectedCourse: f = "" } = e, { grades: B, boards: L, majors: E } = h({
|
|
22
|
+
config: o,
|
|
23
|
+
region: s,
|
|
23
24
|
searchChapterFields: e,
|
|
24
25
|
courseStream: t,
|
|
25
26
|
classRatio: p,
|
|
26
27
|
enrollmentType: u,
|
|
27
28
|
flow: "CREATE",
|
|
28
29
|
isTeacherTrainingAccount: l
|
|
29
|
-
}), c = O(() =>
|
|
30
|
+
}), c = O(() => E.length > 1, [E]), y = j(
|
|
30
31
|
(d) => {
|
|
31
32
|
r({
|
|
32
33
|
searchChapterFields: {
|
|
@@ -36,14 +37,14 @@ const $ = H(function({
|
|
|
36
37
|
});
|
|
37
38
|
},
|
|
38
39
|
[e, r]
|
|
39
|
-
),
|
|
40
|
+
), z = j(
|
|
40
41
|
(d) => {
|
|
41
42
|
var v;
|
|
42
43
|
let b = e.selectedCurriculum;
|
|
43
|
-
(d === "-1" || d === "0") && (b = (v =
|
|
44
|
-
countryCode:
|
|
44
|
+
(d === "-1" || d === "0") && (b = (v = U(o, {
|
|
45
|
+
countryCode: s ?? "",
|
|
45
46
|
grade: d,
|
|
46
|
-
goalCategory:
|
|
47
|
+
goalCategory: k.SCHOOL_SUCCESS,
|
|
47
48
|
courseStream: t,
|
|
48
49
|
enrollmentType: u,
|
|
49
50
|
classRatio: p,
|
|
@@ -60,14 +61,14 @@ const $ = H(function({
|
|
|
60
61
|
[
|
|
61
62
|
e,
|
|
62
63
|
r,
|
|
63
|
-
s,
|
|
64
64
|
o,
|
|
65
|
+
s,
|
|
65
66
|
t,
|
|
66
67
|
u,
|
|
67
68
|
p,
|
|
68
69
|
l
|
|
69
70
|
]
|
|
70
|
-
),
|
|
71
|
+
), H = j(
|
|
71
72
|
(d) => {
|
|
72
73
|
r({
|
|
73
74
|
searchChapterFields: {
|
|
@@ -78,55 +79,55 @@ const $ = H(function({
|
|
|
78
79
|
},
|
|
79
80
|
[r, e]
|
|
80
81
|
), i = O(
|
|
81
|
-
() => X(
|
|
82
|
+
() => X(o, {
|
|
82
83
|
grade: C,
|
|
83
84
|
board: a,
|
|
84
85
|
major: f,
|
|
85
86
|
majorsPresent: c,
|
|
86
|
-
countryCode:
|
|
87
|
-
selectedCategory:
|
|
87
|
+
countryCode: s ?? "",
|
|
88
|
+
selectedCategory: k.SCHOOL_SUCCESS,
|
|
88
89
|
courseStream: t,
|
|
89
90
|
enrollmentType: u,
|
|
90
91
|
isTeacherTrainingAccount: l
|
|
91
92
|
}),
|
|
92
93
|
[
|
|
93
|
-
|
|
94
|
+
o,
|
|
94
95
|
t,
|
|
95
96
|
u,
|
|
96
97
|
c,
|
|
97
|
-
|
|
98
|
+
s,
|
|
98
99
|
f,
|
|
99
100
|
a,
|
|
100
101
|
C,
|
|
101
102
|
l
|
|
102
103
|
]
|
|
103
104
|
), m = O(() => (i == null ? void 0 : i.program_code) ?? "", [i]);
|
|
104
|
-
return
|
|
105
|
-
m && _ === "edit" && x({
|
|
105
|
+
return M(() => {
|
|
106
|
+
m && (_ === "edit" || S === "STUDENT") && x({
|
|
106
107
|
filter_type: "PROGRAM_CODE",
|
|
107
108
|
program_code: m
|
|
108
109
|
});
|
|
109
|
-
}, [x, _, m, c]),
|
|
110
|
+
}, [x, _, m, c, S]), M(() => {
|
|
110
111
|
m || r({
|
|
111
112
|
searchedChaptersList: []
|
|
112
113
|
});
|
|
113
|
-
}, [m, r]), /* @__PURE__ */ A(
|
|
114
|
-
/* @__PURE__ */
|
|
114
|
+
}, [m, r]), /* @__PURE__ */ A(w, { children: [
|
|
115
|
+
/* @__PURE__ */ G(
|
|
115
116
|
n,
|
|
116
117
|
{
|
|
117
118
|
renderAs: "primary",
|
|
118
119
|
label: "Grade",
|
|
119
120
|
value: C,
|
|
120
|
-
options:
|
|
121
|
-
onChange:
|
|
121
|
+
options: B,
|
|
122
|
+
onChange: z,
|
|
122
123
|
widthX: 9,
|
|
123
124
|
size: "xsmall",
|
|
124
125
|
theme: "dark",
|
|
125
126
|
shape: "curved"
|
|
126
127
|
}
|
|
127
128
|
),
|
|
128
|
-
C && /* @__PURE__ */ A(
|
|
129
|
-
/* @__PURE__ */
|
|
129
|
+
C && /* @__PURE__ */ A(w, { children: [
|
|
130
|
+
/* @__PURE__ */ G(
|
|
130
131
|
n,
|
|
131
132
|
{
|
|
132
133
|
widthX: 18,
|
|
@@ -135,20 +136,20 @@ const $ = H(function({
|
|
|
135
136
|
theme: "dark",
|
|
136
137
|
size: "xsmall",
|
|
137
138
|
label: "Curriculum",
|
|
138
|
-
options:
|
|
139
|
+
options: L,
|
|
139
140
|
renderOptionsAs: "section-list",
|
|
140
141
|
value: a,
|
|
141
|
-
onChange:
|
|
142
|
+
onChange: y
|
|
142
143
|
}
|
|
143
144
|
),
|
|
144
|
-
c && /* @__PURE__ */
|
|
145
|
+
c && /* @__PURE__ */ G(
|
|
145
146
|
n,
|
|
146
147
|
{
|
|
147
148
|
renderAs: "primary",
|
|
148
149
|
label: "Course",
|
|
149
|
-
options:
|
|
150
|
+
options: E,
|
|
150
151
|
value: f,
|
|
151
|
-
onChange:
|
|
152
|
+
onChange: H,
|
|
152
153
|
widthX: 9,
|
|
153
154
|
size: "xsmall",
|
|
154
155
|
theme: "dark",
|
|
@@ -159,6 +160,6 @@ const $ = H(function({
|
|
|
159
160
|
] });
|
|
160
161
|
});
|
|
161
162
|
export {
|
|
162
|
-
|
|
163
|
+
g as default
|
|
163
164
|
};
|
|
164
165
|
//# sourceMappingURL=course-catalog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"course-catalog.js","sources":["../../../../../../src/features/milestone/create/comps/add-custom-chapter/course-catalog.tsx"],"sourcesContent":["import { useEffect, useMemo, useCallback, memo, type FC } from 'react';\n\nimport SelectInput from '../../../../ui/inputs/select-input/select-input';\nimport { GOAL_CATEGORY } from '../../../constants';\nimport { useMilestoneContext } from '../../milestone-create-context';\nimport { getCurriculumStandardsFromConfig } from '../../milestone-create-helpers';\nimport { getGradeBoardAndMajorBasedProgramCode } from '../chapters-selection-step/utils';\nimport type { ICourseCatalog } from './add-custom-chapters';\nimport { useCatalogHelpers } from './hooks/use-catalog-helpers';\n\nconst CourseCatalog: FC<ICourseCatalog> = memo(function CourseCatalog({\n config,\n region = '',\n courseStream,\n classRatio,\n searchChapterFields,\n getCatalogChapters,\n onFormDataChange,\n enrollmentType,\n isTeacherTrainingAccount,\n}) {\n const { mode } = useMilestoneContext();\n\n const { selectedCurriculum = '', selectedGrade = '', selectedCourse = '' } = searchChapterFields;\n\n const { grades, boards, majors } = useCatalogHelpers({\n config,\n region,\n searchChapterFields,\n courseStream,\n classRatio,\n enrollmentType,\n flow: 'CREATE',\n isTeacherTrainingAccount,\n });\n\n const majorsPresent = useMemo(() => majors.length > 1, [majors]);\n\n const handleCurriculumChange = useCallback(\n (curriculumValue: string) => {\n onFormDataChange({\n searchChapterFields: {\n ...searchChapterFields,\n selectedCurriculum: curriculumValue,\n },\n });\n },\n [searchChapterFields, onFormDataChange],\n );\n\n const handleGradeChange = useCallback(\n (gradeValue: string) => {\n let updatedCurriculum = searchChapterFields.selectedCurriculum;\n\n if (gradeValue === '-1' || gradeValue === '0') {\n const currentGradeBoards = getCurriculumStandardsFromConfig(config, {\n countryCode: region ?? '',\n grade: gradeValue,\n goalCategory: GOAL_CATEGORY.SCHOOL_SUCCESS,\n courseStream,\n enrollmentType,\n classRatio,\n flow: 'CREATE',\n isTeacherTrainingAccount,\n });\n\n updatedCurriculum = currentGradeBoards[0]?.id;\n }\n\n onFormDataChange({\n searchChapterFields: {\n ...searchChapterFields,\n selectedGrade: gradeValue,\n selectedCurriculum: updatedCurriculum,\n },\n });\n },\n [\n searchChapterFields,\n onFormDataChange,\n config,\n region,\n courseStream,\n enrollmentType,\n classRatio,\n isTeacherTrainingAccount,\n ],\n );\n\n const handleMajorChange = useCallback(\n (majorValue: string) => {\n onFormDataChange({\n searchChapterFields: {\n ...searchChapterFields,\n selectedCourse: majorValue,\n },\n });\n },\n [onFormDataChange, searchChapterFields],\n );\n\n const programInfo = useMemo(\n () =>\n getGradeBoardAndMajorBasedProgramCode(config, {\n grade: selectedGrade,\n board: selectedCurriculum,\n major: selectedCourse,\n majorsPresent,\n countryCode: region ?? '',\n selectedCategory: GOAL_CATEGORY.SCHOOL_SUCCESS,\n courseStream,\n enrollmentType,\n isTeacherTrainingAccount,\n }),\n [\n config,\n courseStream,\n enrollmentType,\n majorsPresent,\n region,\n selectedCourse,\n selectedCurriculum,\n selectedGrade,\n isTeacherTrainingAccount,\n ],\n );\n\n const programCode = useMemo(() => programInfo?.program_code ?? '', [programInfo]);\n\n useEffect(() => {\n if (programCode && mode === 'edit') {\n getCatalogChapters({\n filter_type: 'PROGRAM_CODE',\n program_code: programCode,\n });\n }\n }, [getCatalogChapters, mode, programCode, majorsPresent]);\n\n useEffect(() => {\n if (!programCode) {\n onFormDataChange({\n searchedChaptersList: [],\n });\n }\n }, [programCode, onFormDataChange]);\n\n return (\n <>\n <SelectInput\n renderAs=\"primary\"\n label=\"Grade\"\n value={selectedGrade}\n options={grades}\n onChange={handleGradeChange}\n widthX={9}\n size=\"xsmall\"\n theme=\"dark\"\n shape=\"curved\"\n />\n\n {selectedGrade && (\n <>\n <SelectInput\n widthX={18}\n renderAs=\"primary\"\n shape=\"curved\"\n theme=\"dark\"\n size=\"xsmall\"\n label=\"Curriculum\"\n options={boards}\n renderOptionsAs=\"section-list\"\n value={selectedCurriculum}\n onChange={handleCurriculumChange}\n />\n\n {majorsPresent && (\n <SelectInput\n renderAs=\"primary\"\n label=\"Course\"\n options={majors}\n value={selectedCourse}\n onChange={handleMajorChange}\n widthX={9}\n size=\"xsmall\"\n theme=\"dark\"\n shape=\"curved\"\n />\n )}\n </>\n )}\n </>\n );\n});\n\nexport default CourseCatalog;\n"],"names":["CourseCatalog","memo","config","region","courseStream","classRatio","searchChapterFields","getCatalogChapters","onFormDataChange","enrollmentType","isTeacherTrainingAccount","mode","useMilestoneContext","selectedCurriculum","selectedGrade","selectedCourse","grades","boards","majors","useCatalogHelpers","majorsPresent","useMemo","handleCurriculumChange","useCallback","curriculumValue","handleGradeChange","gradeValue","updatedCurriculum","_a","getCurriculumStandardsFromConfig","GOAL_CATEGORY","handleMajorChange","majorValue","programInfo","getGradeBoardAndMajorBasedProgramCode","programCode","useEffect","jsxs","Fragment","jsx","SelectInput"],"mappings":";;;;;;;;AAUM,MAAAA,IAAoCC,EAAK,SAAuB;AAAA,EACpE,QAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,0BAAAC;AACF,GAAG;AACK,QAAA,EAAE,MAAAC,MAASC,KAEX,EAAE,oBAAAC,IAAqB,IAAI,eAAAC,IAAgB,IAAI,gBAAAC,IAAiB,GAAO,
|
|
1
|
+
{"version":3,"file":"course-catalog.js","sources":["../../../../../../src/features/milestone/create/comps/add-custom-chapter/course-catalog.tsx"],"sourcesContent":["import { useEffect, useMemo, useCallback, memo, type FC } from 'react';\n\nimport SelectInput from '../../../../ui/inputs/select-input/select-input';\nimport { GOAL_CATEGORY } from '../../../constants';\nimport { useMilestoneContext } from '../../milestone-create-context';\nimport { getCurriculumStandardsFromConfig } from '../../milestone-create-helpers';\nimport { getGradeBoardAndMajorBasedProgramCode } from '../chapters-selection-step/utils';\nimport type { ICourseCatalog } from './add-custom-chapters';\nimport { useCatalogHelpers } from './hooks/use-catalog-helpers';\n\nconst CourseCatalog: FC<ICourseCatalog> = memo(function CourseCatalog({\n config,\n region = '',\n courseStream,\n classRatio,\n searchChapterFields,\n getCatalogChapters,\n onFormDataChange,\n enrollmentType,\n isTeacherTrainingAccount,\n userType,\n}) {\n const { mode } = useMilestoneContext();\n\n const { selectedCurriculum = '', selectedGrade = '', selectedCourse = '' } = searchChapterFields;\n\n const { grades, boards, majors } = useCatalogHelpers({\n config,\n region,\n searchChapterFields,\n courseStream,\n classRatio,\n enrollmentType,\n flow: 'CREATE',\n isTeacherTrainingAccount,\n });\n\n const majorsPresent = useMemo(() => majors.length > 1, [majors]);\n\n const handleCurriculumChange = useCallback(\n (curriculumValue: string) => {\n onFormDataChange({\n searchChapterFields: {\n ...searchChapterFields,\n selectedCurriculum: curriculumValue,\n },\n });\n },\n [searchChapterFields, onFormDataChange],\n );\n\n const handleGradeChange = useCallback(\n (gradeValue: string) => {\n let updatedCurriculum = searchChapterFields.selectedCurriculum;\n\n if (gradeValue === '-1' || gradeValue === '0') {\n const currentGradeBoards = getCurriculumStandardsFromConfig(config, {\n countryCode: region ?? '',\n grade: gradeValue,\n goalCategory: GOAL_CATEGORY.SCHOOL_SUCCESS,\n courseStream,\n enrollmentType,\n classRatio,\n flow: 'CREATE',\n isTeacherTrainingAccount,\n });\n\n updatedCurriculum = currentGradeBoards[0]?.id;\n }\n\n onFormDataChange({\n searchChapterFields: {\n ...searchChapterFields,\n selectedGrade: gradeValue,\n selectedCurriculum: updatedCurriculum,\n },\n });\n },\n [\n searchChapterFields,\n onFormDataChange,\n config,\n region,\n courseStream,\n enrollmentType,\n classRatio,\n isTeacherTrainingAccount,\n ],\n );\n\n const handleMajorChange = useCallback(\n (majorValue: string) => {\n onFormDataChange({\n searchChapterFields: {\n ...searchChapterFields,\n selectedCourse: majorValue,\n },\n });\n },\n [onFormDataChange, searchChapterFields],\n );\n\n const programInfo = useMemo(\n () =>\n getGradeBoardAndMajorBasedProgramCode(config, {\n grade: selectedGrade,\n board: selectedCurriculum,\n major: selectedCourse,\n majorsPresent,\n countryCode: region ?? '',\n selectedCategory: GOAL_CATEGORY.SCHOOL_SUCCESS,\n courseStream,\n enrollmentType,\n isTeacherTrainingAccount,\n }),\n [\n config,\n courseStream,\n enrollmentType,\n majorsPresent,\n region,\n selectedCourse,\n selectedCurriculum,\n selectedGrade,\n isTeacherTrainingAccount,\n ],\n );\n\n const programCode = useMemo(() => programInfo?.program_code ?? '', [programInfo]);\n\n useEffect(() => {\n if (programCode && (mode === 'edit' || userType === 'STUDENT')) {\n getCatalogChapters({\n filter_type: 'PROGRAM_CODE',\n program_code: programCode,\n });\n }\n }, [getCatalogChapters, mode, programCode, majorsPresent, userType]);\n\n useEffect(() => {\n if (!programCode) {\n onFormDataChange({\n searchedChaptersList: [],\n });\n }\n }, [programCode, onFormDataChange]);\n\n return (\n <>\n <SelectInput\n renderAs=\"primary\"\n label=\"Grade\"\n value={selectedGrade}\n options={grades}\n onChange={handleGradeChange}\n widthX={9}\n size=\"xsmall\"\n theme=\"dark\"\n shape=\"curved\"\n />\n\n {selectedGrade && (\n <>\n <SelectInput\n widthX={18}\n renderAs=\"primary\"\n shape=\"curved\"\n theme=\"dark\"\n size=\"xsmall\"\n label=\"Curriculum\"\n options={boards}\n renderOptionsAs=\"section-list\"\n value={selectedCurriculum}\n onChange={handleCurriculumChange}\n />\n\n {majorsPresent && (\n <SelectInput\n renderAs=\"primary\"\n label=\"Course\"\n options={majors}\n value={selectedCourse}\n onChange={handleMajorChange}\n widthX={9}\n size=\"xsmall\"\n theme=\"dark\"\n shape=\"curved\"\n />\n )}\n </>\n )}\n </>\n );\n});\n\nexport default CourseCatalog;\n"],"names":["CourseCatalog","memo","config","region","courseStream","classRatio","searchChapterFields","getCatalogChapters","onFormDataChange","enrollmentType","isTeacherTrainingAccount","userType","mode","useMilestoneContext","selectedCurriculum","selectedGrade","selectedCourse","grades","boards","majors","useCatalogHelpers","majorsPresent","useMemo","handleCurriculumChange","useCallback","curriculumValue","handleGradeChange","gradeValue","updatedCurriculum","_a","getCurriculumStandardsFromConfig","GOAL_CATEGORY","handleMajorChange","majorValue","programInfo","getGradeBoardAndMajorBasedProgramCode","programCode","useEffect","jsxs","Fragment","jsx","SelectInput"],"mappings":";;;;;;;;AAUM,MAAAA,IAAoCC,EAAK,SAAuB;AAAA,EACpE,QAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,0BAAAC;AAAA,EACA,UAAAC;AACF,GAAG;AACK,QAAA,EAAE,MAAAC,MAASC,KAEX,EAAE,oBAAAC,IAAqB,IAAI,eAAAC,IAAgB,IAAI,gBAAAC,IAAiB,GAAO,IAAAV,GAEvE,EAAE,QAAAW,GAAQ,QAAAC,GAAQ,QAAAC,EAAA,IAAWC,EAAkB;AAAA,IACnD,QAAAlB;AAAA,IACA,QAAAC;AAAA,IACA,qBAAAG;AAAA,IACA,cAAAF;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAI;AAAA,IACA,MAAM;AAAA,IACN,0BAAAC;AAAA,EAAA,CACD,GAEKW,IAAgBC,EAAQ,MAAMH,EAAO,SAAS,GAAG,CAACA,CAAM,CAAC,GAEzDI,IAAyBC;AAAA,IAC7B,CAACC,MAA4B;AACV,MAAAjB,EAAA;AAAA,QACf,qBAAqB;AAAA,UACnB,GAAGF;AAAA,UACH,oBAAoBmB;AAAA,QACtB;AAAA,MAAA,CACD;AAAA,IACH;AAAA,IACA,CAACnB,GAAqBE,CAAgB;AAAA,EAAA,GAGlCkB,IAAoBF;AAAA,IACxB,CAACG,MAAuB;;AACtB,UAAIC,IAAoBtB,EAAoB;AAExC,OAAAqB,MAAe,QAAQA,MAAe,SAYpBC,KAAAC,IAXOC,EAAiC5B,GAAQ;AAAA,QAClE,aAAaC,KAAU;AAAA,QACvB,OAAOwB;AAAA,QACP,cAAcI,EAAc;AAAA,QAC5B,cAAA3B;AAAA,QACA,gBAAAK;AAAA,QACA,YAAAJ;AAAA,QACA,MAAM;AAAA,QACN,0BAAAK;AAAA,MAAA,CACD,EAEsC,CAAC,MAApB,gBAAAmB,EAAuB,KAG5BrB,EAAA;AAAA,QACf,qBAAqB;AAAA,UACnB,GAAGF;AAAA,UACH,eAAeqB;AAAA,UACf,oBAAoBC;AAAA,QACtB;AAAA,MAAA,CACD;AAAA,IACH;AAAA,IACA;AAAA,MACEtB;AAAA,MACAE;AAAA,MACAN;AAAA,MACAC;AAAA,MACAC;AAAA,MACAK;AAAA,MACAJ;AAAA,MACAK;AAAA,IACF;AAAA,EAAA,GAGIsB,IAAoBR;AAAA,IACxB,CAACS,MAAuB;AACL,MAAAzB,EAAA;AAAA,QACf,qBAAqB;AAAA,UACnB,GAAGF;AAAA,UACH,gBAAgB2B;AAAA,QAClB;AAAA,MAAA,CACD;AAAA,IACH;AAAA,IACA,CAACzB,GAAkBF,CAAmB;AAAA,EAAA,GAGlC4B,IAAcZ;AAAA,IAClB,MACEa,EAAsCjC,GAAQ;AAAA,MAC5C,OAAOa;AAAA,MACP,OAAOD;AAAA,MACP,OAAOE;AAAA,MACP,eAAAK;AAAA,MACA,aAAalB,KAAU;AAAA,MACvB,kBAAkB4B,EAAc;AAAA,MAChC,cAAA3B;AAAA,MACA,gBAAAK;AAAA,MACA,0BAAAC;AAAA,IAAA,CACD;AAAA,IACH;AAAA,MACER;AAAA,MACAE;AAAA,MACAK;AAAA,MACAY;AAAA,MACAlB;AAAA,MACAa;AAAA,MACAF;AAAA,MACAC;AAAA,MACAL;AAAA,IACF;AAAA,EAAA,GAGI0B,IAAcd,EAAQ,OAAMY,KAAA,gBAAAA,EAAa,iBAAgB,IAAI,CAACA,CAAW,CAAC;AAEhF,SAAAG,EAAU,MAAM;AACd,IAAID,MAAgBxB,MAAS,UAAUD,MAAa,cAC/BJ,EAAA;AAAA,MACjB,aAAa;AAAA,MACb,cAAc6B;AAAA,IAAA,CACf;AAAA,EACH,GACC,CAAC7B,GAAoBK,GAAMwB,GAAaf,GAAeV,CAAQ,CAAC,GAEnE0B,EAAU,MAAM;AACd,IAAKD,KACc5B,EAAA;AAAA,MACf,sBAAsB,CAAC;AAAA,IAAA,CACxB;AAAA,EACH,GACC,CAAC4B,GAAa5B,CAAgB,CAAC,GAI9B,gBAAA8B,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAS;AAAA,QACT,OAAM;AAAA,QACN,OAAO1B;AAAA,QACP,SAASE;AAAA,QACT,UAAUS;AAAA,QACV,QAAQ;AAAA,QACR,MAAK;AAAA,QACL,OAAM;AAAA,QACN,OAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAECX,KAEG,gBAAAuB,EAAAC,GAAA,EAAA,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,QAAQ;AAAA,UACR,UAAS;AAAA,UACT,OAAM;AAAA,UACN,OAAM;AAAA,UACN,MAAK;AAAA,UACL,OAAM;AAAA,UACN,SAASvB;AAAA,UACT,iBAAgB;AAAA,UAChB,OAAOJ;AAAA,UACP,UAAUS;AAAA,QAAA;AAAA,MACZ;AAAA,MAECF,KACC,gBAAAmB;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,OAAM;AAAA,UACN,SAAStB;AAAA,UACT,OAAOH;AAAA,UACP,UAAUgB;AAAA,UACV,QAAQ;AAAA,UACR,MAAK;AAAA,UACL,OAAM;AAAA,UACN,OAAM;AAAA,QAAA;AAAA,MACR;AAAA,IAAA,GAEJ;AAAA,EAEJ,EAAA,CAAA;AAEJ,CAAC;"}
|