@cuemath/leap 3.5.61 → 3.5.62

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.
Files changed (23) hide show
  1. package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
  2. package/dist/features/worksheet/worksheet/worksheet-view.js +45 -47
  3. package/dist/features/worksheet/worksheet/worksheet-view.js.map +1 -1
  4. package/dist/features/worksheet/worksheet/worksheet.js +56 -58
  5. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  6. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js +25 -26
  7. package/dist/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.js.map +1 -1
  8. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js +64 -66
  9. package/dist/features/worksheet/worksheet-preview/worksheet-preview-view.js.map +1 -1
  10. package/dist/index.d.ts +0 -2
  11. package/dist/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  12. package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  13. package/dist/node_modules/uuid/dist/esm-browser/rng.js +2 -3
  14. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  15. package/dist/node_modules/uuid/dist/esm-browser/stringify.js +10 -6
  16. package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
  17. package/dist/node_modules/uuid/dist/esm-browser/v4.js +9 -12
  18. package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
  19. package/dist/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  20. package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  21. package/package.json +1 -1
  22. package/dist/node_modules/uuid/dist/esm-browser/native.js +0 -7
  23. package/dist/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet-types.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-types.ts"],"sourcesContent":["import type { MutableRefObject, ReactElement, ReactNode } from 'react';\n\nimport type { EWorksheetActivity, TNodeTypes } from '../../../types/models/worksheet';\nimport type { IActionData, TPublish, TSubscribe } from '../../cue-canvas/types/cue-canvas';\nimport type { TPublishMouseMove, TSubscribeMouseMove } from '../../pointer-sync/pointer-types';\nimport type { TColorNames, THueNames, TUserTypes } from '../../ui/types';\nimport type { IFile } from './worksheet-question/subjective-review';\nimport type { TWorksheetBlocker } from './worksheet-blocker/worksheet-blocker-types';\n\nexport enum QUESTION_TAGS {\n TRIAL_TOPIC = 'trial-topic',\n QUESTION_CODE = 'question code',\n}\n\nexport enum QUESTIONS_RATING {\n E = 3,\n S = 2, // Just right\n H = 1,\n}\n\nexport interface ILearnosityError {\n code: number;\n consumerKey: string;\n detail: string;\n errorUI: string;\n msg: string;\n}\n\ninterface ILearnosityQuestionMetadata {\n widget_reference: string;\n sheet_reference: string;\n acknowledgements?: string;\n sample_answer?: string;\n hints?: string[];\n solution?: string[];\n teacher_tips?: string[];\n valid_response_count: number;\n source: {\n organisation_id: number;\n };\n}\n\nexport type TInstructorStimulus =\n | 'SystemIntro' // lesson v3\n | 'Intro' // lesson v3\n | 'Concept-Intro' // lesson v3\n | 'Instruction' // lesson v3\n | 'Task' // lesson v3\n | 'Try' // trial v3\n | 'Learn' // trial v3\n | 'Apply'; // trial v3\n\nexport type TItemType =\n | 'overview'\n | 'learning'\n | 'learning-we-do'\n | 'learning-your-turn'\n | 'learning-explore'\n | 'practice'\n | 'practice-basic'\n | 'practice-basic-optional'\n | 'practice-regular'\n | 'practice-regular-optional'\n | 'exit-ticket'\n | 'advanced-we-do'\n | 'advanced-your-turn'\n | 'advanced-explore'\n | 'advanced-practice';\n\nexport type TSectionName =\n | 'overview'\n | 'learning'\n | 'practice'\n | 'practice-basic'\n | 'practice-regular'\n | 'exit-ticket'\n | 'advanced';\n\ninterface IQuestionValidResponse {\n score: number;\n value: unknown[];\n}\n\nexport interface ISheetNudgeBannerInfo {\n bannerBackgroundColor: TColorNames;\n label: string;\n}\n\nexport interface ILearnosityQuestion {\n response_id: string;\n instructor_stimulus?: TInstructorStimulus;\n metadata: ILearnosityQuestionMetadata;\n instant_feedback?: boolean;\n math_renderer?: string;\n template?: string;\n tokenization?: string;\n numberPad?: string[];\n symbols?: unknown[];\n response_container?: Record<string, unknown>;\n ui_style?: Record<string, unknown>;\n shuffle_options?: boolean;\n // for custom type question validation is undefined.\n validation?: {\n scoring_type?: string;\n unscored?: boolean;\n valid_response?: IQuestionValidResponse;\n alt_responses?: IQuestionValidResponse[];\n penalty?: number;\n min_score_if_attempted?: number;\n };\n is_math?: boolean;\n labels?: Record<string, unknown>;\n line?: Record<string, unknown>;\n points?: string[];\n snap_to_ticks?: boolean;\n ticks?: Record<string, unknown>;\n max_length?: number;\n type:\n | 'hotspot'\n | 'tokenhighlight'\n | 'numberline'\n | 'clozeassociation'\n | 'clozetext'\n | 'association'\n | 'classification'\n | 'clozedropdown'\n | 'clozeformula'\n | 'mcq'\n | 'choicematrix'\n | 'plaintext'\n | 'drawing';\n case_sensitive?: boolean;\n show_copy?: boolean;\n show_cut?: boolean;\n show_paste?: boolean;\n spellcheck?: boolean;\n stimulus?: string;\n stimulus_review?: string;\n stimulus_list?: string[];\n image?: Record<string, unknown>;\n areas?: unknown[];\n area_attributes?: Record<string, unknown>;\n possible_responses?: string[][] | string[];\n duplicate_responses?: boolean;\n response_containers?: unknown[];\n options?: Record<string, unknown>[] | string[];\n feedback_attempts?: number;\n stems?: string[];\n multiple_responses?: boolean;\n}\n\nexport interface ILearnosityItem {\n reference: string;\n questions: ILearnosityQuestion[];\n source: Record<string, unknown>;\n content: string;\n metadata: Record<string, unknown> | unknown[];\n workflow: unknown[];\n response_ids: string[];\n feature_ids: unknown[];\n features: unknown[];\n itemType?: TItemType;\n tags?: string[];\n}\n\nexport interface IWorksheetQuestion extends ILearnosityQuestion {\n item_reference: string;\n item_type?: TItemType;\n section_name?: TSectionName;\n is_optional?: boolean;\n /**\n * If true, the question is not a question, but a content only item\n * e.g. Intro, Overview, Instruction etc.\n */\n is_non_question?: boolean;\n concept_intro_stimulus?: string; // Content for concept intro widget\n item_tags: string[];\n item_tags_map: Record<string, string>;\n item_number: number;\n item_display_number: number;\n question_number: number;\n total_questions: number;\n /**\n * if true, scribbler button will be shown on the question\n */\n can_scribble: boolean; // If true, the question can be scribbled on\n}\n\nexport interface ILearnosityQuestionScore {\n score?: number | null;\n max_score: number;\n unscored?: boolean;\n}\n\nexport interface ILearnosityQuestionResponse {\n value: unknown;\n responses?: unknown;\n type: unknown;\n updatedFormat?: boolean;\n wordCount?: number;\n apiVersion: string;\n revision: number;\n feedbackAttemptsCount?: number;\n}\n\ninterface IAttempt {\n response: ILearnosityQuestionResponse;\n score: ILearnosityQuestionScore;\n}\n\ninterface ITeacherReview {\n reviewComment?: string;\n images?: string[];\n}\nexport interface IWorksheetResponse {\n widgetReference: string;\n itemReference: string;\n itemPosition: number; // 0 based\n questionPosition: number; // 0 based\n isOkayTypeQuestion: boolean;\n response?: ILearnosityQuestionResponse;\n /**\n * For non question questions, when user click on start, responseGiven will be true\n */\n responseGiven?: boolean;\n retryEnabled?: boolean;\n simState?: Record<string, unknown>;\n score?: ILearnosityQuestionScore;\n responseEdited?: boolean;\n hintsUsed?: number;\n markedForReview?: boolean;\n attemptsHistory?: IAttempt[];\n validatedByTeacher?: boolean;\n submittedByStudent?: boolean;\n assignStatus?: 'assigned' | 'skipped';\n rating?: number;\n skipped?: boolean;\n doubtResolved?: boolean;\n teacherReview?: ITeacherReview;\n tags?: Record<string, string>;\n timeSpent?: number;\n discussionQuestionOffset?: number;\n}\n\ntype TMathRenderer = 'mathjax' | 'mathquill';\nexport interface ILearnosity {\n ready: () => void;\n questions: () => Record<string, unknown>;\n question: (responseId: string) =>\n | {\n enable: () => boolean;\n disable: () => boolean;\n getQuestion: () => ILearnosityQuestion;\n getMetadata: () => ILearnosityQuestionMetadata;\n getResponse: () => ILearnosityQuestionResponse;\n getScore: (\n callback?: (score: ILearnosityQuestionScore | null) => void,\n ) => ILearnosityQuestionScore;\n validate: (\n options?: { showCorrectAnswers?: boolean; feedbackAttempts?: boolean },\n callback?: () => void,\n ) => void;\n resetValidationUI: () => void;\n on: (eventName: 'changed', callback: () => void) => void;\n off: (eventName: 'changed', callback?: () => void) => void;\n }\n | undefined;\n append: (toAppend: {\n questions: ILearnosityQuestion[];\n responses?: Record<string, unknown>;\n }) => void;\n appendQuestion: (toAppend: {\n questions: ILearnosityQuestion[];\n responses?: Record<string, unknown>;\n }) => void;\n reset: () => void;\n renderMath: (renderer: TMathRenderer) => void;\n}\n\nexport interface IWorksheetBehavior {\n /**\n * If true, Opens the worksheet in resume mode.\n * - If false, Opens the worksheet in review mode.\n */\n canAttempt: boolean;\n /**\n * If true, the user can mark the question for review.\n */\n canMarkForReview: boolean;\n /**\n * The mode of navigation for the worksheet.\n * - `OPEN` mode allows the user to navigate to any question in the worksheet.\n * - `LINEAR` mode allows the user to navigate to the next question only.\n * - `ADAPTIVE` mode allows the user to navigate future questions based on the rating of the current question.\n * - `CURRENT` mode allows the user to navigate to the current question only. Back and forth not allowed.\n */\n navigationMode: 'OPEN' | 'LINEAR' | 'ADAPTIVE' | 'CURRENT';\n /**\n * The initial question to display when the worksheet is loaded.\n * - `FIRST` mode displays the first question in the worksheet.\n * - `CURRENT` mode displays the question that the user was last on.\n */\n initialQuestion: 'FIRST' | 'CURRENT';\n /**\n * If hints are available, on clicking the help button, first availble hint will be shown.\n * Clicking again will show the next hint.\n * If no more hints are available, onHelp will be called.\n */\n hints: boolean;\n /**\n * The time in seconds after which the hints button will be shown.\n */\n hintsTimer?: number; // in seconds\n /**\n * If true, the user can skip the question without attempting it.\n * Skip button will be shown only after the hints are exausted and skipTimer is reached.\n */\n skippable?: boolean;\n /**\n * The time in seconds after which the user can skip the question.\n */\n skippableTime?: number; // in seconds\n /**\n * If true, after the question is system validated, teacher discussion button will be shown when the question has discussion points.\n */\n teacherDiscussionEnabled?: boolean;\n /**\n * If true, teacher validation is needed for the question to proceed\n */\n teacherValidationEnabled: boolean;\n /**\n * If worksheet is attempting outside the class setting\n * This needs teacherValidationEnabled to be true\n * TODO: Consider changing to accept validation type: 'system' | 'teacher' | undefined instead of boolean\n */\n canTeacherValidate: boolean;\n /**\n * If true, questions will be validated and feedback will be shown.\n */\n validation: boolean;\n /**\n * If true, solution wont be shown to the user.\n */\n solutionHidden?: boolean;\n /**\n * If true, questions will be validated and feedback will be shown along with the correct answer.\n */\n review: boolean;\n /**\n * The maximum number of attempts allowed for each question.\n * 0 means unlimited attempts.\n * -1 means attempts will not be validated, hence not pushed to attempt history.\n * -2 means the sheet is a puzzle sheet\n * After reaching the maximum number of attempts, the user cannot attempt the question anymore.\n * If maxAtttmpts reached and canExceedAttempts is true, the user can still attempt the question\n * , also user will have the option to move to next question\n */\n maximumAttempts: number;\n /**\n * If true, the user can exceed the maximum number of attempts.\n */\n canExceedAttempts: boolean;\n\n /**\n * After attemptsAfterTeacherInterventionNeeded incorrect attempts, retry button will be disabled in class, move ahead button will show ouside class.\n */\n attemptsAfterTeacherInterventionNeeded?: number;\n /**\n * If the worksheet minimumAccuracy is not met, on clicking the final submit button, onMinimumAccuracyNotMet will be called.\n */\n minimumAccuracy: number;\n /**\n * Label for the check button\n * For example,\n * - \"Check\" for Checking the answer\n * - \"Submit\" for Submitting the answer when doing assessment\n */\n checkButtonLabel: string;\n /**\n * If attempt is incorrect, we show retry button, this is the label for the retry button\n * For example,\n * - 'Try Again' for retrying the question\n */\n retryButtonLabel: string;\n /**\n * If true show demos calculator https://www.desmos.com/calculator\n */\n canShowDesmosCalc: boolean;\n\n // If true, canvas is enabled and user can use canvas to scribble on the worksheet by toggling the scribble button\n canvasEnabled?: boolean;\n\n // If true, the user can scribble on workheet\n canScribble?: boolean;\n}\n\nexport type TWORKSHEET_QUESTION_MEDIA_TYPE = 'SIMULATION' | 'VIDEO' | 'AUDIO';\n\nexport interface IWorksheetCallbackProps {\n onResponseChange?: (options: {\n responseId: string;\n response: IWorksheetResponse;\n isNewAttempt: boolean;\n question: IWorksheetQuestion;\n }) => void;\n onBulkResponsesChange?: (responses: Record<string, IWorksheetResponse>) => void;\n onResponsesChange?: (responses: Record<string, IWorksheetResponse>) => void;\n onMediaStateChange?: (\n question: IWorksheetQuestion,\n mediaType: TWORKSHEET_QUESTION_MEDIA_TYPE,\n mediaState: Record<string, unknown>,\n ) => void;\n onTeacherValidation?: (questionId: string, rating?: keyof typeof QUESTIONS_RATING) => void;\n onAllowRetry?: (questionId: string) => void;\n onOptionalItemAssignment?: (itemType: TItemType) => void;\n onOptionalItemSkip?: (itemType: TItemType) => void;\n onHelp?: (options: { questionId: string; questionNumber: string }) => void;\n onMinimumAccuracyNotMet?: (accuracy: number) => void;\n onExitTicketStart?: () => void;\n onExitTicketSubmit?: () => void;\n onSubmit?: (\n responses: Record<string, IWorksheetResponse>,\n questions: IWorksheetQuestion[],\n ) => void;\n onActiveQuestionChange?: (question: IWorksheetQuestion) => void;\n onResolveDoubt?: (responseId: string) => void;\n onSkip?: (itemIndex: number, widgetIndex: number) => void;\n onLoaded: () => void;\n onErrored: (error: { code?: number; message: string }) => void;\n onResponsesLoaded?: (responses: Record<string, IWorksheetResponse>) => void;\n openQuestionFeedbackModal?: (itemRef: string) => void;\n}\n\ninterface ICueCanvasCallbackProps {\n onPublishStrokes?: TPublish;\n onReceiveStrokes?: TSubscribe;\n}\n\ninterface ICueCanvasProps {\n initialStrokesData?: Record<string, IActionData[]>;\n}\n\ninterface IPointerSyncCallbackProps {\n onPublishMouseMove?: TPublishMouseMove;\n onSubscribeMouseMove?: TSubscribeMouseMove;\n}\n\nexport interface IWorksheetLayout {\n containerStyle: 'none' | 'card';\n navigationBar: 'none' | 'top' | 'bottom';\n actionBar: 'none' | 'bottom';\n containerWidth: string;\n topOffset: number; // Offset from the top of the screen, for eg: height of the header\n questionsScrollable: boolean;\n minQuestionHeight: string | number;\n minSummaryHeight: string | number;\n showUserPointer?: boolean;\n renderQuestionHeader?: boolean;\n imageHue?: THueNames;\n background?: 'none' | 'paper';\n questionPadding: number;\n}\n\nexport interface ISubjectiveSheetProps {\n onAddReviewComment?: (\n responseId: string,\n commentData: {\n score: ILearnosityQuestionScore;\n teacherReview: ITeacherReview;\n },\n ) => void;\n openImagesReviewModal?: (props: IOpenImageReviewModalProps) => void;\n handleReviewSubmit?: () => void;\n isSubmittingReview?: boolean;\n isReviewPending?: boolean;\n}\n\ninterface IBaseWorksheetProps {\n userType: TUserTypes;\n userId: string;\n studentId: string;\n studentName?: string;\n worksheetName: string;\n initialResponseId?: string;\n initialItemIndex?: number;\n layout: IWorksheetLayout;\n updatedResponses?: Record<string, IWorksheetResponse>;\n worksheetCompleted: boolean;\n showNudgeBanner?: boolean;\n markedAsCompleted?: boolean;\n canResolveDoubt?: boolean;\n canShowActionBar?: boolean;\n actionBarRightElement?: ReactElement; // Extra Elements to be rendered in the action bar\n attemptId?: string;\n itemsSignedRequest: string;\n questionsSignedRequest: string;\n summaryDescription?: ReactElement | null;\n canSubmitWorksheet?: boolean;\n subjectiveProps?: ISubjectiveSheetProps;\n inClass?: boolean; // If true, the worksheet is rendered inside class\n activityType: EWorksheetActivity | null;\n isDesmosEnabled?: boolean; // If true, the worksheet can show desmos calculator\n nodeType: TNodeTypes; // NodeType of the worksheet\n mode: 'resume' | 'review' | 'preview'; // mode of the worksheet\n loggerRef: MutableRefObject<(eventName: string, data?: Record<string, unknown>) => void>;\n}\n\ninterface IWorksheetPlugins {\n plugins?: {\n stickers?: ReactNode;\n };\n}\n\ninterface IUpdateImages {\n filteredImages: string[];\n newImages: IFile[];\n}\ninterface IOpenImageReviewModalProps {\n isReviewed?: boolean;\n disableScoreForm?: boolean;\n imageUrls?: string[];\n filteredImageUrls?: (props: IUpdateImages) => void;\n uploadedImages?: (IFile | string)[];\n image?: string;\n}\n\nexport interface IWorksheetProps\n extends IBaseWorksheetProps,\n IWorksheetCallbackProps,\n ICueCanvasProps,\n ICueCanvasCallbackProps,\n IPointerSyncCallbackProps,\n IWorksheetPlugins {}\n\nexport interface IWorksheetRef {\n validateQuestion: (\n responseId: string,\n rating?: keyof typeof QUESTIONS_RATING,\n skipRemainingQuestions?: boolean,\n ) => void;\n assignOptionalItems: (itemType: TItemType) => void;\n skipOptionalItems: (itemType: TItemType) => void;\n updateMediaState: (\n responseId: string,\n mediaType: TWORKSHEET_QUESTION_MEDIA_TYPE,\n mediaState: Record<string, unknown>,\n ) => void;\n allowRetry: (responseId: string) => void;\n}\n\ninterface IWorksheetHeaderLayoutArgs {\n isPuzzleWorksheet?: boolean;\n isTestWorksheet?: boolean;\n imageHue?: THueNames;\n}\n\nexport interface IWorksheetHeaderLayoutProps {\n (args: IWorksheetHeaderLayoutArgs): {\n bgColor: TColorNames;\n borderColor?: TColorNames;\n textColor?: TColorNames;\n };\n}\n\nexport type TWorksheetStoreProps = Omit<\n IBaseWorksheetProps,\n 'studentName' | 'canShowActionBar' | 'itemsSignedRequest' | 'mode'\n> &\n Required<Pick<IBaseWorksheetProps, 'studentName' | 'canShowActionBar'>> &\n Omit<IWorksheetCallbackProps, 'onLoaded' | 'onErrored'> &\n ICueCanvasProps &\n ICueCanvasCallbackProps &\n IPointerSyncCallbackProps &\n IWorksheetPlugins & {\n behavior: IWorksheetBehavior;\n learnosityItems: ILearnosityItem[];\n learnosityResponses?: Record<string, IWorksheetResponse>;\n learnosity: ILearnosity;\n appendedQuestionIds: string[];\n };\n\nexport enum EActiveQuestionTool {\n TEACHING_TOOLS = 'TEACHING_TOOLS',\n SOLUTION = 'SOLUTION',\n DISCUSSION = 'DISCUSSION',\n}\n\nexport interface IWorksheetStoreState {\n questions: IWorksheetQuestion[];\n renderableQuestions: IWorksheetQuestion[];\n responses: Record<string, IWorksheetResponse>;\n lastUnlockedQuestionIndex: number;\n initialQuestionId: string;\n activeQuestionId: string;\n activeQuestionIndex: number;\n questionsContainerWidth: number;\n maxQuestionWidth: number;\n actionbarHeight: number;\n summaryVisible: boolean;\n calculatorVisible: boolean;\n scribblingEnabled: boolean;\n activeQuestionTool?: EActiveQuestionTool;\n blocker?: TWorksheetBlocker;\n scrolledToInitialQuestion: boolean;\n}\n\n// Actions interface - contains all the methods\ninterface IWorksheetStoreActions {\n mergeWorksheetProps: (data: TWorksheetStoreProps) => void;\n setResponses: (\n responses:\n | IWorksheetStore['responses']\n | ((prevResponses: IWorksheetStore['responses']) => IWorksheetStore['responses']),\n ) => void;\n showSummary: () => void;\n hideSummary: () => void;\n toggleSummary: () => void;\n toggleCalculator: () => void;\n toggleScribble: () => void;\n setBlocker: (blocker?: TWorksheetBlocker) => void;\n /**\n *\n * @param scrollToLastUnlockedQuestion - If true, scrolls to the last unlocked question after removing the blocker. Default is true.\n * @returns\n */\n removeBlocker: (scrollToLastUnlockedQuestion?: boolean) => void;\n updateResponse: (options: {\n responseId: string;\n response: ILearnosityQuestionResponse;\n score: ILearnosityQuestionScore;\n timeSpent: number;\n answerChecked?: boolean;\n }) => void;\n updateMediaState: (\n responseId: string,\n mediaType: TWORKSHEET_QUESTION_MEDIA_TYPE,\n mediaState: Record<string, unknown>,\n ) => void;\n setDiscussionQuestionOffset: (responseId: string, offset: number) => void;\n markForReview: (responseId: string, markedForReview: boolean) => void;\n changeQuestion: (questionId: string, shouldScroll?: boolean, scrollDelay?: number) => void;\n setActiveQuestionTool: (tool: EActiveQuestionTool) => void;\n unsetActiveQuestionTool: () => void;\n destroy: () => void;\n}\n\n// Combined store interface\nexport interface IWorksheetStore\n extends IWorksheetStoreState,\n TWorksheetStoreProps,\n IWorksheetStoreActions {}\n"],"names":["QUESTION_TAGS","QUESTIONS_RATING","EActiveQuestionTool"],"mappings":"AASY,IAAAA,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,gBAAgB,iBAFNA,IAAAA,KAAA,CAAA,CAAA,GAKAC,sBAAAA,OACVA,EAAAA,EAAA,IAAI,CAAJ,IAAA,KACAA,EAAAA,EAAA,IAAI,CAAJ,IAAA,KACAA,EAAAA,EAAA,IAAI,CAAJ,IAAA,KAHUA,IAAAA,KAAA,CAAA,CAAA,GAujBAC,sBAAAA,OACVA,EAAA,iBAAiB,kBACjBA,EAAA,WAAW,YACXA,EAAA,aAAa,cAHHA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"worksheet-types.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-types.ts"],"sourcesContent":["import type { MutableRefObject, ReactElement, ReactNode } from 'react';\n\nimport type { EWorksheetActivity, TNodeTypes } from '../../../types/models/worksheet';\nimport type { IActionData, TPublish, TSubscribe } from '../../cue-canvas/types/cue-canvas';\nimport type { TPublishMouseMove, TSubscribeMouseMove } from '../../pointer-sync/pointer-types';\nimport type { TColorNames, THueNames, TUserTypes } from '../../ui/types';\nimport type { IFile } from './worksheet-question/subjective-review';\nimport type { TWorksheetBlocker } from './worksheet-blocker/worksheet-blocker-types';\n\nexport enum QUESTION_TAGS {\n TRIAL_TOPIC = 'trial-topic',\n QUESTION_CODE = 'question code',\n}\n\nexport enum QUESTIONS_RATING {\n E = 3,\n S = 2, // Just right\n H = 1,\n}\n\nexport interface ILearnosityError {\n code: number;\n consumerKey: string;\n detail: string;\n errorUI: string;\n msg: string;\n}\n\ninterface ILearnosityQuestionMetadata {\n widget_reference: string;\n sheet_reference: string;\n acknowledgements?: string;\n sample_answer?: string;\n hints?: string[];\n solution?: string[];\n teacher_tips?: string[];\n valid_response_count: number;\n source: {\n organisation_id: number;\n };\n}\n\nexport type TInstructorStimulus =\n | 'SystemIntro' // lesson v3\n | 'Intro' // lesson v3\n | 'Concept-Intro' // lesson v3\n | 'Instruction' // lesson v3\n | 'Task' // lesson v3\n | 'Try' // trial v3\n | 'Learn' // trial v3\n | 'Apply'; // trial v3\n\nexport type TItemType =\n | 'overview'\n | 'learning'\n | 'learning-we-do'\n | 'learning-your-turn'\n | 'learning-explore'\n | 'practice'\n | 'practice-basic'\n | 'practice-basic-optional'\n | 'practice-regular'\n | 'practice-regular-optional'\n | 'exit-ticket'\n | 'advanced-we-do'\n | 'advanced-your-turn'\n | 'advanced-explore'\n | 'advanced-practice';\n\nexport type TSectionName =\n | 'overview'\n | 'learning'\n | 'practice'\n | 'practice-basic'\n | 'practice-regular'\n | 'exit-ticket'\n | 'advanced';\n\ninterface IQuestionValidResponse {\n score: number;\n value: unknown[];\n}\n\nexport interface ISheetNudgeBannerInfo {\n bannerBackgroundColor: TColorNames;\n label: string;\n}\n\nexport interface ILearnosityQuestion {\n response_id: string;\n instructor_stimulus?: TInstructorStimulus;\n metadata: ILearnosityQuestionMetadata;\n instant_feedback?: boolean;\n math_renderer?: string;\n template?: string;\n tokenization?: string;\n numberPad?: string[];\n symbols?: unknown[];\n response_container?: Record<string, unknown>;\n ui_style?: Record<string, unknown>;\n shuffle_options?: boolean;\n // for custom type question validation is undefined.\n validation?: {\n scoring_type?: string;\n unscored?: boolean;\n valid_response?: IQuestionValidResponse;\n alt_responses?: IQuestionValidResponse[];\n penalty?: number;\n min_score_if_attempted?: number;\n };\n is_math?: boolean;\n labels?: Record<string, unknown>;\n line?: Record<string, unknown>;\n points?: string[];\n snap_to_ticks?: boolean;\n ticks?: Record<string, unknown>;\n max_length?: number;\n type:\n | 'hotspot'\n | 'tokenhighlight'\n | 'numberline'\n | 'clozeassociation'\n | 'clozetext'\n | 'association'\n | 'classification'\n | 'clozedropdown'\n | 'clozeformula'\n | 'mcq'\n | 'choicematrix'\n | 'plaintext'\n | 'drawing';\n case_sensitive?: boolean;\n show_copy?: boolean;\n show_cut?: boolean;\n show_paste?: boolean;\n spellcheck?: boolean;\n stimulus?: string;\n stimulus_review?: string;\n stimulus_list?: string[];\n image?: Record<string, unknown>;\n areas?: unknown[];\n area_attributes?: Record<string, unknown>;\n possible_responses?: string[][] | string[];\n duplicate_responses?: boolean;\n response_containers?: unknown[];\n options?: Record<string, unknown>[] | string[];\n feedback_attempts?: number;\n stems?: string[];\n multiple_responses?: boolean;\n}\n\nexport interface ILearnosityItem {\n reference: string;\n questions: ILearnosityQuestion[];\n source: Record<string, unknown>;\n content: string;\n metadata: Record<string, unknown> | unknown[];\n workflow: unknown[];\n response_ids: string[];\n feature_ids: unknown[];\n features: unknown[];\n itemType?: TItemType;\n tags?: string[];\n}\n\nexport interface IWorksheetQuestion extends ILearnosityQuestion {\n item_reference: string;\n item_type?: TItemType;\n section_name?: TSectionName;\n is_optional?: boolean;\n /**\n * If true, the question is not a question, but a content only item\n * e.g. Intro, Overview, Instruction etc.\n */\n is_non_question?: boolean;\n concept_intro_stimulus?: string; // Content for concept intro widget\n item_tags: string[];\n item_tags_map: Record<string, string>;\n item_number: number;\n item_display_number: number;\n question_number: number;\n total_questions: number;\n /**\n * if true, scribbler button will be shown on the question\n */\n can_scribble: boolean; // If true, the question can be scribbled on\n}\n\nexport interface ILearnosityQuestionScore {\n score?: number | null;\n max_score: number;\n unscored?: boolean;\n}\n\nexport interface ILearnosityQuestionResponse {\n value: unknown;\n responses?: unknown;\n type: unknown;\n updatedFormat?: boolean;\n wordCount?: number;\n apiVersion: string;\n revision: number;\n feedbackAttemptsCount?: number;\n}\n\ninterface IAttempt {\n response: ILearnosityQuestionResponse;\n score: ILearnosityQuestionScore;\n}\n\ninterface ITeacherReview {\n reviewComment?: string;\n images?: string[];\n}\nexport interface IWorksheetResponse {\n widgetReference: string;\n itemReference: string;\n itemPosition: number; // 0 based\n questionPosition: number; // 0 based\n isOkayTypeQuestion: boolean;\n response?: ILearnosityQuestionResponse;\n /**\n * For non question questions, when user click on start, responseGiven will be true\n */\n responseGiven?: boolean;\n retryEnabled?: boolean;\n simState?: Record<string, unknown>;\n score?: ILearnosityQuestionScore;\n responseEdited?: boolean;\n hintsUsed?: number;\n markedForReview?: boolean;\n attemptsHistory?: IAttempt[];\n validatedByTeacher?: boolean;\n submittedByStudent?: boolean;\n assignStatus?: 'assigned' | 'skipped';\n rating?: number;\n skipped?: boolean;\n doubtResolved?: boolean;\n teacherReview?: ITeacherReview;\n tags?: Record<string, string>;\n timeSpent?: number;\n discussionQuestionOffset?: number;\n}\n\ntype TMathRenderer = 'mathjax' | 'mathquill';\nexport interface ILearnosity {\n ready: () => void;\n questions: () => Record<string, unknown>;\n question: (responseId: string) =>\n | {\n enable: () => boolean;\n disable: () => boolean;\n getQuestion: () => ILearnosityQuestion;\n getMetadata: () => ILearnosityQuestionMetadata;\n getResponse: () => ILearnosityQuestionResponse;\n getScore: (\n callback?: (score: ILearnosityQuestionScore | null) => void,\n ) => ILearnosityQuestionScore;\n validate: (\n options?: { showCorrectAnswers?: boolean; feedbackAttempts?: boolean },\n callback?: () => void,\n ) => void;\n resetValidationUI: () => void;\n on: (eventName: 'changed', callback: () => void) => void;\n off: (eventName: 'changed', callback?: () => void) => void;\n }\n | undefined;\n append: (toAppend: {\n questions: ILearnosityQuestion[];\n responses?: Record<string, unknown>;\n }) => void;\n appendQuestion: (toAppend: {\n questions: ILearnosityQuestion[];\n responses?: Record<string, unknown>;\n }) => void;\n reset: () => void;\n renderMath: (renderer: TMathRenderer) => void;\n}\n\nexport interface IWorksheetBehavior {\n /**\n * If true, Opens the worksheet in resume mode.\n * - If false, Opens the worksheet in review mode.\n */\n canAttempt: boolean;\n /**\n * If true, the user can mark the question for review.\n */\n canMarkForReview: boolean;\n /**\n * The mode of navigation for the worksheet.\n * - `OPEN` mode allows the user to navigate to any question in the worksheet.\n * - `LINEAR` mode allows the user to navigate to the next question only.\n * - `ADAPTIVE` mode allows the user to navigate future questions based on the rating of the current question.\n * - `CURRENT` mode allows the user to navigate to the current question only. Back and forth not allowed.\n */\n navigationMode: 'OPEN' | 'LINEAR' | 'ADAPTIVE' | 'CURRENT';\n /**\n * The initial question to display when the worksheet is loaded.\n * - `FIRST` mode displays the first question in the worksheet.\n * - `CURRENT` mode displays the question that the user was last on.\n */\n initialQuestion: 'FIRST' | 'CURRENT';\n /**\n * If hints are available, on clicking the help button, first availble hint will be shown.\n * Clicking again will show the next hint.\n * If no more hints are available, onHelp will be called.\n */\n hints: boolean;\n /**\n * The time in seconds after which the hints button will be shown.\n */\n hintsTimer?: number; // in seconds\n /**\n * If true, the user can skip the question without attempting it.\n * Skip button will be shown only after the hints are exausted and skipTimer is reached.\n */\n skippable?: boolean;\n /**\n * The time in seconds after which the user can skip the question.\n */\n skippableTime?: number; // in seconds\n /**\n * If true, after the question is system validated, teacher discussion button will be shown when the question has discussion points.\n */\n teacherDiscussionEnabled?: boolean;\n /**\n * If true, teacher validation is needed for the question to proceed\n */\n teacherValidationEnabled: boolean;\n /**\n * If worksheet is attempting outside the class setting\n * This needs teacherValidationEnabled to be true\n * TODO: Consider changing to accept validation type: 'system' | 'teacher' | undefined instead of boolean\n */\n canTeacherValidate: boolean;\n /**\n * If true, questions will be validated and feedback will be shown.\n */\n validation: boolean;\n /**\n * If true, solution wont be shown to the user.\n */\n solutionHidden?: boolean;\n /**\n * If true, questions will be validated and feedback will be shown along with the correct answer.\n */\n review: boolean;\n /**\n * The maximum number of attempts allowed for each question.\n * 0 means unlimited attempts.\n * -1 means attempts will not be validated, hence not pushed to attempt history.\n * -2 means the sheet is a puzzle sheet\n * After reaching the maximum number of attempts, the user cannot attempt the question anymore.\n * If maxAtttmpts reached and canExceedAttempts is true, the user can still attempt the question\n * , also user will have the option to move to next question\n */\n maximumAttempts: number;\n /**\n * If true, the user can exceed the maximum number of attempts.\n */\n canExceedAttempts: boolean;\n\n /**\n * After attemptsAfterTeacherInterventionNeeded incorrect attempts, retry button will be disabled in class, move ahead button will show ouside class.\n */\n attemptsAfterTeacherInterventionNeeded?: number;\n /**\n * If the worksheet minimumAccuracy is not met, on clicking the final submit button, onMinimumAccuracyNotMet will be called.\n */\n minimumAccuracy: number;\n /**\n * Label for the check button\n * For example,\n * - \"Check\" for Checking the answer\n * - \"Submit\" for Submitting the answer when doing assessment\n */\n checkButtonLabel: string;\n /**\n * If attempt is incorrect, we show retry button, this is the label for the retry button\n * For example,\n * - 'Try Again' for retrying the question\n */\n retryButtonLabel: string;\n /**\n * If true show demos calculator https://www.desmos.com/calculator\n */\n canShowDesmosCalc: boolean;\n\n // If true, canvas is enabled and user can use canvas to scribble on the worksheet by toggling the scribble button\n canvasEnabled?: boolean;\n\n // If true, the user can scribble on workheet\n canScribble?: boolean;\n}\n\nexport type TWORKSHEET_QUESTION_MEDIA_TYPE = 'SIMULATION' | 'VIDEO' | 'AUDIO';\n\nexport interface IWorksheetCallbackProps {\n onResponseChange?: (options: {\n responseId: string;\n response: IWorksheetResponse;\n isNewAttempt: boolean;\n question: IWorksheetQuestion;\n }) => void;\n onBulkResponsesChange?: (responses: Record<string, IWorksheetResponse>) => void;\n onResponsesChange?: (responses: Record<string, IWorksheetResponse>) => void;\n onMediaStateChange?: (\n question: IWorksheetQuestion,\n mediaType: TWORKSHEET_QUESTION_MEDIA_TYPE,\n mediaState: Record<string, unknown>,\n ) => void;\n onTeacherValidation?: (questionId: string, rating?: keyof typeof QUESTIONS_RATING) => void;\n onAllowRetry?: (questionId: string) => void;\n onOptionalItemAssignment?: (itemType: TItemType) => void;\n onOptionalItemSkip?: (itemType: TItemType) => void;\n onHelp?: (options: { questionId: string; questionNumber: string }) => void;\n onMinimumAccuracyNotMet?: (accuracy: number) => void;\n onExitTicketStart?: () => void;\n onExitTicketSubmit?: () => void;\n onSubmit?: (\n responses: Record<string, IWorksheetResponse>,\n questions: IWorksheetQuestion[],\n ) => void;\n onActiveQuestionChange?: (question: IWorksheetQuestion) => void;\n onResolveDoubt?: (responseId: string) => void;\n onSkip?: (itemIndex: number, widgetIndex: number) => void;\n onLoaded: () => void;\n onErrored: (error: { code?: number; message: string }) => void;\n onResponsesLoaded?: (responses: Record<string, IWorksheetResponse>) => void;\n openQuestionFeedbackModal?: (itemRef: string) => void;\n}\n\ninterface ICueCanvasCallbackProps {\n onPublishStrokes?: TPublish;\n onReceiveStrokes?: TSubscribe;\n}\n\ninterface ICueCanvasProps {\n initialStrokesData?: Record<string, IActionData[]>;\n}\n\ninterface IPointerSyncCallbackProps {\n onPublishMouseMove?: TPublishMouseMove;\n onSubscribeMouseMove?: TSubscribeMouseMove;\n}\n\nexport interface IWorksheetLayout {\n containerStyle: 'none' | 'card';\n navigationBar: 'none' | 'top' | 'bottom';\n actionBar: 'none' | 'bottom';\n containerWidth: string;\n topOffset: number; // Offset from the top of the screen, for eg: height of the header\n questionsScrollable: boolean;\n minQuestionHeight: string | number;\n minSummaryHeight: string | number;\n showUserPointer?: boolean;\n renderQuestionHeader?: boolean;\n imageHue?: THueNames;\n background?: 'none' | 'paper';\n questionPadding: number;\n}\n\nexport interface ISubjectiveSheetProps {\n onAddReviewComment?: (\n responseId: string,\n commentData: {\n score: ILearnosityQuestionScore;\n teacherReview: ITeacherReview;\n },\n ) => void;\n openImagesReviewModal?: (props: IOpenImageReviewModalProps) => void;\n handleReviewSubmit?: () => void;\n isSubmittingReview?: boolean;\n isReviewPending?: boolean;\n}\n\ninterface IBaseWorksheetProps {\n userType: TUserTypes;\n userId: string;\n studentId: string;\n studentName?: string;\n worksheetName: string;\n initialResponseId?: string;\n initialItemIndex?: number;\n layout: IWorksheetLayout;\n updatedResponses?: Record<string, IWorksheetResponse>;\n worksheetCompleted: boolean;\n showNudgeBanner?: boolean;\n markedAsCompleted?: boolean;\n canResolveDoubt?: boolean;\n actionBarRightElement?: ReactElement; // Extra Elements to be rendered in the action bar\n attemptId?: string;\n itemsSignedRequest: string;\n questionsSignedRequest: string;\n summaryDescription?: ReactElement | null;\n canSubmitWorksheet?: boolean;\n subjectiveProps?: ISubjectiveSheetProps;\n inClass?: boolean; // If true, the worksheet is rendered inside class\n activityType: EWorksheetActivity | null;\n isDesmosEnabled?: boolean; // If true, the worksheet can show desmos calculator\n nodeType: TNodeTypes; // NodeType of the worksheet\n mode: 'resume' | 'review' | 'preview'; // mode of the worksheet\n loggerRef: MutableRefObject<(eventName: string, data?: Record<string, unknown>) => void>;\n}\n\ninterface IWorksheetPlugins {\n plugins?: {\n stickers?: ReactNode;\n };\n}\n\ninterface IUpdateImages {\n filteredImages: string[];\n newImages: IFile[];\n}\ninterface IOpenImageReviewModalProps {\n isReviewed?: boolean;\n disableScoreForm?: boolean;\n imageUrls?: string[];\n filteredImageUrls?: (props: IUpdateImages) => void;\n uploadedImages?: (IFile | string)[];\n image?: string;\n}\n\nexport interface IWorksheetProps\n extends IBaseWorksheetProps,\n IWorksheetCallbackProps,\n ICueCanvasProps,\n ICueCanvasCallbackProps,\n IPointerSyncCallbackProps,\n IWorksheetPlugins {}\n\nexport interface IWorksheetRef {\n validateQuestion: (\n responseId: string,\n rating?: keyof typeof QUESTIONS_RATING,\n skipRemainingQuestions?: boolean,\n ) => void;\n assignOptionalItems: (itemType: TItemType) => void;\n skipOptionalItems: (itemType: TItemType) => void;\n updateMediaState: (\n responseId: string,\n mediaType: TWORKSHEET_QUESTION_MEDIA_TYPE,\n mediaState: Record<string, unknown>,\n ) => void;\n allowRetry: (responseId: string) => void;\n}\n\ninterface IWorksheetHeaderLayoutArgs {\n isPuzzleWorksheet?: boolean;\n isTestWorksheet?: boolean;\n imageHue?: THueNames;\n}\n\nexport interface IWorksheetHeaderLayoutProps {\n (args: IWorksheetHeaderLayoutArgs): {\n bgColor: TColorNames;\n borderColor?: TColorNames;\n textColor?: TColorNames;\n };\n}\n\nexport type TWorksheetStoreProps = Omit<\n IBaseWorksheetProps,\n 'studentName' | 'itemsSignedRequest' | 'mode'\n> &\n Required<Pick<IBaseWorksheetProps, 'studentName'>> &\n Omit<IWorksheetCallbackProps, 'onLoaded' | 'onErrored'> &\n ICueCanvasProps &\n ICueCanvasCallbackProps &\n IPointerSyncCallbackProps &\n IWorksheetPlugins & {\n behavior: IWorksheetBehavior;\n learnosityItems: ILearnosityItem[];\n learnosityResponses?: Record<string, IWorksheetResponse>;\n learnosity: ILearnosity;\n appendedQuestionIds: string[];\n };\n\nexport enum EActiveQuestionTool {\n TEACHING_TOOLS = 'TEACHING_TOOLS',\n SOLUTION = 'SOLUTION',\n DISCUSSION = 'DISCUSSION',\n}\n\nexport interface IWorksheetStoreState {\n questions: IWorksheetQuestion[];\n renderableQuestions: IWorksheetQuestion[];\n responses: Record<string, IWorksheetResponse>;\n lastUnlockedQuestionIndex: number;\n initialQuestionId: string;\n activeQuestionId: string;\n activeQuestionIndex: number;\n questionsContainerWidth: number;\n maxQuestionWidth: number;\n actionbarHeight: number;\n summaryVisible: boolean;\n calculatorVisible: boolean;\n scribblingEnabled: boolean;\n activeQuestionTool?: EActiveQuestionTool;\n blocker?: TWorksheetBlocker;\n scrolledToInitialQuestion: boolean;\n}\n\n// Actions interface - contains all the methods\ninterface IWorksheetStoreActions {\n mergeWorksheetProps: (data: TWorksheetStoreProps) => void;\n setResponses: (\n responses:\n | IWorksheetStore['responses']\n | ((prevResponses: IWorksheetStore['responses']) => IWorksheetStore['responses']),\n ) => void;\n showSummary: () => void;\n hideSummary: () => void;\n toggleSummary: () => void;\n toggleCalculator: () => void;\n toggleScribble: () => void;\n setBlocker: (blocker?: TWorksheetBlocker) => void;\n /**\n *\n * @param scrollToLastUnlockedQuestion - If true, scrolls to the last unlocked question after removing the blocker. Default is true.\n * @returns\n */\n removeBlocker: (scrollToLastUnlockedQuestion?: boolean) => void;\n updateResponse: (options: {\n responseId: string;\n response: ILearnosityQuestionResponse;\n score: ILearnosityQuestionScore;\n timeSpent: number;\n answerChecked?: boolean;\n }) => void;\n updateMediaState: (\n responseId: string,\n mediaType: TWORKSHEET_QUESTION_MEDIA_TYPE,\n mediaState: Record<string, unknown>,\n ) => void;\n setDiscussionQuestionOffset: (responseId: string, offset: number) => void;\n markForReview: (responseId: string, markedForReview: boolean) => void;\n changeQuestion: (questionId: string, shouldScroll?: boolean, scrollDelay?: number) => void;\n setActiveQuestionTool: (tool: EActiveQuestionTool) => void;\n unsetActiveQuestionTool: () => void;\n destroy: () => void;\n}\n\n// Combined store interface\nexport interface IWorksheetStore\n extends IWorksheetStoreState,\n TWorksheetStoreProps,\n IWorksheetStoreActions {}\n"],"names":["QUESTION_TAGS","QUESTIONS_RATING","EActiveQuestionTool"],"mappings":"AASY,IAAAA,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,gBAAgB,iBAFNA,IAAAA,KAAA,CAAA,CAAA,GAKAC,sBAAAA,OACVA,EAAAA,EAAA,IAAI,CAAJ,IAAA,KACAA,EAAAA,EAAA,IAAI,CAAJ,IAAA,KACAA,EAAAA,EAAA,IAAI,CAAJ,IAAA,KAHUA,IAAAA,KAAA,CAAA,CAAA,GAsjBAC,sBAAAA,OACVA,EAAA,iBAAiB,kBACjBA,EAAA,WAAW,YACXA,EAAA,aAAa,cAHHA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -1,42 +1,41 @@
1
1
  import { jsxs as h, Fragment as W, jsx as t } from "react/jsx-runtime";
2
- import { memo as x, forwardRef as V, useEffect as u } from "react";
3
- import B from "../../ui/layout/flex-view.js";
4
- import A from "../user-pointer-pin/user-pin.js";
5
- import { TOP_NAVIGATION_HEIGHT as H } from "./constants.js";
6
- import _ from "./hooks/use-create-imperative-handle.js";
7
- import N from "./hooks/use-time-on-questions.js";
8
- import { useWorksheetStore as q } from "./hooks/use-worksheet-store.js";
2
+ import { memo as V, forwardRef as w, useEffect as u } from "react";
3
+ import S from "../../ui/layout/flex-view.js";
4
+ import H from "../user-pointer-pin/user-pin.js";
5
+ import { TOP_NAVIGATION_HEIGHT as _ } from "./constants.js";
6
+ import N from "./hooks/use-create-imperative-handle.js";
7
+ import q from "./hooks/use-time-on-questions.js";
8
+ import { useWorksheetStore as B } from "./hooks/use-worksheet-store.js";
9
9
  import O from "./worksheet-action-bar/worksheet-action-bar.js";
10
- import j from "./worksheet-blocker/worksheet-blocker.js";
11
- import P from "./worksheet-calculator/worksheet-calculator.js";
12
- import R from "./worksheet-navigation/worksheet-navigation.js";
13
- import D from "./worksheet-nudge-banner/worksheet-nudge-banner.js";
14
- import F from "./worksheet-questions-controller/worksheet-questions-controller.js";
15
- import G from "./worksheet-questions-tools/worksheet-questions-tools.js";
16
- import U from "./worksheet-questions/worksheet-questions.js";
17
- import { WorksheetContainer as X, NavigationContainer as z, NavigationWrapper as J, ActionbarContainer as K } from "./worksheet-styled.js";
18
- import L from "./worksheet-summary-controller/worksheet-summary-controller.js";
19
- import M from "./worksheet-teaching-tools/worksheet-teaching-tools.js";
20
- const be = x(
21
- V((Y, k) => {
10
+ import A from "./worksheet-blocker/worksheet-blocker.js";
11
+ import j from "./worksheet-calculator/worksheet-calculator.js";
12
+ import P from "./worksheet-navigation/worksheet-navigation.js";
13
+ import R from "./worksheet-nudge-banner/worksheet-nudge-banner.js";
14
+ import D from "./worksheet-questions-controller/worksheet-questions-controller.js";
15
+ import F from "./worksheet-questions-tools/worksheet-questions-tools.js";
16
+ import G from "./worksheet-questions/worksheet-questions.js";
17
+ import { WorksheetContainer as U, NavigationContainer as X, NavigationWrapper as z, ActionbarContainer as J } from "./worksheet-styled.js";
18
+ import K from "./worksheet-summary-controller/worksheet-summary-controller.js";
19
+ import L from "./worksheet-teaching-tools/worksheet-teaching-tools.js";
20
+ const Te = V(
21
+ w((M, k) => {
22
22
  const {
23
23
  behavior: r,
24
24
  layout: C,
25
- actionbarHeight: c,
25
+ actionbarHeight: l,
26
26
  questionsContainerWidth: y,
27
- questions: w,
27
+ questions: I,
28
28
  responses: n,
29
29
  initialQuestionId: f,
30
- userType: l,
30
+ userType: c,
31
31
  summaryVisible: p,
32
32
  changeQuestion: s,
33
33
  onResponsesChange: d,
34
34
  onExitTicketStart: a,
35
35
  onExitTicketSubmit: m,
36
- canShowActionBar: I,
37
36
  lastUnlockedQuestionIndex: Q,
38
37
  activeQuestionTool: g
39
- } = q((e) => ({
38
+ } = B((e) => ({
40
39
  behavior: e.behavior,
41
40
  layout: e.layout,
42
41
  actionbarHeight: e.actionbarHeight,
@@ -50,11 +49,10 @@ const be = x(
50
49
  onResponsesChange: e.onResponsesChange,
51
50
  onExitTicketStart: e.onExitTicketStart,
52
51
  onExitTicketSubmit: e.onExitTicketSubmit,
53
- canShowActionBar: e.canShowActionBar,
54
52
  lastUnlockedQuestionIndex: e.lastUnlockedQuestionIndex,
55
53
  activeQuestionTool: e.activeQuestionTool
56
- })), { containerWidth: S, navigationBar: T, topOffset: v, showUserPointer: E = !0 } = C, o = w[Q], i = n[(o == null ? void 0 : o.response_id) ?? ""], b = N();
57
- return _(k, {
54
+ })), { containerWidth: v, navigationBar: T, topOffset: E, showUserPointer: $ = !0 } = C, o = I[Q], i = n[(o == null ? void 0 : o.response_id) ?? ""], b = q();
55
+ return N(k, {
58
56
  getTimeSpentOnQuestion: b
59
57
  }), u(() => {
60
58
  d && n && (console.log("WorksheetView - onResponsesChange - responses", n), d(n));
@@ -71,8 +69,8 @@ const be = x(
71
69
  }
72
70
  }, [o, r.teacherValidationEnabled, s]), u(() => {
73
71
  if (r.teacherValidationEnabled && o) {
74
- const { item_type: e, instructor_stimulus: $ } = o;
75
- l === "STUDENT" && e === "exit-ticket" && $ !== "SystemIntro" && (i != null && i.submittedByStudent ? m == null || m() : a == null || a());
72
+ const { item_type: e, instructor_stimulus: x } = o;
73
+ c === "STUDENT" && e === "exit-ticket" && x !== "SystemIntro" && (i != null && i.submittedByStudent ? m == null || m() : a == null || a());
76
74
  }
77
75
  }, [
78
76
  r.teacherValidationEnabled,
@@ -80,46 +78,46 @@ const be = x(
80
78
  i == null ? void 0 : i.submittedByStudent,
81
79
  a,
82
80
  m,
83
- l
81
+ c
84
82
  ]), /* @__PURE__ */ h(W, { children: [
85
- /* @__PURE__ */ t(D, {}),
86
- /* @__PURE__ */ h(X, { $background: "WHITE_1", $width: S, children: [
87
- T === "top" && /* @__PURE__ */ t(z, { $topOffset: v, $height: H, children: /* @__PURE__ */ t(J, { children: /* @__PURE__ */ t(R, { placement: "top" }) }) }),
83
+ /* @__PURE__ */ t(R, {}),
84
+ /* @__PURE__ */ h(U, { $background: "WHITE_1", $width: v, children: [
85
+ T === "top" && /* @__PURE__ */ t(X, { $topOffset: E, $height: _, children: /* @__PURE__ */ t(z, { children: /* @__PURE__ */ t(P, { placement: "top" }) }) }),
86
+ /* @__PURE__ */ t(A, {}),
87
+ $ && /* @__PURE__ */ t(H, {}),
88
88
  /* @__PURE__ */ t(j, {}),
89
- E && /* @__PURE__ */ t(A, {}),
90
- /* @__PURE__ */ t(P, {}),
91
89
  /* @__PURE__ */ h(
92
- K,
90
+ J,
93
91
  {
94
- $marginTop: l === "TEACHER" && p ? "0" : c,
95
- $height: c,
92
+ $marginTop: c === "TEACHER" && p ? "0" : l,
93
+ $height: l,
96
94
  children: [
97
- I && /* @__PURE__ */ t(
98
- B,
95
+ /* @__PURE__ */ t(
96
+ S,
99
97
  {
100
98
  $gutterX: 0.5,
101
99
  $flexDirection: p ? "row-reverse" : "row",
102
100
  $justifyContent: "space-between",
103
101
  $alignItems: "center",
104
102
  $width: y,
105
- $height: c,
106
- children: p ? /* @__PURE__ */ t(L, {}) : /* @__PURE__ */ h(W, { children: [
107
- /* @__PURE__ */ t(G, {}),
103
+ $height: l,
104
+ children: p ? /* @__PURE__ */ t(K, {}) : /* @__PURE__ */ h(W, { children: [
105
+ /* @__PURE__ */ t(F, {}),
108
106
  T === "bottom" && /* @__PURE__ */ t(O, {}),
109
- /* @__PURE__ */ t(F, { getTimeSpentOnQuestion: b })
107
+ /* @__PURE__ */ t(D, { getTimeSpentOnQuestion: b })
110
108
  ] })
111
109
  }
112
110
  ),
113
- g && /* @__PURE__ */ t(M, { tool: g })
111
+ g && /* @__PURE__ */ t(L, { tool: g })
114
112
  ]
115
113
  }
116
114
  ),
117
- /* @__PURE__ */ t(U, {})
115
+ /* @__PURE__ */ t(G, {})
118
116
  ] })
119
117
  ] });
120
118
  })
121
119
  );
122
120
  export {
123
- be as default
121
+ Te as default
124
122
  };
125
123
  //# sourceMappingURL=worksheet-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet-view.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-view.tsx"],"sourcesContent":["import { forwardRef, memo, useEffect } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport UserPointer from '../user-pointer-pin/user-pin';\nimport { TOP_NAVIGATION_HEIGHT } from './constants';\nimport useCreateImperativeHandle from './hooks/use-create-imperative-handle';\nimport useTimeSpentOnQuestions from './hooks/use-time-on-questions';\nimport { useWorksheetStore } from './hooks/use-worksheet-store';\n// import WorksheetActionBar from './worksheet-action-bar/worksheet-action-bar';\nimport WorksheetActionBar from './worksheet-action-bar/worksheet-action-bar';\nimport WorksheetBlocker from './worksheet-blocker/worksheet-blocker';\nimport WorksheetCalculator from './worksheet-calculator/worksheet-calculator';\nimport WorksheetNavigation from './worksheet-navigation/worksheet-navigation';\nimport WorksheetNudgeBanner from './worksheet-nudge-banner/worksheet-nudge-banner';\nimport WorksheetQuestionsController from './worksheet-questions-controller/worksheet-questions-controller';\nimport WorksheetQuestionsTools from './worksheet-questions-tools/worksheet-questions-tools';\nimport WorksheetQuestions from './worksheet-questions/worksheet-questions';\nimport * as Styled from './worksheet-styled';\nimport WorksheetSummaryController from './worksheet-summary-controller/worksheet-summary-controller';\nimport WorksheetTeachingTools from './worksheet-teaching-tools/worksheet-teaching-tools';\nimport { type IWorksheetRef } from './worksheet-types';\n\nconst WorksheetView = memo(\n forwardRef<IWorksheetRef>((_, ref) => {\n const {\n behavior,\n layout,\n actionbarHeight,\n questionsContainerWidth,\n questions,\n responses,\n initialQuestionId,\n userType,\n summaryVisible,\n changeQuestion,\n onResponsesChange,\n onExitTicketStart,\n onExitTicketSubmit,\n canShowActionBar,\n lastUnlockedQuestionIndex,\n activeQuestionTool,\n } = useWorksheetStore(store => ({\n behavior: store.behavior,\n layout: store.layout,\n actionbarHeight: store.actionbarHeight,\n questionsContainerWidth: store.questionsContainerWidth,\n questions: store.questions,\n responses: store.responses,\n initialQuestionId: store.initialQuestionId,\n userType: store.userType,\n summaryVisible: store.summaryVisible,\n changeQuestion: store.changeQuestion,\n onResponsesChange: store.onResponsesChange,\n onExitTicketStart: store.onExitTicketStart,\n onExitTicketSubmit: store.onExitTicketSubmit,\n canShowActionBar: store.canShowActionBar,\n lastUnlockedQuestionIndex: store.lastUnlockedQuestionIndex,\n activeQuestionTool: store.activeQuestionTool,\n }));\n const { containerWidth, navigationBar, topOffset, showUserPointer = true } = layout;\n const lastUnlockedQuestion = questions[lastUnlockedQuestionIndex];\n const lastUnlockedQuestionResponse = responses[lastUnlockedQuestion?.response_id ?? ''];\n // TODO: This can be moved to worksheet-store and optimized to avoid re-renders\n const getTimeSpentOnQuestion = useTimeSpentOnQuestions();\n\n useCreateImperativeHandle(ref, {\n getTimeSpentOnQuestion,\n });\n\n useEffect(() => {\n if (onResponsesChange && responses) {\n // eslint-disable-next-line no-console\n console.log('WorksheetView - onResponsesChange - responses', responses);\n onResponsesChange(responses);\n }\n }, [onResponsesChange, responses]);\n\n useEffect(() => {\n changeQuestion(initialQuestionId);\n }, [initialQuestionId, changeQuestion]);\n\n useEffect(() => {\n if (lastUnlockedQuestion && behavior.teacherValidationEnabled) {\n const timer = setTimeout(() => {\n changeQuestion(lastUnlockedQuestion.response_id);\n }, 1000);\n\n return () => {\n clearTimeout(timer);\n };\n }\n }, [lastUnlockedQuestion, behavior.teacherValidationEnabled, changeQuestion]);\n\n useEffect(() => {\n if (behavior.teacherValidationEnabled && lastUnlockedQuestion) {\n const { item_type, instructor_stimulus } = lastUnlockedQuestion;\n\n if (userType === 'STUDENT') {\n if (item_type === 'exit-ticket' && instructor_stimulus !== 'SystemIntro') {\n if (lastUnlockedQuestionResponse?.submittedByStudent) {\n onExitTicketSubmit?.();\n } else {\n onExitTicketStart?.();\n }\n }\n }\n }\n }, [\n behavior.teacherValidationEnabled,\n lastUnlockedQuestion,\n lastUnlockedQuestionResponse?.submittedByStudent,\n onExitTicketStart,\n onExitTicketSubmit,\n userType,\n ]);\n\n return (\n <>\n <WorksheetNudgeBanner />\n <Styled.WorksheetContainer $background=\"WHITE_1\" $width={containerWidth}>\n {navigationBar === 'top' && (\n <Styled.NavigationContainer $topOffset={topOffset} $height={TOP_NAVIGATION_HEIGHT}>\n <Styled.NavigationWrapper>\n <WorksheetNavigation placement=\"top\" />\n </Styled.NavigationWrapper>\n </Styled.NavigationContainer>\n )}\n <WorksheetBlocker />\n {showUserPointer && <UserPointer />}\n <WorksheetCalculator />\n <Styled.ActionbarContainer\n $marginTop={userType === 'TEACHER' && summaryVisible ? '0' : actionbarHeight}\n $height={actionbarHeight}\n >\n {canShowActionBar && (\n <FlexView\n $gutterX={0.5}\n $flexDirection={summaryVisible ? 'row-reverse' : 'row'}\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n $width={questionsContainerWidth}\n $height={actionbarHeight}\n >\n {summaryVisible ? (\n <WorksheetSummaryController />\n ) : (\n <>\n <WorksheetQuestionsTools />\n {navigationBar === 'bottom' && <WorksheetActionBar />}\n <WorksheetQuestionsController getTimeSpentOnQuestion={getTimeSpentOnQuestion} />\n </>\n )}\n </FlexView>\n )}\n {activeQuestionTool && <WorksheetTeachingTools tool={activeQuestionTool} />}\n </Styled.ActionbarContainer>\n <WorksheetQuestions />\n </Styled.WorksheetContainer>\n </>\n );\n }),\n);\n\nexport default WorksheetView;\n"],"names":["WorksheetView","memo","forwardRef","_","ref","behavior","layout","actionbarHeight","questionsContainerWidth","questions","responses","initialQuestionId","userType","summaryVisible","changeQuestion","onResponsesChange","onExitTicketStart","onExitTicketSubmit","canShowActionBar","lastUnlockedQuestionIndex","activeQuestionTool","useWorksheetStore","store","containerWidth","navigationBar","topOffset","showUserPointer","lastUnlockedQuestion","lastUnlockedQuestionResponse","getTimeSpentOnQuestion","useTimeSpentOnQuestions","useCreateImperativeHandle","useEffect","timer","item_type","instructor_stimulus","jsxs","Fragment","jsx","WorksheetNudgeBanner","Styled.WorksheetContainer","Styled.NavigationContainer","TOP_NAVIGATION_HEIGHT","Styled.NavigationWrapper","WorksheetNavigation","WorksheetBlocker","UserPointer","WorksheetCalculator","Styled.ActionbarContainer","FlexView","WorksheetSummaryController","WorksheetQuestionsTools","WorksheetActionBar","WorksheetQuestionsController","WorksheetTeachingTools","WorksheetQuestions"],"mappings":"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"}
1
+ {"version":3,"file":"worksheet-view.js","sources":["../../../../src/features/worksheet/worksheet/worksheet-view.tsx"],"sourcesContent":["import { forwardRef, memo, useEffect } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport UserPointer from '../user-pointer-pin/user-pin';\nimport { TOP_NAVIGATION_HEIGHT } from './constants';\nimport useCreateImperativeHandle from './hooks/use-create-imperative-handle';\nimport useTimeSpentOnQuestions from './hooks/use-time-on-questions';\nimport { useWorksheetStore } from './hooks/use-worksheet-store';\n// import WorksheetActionBar from './worksheet-action-bar/worksheet-action-bar';\nimport WorksheetActionBar from './worksheet-action-bar/worksheet-action-bar';\nimport WorksheetBlocker from './worksheet-blocker/worksheet-blocker';\nimport WorksheetCalculator from './worksheet-calculator/worksheet-calculator';\nimport WorksheetNavigation from './worksheet-navigation/worksheet-navigation';\nimport WorksheetNudgeBanner from './worksheet-nudge-banner/worksheet-nudge-banner';\nimport WorksheetQuestionsController from './worksheet-questions-controller/worksheet-questions-controller';\nimport WorksheetQuestionsTools from './worksheet-questions-tools/worksheet-questions-tools';\nimport WorksheetQuestions from './worksheet-questions/worksheet-questions';\nimport * as Styled from './worksheet-styled';\nimport WorksheetSummaryController from './worksheet-summary-controller/worksheet-summary-controller';\nimport WorksheetTeachingTools from './worksheet-teaching-tools/worksheet-teaching-tools';\nimport { type IWorksheetRef } from './worksheet-types';\n\nconst WorksheetView = memo(\n forwardRef<IWorksheetRef>((_, ref) => {\n const {\n behavior,\n layout,\n actionbarHeight,\n questionsContainerWidth,\n questions,\n responses,\n initialQuestionId,\n userType,\n summaryVisible,\n changeQuestion,\n onResponsesChange,\n onExitTicketStart,\n onExitTicketSubmit,\n lastUnlockedQuestionIndex,\n activeQuestionTool,\n } = useWorksheetStore(store => ({\n behavior: store.behavior,\n layout: store.layout,\n actionbarHeight: store.actionbarHeight,\n questionsContainerWidth: store.questionsContainerWidth,\n questions: store.questions,\n responses: store.responses,\n initialQuestionId: store.initialQuestionId,\n userType: store.userType,\n summaryVisible: store.summaryVisible,\n changeQuestion: store.changeQuestion,\n onResponsesChange: store.onResponsesChange,\n onExitTicketStart: store.onExitTicketStart,\n onExitTicketSubmit: store.onExitTicketSubmit,\n lastUnlockedQuestionIndex: store.lastUnlockedQuestionIndex,\n activeQuestionTool: store.activeQuestionTool,\n }));\n const { containerWidth, navigationBar, topOffset, showUserPointer = true } = layout;\n const lastUnlockedQuestion = questions[lastUnlockedQuestionIndex];\n const lastUnlockedQuestionResponse = responses[lastUnlockedQuestion?.response_id ?? ''];\n // TODO: This can be moved to worksheet-store and optimized to avoid re-renders\n const getTimeSpentOnQuestion = useTimeSpentOnQuestions();\n\n useCreateImperativeHandle(ref, {\n getTimeSpentOnQuestion,\n });\n\n useEffect(() => {\n if (onResponsesChange && responses) {\n // eslint-disable-next-line no-console\n console.log('WorksheetView - onResponsesChange - responses', responses);\n onResponsesChange(responses);\n }\n }, [onResponsesChange, responses]);\n\n useEffect(() => {\n changeQuestion(initialQuestionId);\n }, [initialQuestionId, changeQuestion]);\n\n useEffect(() => {\n if (lastUnlockedQuestion && behavior.teacherValidationEnabled) {\n const timer = setTimeout(() => {\n changeQuestion(lastUnlockedQuestion.response_id);\n }, 1000);\n\n return () => {\n clearTimeout(timer);\n };\n }\n }, [lastUnlockedQuestion, behavior.teacherValidationEnabled, changeQuestion]);\n\n useEffect(() => {\n if (behavior.teacherValidationEnabled && lastUnlockedQuestion) {\n const { item_type, instructor_stimulus } = lastUnlockedQuestion;\n\n if (userType === 'STUDENT') {\n if (item_type === 'exit-ticket' && instructor_stimulus !== 'SystemIntro') {\n if (lastUnlockedQuestionResponse?.submittedByStudent) {\n onExitTicketSubmit?.();\n } else {\n onExitTicketStart?.();\n }\n }\n }\n }\n }, [\n behavior.teacherValidationEnabled,\n lastUnlockedQuestion,\n lastUnlockedQuestionResponse?.submittedByStudent,\n onExitTicketStart,\n onExitTicketSubmit,\n userType,\n ]);\n\n return (\n <>\n <WorksheetNudgeBanner />\n <Styled.WorksheetContainer $background=\"WHITE_1\" $width={containerWidth}>\n {navigationBar === 'top' && (\n <Styled.NavigationContainer $topOffset={topOffset} $height={TOP_NAVIGATION_HEIGHT}>\n <Styled.NavigationWrapper>\n <WorksheetNavigation placement=\"top\" />\n </Styled.NavigationWrapper>\n </Styled.NavigationContainer>\n )}\n <WorksheetBlocker />\n {showUserPointer && <UserPointer />}\n <WorksheetCalculator />\n <Styled.ActionbarContainer\n $marginTop={userType === 'TEACHER' && summaryVisible ? '0' : actionbarHeight}\n $height={actionbarHeight}\n >\n <FlexView\n $gutterX={0.5}\n $flexDirection={summaryVisible ? 'row-reverse' : 'row'}\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n $width={questionsContainerWidth}\n $height={actionbarHeight}\n >\n {summaryVisible ? (\n <WorksheetSummaryController />\n ) : (\n <>\n <WorksheetQuestionsTools />\n {navigationBar === 'bottom' && <WorksheetActionBar />}\n <WorksheetQuestionsController getTimeSpentOnQuestion={getTimeSpentOnQuestion} />\n </>\n )}\n </FlexView>\n {activeQuestionTool && <WorksheetTeachingTools tool={activeQuestionTool} />}\n </Styled.ActionbarContainer>\n <WorksheetQuestions />\n </Styled.WorksheetContainer>\n </>\n );\n }),\n);\n\nexport default WorksheetView;\n"],"names":["WorksheetView","memo","forwardRef","_","ref","behavior","layout","actionbarHeight","questionsContainerWidth","questions","responses","initialQuestionId","userType","summaryVisible","changeQuestion","onResponsesChange","onExitTicketStart","onExitTicketSubmit","lastUnlockedQuestionIndex","activeQuestionTool","useWorksheetStore","store","containerWidth","navigationBar","topOffset","showUserPointer","lastUnlockedQuestion","lastUnlockedQuestionResponse","getTimeSpentOnQuestion","useTimeSpentOnQuestions","useCreateImperativeHandle","useEffect","timer","item_type","instructor_stimulus","jsxs","Fragment","jsx","WorksheetNudgeBanner","Styled.WorksheetContainer","Styled.NavigationContainer","TOP_NAVIGATION_HEIGHT","Styled.NavigationWrapper","WorksheetNavigation","WorksheetBlocker","UserPointer","WorksheetCalculator","Styled.ActionbarContainer","FlexView","WorksheetSummaryController","WorksheetQuestionsTools","WorksheetActionBar","WorksheetQuestionsController","WorksheetTeachingTools","WorksheetQuestions"],"mappings":"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"}
@@ -1,94 +1,92 @@
1
1
  import { jsx as f } from "react/jsx-runtime";
2
- import { memo as P, forwardRef as b, useMemo as D, useCallback as I, useEffect as l } from "react";
3
- import N from "../../cue-canvas/cue-canvas-provider.js";
4
- import V from "../constants/events.js";
5
- import x from "./hooks/use-learnosity.js";
6
- import H from "./hooks/use-worksheet-data-helper.js";
7
- import { getWorksheetBehaviour as _ } from "./worksheet-behavior-helper.js";
8
- import j from "./worksheet-provider.js";
9
- import K from "./worksheet-view.js";
10
- const M = P(
11
- b((R, S) => {
2
+ import { memo as b, forwardRef as D, useMemo as I, useCallback as N, useEffect as l } from "react";
3
+ import V from "../../cue-canvas/cue-canvas-provider.js";
4
+ import x from "../constants/events.js";
5
+ import A from "./hooks/use-learnosity.js";
6
+ import B from "./hooks/use-worksheet-data-helper.js";
7
+ import { getWorksheetBehaviour as H } from "./worksheet-behavior-helper.js";
8
+ import _ from "./worksheet-provider.js";
9
+ import j from "./worksheet-view.js";
10
+ const K = b(
11
+ D((R, v) => {
12
12
  const {
13
- attemptId: v,
14
- itemsSignedRequest: w,
13
+ attemptId: S,
14
+ itemsSignedRequest: W,
15
15
  questionsSignedRequest: h,
16
16
  onLoaded: t,
17
17
  onErrored: n,
18
- onResponsesLoaded: m,
19
- loggerRef: s,
18
+ onResponsesLoaded: a,
19
+ loggerRef: o,
20
20
  userType: i,
21
21
  worksheetCompleted: d,
22
- inClass: c,
23
- nodeType: u,
22
+ inClass: u,
23
+ nodeType: p,
24
24
  mode: k,
25
- activityType: p,
25
+ activityType: c,
26
26
  isDesmosEnabled: g = !1,
27
- studentName: W,
28
- canShowActionBar: C,
29
- ...T
30
- } = R, q = D(
31
- () => _({
32
- nodeType: u,
33
- inClass: c,
34
- activityType: p,
27
+ studentName: w,
28
+ ...C
29
+ } = R, T = I(
30
+ () => H({
31
+ nodeType: p,
32
+ inClass: u,
33
+ activityType: c,
35
34
  isDesmosEnabled: g,
36
35
  mode: k,
37
36
  userType: i,
38
37
  worksheetCompleted: d
39
38
  }),
40
- [u, c, p, g, k, i, d]
41
- ), { loadingState: o, data: e, error: E } = H({
42
- attemptId: v,
43
- signedRequest: w,
44
- loggerRef: s
45
- }), A = I(
46
- (a) => {
39
+ [p, u, c, g, k, i, d]
40
+ ), { loadingState: s, data: e, error: E } = B({
41
+ attemptId: S,
42
+ signedRequest: W,
43
+ loggerRef: o
44
+ }), q = N(
45
+ (m) => {
47
46
  n({
48
- code: a.code,
49
- message: a.detail
47
+ code: m.code,
48
+ message: m.detail
50
49
  });
51
50
  },
52
51
  [n]
53
- ), { learnosity: r, appendedQuestionIds: B } = x(
52
+ ), { learnosity: r, appendedQuestionIds: L } = A(
54
53
  h,
55
- A,
56
- s
54
+ q,
55
+ o
57
56
  ), y = (() => {
58
- if (o === "success" && e && r) {
59
- const { learnosityItems: a, responses: L } = e;
57
+ if (s === "success" && e && r) {
58
+ const { learnosityItems: m, responses: P } = e;
60
59
  return {
61
- learnosityItems: a,
62
- learnosityResponses: L,
63
- behavior: q,
64
- studentName: W ?? "Student",
65
- canShowActionBar: C ?? !0,
60
+ learnosityItems: m,
61
+ learnosityResponses: P,
62
+ behavior: T,
63
+ studentName: w ?? "Student",
66
64
  userType: i,
67
65
  questionsSignedRequest: h,
68
66
  worksheetCompleted: d,
69
67
  learnosity: r,
70
- loggerRef: s,
71
- appendedQuestionIds: B,
72
- nodeType: u,
73
- activityType: p,
74
- inClass: c,
75
- ...T
68
+ loggerRef: o,
69
+ appendedQuestionIds: L,
70
+ nodeType: p,
71
+ activityType: c,
72
+ inClass: u,
73
+ ...C
76
74
  };
77
75
  }
78
76
  return null;
79
77
  })();
80
78
  return l(() => {
81
- o === "error" && n({
79
+ s === "error" && n({
82
80
  message: E ?? "Error loading worksheet"
83
81
  });
84
- }, [o, E, t, n]), l(() => {
85
- r && o === "success" && t && (s.current(V.WORKSHEET_V3_READY), t());
86
- }, [r, o, s, t]), l(() => {
87
- e != null && e.responses && m && m(e.responses ?? {});
88
- }, [e == null ? void 0 : e.responses, m]), o === "success" && e && r && y ? /* @__PURE__ */ f(j, { ...y, children: /* @__PURE__ */ f(N, { userType: i, renderAs: "canvas", children: /* @__PURE__ */ f(K, { ref: S }) }) }) : null;
82
+ }, [s, E, t, n]), l(() => {
83
+ r && s === "success" && t && (o.current(x.WORKSHEET_V3_READY), t());
84
+ }, [r, s, o, t]), l(() => {
85
+ e != null && e.responses && a && a(e.responses ?? {});
86
+ }, [e == null ? void 0 : e.responses, a]), s === "success" && e && r && y ? /* @__PURE__ */ f(_, { ...y, children: /* @__PURE__ */ f(V, { userType: i, renderAs: "canvas", children: /* @__PURE__ */ f(j, { ref: v }) }) }) : null;
89
87
  })
90
- ), X = M;
88
+ ), U = K;
91
89
  export {
92
- X as default
90
+ U as default
93
91
  };
94
92
  //# sourceMappingURL=worksheet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet.js","sources":["../../../../src/features/worksheet/worksheet/worksheet.tsx"],"sourcesContent":["import { forwardRef, memo, useCallback, useEffect, useMemo } from 'react';\n\nimport CueCanvasProvider from '../../cue-canvas/cue-canvas-provider';\nimport EVENTS from '../constants/events';\nimport useLearnosity from './hooks/use-learnosity';\nimport useWorksheetDataHelper from './hooks/use-worksheet-data-helper';\nimport { getWorksheetBehaviour } from './worksheet-behavior-helper';\nimport WorksheetProvider from './worksheet-provider';\nimport type {\n ILearnosityError,\n IWorksheetProps,\n IWorksheetRef,\n TWorksheetStoreProps,\n} from './worksheet-types';\nimport WorksheetView from './worksheet-view';\n\nconst Worksheet = memo(\n forwardRef<IWorksheetRef, IWorksheetProps>((props, ref) => {\n const {\n attemptId,\n itemsSignedRequest,\n questionsSignedRequest,\n onLoaded,\n onErrored,\n onResponsesLoaded,\n loggerRef,\n userType,\n worksheetCompleted,\n inClass,\n nodeType,\n mode,\n activityType,\n isDesmosEnabled = false,\n studentName,\n canShowActionBar,\n ...otherProps\n } = props;\n\n const worksheetBehavior = useMemo(\n () =>\n getWorksheetBehaviour({\n nodeType,\n inClass,\n activityType,\n isDesmosEnabled,\n mode,\n userType,\n worksheetCompleted,\n }),\n [nodeType, inClass, activityType, isDesmosEnabled, mode, userType, worksheetCompleted],\n );\n\n const { loadingState, data, error } = useWorksheetDataHelper({\n attemptId,\n signedRequest: itemsSignedRequest,\n loggerRef,\n });\n\n const onLearnosityErrored = useCallback(\n (err: ILearnosityError) => {\n onErrored({\n code: err.code,\n message: err.detail,\n });\n },\n [onErrored],\n );\n\n const { learnosity, appendedQuestionIds } = useLearnosity(\n questionsSignedRequest,\n onLearnosityErrored,\n loggerRef,\n );\n\n const worksheetStoreProps: TWorksheetStoreProps | null = (() => {\n if (loadingState === 'success' && data && learnosity) {\n const { learnosityItems, responses } = data;\n\n return {\n learnosityItems,\n learnosityResponses: responses,\n behavior: worksheetBehavior,\n studentName: studentName ?? 'Student',\n canShowActionBar: canShowActionBar ?? true,\n userType,\n questionsSignedRequest,\n worksheetCompleted,\n learnosity,\n loggerRef,\n appendedQuestionIds,\n nodeType,\n activityType,\n inClass,\n ...otherProps,\n };\n }\n\n return null;\n })();\n\n useEffect(() => {\n if (loadingState === 'error') {\n onErrored({\n message: error ?? 'Error loading worksheet',\n });\n }\n }, [loadingState, error, onLoaded, onErrored]);\n\n useEffect(() => {\n if (learnosity && loadingState === 'success' && onLoaded) {\n loggerRef.current(EVENTS.WORKSHEET_V3_READY);\n onLoaded();\n }\n }, [learnosity, loadingState, loggerRef, onLoaded]);\n\n useEffect(() => {\n if (data?.responses && onResponsesLoaded) {\n onResponsesLoaded(data.responses ?? {});\n }\n }, [data?.responses, onResponsesLoaded]);\n\n if (loadingState === 'success' && data && learnosity && worksheetStoreProps) {\n return (\n <WorksheetProvider {...worksheetStoreProps}>\n <CueCanvasProvider userType={userType} renderAs=\"canvas\">\n <WorksheetView ref={ref} />\n </CueCanvasProvider>\n </WorksheetProvider>\n );\n }\n\n return null;\n }),\n);\n\nexport default Worksheet;\n"],"names":["Worksheet","memo","forwardRef","props","ref","attemptId","itemsSignedRequest","questionsSignedRequest","onLoaded","onErrored","onResponsesLoaded","loggerRef","userType","worksheetCompleted","inClass","nodeType","mode","activityType","isDesmosEnabled","studentName","canShowActionBar","otherProps","worksheetBehavior","useMemo","getWorksheetBehaviour","loadingState","data","error","useWorksheetDataHelper","onLearnosityErrored","useCallback","err","learnosity","appendedQuestionIds","useLearnosity","worksheetStoreProps","learnosityItems","responses","useEffect","EVENTS","jsx","WorksheetProvider","CueCanvasProvider","WorksheetView","Worksheet$1"],"mappings":"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"}
1
+ {"version":3,"file":"worksheet.js","sources":["../../../../src/features/worksheet/worksheet/worksheet.tsx"],"sourcesContent":["import { forwardRef, memo, useCallback, useEffect, useMemo } from 'react';\n\nimport CueCanvasProvider from '../../cue-canvas/cue-canvas-provider';\nimport EVENTS from '../constants/events';\nimport useLearnosity from './hooks/use-learnosity';\nimport useWorksheetDataHelper from './hooks/use-worksheet-data-helper';\nimport { getWorksheetBehaviour } from './worksheet-behavior-helper';\nimport WorksheetProvider from './worksheet-provider';\nimport type {\n ILearnosityError,\n IWorksheetProps,\n IWorksheetRef,\n TWorksheetStoreProps,\n} from './worksheet-types';\nimport WorksheetView from './worksheet-view';\n\nconst Worksheet = memo(\n forwardRef<IWorksheetRef, IWorksheetProps>((props, ref) => {\n const {\n attemptId,\n itemsSignedRequest,\n questionsSignedRequest,\n onLoaded,\n onErrored,\n onResponsesLoaded,\n loggerRef,\n userType,\n worksheetCompleted,\n inClass,\n nodeType,\n mode,\n activityType,\n isDesmosEnabled = false,\n studentName,\n ...otherProps\n } = props;\n\n const worksheetBehavior = useMemo(\n () =>\n getWorksheetBehaviour({\n nodeType,\n inClass,\n activityType,\n isDesmosEnabled,\n mode,\n userType,\n worksheetCompleted,\n }),\n [nodeType, inClass, activityType, isDesmosEnabled, mode, userType, worksheetCompleted],\n );\n\n const { loadingState, data, error } = useWorksheetDataHelper({\n attemptId,\n signedRequest: itemsSignedRequest,\n loggerRef,\n });\n\n const onLearnosityErrored = useCallback(\n (err: ILearnosityError) => {\n onErrored({\n code: err.code,\n message: err.detail,\n });\n },\n [onErrored],\n );\n\n const { learnosity, appendedQuestionIds } = useLearnosity(\n questionsSignedRequest,\n onLearnosityErrored,\n loggerRef,\n );\n\n const worksheetStoreProps: TWorksheetStoreProps | null = (() => {\n if (loadingState === 'success' && data && learnosity) {\n const { learnosityItems, responses } = data;\n\n return {\n learnosityItems,\n learnosityResponses: responses,\n behavior: worksheetBehavior,\n studentName: studentName ?? 'Student',\n userType,\n questionsSignedRequest,\n worksheetCompleted,\n learnosity,\n loggerRef,\n appendedQuestionIds,\n nodeType,\n activityType,\n inClass,\n ...otherProps,\n };\n }\n\n return null;\n })();\n\n useEffect(() => {\n if (loadingState === 'error') {\n onErrored({\n message: error ?? 'Error loading worksheet',\n });\n }\n }, [loadingState, error, onLoaded, onErrored]);\n\n useEffect(() => {\n if (learnosity && loadingState === 'success' && onLoaded) {\n loggerRef.current(EVENTS.WORKSHEET_V3_READY);\n onLoaded();\n }\n }, [learnosity, loadingState, loggerRef, onLoaded]);\n\n useEffect(() => {\n if (data?.responses && onResponsesLoaded) {\n onResponsesLoaded(data.responses ?? {});\n }\n }, [data?.responses, onResponsesLoaded]);\n\n if (loadingState === 'success' && data && learnosity && worksheetStoreProps) {\n return (\n <WorksheetProvider {...worksheetStoreProps}>\n <CueCanvasProvider userType={userType} renderAs=\"canvas\">\n <WorksheetView ref={ref} />\n </CueCanvasProvider>\n </WorksheetProvider>\n );\n }\n\n return null;\n }),\n);\n\nexport default Worksheet;\n"],"names":["Worksheet","memo","forwardRef","props","ref","attemptId","itemsSignedRequest","questionsSignedRequest","onLoaded","onErrored","onResponsesLoaded","loggerRef","userType","worksheetCompleted","inClass","nodeType","mode","activityType","isDesmosEnabled","studentName","otherProps","worksheetBehavior","useMemo","getWorksheetBehaviour","loadingState","data","error","useWorksheetDataHelper","onLearnosityErrored","useCallback","err","learnosity","appendedQuestionIds","useLearnosity","worksheetStoreProps","learnosityItems","responses","useEffect","EVENTS","jsx","WorksheetProvider","CueCanvasProvider","WorksheetView","Worksheet$1"],"mappings":";;;;;;;;;AAgBA,MAAMA,IAAYC;AAAA,EAChBC,EAA2C,CAACC,GAAOC,MAAQ;AACnD,UAAA;AAAA,MACJ,WAAAC;AAAA,MACA,oBAAAC;AAAA,MACA,wBAAAC;AAAA,MACA,UAAAC;AAAA,MACA,WAAAC;AAAA,MACA,mBAAAC;AAAA,MACA,WAAAC;AAAA,MACA,UAAAC;AAAA,MACA,oBAAAC;AAAA,MACA,SAAAC;AAAA,MACA,UAAAC;AAAA,MACA,MAAAC;AAAA,MACA,cAAAC;AAAA,MACA,iBAAAC,IAAkB;AAAA,MAClB,aAAAC;AAAA,MACA,GAAGC;AAAA,IACD,IAAAjB,GAEEkB,IAAoBC;AAAA,MACxB,MACEC,EAAsB;AAAA,QACpB,UAAAR;AAAA,QACA,SAAAD;AAAA,QACA,cAAAG;AAAA,QACA,iBAAAC;AAAA,QACA,MAAAF;AAAA,QACA,UAAAJ;AAAA,QACA,oBAAAC;AAAA,MAAA,CACD;AAAA,MACH,CAACE,GAAUD,GAASG,GAAcC,GAAiBF,GAAMJ,GAAUC,CAAkB;AAAA,IAAA,GAGjF,EAAE,cAAAW,GAAc,MAAAC,GAAM,OAAAC,EAAA,IAAUC,EAAuB;AAAA,MAC3D,WAAAtB;AAAA,MACA,eAAeC;AAAA,MACf,WAAAK;AAAA,IAAA,CACD,GAEKiB,IAAsBC;AAAA,MAC1B,CAACC,MAA0B;AACf,QAAArB,EAAA;AAAA,UACR,MAAMqB,EAAI;AAAA,UACV,SAASA,EAAI;AAAA,QAAA,CACd;AAAA,MACH;AAAA,MACA,CAACrB,CAAS;AAAA,IAAA,GAGN,EAAE,YAAAsB,GAAY,qBAAAC,EAAA,IAAwBC;AAAA,MAC1C1B;AAAA,MACAqB;AAAA,MACAjB;AAAA,IAAA,GAGIuB,KAAoD,MAAM;AAC1D,UAAAV,MAAiB,aAAaC,KAAQM,GAAY;AAC9C,cAAA,EAAE,iBAAAI,GAAiB,WAAAC,EAAc,IAAAX;AAEhC,eAAA;AAAA,UACL,iBAAAU;AAAA,UACA,qBAAqBC;AAAA,UACrB,UAAUf;AAAA,UACV,aAAaF,KAAe;AAAA,UAC5B,UAAAP;AAAA,UACA,wBAAAL;AAAA,UACA,oBAAAM;AAAA,UACA,YAAAkB;AAAA,UACA,WAAApB;AAAA,UACA,qBAAAqB;AAAA,UACA,UAAAjB;AAAA,UACA,cAAAE;AAAA,UACA,SAAAH;AAAA,UACA,GAAGM;AAAA,QAAA;AAAA,MAEP;AAEO,aAAA;AAAA,IAAA;AAwBT,WArBAiB,EAAU,MAAM;AACd,MAAIb,MAAiB,WACTf,EAAA;AAAA,QACR,SAASiB,KAAS;AAAA,MAAA,CACnB;AAAA,OAEF,CAACF,GAAcE,GAAOlB,GAAUC,CAAS,CAAC,GAE7C4B,EAAU,MAAM;AACV,MAAAN,KAAcP,MAAiB,aAAahB,MACpCG,EAAA,QAAQ2B,EAAO,kBAAkB,GAClC9B;OAEV,CAACuB,GAAYP,GAAcb,GAAWH,CAAQ,CAAC,GAElD6B,EAAU,MAAM;AACV,MAAAZ,KAAA,QAAAA,EAAM,aAAaf,KACHA,EAAAe,EAAK,aAAa,CAAA,CAAE;AAAA,IAEvC,GAAA,CAACA,KAAA,gBAAAA,EAAM,WAAWf,CAAiB,CAAC,GAEnCc,MAAiB,aAAaC,KAAQM,KAAcG,IAEnD,gBAAAK,EAAAC,GAAA,EAAmB,GAAGN,GACrB,UAAC,gBAAAK,EAAAE,GAAA,EAAkB,UAAA7B,GAAoB,UAAS,UAC9C,UAAA,gBAAA2B,EAACG,GAAc,EAAA,KAAAtC,GAAU,GAC3B,EACF,CAAA,IAIG;AAAA,EAAA,CACR;AACH,GAEAuC,IAAe3C;"}
@@ -1,44 +1,44 @@
1
- import { jsx as t, jsxs as A } from "react/jsx-runtime";
2
- import { memo as z, useMemo as C, useCallback as S, useEffect as T } from "react";
3
- import $ from "../../../ui/buttons/button/button.js";
4
- import x from "../../../ui/layout/flex-view.js";
5
- import I from "../../../ui/loader/app-loader/app-loader.js";
6
- import B from "../../../ui/text/text.js";
7
- import { useGetDynamicSheetData as E } from "../api/get-dynamic-sheet.js";
8
- import R from "../worksheet-preview.js";
9
- const b = z(
10
- function(s) {
11
- const { studentId: i, userNodeId: n, studentName: a, onBackIconClick: h, actionBarRightElement: l } = s, { onOpenQuestionFeedbackModal: p } = s, {
1
+ import { jsx as t, jsxs as z } from "react/jsx-runtime";
2
+ import { memo as A, useMemo as C, useCallback as T, useEffect as $ } from "react";
3
+ import x from "../../../ui/buttons/button/button.js";
4
+ import I from "../../../ui/layout/flex-view.js";
5
+ import S from "../../../ui/loader/app-loader/app-loader.js";
6
+ import E from "../../../ui/text/text.js";
7
+ import { useGetDynamicSheetData as R } from "../api/get-dynamic-sheet.js";
8
+ import b from "../worksheet-preview.js";
9
+ const B = A(
10
+ function(r) {
11
+ const { studentId: i, userNodeId: n, studentName: a, onBackIconClick: l, actionBarRightElement: h } = r, { onOpenQuestionFeedbackModal: p } = r, {
12
12
  get: m,
13
13
  data: f,
14
14
  isProcessing: y,
15
15
  isProcessingFailed: g,
16
16
  error: o
17
- } = E(), {
17
+ } = R(), {
18
18
  items: k = [],
19
19
  title: c,
20
20
  node_type: u = "DYNAMIC",
21
- worksheet: w
22
- } = f || {}, { image_hue: D } = w || {}, d = k.map(({ ref: P }) => P), e = u === "PUZZLE_CARD", v = C(() => e ? `${a} hasn't attempted the puzzle yet` : c, [e, a, c]), r = S(() => {
21
+ worksheet: D
22
+ } = f || {}, { image_hue: w } = D || {}, d = k.map(({ ref: P }) => P), e = u === "PUZZLE_CARD", v = C(() => e ? `${a} hasn't attempted the puzzle yet` : c, [e, a, c]), s = T(() => {
23
23
  i && n && m(n);
24
24
  }, [m, i, n]);
25
- return T(() => {
26
- r();
27
- }, [r]), y ? /* @__PURE__ */ t(I, { height: "100%" }) : g ? /* @__PURE__ */ A(x, { $flexGapX: 1.5, $height: "100vh", $justifyContent: "center", $alignItems: "center", children: [
28
- /* @__PURE__ */ t(B, { $renderAs: "h6", children: (o == null ? void 0 : o.message) || "Oops! Something went wrong. Please try again later." }),
25
+ return $(() => {
26
+ s();
27
+ }, [s]), y ? /* @__PURE__ */ t(S, { height: "100%" }) : g ? /* @__PURE__ */ z(I, { $flexGapX: 1.5, $height: "100vh", $justifyContent: "center", $alignItems: "center", children: [
28
+ /* @__PURE__ */ t(E, { $renderAs: "h6", children: (o == null ? void 0 : o.message) || "Oops! Something went wrong. Please try again later." }),
29
29
  /* @__PURE__ */ t(
30
- $,
30
+ x,
31
31
  {
32
32
  widthX: 14,
33
33
  size: "small",
34
34
  shape: "square",
35
35
  renderAs: "primary",
36
36
  label: "Try again",
37
- onClick: r
37
+ onClick: s
38
38
  }
39
39
  )
40
40
  ] }) : d ? /* @__PURE__ */ t(
41
- R,
41
+ b,
42
42
  {
43
43
  activityReference: e ? "puzzle" : "test",
44
44
  nodeType: u,
@@ -47,17 +47,16 @@ const b = z(
47
47
  activityType: null,
48
48
  worksheetName: v,
49
49
  items: d,
50
- onBackIconClick: h,
51
- imageHue: D ?? void 0,
52
- actionBarRightElement: l,
53
- canShowActionBar: !0,
50
+ onBackIconClick: l,
51
+ imageHue: w ?? void 0,
52
+ actionBarRightElement: h,
54
53
  mode: "preview",
55
54
  openQuestionFeedbackModal: p,
56
55
  topOffset: e ? 112 : void 0
57
56
  }
58
57
  ) : null;
59
58
  }
60
- ), L = b;
59
+ ), L = B;
61
60
  export {
62
61
  L as default
63
62
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-worksheet-preview.js","sources":["../../../../../src/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, type FC } from 'react';\n\nimport type { TNodeTypes } from '../../../../types/models/worksheet';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Text from '../../../ui/text/text';\nimport { useGetDynamicSheetData } from '../api/get-dynamic-sheet';\nimport PreviewWorksheet from '../worksheet-preview';\nimport type { IDynamicWorksheetPreview } from './dynamic-worksheet-types';\n\nconst DynamicWorksheetPreview: FC<IDynamicWorksheetPreview> = memo(\n function DynamicWorksheetPreview(props) {\n const { studentId, userNodeId, studentName, onBackIconClick, actionBarRightElement } = props;\n const { onOpenQuestionFeedbackModal } = props;\n\n const {\n get: getDynamicSheetData,\n data: dynamicSheetData,\n isProcessing,\n isProcessingFailed,\n error,\n } = useGetDynamicSheetData();\n\n const {\n items: itemsToBeAssigned = [],\n title,\n node_type: nodeType = 'DYNAMIC',\n worksheet,\n } = dynamicSheetData || {};\n const { image_hue: imageHue } = worksheet || {};\n const itemRefs = itemsToBeAssigned.map(({ ref }) => ref);\n\n const isPuzzleSheet = nodeType === 'PUZZLE_CARD';\n\n const worksheetName = useMemo(() => {\n if (isPuzzleSheet) return `${studentName} hasn't attempted the puzzle yet`;\n\n return title;\n }, [isPuzzleSheet, studentName, title]);\n\n const fetchDynamicSheetData = useCallback(() => {\n if (studentId && userNodeId) {\n getDynamicSheetData(userNodeId);\n }\n }, [getDynamicSheetData, studentId, userNodeId]);\n\n useEffect(() => {\n fetchDynamicSheetData();\n }, [fetchDynamicSheetData]);\n\n if (isProcessing) {\n return <AppLoader height=\"100%\" />;\n }\n\n if (isProcessingFailed) {\n return (\n <FlexView $flexGapX={1.5} $height=\"100vh\" $justifyContent=\"center\" $alignItems=\"center\">\n <Text $renderAs=\"h6\">\n {error?.message || 'Oops! Something went wrong. Please try again later.'}\n </Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n onClick={fetchDynamicSheetData}\n />\n </FlexView>\n );\n }\n\n if (!itemRefs) {\n return null;\n }\n\n return (\n <PreviewWorksheet\n activityReference={isPuzzleSheet ? 'puzzle' : 'test'}\n nodeType={nodeType as TNodeTypes}\n userType=\"TEACHER\"\n studentId={studentId ?? 'student-id'}\n activityType={null}\n worksheetName={worksheetName}\n items={itemRefs}\n onBackIconClick={onBackIconClick}\n imageHue={imageHue ?? undefined}\n actionBarRightElement={actionBarRightElement}\n canShowActionBar\n mode=\"preview\"\n openQuestionFeedbackModal={onOpenQuestionFeedbackModal}\n topOffset={isPuzzleSheet ? 112 : undefined}\n />\n );\n },\n);\n\nexport default DynamicWorksheetPreview;\n"],"names":["DynamicWorksheetPreview","memo","props","studentId","userNodeId","studentName","onBackIconClick","actionBarRightElement","onOpenQuestionFeedbackModal","getDynamicSheetData","dynamicSheetData","isProcessing","isProcessingFailed","error","useGetDynamicSheetData","itemsToBeAssigned","title","nodeType","worksheet","imageHue","itemRefs","ref","isPuzzleSheet","worksheetName","useMemo","fetchDynamicSheetData","useCallback","useEffect","jsx","AppLoader","jsxs","FlexView","Text","Button","PreviewWorksheet","DynamicWorksheetPreview$1"],"mappings":";;;;;;;;AAWA,MAAMA,IAAwDC;AAAA,EAC5D,SAAiCC,GAAO;AACtC,UAAM,EAAE,WAAAC,GAAW,YAAAC,GAAY,aAAAC,GAAa,iBAAAC,GAAiB,uBAAAC,EAA0B,IAAAL,GACjF,EAAE,6BAAAM,EAAgC,IAAAN,GAElC;AAAA,MACJ,KAAKO;AAAA,MACL,MAAMC;AAAA,MACN,cAAAC;AAAA,MACA,oBAAAC;AAAA,MACA,OAAAC;AAAA,QACEC,EAAuB,GAErB;AAAA,MACJ,OAAOC,IAAoB,CAAC;AAAA,MAC5B,OAAAC;AAAA,MACA,WAAWC,IAAW;AAAA,MACtB,WAAAC;AAAA,IAAA,IACER,KAAoB,CAAA,GAClB,EAAE,WAAWS,MAAaD,KAAa,CAAA,GACvCE,IAAWL,EAAkB,IAAI,CAAC,EAAE,KAAAM,EAAA,MAAUA,CAAG,GAEjDC,IAAgBL,MAAa,eAE7BM,IAAgBC,EAAQ,MACxBF,IAAsB,GAAGjB,CAAW,qCAEjCW,GACN,CAACM,GAAejB,GAAaW,CAAK,CAAC,GAEhCS,IAAwBC,EAAY,MAAM;AAC9C,MAAIvB,KAAaC,KACfK,EAAoBL,CAAU;AAAA,IAE/B,GAAA,CAACK,GAAqBN,GAAWC,CAAU,CAAC;AAM/C,WAJAuB,EAAU,MAAM;AACQ,MAAAF;IAAA,GACrB,CAACA,CAAqB,CAAC,GAEtBd,IACK,gBAAAiB,EAACC,GAAU,EAAA,QAAO,OAAO,CAAA,IAG9BjB,IAEA,gBAAAkB,EAACC,KAAS,WAAW,KAAK,SAAQ,SAAQ,iBAAgB,UAAS,aAAY,UAC7E,UAAA;AAAA,MAAA,gBAAAH,EAACI,GAAK,EAAA,WAAU,MACb,WAAAnB,KAAA,gBAAAA,EAAO,YAAW,uDACrB;AAAA,MACA,gBAAAe;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,QAAQ;AAAA,UACR,MAAK;AAAA,UACL,OAAM;AAAA,UACN,UAAS;AAAA,UACT,OAAM;AAAA,UACN,SAASR;AAAA,QAAA;AAAA,MACX;AAAA,IACF,EAAA,CAAA,IAICL,IAKH,gBAAAQ;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,mBAAmBZ,IAAgB,WAAW;AAAA,QAC9C,UAAAL;AAAA,QACA,UAAS;AAAA,QACT,WAAWd,KAAa;AAAA,QACxB,cAAc;AAAA,QACd,eAAAoB;AAAA,QACA,OAAOH;AAAA,QACP,iBAAAd;AAAA,QACA,UAAUa,KAAY;AAAA,QACtB,uBAAAZ;AAAA,QACA,kBAAgB;AAAA,QAChB,MAAK;AAAA,QACL,2BAA2BC;AAAA,QAC3B,WAAWc,IAAgB,MAAM;AAAA,MAAA;AAAA,IAAA,IAlB5B;AAAA,EAqBX;AACF,GAEAa,IAAenC;"}
1
+ {"version":3,"file":"dynamic-worksheet-preview.js","sources":["../../../../../src/features/worksheet/worksheet-preview/dynamic-worksheet-preview/dynamic-worksheet-preview.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, type FC } from 'react';\n\nimport type { TNodeTypes } from '../../../../types/models/worksheet';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Text from '../../../ui/text/text';\nimport { useGetDynamicSheetData } from '../api/get-dynamic-sheet';\nimport PreviewWorksheet from '../worksheet-preview';\nimport type { IDynamicWorksheetPreview } from './dynamic-worksheet-types';\n\nconst DynamicWorksheetPreview: FC<IDynamicWorksheetPreview> = memo(\n function DynamicWorksheetPreview(props) {\n const { studentId, userNodeId, studentName, onBackIconClick, actionBarRightElement } = props;\n const { onOpenQuestionFeedbackModal } = props;\n\n const {\n get: getDynamicSheetData,\n data: dynamicSheetData,\n isProcessing,\n isProcessingFailed,\n error,\n } = useGetDynamicSheetData();\n\n const {\n items: itemsToBeAssigned = [],\n title,\n node_type: nodeType = 'DYNAMIC',\n worksheet,\n } = dynamicSheetData || {};\n const { image_hue: imageHue } = worksheet || {};\n const itemRefs = itemsToBeAssigned.map(({ ref }) => ref);\n\n const isPuzzleSheet = nodeType === 'PUZZLE_CARD';\n\n const worksheetName = useMemo(() => {\n if (isPuzzleSheet) return `${studentName} hasn't attempted the puzzle yet`;\n\n return title;\n }, [isPuzzleSheet, studentName, title]);\n\n const fetchDynamicSheetData = useCallback(() => {\n if (studentId && userNodeId) {\n getDynamicSheetData(userNodeId);\n }\n }, [getDynamicSheetData, studentId, userNodeId]);\n\n useEffect(() => {\n fetchDynamicSheetData();\n }, [fetchDynamicSheetData]);\n\n if (isProcessing) {\n return <AppLoader height=\"100%\" />;\n }\n\n if (isProcessingFailed) {\n return (\n <FlexView $flexGapX={1.5} $height=\"100vh\" $justifyContent=\"center\" $alignItems=\"center\">\n <Text $renderAs=\"h6\">\n {error?.message || 'Oops! Something went wrong. Please try again later.'}\n </Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n onClick={fetchDynamicSheetData}\n />\n </FlexView>\n );\n }\n\n if (!itemRefs) {\n return null;\n }\n\n return (\n <PreviewWorksheet\n activityReference={isPuzzleSheet ? 'puzzle' : 'test'}\n nodeType={nodeType as TNodeTypes}\n userType=\"TEACHER\"\n studentId={studentId ?? 'student-id'}\n activityType={null}\n worksheetName={worksheetName}\n items={itemRefs}\n onBackIconClick={onBackIconClick}\n imageHue={imageHue ?? undefined}\n actionBarRightElement={actionBarRightElement}\n mode=\"preview\"\n openQuestionFeedbackModal={onOpenQuestionFeedbackModal}\n topOffset={isPuzzleSheet ? 112 : undefined}\n />\n );\n },\n);\n\nexport default DynamicWorksheetPreview;\n"],"names":["DynamicWorksheetPreview","memo","props","studentId","userNodeId","studentName","onBackIconClick","actionBarRightElement","onOpenQuestionFeedbackModal","getDynamicSheetData","dynamicSheetData","isProcessing","isProcessingFailed","error","useGetDynamicSheetData","itemsToBeAssigned","title","nodeType","worksheet","imageHue","itemRefs","ref","isPuzzleSheet","worksheetName","useMemo","fetchDynamicSheetData","useCallback","useEffect","jsx","AppLoader","jsxs","FlexView","Text","Button","PreviewWorksheet","DynamicWorksheetPreview$1"],"mappings":";;;;;;;;AAWA,MAAMA,IAAwDC;AAAA,EAC5D,SAAiCC,GAAO;AACtC,UAAM,EAAE,WAAAC,GAAW,YAAAC,GAAY,aAAAC,GAAa,iBAAAC,GAAiB,uBAAAC,EAA0B,IAAAL,GACjF,EAAE,6BAAAM,EAAgC,IAAAN,GAElC;AAAA,MACJ,KAAKO;AAAA,MACL,MAAMC;AAAA,MACN,cAAAC;AAAA,MACA,oBAAAC;AAAA,MACA,OAAAC;AAAA,QACEC,EAAuB,GAErB;AAAA,MACJ,OAAOC,IAAoB,CAAC;AAAA,MAC5B,OAAAC;AAAA,MACA,WAAWC,IAAW;AAAA,MACtB,WAAAC;AAAA,IAAA,IACER,KAAoB,CAAA,GAClB,EAAE,WAAWS,MAAaD,KAAa,CAAA,GACvCE,IAAWL,EAAkB,IAAI,CAAC,EAAE,KAAAM,EAAA,MAAUA,CAAG,GAEjDC,IAAgBL,MAAa,eAE7BM,IAAgBC,EAAQ,MACxBF,IAAsB,GAAGjB,CAAW,qCAEjCW,GACN,CAACM,GAAejB,GAAaW,CAAK,CAAC,GAEhCS,IAAwBC,EAAY,MAAM;AAC9C,MAAIvB,KAAaC,KACfK,EAAoBL,CAAU;AAAA,IAE/B,GAAA,CAACK,GAAqBN,GAAWC,CAAU,CAAC;AAM/C,WAJAuB,EAAU,MAAM;AACQ,MAAAF;IAAA,GACrB,CAACA,CAAqB,CAAC,GAEtBd,IACK,gBAAAiB,EAACC,GAAU,EAAA,QAAO,OAAO,CAAA,IAG9BjB,IAEA,gBAAAkB,EAACC,KAAS,WAAW,KAAK,SAAQ,SAAQ,iBAAgB,UAAS,aAAY,UAC7E,UAAA;AAAA,MAAA,gBAAAH,EAACI,GAAK,EAAA,WAAU,MACb,WAAAnB,KAAA,gBAAAA,EAAO,YAAW,uDACrB;AAAA,MACA,gBAAAe;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,QAAQ;AAAA,UACR,MAAK;AAAA,UACL,OAAM;AAAA,UACN,UAAS;AAAA,UACT,OAAM;AAAA,UACN,SAASR;AAAA,QAAA;AAAA,MACX;AAAA,IACF,EAAA,CAAA,IAICL,IAKH,gBAAAQ;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,mBAAmBZ,IAAgB,WAAW;AAAA,QAC9C,UAAAL;AAAA,QACA,UAAS;AAAA,QACT,WAAWd,KAAa;AAAA,QACxB,cAAc;AAAA,QACd,eAAAoB;AAAA,QACA,OAAOH;AAAA,QACP,iBAAAd;AAAA,QACA,UAAUa,KAAY;AAAA,QACtB,uBAAAZ;AAAA,QACA,MAAK;AAAA,QACL,2BAA2BC;AAAA,QAC3B,WAAWc,IAAgB,MAAM;AAAA,MAAA;AAAA,IAAA,IAjB5B;AAAA,EAoBX;AACF,GAEAa,IAAenC;"}
@@ -1,107 +1,105 @@
1
- import { jsxs as f, jsx as o } from "react/jsx-runtime";
2
- import { memo as N, useMemo as i, useRef as P, useCallback as v } from "react";
3
- import B from "../../ui/layout/flex-view.js";
1
+ import { jsxs as p, jsx as r } from "react/jsx-runtime";
2
+ import { memo as b, useMemo as i, useRef as q, useCallback as N } from "react";
3
+ import v from "../../ui/layout/flex-view.js";
4
4
  import L from "../../ui/text/text.js";
5
- import M from "../worksheet/worksheet.js";
6
- import { getWorksheetHeaderLayout as z } from "../worksheet/worksheet-helpers.js";
7
- import V from "./hooks/use-worksheet-layout.js";
8
- import { WorksheetPageWrapper as j, HeaderWrapper as D, Header as O, StyledBackIcon as F, HeaderTitleWrapper as G } from "./worksheet-preview-styled.js";
9
- const U = [
5
+ import P from "../worksheet/worksheet.js";
6
+ import { getWorksheetHeaderLayout as M } from "../worksheet/worksheet-helpers.js";
7
+ import j from "./hooks/use-worksheet-layout.js";
8
+ import { WorksheetPageWrapper as B, HeaderWrapper as D, Header as O, StyledBackIcon as V, HeaderTitleWrapper as z } from "./worksheet-preview-styled.js";
9
+ const F = [
10
10
  "SAT_ENGLISH_ASSESSMENT",
11
11
  "SAT_MATH_ASSESSMENT"
12
- ], te = N(
13
- function(k) {
12
+ ], re = b(
13
+ function(f) {
14
14
  const {
15
- studentId: a,
16
- userType: c,
17
- activityReference: t,
18
- worksheet: S,
15
+ studentId: d,
16
+ userType: a,
17
+ activityReference: o,
18
+ worksheet: k,
19
19
  nodeType: e,
20
- worksheetName: d,
21
- showNudgeBanner: l,
20
+ worksheetName: l,
21
+ showNudgeBanner: c,
22
22
  markedAsCompleted: T,
23
23
  imageHue: m,
24
24
  onWorksheetLoaded: g,
25
- onWorksheetErrored: E,
26
- openQuestionFeedbackModal: W,
27
- onBackIconClick: r,
28
- activityType: w,
29
- canShowActionBar: A,
30
- mode: n,
31
- actionBarRightElement: $,
32
- topOffset: y = 56
33
- } = k, { signed_request: C, questions_signed_request: x } = S, u = i(() => e === "PUZZLE_CARD", [e]), s = i(() => t === "test", [t]), H = i(() => U.includes(e), [e]), R = P(() => null), h = s ? !1 : A, _ = V({
34
- userType: c,
25
+ onWorksheetErrored: S,
26
+ openQuestionFeedbackModal: E,
27
+ onBackIconClick: t,
28
+ activityType: W,
29
+ mode: s,
30
+ actionBarRightElement: w,
31
+ topOffset: $ = 56
32
+ } = f, { signed_request: y, questions_signed_request: A } = k, u = i(() => e === "PUZZLE_CARD", [e]), n = i(() => o === "test", [o]), C = i(() => F.includes(e), [e]), x = q(() => null), H = j({
33
+ userType: a,
35
34
  nodeType: e,
36
- isSATAssessment: H,
37
- showNudgeBanner: l,
38
- topOffset: y,
35
+ isSATAssessment: C,
36
+ showNudgeBanner: c,
37
+ topOffset: $,
39
38
  imageHue: m
40
- }), b = v(() => {
41
- r == null || r();
42
- }, [r]), { bgColor: I, borderColor: q, textColor: p } = z({
43
- isPuzzleWorksheet: u && h,
44
- isTestWorksheet: s,
39
+ }), R = N(() => {
40
+ t == null || t();
41
+ }, [t]), { bgColor: _, borderColor: I, textColor: h } = M({
42
+ isPuzzleWorksheet: u,
43
+ isTestWorksheet: n,
45
44
  imageHue: m
46
45
  });
47
- return /* @__PURE__ */ f(j, { children: [
48
- /* @__PURE__ */ o(D, { children: /* @__PURE__ */ f(
46
+ return /* @__PURE__ */ p(B, { children: [
47
+ /* @__PURE__ */ r(D, { children: /* @__PURE__ */ p(
49
48
  O,
50
49
  {
51
50
  $flexDirection: "row",
52
51
  $alignItems: "center",
53
- $justifyContent: s ? "flex-start" : "center",
54
- $background: I,
52
+ $justifyContent: n ? "flex-start" : "center",
53
+ $background: _,
55
54
  $height: 56,
56
55
  $gutterX: 1,
57
56
  $flexGapX: 1,
58
- $borderColor: q,
57
+ $borderColor: I,
59
58
  children: [
60
- r && /* @__PURE__ */ o(
61
- F,
59
+ t && /* @__PURE__ */ r(
60
+ V,
62
61
  {
63
- $color: p ?? "WHITE",
64
- onClick: b
62
+ $color: h ?? "WHITE",
63
+ onClick: R
65
64
  }
66
65
  ),
67
- /* @__PURE__ */ o(
68
- G,
66
+ /* @__PURE__ */ r(
67
+ z,
69
68
  {
70
- $alignItems: s && !u ? "flex-start" : "center",
71
- children: /* @__PURE__ */ o(L, { $renderAs: "body1", $color: p, children: d || t })
69
+ $alignItems: n && !u ? "flex-start" : "center",
70
+ children: /* @__PURE__ */ r(L, { $renderAs: "body1", $color: h, children: l || o })
72
71
  }
73
72
  )
74
73
  ]
75
74
  }
76
75
  ) }),
77
- /* @__PURE__ */ o(B, { $alignItems: "center", children: /* @__PURE__ */ o(
78
- M,
76
+ /* @__PURE__ */ r(v, { $alignItems: "center", children: /* @__PURE__ */ r(
77
+ P,
79
78
  {
80
- userType: c ?? (n === "review" ? "TEACHER" : "STUDENT"),
81
- worksheetCompleted: n === "review",
82
- worksheetName: d || t,
83
- itemsSignedRequest: C,
84
- questionsSignedRequest: x,
85
- studentId: a,
86
- layout: _,
87
- canShowActionBar: h,
88
- loggerRef: R,
89
- showNudgeBanner: l,
79
+ userType: a ?? (s === "review" ? "TEACHER" : "STUDENT"),
80
+ worksheetCompleted: s === "review",
81
+ worksheetName: l || o,
82
+ itemsSignedRequest: y,
83
+ questionsSignedRequest: A,
84
+ studentId: d,
85
+ layout: H,
86
+ loggerRef: x,
87
+ showNudgeBanner: c,
90
88
  markedAsCompleted: T,
91
89
  onLoaded: g,
92
- onErrored: E,
93
- userId: a,
94
- openQuestionFeedbackModal: W,
90
+ onErrored: S,
91
+ userId: d,
92
+ openQuestionFeedbackModal: E,
95
93
  nodeType: e,
96
- mode: n,
97
- activityType: w,
98
- actionBarRightElement: $
94
+ mode: s,
95
+ activityType: W,
96
+ actionBarRightElement: w
99
97
  }
100
98
  ) })
101
99
  ] });
102
100
  }
103
101
  );
104
102
  export {
105
- te as default
103
+ re as default
106
104
  };
107
105
  //# sourceMappingURL=worksheet-preview-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet-preview-view.js","sources":["../../../../src/features/worksheet/worksheet-preview/worksheet-preview-view.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, useRef, type FC } from 'react';\n\nimport type { IResumeWorksheetModel } from '../../../types/models/worksheet';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport Worksheet from '../worksheet/worksheet';\nimport { getWorksheetHeaderLayout } from '../worksheet/worksheet-helpers';\nimport useWorksheetLayout from './hooks/use-worksheet-layout';\nimport * as Styled from './worksheet-preview-styled';\nimport type { IPreviewWorksheetViewProps } from './worksheet-preview-types';\n\nconst SAT_WORKSHEET_TYPES: IResumeWorksheetModel['node_type'][] = [\n 'SAT_ENGLISH_ASSESSMENT',\n 'SAT_MATH_ASSESSMENT',\n];\n\nconst PreviewWorksheetView: FC<IPreviewWorksheetViewProps> = memo(\n function PreviewWorksheetView(props) {\n const {\n studentId,\n userType,\n activityReference,\n worksheet,\n nodeType,\n worksheetName,\n showNudgeBanner,\n markedAsCompleted,\n imageHue,\n onWorksheetLoaded,\n onWorksheetErrored,\n openQuestionFeedbackModal,\n onBackIconClick,\n activityType,\n canShowActionBar,\n mode,\n actionBarRightElement,\n topOffset = 56,\n } = props;\n const { signed_request: signedRequest, questions_signed_request: questionsSignedRequest } =\n worksheet;\n\n const isPuzzleWorksheet = useMemo(() => nodeType === 'PUZZLE_CARD', [nodeType]);\n const isTestWorksheet = useMemo(() => activityReference === 'test', [activityReference]);\n const isSATAssessment = useMemo(() => SAT_WORKSHEET_TYPES.includes(nodeType), [nodeType]);\n const loggerRef = useRef(() => null);\n const isActionBarVisible = isTestWorksheet ? false : canShowActionBar;\n\n const layout = useWorksheetLayout({\n userType,\n nodeType,\n isSATAssessment,\n showNudgeBanner,\n topOffset,\n imageHue,\n });\n\n const handleOnBackIconClick = useCallback(() => {\n onBackIconClick?.();\n }, [onBackIconClick]);\n\n const { bgColor, borderColor, textColor } = getWorksheetHeaderLayout({\n isPuzzleWorksheet: isPuzzleWorksheet && isActionBarVisible,\n isTestWorksheet,\n imageHue,\n });\n\n return (\n <Styled.WorksheetPageWrapper>\n <Styled.HeaderWrapper>\n <Styled.Header\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent={isTestWorksheet ? 'flex-start' : 'center'}\n $background={bgColor}\n $height={56}\n $gutterX={1}\n $flexGapX={1}\n $borderColor={borderColor}\n >\n {onBackIconClick && (\n <Styled.StyledBackIcon\n $color={textColor ?? 'WHITE'}\n onClick={handleOnBackIconClick}\n />\n )}\n\n <Styled.HeaderTitleWrapper\n $alignItems={isTestWorksheet && !isPuzzleWorksheet ? 'flex-start' : 'center'}\n >\n <Text $renderAs=\"body1\" $color={textColor}>\n {worksheetName || activityReference}\n </Text>\n </Styled.HeaderTitleWrapper>\n </Styled.Header>\n </Styled.HeaderWrapper>\n\n <FlexView $alignItems=\"center\">\n <Worksheet\n userType={userType ?? (mode === 'review' ? 'TEACHER' : 'STUDENT')}\n worksheetCompleted={mode === 'review'}\n worksheetName={worksheetName || activityReference}\n itemsSignedRequest={signedRequest}\n questionsSignedRequest={questionsSignedRequest}\n studentId={studentId}\n layout={layout}\n canShowActionBar={isActionBarVisible}\n loggerRef={loggerRef}\n showNudgeBanner={showNudgeBanner}\n markedAsCompleted={markedAsCompleted}\n onLoaded={onWorksheetLoaded}\n onErrored={onWorksheetErrored}\n userId={studentId}\n openQuestionFeedbackModal={openQuestionFeedbackModal}\n nodeType={nodeType}\n mode={mode}\n activityType={activityType}\n actionBarRightElement={actionBarRightElement}\n />\n </FlexView>\n </Styled.WorksheetPageWrapper>\n );\n },\n);\n\nexport default PreviewWorksheetView;\n"],"names":["SAT_WORKSHEET_TYPES","PreviewWorksheetView","memo","props","studentId","userType","activityReference","worksheet","nodeType","worksheetName","showNudgeBanner","markedAsCompleted","imageHue","onWorksheetLoaded","onWorksheetErrored","openQuestionFeedbackModal","onBackIconClick","activityType","canShowActionBar","mode","actionBarRightElement","topOffset","signedRequest","questionsSignedRequest","isPuzzleWorksheet","useMemo","isTestWorksheet","isSATAssessment","loggerRef","useRef","isActionBarVisible","layout","useWorksheetLayout","handleOnBackIconClick","useCallback","bgColor","borderColor","textColor","getWorksheetHeaderLayout","jsxs","Styled.WorksheetPageWrapper","jsx","Styled.HeaderWrapper","Styled.Header","Styled.StyledBackIcon","Styled.HeaderTitleWrapper","Text","FlexView","Worksheet"],"mappings":"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"}
1
+ {"version":3,"file":"worksheet-preview-view.js","sources":["../../../../src/features/worksheet/worksheet-preview/worksheet-preview-view.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, useRef, type FC } from 'react';\n\nimport type { IResumeWorksheetModel } from '../../../types/models/worksheet';\nimport FlexView from '../../ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport Worksheet from '../worksheet/worksheet';\nimport { getWorksheetHeaderLayout } from '../worksheet/worksheet-helpers';\nimport useWorksheetLayout from './hooks/use-worksheet-layout';\nimport * as Styled from './worksheet-preview-styled';\nimport type { IPreviewWorksheetViewProps } from './worksheet-preview-types';\n\nconst SAT_WORKSHEET_TYPES: IResumeWorksheetModel['node_type'][] = [\n 'SAT_ENGLISH_ASSESSMENT',\n 'SAT_MATH_ASSESSMENT',\n];\n\nconst PreviewWorksheetView: FC<IPreviewWorksheetViewProps> = memo(\n function PreviewWorksheetView(props) {\n const {\n studentId,\n userType,\n activityReference,\n worksheet,\n nodeType,\n worksheetName,\n showNudgeBanner,\n markedAsCompleted,\n imageHue,\n onWorksheetLoaded,\n onWorksheetErrored,\n openQuestionFeedbackModal,\n onBackIconClick,\n activityType,\n mode,\n actionBarRightElement,\n topOffset = 56,\n } = props;\n const { signed_request: signedRequest, questions_signed_request: questionsSignedRequest } =\n worksheet;\n\n const isPuzzleWorksheet = useMemo(() => nodeType === 'PUZZLE_CARD', [nodeType]);\n const isTestWorksheet = useMemo(() => activityReference === 'test', [activityReference]);\n const isSATAssessment = useMemo(() => SAT_WORKSHEET_TYPES.includes(nodeType), [nodeType]);\n const loggerRef = useRef(() => null);\n\n const layout = useWorksheetLayout({\n userType,\n nodeType,\n isSATAssessment,\n showNudgeBanner,\n topOffset,\n imageHue,\n });\n\n const handleOnBackIconClick = useCallback(() => {\n onBackIconClick?.();\n }, [onBackIconClick]);\n\n const { bgColor, borderColor, textColor } = getWorksheetHeaderLayout({\n isPuzzleWorksheet: isPuzzleWorksheet,\n isTestWorksheet,\n imageHue,\n });\n\n return (\n <Styled.WorksheetPageWrapper>\n <Styled.HeaderWrapper>\n <Styled.Header\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent={isTestWorksheet ? 'flex-start' : 'center'}\n $background={bgColor}\n $height={56}\n $gutterX={1}\n $flexGapX={1}\n $borderColor={borderColor}\n >\n {onBackIconClick && (\n <Styled.StyledBackIcon\n $color={textColor ?? 'WHITE'}\n onClick={handleOnBackIconClick}\n />\n )}\n\n <Styled.HeaderTitleWrapper\n $alignItems={isTestWorksheet && !isPuzzleWorksheet ? 'flex-start' : 'center'}\n >\n <Text $renderAs=\"body1\" $color={textColor}>\n {worksheetName || activityReference}\n </Text>\n </Styled.HeaderTitleWrapper>\n </Styled.Header>\n </Styled.HeaderWrapper>\n\n <FlexView $alignItems=\"center\">\n <Worksheet\n userType={userType ?? (mode === 'review' ? 'TEACHER' : 'STUDENT')}\n worksheetCompleted={mode === 'review'}\n worksheetName={worksheetName || activityReference}\n itemsSignedRequest={signedRequest}\n questionsSignedRequest={questionsSignedRequest}\n studentId={studentId}\n layout={layout}\n loggerRef={loggerRef}\n showNudgeBanner={showNudgeBanner}\n markedAsCompleted={markedAsCompleted}\n onLoaded={onWorksheetLoaded}\n onErrored={onWorksheetErrored}\n userId={studentId}\n openQuestionFeedbackModal={openQuestionFeedbackModal}\n nodeType={nodeType}\n mode={mode}\n activityType={activityType}\n actionBarRightElement={actionBarRightElement}\n />\n </FlexView>\n </Styled.WorksheetPageWrapper>\n );\n },\n);\n\nexport default PreviewWorksheetView;\n"],"names":["SAT_WORKSHEET_TYPES","PreviewWorksheetView","memo","props","studentId","userType","activityReference","worksheet","nodeType","worksheetName","showNudgeBanner","markedAsCompleted","imageHue","onWorksheetLoaded","onWorksheetErrored","openQuestionFeedbackModal","onBackIconClick","activityType","mode","actionBarRightElement","topOffset","signedRequest","questionsSignedRequest","isPuzzleWorksheet","useMemo","isTestWorksheet","isSATAssessment","loggerRef","useRef","layout","useWorksheetLayout","handleOnBackIconClick","useCallback","bgColor","borderColor","textColor","getWorksheetHeaderLayout","jsxs","Styled.WorksheetPageWrapper","jsx","Styled.HeaderWrapper","Styled.Header","Styled.StyledBackIcon","Styled.HeaderTitleWrapper","Text","FlexView","Worksheet"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1116,7 +1116,6 @@ declare interface IBaseWorksheetProps {
1116
1116
  showNudgeBanner?: boolean;
1117
1117
  markedAsCompleted?: boolean;
1118
1118
  canResolveDoubt?: boolean;
1119
- canShowActionBar?: boolean;
1120
1119
  actionBarRightElement?: ReactElement;
1121
1120
  attemptId?: string;
1122
1121
  itemsSignedRequest: string;
@@ -3535,7 +3534,6 @@ declare interface IPreviewWorksheetProps {
3535
3534
  onWorksheetLoaded?: (loaded: boolean) => void;
3536
3535
  canStartUnassignJourney?: boolean;
3537
3536
  actionBarRightElement?: ReactElement;
3538
- canShowActionBar?: boolean;
3539
3537
  topOffset?: number;
3540
3538
  }
3541
3539
 
@@ -0,0 +1,5 @@
1
+ const a = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
2
+ export {
3
+ a as default
4
+ };
5
+ //# sourceMappingURL=regex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/regex.js"],"sourcesContent":["export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;"],"names":["REGEX"],"mappings":"AAAA,MAAAA,IAAe;","x_google_ignoreList":[0]}
@@ -1,7 +1,6 @@
1
- let t;
2
- const e = new Uint8Array(16);
1
+ var t, e = new Uint8Array(16);
3
2
  function o() {
4
- if (!t && (t = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !t))
3
+ if (!t && (t = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto < "u" && typeof msCrypto.getRandomValues == "function" && msCrypto.getRandomValues.bind(msCrypto), !t))
5
4
  throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
6
5
  return t(e);
7
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rng.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/rng.js"],"sourcesContent":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}"],"names":["getRandomValues","rnds8","rng"],"mappings":"AAGA,IAAIA;AACJ,MAAMC,IAAQ,IAAI,WAAW,EAAE;AAChB,SAASC,IAAM;AAE5B,MAAI,CAACF,MAEHA,IAAkB,OAAO,SAAW,OAAe,OAAO,mBAAmB,OAAO,gBAAgB,KAAK,MAAM,GAE3G,CAACA;AACH,UAAM,IAAI,MAAM,0GAA0G;AAI9H,SAAOA,EAAgBC,CAAK;AAC9B;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"rng.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/rng.js"],"sourcesContent":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}"],"names":["getRandomValues","rnds8","rng"],"mappings":"AAGA,IAAIA,GACAC,IAAQ,IAAI,WAAW,EAAE;AACd,SAASC,IAAM;AAE5B,MAAI,CAACF,MAGHA,IAAkB,OAAO,SAAW,OAAe,OAAO,mBAAmB,OAAO,gBAAgB,KAAK,MAAM,KAAK,OAAO,WAAa,OAAe,OAAO,SAAS,mBAAoB,cAAc,SAAS,gBAAgB,KAAK,QAAQ,GAE3O,CAACA;AACH,UAAM,IAAI,MAAM,0GAA0G;AAI9H,SAAOA,EAAgBC,CAAK;AAC9B;","x_google_ignoreList":[0]}
@@ -1,10 +1,14 @@
1
- const i = [];
2
- for (let n = 0; n < 256; ++n)
3
- i.push((n + 256).toString(16).slice(1));
4
- function c(n, u = 0) {
5
- return (i[n[u + 0]] + i[n[u + 1]] + i[n[u + 2]] + i[n[u + 3]] + "-" + i[n[u + 4]] + i[n[u + 5]] + "-" + i[n[u + 6]] + i[n[u + 7]] + "-" + i[n[u + 8]] + i[n[u + 9]] + "-" + i[n[u + 10]] + i[n[u + 11]] + i[n[u + 12]] + i[n[u + 13]] + i[n[u + 14]] + i[n[u + 15]]).toLowerCase();
1
+ import s from "./validate.js";
2
+ var t = [];
3
+ for (var n = 0; n < 256; ++n)
4
+ t.push((n + 256).toString(16).substr(1));
5
+ function f(e) {
6
+ var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, o = (t[e[i + 0]] + t[e[i + 1]] + t[e[i + 2]] + t[e[i + 3]] + "-" + t[e[i + 4]] + t[e[i + 5]] + "-" + t[e[i + 6]] + t[e[i + 7]] + "-" + t[e[i + 8]] + t[e[i + 9]] + "-" + t[e[i + 10]] + t[e[i + 11]] + t[e[i + 12]] + t[e[i + 13]] + t[e[i + 14]] + t[e[i + 15]]).toLowerCase();
7
+ if (!s(o))
8
+ throw TypeError("Stringified UUID is invalid");
9
+ return o;
6
10
  }
7
11
  export {
8
- c as unsafeStringify
12
+ f as default
9
13
  };
10
14
  //# sourceMappingURL=stringify.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stringify.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/stringify.js"],"sourcesContent":["import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;"],"names":["byteToHex","i","unsafeStringify","arr","offset"],"mappings":"AAMA,MAAMA,IAAY,CAAA;AAElB,SAASC,IAAI,GAAGA,IAAI,KAAK,EAAEA;AACzB,EAAAD,EAAU,MAAMC,IAAI,KAAO,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AAG3C,SAASC,EAAgBC,GAAKC,IAAS,GAAG;AAG/C,UAAQJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAI,MAAMJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAI,MAAMJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAI,MAAMJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAI,MAAMJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,GAAG;AACvf;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"stringify.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/stringify.js"],"sourcesContent":["import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;"],"names":["byteToHex","i","stringify","arr","offset","uuid","validate"],"mappings":";AAMA,IAAIA,IAAY,CAAA;AAEhB,SAASC,IAAI,GAAGA,IAAI,KAAK,EAAEA;AACzB,EAAAD,EAAU,MAAMC,IAAI,KAAO,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;AAGnD,SAASC,EAAUC,GAAK;AACtB,MAAIC,IAAS,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,GAG7EC,KAAQL,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAI,MAAMJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAI,MAAMJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAI,MAAMJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,CAAC,CAAC,IAAI,MAAMJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,IAAIJ,EAAUG,EAAIC,IAAS,EAAE,CAAC,GAAG;AAMzf,MAAI,CAACE,EAASD,CAAI;AAChB,UAAM,UAAU,6BAA6B;AAG/C,SAAOA;AACT;","x_google_ignoreList":[0]}
@@ -1,20 +1,17 @@
1
- import e from "./native.js";
2
- import i from "./rng.js";
3
- import { unsafeStringify as d } from "./stringify.js";
4
- function g(n, m, t) {
5
- if (e.randomUUID && !m && !n)
6
- return e.randomUUID();
1
+ import d from "./rng.js";
2
+ import f from "./stringify.js";
3
+ function v(n, m, x) {
7
4
  n = n || {};
8
- const r = n.random || (n.rng || i)();
5
+ var r = n.random || (n.rng || d)();
9
6
  if (r[6] = r[6] & 15 | 64, r[8] = r[8] & 63 | 128, m) {
10
- t = t || 0;
11
- for (let a = 0; a < 16; ++a)
12
- m[t + a] = r[a];
7
+ x = x || 0;
8
+ for (var a = 0; a < 16; ++a)
9
+ m[x + a] = r[a];
13
10
  return m;
14
11
  }
15
- return d(r);
12
+ return f(r);
16
13
  }
17
14
  export {
18
- g as default
15
+ v as default
19
16
  };
20
17
  //# sourceMappingURL=v4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"v4.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/v4.js"],"sourcesContent":["import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;"],"names":["v4","options","buf","offset","native","rnds","rng","i","unsafeStringify"],"mappings":";;;AAIA,SAASA,EAAGC,GAASC,GAAKC,GAAQ;AAChC,MAAIC,EAAO,cAAc,CAACF,KAAO,CAACD;AAChC,WAAOG,EAAO;AAGhB,EAAAH,IAAUA,KAAW;AACrB,QAAMI,IAAOJ,EAAQ,WAAWA,EAAQ,OAAOK;AAK/C,MAHAD,EAAK,CAAC,IAAIA,EAAK,CAAC,IAAI,KAAO,IAC3BA,EAAK,CAAC,IAAIA,EAAK,CAAC,IAAI,KAAO,KAEvBH,GAAK;AACP,IAAAC,IAASA,KAAU;AAEnB,aAASI,IAAI,GAAGA,IAAI,IAAI,EAAEA;AACxB,MAAAL,EAAIC,IAASI,CAAC,IAAIF,EAAKE,CAAC;AAG1B,WAAOL;AAAA,EACR;AAED,SAAOM,EAAgBH,CAAI;AAC7B;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"v4.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/v4.js"],"sourcesContent":["import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;"],"names":["v4","options","buf","offset","rnds","rng","i","stringify"],"mappings":";;AAGA,SAASA,EAAGC,GAASC,GAAKC,GAAQ;AAChC,EAAAF,IAAUA,KAAW;AACrB,MAAIG,IAAOH,EAAQ,WAAWA,EAAQ,OAAOI;AAK7C,MAHAD,EAAK,CAAC,IAAIA,EAAK,CAAC,IAAI,KAAO,IAC3BA,EAAK,CAAC,IAAIA,EAAK,CAAC,IAAI,KAAO,KAEvBF,GAAK;AACP,IAAAC,IAASA,KAAU;AAEnB,aAASG,IAAI,GAAGA,IAAI,IAAI,EAAEA;AACxB,MAAAJ,EAAIC,IAASG,CAAC,IAAIF,EAAKE,CAAC;AAG1B,WAAOJ;AAAA,EACR;AAED,SAAOK,EAAUH,CAAI;AACvB;","x_google_ignoreList":[0]}
@@ -0,0 +1,8 @@
1
+ import e from "./regex.js";
2
+ function o(t) {
3
+ return typeof t == "string" && e.test(t);
4
+ }
5
+ export {
6
+ o as default
7
+ };
8
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/validate.js"],"sourcesContent":["import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;"],"names":["validate","uuid","REGEX"],"mappings":";AAEA,SAASA,EAASC,GAAM;AACtB,SAAO,OAAOA,KAAS,YAAYC,EAAM,KAAKD,CAAI;AACpD;","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "3.5.61",
3
+ "version": "3.5.62",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -1,7 +0,0 @@
1
- const o = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), t = {
2
- randomUUID: o
3
- };
4
- export {
5
- t as default
6
- };
7
- //# sourceMappingURL=native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"native.js","sources":["../../../../../node_modules/uuid/dist/esm-browser/native.js"],"sourcesContent":["const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};"],"names":["randomUUID","native"],"mappings":"AAAA,MAAMA,IAAa,OAAO,SAAW,OAAe,OAAO,cAAc,OAAO,WAAW,KAAK,MAAM,GACvFC,IAAA;AAAA,EACb,YAAAD;AACF;","x_google_ignoreList":[0]}