@cuemath/leap 2.8.21 → 2.8.22
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/assets/images/images.js +12 -0
- package/dist/assets/images/images.js.map +1 -1
- package/dist/constants/urls.js +5 -0
- package/dist/constants/urls.js.map +1 -0
- package/dist/features/chapters/chapter/chapter.js +45 -43
- package/dist/features/chapters/chapter/chapter.js.map +1 -1
- package/dist/features/chapters/chapter/comps/core-lessons/core-lessons.js +23 -21
- package/dist/features/chapters/chapter/comps/core-lessons/core-lessons.js.map +1 -1
- package/dist/features/milestone/constants.js +53 -18
- package/dist/features/milestone/constants.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js +16 -4
- package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-constants.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-container.js +56 -47
- package/dist/features/milestone/create/milestone-create-container.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-helpers.js +132 -113
- package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-hooks.js +92 -90
- package/dist/features/milestone/create/milestone-create-hooks.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-styled.js +34 -20
- package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
- package/dist/features/milestone/create/milestone-create.js +72 -53
- package/dist/features/milestone/create/milestone-create.js.map +1 -1
- package/dist/features/milestone/create/submit-modal/use-submit-milestone.js +53 -46
- package/dist/features/milestone/create/submit-modal/use-submit-milestone.js.map +1 -1
- package/dist/features/milestone/create/utils/index.js.map +1 -1
- package/dist/features/milestone/drafts/create/draft-create-container.js +54 -0
- package/dist/features/milestone/drafts/create/draft-create-container.js.map +1 -0
- package/dist/features/milestone/drafts/edit/draft-edit-container.js +77 -0
- package/dist/features/milestone/drafts/edit/draft-edit-container.js.map +1 -0
- package/dist/features/milestone/drafts/edit/draft-edit-helpers.js +69 -0
- package/dist/features/milestone/drafts/edit/draft-edit-helpers.js.map +1 -0
- package/dist/features/milestone/{edit/goal-drafts → drafts/goal-edit}/goal-draft-edit-container.js +24 -22
- package/dist/features/milestone/drafts/goal-edit/goal-draft-edit-container.js.map +1 -0
- package/dist/features/milestone/drafts/review/draft-review-container.js +76 -0
- package/dist/features/milestone/drafts/review/draft-review-container.js.map +1 -0
- package/dist/features/milestone/edit/comps/delete-milestone/add-remove-nudge.js +48 -0
- package/dist/features/milestone/edit/comps/delete-milestone/add-remove-nudge.js.map +1 -0
- package/dist/features/milestone/edit/comps/delete-milestone/styled.js +11 -8
- package/dist/features/milestone/edit/comps/delete-milestone/styled.js.map +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone-modal-styled.js +23 -0
- package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone-modal-styled.js.map +1 -0
- package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone.js +79 -82
- package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone.js.map +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js +136 -112
- package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/share-screen.js +68 -0
- package/dist/features/milestone/edit/comps/edit-milestone-modal/share-screen.js.map +1 -0
- package/dist/features/milestone/edit/goal-edit-helpers.js +6 -5
- package/dist/features/milestone/edit/goal-edit-helpers.js.map +1 -1
- package/dist/features/milestone/edit/milestone-edit-helpers.js +17 -16
- package/dist/features/milestone/edit/milestone-edit-helpers.js.map +1 -1
- package/dist/features/milestone/help-modals/index.js +22 -0
- package/dist/features/milestone/help-modals/index.js.map +1 -0
- package/dist/features/milestone/help-modals/milestone-lesson.js +17 -0
- package/dist/features/milestone/help-modals/milestone-lesson.js.map +1 -0
- package/dist/features/milestone/help-modals/milestone-list.js +17 -0
- package/dist/features/milestone/help-modals/milestone-list.js.map +1 -0
- package/dist/features/milestone/help-modals/utils.js +20 -0
- package/dist/features/milestone/help-modals/utils.js.map +1 -0
- package/dist/features/milestone/intro-modal/index.js +24 -0
- package/dist/features/milestone/intro-modal/index.js.map +1 -0
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +48 -46
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js +60 -58
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
- package/dist/features/milestone/outcome/comps/past-milestone/past-milestone-container.js +41 -39
- package/dist/features/milestone/outcome/comps/past-milestone/past-milestone-container.js.map +1 -1
- package/dist/features/notifications/api/notification.js +13 -0
- package/dist/features/notifications/api/notification.js.map +1 -0
- package/dist/features/notifications/use-student-journey.js +20 -0
- package/dist/features/notifications/use-student-journey.js.map +1 -0
- package/dist/features/sheets/constants/lessons.js +28 -0
- package/dist/features/sheets/constants/lessons.js.map +1 -0
- package/dist/features/ui/modals/info-modal/index.js +117 -0
- package/dist/features/ui/modals/info-modal/index.js.map +1 -0
- package/dist/index.d.ts +125 -7
- package/dist/index.js +258 -244
- package/dist/index.js.map +1 -1
- package/dist/static/goal_creation_helper.d45e4d58.png +0 -0
- package/dist/static/help_banner1.ddb0ef0f.png +0 -0
- package/dist/static/help_banner2.40979ed0.png +0 -0
- package/dist/static/help_banner3.532099c7.png +0 -0
- package/dist/static/help_banner4.90a6fd4d.png +0 -0
- package/dist/static/help_banner5.2a9efb39.png +0 -0
- package/dist/static/help_banner6.94fe9589.png +0 -0
- package/dist/static/milestone_intro_slide1.1537493e.png +0 -0
- package/dist/static/milestone_intro_slide2.b791c159.png +0 -0
- package/dist/static/milestone_intro_slide3.f7d63a11.png +0 -0
- package/dist/static/milestone_intro_slide4.f8da4e46.png +0 -0
- package/dist/static/milestone_intro_slide5.ea5d12d2.png +0 -0
- package/package.json +1 -1
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +0 -1
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-helpers.js +0 -17
- package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-helpers.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../src/features/milestone/edit/comps/edit-milestone-modal/index.tsx"],"sourcesContent":["import type { IEditMilestoneModalProps } from './edit-milestone-modal-types';\nimport type { ChangeEvent } from 'react';\n\nimport { parse } from 'date-fns';\nimport React, { memo, useCallback, useMemo, useState } from 'react';\n\nimport { EVENTS } from '../../../../communication/pub-sub/constants';\nimport { useInClassActionDispatcher } from '../../../../communication/pub-sub/hooks';\nimport UIContext from '../../../../ui/context/context';\nimport useTrackingContext from '../../../../ui/context/use-tracking-context';\nimport { ONE_YEAR_TIMESTAMP_IN_SECONDS } from '../../../constants';\nimport { invalidateMilestonesData } from '../../../milestone-list-container/api/get-milestones';\nimport ConfirmDelete from '../delete-milestone/confirm-delete';\nimport { useMilestonePatch } from './api/patch-milestone';\nimport EditMilestone from './edit-milestone';\n\nconst VIEWS = {\n DELETE_CONFIRM: 'delete_confirm',\n EDIT: 'edit',\n};\n\n// https://github.com/cuemath/package-leap/issues/409\nconst EditDeleteMilestone: React.FC<IEditMilestoneModalProps> = memo(\n ({\n milestoneName,\n milestoneId,\n milestoneDueDate,\n studentId,\n isMilestoneChaptersListEditable,\n isMilestoneDateEditable,\n isClassOngoing,\n onDelete,\n analyticsProps,\n canDelete,\n milestoneState,\n studentClassroomId,\n courseStream,\n }) => {\n const [view, setView] = useState<(typeof VIEWS)[keyof typeof VIEWS]>('edit');\n\n const [inputMilestoneDate, setMilestoneDate] = useState(milestoneDueDate);\n const [isDataPatched, setIsDataPatched] = useState(false);\n const [isPatchingFailed, setIsPatchingFailed] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n const todayTimestampSeconds = useMemo(\n () => Math.floor(new Date().setHours(0, 0, 0, 0) / 1000),\n [],\n );\n const oneYearFutureTimestampSeconds = useMemo(\n () => todayTimestampSeconds + ONE_YEAR_TIMESTAMP_IN_SECONDS,\n [todayTimestampSeconds],\n );\n\n const { dispatchInClassAction } = useInClassActionDispatcher({ studentClassroomId });\n\n const anyFieldChanged = inputMilestoneDate !== milestoneDueDate;\n\n const handleClearState = useCallback(() => {\n if (isDataPatched) {\n setIsDataPatched(false);\n }\n\n if (isPatchingFailed) {\n setIsPatchingFailed(false);\n }\n }, [isDataPatched, isPatchingFailed]);\n\n const handleOnComplete = useCallback(\n (errorMsg: string | null) => {\n if (errorMsg) {\n setIsPatchingFailed(true);\n\n return;\n }\n\n invalidateMilestonesData({\n milestone_state_group: 'LIVE',\n with_plan: true,\n course_stream: courseStream,\n student_id: studentId,\n in_class: isClassOngoing,\n });\n setIsDataPatched(true);\n dispatchInClassAction({\n eventName: EVENTS.MILESTONE_EDITED,\n eventPayload: {\n milestoneId,\n },\n });\n },\n [dispatchInClassAction, isClassOngoing, milestoneId, studentId, courseStream],\n );\n\n const { patch: updateMilestone, isProcessing } = useMilestonePatch({\n onComplete: handleOnComplete,\n });\n\n const handleDateChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n handleClearState();\n const value = e.target.value;\n\n if (!value) return;\n\n const timestampInSeconds = parse(value, 'yyyy-MM-dd', new Date()).getTime() / 1000;\n\n if (\n errorMessage &&\n timestampInSeconds >= todayTimestampSeconds &&\n timestampInSeconds < oneYearFutureTimestampSeconds\n ) {\n setErrorMessage('');\n }\n\n setMilestoneDate(timestampInSeconds);\n },\n [errorMessage, handleClearState, oneYearFutureTimestampSeconds, todayTimestampSeconds],\n );\n\n const onSave = useCallback(() => {\n if (\n inputMilestoneDate < todayTimestampSeconds ||\n inputMilestoneDate > oneYearFutureTimestampSeconds\n ) {\n if (inputMilestoneDate < todayTimestampSeconds) {\n setErrorMessage('Please enter a future date');\n } else {\n setErrorMessage('Please select a date within the next year');\n }\n\n return;\n }\n\n updateMilestone(milestoneId, {\n milestone_date_ts: inputMilestoneDate,\n });\n }, [\n milestoneId,\n inputMilestoneDate,\n oneYearFutureTimestampSeconds,\n todayTimestampSeconds,\n updateMilestone,\n ]);\n\n const onDeleteOptionClick = () => {\n setView(VIEWS.DELETE_CONFIRM);\n };\n\n const commonAnalytics = useMemo(() => {\n return {\n ...analyticsProps,\n milestone_id: milestoneId,\n temporary_milestone_id: milestoneId,\n is_student_class_ongoing: isClassOngoing,\n };\n }, [analyticsProps, isClassOngoing, milestoneId]);\n\n const analyticsContext = useTrackingContext(commonAnalytics);\n\n return (\n <UIContext.Provider value={analyticsContext}>\n {view === VIEWS.DELETE_CONFIRM && (\n <ConfirmDelete milestoneId={milestoneId} onDelete={onDelete} />\n )}\n\n {view === 'edit' && (\n <EditMilestone\n inputMilestoneName={milestoneName}\n areDateUpdatesDisabled={!isMilestoneDateEditable}\n handleDateChange={handleDateChange}\n inputMilestoneDate={inputMilestoneDate}\n anyFieldChanged={anyFieldChanged}\n isProcessing={isProcessing}\n isDataPatched={isDataPatched}\n isMilestoneChaptersListEditable={isMilestoneChaptersListEditable}\n onSave={onSave}\n isPatchingFailed={isPatchingFailed}\n onDeleteOptionClick={onDeleteOptionClick}\n errorMessage={errorMessage}\n canDelete={canDelete}\n milestoneState={milestoneState}\n />\n )}\n </UIContext.Provider>\n );\n },\n);\n\nexport default EditDeleteMilestone;\n"],"names":["VIEWS","EditDeleteMilestone","memo","milestoneName","milestoneId","milestoneDueDate","studentId","isMilestoneChaptersListEditable","isMilestoneDateEditable","isClassOngoing","onDelete","analyticsProps","canDelete","milestoneState","studentClassroomId","courseStream","view","setView","useState","inputMilestoneDate","setMilestoneDate","isDataPatched","setIsDataPatched","isPatchingFailed","setIsPatchingFailed","errorMessage","setErrorMessage","todayTimestampSeconds","useMemo","oneYearFutureTimestampSeconds","ONE_YEAR_TIMESTAMP_IN_SECONDS","dispatchInClassAction","useInClassActionDispatcher","anyFieldChanged","handleClearState","useCallback","handleOnComplete","errorMsg","invalidateMilestonesData","EVENTS","updateMilestone","isProcessing","useMilestonePatch","handleDateChange","e","value","timestampInSeconds","parse","onSave","onDeleteOptionClick","commonAnalytics","analyticsContext","useTrackingContext","jsxs","UIContext","jsx","ConfirmDelete","EditMilestone","EditDeleteMilestone$1"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/features/milestone/edit/comps/edit-milestone-modal/index.tsx"],"sourcesContent":["import type { IEditMilestoneModalProps } from './edit-milestone-modal-types';\nimport type { ChangeEvent } from 'react';\n\nimport { parse } from 'date-fns';\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { EVENTS } from '../../../../communication/pub-sub/constants';\nimport { useInClassActionDispatcher } from '../../../../communication/pub-sub/hooks';\nimport UIContext from '../../../../ui/context/context';\nimport useTrackingContext from '../../../../ui/context/use-tracking-context';\nimport { ONE_YEAR_TIMESTAMP_IN_SECONDS } from '../../../constants';\nimport { invalidateMilestonesData } from '../../../milestone-list-container/api/get-milestones';\nimport AddRemoveNudge from '../delete-milestone/add-remove-nudge';\nimport ConfirmDelete from '../delete-milestone/confirm-delete';\nimport { useMilestonePatch } from './api/patch-milestone';\nimport EditMilestone from './edit-milestone';\nimport AddRemoveChapters from './share-screen';\n\nconst VIEWS = {\n DELETE_CONFIRM: 'delete_confirm',\n SHARE_SCREEN: 'share_screen',\n ADD_REMOVE_NUDGE: 'add_remove_nudge',\n EDIT: 'edit',\n};\n\n// https://github.com/cuemath/package-leap/issues/409\nconst EditDeleteMilestone: React.FC<IEditMilestoneModalProps> = ({\n milestoneName,\n milestoneId,\n milestoneDueDate,\n isStudentPresent,\n handleEditChapters,\n studentId,\n isMilestoneChaptersListEditable,\n studentName,\n isMilestoneDateEditable,\n isClassOngoing,\n onDelete,\n analyticsProps,\n canDelete,\n milestoneState,\n studentClassroomId,\n courseStream,\n}) => {\n const [view, setView] = useState<(typeof VIEWS)[keyof typeof VIEWS]>('edit');\n\n const [inputMilestoneDate, setMilestoneDate] = useState(milestoneDueDate);\n const [isDataPatched, setIsDataPatched] = useState(false);\n const [isPatchingFailed, setIsPatchingFailed] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n const todayTimestampSeconds = useMemo(\n () => Math.floor(new Date().setHours(0, 0, 0, 0) / 1000),\n [],\n );\n const oneYearFutureTimestampSeconds = useMemo(\n () => todayTimestampSeconds + ONE_YEAR_TIMESTAMP_IN_SECONDS,\n [todayTimestampSeconds],\n );\n\n const { dispatchInClassAction } = useInClassActionDispatcher({ studentClassroomId });\n\n const anyFieldChanged = inputMilestoneDate !== milestoneDueDate;\n\n const handleClearState = useCallback(() => {\n if (isDataPatched) {\n setIsDataPatched(false);\n }\n\n if (isPatchingFailed) {\n setIsPatchingFailed(false);\n }\n }, [isDataPatched, isPatchingFailed]);\n\n const handleOnComplete = useCallback(\n (errorMsg: string | null) => {\n if (errorMsg) {\n setIsPatchingFailed(true);\n\n return;\n }\n\n invalidateMilestonesData({\n milestone_state_group: 'LIVE',\n with_plan: true,\n course_stream: courseStream,\n student_id: studentId,\n in_class: isClassOngoing,\n });\n setIsDataPatched(true);\n dispatchInClassAction({\n eventName: EVENTS.MILESTONE_EDITED,\n eventPayload: {\n milestoneId,\n },\n });\n },\n [dispatchInClassAction, isClassOngoing, milestoneId, studentId, courseStream],\n );\n\n const { patch: updateMilestone, isProcessing } = useMilestonePatch({\n onComplete: handleOnComplete,\n });\n\n const handleDateChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n handleClearState();\n const value = e.target.value;\n\n if (!value) return;\n\n const timestampInSeconds = parse(value, 'yyyy-MM-dd', new Date()).getTime() / 1000;\n\n if (\n errorMessage &&\n timestampInSeconds >= todayTimestampSeconds &&\n timestampInSeconds < oneYearFutureTimestampSeconds\n ) {\n setErrorMessage('');\n }\n\n setMilestoneDate(timestampInSeconds);\n },\n [errorMessage, handleClearState, oneYearFutureTimestampSeconds, todayTimestampSeconds],\n );\n\n const onSave = useCallback(() => {\n if (\n inputMilestoneDate < todayTimestampSeconds ||\n inputMilestoneDate > oneYearFutureTimestampSeconds\n ) {\n if (inputMilestoneDate < todayTimestampSeconds) {\n setErrorMessage('Please enter a future date');\n } else {\n setErrorMessage('Please select a date within the next year');\n }\n\n return;\n }\n\n updateMilestone(milestoneId, {\n milestone_date_ts: inputMilestoneDate,\n });\n }, [\n milestoneId,\n inputMilestoneDate,\n oneYearFutureTimestampSeconds,\n todayTimestampSeconds,\n updateMilestone,\n ]);\n\n const handleAddRemoveChapter = useCallback(() => {\n if (isStudentPresent) {\n setView(VIEWS.SHARE_SCREEN);\n } else {\n handleEditChapters(milestoneId, false);\n }\n }, [handleEditChapters, isStudentPresent, milestoneId]);\n\n const onDeleteOptionClick = () => {\n setView(VIEWS.DELETE_CONFIRM);\n };\n\n const handleProceedToDelete = () => {\n setView(VIEWS.DELETE_CONFIRM);\n };\n\n const commonAnalytics = useMemo(() => {\n return {\n ...analyticsProps,\n milestone_id: milestoneId,\n temporary_milestone_id: milestoneId,\n is_student_class_ongoing: isClassOngoing,\n };\n }, [analyticsProps, isClassOngoing, milestoneId]);\n\n const analyticsContext = useTrackingContext(commonAnalytics);\n\n return (\n <UIContext.Provider value={analyticsContext}>\n {view === VIEWS.DELETE_CONFIRM && (\n <ConfirmDelete milestoneId={milestoneId} onDelete={onDelete} />\n )}\n\n {view === VIEWS.ADD_REMOVE_NUDGE && (\n <AddRemoveNudge\n onAddRemove={handleAddRemoveChapter}\n onProceedToDelete={handleProceedToDelete}\n />\n )}\n\n {view === 'share_screen' && (\n <AddRemoveChapters\n handleEditChapters={handleEditChapters}\n milestoneId={milestoneId}\n studentName={studentName}\n />\n )}\n\n {view === 'edit' && (\n <EditMilestone\n inputMilestoneName={milestoneName}\n areDateUpdatesDisabled={!isMilestoneDateEditable}\n handleDateChange={handleDateChange}\n inputMilestoneDate={inputMilestoneDate}\n anyFieldChanged={anyFieldChanged}\n isProcessing={isProcessing}\n isDataPatched={isDataPatched}\n isMilestoneChaptersListEditable={isMilestoneChaptersListEditable}\n onSave={onSave}\n isPatchingFailed={isPatchingFailed}\n onDeleteOptionClick={onDeleteOptionClick}\n errorMessage={errorMessage}\n canDelete={canDelete}\n milestoneState={milestoneState}\n />\n )}\n </UIContext.Provider>\n );\n};\n\nexport default EditDeleteMilestone;\n"],"names":["VIEWS","EditDeleteMilestone","milestoneName","milestoneId","milestoneDueDate","isStudentPresent","handleEditChapters","studentId","isMilestoneChaptersListEditable","studentName","isMilestoneDateEditable","isClassOngoing","onDelete","analyticsProps","canDelete","milestoneState","studentClassroomId","courseStream","view","setView","useState","inputMilestoneDate","setMilestoneDate","isDataPatched","setIsDataPatched","isPatchingFailed","setIsPatchingFailed","errorMessage","setErrorMessage","todayTimestampSeconds","useMemo","oneYearFutureTimestampSeconds","ONE_YEAR_TIMESTAMP_IN_SECONDS","dispatchInClassAction","useInClassActionDispatcher","anyFieldChanged","handleClearState","useCallback","handleOnComplete","errorMsg","invalidateMilestonesData","EVENTS","updateMilestone","isProcessing","useMilestonePatch","handleDateChange","e","value","timestampInSeconds","parse","onSave","handleAddRemoveChapter","onDeleteOptionClick","handleProceedToDelete","commonAnalytics","analyticsContext","useTrackingContext","jsxs","UIContext","jsx","ConfirmDelete","AddRemoveNudge","AddRemoveChapters","EditMilestone","EditDeleteMilestone$1"],"mappings":";;;;;;;;;;;;;;AAkBA,MAAMA,IAAQ;AAAA,EACZ,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,MAAM;AACR,GAGMC,KAA0D,CAAC;AAAA,EAC/D,eAAAC;AAAA,EACA,aAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,iCAAAC;AAAA,EACA,aAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,cAAAC;AACF,MAAM;AACJ,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAA6C,MAAM,GAErE,CAACC,GAAoBC,CAAgB,IAAIF,EAAShB,CAAgB,GAClE,CAACmB,GAAeC,CAAgB,IAAIJ,EAAS,EAAK,GAClD,CAACK,GAAkBC,CAAmB,IAAIN,EAAS,EAAK,GACxD,CAACO,GAAcC,CAAe,IAAIR,EAAS,EAAE,GAC7CS,IAAwBC;AAAA,IAC5B,MAAM,KAAK,OAAM,oBAAI,KAAK,GAAE,SAAS,GAAG,GAAG,GAAG,CAAC,IAAI,GAAI;AAAA,IACvD,CAAC;AAAA,EAAA,GAEGC,IAAgCD;AAAA,IACpC,MAAMD,IAAwBG;AAAA,IAC9B,CAACH,CAAqB;AAAA,EAAA,GAGlB,EAAE,uBAAAI,EAAsB,IAAIC,EAA2B,EAAE,oBAAAlB,EAAoB,CAAA,GAE7EmB,IAAkBd,MAAuBjB,GAEzCgC,IAAmBC,EAAY,MAAM;AACzC,IAAId,KACFC,EAAiB,EAAK,GAGpBC,KACFC,EAAoB,EAAK;AAAA,EAC3B,GACC,CAACH,GAAeE,CAAgB,CAAC,GAE9Ba,IAAmBD;AAAA,IACvB,CAACE,MAA4B;AAC3B,UAAIA,GAAU;AACZ,QAAAb,EAAoB,EAAI;AAExB;AAAA,MACF;AAEyB,MAAAc,GAAA;AAAA,QACvB,uBAAuB;AAAA,QACvB,WAAW;AAAA,QACX,eAAevB;AAAA,QACf,YAAYV;AAAA,QACZ,UAAUI;AAAA,MAAA,CACX,GACDa,EAAiB,EAAI,GACCS,EAAA;AAAA,QACpB,WAAWQ,EAAO;AAAA,QAClB,cAAc;AAAA,UACZ,aAAAtC;AAAA,QACF;AAAA,MAAA,CACD;AAAA,IACH;AAAA,IACA,CAAC8B,GAAuBtB,GAAgBR,GAAaI,GAAWU,CAAY;AAAA,EAAA,GAGxE,EAAE,OAAOyB,GAAiB,cAAAC,EAAA,IAAiBC,GAAkB;AAAA,IACjE,YAAYN;AAAA,EAAA,CACb,GAEKO,IAAmBR;AAAA,IACvB,CAACS,MAAqC;AACnB,MAAAV;AACX,YAAAW,IAAQD,EAAE,OAAO;AAEvB,UAAI,CAACC,EAAO;AAEN,YAAAC,IAAqBC,GAAMF,GAAO,kCAAkB,MAAM,EAAE,QAAY,IAAA;AAE9E,MACEpB,KACAqB,KAAsBnB,KACtBmB,IAAqBjB,KAErBH,EAAgB,EAAE,GAGpBN,EAAiB0B,CAAkB;AAAA,IACrC;AAAA,IACA,CAACrB,GAAcS,GAAkBL,GAA+BF,CAAqB;AAAA,EAAA,GAGjFqB,IAASb,EAAY,MAAM;AAE7B,QAAAhB,IAAqBQ,KACrBR,IAAqBU,GACrB;AACA,MAAIV,IAAqBQ,IACvBD,EAAgB,4BAA4B,IAE5CA,EAAgB,2CAA2C;AAG7D;AAAA,IACF;AAEA,IAAAc,EAAgBvC,GAAa;AAAA,MAC3B,mBAAmBkB;AAAA,IAAA,CACpB;AAAA,EAAA,GACA;AAAA,IACDlB;AAAA,IACAkB;AAAA,IACAU;AAAA,IACAF;AAAA,IACAa;AAAA,EAAA,CACD,GAEKS,IAAyBd,EAAY,MAAM;AAC/C,IAAIhC,IACFc,EAAQnB,EAAM,YAAY,IAE1BM,EAAmBH,GAAa,EAAK;AAAA,EAEtC,GAAA,CAACG,GAAoBD,GAAkBF,CAAW,CAAC,GAEhDiD,IAAsB,MAAM;AAChC,IAAAjC,EAAQnB,EAAM,cAAc;AAAA,EAAA,GAGxBqD,IAAwB,MAAM;AAClC,IAAAlC,EAAQnB,EAAM,cAAc;AAAA,EAAA,GAGxBsD,IAAkBxB,EAAQ,OACvB;AAAA,IACL,GAAGjB;AAAA,IACH,cAAcV;AAAA,IACd,wBAAwBA;AAAA,IACxB,0BAA0BQ;AAAA,EAAA,IAE3B,CAACE,GAAgBF,GAAgBR,CAAW,CAAC,GAE1CoD,IAAmBC,EAAmBF,CAAe;AAE3D,SACG,gBAAAG,EAAAC,EAAU,UAAV,EAAmB,OAAOH,GACxB,UAAA;AAAA,IAAArC,MAASlB,EAAM,kBACb,gBAAA2D,EAAAC,IAAA,EAAc,aAAAzD,GAA0B,UAAAS,GAAoB;AAAA,IAG9DM,MAASlB,EAAM,oBACd,gBAAA2D;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,aAAaV;AAAA,QACb,mBAAmBE;AAAA,MAAA;AAAA,IACrB;AAAA,IAGDnC,MAAS,kBACR,gBAAAyC;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,oBAAAxD;AAAA,QACA,aAAAH;AAAA,QACA,aAAAM;AAAA,MAAA;AAAA,IACF;AAAA,IAGDS,MAAS,UACR,gBAAAyC;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,oBAAoB7D;AAAA,QACpB,wBAAwB,CAACQ;AAAA,QACzB,kBAAAmC;AAAA,QACA,oBAAAxB;AAAA,QACA,iBAAAc;AAAA,QACA,cAAAQ;AAAA,QACA,eAAApB;AAAA,QACA,iCAAAf;AAAA,QACA,QAAA0C;AAAA,QACA,kBAAAzB;AAAA,QACA,qBAAA2B;AAAA,QACA,cAAAzB;AAAA,QACA,WAAAb;AAAA,QACA,gBAAAC;AAAA,MAAA;AAAA,IACF;AAAA,EAEJ,EAAA,CAAA;AAEJ,GAEAiD,KAAe/D;"}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
import { jsxs as l, jsx as e } from "react/jsx-runtime";
|
2
|
+
import { h as i } from "../../../../../node_modules/humanize-plus/dist/humanize.js";
|
3
|
+
import { useCallback as p } from "react";
|
4
|
+
import $ from "../../../../ui/buttons/text-button/text-button.js";
|
5
|
+
import n from "../../../../ui/layout/flex-view.js";
|
6
|
+
import h from "../../../../ui/separator/separator.js";
|
7
|
+
import u from "../../../../ui/text/text.js";
|
8
|
+
import { StyledButton as m } from "./edit-milestone-modal-styled.js";
|
9
|
+
const w = ({
|
10
|
+
handleEditChapters: o,
|
11
|
+
milestoneId: t,
|
12
|
+
studentName: r,
|
13
|
+
onCreatePlan: s,
|
14
|
+
canCreatePlan: c
|
15
|
+
}) => {
|
16
|
+
const f = p(() => {
|
17
|
+
o(t, !1);
|
18
|
+
}, [o, t]), g = p(() => {
|
19
|
+
c && s ? s() : o(t, !0);
|
20
|
+
}, [c, s, o, t]);
|
21
|
+
let a = `⚠️ IMPORTANT: ${i.capitalize(
|
22
|
+
r
|
23
|
+
)} may be actively working on a specific chapter. Please exercise caution when editing without screen sharing, as this could potentially disrupt ${i.capitalize(
|
24
|
+
r
|
25
|
+
)}'s progress`;
|
26
|
+
return c && (a = `⚠️ IMPORTANT: ${i.capitalize(
|
27
|
+
r
|
28
|
+
)} may be actively working on a specific worksheet. Please exercise caution when creating learning plan, as this will interrupt ${i.capitalize(
|
29
|
+
r
|
30
|
+
)}'s work`), /* @__PURE__ */ l(n, { $gutterX: 1.5, $gapX: 1.5, $height: "100%", $justifyContent: "space-between", children: [
|
31
|
+
/* @__PURE__ */ l(n, { children: [
|
32
|
+
/* @__PURE__ */ l(u, { $renderAs: "h4", children: [
|
33
|
+
"Would you like to enable screen sharing with ",
|
34
|
+
i.capitalize(r),
|
35
|
+
"?"
|
36
|
+
] }),
|
37
|
+
/* @__PURE__ */ e(h, { heightX: 1 }),
|
38
|
+
/* @__PURE__ */ e(
|
39
|
+
n,
|
40
|
+
{
|
41
|
+
$gutterX: 0.5,
|
42
|
+
$gapX: 0.5,
|
43
|
+
$background: "ORANGE_1",
|
44
|
+
$borderColor: "ORANGE_4",
|
45
|
+
$borderRadiusX: 0.25,
|
46
|
+
children: /* @__PURE__ */ e(u, { $renderAs: "body2", children: a })
|
47
|
+
}
|
48
|
+
)
|
49
|
+
] }),
|
50
|
+
/* @__PURE__ */ e(h, { heightX: 4 }),
|
51
|
+
/* @__PURE__ */ l(n, { $flexDirection: "row", $justifyContent: "flex-end", $alignItems: "center", children: [
|
52
|
+
!c && /* @__PURE__ */ e($, { label: "Proceed without sharing", onClick: f }),
|
53
|
+
/* @__PURE__ */ e(
|
54
|
+
m,
|
55
|
+
{
|
56
|
+
renderAs: "primary",
|
57
|
+
label: "Share screen & proceed",
|
58
|
+
onClick: g,
|
59
|
+
size: "small"
|
60
|
+
}
|
61
|
+
)
|
62
|
+
] })
|
63
|
+
] });
|
64
|
+
}, T = w;
|
65
|
+
export {
|
66
|
+
T as default
|
67
|
+
};
|
68
|
+
//# sourceMappingURL=share-screen.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"share-screen.js","sources":["../../../../../../src/features/milestone/edit/comps/edit-milestone-modal/share-screen.tsx"],"sourcesContent":["import type { IShareScreenModalProps } from './edit-milestone-modal-types';\n\nimport { capitalize } from 'humanize-plus';\nimport React, { useCallback } from 'react';\n\nimport TextButton from '../../../../ui/buttons/text-button/text-button';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport { StyledButton } from './edit-milestone-modal-styled';\n\nconst ShareScreen: React.FC<IShareScreenModalProps> = ({\n handleEditChapters,\n milestoneId,\n studentName,\n onCreatePlan,\n canCreatePlan,\n}) => {\n const declineShareScreen = useCallback(() => {\n handleEditChapters(milestoneId, false);\n }, [handleEditChapters, milestoneId]);\n\n const allowShareScreen = useCallback(() => {\n if (canCreatePlan && onCreatePlan) {\n onCreatePlan();\n } else {\n handleEditChapters(milestoneId, true);\n }\n }, [canCreatePlan, onCreatePlan, handleEditChapters, milestoneId]);\n\n let cautionText = `⚠️ IMPORTANT: ${capitalize(\n studentName,\n )} may be actively working on a specific chapter. Please exercise caution when editing without screen sharing, as this could potentially disrupt ${capitalize(\n studentName,\n )}'s progress`;\n\n if (canCreatePlan) {\n cautionText = `⚠️ IMPORTANT: ${capitalize(\n studentName,\n )} may be actively working on a specific worksheet. Please exercise caution when creating learning plan, as this will interrupt ${capitalize(\n studentName,\n )}'s work`;\n }\n\n return (\n <FlexView $gutterX={1.5} $gapX={1.5} $height=\"100%\" $justifyContent=\"space-between\">\n <FlexView>\n <Text $renderAs=\"h4\">\n Would you like to enable screen sharing with {capitalize(studentName)}?\n </Text>\n <Separator heightX={1} />\n <FlexView\n $gutterX={0.5}\n $gapX={0.5}\n $background=\"ORANGE_1\"\n $borderColor=\"ORANGE_4\"\n $borderRadiusX={0.25}\n >\n <Text $renderAs=\"body2\">{cautionText}</Text>\n </FlexView>\n </FlexView>\n <Separator heightX={4} />\n <FlexView $flexDirection=\"row\" $justifyContent=\"flex-end\" $alignItems=\"center\">\n {!canCreatePlan && (\n <TextButton label=\"Proceed without sharing\" onClick={declineShareScreen} />\n )}\n <StyledButton\n renderAs=\"primary\"\n label=\"Share screen & proceed\"\n onClick={allowShareScreen}\n size=\"small\"\n />\n </FlexView>\n </FlexView>\n );\n};\n\nexport default ShareScreen;\n"],"names":["ShareScreen","handleEditChapters","milestoneId","studentName","onCreatePlan","canCreatePlan","declineShareScreen","useCallback","allowShareScreen","cautionText","capitalize","jsxs","FlexView","Text","jsx","Separator","TextButton","StyledButton","AddRemoveChapters"],"mappings":";;;;;;;;AAWA,MAAMA,IAAgD,CAAC;AAAA,EACrD,oBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,eAAAC;AACF,MAAM;AACE,QAAAC,IAAqBC,EAAY,MAAM;AAC3C,IAAAN,EAAmBC,GAAa,EAAK;AAAA,EAAA,GACpC,CAACD,GAAoBC,CAAW,CAAC,GAE9BM,IAAmBD,EAAY,MAAM;AACzC,IAAIF,KAAiBD,IACNA,MAEbH,EAAmBC,GAAa,EAAI;AAAA,KAErC,CAACG,GAAeD,GAAcH,GAAoBC,CAAW,CAAC;AAEjE,MAAIO,IAAc,iBAAiBC,EAAA;AAAA,IACjCP;AAAA,EACD,CAAA,kJAAkJO,EAAA;AAAA,IACjJP;AAAA,EACD,CAAA;AAED,SAAIE,MACFI,IAAc,iBAAiBC,EAAA;AAAA,IAC7BP;AAAA,EACD,CAAA,iIAAiIO,EAAA;AAAA,IAChIP;AAAA,EACD,CAAA,YAID,gBAAAQ,EAACC,KAAS,UAAU,KAAK,OAAO,KAAK,SAAQ,QAAO,iBAAgB,iBAClE,UAAA;AAAA,IAAA,gBAAAD,EAACC,GACC,EAAA,UAAA;AAAA,MAAC,gBAAAD,EAAAE,GAAA,EAAK,WAAU,MAAK,UAAA;AAAA,QAAA;AAAA,QAC2BH,EAAAA,WAAWP,CAAW;AAAA,QAAE;AAAA,MAAA,GACxE;AAAA,MACA,gBAAAW,EAACC,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,MACvB,gBAAAD;AAAA,QAACF;AAAA,QAAA;AAAA,UACC,UAAU;AAAA,UACV,OAAO;AAAA,UACP,aAAY;AAAA,UACZ,cAAa;AAAA,UACb,gBAAgB;AAAA,UAEhB,UAAC,gBAAAE,EAAAD,GAAA,EAAK,WAAU,SAAS,UAAYJ,GAAA;AAAA,QAAA;AAAA,MACvC;AAAA,IAAA,GACF;AAAA,IACA,gBAAAK,EAACC,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,sBACtBH,GAAS,EAAA,gBAAe,OAAM,iBAAgB,YAAW,aAAY,UACnE,UAAA;AAAA,MAAA,CAACP,KACC,gBAAAS,EAAAE,GAAA,EAAW,OAAM,2BAA0B,SAASV,GAAoB;AAAA,MAE3E,gBAAAQ;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,OAAM;AAAA,UACN,SAAST;AAAA,UACT,MAAK;AAAA,QAAA;AAAA,MACP;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ,GAEAU,IAAelB;"}
|
@@ -2,14 +2,14 @@ import { GOAL_CATEGORY as u } from "../constants.js";
|
|
2
2
|
import { checkEnrollmentAvailable as _ } from "../create/comps/test-type-step/test-type-utils.js";
|
3
3
|
import { getRegionCodeBasedOnCountryCode as f } from "../create/milestone-create-helpers.js";
|
4
4
|
import { getLearningSheetData as g, getTotalSupplementarySheetCount as h } from "../create/utils/index.js";
|
5
|
-
import { transformRecommendedChaptersFromMilestonePlan as y } from "
|
5
|
+
import { transformRecommendedChaptersFromMilestonePlan as y } from "../drafts/edit/draft-edit-helpers.js";
|
6
6
|
import { formatDate as C } from "../../../node_modules/date-fns/format.js";
|
7
7
|
const { SCHOOL_SUCCESS: T, TEST_PREP: E, ENRICHMENT: I } = u, c = (t, r, s) => {
|
8
8
|
const m = t.committed;
|
9
9
|
m[r] = !0;
|
10
10
|
const o = r;
|
11
11
|
t[o] = s;
|
12
|
-
},
|
12
|
+
}, G = (t, r = !1) => t.map((s) => {
|
13
13
|
const {
|
14
14
|
id: m,
|
15
15
|
code: o = "",
|
@@ -55,6 +55,7 @@ const { SCHOOL_SUCCESS: T, TEST_PREP: E, ENRICHMENT: I } = u, c = (t, r, s) => {
|
|
55
55
|
milestoneEndDate: !0,
|
56
56
|
region: !0,
|
57
57
|
chapterGoalCategory: !0,
|
58
|
+
schoolGooglePlaceData: !0,
|
58
59
|
milestoneEndDateIsTentative: !0
|
59
60
|
},
|
60
61
|
reviewed: {}
|
@@ -66,7 +67,7 @@ const { SCHOOL_SUCCESS: T, TEST_PREP: E, ENRICHMENT: I } = u, c = (t, r, s) => {
|
|
66
67
|
"yyyy-MM-dd"
|
67
68
|
), c(e, "region", d ?? "DUMMY"), e.major = t.selected_major ?? "DUMMY_MAJOR";
|
68
69
|
const p = (i = t.user_milestone_plan) == null ? void 0 : i.user_chapters;
|
69
|
-
p ? e.primaryChaptersList =
|
70
|
+
p ? e.primaryChaptersList = G(p).map((n) => ({
|
70
71
|
...n,
|
71
72
|
added: !0
|
72
73
|
})) : e.primaryChaptersList = [];
|
@@ -79,7 +80,7 @@ const { SCHOOL_SUCCESS: T, TEST_PREP: E, ENRICHMENT: I } = u, c = (t, r, s) => {
|
|
79
80
|
], {
|
80
81
|
...e
|
81
82
|
};
|
82
|
-
},
|
83
|
+
}, P = ({
|
83
84
|
field: t,
|
84
85
|
isFieldCommited: r,
|
85
86
|
prevFormData: s,
|
@@ -97,7 +98,7 @@ const { SCHOOL_SUCCESS: T, TEST_PREP: E, ENRICHMENT: I } = u, c = (t, r, s) => {
|
|
97
98
|
return !1;
|
98
99
|
};
|
99
100
|
export {
|
100
|
-
|
101
|
+
P as checkIfCommittedFieldIsUpdated,
|
101
102
|
v as transformGoalData
|
102
103
|
};
|
103
104
|
//# sourceMappingURL=goal-edit-helpers.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"goal-edit-helpers.js","sources":["../../../../src/features/milestone/edit/goal-edit-helpers.ts"],"sourcesContent":["import type { IChapterDataProps } from '../../chapters/chapter/chapter-types';\nimport type { IChapter } from '../create/comps/chapter-item/chapter-item-types';\nimport type {\n IMileStoneFormFields,\n IMilestoneConfig,\n IMilestoneFormData,\n TCourseStream,\n TEnrollmentTypes,\n
|
1
|
+
{"version":3,"file":"goal-edit-helpers.js","sources":["../../../../src/features/milestone/edit/goal-edit-helpers.ts"],"sourcesContent":["import type { IChapterDataProps } from '../../chapters/chapter/chapter-types';\nimport type { IChapter } from '../create/comps/chapter-item/chapter-item-types';\nimport type {\n IMileStoneFormFields,\n IMilestoneConfig,\n IMilestoneFormData,\n TCourseStream,\n TEnrollmentTypes,\n TMilesonteFormStateField,\n} from '../create/milestone-create-types';\nimport type { IMilestoneData } from '../milestone-list-container/milestone-list/milestone-list-types';\n\nimport { format } from 'date-fns';\n\nimport { GOAL_CATEGORY } from '../constants';\nimport { checkEnrollmentAvailable } from '../create/comps/test-type-step/test-type-utils';\nimport { getRegionCodeBasedOnCountryCode } from '../create/milestone-create-helpers';\nimport { getLearningSheetData, getTotalSupplementarySheetCount } from '../create/utils';\nimport { transformRecommendedChaptersFromMilestonePlan } from '../drafts/edit/draft-edit-helpers';\n\nconst { SCHOOL_SUCCESS, TEST_PREP, ENRICHMENT } = GOAL_CATEGORY;\n\ntype TTransformDataProps = {\n currentMilestoneData: IMilestoneData;\n config: IMilestoneConfig;\n courseStream: TCourseStream;\n enrollmentType?: TEnrollmentTypes;\n currentCountryCode?: string;\n};\n\ninterface ITransformData {\n (props: TTransformDataProps): IMilestoneFormData;\n}\n\ntype TFormValues = IMilestoneFormData[keyof IMileStoneFormFields];\ntype TFormFields = keyof IMileStoneFormFields | 'committed';\ntype TFormData = Record<TFormFields, TFormValues> | IMilestoneFormData;\n\nconst commitAndAdd = (formData: TFormData, field: TFormFields, value: TFormValues) => {\n const committedFormData = formData.committed as Record<TFormFields, boolean>;\n\n committedFormData[field] = true;\n\n const formDataFiledValue = field as keyof IMileStoneFormFields;\n\n formData[formDataFiledValue] = value;\n};\n\nconst getFormChapters = (chapters: IChapterDataProps[], editMode = false): IChapter[] => {\n return chapters.map(chapter => {\n const {\n id,\n code = '',\n chapter_code,\n image_url,\n name,\n chapter_tags,\n state,\n sheets_data: sheetsData,\n program_id: programId,\n } = chapter;\n\n return {\n id,\n code: code || chapter_code,\n chapter_code,\n image_url,\n name,\n chapter_tags,\n state,\n added: !editMode,\n program_id: programId,\n learning_sheet_data: getLearningSheetData(sheetsData.lessons),\n total_supplementary_sheets: getTotalSupplementarySheetCount(\n sheetsData.supplementary_sheets_grouped,\n ),\n };\n });\n};\n\nconst transformGoalData: ITransformData = ({\n currentMilestoneData,\n config,\n courseStream,\n enrollmentType,\n currentCountryCode,\n}) => {\n //TODO: We need country code from currentMilestoneData\n const regionCode = currentCountryCode\n ? getRegionCodeBasedOnCountryCode(currentCountryCode)\n : undefined;\n\n const transformedData: IMilestoneFormData = {\n testType: undefined,\n committed: {\n testType: true,\n grade: true,\n schoolInfo: true,\n board: true,\n major: false,\n milestoneEndDate: true,\n region: true,\n chapterGoalCategory: true,\n\n schoolGooglePlaceData: true,\n milestoneEndDateIsTentative: true,\n },\n reviewed: {},\n };\n\n const { goal_category: goalCategory } = currentMilestoneData || {};\n\n if (goalCategory) {\n if (goalCategory === SCHOOL_SUCCESS) {\n commitAndAdd(transformedData, 'testType', 'no-test');\n } else if (goalCategory === TEST_PREP) {\n commitAndAdd(transformedData, 'testType', 'non-standardized');\n } else if (goalCategory === ENRICHMENT) {\n commitAndAdd(transformedData, 'testType', 'standardized');\n }\n }\n\n transformedData.chapterGoalCategory = {\n primaryGoalCategory: config.goal_curriculum_map.find(goalData => {\n if (goalData.goal_code !== currentMilestoneData.goal_code) return false;\n\n if (goalData.course_stream !== courseStream) return false;\n\n return checkEnrollmentAvailable(goalData, enrollmentType);\n }),\n };\n\n transformedData.grade = currentMilestoneData.grade;\n transformedData.board = currentMilestoneData.board;\n transformedData.milestoneEndDate = format(\n new Date(currentMilestoneData.milestone_date_ts * 1000),\n 'yyyy-MM-dd',\n );\n commitAndAdd(transformedData, 'region', regionCode ?? 'DUMMY');\n transformedData.major = currentMilestoneData.selected_major ?? 'DUMMY_MAJOR';\n\n const userChapters = currentMilestoneData.user_milestone_plan?.user_chapters;\n\n if (userChapters) {\n transformedData.primaryChaptersList = getFormChapters(userChapters).map(chapter => {\n return {\n ...chapter,\n added: true,\n };\n });\n } else {\n transformedData.primaryChaptersList = [];\n }\n\n const recommendedChapters = transformRecommendedChaptersFromMilestonePlan(\n currentMilestoneData.recommended_chapters,\n );\n\n transformedData.primaryChaptersList = [\n ...(transformedData.primaryChaptersList ?? []),\n ...recommendedChapters,\n ];\n\n return {\n ...transformedData,\n };\n};\n\ninterface ICheckIfCommittedFieldIsUpdated {\n (params: {\n field: TMilesonteFormStateField;\n isFieldCommited: boolean;\n prevFormData: IMilestoneFormData;\n newValueOfField: unknown;\n formDataStateRef: IMilestoneFormData;\n }): boolean;\n}\n\n/**\n * This method accepts commited changes in the form tree and checks if the committed fields are actually updated from the original value.\n *\n * @param field - The field to be checked for updates.\n * @param isFieldCommited - Is field committed\n * @param prevFormData - The previous form data.\n * @param newValueOfField - The value of the field in updated form data.\n * @param formDataStateRef - The reference to the current form data state.\n *\n * @returns The updated field if any, or null if no updates were made.\n */\n\nconst checkIfCommittedFieldIsUpdated: ICheckIfCommittedFieldIsUpdated = ({\n field,\n isFieldCommited,\n prevFormData,\n newValueOfField,\n formDataStateRef,\n}) => {\n if (isFieldCommited && prevFormData.committed?.[field] !== isFieldCommited) {\n if (field === 'schoolInfo') {\n if (formDataStateRef.schoolInfo?.countryCode !== prevFormData.schoolInfo?.countryCode)\n return true;\n } else if (formDataStateRef[field] !== newValueOfField) {\n return true;\n }\n }\n\n return false;\n};\n\nexport { checkIfCommittedFieldIsUpdated, transformGoalData };\n"],"names":["SCHOOL_SUCCESS","TEST_PREP","ENRICHMENT","GOAL_CATEGORY","commitAndAdd","formData","field","value","committedFormData","formDataFiledValue","getFormChapters","chapters","editMode","chapter","id","code","chapter_code","image_url","name","chapter_tags","state","sheetsData","programId","getLearningSheetData","getTotalSupplementarySheetCount","transformGoalData","currentMilestoneData","config","courseStream","enrollmentType","currentCountryCode","regionCode","getRegionCodeBasedOnCountryCode","transformedData","goalCategory","goalData","checkEnrollmentAvailable","format","userChapters","_a","recommendedChapters","transformRecommendedChaptersFromMilestonePlan","checkIfCommittedFieldIsUpdated","isFieldCommited","prevFormData","newValueOfField","formDataStateRef","_b","_c"],"mappings":"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"}
|
@@ -1,14 +1,15 @@
|
|
1
|
-
import { getFormChapters as
|
2
|
-
import { transformRecommendedChaptersFromMilestonePlan as
|
3
|
-
import { formatDate as
|
4
|
-
const
|
5
|
-
t.committed[
|
6
|
-
},
|
1
|
+
import { getFormChapters as l } from "../create/utils/index.js";
|
2
|
+
import { transformRecommendedChaptersFromMilestonePlan as _ } from "../drafts/edit/draft-edit-helpers.js";
|
3
|
+
import { formatDate as f } from "../../../node_modules/date-fns/format.js";
|
4
|
+
const a = (t, o, e) => {
|
5
|
+
t.committed[o] = !0, t[o] = e;
|
6
|
+
}, u = (t, o) => {
|
7
7
|
const e = {
|
8
8
|
committed: {
|
9
9
|
testType: !0,
|
10
10
|
grade: !0,
|
11
11
|
schoolInfo: !0,
|
12
|
+
schoolGooglePlaceData: !0,
|
12
13
|
board: !0,
|
13
14
|
major: !1,
|
14
15
|
milestoneEndDate: !0,
|
@@ -16,27 +17,27 @@ const m = (t, s, e) => {
|
|
16
17
|
region: !0
|
17
18
|
},
|
18
19
|
reviewed: {}
|
19
|
-
}, { academic_event_id:
|
20
|
-
|
20
|
+
}, { academic_event_id: s, milestone_name: i } = t || {}, { academic_events: n = [] } = o || {}, c = n.find(({ id: m }) => m === s), { event_name: r, event_type: d } = c || {};
|
21
|
+
s && (e.committed.academicEventId = !0, e.academicEventId = s), r ? (e.committed.testName = !0, e.testName = r) : (e.committed.testName = !0, e.testName = i), d && (d === "SCHOOL_TEST" ? a(e, "testType", "non-standardized") : d === "STANDARDISED_TEST" ? (a(e, "testType", "standardized"), a(e, "standardizedTestType", "unknown"), a(e, "standardizedTestPreparationMethod", "cuemath-curricullum"), a(e, "region", "DUMMY"), a(e, "board", "DUMMY")) : d === "COURSE_COMPLETION" ? a(e, "testType", "no-test") : a(e, "testType", void 0)), e.grade = t.grade, e.board = t.board, e.milestoneEndDate = f(
|
21
22
|
new Date(t.milestone_date_ts * 1e3),
|
22
23
|
"yyyy-MM-dd"
|
23
|
-
), e.schoolInfo = t.schoolInfo ?? {},
|
24
|
-
t.user_milestone_plan.user_chapters.map((
|
25
|
-
...
|
26
|
-
id:
|
24
|
+
), e.schoolInfo = t.schoolInfo ?? {}, e.schoolGooglePlaceData = t.schoolGooglePlaceData || {}, a(e, "region", "DUMMY"), e.major = t.major ?? "DUMMY_MAJOR", t.user_milestone_plan ? e.primaryChaptersList = l(
|
25
|
+
t.user_milestone_plan.user_chapters.map((m) => ({
|
26
|
+
...m,
|
27
|
+
id: m.chapter_id
|
27
28
|
}))
|
28
|
-
).map((
|
29
|
-
const p =
|
29
|
+
).map((m) => ({ ...m, added: !0 })) : e.primaryChaptersList = [];
|
30
|
+
const p = _(
|
30
31
|
t.recommended_chapters
|
31
32
|
);
|
32
33
|
return e.primaryChaptersList = [
|
33
34
|
...e.primaryChaptersList ?? [],
|
34
35
|
...p
|
35
|
-
], {
|
36
|
+
], e.metaRecommendedChaptersQuery = t.recommended_chapter_filters, {
|
36
37
|
...e
|
37
38
|
};
|
38
39
|
};
|
39
40
|
export {
|
40
|
-
|
41
|
+
u as transformData
|
41
42
|
};
|
42
43
|
//# sourceMappingURL=milestone-edit-helpers.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"milestone-edit-helpers.js","sources":["../../../../src/features/milestone/edit/milestone-edit-helpers.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { IChapter } from '../create/comps/chapter-item/chapter-item-types';\nimport type {
|
1
|
+
{"version":3,"file":"milestone-edit-helpers.js","sources":["../../../../src/features/milestone/edit/milestone-edit-helpers.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { IChapter } from '../create/comps/chapter-item/chapter-item-types';\nimport type {\n IMilestoneConfig,\n IMilestoneFormData,\n TMilesonteFormStateField,\n} from '../create/milestone-create-types';\n\nimport { format } from 'date-fns';\n\nimport { getFormChapters } from '../create/utils';\nimport { transformRecommendedChaptersFromMilestonePlan } from '../drafts/edit/draft-edit-helpers';\n\ninterface IUserChapter extends IChapter {\n chapter_id: string;\n}\n//TODO: fix all anys here\nconst commitAndAdd = (formData: any, field: any, value: any) => {\n formData.committed[field] = true;\n\n formData[field] = value;\n};\n\nconst transformData = (\n currentMilestoneData: any,\n configData: IMilestoneConfig,\n): IMilestoneFormData => {\n const transformedData: IMilestoneFormData = {\n committed: {\n testType: true,\n grade: true,\n schoolInfo: true,\n schoolGooglePlaceData: true,\n board: true,\n major: false,\n milestoneEndDate: true,\n milestoneEndDateIsTentative: true,\n region: true,\n },\n reviewed: {},\n };\n\n const { academic_event_id: academicEventId, milestone_name: milestoneName } =\n currentMilestoneData || {};\n const { academic_events: academicEvents = [] } = configData || {};\n const academicEvent = academicEvents.find(({ id }: { id: string }) => id === academicEventId);\n const { event_name: testName, event_type: eventType } = academicEvent || {};\n\n if (academicEventId) {\n transformedData.committed.academicEventId = true;\n\n transformedData.academicEventId = academicEventId;\n }\n\n if (testName) {\n transformedData.committed.testName = true;\n\n transformedData.testName = testName;\n } else {\n transformedData.committed.testName = true;\n\n transformedData.testName = milestoneName;\n }\n\n if (eventType) {\n if (eventType === 'SCHOOL_TEST') {\n commitAndAdd(transformedData, 'testType', 'non-standardized');\n } else if (eventType === 'STANDARDISED_TEST') {\n commitAndAdd(transformedData, 'testType', 'standardized');\n commitAndAdd(transformedData, 'standardizedTestType', 'unknown');\n commitAndAdd(transformedData, 'standardizedTestPreparationMethod', 'cuemath-curricullum');\n commitAndAdd(transformedData, 'region', 'DUMMY');\n commitAndAdd(transformedData, 'board', 'DUMMY');\n } else if (eventType === 'COURSE_COMPLETION') {\n commitAndAdd(transformedData, 'testType', 'no-test');\n } else {\n commitAndAdd(transformedData, 'testType', undefined);\n }\n }\n\n transformedData.grade = currentMilestoneData.grade;\n transformedData.board = currentMilestoneData.board;\n transformedData.milestoneEndDate = format(\n new Date(currentMilestoneData.milestone_date_ts * 1000),\n 'yyyy-MM-dd',\n );\n transformedData.schoolInfo = currentMilestoneData.schoolInfo ?? {};\n transformedData.schoolGooglePlaceData = currentMilestoneData.schoolGooglePlaceData || {};\n commitAndAdd(transformedData, 'region', 'DUMMY');\n transformedData.major = currentMilestoneData.major ?? 'DUMMY_MAJOR';\n\n if (currentMilestoneData.user_milestone_plan) {\n transformedData.primaryChaptersList = getFormChapters(\n currentMilestoneData.user_milestone_plan.user_chapters.map((chapter: IUserChapter) => ({\n ...chapter,\n id: chapter.chapter_id,\n })),\n ).map(chapter => ({ ...chapter, added: true }));\n } else {\n transformedData.primaryChaptersList = [];\n }\n\n const recommendedChapters = transformRecommendedChaptersFromMilestonePlan(\n currentMilestoneData.recommended_chapters,\n );\n\n transformedData.primaryChaptersList = [\n ...(transformedData.primaryChaptersList ?? []),\n ...recommendedChapters,\n ];\n\n transformedData.metaRecommendedChaptersQuery = currentMilestoneData.recommended_chapter_filters;\n\n return {\n ...transformedData,\n };\n};\n\ninterface ICheckIfCommittedFieldIsUpdated {\n (params: {\n field: TMilesonteFormStateField;\n isFieldCommited: boolean;\n prevFormData: IMilestoneFormData;\n newValueOfField: any;\n formDataStateRef: IMilestoneFormData;\n }): boolean;\n}\n\n/**\n * This method accepts commited changes in the form tree and checks if the committed fields are actually updated from the original value.\n *\n * @param field - The field to be checked for updates.\n * @param isFieldCommited - Is field committed\n * @param prevFormData - The previous form data.\n * @param newValueOfField - The value of the field in updated form data.\n * @param formDataStateRef - The reference to the current form data state.\n *\n * @returns The updated field if any, or null if no updates were made.\n */\n\nconst checkIfCommittedFieldIsUpdated: ICheckIfCommittedFieldIsUpdated = ({\n field,\n isFieldCommited,\n prevFormData,\n newValueOfField,\n formDataStateRef,\n}) => {\n if (isFieldCommited && prevFormData.committed?.[field] !== isFieldCommited) {\n if (field === 'schoolInfo') {\n if (formDataStateRef.schoolInfo?.countryCode !== prevFormData.schoolInfo?.countryCode)\n return true;\n } else if (formDataStateRef[field] !== newValueOfField) {\n return true;\n }\n }\n\n return false;\n};\n\nexport { checkIfCommittedFieldIsUpdated, transformData };\n"],"names":["commitAndAdd","formData","field","value","transformData","currentMilestoneData","configData","transformedData","academicEventId","milestoneName","academicEvents","academicEvent","id","testName","eventType","format","getFormChapters","chapter","recommendedChapters","transformRecommendedChaptersFromMilestonePlan"],"mappings":";;;AAiBA,MAAMA,IAAe,CAACC,GAAeC,GAAYC,MAAe;AACrD,EAAAF,EAAA,UAAUC,CAAK,IAAI,IAE5BD,EAASC,CAAK,IAAIC;AACpB,GAEMC,IAAgB,CACpBC,GACAC,MACuB;AACvB,QAAMC,IAAsC;AAAA,IAC1C,WAAW;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,uBAAuB;AAAA,MACvB,OAAO;AAAA,MACP,OAAO;AAAA,MACP,kBAAkB;AAAA,MAClB,6BAA6B;AAAA,MAC7B,QAAQ;AAAA,IACV;AAAA,IACA,UAAU,CAAC;AAAA,EAAA,GAGP,EAAE,mBAAmBC,GAAiB,gBAAgBC,EAAc,IACxEJ,KAAwB,IACpB,EAAE,iBAAiBK,IAAiB,CAAG,EAAA,IAAIJ,KAAc,CAAA,GACzDK,IAAgBD,EAAe,KAAK,CAAC,EAAE,IAAAE,QAAyBA,MAAOJ,CAAe,GACtF,EAAE,YAAYK,GAAU,YAAYC,EAAU,IAAIH,KAAiB;AAEzE,EAAIH,MACFD,EAAgB,UAAU,kBAAkB,IAE5CA,EAAgB,kBAAkBC,IAGhCK,KACFN,EAAgB,UAAU,WAAW,IAErCA,EAAgB,WAAWM,MAE3BN,EAAgB,UAAU,WAAW,IAErCA,EAAgB,WAAWE,IAGzBK,MACEA,MAAc,gBACHd,EAAAO,GAAiB,YAAY,kBAAkB,IACnDO,MAAc,uBACVd,EAAAO,GAAiB,YAAY,cAAc,GAC3CP,EAAAO,GAAiB,wBAAwB,SAAS,GAClDP,EAAAO,GAAiB,qCAAqC,qBAAqB,GAC3EP,EAAAO,GAAiB,UAAU,OAAO,GAClCP,EAAAO,GAAiB,SAAS,OAAO,KACrCO,MAAc,sBACVd,EAAAO,GAAiB,YAAY,SAAS,IAEtCP,EAAAO,GAAiB,YAAY,MAAS,IAIvDA,EAAgB,QAAQF,EAAqB,OAC7CE,EAAgB,QAAQF,EAAqB,OAC7CE,EAAgB,mBAAmBQ;AAAA,IACjC,IAAI,KAAKV,EAAqB,oBAAoB,GAAI;AAAA,IACtD;AAAA,EAAA,GAEcE,EAAA,aAAaF,EAAqB,cAAc,CAAA,GAChDE,EAAA,wBAAwBF,EAAqB,yBAAyB,CAAA,GACzEL,EAAAO,GAAiB,UAAU,OAAO,GAC/BA,EAAA,QAAQF,EAAqB,SAAS,eAElDA,EAAqB,sBACvBE,EAAgB,sBAAsBS;AAAA,IACpCX,EAAqB,oBAAoB,cAAc,IAAI,CAACY,OAA2B;AAAA,MACrF,GAAGA;AAAA,MACH,IAAIA,EAAQ;AAAA,IAAA,EACZ;AAAA,EAAA,EACF,IAAI,CAAYA,OAAA,EAAE,GAAGA,GAAS,OAAO,GAAO,EAAA,IAE9CV,EAAgB,sBAAsB;AAGxC,QAAMW,IAAsBC;AAAA,IAC1Bd,EAAqB;AAAA,EAAA;AAGvB,SAAAE,EAAgB,sBAAsB;AAAA,IACpC,GAAIA,EAAgB,uBAAuB,CAAC;AAAA,IAC5C,GAAGW;AAAA,EAAA,GAGLX,EAAgB,+BAA+BF,EAAqB,6BAE7D;AAAA,IACL,GAAGE;AAAA,EAAA;AAEP;"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { jsx as s } from "react/jsx-runtime";
|
2
|
+
import { useMemo as l } from "react";
|
3
|
+
import m from "../../ui/modals/info-modal/index.js";
|
4
|
+
const i = ({ entrySlideNumber: o, onFAQClick: r, analyticsProps: t, slides: e }) => {
|
5
|
+
const a = l(() => ({
|
6
|
+
onClick: r,
|
7
|
+
CTA: "Read all FAQs"
|
8
|
+
}), [r]);
|
9
|
+
return /* @__PURE__ */ s(
|
10
|
+
m,
|
11
|
+
{
|
12
|
+
slides: e,
|
13
|
+
entrySlideNumber: o,
|
14
|
+
tertiaryProps: a,
|
15
|
+
analyticsProps: t
|
16
|
+
}
|
17
|
+
);
|
18
|
+
};
|
19
|
+
export {
|
20
|
+
i as default
|
21
|
+
};
|
22
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/features/milestone/help-modals/index.tsx"],"sourcesContent":["import type { TSlideConfig } from '../../ui/modals/info-modal/types';\n\nimport { useMemo } from 'react';\n\nimport InfoModal from '../../ui/modals/info-modal';\n\nconst HelpModal: React.FC<{\n entrySlideNumber: number;\n onFAQClick: () => void;\n analyticsProps: Record<string, unknown>;\n slides: TSlideConfig[];\n}> = ({ entrySlideNumber, onFAQClick, analyticsProps, slides }) => {\n const tertiaryModalProps = useMemo(() => {\n return {\n onClick: onFAQClick,\n CTA: 'Read all FAQs',\n };\n }, [onFAQClick]);\n\n return (\n <InfoModal\n slides={slides}\n entrySlideNumber={entrySlideNumber}\n tertiaryProps={tertiaryModalProps}\n analyticsProps={analyticsProps}\n />\n );\n};\n\nexport default HelpModal;\n"],"names":["HelpModal","entrySlideNumber","onFAQClick","analyticsProps","slides","tertiaryModalProps","useMemo","jsx","InfoModal"],"mappings":";;;AAMA,MAAMA,IAKD,CAAC,EAAE,kBAAAC,GAAkB,YAAAC,GAAY,gBAAAC,GAAgB,QAAAC,QAAa;AAC3D,QAAAC,IAAqBC,EAAQ,OAC1B;AAAA,IACL,SAASJ;AAAA,IACT,KAAK;AAAA,EAAA,IAEN,CAACA,CAAU,CAAC;AAGb,SAAA,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,QAAAJ;AAAA,MACA,kBAAAH;AAAA,MACA,eAAeI;AAAA,MACf,gBAAAF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
2
|
+
import t from "./index.js";
|
3
|
+
import { LESSON_HELP_CONFIG as l } from "../../sheets/constants/lessons.js";
|
4
|
+
import { transformHelpConfigToSlides as n } from "./utils.js";
|
5
|
+
const i = n(l), m = ({ entrySlideNumber: o, onFAQClick: e, analyticsProps: s }) => /* @__PURE__ */ r(
|
6
|
+
t,
|
7
|
+
{
|
8
|
+
slides: i,
|
9
|
+
onFAQClick: e,
|
10
|
+
entrySlideNumber: o,
|
11
|
+
analyticsProps: s
|
12
|
+
}
|
13
|
+
), a = m;
|
14
|
+
export {
|
15
|
+
a as default
|
16
|
+
};
|
17
|
+
//# sourceMappingURL=milestone-lesson.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"milestone-lesson.js","sources":["../../../../src/features/milestone/help-modals/milestone-lesson.tsx"],"sourcesContent":["import HelpModal from '.';\nimport { LESSON_HELP_CONFIG } from '../../sheets/constants/lessons';\nimport { transformHelpConfigToSlides } from './utils';\n\nconst LESSON_HELP_SLIDES = transformHelpConfigToSlides(LESSON_HELP_CONFIG);\n\nconst MilestoneLessonHelpModal: React.FC<{\n entrySlideNumber: number;\n onFAQClick: () => void;\n analyticsProps: Record<string, unknown>;\n}> = ({ entrySlideNumber, onFAQClick, analyticsProps }) => {\n return (\n <HelpModal\n slides={LESSON_HELP_SLIDES}\n onFAQClick={onFAQClick}\n entrySlideNumber={entrySlideNumber}\n analyticsProps={analyticsProps}\n />\n );\n};\n\nexport default MilestoneLessonHelpModal;\n"],"names":["LESSON_HELP_SLIDES","transformHelpConfigToSlides","LESSON_HELP_CONFIG","MilestoneLessonHelpModal","entrySlideNumber","onFAQClick","analyticsProps","jsx","HelpModal","MilestoneLessonHelpModal$1"],"mappings":";;;;AAIA,MAAMA,IAAqBC,EAA4BC,CAAkB,GAEnEC,IAID,CAAC,EAAE,kBAAAC,GAAkB,YAAAC,GAAY,gBAAAC,QAElC,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,QAAQR;AAAA,IACR,YAAAK;AAAA,IACA,kBAAAD;AAAA,IACA,gBAAAE;AAAA,EAAA;AAAA,GAKNG,IAAeN;"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
2
|
+
import s from "./index.js";
|
3
|
+
import { MILESTONE_LIST_HELP_CONFIG as l } from "../constants.js";
|
4
|
+
import { transformHelpConfigToSlides as i } from "./utils.js";
|
5
|
+
const m = i(l), p = ({ entrySlideNumber: o, onFAQClick: t, analyticsProps: e }) => /* @__PURE__ */ r(
|
6
|
+
s,
|
7
|
+
{
|
8
|
+
slides: m,
|
9
|
+
onFAQClick: t,
|
10
|
+
entrySlideNumber: o,
|
11
|
+
analyticsProps: e
|
12
|
+
}
|
13
|
+
), M = p;
|
14
|
+
export {
|
15
|
+
M as default
|
16
|
+
};
|
17
|
+
//# sourceMappingURL=milestone-list.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"milestone-list.js","sources":["../../../../src/features/milestone/help-modals/milestone-list.tsx"],"sourcesContent":["import HelpModal from '.';\nimport { MILESTONE_LIST_HELP_CONFIG } from '../constants';\nimport { transformHelpConfigToSlides } from './utils';\n\nconst MILESTONE_LIST_HELP_SLIDES = transformHelpConfigToSlides(MILESTONE_LIST_HELP_CONFIG);\n\nconst MilestoneListHelpModal: React.FC<{\n entrySlideNumber: number;\n onFAQClick: () => void;\n analyticsProps: Record<string, unknown>;\n}> = ({ entrySlideNumber, onFAQClick, analyticsProps }) => {\n return (\n <HelpModal\n slides={MILESTONE_LIST_HELP_SLIDES}\n onFAQClick={onFAQClick}\n entrySlideNumber={entrySlideNumber}\n analyticsProps={analyticsProps}\n />\n );\n};\n\nexport default MilestoneListHelpModal;\n"],"names":["MILESTONE_LIST_HELP_SLIDES","transformHelpConfigToSlides","MILESTONE_LIST_HELP_CONFIG","MilestoneListHelpModal","entrySlideNumber","onFAQClick","analyticsProps","jsx","HelpModal","MilestoneListHelpModal$1"],"mappings":";;;;AAIA,MAAMA,IAA6BC,EAA4BC,CAA0B,GAEnFC,IAID,CAAC,EAAE,kBAAAC,GAAkB,YAAAC,GAAY,gBAAAC,QAElC,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,QAAQR;AAAA,IACR,YAAAK;AAAA,IACA,kBAAAD;AAAA,IACA,gBAAAE;AAAA,EAAA;AAAA,GAKNG,IAAeN;"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
const t = (e) => e.map((a) => {
|
2
|
+
const {
|
3
|
+
modalSubHeader: r,
|
4
|
+
imgSrc: l,
|
5
|
+
modalHeader: o,
|
6
|
+
videoSrc: d,
|
7
|
+
modalAnalyticsLabel: n
|
8
|
+
} = a;
|
9
|
+
return {
|
10
|
+
header: o,
|
11
|
+
sub_header: r,
|
12
|
+
thumbnail: l,
|
13
|
+
video: d,
|
14
|
+
analytics_label: n
|
15
|
+
};
|
16
|
+
});
|
17
|
+
export {
|
18
|
+
t as transformHelpConfigToSlides
|
19
|
+
};
|
20
|
+
//# sourceMappingURL=utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/features/milestone/help-modals/utils.ts"],"sourcesContent":["import type { TSlideConfig } from '../../ui/modals/info-modal/types';\nimport type { IMilestoneHelpBannerConfig } from '../types';\n\nconst transformHelpConfigToSlides = (helpConfig: IMilestoneHelpBannerConfig[]): TSlideConfig[] => {\n return helpConfig.map(config => {\n const {\n modalSubHeader,\n imgSrc: thumbnail,\n modalHeader,\n videoSrc,\n modalAnalyticsLabel,\n } = config;\n\n return {\n header: modalHeader,\n sub_header: modalSubHeader,\n thumbnail,\n video: videoSrc,\n analytics_label: modalAnalyticsLabel,\n };\n });\n};\n\nexport { transformHelpConfigToSlides };\n"],"names":["transformHelpConfigToSlides","helpConfig","config","modalSubHeader","thumbnail","modalHeader","videoSrc","modalAnalyticsLabel"],"mappings":"AAGM,MAAAA,IAA8B,CAACC,MAC5BA,EAAW,IAAI,CAAUC,MAAA;AACxB,QAAA;AAAA,IACJ,gBAAAC;AAAA,IACA,QAAQC;AAAA,IACR,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,qBAAAC;AAAA,EACE,IAAAL;AAEG,SAAA;AAAA,IACL,QAAQG;AAAA,IACR,YAAYF;AAAA,IACZ,WAAAC;AAAA,IACA,OAAOE;AAAA,IACP,iBAAiBC;AAAA,EAAA;AACnB,CACD;"}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
2
|
+
import { IMAGES as a } from "../../../assets/images/images.js";
|
3
|
+
import r from "../../ui/modals/info-modal/index.js";
|
4
|
+
import { INTRO_VIDEO_URL as t } from "../constants.js";
|
5
|
+
const n = [
|
6
|
+
{
|
7
|
+
header: "Introducing Goal Creator",
|
8
|
+
sub_header: "Create a truly personalised learning experience",
|
9
|
+
video: t,
|
10
|
+
autoPlay: !0,
|
11
|
+
analytics_label: "goal_intro_video",
|
12
|
+
buttonLabel: "Next"
|
13
|
+
},
|
14
|
+
{
|
15
|
+
header: "Goals are easy to create and manage!",
|
16
|
+
sub_header: "",
|
17
|
+
img: a.GOAL_CREATION_HELPER,
|
18
|
+
buttonLabel: "Create a Goal"
|
19
|
+
}
|
20
|
+
], i = ({ onFinish: e }) => /* @__PURE__ */ o(r, { slides: n, onFinish: e, entrySlideNumber: 0 }), u = i;
|
21
|
+
export {
|
22
|
+
u as default
|
23
|
+
};
|
24
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/features/milestone/intro-modal/index.tsx"],"sourcesContent":["import { IMAGES } from '../../../assets/images/images';\nimport InfoModal from '../../ui/modals/info-modal';\nimport { INTRO_VIDEO_URL } from '../constants';\n\ninterface IIntroModalProps {\n onFinish: () => void;\n}\n\nconst SLIDES_CONFIG = [\n {\n header: 'Introducing Goal Creator',\n sub_header: 'Create a truly personalised learning experience',\n video: INTRO_VIDEO_URL,\n autoPlay: true,\n analytics_label: 'goal_intro_video',\n buttonLabel: 'Next',\n },\n {\n header: 'Goals are easy to create and manage!',\n sub_header: '',\n img: IMAGES.GOAL_CREATION_HELPER,\n buttonLabel: 'Create a Goal',\n },\n];\n\nconst IntroModal: React.FC<IIntroModalProps> = ({ onFinish: handleFinish }) => {\n return <InfoModal slides={SLIDES_CONFIG} onFinish={handleFinish} entrySlideNumber={0} />;\n};\n\nexport default IntroModal;\n"],"names":["SLIDES_CONFIG","INTRO_VIDEO_URL","IMAGES","IntroModal","handleFinish","InfoModal","IntroModal$1"],"mappings":";;;;AAQA,MAAMA,IAAgB;AAAA,EACpB;AAAA,IACE,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAOC;AAAA,IACP,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,KAAKC,EAAO;AAAA,IACZ,aAAa;AAAA,EACf;AACF,GAEMC,IAAyC,CAAC,EAAE,UAAUC,0BAClDC,GAAU,EAAA,QAAQL,GAAe,UAAUI,GAAc,kBAAkB,EAAG,CAAA,GAGxFE,IAAeH;"}
|