@cuemath/leap 4.0.4-beta.0 → 4.0.4
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/math-fit/math-fit-report/comps/score-section/score-section.js +43 -42
- package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js.map +1 -1
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/tags-render.js +5 -5
- package/dist/features/milestone/create/comps/add-custom-chapter/selected-chapters/tags-render.js.map +1 -1
- package/dist/features/timeline/daily-timeline/comps/daily-timeline-items/daily-timeline-items.js +38 -37
- package/dist/features/timeline/daily-timeline/comps/daily-timeline-items/daily-timeline-items.js.map +1 -1
- package/dist/features/timeline/monthly-timeline/ptm-report/ptm-report-types.js.map +1 -1
- package/dist/features/timeline/monthly-timeline/ptm-report/ptm-report.js +99 -119
- package/dist/features/timeline/monthly-timeline/ptm-report/ptm-report.js.map +1 -1
- package/dist/features/ui/tag/tag-styled.js +17 -15
- package/dist/features/ui/tag/tag-styled.js.map +1 -1
- package/dist/features/ui/tag/tag.js +7 -5
- package/dist/features/ui/tag/tag.js.map +1 -1
- package/dist/features/ui/theme/get-theme.js +14 -12
- package/dist/features/ui/theme/get-theme.js.map +1 -1
- package/dist/features/ui/theme/tag.js +36 -0
- package/dist/features/ui/theme/tag.js.map +1 -0
- package/dist/features/ui/theme/text.js +0 -15
- package/dist/features/ui/theme/text.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.js +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar-styled.js +1 -0
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.js +1 -1
- package/dist/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.js.map +1 -1
- package/dist/index.d.ts +27 -5
- package/package.json +1 -1
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback-styled.js +0 -17
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback-styled.js.map +0 -1
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback.js +0 -62
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback.js.map +0 -1
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer-styled.js +0 -23
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer-styled.js.map +0 -1
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer.js +0 -33
- package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller-lesson-v3_1.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.tsx"],"sourcesContent":["import { deepEqual } from 'fast-equals';\nimport { memo, useCallback, useEffect, useMemo, useState, type FC } from 'react';\n\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../../ui/buttons/button/button';\nimport { useWorksheetStore } from '../../hooks/use-worksheet-store';\nimport { isTeacherInterventionNeeded } from '../../worksheet-helpers';\nimport useHandleCheckButtonClick from '../hooks/use-handle-check-button-click';\nimport useHandleNextButtonClick from '../hooks/use-handle-next-button-click';\nimport useHandleResponseChange from '../hooks/use-handle-response-change';\nimport useHandleRetryButtonClick from '../hooks/use-handle-retry-button-click';\nimport usePlayValidationAudio from '../hooks/use-play-validation-audio';\nimport type {\n IButtonTypes,\n IWorksheetQuestionsControllerProps,\n} from '../worksheet-questions-controller-types';\nimport useHandleStartButtonClick from '../hooks/use-handle-start-button-click';\nimport useHandleSkipButtonClick from '../hooks/use-handle-skip-button-click';\nimport useHandleSubmitQuiz from '../hooks/use-handle-submit-quiz';\nimport { type IWorksheetQuestion, type IWorksheetResponse } from '../../worksheet-types';\n\ninterface IAreAllExitTicketQuestionsValidated {\n (responses: Record<string, IWorksheetResponse>, questions: IWorksheetQuestion[]): boolean;\n}\n\nconst areAllExitTicketQuestionsValidated: IAreAllExitTicketQuestionsValidated = (\n responses,\n questions,\n) => {\n const exitTicketQuestions = questions.filter(\n q => q.item_type === 'exit-ticket' && !q.is_non_question,\n );\n\n return exitTicketQuestions.every(q => responses[q.response_id]?.validatedByTeacher === true);\n};\n\nconst StudentControllerLessonV3_1: FC<IWorksheetQuestionsControllerProps> = memo(\n function StudentControllerLessonV3_1(props) {\n const {\n behavior,\n question,\n questions,\n response,\n responses,\n learnosity,\n isQuestionAppended,\n inClass,\n isLastQuestion,\n onSubmit,\n worksheetCompleted,\n } = useWorksheetStore(store => {\n const activeQuestion = store.questions[store.activeQuestionIndex]!;\n\n return {\n behavior: store.behavior,\n question: activeQuestion,\n questions: store.questions,\n response: store.responses[activeQuestion.response_id],\n responses: store.responses,\n learnosity: store.learnosity,\n isQuestionAppended: store.appendedQuestionIds.includes(activeQuestion.response_id),\n inClass: store.inClass,\n isLastQuestion: store.activeQuestionIndex === store.questions.length - 1,\n onSubmit: store.onSubmit,\n worksheetCompleted: store.worksheetCompleted,\n };\n });\n const { getTimeSpentOnQuestion } = props;\n const {\n canAttempt,\n checkButtonLabel,\n retryButtonLabel,\n teacherDiscussionEnabled,\n attemptsAfterTeacherInterventionNeeded,\n } = behavior;\n const { response_id, metadata, is_non_question: isNonQuestion, item_type } = question;\n const isExitTicket = item_type === 'exit-ticket';\n const {\n startButton,\n checkButton,\n checkButtonDisabled,\n retryButton,\n retryButtonDisabled,\n nextButton,\n nextButtonDisabled,\n nextButtonTooltip,\n moveButton,\n skipButton,\n skipButtonLabel,\n submitQuizButton,\n submitAttemptButton,\n } = useMemo<IButtonTypes>(() => {\n if (isNonQuestion)\n return {\n startButton: canAttempt && !response?.responseGiven,\n };\n\n if (isExitTicket) {\n const { submittedByStudent } = response || {};\n\n if (!submittedByStudent) {\n if (isLastQuestion)\n return {\n submitQuizButton: true,\n };\n\n if (response?.skipped || response?.response)\n return {\n nextButton: true,\n };\n\n return {\n skipButton: true,\n skipButtonLabel: 'Next',\n };\n }\n\n if (isLastQuestion && areAllExitTicketQuestionsValidated(responses, questions)) {\n return {\n submitAttemptButton: !worksheetCompleted,\n };\n }\n }\n\n if (!response || !response.response || !response.score)\n return {\n checkButton: canAttempt,\n checkButtonDisabled: canAttempt,\n };\n\n const { responseEdited, score, attemptsHistory, retryEnabled } = response;\n\n if (responseEdited) {\n const lastAttemptResponse = attemptsHistory?.slice(-1)[0]?.response;\n\n return {\n checkButton: canAttempt || response.retryEnabled,\n checkButtonDisabled: deepEqual(response.response, lastAttemptResponse),\n };\n }\n\n if ((score.score ?? 0) < score.max_score) {\n const teacherInterventionNeeded = isTeacherInterventionNeeded({\n attemptsAfterTeacherInterventionNeeded:\n item_type === 'exit-ticket' ? 1 : attemptsAfterTeacherInterventionNeeded,\n attemptsHistory,\n });\n\n if (!teacherInterventionNeeded)\n return {\n retryButton: canAttempt,\n };\n\n if (inClass)\n return {\n retryButton: true,\n retryButtonDisabled: retryEnabled !== true,\n };\n\n return {\n moveButton: true,\n };\n }\n\n if ((score.score ?? 0) === score.max_score) {\n if (\n inClass &&\n teacherDiscussionEnabled &&\n metadata.acknowledgements &&\n !response?.validatedByTeacher\n ) {\n return {\n nextButton: true,\n nextButtonDisabled: true,\n nextButtonTooltip: 'Tutor approval is required',\n };\n }\n\n if (!isLastQuestion)\n return {\n nextButton: true,\n };\n }\n\n return {};\n }, [\n isNonQuestion,\n canAttempt,\n response,\n isExitTicket,\n isLastQuestion,\n responses,\n questions,\n worksheetCompleted,\n item_type,\n attemptsAfterTeacherInterventionNeeded,\n inClass,\n teacherDiscussionEnabled,\n metadata.acknowledgements,\n ]);\n\n const playValidationAudio = usePlayValidationAudio();\n const handleResponseChange = useHandleResponseChange({\n getTimeSpentOnQuestion,\n });\n const handleNextButtonClick = useHandleNextButtonClick();\n const [skipped, setSkipped] = useState(false);\n const handleSkipButtonClick = useHandleSkipButtonClick({\n setSkipped,\n });\n const handleValidate = useCallback(() => {\n playValidationAudio();\n handleResponseChange(true);\n }, [handleResponseChange, playValidationAudio]);\n const handleCheckButtonClick = useHandleCheckButtonClick({\n handleValidate,\n });\n const handleRetryButtonClick = useHandleRetryButtonClick({\n handleResponseChange,\n });\n const handleStartButtonClick = useHandleStartButtonClick();\n const handleSubmitQuiz = useHandleSubmitQuiz();\n const handleSheetSubmitButtonClick = useCallback(() => {\n onSubmit?.(responses, questions);\n }, [onSubmit, responses, questions]);\n\n const questionEnabled = checkButton || (isExitTicket && !response?.submittedByStudent);\n\n useEffect(() => {\n if (skipped) {\n setSkipped(false);\n handleNextButtonClick();\n }\n }, [handleNextButtonClick, skipped]);\n\n useEffect(() => {\n const questionInstance = isQuestionAppended ? learnosity.question(response_id) : undefined;\n\n if (questionInstance) {\n if (questionEnabled) {\n questionInstance.on('changed', handleResponseChange);\n questionInstance.enable();\n } else {\n questionInstance.disable();\n }\n }\n\n return () => {\n if (questionInstance && questionEnabled) {\n questionInstance.off('changed', handleResponseChange);\n questionInstance.disable();\n }\n };\n }, [handleResponseChange, isQuestionAppended, learnosity, questionEnabled, response_id]);\n\n return (\n <>\n {nextButton && (\n <ArrowTooltip\n position=\"top\"\n renderAs=\"primary\"\n hidden={!nextButtonTooltip}\n tooltipItem={nextButtonTooltip ?? ''}\n >\n <Button\n widthX={6}\n renderAs=\"primary\"\n label=\"Next\"\n onClick={handleNextButtonClick}\n disabled={nextButtonDisabled === true}\n />\n </ArrowTooltip>\n )}\n {skipButton && (\n <Button\n widthX={6}\n renderAs=\"primary\"\n label={skipButtonLabel ?? 'Skip'}\n onClick={handleSkipButtonClick}\n />\n )}\n {moveButton && (\n <Button\n widthX={8.5}\n renderAs=\"primary\"\n label=\"Move ahead\"\n onClick={handleNextButtonClick}\n />\n )}\n {retryButton && (\n <ArrowTooltip\n position=\"top\"\n renderAs=\"primary\"\n hidden={!retryButtonDisabled}\n tooltipItem=\"Tutor will help, then enable retry\"\n >\n <Button\n widthX={6}\n renderAs=\"primary\"\n label={retryButtonLabel}\n disabled={!isQuestionAppended || retryButtonDisabled}\n onClick={handleRetryButtonClick}\n />\n </ArrowTooltip>\n )}\n {checkButton && (\n <Button\n renderAs=\"primary\"\n label={checkButtonLabel}\n disabled={checkButtonDisabled === true || !isQuestionAppended}\n onClick={handleCheckButtonClick}\n />\n )}\n {startButton && (\n <Button renderAs=\"primary\" label=\"Start\" onClick={handleStartButtonClick} />\n )}\n {submitQuizButton && (\n <Button\n renderAs=\"primary\"\n label=\"Submit\"\n analyticsLabel=\"Submit Quiz\"\n onClick={handleSubmitQuiz}\n />\n )}\n {submitAttemptButton && (\n <Button renderAs=\"primary\" label=\"Submit\" onClick={handleSheetSubmitButtonClick} />\n )}\n </>\n );\n },\n);\n\nexport default StudentControllerLessonV3_1;\n"],"names":["areAllExitTicketQuestionsValidated","responses","questions","q","_a","StudentControllerLessonV3_1","memo","props","behavior","question","response","learnosity","isQuestionAppended","inClass","isLastQuestion","onSubmit","worksheetCompleted","useWorksheetStore","store","activeQuestion","getTimeSpentOnQuestion","canAttempt","checkButtonLabel","retryButtonLabel","teacherDiscussionEnabled","attemptsAfterTeacherInterventionNeeded","response_id","metadata","isNonQuestion","item_type","isExitTicket","startButton","checkButton","checkButtonDisabled","retryButton","retryButtonDisabled","nextButton","nextButtonDisabled","nextButtonTooltip","moveButton","skipButton","skipButtonLabel","submitQuizButton","submitAttemptButton","useMemo","submittedByStudent","responseEdited","score","attemptsHistory","retryEnabled","lastAttemptResponse","deepEqual","isTeacherInterventionNeeded","playValidationAudio","usePlayValidationAudio","handleResponseChange","useHandleResponseChange","handleNextButtonClick","useHandleNextButtonClick","skipped","setSkipped","useState","handleSkipButtonClick","useHandleSkipButtonClick","handleValidate","useCallback","handleCheckButtonClick","useHandleCheckButtonClick","handleRetryButtonClick","useHandleRetryButtonClick","handleStartButtonClick","useHandleStartButtonClick","handleSubmitQuiz","useHandleSubmitQuiz","handleSheetSubmitButtonClick","questionEnabled","useEffect","questionInstance","jsxs","Fragment","jsx","ArrowTooltip","Button"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"controller-lesson-v3_1.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-questions-controller/student/controller-lesson-v3_1.tsx"],"sourcesContent":["import { deepEqual } from 'fast-equals';\nimport { memo, useCallback, useEffect, useMemo, useState, type FC } from 'react';\n\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../../ui/buttons/button/button';\nimport { useWorksheetStore } from '../../hooks/use-worksheet-store';\nimport { isTeacherInterventionNeeded } from '../../worksheet-helpers';\nimport useHandleCheckButtonClick from '../hooks/use-handle-check-button-click';\nimport useHandleNextButtonClick from '../hooks/use-handle-next-button-click';\nimport useHandleResponseChange from '../hooks/use-handle-response-change';\nimport useHandleRetryButtonClick from '../hooks/use-handle-retry-button-click';\nimport usePlayValidationAudio from '../hooks/use-play-validation-audio';\nimport type {\n IButtonTypes,\n IWorksheetQuestionsControllerProps,\n} from '../worksheet-questions-controller-types';\nimport useHandleStartButtonClick from '../hooks/use-handle-start-button-click';\nimport useHandleSkipButtonClick from '../hooks/use-handle-skip-button-click';\nimport useHandleSubmitQuiz from '../hooks/use-handle-submit-quiz';\nimport { type IWorksheetQuestion, type IWorksheetResponse } from '../../worksheet-types';\n\ninterface IAreAllExitTicketQuestionsValidated {\n (responses: Record<string, IWorksheetResponse>, questions: IWorksheetQuestion[]): boolean;\n}\n\nconst areAllExitTicketQuestionsValidated: IAreAllExitTicketQuestionsValidated = (\n responses,\n questions,\n) => {\n const exitTicketQuestions = questions.filter(\n q => q.item_type === 'exit-ticket' && !q.is_non_question,\n );\n\n return exitTicketQuestions.every(q => responses[q.response_id]?.validatedByTeacher === true);\n};\n\nconst StudentControllerLessonV3_1: FC<IWorksheetQuestionsControllerProps> = memo(\n function StudentControllerLessonV3_1(props) {\n const {\n behavior,\n question,\n questions,\n response,\n responses,\n learnosity,\n isQuestionAppended,\n inClass,\n isLastQuestion,\n onSubmit,\n worksheetCompleted,\n } = useWorksheetStore(store => {\n const activeQuestion = store.questions[store.activeQuestionIndex]!;\n\n return {\n behavior: store.behavior,\n question: activeQuestion,\n questions: store.questions,\n response: store.responses[activeQuestion.response_id],\n responses: store.responses,\n learnosity: store.learnosity,\n isQuestionAppended: store.appendedQuestionIds.includes(activeQuestion.response_id),\n inClass: store.inClass,\n isLastQuestion: store.activeQuestionIndex === store.questions.length - 1,\n onSubmit: store.onSubmit,\n worksheetCompleted: store.worksheetCompleted,\n };\n });\n const { getTimeSpentOnQuestion } = props;\n const {\n canAttempt,\n checkButtonLabel,\n retryButtonLabel,\n teacherDiscussionEnabled,\n attemptsAfterTeacherInterventionNeeded,\n } = behavior;\n const { response_id, metadata, is_non_question: isNonQuestion, item_type } = question;\n const isExitTicket = item_type === 'exit-ticket';\n const {\n startButton,\n checkButton,\n checkButtonDisabled,\n retryButton,\n retryButtonDisabled,\n nextButton,\n nextButtonDisabled,\n nextButtonTooltip,\n moveButton,\n skipButton,\n skipButtonLabel,\n submitQuizButton,\n submitAttemptButton,\n } = useMemo<IButtonTypes>(() => {\n if (isNonQuestion)\n return {\n startButton: canAttempt && !response?.responseGiven,\n };\n\n if (isExitTicket) {\n const { submittedByStudent } = response || {};\n\n if (!submittedByStudent) {\n if (isLastQuestion)\n return {\n submitQuizButton: true,\n };\n\n if (response?.skipped || response?.response)\n return {\n nextButton: true,\n };\n\n return {\n skipButton: true,\n skipButtonLabel: 'Next',\n };\n }\n\n if (isLastQuestion && areAllExitTicketQuestionsValidated(responses, questions)) {\n return {\n submitAttemptButton: !worksheetCompleted,\n };\n }\n }\n\n if (!response || !response.response || !response.score)\n return {\n checkButton: canAttempt,\n checkButtonDisabled: canAttempt,\n };\n\n const { responseEdited, score, attemptsHistory, retryEnabled } = response;\n\n if (responseEdited) {\n const lastAttemptResponse = attemptsHistory?.slice(-1)[0]?.response;\n\n return {\n checkButton: canAttempt || response.retryEnabled,\n checkButtonDisabled: deepEqual(response.response, lastAttemptResponse),\n };\n }\n\n if ((score.score ?? 0) < score.max_score) {\n const teacherInterventionNeeded = isTeacherInterventionNeeded({\n attemptsAfterTeacherInterventionNeeded:\n item_type === 'exit-ticket' ? 1 : attemptsAfterTeacherInterventionNeeded,\n attemptsHistory,\n });\n\n if (!teacherInterventionNeeded)\n return {\n retryButton: canAttempt,\n };\n\n if (inClass)\n return {\n retryButton: true,\n retryButtonDisabled: retryEnabled !== true,\n };\n\n return {\n moveButton: true,\n };\n }\n\n if ((score.score ?? 0) === score.max_score) {\n if (\n inClass &&\n teacherDiscussionEnabled &&\n metadata.acknowledgements &&\n !response?.validatedByTeacher\n ) {\n return {\n nextButton: true,\n nextButtonDisabled: true,\n nextButtonTooltip: 'Tutor approval is required',\n };\n }\n\n if (!isLastQuestion)\n return {\n nextButton: true,\n };\n }\n\n return {};\n }, [\n isNonQuestion,\n canAttempt,\n response,\n isExitTicket,\n isLastQuestion,\n responses,\n questions,\n worksheetCompleted,\n item_type,\n attemptsAfterTeacherInterventionNeeded,\n inClass,\n teacherDiscussionEnabled,\n metadata.acknowledgements,\n ]);\n\n const playValidationAudio = usePlayValidationAudio();\n const handleResponseChange = useHandleResponseChange({\n getTimeSpentOnQuestion,\n });\n const handleNextButtonClick = useHandleNextButtonClick();\n const [skipped, setSkipped] = useState(false);\n const handleSkipButtonClick = useHandleSkipButtonClick({\n setSkipped,\n });\n const handleValidate = useCallback(() => {\n playValidationAudio();\n handleResponseChange(true);\n }, [handleResponseChange, playValidationAudio]);\n const handleCheckButtonClick = useHandleCheckButtonClick({\n handleValidate,\n });\n const handleRetryButtonClick = useHandleRetryButtonClick({\n handleResponseChange,\n });\n const handleStartButtonClick = useHandleStartButtonClick();\n const handleSubmitQuiz = useHandleSubmitQuiz();\n const handleSheetSubmitButtonClick = useCallback(() => {\n onSubmit?.(responses, questions);\n }, [onSubmit, responses, questions]);\n\n const questionEnabled = checkButton || (isExitTicket && !response?.submittedByStudent);\n\n useEffect(() => {\n if (skipped) {\n setSkipped(false);\n handleNextButtonClick();\n }\n }, [handleNextButtonClick, skipped]);\n\n useEffect(() => {\n const questionInstance = isQuestionAppended ? learnosity.question(response_id) : undefined;\n\n if (questionInstance) {\n if (questionEnabled) {\n questionInstance.on('changed', handleResponseChange);\n questionInstance.enable();\n } else {\n questionInstance.disable();\n }\n }\n\n return () => {\n if (questionInstance && questionEnabled) {\n questionInstance.off('changed', handleResponseChange);\n questionInstance.disable();\n }\n };\n }, [handleResponseChange, isQuestionAppended, learnosity, questionEnabled, response_id]);\n\n return (\n <>\n {nextButton && (\n <ArrowTooltip\n position=\"top\"\n renderAs=\"primary\"\n hidden={!nextButtonTooltip}\n tooltipItem={nextButtonTooltip ?? ''}\n >\n <Button\n widthX={6}\n renderAs=\"primary\"\n label=\"Next\"\n onClick={handleNextButtonClick}\n disabled={nextButtonDisabled === true}\n />\n </ArrowTooltip>\n )}\n {skipButton && (\n <Button\n widthX={6}\n renderAs=\"primary\"\n label={skipButtonLabel ?? 'Skip'}\n onClick={handleSkipButtonClick}\n />\n )}\n {moveButton && (\n <Button\n widthX={9.75}\n renderAs=\"primary\"\n label=\"Move ahead\"\n onClick={handleNextButtonClick}\n />\n )}\n {retryButton && (\n <ArrowTooltip\n position=\"top\"\n renderAs=\"primary\"\n hidden={!retryButtonDisabled}\n tooltipItem=\"Tutor will help, then enable retry\"\n >\n <Button\n widthX={6}\n renderAs=\"primary\"\n label={retryButtonLabel}\n disabled={!isQuestionAppended || retryButtonDisabled}\n onClick={handleRetryButtonClick}\n />\n </ArrowTooltip>\n )}\n {checkButton && (\n <Button\n renderAs=\"primary\"\n label={checkButtonLabel}\n disabled={checkButtonDisabled === true || !isQuestionAppended}\n onClick={handleCheckButtonClick}\n />\n )}\n {startButton && (\n <Button renderAs=\"primary\" label=\"Start\" onClick={handleStartButtonClick} />\n )}\n {submitQuizButton && (\n <Button\n renderAs=\"primary\"\n label=\"Submit\"\n analyticsLabel=\"Submit Quiz\"\n onClick={handleSubmitQuiz}\n />\n )}\n {submitAttemptButton && (\n <Button renderAs=\"primary\" label=\"Submit\" onClick={handleSheetSubmitButtonClick} />\n )}\n </>\n );\n },\n);\n\nexport default StudentControllerLessonV3_1;\n"],"names":["areAllExitTicketQuestionsValidated","responses","questions","q","_a","StudentControllerLessonV3_1","memo","props","behavior","question","response","learnosity","isQuestionAppended","inClass","isLastQuestion","onSubmit","worksheetCompleted","useWorksheetStore","store","activeQuestion","getTimeSpentOnQuestion","canAttempt","checkButtonLabel","retryButtonLabel","teacherDiscussionEnabled","attemptsAfterTeacherInterventionNeeded","response_id","metadata","isNonQuestion","item_type","isExitTicket","startButton","checkButton","checkButtonDisabled","retryButton","retryButtonDisabled","nextButton","nextButtonDisabled","nextButtonTooltip","moveButton","skipButton","skipButtonLabel","submitQuizButton","submitAttemptButton","useMemo","submittedByStudent","responseEdited","score","attemptsHistory","retryEnabled","lastAttemptResponse","deepEqual","isTeacherInterventionNeeded","playValidationAudio","usePlayValidationAudio","handleResponseChange","useHandleResponseChange","handleNextButtonClick","useHandleNextButtonClick","skipped","setSkipped","useState","handleSkipButtonClick","useHandleSkipButtonClick","handleValidate","useCallback","handleCheckButtonClick","useHandleCheckButtonClick","handleRetryButtonClick","useHandleRetryButtonClick","handleStartButtonClick","useHandleStartButtonClick","handleSubmitQuiz","useHandleSubmitQuiz","handleSheetSubmitButtonClick","questionEnabled","useEffect","questionInstance","jsxs","Fragment","jsx","ArrowTooltip","Button"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"questions-toolbar-styled.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { TOOL_ICON_SIZE } from '../../constants';\n\ninterface IWorksheetQuestionsToolbarContainerProps {\n $showBorder: boolean;\n}\nconst WorksheetQuestionsToolbarContainer = styled(\n FlexView,\n)<IWorksheetQuestionsToolbarContainerProps>(\n ({ theme, $showBorder }) => `\n ${$showBorder ? `margin-left: 12px; border-left: 1px solid ${theme.colors.WHITE_5};` : ''}\n align-self: stretch;\n padding-left: 4px;\n`,\n);\n\ninterface IIconContainerProps {\n $disabled?: boolean;\n}\nconst IconContainer = styled(FlexView)<IIconContainerProps>(\n ({ theme, $disabled = false }) => `\n height: 40px;\n width: 40px;\n border-radius: 50%;\n align-items: center;\n justify-content: center;\n\n ${\n !$disabled\n ? `&:hover {\n cursor: pointer;\n background-color: ${theme.colors.WHITE_4};\n }`\n : 'opacity: 0.38;'\n }\n`,\n);\n\nconst HintsIconContainer = styled.div`\n position: relative;\n width: ${TOOL_ICON_SIZE}px;\n height: ${TOOL_ICON_SIZE}px;\n`;\n\nconst HintsNumberContainer = styled.div(\n ({ theme }) => `\n position: absolute;\n top: 2px;\n right: 2px;\n width: 12px;\n height: 12px;\n background-color: ${theme.colors.YELLOW_4};\n border: 1px solid ${theme.colors.WHITE};\n border-radius: 50%;\n`,\n);\n\nconst TickMark = styled.img`\n position: absolute;\n top: 2px;\n right: 2px;\n width: 12px;\n height: 12px;\n`;\n\nconst HintsNumber = styled(Text)`\n line-height: 11px;\n text-align: center;\n`;\n\nexport {\n HintsIconContainer,\n HintsNumber,\n HintsNumberContainer,\n IconContainer,\n TickMark,\n WorksheetQuestionsToolbarContainer,\n};\n"],"names":["WorksheetQuestionsToolbarContainer","styled","FlexView","theme","$showBorder","IconContainer","$disabled","HintsIconContainer","TOOL_ICON_SIZE","HintsNumberContainer","TickMark","HintsNumber","Text"],"mappings":";;;;AASA,MAAMA,IAAqCC;AAAA,EACzCC;AACF;AAAA,EACE,CAAC,EAAE,OAAAC,GAAO,aAAAC,EAAA,MAAkB;AAAA,IAC1BA,IAAc,6CAA6CD,EAAM,OAAO,OAAO,MAAM,EAAE;AAAA;AAAA;AAAA;AAI3F,GAKME,IAAgBJ,EAAOC,CAAQ;AAAA,EACnC,CAAC,EAAE,OAAAC,GAAO,WAAAG,IAAY,GAAY,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQ/BA,IAKG,mBAJA;AAAA;AAAA,8BAEsBH,EAAM,OAAO,OAAO;AAAA,YAGhD;AAAA;AAEF,GAEMI,IAAqBN,EAAO;AAAA;AAAA,WAEvBO,CAAc;AAAA,YACbA,CAAc;AAAA,GAGpBC,IAAuBR,EAAO;AAAA,EAClC,CAAC,EAAE,OAAAE,EAAA,MAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMKA,EAAM,OAAO,QAAQ;AAAA,sBACrBA,EAAM,OAAO,KAAK;AAAA;AAAA;AAGxC,GAEMO,IAAWT,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQlBU,IAAcV,EAAOW,CAAI;AAAA;AAAA;AAAA;"}
|
|
1
|
+
{"version":3,"file":"questions-toolbar-styled.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { TOOL_ICON_SIZE } from '../../constants';\n\ninterface IWorksheetQuestionsToolbarContainerProps {\n $showBorder: boolean;\n}\nconst WorksheetQuestionsToolbarContainer = styled(\n FlexView,\n)<IWorksheetQuestionsToolbarContainerProps>(\n ({ theme, $showBorder }) => `\n ${$showBorder ? `margin-left: 12px; border-left: 1px solid ${theme.colors.WHITE_5};` : ''}\n align-self: stretch;\n padding-left: 4px;\n`,\n);\n\ninterface IIconContainerProps {\n $disabled?: boolean;\n}\nconst IconContainer = styled(FlexView)<IIconContainerProps>(\n ({ theme, $disabled = false }) => `\n height: 40px;\n width: 40px;\n border-radius: 50%;\n align-items: center;\n justify-content: center;\n\n ${\n !$disabled\n ? `&:hover {\n cursor: pointer;\n background-color: ${theme.colors.WHITE_4};\n }`\n : 'opacity: 0.38;'\n }\n`,\n);\n\nconst HintsIconContainer = styled.div`\n position: relative;\n width: ${TOOL_ICON_SIZE}px;\n height: ${TOOL_ICON_SIZE}px;\n`;\n\nconst HintsNumberContainer = styled.div(\n ({ theme }) => `\n position: absolute;\n top: 2px;\n right: 2px;\n width: 12px;\n height: 12px;\n background-color: ${theme.colors.YELLOW_4};\n border: 1px solid ${theme.colors.WHITE};\n border-radius: 50%;\n`,\n);\n\nconst TickMark = styled.img`\n position: absolute;\n top: 2px;\n right: 2px;\n width: 12px;\n height: 12px;\n`;\n\nconst HintsNumber = styled(Text)`\n font-size: 7.5px;\n line-height: 11px;\n text-align: center;\n`;\n\nexport {\n HintsIconContainer,\n HintsNumber,\n HintsNumberContainer,\n IconContainer,\n TickMark,\n WorksheetQuestionsToolbarContainer,\n};\n"],"names":["WorksheetQuestionsToolbarContainer","styled","FlexView","theme","$showBorder","IconContainer","$disabled","HintsIconContainer","TOOL_ICON_SIZE","HintsNumberContainer","TickMark","HintsNumber","Text"],"mappings":";;;;AASA,MAAMA,IAAqCC;AAAA,EACzCC;AACF;AAAA,EACE,CAAC,EAAE,OAAAC,GAAO,aAAAC,EAAA,MAAkB;AAAA,IAC1BA,IAAc,6CAA6CD,EAAM,OAAO,OAAO,MAAM,EAAE;AAAA;AAAA;AAAA;AAI3F,GAKME,IAAgBJ,EAAOC,CAAQ;AAAA,EACnC,CAAC,EAAE,OAAAC,GAAO,WAAAG,IAAY,GAAY,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQ/BA,IAKG,mBAJA;AAAA;AAAA,8BAEsBH,EAAM,OAAO,OAAO;AAAA,YAGhD;AAAA;AAEF,GAEMI,IAAqBN,EAAO;AAAA;AAAA,WAEvBO,CAAc;AAAA,YACbA,CAAc;AAAA,GAGpBC,IAAuBR,EAAO;AAAA,EAClC,CAAC,EAAE,OAAAE,EAAA,MAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMKA,EAAM,OAAO,QAAQ;AAAA,sBACrBA,EAAM,OAAO,KAAK;AAAA;AAAA;AAGxC,GAEMO,IAAWT,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQlBU,IAAcV,EAAOW,CAAI;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -92,7 +92,7 @@ const ke = F(function({
|
|
|
92
92
|
children: [
|
|
93
93
|
r.visible && /* @__PURE__ */ e(c, { label: "Hint", disabled: r.disabled, onClick: U, children: /* @__PURE__ */ e(d, { position: "top", renderAs: "primary", tooltipItem: "Hint", children: /* @__PURE__ */ e(a, { $disabled: r.disabled, children: /* @__PURE__ */ A(P, { children: [
|
|
94
94
|
/* @__PURE__ */ e(V, { width: o, height: o }),
|
|
95
|
-
!r.allHintsUtilized && r.nextHintnumber > 1 && /* @__PURE__ */ e(X, { children: /* @__PURE__ */ e(Y, { $renderAs: "
|
|
95
|
+
!r.allHintsUtilized && r.nextHintnumber > 1 && /* @__PURE__ */ e(X, { children: /* @__PURE__ */ e(Y, { $renderAs: "ab3-bold", $color: "BLACK", children: r.nextHintnumber }) }),
|
|
96
96
|
r.allHintsUtilized && /* @__PURE__ */ e(ee, { src: x.TICK_GREEN })
|
|
97
97
|
] }) }) }) }),
|
|
98
98
|
C.visible && /* @__PURE__ */ e(c, { label: "Solution", disabled: C.disabled, onClick: q, children: /* @__PURE__ */ e(d, { position: "top", renderAs: "primary", tooltipItem: "Solution", children: /* @__PURE__ */ e(a, { $disabled: C.disabled, children: n === l.SOLUTION ? /* @__PURE__ */ e(k, { width: o, height: o }) : /* @__PURE__ */ e(G, { width: o, height: o }) }) }) }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"questions-toolbar.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.tsx"],"sourcesContent":["import { type FC, memo, useCallback } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport CalculatorIcon from '../../../../../assets/line-icons/icons/calculator';\nimport CloseIcon from '../../../../../assets/line-icons/icons/close';\nimport HandIcon from '../../../../../assets/line-icons/icons/hand';\nimport HintsIcon from '../../../../../assets/line-icons/icons/hints';\nimport QuestionFeedbackIcon from '../../../../../assets/line-icons/icons/question-feedback';\nimport SolutionIcon from '../../../../../assets/line-icons/icons/solution';\nimport TeachingToolsIcon from '../../../../../assets/line-icons/icons/teaching-tools';\nimport TValQuestionIcon from '../../../../../assets/line-icons/icons/tval-question';\nimport Clickable from '../../../../ui/buttons/clickable/clickable';\nimport EVENTS from '../../../constants/events';\nimport { useWorksheetStore } from '../../hooks/use-worksheet-store';\nimport { getQuestionMetadata } from '../../worksheet-helpers';\nimport { EActiveQuestionTool } from '../../worksheet-types';\nimport { type IQuestionToolbarOptions } from './questions-toolbar-helpers';\nimport * as Styled from './questions-toolbar-styled';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport { TOOL_ICON_SIZE } from '../../constants';\n\ninterface IQuestionsToolbarProps {\n toolbarOptions: IQuestionToolbarOptions;\n showBorder: boolean;\n}\n\nconst QuestionsToolbar: FC<IQuestionsToolbarProps> = memo(function QuestionsToolbar({\n showBorder,\n toolbarOptions,\n}) {\n const { hints, solution, askTeacher, questionFeedback, teachingTools, discussion } =\n toolbarOptions;\n const {\n question,\n behavior,\n loggerRef,\n setResponses,\n onResponseChange,\n onHelp,\n openQuestionFeedbackModal,\n activeQuestionTool,\n setActiveQuestionTool,\n unsetActiveQuestionTool,\n toggleCalculator,\n } = useWorksheetStore(store => {\n const activeQuestion = store.questions[store.activeQuestionIndex]!;\n\n return {\n behavior: store.behavior,\n question: activeQuestion,\n loggerRef: store.loggerRef,\n setResponses: store.setResponses,\n onResponseChange: store.onResponseChange,\n onHelp: store.onHelp,\n openQuestionFeedbackModal: store.openQuestionFeedbackModal,\n activeQuestionTool: store.activeQuestionTool,\n setActiveQuestionTool: store.setActiveQuestionTool,\n unsetActiveQuestionTool: store.unsetActiveQuestionTool,\n toggleCalculator: store.toggleCalculator,\n };\n });\n const { response_id: responseId } = question;\n\n const handleHintButtonClick = useCallback(() => {\n loggerRef.current(EVENTS.WORKSHEET_V3_HINT_SEEN);\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(question),\n ...prevResponses[responseId],\n hintsUsed: (prevResponses[responseId]?.hintsUsed ?? 0) + 1,\n };\n\n onResponseChange?.({\n responseId,\n response: newResponse,\n question,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [responseId]: newResponse,\n };\n });\n }, [loggerRef, onResponseChange, question, responseId, setResponses]);\n\n const handleQuestionFeedbackClick = useCallback(() => {\n if (openQuestionFeedbackModal) {\n openQuestionFeedbackModal(question.item_reference);\n }\n }, [openQuestionFeedbackModal, question]);\n\n const handleTeachingToolsClick = useCallback(() => {\n if (activeQuestionTool !== EActiveQuestionTool.TEACHING_TOOLS) {\n setActiveQuestionTool(EActiveQuestionTool.TEACHING_TOOLS);\n } else {\n unsetActiveQuestionTool();\n }\n }, [setActiveQuestionTool, unsetActiveQuestionTool, activeQuestionTool]);\n\n const handleDiscussionClick = useCallback(() => {\n if (activeQuestionTool !== EActiveQuestionTool.DISCUSSION) {\n setActiveQuestionTool(EActiveQuestionTool.DISCUSSION);\n } else {\n unsetActiveQuestionTool();\n }\n }, [setActiveQuestionTool, unsetActiveQuestionTool, activeQuestionTool]);\n\n const handleSolutionClick = useCallback(() => {\n if (activeQuestionTool !== EActiveQuestionTool.SOLUTION) {\n setActiveQuestionTool(EActiveQuestionTool.SOLUTION);\n } else {\n unsetActiveQuestionTool();\n }\n }, [setActiveQuestionTool, unsetActiveQuestionTool, activeQuestionTool]);\n\n const handleHelpButtonClick = useCallback(() => {\n if (onHelp && question) {\n const { item_number, question_number, total_questions } = question;\n\n onHelp({\n questionId: responseId,\n questionNumber: `${item_number + 1}${\n total_questions > 1 ? String.fromCharCode('a'.charCodeAt(0) + question_number) : ''\n }`,\n });\n }\n }, [onHelp, question, responseId]);\n\n return (\n <Styled.WorksheetQuestionsToolbarContainer\n $showBorder={showBorder}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n >\n {hints.visible && (\n <Clickable label=\"Hint\" disabled={hints.disabled} onClick={handleHintButtonClick}>\n <ArrowTooltip position=\"top\" renderAs=\"primary\" tooltipItem=\"Hint\">\n <Styled.IconContainer $disabled={hints.disabled}>\n <Styled.HintsIconContainer>\n <HintsIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n {!hints.allHintsUtilized && hints.nextHintnumber > 1 && (\n <Styled.HintsNumberContainer>\n <Styled.HintsNumber $renderAs=\"ab4-black\" $color=\"BLACK\">\n {hints.nextHintnumber}\n </Styled.HintsNumber>\n </Styled.HintsNumberContainer>\n )}\n {hints.allHintsUtilized && <Styled.TickMark src={ILLUSTRATIONS.TICK_GREEN} />}\n </Styled.HintsIconContainer>\n </Styled.IconContainer>\n </ArrowTooltip>\n </Clickable>\n )}\n {solution.visible && (\n <Clickable label=\"Solution\" disabled={solution.disabled} onClick={handleSolutionClick}>\n <ArrowTooltip position=\"top\" renderAs=\"primary\" tooltipItem=\"Solution\">\n <Styled.IconContainer $disabled={solution.disabled}>\n {activeQuestionTool === EActiveQuestionTool.SOLUTION ? (\n <CloseIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n ) : (\n <SolutionIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n )}\n </Styled.IconContainer>\n </ArrowTooltip>\n </Clickable>\n )}\n {askTeacher.visible && (\n <Clickable label=\"Ask for help\" onClick={handleHelpButtonClick}>\n <ArrowTooltip position=\"top\" renderAs=\"primary\" tooltipItem=\"Help\">\n <Styled.IconContainer>\n <HandIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n </Styled.IconContainer>\n </ArrowTooltip>\n </Clickable>\n )}\n {questionFeedback.visible && (\n <Clickable label=\"Question Feedback\" onClick={handleQuestionFeedbackClick}>\n <ArrowTooltip position=\"top\" renderAs=\"primary\" tooltipItem=\"Feedback\">\n <Styled.IconContainer>\n <QuestionFeedbackIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n </Styled.IconContainer>\n </ArrowTooltip>\n </Clickable>\n )}\n {behavior.canShowDesmosCalc && (\n <Clickable label=\"Desmos Calculator\" onClick={toggleCalculator}>\n <ArrowTooltip position=\"top\" renderAs=\"primary\" tooltipItem=\"Calculator\">\n <Styled.IconContainer>\n <CalculatorIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n </Styled.IconContainer>\n </ArrowTooltip>\n </Clickable>\n )}\n {teachingTools.visible && (\n <Clickable\n label=\"Teaching Tools\"\n disabled={teachingTools.disabled}\n onClick={handleTeachingToolsClick}\n >\n <ArrowTooltip\n position=\"top\"\n renderAs=\"primary\"\n tooltipItem=\"Cue Don't Tell, Hint and Solution\"\n >\n <Styled.IconContainer $disabled={teachingTools.disabled}>\n {activeQuestionTool === EActiveQuestionTool.TEACHING_TOOLS ? (\n <CloseIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n ) : (\n <TeachingToolsIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n )}\n </Styled.IconContainer>\n </ArrowTooltip>\n </Clickable>\n )}\n {discussion.visible && (\n <Clickable label=\"Teacher Validated Question\" onClick={handleDiscussionClick}>\n <ArrowTooltip position=\"top\" renderAs=\"primary\" tooltipItem=\"Teacher Validated Question\">\n <Styled.IconContainer>\n {activeQuestionTool === EActiveQuestionTool.DISCUSSION ? (\n <CloseIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n ) : (\n <TValQuestionIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n )}\n </Styled.IconContainer>\n </ArrowTooltip>\n </Clickable>\n )}\n </Styled.WorksheetQuestionsToolbarContainer>\n );\n});\n\nexport default QuestionsToolbar;\n"],"names":["QuestionsToolbar","memo","showBorder","toolbarOptions","hints","solution","askTeacher","questionFeedback","teachingTools","discussion","question","behavior","loggerRef","setResponses","onResponseChange","onHelp","openQuestionFeedbackModal","activeQuestionTool","setActiveQuestionTool","unsetActiveQuestionTool","toggleCalculator","useWorksheetStore","store","activeQuestion","responseId","handleHintButtonClick","useCallback","EVENTS","prevResponses","newResponse","getQuestionMetadata","_a","handleQuestionFeedbackClick","handleTeachingToolsClick","EActiveQuestionTool","handleDiscussionClick","handleSolutionClick","handleHelpButtonClick","item_number","question_number","total_questions","jsxs","Styled.WorksheetQuestionsToolbarContainer","jsx","Clickable","ArrowTooltip","Styled.IconContainer","Styled.HintsIconContainer","HintsIcon","TOOL_ICON_SIZE","Styled.HintsNumberContainer","Styled.HintsNumber","Styled.TickMark","ILLUSTRATIONS","CloseIcon","SolutionIcon","HandIcon","QuestionFeedbackIcon","CalculatorIcon","TeachingToolsIcon","TValQuestionIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"questions-toolbar.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-questions-tools/questions-toolbar/questions-toolbar.tsx"],"sourcesContent":["import { type FC, memo, useCallback } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport CalculatorIcon from '../../../../../assets/line-icons/icons/calculator';\nimport CloseIcon from '../../../../../assets/line-icons/icons/close';\nimport HandIcon from '../../../../../assets/line-icons/icons/hand';\nimport HintsIcon from '../../../../../assets/line-icons/icons/hints';\nimport QuestionFeedbackIcon from '../../../../../assets/line-icons/icons/question-feedback';\nimport SolutionIcon from '../../../../../assets/line-icons/icons/solution';\nimport TeachingToolsIcon from '../../../../../assets/line-icons/icons/teaching-tools';\nimport TValQuestionIcon from '../../../../../assets/line-icons/icons/tval-question';\nimport Clickable from '../../../../ui/buttons/clickable/clickable';\nimport EVENTS from '../../../constants/events';\nimport { useWorksheetStore } from '../../hooks/use-worksheet-store';\nimport { getQuestionMetadata } from '../../worksheet-helpers';\nimport { EActiveQuestionTool } from '../../worksheet-types';\nimport { type IQuestionToolbarOptions } from './questions-toolbar-helpers';\nimport * as Styled from './questions-toolbar-styled';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport { TOOL_ICON_SIZE } from '../../constants';\n\ninterface IQuestionsToolbarProps {\n toolbarOptions: IQuestionToolbarOptions;\n showBorder: boolean;\n}\n\nconst QuestionsToolbar: FC<IQuestionsToolbarProps> = memo(function QuestionsToolbar({\n showBorder,\n toolbarOptions,\n}) {\n const { hints, solution, askTeacher, questionFeedback, teachingTools, discussion } =\n toolbarOptions;\n const {\n question,\n behavior,\n loggerRef,\n setResponses,\n onResponseChange,\n onHelp,\n openQuestionFeedbackModal,\n activeQuestionTool,\n setActiveQuestionTool,\n unsetActiveQuestionTool,\n toggleCalculator,\n } = useWorksheetStore(store => {\n const activeQuestion = store.questions[store.activeQuestionIndex]!;\n\n return {\n behavior: store.behavior,\n question: activeQuestion,\n loggerRef: store.loggerRef,\n setResponses: store.setResponses,\n onResponseChange: store.onResponseChange,\n onHelp: store.onHelp,\n openQuestionFeedbackModal: store.openQuestionFeedbackModal,\n activeQuestionTool: store.activeQuestionTool,\n setActiveQuestionTool: store.setActiveQuestionTool,\n unsetActiveQuestionTool: store.unsetActiveQuestionTool,\n toggleCalculator: store.toggleCalculator,\n };\n });\n const { response_id: responseId } = question;\n\n const handleHintButtonClick = useCallback(() => {\n loggerRef.current(EVENTS.WORKSHEET_V3_HINT_SEEN);\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(question),\n ...prevResponses[responseId],\n hintsUsed: (prevResponses[responseId]?.hintsUsed ?? 0) + 1,\n };\n\n onResponseChange?.({\n responseId,\n response: newResponse,\n question,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [responseId]: newResponse,\n };\n });\n }, [loggerRef, onResponseChange, question, responseId, setResponses]);\n\n const handleQuestionFeedbackClick = useCallback(() => {\n if (openQuestionFeedbackModal) {\n openQuestionFeedbackModal(question.item_reference);\n }\n }, [openQuestionFeedbackModal, question]);\n\n const handleTeachingToolsClick = useCallback(() => {\n if (activeQuestionTool !== EActiveQuestionTool.TEACHING_TOOLS) {\n setActiveQuestionTool(EActiveQuestionTool.TEACHING_TOOLS);\n } else {\n unsetActiveQuestionTool();\n }\n }, [setActiveQuestionTool, unsetActiveQuestionTool, activeQuestionTool]);\n\n const handleDiscussionClick = useCallback(() => {\n if (activeQuestionTool !== EActiveQuestionTool.DISCUSSION) {\n setActiveQuestionTool(EActiveQuestionTool.DISCUSSION);\n } else {\n unsetActiveQuestionTool();\n }\n }, [setActiveQuestionTool, unsetActiveQuestionTool, activeQuestionTool]);\n\n const handleSolutionClick = useCallback(() => {\n if (activeQuestionTool !== EActiveQuestionTool.SOLUTION) {\n setActiveQuestionTool(EActiveQuestionTool.SOLUTION);\n } else {\n unsetActiveQuestionTool();\n }\n }, [setActiveQuestionTool, unsetActiveQuestionTool, activeQuestionTool]);\n\n const handleHelpButtonClick = useCallback(() => {\n if (onHelp && question) {\n const { item_number, question_number, total_questions } = question;\n\n onHelp({\n questionId: responseId,\n questionNumber: `${item_number + 1}${\n total_questions > 1 ? String.fromCharCode('a'.charCodeAt(0) + question_number) : ''\n }`,\n });\n }\n }, [onHelp, question, responseId]);\n\n return (\n <Styled.WorksheetQuestionsToolbarContainer\n $showBorder={showBorder}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n >\n {hints.visible && (\n <Clickable label=\"Hint\" disabled={hints.disabled} onClick={handleHintButtonClick}>\n <ArrowTooltip position=\"top\" renderAs=\"primary\" tooltipItem=\"Hint\">\n <Styled.IconContainer $disabled={hints.disabled}>\n <Styled.HintsIconContainer>\n <HintsIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n {!hints.allHintsUtilized && hints.nextHintnumber > 1 && (\n <Styled.HintsNumberContainer>\n <Styled.HintsNumber $renderAs=\"ab3-bold\" $color=\"BLACK\">\n {hints.nextHintnumber}\n </Styled.HintsNumber>\n </Styled.HintsNumberContainer>\n )}\n {hints.allHintsUtilized && <Styled.TickMark src={ILLUSTRATIONS.TICK_GREEN} />}\n </Styled.HintsIconContainer>\n </Styled.IconContainer>\n </ArrowTooltip>\n </Clickable>\n )}\n {solution.visible && (\n <Clickable label=\"Solution\" disabled={solution.disabled} onClick={handleSolutionClick}>\n <ArrowTooltip position=\"top\" renderAs=\"primary\" tooltipItem=\"Solution\">\n <Styled.IconContainer $disabled={solution.disabled}>\n {activeQuestionTool === EActiveQuestionTool.SOLUTION ? (\n <CloseIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n ) : (\n <SolutionIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n )}\n </Styled.IconContainer>\n </ArrowTooltip>\n </Clickable>\n )}\n {askTeacher.visible && (\n <Clickable label=\"Ask for help\" onClick={handleHelpButtonClick}>\n <ArrowTooltip position=\"top\" renderAs=\"primary\" tooltipItem=\"Help\">\n <Styled.IconContainer>\n <HandIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n </Styled.IconContainer>\n </ArrowTooltip>\n </Clickable>\n )}\n {questionFeedback.visible && (\n <Clickable label=\"Question Feedback\" onClick={handleQuestionFeedbackClick}>\n <ArrowTooltip position=\"top\" renderAs=\"primary\" tooltipItem=\"Feedback\">\n <Styled.IconContainer>\n <QuestionFeedbackIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n </Styled.IconContainer>\n </ArrowTooltip>\n </Clickable>\n )}\n {behavior.canShowDesmosCalc && (\n <Clickable label=\"Desmos Calculator\" onClick={toggleCalculator}>\n <ArrowTooltip position=\"top\" renderAs=\"primary\" tooltipItem=\"Calculator\">\n <Styled.IconContainer>\n <CalculatorIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n </Styled.IconContainer>\n </ArrowTooltip>\n </Clickable>\n )}\n {teachingTools.visible && (\n <Clickable\n label=\"Teaching Tools\"\n disabled={teachingTools.disabled}\n onClick={handleTeachingToolsClick}\n >\n <ArrowTooltip\n position=\"top\"\n renderAs=\"primary\"\n tooltipItem=\"Cue Don't Tell, Hint and Solution\"\n >\n <Styled.IconContainer $disabled={teachingTools.disabled}>\n {activeQuestionTool === EActiveQuestionTool.TEACHING_TOOLS ? (\n <CloseIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n ) : (\n <TeachingToolsIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n )}\n </Styled.IconContainer>\n </ArrowTooltip>\n </Clickable>\n )}\n {discussion.visible && (\n <Clickable label=\"Teacher Validated Question\" onClick={handleDiscussionClick}>\n <ArrowTooltip position=\"top\" renderAs=\"primary\" tooltipItem=\"Teacher Validated Question\">\n <Styled.IconContainer>\n {activeQuestionTool === EActiveQuestionTool.DISCUSSION ? (\n <CloseIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n ) : (\n <TValQuestionIcon width={TOOL_ICON_SIZE} height={TOOL_ICON_SIZE} />\n )}\n </Styled.IconContainer>\n </ArrowTooltip>\n </Clickable>\n )}\n </Styled.WorksheetQuestionsToolbarContainer>\n );\n});\n\nexport default QuestionsToolbar;\n"],"names":["QuestionsToolbar","memo","showBorder","toolbarOptions","hints","solution","askTeacher","questionFeedback","teachingTools","discussion","question","behavior","loggerRef","setResponses","onResponseChange","onHelp","openQuestionFeedbackModal","activeQuestionTool","setActiveQuestionTool","unsetActiveQuestionTool","toggleCalculator","useWorksheetStore","store","activeQuestion","responseId","handleHintButtonClick","useCallback","EVENTS","prevResponses","newResponse","getQuestionMetadata","_a","handleQuestionFeedbackClick","handleTeachingToolsClick","EActiveQuestionTool","handleDiscussionClick","handleSolutionClick","handleHelpButtonClick","item_number","question_number","total_questions","jsxs","Styled.WorksheetQuestionsToolbarContainer","jsx","Clickable","ArrowTooltip","Styled.IconContainer","Styled.HintsIconContainer","HintsIcon","TOOL_ICON_SIZE","Styled.HintsNumberContainer","Styled.HintsNumber","Styled.TickMark","ILLUSTRATIONS","CloseIcon","SolutionIcon","HandIcon","QuestionFeedbackIcon","CalculatorIcon","TeachingToolsIcon","TValQuestionIcon"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -827,6 +827,8 @@ declare const getTabConfig: IGetTabConfig;
|
|
|
827
827
|
|
|
828
828
|
/* Excluded from this release type: getTabsConfig */
|
|
829
829
|
|
|
830
|
+
declare const getTagConfig: IGetTagConfig;
|
|
831
|
+
|
|
830
832
|
declare const getTextButtonConfig: IGetTextButtonConfig;
|
|
831
833
|
|
|
832
834
|
declare function getTextTypes(multiplier?: number): Record<TTextVariants, ITextConfig>;
|
|
@@ -1951,6 +1953,12 @@ declare interface IGetTabsConfig {
|
|
|
1951
1953
|
(): Record<TTabsTheme, ITabsThemeConfig>;
|
|
1952
1954
|
}
|
|
1953
1955
|
|
|
1956
|
+
declare interface IGetTagConfig {
|
|
1957
|
+
(): {
|
|
1958
|
+
sizes: Record<TTagSizes, ITagSizeConfig>;
|
|
1959
|
+
};
|
|
1960
|
+
}
|
|
1961
|
+
|
|
1954
1962
|
declare interface IGetTextButtonConfig {
|
|
1955
1963
|
(): {
|
|
1956
1964
|
sizes: Record<TTextButtonSizes, ITextButtonSizeConfig>;
|
|
@@ -3688,8 +3696,6 @@ declare interface IProjects_2 {
|
|
|
3688
3696
|
declare interface IPTMReportProps {
|
|
3689
3697
|
ptmId: string;
|
|
3690
3698
|
onAPIComplete?: (success: boolean) => void;
|
|
3691
|
-
onFeedback?: (feedbackType: 'positive' | 'negative', ptmId: string) => void;
|
|
3692
|
-
showFeedback?: boolean;
|
|
3693
3699
|
}
|
|
3694
3700
|
|
|
3695
3701
|
declare interface IPublishData {
|
|
@@ -4581,9 +4587,20 @@ export declare interface ITabVariantConfig {
|
|
|
4581
4587
|
}
|
|
4582
4588
|
|
|
4583
4589
|
declare interface ITagProps {
|
|
4584
|
-
backgroundColor: TColorNames;
|
|
4585
4590
|
text: string;
|
|
4586
|
-
|
|
4591
|
+
size: TTagSizes;
|
|
4592
|
+
shape?: TTagShapes;
|
|
4593
|
+
}
|
|
4594
|
+
|
|
4595
|
+
export declare interface ITagSizeConfig {
|
|
4596
|
+
fontSize: number;
|
|
4597
|
+
lineHeight: number;
|
|
4598
|
+
paddingHorizontal: number;
|
|
4599
|
+
paddingTop: number;
|
|
4600
|
+
borderRadius: {
|
|
4601
|
+
curved: number;
|
|
4602
|
+
square: number;
|
|
4603
|
+
};
|
|
4587
4604
|
}
|
|
4588
4605
|
|
|
4589
4606
|
declare interface ITalkMeter {
|
|
@@ -4712,6 +4729,7 @@ export declare interface ITheme {
|
|
|
4712
4729
|
layout: ReturnType<typeof getLayout>;
|
|
4713
4730
|
tab: ReturnType<typeof getTabConfig>;
|
|
4714
4731
|
tabs: ReturnType<typeof getTabsConfig>;
|
|
4732
|
+
tag: ReturnType<typeof getTagConfig>;
|
|
4715
4733
|
text: ReturnType<typeof getTextTypes>;
|
|
4716
4734
|
textButton: ReturnType<typeof getTextButtonConfig>;
|
|
4717
4735
|
zIndex: ReturnType<typeof getZIndexConfig>;
|
|
@@ -7633,6 +7651,10 @@ declare type TTabsTheme = 'light' | 'dark';
|
|
|
7633
7651
|
|
|
7634
7652
|
export declare type TTabVariants = 'primary' | 'secondary';
|
|
7635
7653
|
|
|
7654
|
+
export declare type TTagShapes = 'curved' | 'square';
|
|
7655
|
+
|
|
7656
|
+
export declare type TTagSizes = '8px' | '10px' | '12px';
|
|
7657
|
+
|
|
7636
7658
|
declare type TTestDifficultyLevel = 'EASY' | 'MODERATE' | 'DIFFICULT';
|
|
7637
7659
|
|
|
7638
7660
|
declare type TTestHelpItemsDataProps = {
|
|
@@ -7645,7 +7667,7 @@ export declare type TTestType = 'standardized' | 'non-standardized' | 'no-test'
|
|
|
7645
7667
|
|
|
7646
7668
|
export declare type TTextButtonSizes = 'small' | 'regular' | 'medium';
|
|
7647
7669
|
|
|
7648
|
-
export declare type TTextVariants = `${'ah1' | 'ah2' | 'ah3' | 'ah4' | 'ab1' | 'ab2' | 'ab3'
|
|
7670
|
+
export declare type TTextVariants = `${'ah1' | 'ah2' | 'ah3' | 'ah4' | 'ab1' | 'ab2' | 'ab3'}${'' | '-bold' | '-black'}` | `${'ac1' | 'ac2' | 'ac3' | 'ac4' | 'ac5'}${'' | '-black'}` | `${'ub1' | 'ub2' | 'ub3' | 'ub4'}${'' | '-bold'}`;
|
|
7649
7671
|
|
|
7650
7672
|
declare type TTimeUnit = 'hours' | 'minutes' | 'days';
|
|
7651
7673
|
|
package/package.json
CHANGED
package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback-styled.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import r from "styled-components";
|
|
2
|
-
import t from "../../../../../ui/layout/flex-view.js";
|
|
3
|
-
const s = r(t)`
|
|
4
|
-
width: 100%;
|
|
5
|
-
`, d = r(t)`
|
|
6
|
-
${({ theme: o, selected: i }) => `
|
|
7
|
-
width: 64px;
|
|
8
|
-
height: 64px;
|
|
9
|
-
border: 1px solid ${o.colors.BLACK_1};
|
|
10
|
-
background-color: ${i ? o.colors.BLACK_T_08 : o.colors.WHITE_1};
|
|
11
|
-
`}
|
|
12
|
-
`;
|
|
13
|
-
export {
|
|
14
|
-
s as Container,
|
|
15
|
-
d as ThumbButton
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=ptm-feedback-styled.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ptm-feedback-styled.js","sources":["../../../../../../../src/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../../../ui/layout/flex-view';\n\nexport const Container = styled(FlexView)`\n width: 100%;\n`;\n\nexport const ThumbButton = styled(FlexView)<{ selected?: boolean }>`\n ${({ theme, selected }: { theme: any; selected?: boolean }) => `\n width: 64px;\n height: 64px;\n border: 1px solid ${theme.colors.BLACK_1};\n background-color: ${selected ? theme.colors.BLACK_T_08 : theme.colors.WHITE_1};\n`}\n`;\n"],"names":["Container","styled","FlexView","ThumbButton","theme","selected"],"mappings":";;AAIa,MAAAA,IAAYC,EAAOC,CAAQ;AAAA;AAAA,GAI3BC,IAAcF,EAAOC,CAAQ;AAAA,IACtC,CAAC,EAAE,OAAAE,GAAO,UAAAC,EAAA,MAAmD;AAAA;AAAA;AAAA,sBAG3CD,EAAM,OAAO,OAAO;AAAA,sBACpBC,IAAWD,EAAM,OAAO,aAAaA,EAAM,OAAO,OAAO;AAAA,CAC9E;AAAA;"}
|
package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { memo as $, useCallback as o } from "react";
|
|
3
|
-
import { ILLUSTRATIONS as n } from "../../../../../../assets/illustrations/illustrations.js";
|
|
4
|
-
import h from "../../../../../ui/layout/flex-view.js";
|
|
5
|
-
import c from "../../../../../ui/image/image.js";
|
|
6
|
-
import l from "../../../../../ui/separator/separator.js";
|
|
7
|
-
import g from "../../../../../ui/text/text.js";
|
|
8
|
-
import { Container as u, ThumbButton as a } from "./ptm-feedback-styled.js";
|
|
9
|
-
const P = $(function({
|
|
10
|
-
studentName: s,
|
|
11
|
-
onFeedback: t,
|
|
12
|
-
feedback: i
|
|
13
|
-
}) {
|
|
14
|
-
const m = o(() => {
|
|
15
|
-
t("positive");
|
|
16
|
-
}, [t]), d = o(() => {
|
|
17
|
-
t("negative");
|
|
18
|
-
}, [t]);
|
|
19
|
-
return /* @__PURE__ */ r(u, { $gapX: 1.25, $background: "WHITE_1", $gutterX: 2, children: [
|
|
20
|
-
/* @__PURE__ */ e(h, { $gutterX: 1, children: /* @__PURE__ */ r(g, { $renderAs: "ab2-black", $color: "BLACK_1", $align: "center", children: [
|
|
21
|
-
"Are you happy with ",
|
|
22
|
-
s,
|
|
23
|
-
"'s PTM?"
|
|
24
|
-
] }) }),
|
|
25
|
-
/* @__PURE__ */ e(l, { heightX: 1.5 }),
|
|
26
|
-
/* @__PURE__ */ r(h, { $flexDirection: "row", $flexGapX: 3, $alignItems: "center", $justifyContent: "center", children: [
|
|
27
|
-
/* @__PURE__ */ e(
|
|
28
|
-
a,
|
|
29
|
-
{
|
|
30
|
-
$widthX: 5,
|
|
31
|
-
$heightX: 5,
|
|
32
|
-
$alignItems: "center",
|
|
33
|
-
$justifyContent: "center",
|
|
34
|
-
$borderRadiusX: 2.5,
|
|
35
|
-
$borderColor: "BLACK_1",
|
|
36
|
-
onClick: m,
|
|
37
|
-
selected: i === "positive",
|
|
38
|
-
children: /* @__PURE__ */ e(c, { src: n.THUMPS_UP, alt: "Thumbs up", width: 32, height: 32 })
|
|
39
|
-
}
|
|
40
|
-
),
|
|
41
|
-
/* @__PURE__ */ e(
|
|
42
|
-
a,
|
|
43
|
-
{
|
|
44
|
-
$widthX: 5,
|
|
45
|
-
$heightX: 5,
|
|
46
|
-
$alignItems: "center",
|
|
47
|
-
$justifyContent: "center",
|
|
48
|
-
$borderColor: "BLACK_1",
|
|
49
|
-
$borderRadiusX: 2.5,
|
|
50
|
-
onClick: d,
|
|
51
|
-
selected: i === "negative",
|
|
52
|
-
children: /* @__PURE__ */ e(c, { src: n.THUMPS_DOWN, alt: "Thumbs down", width: 32, height: 32 })
|
|
53
|
-
}
|
|
54
|
-
)
|
|
55
|
-
] }),
|
|
56
|
-
/* @__PURE__ */ e(l, { heightX: 1.5 })
|
|
57
|
-
] });
|
|
58
|
-
});
|
|
59
|
-
export {
|
|
60
|
-
P as default
|
|
61
|
-
};
|
|
62
|
-
//# sourceMappingURL=ptm-feedback.js.map
|
package/dist/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ptm-feedback.js","sources":["../../../../../../../src/features/timeline/monthly-timeline/ptm-report/comps/ptm-feedback/ptm-feedback.tsx"],"sourcesContent":["import { memo, useCallback, type FC } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../../../assets/illustrations/illustrations';\nimport FlexView from '../../../../../ui/layout/flex-view';\nimport Image from '../../../../../ui/image/image';\nimport Separator from '../../../../../ui/separator/separator';\nimport Text from '../../../../../ui/text/text';\nimport type { IPTMFeedbackProps } from './ptm-feedback-types';\nimport * as Styled from './ptm-feedback-styled';\n\nconst PTMFeedback: FC<IPTMFeedbackProps> = memo(function PTMFeedback({\n studentName,\n onFeedback,\n feedback,\n}) {\n const handlePositiveFeedback = useCallback(() => {\n onFeedback('positive');\n }, [onFeedback]);\n\n const handleNegativeFeedback = useCallback(() => {\n onFeedback('negative');\n }, [onFeedback]);\n\n return (\n <Styled.Container $gapX={1.25} $background=\"WHITE_1\" $gutterX={2}>\n <FlexView $gutterX={1}>\n <Text $renderAs=\"ab2-black\" $color=\"BLACK_1\" $align=\"center\">\n Are you happy with {studentName}'s PTM?\n </Text>\n </FlexView>\n <Separator heightX={1.5} />\n <FlexView $flexDirection=\"row\" $flexGapX={3} $alignItems=\"center\" $justifyContent=\"center\">\n <Styled.ThumbButton\n $widthX={5}\n $heightX={5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadiusX={2.5}\n $borderColor=\"BLACK_1\"\n onClick={handlePositiveFeedback}\n selected={feedback === 'positive'}\n >\n <Image src={ILLUSTRATIONS.THUMPS_UP} alt=\"Thumbs up\" width={32} height={32} />\n </Styled.ThumbButton>\n <Styled.ThumbButton\n $widthX={5}\n $heightX={5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderColor=\"BLACK_1\"\n $borderRadiusX={2.5}\n onClick={handleNegativeFeedback}\n selected={feedback === 'negative'}\n >\n <Image src={ILLUSTRATIONS.THUMPS_DOWN} alt=\"Thumbs down\" width={32} height={32} />\n </Styled.ThumbButton>\n </FlexView>\n <Separator heightX={1.5} />\n </Styled.Container>\n );\n});\n\nexport default PTMFeedback;\n"],"names":["PTMFeedback","memo","studentName","onFeedback","feedback","handlePositiveFeedback","useCallback","handleNegativeFeedback","jsxs","Styled.Container","jsx","FlexView","Text","Separator","Styled.ThumbButton","Image","ILLUSTRATIONS"],"mappings":";;;;;;;;AAUM,MAAAA,IAAqCC,EAAK,SAAqB;AAAA,EACnE,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AACF,GAAG;AACK,QAAAC,IAAyBC,EAAY,MAAM;AAC/C,IAAAH,EAAW,UAAU;AAAA,EAAA,GACpB,CAACA,CAAU,CAAC,GAETI,IAAyBD,EAAY,MAAM;AAC/C,IAAAH,EAAW,UAAU;AAAA,EAAA,GACpB,CAACA,CAAU,CAAC;AAGb,SAAA,gBAAAK,EAACC,GAAA,EAAiB,OAAO,MAAM,aAAY,WAAU,UAAU,GAC7D,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAS,UAAU,GAClB,UAAC,gBAAAH,EAAAI,GAAA,EAAK,WAAU,aAAY,QAAO,WAAU,QAAO,UAAS,UAAA;AAAA,MAAA;AAAA,MACvCV;AAAA,MAAY;AAAA,IAAA,EAAA,CAClC,EACF,CAAA;AAAA,IACA,gBAAAQ,EAACG,GAAU,EAAA,SAAS,IAAK,CAAA;AAAA,IACzB,gBAAAL,EAACG,KAAS,gBAAe,OAAM,WAAW,GAAG,aAAY,UAAS,iBAAgB,UAChF,UAAA;AAAA,MAAA,gBAAAD;AAAA,QAACI;AAAAA,QAAA;AAAA,UACC,SAAS;AAAA,UACT,UAAU;AAAA,UACV,aAAY;AAAA,UACZ,iBAAgB;AAAA,UAChB,gBAAgB;AAAA,UAChB,cAAa;AAAA,UACb,SAAST;AAAA,UACT,UAAUD,MAAa;AAAA,UAEvB,UAAA,gBAAAM,EAACK,GAAM,EAAA,KAAKC,EAAc,WAAW,KAAI,aAAY,OAAO,IAAI,QAAQ,GAAI,CAAA;AAAA,QAAA;AAAA,MAC9E;AAAA,MACA,gBAAAN;AAAA,QAACI;AAAAA,QAAA;AAAA,UACC,SAAS;AAAA,UACT,UAAU;AAAA,UACV,aAAY;AAAA,UACZ,iBAAgB;AAAA,UAChB,cAAa;AAAA,UACb,gBAAgB;AAAA,UAChB,SAASP;AAAA,UACT,UAAUH,MAAa;AAAA,UAEvB,UAAA,gBAAAM,EAACK,GAAM,EAAA,KAAKC,EAAc,aAAa,KAAI,eAAc,OAAO,IAAI,QAAQ,GAAI,CAAA;AAAA,QAAA;AAAA,MAClF;AAAA,IAAA,GACF;AAAA,IACA,gBAAAN,EAACG,GAAU,EAAA,SAAS,IAAK,CAAA;AAAA,EAC3B,EAAA,CAAA;AAEJ,CAAC;"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import t from "styled-components";
|
|
2
|
-
import i from "../../../../../ui/layout/flex-view.js";
|
|
3
|
-
const e = t(i)(
|
|
4
|
-
({ theme: o }) => `
|
|
5
|
-
position: fixed;
|
|
6
|
-
bottom: 0;
|
|
7
|
-
left: 0;
|
|
8
|
-
right: 0;
|
|
9
|
-
width: 100%;
|
|
10
|
-
background-color: ${o.colors.WHITE_1};
|
|
11
|
-
border-top: 1px solid ${o.colors.BLACK_5};
|
|
12
|
-
z-index: 100;
|
|
13
|
-
max-width: 480px;
|
|
14
|
-
`
|
|
15
|
-
), n = t(i)`
|
|
16
|
-
width: 100%;
|
|
17
|
-
max-width: 100%;
|
|
18
|
-
`;
|
|
19
|
-
export {
|
|
20
|
-
n as ContentWrapper,
|
|
21
|
-
e as StickyContainer
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=sticky-footer-styled.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sticky-footer-styled.js","sources":["../../../../../../../src/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../../../ui/layout/flex-view';\n\nexport const StickyContainer = styled(FlexView)(\n ({ theme }) => `\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n background-color: ${theme.colors.WHITE_1};\n border-top: 1px solid ${theme.colors.BLACK_5};\n z-index: 100;\n max-width: 480px;\n `,\n);\n\nexport const ContentWrapper = styled(FlexView)`\n width: 100%;\n max-width: 100%;\n`;\n"],"names":["StickyContainer","styled","FlexView","theme","ContentWrapper"],"mappings":";;AAIa,MAAAA,IAAkBC,EAAOC,CAAQ;AAAA,EAC5C,CAAC,EAAE,OAAAC,EAAA,MAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAMOA,EAAM,OAAO,OAAO;AAAA,4BAChBA,EAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAIhD,GAEaC,IAAiBH,EAAOC,CAAQ;AAAA;AAAA;AAAA;"}
|
package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { jsx as r, jsxs as m } from "react/jsx-runtime";
|
|
2
|
-
import { memo as l } from "react";
|
|
3
|
-
import p from "../../../../../ui/buttons/button/button.js";
|
|
4
|
-
import a from "../../../../../ui/layout/flex-view.js";
|
|
5
|
-
import c from "../ptm-feedback/ptm-feedback.js";
|
|
6
|
-
import { StickyContainer as s, ContentWrapper as f } from "./sticky-footer-styled.js";
|
|
7
|
-
const C = l(function({
|
|
8
|
-
studentName: e,
|
|
9
|
-
onSubmit: o,
|
|
10
|
-
onFeedback: i,
|
|
11
|
-
feedback: t,
|
|
12
|
-
showFeedback: n = !1
|
|
13
|
-
}) {
|
|
14
|
-
return n ? /* @__PURE__ */ r(s, { $gutterX: 2, $gapX: 2, children: /* @__PURE__ */ m(f, { $gapX: 2, children: [
|
|
15
|
-
/* @__PURE__ */ r(c, { studentName: e, onFeedback: i, feedback: t }),
|
|
16
|
-
/* @__PURE__ */ r(a, { $width: "100%", children: /* @__PURE__ */ r(
|
|
17
|
-
p,
|
|
18
|
-
{
|
|
19
|
-
label: "Submit",
|
|
20
|
-
renderAs: "primary",
|
|
21
|
-
size: "large",
|
|
22
|
-
shape: "curved",
|
|
23
|
-
onClick: o,
|
|
24
|
-
justifyContent: "center",
|
|
25
|
-
disabled: !t
|
|
26
|
-
}
|
|
27
|
-
) })
|
|
28
|
-
] }) }) : null;
|
|
29
|
-
});
|
|
30
|
-
export {
|
|
31
|
-
C as default
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=sticky-footer.js.map
|
package/dist/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sticky-footer.js","sources":["../../../../../../../src/features/timeline/monthly-timeline/ptm-report/comps/sticky-footer/sticky-footer.tsx"],"sourcesContent":["import { memo, type FC } from 'react';\n\nimport Button from '../../../../../ui/buttons/button/button';\nimport FlexView from '../../../../../ui/layout/flex-view';\nimport PTMFeedback from '../ptm-feedback/ptm-feedback';\nimport type { IStickyFooterProps } from './sticky-footer-types';\nimport * as Styled from './sticky-footer-styled';\n\nconst StickyFooter: FC<IStickyFooterProps> = memo(function StickyFooter({\n studentName,\n onSubmit,\n onFeedback,\n feedback,\n showFeedback = false,\n}) {\n if (!showFeedback) {\n return null;\n }\n\n return (\n <Styled.StickyContainer $gutterX={2} $gapX={2}>\n <Styled.ContentWrapper $gapX={2}>\n <PTMFeedback studentName={studentName} onFeedback={onFeedback} feedback={feedback} />\n <FlexView $width=\"100%\">\n <Button\n label=\"Submit\"\n renderAs=\"primary\"\n size=\"large\"\n shape=\"curved\"\n onClick={onSubmit}\n justifyContent=\"center\"\n disabled={!feedback}\n />\n </FlexView>\n </Styled.ContentWrapper>\n </Styled.StickyContainer>\n );\n});\n\nexport default StickyFooter;\n"],"names":["StickyFooter","memo","studentName","onSubmit","onFeedback","feedback","showFeedback","jsx","Styled.StickyContainer","jsxs","Styled.ContentWrapper","PTMFeedback","FlexView","Button"],"mappings":";;;;;;AAQM,MAAAA,IAAuCC,EAAK,SAAsB;AAAA,EACtE,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC,IAAe;AACjB,GAAG;AACD,SAAKA,IAKF,gBAAAC,EAAAC,GAAA,EAAuB,UAAU,GAAG,OAAO,GAC1C,UAAC,gBAAAC,EAAAC,GAAA,EAAsB,OAAO,GAC5B,UAAA;AAAA,IAAC,gBAAAH,EAAAI,GAAA,EAAY,aAAAT,GAA0B,YAAAE,GAAwB,UAAAC,EAAoB,CAAA;AAAA,IACnF,gBAAAE,EAACK,GAAS,EAAA,QAAO,QACf,UAAA,gBAAAL;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,UAAS;AAAA,QACT,MAAK;AAAA,QACL,OAAM;AAAA,QACN,SAASV;AAAA,QACT,gBAAe;AAAA,QACf,UAAU,CAACE;AAAA,MAAA;AAAA,IAAA,GAEf;AAAA,EAAA,EACF,CAAA,EACF,CAAA,IAnBO;AAqBX,CAAC;"}
|