@cuemath/leap 3.0.22-aa16 → 3.0.22-aa17

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 (83) hide show
  1. package/dist/assets/line-icons/icons/check.js +3 -3
  2. package/dist/assets/line-icons/icons/check.js.map +1 -1
  3. package/dist/features/cue-canvas/cue-canvas-context.js +5 -8
  4. package/dist/features/cue-canvas/cue-canvas-context.js.map +1 -1
  5. package/dist/features/cue-canvas/cue-canvas-core.js +65 -69
  6. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  7. package/dist/features/cue-canvas/cue-canvas-helpers.js +25 -31
  8. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  9. package/dist/features/cue-canvas/cue-canvas-provider.js +12 -14
  10. package/dist/features/cue-canvas/cue-canvas-provider.js.map +1 -1
  11. package/dist/features/cue-canvas/cue-canvas.js +59 -61
  12. package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
  13. package/dist/features/cue-canvas/cue-cavas-styled.js +42 -45
  14. package/dist/features/cue-canvas/cue-cavas-styled.js.map +1 -1
  15. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +46 -50
  16. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  17. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js +14 -18
  18. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js.map +1 -1
  19. package/dist/features/ui/error/error.js +20 -20
  20. package/dist/features/ui/error/error.js.map +1 -1
  21. package/dist/features/ui/stepper/stepper.js +7 -7
  22. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js +19 -22
  23. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js.map +1 -1
  24. package/dist/features/worksheet/worksheet/worksheet-helpers.js +58 -57
  25. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  26. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js +95 -91
  27. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -1
  28. package/dist/index.d.ts +3 -36
  29. package/dist/index.js +209 -213
  30. package/dist/index.js.map +1 -1
  31. package/dist/node_modules/react-error-boundary/dist/react-error-boundary.esm.js +33 -0
  32. package/dist/node_modules/react-error-boundary/dist/react-error-boundary.esm.js.map +1 -0
  33. package/package.json +2 -1
  34. package/dist/assets/line-icons/icons/puzzle-icon.js +0 -51
  35. package/dist/assets/line-icons/icons/puzzle-icon.js.map +0 -1
  36. package/dist/assets/line-icons/icons/share.js +0 -48
  37. package/dist/assets/line-icons/icons/share.js.map +0 -1
  38. package/dist/assets/line-icons/icons/tile.js +0 -54
  39. package/dist/assets/line-icons/icons/tile.js.map +0 -1
  40. package/dist/features/cue-canvas/bottombar/homework-controls.js +0 -73
  41. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +0 -1
  42. package/dist/features/cue-canvas/hooks/use-upload-helper.js +0 -23
  43. package/dist/features/cue-canvas/hooks/use-upload-helper.js.map +0 -1
  44. package/dist/features/cue-canvas/sidebar/homework/helper.js +0 -20
  45. package/dist/features/cue-canvas/sidebar/homework/helper.js.map +0 -1
  46. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js +0 -33
  47. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +0 -1
  48. package/dist/features/cue-canvas/sidebar/homework/homework-request.js +0 -68
  49. package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +0 -1
  50. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js +0 -25
  51. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js.map +0 -1
  52. package/dist/features/cue-canvas/sidebar/homework/homework.js +0 -39
  53. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +0 -1
  54. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js +0 -13
  55. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +0 -1
  56. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js +0 -60
  57. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js.map +0 -1
  58. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js +0 -44
  59. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js.map +0 -1
  60. package/dist/features/cue-canvas/sidebar/puzzles/filters.js +0 -107
  61. package/dist/features/cue-canvas/sidebar/puzzles/filters.js.map +0 -1
  62. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js +0 -42
  63. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js.map +0 -1
  64. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js +0 -84
  65. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +0 -1
  66. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js +0 -36
  67. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js.map +0 -1
  68. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js +0 -133
  69. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js.map +0 -1
  70. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js +0 -96
  71. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js.map +0 -1
  72. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js +0 -29
  73. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +0 -1
  74. package/dist/features/cue-canvas/sidebar/puzzles/utils.js +0 -120
  75. package/dist/features/cue-canvas/sidebar/puzzles/utils.js.map +0 -1
  76. package/dist/features/cue-canvas/sidebar/sidebar-styled.js +0 -32
  77. package/dist/features/cue-canvas/sidebar/sidebar-styled.js.map +0 -1
  78. package/dist/features/cue-canvas/sidebar/sidebar.js +0 -29
  79. package/dist/features/cue-canvas/sidebar/sidebar.js.map +0 -1
  80. package/dist/features/cue-canvas/sidebar/tiles/tile.js +0 -16
  81. package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +0 -1
  82. package/dist/features/hooks/use-debounce.js +0 -16
  83. package/dist/features/hooks/use-debounce.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"use-canvas-sync-broker.js","sources":["../../../../src/features/cue-canvas/hooks/use-canvas-sync-broker.ts"],"sourcesContent":["import type {\n IActionData,\n IViewport,\n TCueCanvasChangeDataObject,\n TCueCanvasGridName,\n TRenderAs,\n} from '../types/cue-canvas';\n\nimport { useMessageBrokerChannel, type IChannelMessage } from '@cuemath/cue-message-broker';\nimport { useMemo, useCallback, useState, useRef } from 'react';\n\ninterface IMessage {\n eventName: string;\n eventPayload: {\n responseId: string;\n data: TCueCanvasChangeDataObject;\n userId: string;\n height: number;\n gridName?: TCueCanvasGridName;\n dimension?: IViewport;\n };\n}\n\nconst extractStrokeData = (payload: IMessage['eventPayload']): IActionData => ({\n userId: payload.userId,\n data: payload.data,\n height: payload.height,\n responseId: payload.responseId,\n gridName: payload.gridName,\n dimension: payload.dimension,\n});\n\nconst useCanvasSyncBroker = (\n channelId: string,\n logEvent: (type: string, payload?: Record<string, unknown>) => void,\n initialCanvasData?: Array<IChannelMessage>,\n type: TRenderAs = 'canvas',\n) => {\n const [initialStrokesData, setInitialStrokesData] = useState<Record<string, IActionData[]>>(\n () => {\n const map: Record<string, IActionData[]> = {};\n\n if (!initialCanvasData) return map;\n\n for (const { message } of initialCanvasData) {\n const payload = (message.payload as IMessage)?.eventPayload;\n const qrId = payload?.responseId;\n\n if (!payload?.responseId) continue;\n\n const strokeData = extractStrokeData(payload);\n\n if (qrId && map[qrId]) {\n map[qrId]?.push(strokeData);\n } else {\n map[qrId] = [strokeData];\n }\n }\n\n return map;\n },\n );\n const callbacksMapRef = useRef<Record<string, (data: IActionData) => void>>({});\n\n const channelOptions = useMemo(\n () => ({\n channelId,\n ttl: type === 'canvas' ? 0 : 24,\n logger: logEvent,\n }),\n [channelId, logEvent, type],\n );\n\n const registerCallback = useCallback((qrId: string, cb: (data: IActionData) => void) => {\n callbacksMapRef.current = { ...callbacksMapRef.current, [qrId]: cb };\n }, []);\n\n const onMessageReceive = useCallback(\n (messages: Array<IChannelMessage>, initialData?: boolean) => {\n const strokesPerWidgetMap: Record<string, Array<IActionData>> = {};\n\n messages.forEach(message => {\n const { payload } = message.message;\n const { eventPayload } = payload as IMessage;\n const qrId = eventPayload?.responseId as string;\n const strokes = eventPayload?.data;\n const userId = eventPayload?.userId;\n const canvasHeight = eventPayload?.height;\n const widgetOnReceiveCallback = callbacksMapRef.current[qrId];\n\n if (!initialData && widgetOnReceiveCallback) {\n widgetOnReceiveCallback({\n data: strokes,\n height: canvasHeight,\n userId,\n responseId: qrId,\n gridName: eventPayload?.gridName,\n dimension: eventPayload?.dimension,\n });\n } else {\n const strokeData = extractStrokeData(eventPayload);\n\n if (qrId && strokesPerWidgetMap[qrId]) {\n strokesPerWidgetMap[qrId]?.push(strokeData);\n } else {\n strokesPerWidgetMap[qrId] = [strokeData];\n }\n }\n });\n\n if (Object.keys(strokesPerWidgetMap).length > 0) {\n setInitialStrokesData(prevData => {\n const currentData = { ...prevData };\n\n Object.keys(strokesPerWidgetMap).forEach(key => {\n if (key && currentData[key]) {\n currentData[key]?.push(...(strokesPerWidgetMap[key] ?? []));\n } else {\n currentData[key] = strokesPerWidgetMap[key] ?? [];\n }\n });\n\n return currentData;\n });\n }\n },\n [],\n );\n\n const { publish, channelStatus, channel } = useMessageBrokerChannel({\n channelOptions,\n consumerFn: onMessageReceive,\n });\n\n const closeChannel = useCallback(() => {\n if (channel) {\n channel.destroyChannel();\n }\n }, [channel]);\n\n return {\n publishStrokes: publish,\n channelStatus,\n closeChannel,\n initialStrokesData,\n registerCallback,\n };\n};\n\nexport default useCanvasSyncBroker;\n"],"names":["extractStrokeData","payload","useCanvasSyncBroker","channelId","logEvent","initialCanvasData","type","initialStrokesData","setInitialStrokesData","useState","map","message","_a","qrId","strokeData","_b","callbacksMapRef","useRef","channelOptions","useMemo","registerCallback","useCallback","cb","onMessageReceive","messages","initialData","strokesPerWidgetMap","eventPayload","strokes","userId","canvasHeight","widgetOnReceiveCallback","prevData","currentData","key","publish","channelStatus","channel","useMessageBrokerChannel","closeChannel","useCanvasSyncBroker$1"],"mappings":"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"}
1
+ {"version":3,"file":"use-canvas-sync-broker.js","sources":["../../../../src/features/cue-canvas/hooks/use-canvas-sync-broker.ts"],"sourcesContent":["import type { IActionData, TCueCanvasChangeDataObject } from '../types/cue-canvas';\n\nimport { useMessageBrokerChannel, type IChannelMessage } from '@cuemath/cue-message-broker';\nimport { useMemo, useCallback, useState, useRef } from 'react';\n\ninterface IMessage {\n eventName: string;\n eventPayload: {\n responseId: string;\n data: TCueCanvasChangeDataObject;\n userId: string;\n height: number;\n };\n}\n\nconst extractStrokeData = (payload: IMessage['eventPayload']): IActionData => ({\n userId: payload.userId,\n data: payload.data,\n height: payload.height,\n responseId: payload.responseId,\n});\n\nconst useCanvasSyncBroker = (\n channelId: string,\n logEvent: (type: string, payload?: Record<string, unknown>) => void,\n initialCanvasData?: Array<IChannelMessage>,\n) => {\n const [initialStrokesData, setInitialStrokesData] = useState<Record<string, IActionData[]>>(\n () => {\n const map: Record<string, IActionData[]> = {};\n\n if (!initialCanvasData) return map;\n\n for (const { message } of initialCanvasData) {\n const payload = (message.payload as IMessage)?.eventPayload;\n const qrId = payload?.responseId;\n\n if (!payload?.responseId) continue;\n\n const strokeData = extractStrokeData(payload);\n\n if (qrId && map[qrId]) {\n map[qrId]?.push(strokeData);\n } else {\n map[qrId] = [strokeData];\n }\n }\n\n return map;\n },\n );\n const callbacksMapRef = useRef<Record<string, (data: IActionData) => void>>({});\n\n const channelOptions = useMemo(\n () => ({\n channelId,\n ttl: 0,\n logger: logEvent,\n }),\n [channelId, logEvent],\n );\n\n const registerCallback = useCallback((qrId: string, cb: (data: IActionData) => void) => {\n callbacksMapRef.current = { ...callbacksMapRef.current, [qrId]: cb };\n }, []);\n\n const onMessageReceive = useCallback(\n (messages: Array<IChannelMessage>, initialData?: boolean) => {\n const strokesPerWidgetMap: Record<string, Array<IActionData>> = {};\n\n messages.forEach(message => {\n const { payload } = message.message;\n const { eventPayload } = payload as IMessage;\n const qrId = eventPayload?.responseId as string;\n const strokes = eventPayload?.data;\n const userId = eventPayload?.userId;\n const canvasHeight = eventPayload?.height;\n const widgetOnReceiveCallback = callbacksMapRef.current[qrId];\n\n if (!initialData && widgetOnReceiveCallback) {\n widgetOnReceiveCallback({\n data: strokes,\n height: canvasHeight,\n userId,\n responseId: qrId,\n });\n } else {\n const strokeData = extractStrokeData(eventPayload);\n\n if (qrId && strokesPerWidgetMap[qrId]) {\n strokesPerWidgetMap[qrId]?.push(strokeData);\n } else {\n strokesPerWidgetMap[qrId] = [strokeData];\n }\n }\n });\n\n if (Object.keys(strokesPerWidgetMap).length > 0) {\n setInitialStrokesData(prevData => {\n const currentData = { ...prevData };\n\n Object.keys(strokesPerWidgetMap).forEach(key => {\n if (key && currentData[key]) {\n currentData[key]?.push(...(strokesPerWidgetMap[key] ?? []));\n } else {\n currentData[key] = strokesPerWidgetMap[key] ?? [];\n }\n });\n\n return currentData;\n });\n }\n },\n [],\n );\n\n const { publish, channelStatus, channel } = useMessageBrokerChannel({\n channelOptions,\n consumerFn: onMessageReceive,\n });\n\n const closeChannel = useCallback(() => {\n if (channel) {\n channel.destroyChannel();\n }\n }, [channel]);\n\n return {\n publishStrokes: publish,\n channelStatus,\n closeChannel,\n initialStrokesData,\n registerCallback,\n };\n};\n\nexport default useCanvasSyncBroker;\n"],"names":["extractStrokeData","payload","useCanvasSyncBroker","channelId","logEvent","initialCanvasData","initialStrokesData","setInitialStrokesData","useState","map","message","_a","qrId","strokeData","_b","callbacksMapRef","useRef","channelOptions","useMemo","registerCallback","useCallback","cb","onMessageReceive","messages","initialData","strokesPerWidgetMap","eventPayload","strokes","userId","canvasHeight","widgetOnReceiveCallback","prevData","currentData","key","publish","channelStatus","channel","useMessageBrokerChannel","closeChannel","useCanvasSyncBroker$1"],"mappings":";;AAeA,MAAMA,IAAoB,CAACC,OAAoD;AAAA,EAC7E,QAAQA,EAAQ;AAAA,EAChB,MAAMA,EAAQ;AAAA,EACd,QAAQA,EAAQ;AAAA,EAChB,YAAYA,EAAQ;AACtB,IAEMC,IAAsB,CAC1BC,GACAC,GACAC,MACG;AACG,QAAA,CAACC,GAAoBC,CAAqB,IAAIC;AAAA,IAClD,MAAM;;AACJ,YAAMC,IAAqC,CAAA;AAEvC,UAAA,CAACJ,EAA0B,QAAAI;AAEpB,iBAAA,EAAE,SAAAC,EAAQ,KAAKL,GAAmB;AACrC,cAAAJ,KAAWU,IAAAD,EAAQ,YAAR,gBAAAC,EAA8B,cACzCC,IAAOX,KAAA,gBAAAA,EAAS;AAElB,YAAA,EAACA,KAAA,QAAAA,EAAS,YAAY;AAEpB,cAAAY,IAAab,EAAkBC,CAAO;AAExC,QAAAW,KAAQH,EAAIG,CAAI,KACdE,IAAAL,EAAAG,CAAI,MAAJ,QAAAE,EAAO,KAAKD,KAEZJ,EAAAG,CAAI,IAAI,CAACC,CAAU;AAAA,MAE3B;AAEO,aAAAJ;AAAA,IACT;AAAA,EAAA,GAEIM,IAAkBC,EAAoD,CAAA,CAAE,GAExEC,IAAiBC;AAAA,IACrB,OAAO;AAAA,MACL,WAAAf;AAAA,MACA,KAAK;AAAA,MACL,QAAQC;AAAA,IAAA;AAAA,IAEV,CAACD,GAAWC,CAAQ;AAAA,EAAA,GAGhBe,IAAmBC,EAAY,CAACR,GAAcS,MAAoC;AACtE,IAAAN,EAAA,UAAU,EAAE,GAAGA,EAAgB,SAAS,CAACH,CAAI,GAAGS;EAClE,GAAG,CAAE,CAAA,GAECC,IAAmBF;AAAA,IACvB,CAACG,GAAkCC,MAA0B;AAC3D,YAAMC,IAA0D,CAAA;AAEhE,MAAAF,EAAS,QAAQ,CAAWb,MAAA;;AACpB,cAAA,EAAE,SAAAT,EAAQ,IAAIS,EAAQ,SACtB,EAAE,cAAAgB,EAAiB,IAAAzB,GACnBW,IAAOc,KAAA,gBAAAA,EAAc,YACrBC,IAAUD,KAAA,gBAAAA,EAAc,MACxBE,IAASF,KAAA,gBAAAA,EAAc,QACvBG,IAAeH,KAAA,gBAAAA,EAAc,QAC7BI,IAA0Bf,EAAgB,QAAQH,CAAI;AAExD,YAAA,CAACY,KAAeM;AACM,UAAAA,EAAA;AAAA,YACtB,MAAMH;AAAA,YACN,QAAQE;AAAA,YACR,QAAAD;AAAA,YACA,YAAYhB;AAAA,UAAA,CACb;AAAA,aACI;AACC,gBAAAC,IAAab,EAAkB0B,CAAY;AAE7C,UAAAd,KAAQa,EAAoBb,CAAI,KACdD,IAAAc,EAAAb,CAAI,MAAJ,QAAAD,EAAO,KAAKE,KAEZY,EAAAb,CAAI,IAAI,CAACC,CAAU;AAAA,QAE3C;AAAA,MAAA,CACD,GAEG,OAAO,KAAKY,CAAmB,EAAE,SAAS,KAC5ClB,EAAsB,CAAYwB,MAAA;AAC1B,cAAAC,IAAc,EAAE,GAAGD;AAEzB,sBAAO,KAAKN,CAAmB,EAAE,QAAQ,CAAOQ,MAAA;;AAC1C,UAAAA,KAAOD,EAAYC,CAAG,KACZtB,IAAAqB,EAAAC,CAAG,MAAH,QAAAtB,EAAM,KAAK,GAAIc,EAAoBQ,CAAG,KAAK,CAAA,KAEvDD,EAAYC,CAAG,IAAIR,EAAoBQ,CAAG,KAAK,CAAA;AAAA,QACjD,CACD,GAEMD;AAAA,MAAA,CACR;AAAA,IAEL;AAAA,IACA,CAAC;AAAA,EAAA,GAGG,EAAE,SAAAE,GAAS,eAAAC,GAAe,SAAAC,EAAA,IAAYC,EAAwB;AAAA,IAClE,gBAAApB;AAAA,IACA,YAAYK;AAAA,EAAA,CACb,GAEKgB,IAAelB,EAAY,MAAM;AACrC,IAAIgB,KACFA,EAAQ,eAAe;AAAA,EACzB,GACC,CAACA,CAAO,CAAC;AAEL,SAAA;AAAA,IACL,gBAAgBF;AAAA,IAChB,eAAAC;AAAA,IACA,cAAAG;AAAA,IACA,oBAAAhC;AAAA,IACA,kBAAAa;AAAA,EAAA;AAEJ,GAEAoB,IAAerC;"}
@@ -1,32 +1,28 @@
1
- import { useContext as a, useMemo as m } from "react";
2
- import v from "../cue-canvas-context.js";
3
- const A = () => {
1
+ import { useContext as c, useMemo as l } from "react";
2
+ import a from "../cue-canvas-context.js";
3
+ const m = () => {
4
4
  const {
5
- activeInstance: o,
6
- setActiveTool: t,
5
+ activeInstance: t,
6
+ setActiveTool: o,
7
7
  activeTool: e,
8
- setActiveInstance: r,
8
+ setActiveInstance: i,
9
9
  activeColor: s,
10
- setActiveColor: i,
11
- homeworkId: n,
12
- setHomeworkId: c
13
- } = a(v), l = m(
10
+ setActiveColor: n
11
+ } = c(a), r = l(
14
12
  () => e ? ["pen", "ruler", "highlighter", "marker"].includes(e) : !1,
15
13
  [e]
16
14
  );
17
15
  return {
18
- activeInstance: o,
19
- setActiveTool: t,
16
+ activeInstance: t,
17
+ setActiveTool: o,
20
18
  activeTool: e,
21
- setActiveInstance: r,
19
+ setActiveInstance: i,
22
20
  activeColor: s,
23
- setActiveColor: i,
24
- isWritingToolActive: l,
25
- homeworkId: n,
26
- setHomeworkId: c
21
+ setActiveColor: n,
22
+ isWritingToolActive: r
27
23
  };
28
24
  };
29
25
  export {
30
- A as useCueCanvasActions
26
+ m as useCueCanvasActions
31
27
  };
32
28
  //# sourceMappingURL=use-cue-canvas-actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-cue-canvas-actions.js","sources":["../../../../src/features/cue-canvas/hooks/use-cue-canvas-actions.ts"],"sourcesContent":["import { useContext, useMemo } from 'react';\n\nimport PolyContext from '../cue-canvas-context';\n\nexport const useCueCanvasActions = () => {\n const {\n activeInstance,\n setActiveTool,\n activeTool,\n setActiveInstance,\n activeColor,\n setActiveColor,\n homeworkId,\n setHomeworkId,\n } = useContext(PolyContext);\n\n const isWritingToolActive = useMemo(\n () => (activeTool ? ['pen', 'ruler', 'highlighter', 'marker'].includes(activeTool) : false),\n [activeTool],\n );\n\n return {\n activeInstance,\n setActiveTool,\n activeTool,\n setActiveInstance,\n activeColor,\n setActiveColor,\n isWritingToolActive,\n homeworkId,\n setHomeworkId,\n };\n};\n"],"names":["useCueCanvasActions","activeInstance","setActiveTool","activeTool","setActiveInstance","activeColor","setActiveColor","homeworkId","setHomeworkId","useContext","PolyContext","isWritingToolActive","useMemo"],"mappings":";;AAIO,MAAMA,IAAsB,MAAM;AACjC,QAAA;AAAA,IACJ,gBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,EAAA,IACEC,EAAWC,CAAW,GAEpBC,IAAsBC;AAAA,IAC1B,MAAOT,IAAa,CAAC,OAAO,SAAS,eAAe,QAAQ,EAAE,SAASA,CAAU,IAAI;AAAA,IACrF,CAACA,CAAU;AAAA,EAAA;AAGN,SAAA;AAAA,IACL,gBAAAF;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,qBAAAK;AAAA,IACA,YAAAJ;AAAA,IACA,eAAAC;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"use-cue-canvas-actions.js","sources":["../../../../src/features/cue-canvas/hooks/use-cue-canvas-actions.ts"],"sourcesContent":["import { useContext, useMemo } from 'react';\n\nimport PolyContext from '../cue-canvas-context';\n\nexport const useCueCanvasActions = () => {\n const {\n activeInstance,\n setActiveTool,\n activeTool,\n setActiveInstance,\n activeColor,\n setActiveColor,\n } = useContext(PolyContext);\n\n const isWritingToolActive = useMemo(\n () => (activeTool ? ['pen', 'ruler', 'highlighter', 'marker'].includes(activeTool) : false),\n [activeTool],\n );\n\n return {\n activeInstance,\n setActiveTool,\n activeTool,\n setActiveInstance,\n activeColor,\n setActiveColor,\n isWritingToolActive,\n };\n};\n"],"names":["useCueCanvasActions","activeInstance","setActiveTool","activeTool","setActiveInstance","activeColor","setActiveColor","useContext","PolyContext","isWritingToolActive","useMemo"],"mappings":";;AAIO,MAAMA,IAAsB,MAAM;AACjC,QAAA;AAAA,IACJ,gBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,IACEC,EAAWC,CAAW,GAEpBC,IAAsBC;AAAA,IAC1B,MAAOP,IAAa,CAAC,OAAO,SAAS,eAAe,QAAQ,EAAE,SAASA,CAAU,IAAI;AAAA,IACrF,CAACA,CAAU;AAAA,EAAA;AAGN,SAAA;AAAA,IACL,gBAAAF;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,qBAAAG;AAAA,EAAA;AAEJ;"}
@@ -1,17 +1,17 @@
1
- import { jsxs as o, jsx as r } from "react/jsx-runtime";
2
- import { useCallback as m } from "react";
3
- import { ILLUSTRATIONS as c } from "../../../assets/illustrations/illustrations.js";
4
- import d from "../buttons/button/button.js";
5
- import h from "../image/image.js";
6
- import i from "../layout/flex-view.js";
7
- import n from "../text/text.js";
8
- const $ = ({ height: a, onTryAgain: t, theme: l = "light" }) => {
9
- const s = m(() => {
1
+ import { jsxs as o, jsx as r, Fragment as h } from "react/jsx-runtime";
2
+ import { useCallback as g } from "react";
3
+ import { ILLUSTRATIONS as $ } from "../../../assets/illustrations/illustrations.js";
4
+ import p from "../buttons/button/button.js";
5
+ import f from "../image/image.js";
6
+ import n from "../layout/flex-view.js";
7
+ import i from "../text/text.js";
8
+ const w = (a) => {
9
+ const { height: l, onTryAgain: t, theme: s = "light", title: m, description: c } = a, d = g(() => {
10
10
  t ? t() : window.location.reload();
11
- }, [t]), e = l === "dark" ? "WHITE_T_87" : "BLACK_T_87";
12
- return /* @__PURE__ */ o(i, { $alignItems: "center", $justifyContent: "center", $height: a, children: [
11
+ }, [t]), e = s === "dark" ? "WHITE_T_87" : "BLACK_T_87";
12
+ return /* @__PURE__ */ o(n, { $alignItems: "center", $justifyContent: "center", $height: l, children: [
13
13
  /* @__PURE__ */ r(
14
- i,
14
+ n,
15
15
  {
16
16
  $widthX: 22.5,
17
17
  $heightX: 11.5,
@@ -20,28 +20,28 @@ const $ = ({ height: a, onTryAgain: t, theme: l = "light" }) => {
20
20
  $background: "GREY_1",
21
21
  $justifyContent: "center",
22
22
  $alignItems: "center",
23
- children: /* @__PURE__ */ r(h, { width: 122, height: 100, src: c.ROCKET_BROKEN, withLoader: !1 })
23
+ children: /* @__PURE__ */ r(f, { width: 122, height: 100, src: $.ROCKET_BROKEN, withLoader: !1 })
24
24
  }
25
25
  ),
26
- /* @__PURE__ */ r(n, { $renderAs: "h4", $marginBottomX: 0.5, $color: e, $align: "center", children: "Oops! Looks like something went wrong" }),
27
- /* @__PURE__ */ o(n, { $renderAs: "body2", $align: "center", $marginBottomX: 1.5, $color: e, children: [
26
+ /* @__PURE__ */ r(i, { $renderAs: "h4", $marginBottomX: 0.5, $color: e, $align: "center", children: m ?? "Oops! Looks like something went wrong" }),
27
+ /* @__PURE__ */ r(i, { $renderAs: "body2", $align: "center", $marginBottomX: 1.5, $color: e, children: c ?? /* @__PURE__ */ o(h, { children: [
28
28
  "Please try again. Alternatively if that does not work,",
29
29
  /* @__PURE__ */ r("br", {}),
30
30
  " please contact support."
31
- ] }),
31
+ ] }) }),
32
32
  /* @__PURE__ */ r(
33
- d,
33
+ p,
34
34
  {
35
35
  label: "Try again",
36
- onClick: s,
36
+ onClick: d,
37
37
  renderAs: "primary",
38
38
  size: "small",
39
39
  widthX: 14
40
40
  }
41
41
  )
42
42
  ] });
43
- }, T = $;
43
+ }, b = w;
44
44
  export {
45
- T as default
45
+ b as default
46
46
  };
47
47
  //# sourceMappingURL=error.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sources":["../../../../src/features/ui/error/error.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport Button from '../buttons/button/button';\nimport Image from '../image/image';\nimport FlexView from '../layout/flex-view';\nimport Text from '../text/text';\n\ninterface IErrorProps {\n onTryAgain?: () => void;\n height?: string | number;\n theme?: 'light' | 'dark';\n}\n\nconst Error: React.FC<IErrorProps> = ({ height, onTryAgain, theme = 'light' }) => {\n const handleTryAgain = useCallback(() => {\n if (onTryAgain) {\n onTryAgain();\n } else {\n window.location.reload();\n }\n }, [onTryAgain]);\n\n const textColor = theme === 'dark' ? 'WHITE_T_87' : 'BLACK_T_87';\n\n return (\n <FlexView $alignItems=\"center\" $justifyContent=\"center\" $height={height}>\n <FlexView\n $widthX={22.5}\n $heightX={11.5}\n $borderRadiusX={1}\n $marginBottomX={1.5}\n $background=\"GREY_1\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n <Image width={122} height={100} src={ILLUSTRATIONS.ROCKET_BROKEN} withLoader={false} />\n </FlexView>\n <Text $renderAs=\"h4\" $marginBottomX={0.5} $color={textColor} $align=\"center\">\n Oops! Looks like something went wrong\n </Text>\n <Text $renderAs=\"body2\" $align=\"center\" $marginBottomX={1.5} $color={textColor}>\n Please try again. Alternatively if that does not work,\n <br /> please contact support.\n </Text>\n <Button\n label=\"Try again\"\n onClick={handleTryAgain}\n renderAs=\"primary\"\n size=\"small\"\n widthX={14}\n />\n </FlexView>\n );\n};\n\nexport default Error;\n"],"names":["Error","height","onTryAgain","theme","handleTryAgain","useCallback","textColor","FlexView","jsx","Image","ILLUSTRATIONS","Text","jsxs","Button","Error$1"],"mappings":";;;;;;;AAcA,MAAMA,IAA+B,CAAC,EAAE,QAAAC,GAAQ,YAAAC,GAAY,OAAAC,IAAQ,cAAc;AAC1E,QAAAC,IAAiBC,EAAY,MAAM;AACvC,IAAIH,IACSA,MAEX,OAAO,SAAS;EAClB,GACC,CAACA,CAAU,CAAC,GAETI,IAAYH,MAAU,SAAS,eAAe;AAEpD,2BACGI,GAAS,EAAA,aAAY,UAAS,iBAAgB,UAAS,SAASN,GAC/D,UAAA;AAAA,IAAA,gBAAAO;AAAA,MAACD;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,QAChB,aAAY;AAAA,QACZ,iBAAgB;AAAA,QAChB,aAAY;AAAA,QAEZ,UAAA,gBAAAC,EAACC,GAAM,EAAA,OAAO,KAAK,QAAQ,KAAK,KAAKC,EAAc,eAAe,YAAY,GAAO,CAAA;AAAA,MAAA;AAAA,IACvF;AAAA,IACA,gBAAAF,EAACG,GAAK,EAAA,WAAU,MAAK,gBAAgB,KAAK,QAAQL,GAAW,QAAO,UAAS,UAE7E,wCAAA,CAAA;AAAA,IACA,gBAAAM,EAACD,KAAK,WAAU,SAAQ,QAAO,UAAS,gBAAgB,KAAK,QAAQL,GAAW,UAAA;AAAA,MAAA;AAAA,wBAE7E,MAAG,EAAA;AAAA,MAAE;AAAA,IAAA,GACR;AAAA,IACA,gBAAAE;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAST;AAAA,QACT,UAAS;AAAA,QACT,MAAK;AAAA,QACL,QAAQ;AAAA,MAAA;AAAA,IACV;AAAA,EACF,EAAA,CAAA;AAEJ,GAEAU,IAAed;"}
1
+ {"version":3,"file":"error.js","sources":["../../../../src/features/ui/error/error.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport Button from '../buttons/button/button';\nimport Image from '../image/image';\nimport FlexView from '../layout/flex-view';\nimport Text from '../text/text';\n\ninterface IErrorProps {\n onTryAgain?: () => void;\n height?: string | number;\n theme?: 'light' | 'dark';\n title?: string;\n description?: string;\n}\n\nconst Error: React.FC<IErrorProps> = props => {\n const { height, onTryAgain, theme = 'light', title, description } = props;\n const handleTryAgain = useCallback(() => {\n if (onTryAgain) {\n onTryAgain();\n } else {\n window.location.reload();\n }\n }, [onTryAgain]);\n\n const textColor = theme === 'dark' ? 'WHITE_T_87' : 'BLACK_T_87';\n\n return (\n <FlexView $alignItems=\"center\" $justifyContent=\"center\" $height={height}>\n <FlexView\n $widthX={22.5}\n $heightX={11.5}\n $borderRadiusX={1}\n $marginBottomX={1.5}\n $background=\"GREY_1\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n <Image width={122} height={100} src={ILLUSTRATIONS.ROCKET_BROKEN} withLoader={false} />\n </FlexView>\n <Text $renderAs=\"h4\" $marginBottomX={0.5} $color={textColor} $align=\"center\">\n {title ?? 'Oops! Looks like something went wrong'}\n </Text>\n <Text $renderAs=\"body2\" $align=\"center\" $marginBottomX={1.5} $color={textColor}>\n {description ?? (\n <>\n Please try again. Alternatively if that does not work,\n <br /> please contact support.\n </>\n )}\n </Text>\n <Button\n label=\"Try again\"\n onClick={handleTryAgain}\n renderAs=\"primary\"\n size=\"small\"\n widthX={14}\n />\n </FlexView>\n );\n};\n\nexport default Error;\n"],"names":["Error","props","height","onTryAgain","theme","title","description","handleTryAgain","useCallback","textColor","FlexView","jsx","Image","ILLUSTRATIONS","Text","jsxs","Fragment","Button","Error$1"],"mappings":";;;;;;;AAgBA,MAAMA,IAA+B,CAASC,MAAA;AAC5C,QAAM,EAAE,QAAAC,GAAQ,YAAAC,GAAY,OAAAC,IAAQ,SAAS,OAAAC,GAAO,aAAAC,EAAgB,IAAAL,GAC9DM,IAAiBC,EAAY,MAAM;AACvC,IAAIL,IACSA,MAEX,OAAO,SAAS;EAClB,GACC,CAACA,CAAU,CAAC,GAETM,IAAYL,MAAU,SAAS,eAAe;AAEpD,2BACGM,GAAS,EAAA,aAAY,UAAS,iBAAgB,UAAS,SAASR,GAC/D,UAAA;AAAA,IAAA,gBAAAS;AAAA,MAACD;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,QAChB,aAAY;AAAA,QACZ,iBAAgB;AAAA,QAChB,aAAY;AAAA,QAEZ,UAAA,gBAAAC,EAACC,GAAM,EAAA,OAAO,KAAK,QAAQ,KAAK,KAAKC,EAAc,eAAe,YAAY,GAAO,CAAA;AAAA,MAAA;AAAA,IACvF;AAAA,IACA,gBAAAF,EAACG,GAAK,EAAA,WAAU,MAAK,gBAAgB,KAAK,QAAQL,GAAW,QAAO,UACjE,UAAAJ,KAAS,wCACZ,CAAA;AAAA,IACA,gBAAAM,EAACG,GAAK,EAAA,WAAU,SAAQ,QAAO,UAAS,gBAAgB,KAAK,QAAQL,GAClE,UAAAH,KACG,gBAAAS,EAAAC,GAAA,EAAA,UAAA;AAAA,MAAA;AAAA,wBAEC,MAAG,EAAA;AAAA,MAAE;AAAA,IAAA,EAAA,CACR,EAEJ,CAAA;AAAA,IACA,gBAAAL;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,SAASV;AAAA,QACT,UAAS;AAAA,QACT,MAAK;AAAA,QACL,QAAQ;AAAA,MAAA;AAAA,IACV;AAAA,EACF,EAAA,CAAA;AAEJ,GAEAW,IAAelB;"}
@@ -1,14 +1,14 @@
1
1
  import { jsxs as o, jsx as t } from "react/jsx-runtime";
2
- import l from "../../../assets/line-icons/icons/check.js";
3
- import m from "../text/text.js";
2
+ import m from "../../../assets/line-icons/icons/check.js";
3
+ import h from "../text/text.js";
4
4
  import { getTheme as p } from "../theme/get-theme.js";
5
5
  import { MainWrapper as a, HorizontalLine as d, Wrapper as g, NumberWrapper as f, StyledText as s } from "./stepper-styled.js";
6
6
  const { layout: u } = p(), { gutter: i } = u;
7
- function W({ stepsInfo: n = [], currentStep: e = 2 }) {
7
+ function j({ stepsInfo: n = [], currentStep: e = 2 }) {
8
8
  const c = n.length && e >= 1 ? (e - 1) / n.length * 100 : 0;
9
9
  return /* @__PURE__ */ o(a, { $flexDirection: "row", $width: "fit-content", $gutterX: 0.625, $gapX: 0.625, children: [
10
10
  /* @__PURE__ */ t(d, { $percentageCompleted: c, $height: 1 }),
11
- n.map(({ id: $, label: h }, r) => /* @__PURE__ */ o(
11
+ n.map(({ id: $, label: l }, r) => /* @__PURE__ */ o(
12
12
  g,
13
13
  {
14
14
  $flexDirection: "row",
@@ -25,10 +25,10 @@ function W({ stepsInfo: n = [], currentStep: e = 2 }) {
25
25
  $justifyContent: "center",
26
26
  $heightX: 1.25,
27
27
  $widthX: 1.25,
28
- children: r + 1 < e ? /* @__PURE__ */ t(l, { height: i, width: i }) : /* @__PURE__ */ t(m, { $renderAs: "body3", $color: "WHITE", children: $ })
28
+ children: r + 1 < e ? /* @__PURE__ */ t(m, { height: i, width: i }) : /* @__PURE__ */ t(h, { $renderAs: "body3", $color: "WHITE", children: $ })
29
29
  }
30
30
  ),
31
- r + 1 === e && /* @__PURE__ */ t(s, { $renderAs: "body2", children: h })
31
+ r + 1 === e && /* @__PURE__ */ t(s, { $renderAs: "body2", children: l })
32
32
  ]
33
33
  },
34
34
  r
@@ -36,6 +36,6 @@ function W({ stepsInfo: n = [], currentStep: e = 2 }) {
36
36
  ] });
37
37
  }
38
38
  export {
39
- W as default
39
+ j as default
40
40
  };
41
41
  //# sourceMappingURL=stepper.js.map
@@ -1,36 +1,33 @@
1
- import { useRef as h, useEffect as f, useCallback as k } from "react";
2
- import { useAwsSignedKey as I } from "../api/subjective-review.js";
3
- import S from "../../../../node_modules/uuid/dist/esm-browser/v4.js";
4
- const C = (y) => {
5
- const { studentId: t, query: o, enabled: r = !0 } = y, { data: s, get: d } = I(), c = h(s);
6
- return f(() => {
7
- c.current = s;
8
- }, [s]), f(() => {
9
- r && t && d(t, o);
10
- }, [o, d, t, r]), k(
11
- async ({ images: g, onSuccess: n, onError: p, fileKey: w, fileName: K }) => {
12
- const a = c.current;
1
+ import { useEffect as g, useCallback as w } from "react";
2
+ import { useAwsSignedKey as S } from "../api/subjective-review.js";
3
+ import h from "../../../../node_modules/uuid/dist/esm-browser/v4.js";
4
+ const A = (c) => {
5
+ const { studentId: t, query: o } = c, { data: a, get: s } = S();
6
+ return g(() => {
7
+ s(t, o);
8
+ }, [o, s, t]), w(
9
+ async ({ images: d, onSuccess: i, onError: l, fileKey: u, fileName: m }) => {
13
10
  if (!a) return;
14
- const i = `https://${a.bucketName}.s3.amazonaws.com/`;
11
+ const r = `https://${a.bucketName}.s3.amazonaws.com/`;
15
12
  try {
16
- const l = g.map(async (b) => {
17
- const e = new FormData(), m = `${w}${K ?? S()}`;
18
- if (e.append("key", m), e.append("AWSAccessKeyId", a.awsKey), e.append("acl", "public-read"), e.append("success_action_redirect", ""), e.append("policy", a.policy), e.append("signature", a.signature), e.append("Content-Type", "image/jpeg"), e.append("file", b.file), !(await fetch(i, {
13
+ const n = d.map(async (f) => {
14
+ const e = new FormData(), p = `${u}${m ?? h()}`;
15
+ if (e.append("key", p), e.append("AWSAccessKeyId", a.awsKey), e.append("acl", "public-read"), e.append("success_action_redirect", ""), e.append("policy", a.policy), e.append("signature", a.signature), e.append("Content-Type", "image/jpeg"), e.append("file", f.file), !(await fetch(r, {
19
16
  method: "POST",
20
17
  body: e
21
18
  })).ok)
22
19
  throw new Error("Upload failed");
23
- return `${i}${m}`;
24
- }), u = await Promise.all(l);
25
- return n == null || n(u), u;
20
+ return `${r}${p}`;
21
+ }), y = await Promise.all(n);
22
+ i(y);
26
23
  } catch {
27
- p == null || p();
24
+ l();
28
25
  }
29
26
  },
30
- []
27
+ [a]
31
28
  );
32
29
  };
33
30
  export {
34
- C as default
31
+ A as default
35
32
  };
36
33
  //# sourceMappingURL=use-s3-helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-s3-helper.js","sources":["../../../../../src/features/worksheet/worksheet/hooks/use-s3-helper.ts"],"sourcesContent":["import type { IFile } from '../worksheet-question/subjective-review';\n\nimport { useCallback, useEffect, useRef } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { useAwsSignedKey } from '../api/subjective-review';\n\ninterface IUseS3helperProps {\n studentId: string;\n query: {\n type: string;\n };\n enabled?: boolean;\n}\n\ninterface IUploadImageProps {\n images: IFile[];\n onSuccess?: (urls: string[]) => void;\n onError?: () => void;\n fileKey: string;\n fileName?: string;\n}\n\nconst useS3ImageUploadHelper = (props: IUseS3helperProps) => {\n const { studentId, query, enabled = true } = props;\n const { data, get: getAwsSignedKey } = useAwsSignedKey();\n const awsSignedKeyRef = useRef(data);\n\n useEffect(() => {\n awsSignedKeyRef.current = data;\n }, [data]);\n\n useEffect(() => {\n if (enabled && studentId) {\n getAwsSignedKey(studentId, query);\n }\n }, [query, getAwsSignedKey, studentId, enabled]);\n\n const uploadImagesToS3 = useCallback(\n async ({ images, onSuccess, onError, fileKey, fileName }: IUploadImageProps) => {\n const awsSignedKey = awsSignedKeyRef.current;\n\n if (!awsSignedKey) return;\n\n const url = `https://${awsSignedKey.bucketName}.s3.amazonaws.com/`;\n\n try {\n const uploadPromises = images.map(async (item: { file: string | Blob }) => {\n const formData = new FormData();\n const key = `${fileKey}${fileName ?? uuidv4()}`;\n\n formData.append('key', key);\n formData.append('AWSAccessKeyId', awsSignedKey.awsKey);\n formData.append('acl', 'public-read');\n formData.append('success_action_redirect', '');\n formData.append('policy', awsSignedKey.policy);\n formData.append('signature', awsSignedKey.signature);\n formData.append('Content-Type', 'image/jpeg');\n formData.append('file', item.file);\n\n const res = await fetch(url, {\n method: 'POST',\n body: formData,\n });\n\n if (!res.ok) {\n throw new Error('Upload failed');\n }\n\n return `${url}${key}`;\n });\n\n const uploadedUrls = await Promise.all(uploadPromises);\n\n onSuccess?.(uploadedUrls);\n\n return uploadedUrls;\n } catch (error) {\n onError?.();\n }\n },\n [],\n );\n\n return uploadImagesToS3;\n};\n\nexport default useS3ImageUploadHelper;\n"],"names":["useS3ImageUploadHelper","props","studentId","query","enabled","data","getAwsSignedKey","useAwsSignedKey","awsSignedKeyRef","useRef","useEffect","useCallback","images","onSuccess","onError","fileKey","fileName","awsSignedKey","url","uploadPromises","item","formData","key","uuidv4","uploadedUrls"],"mappings":";;;AAuBM,MAAAA,IAAyB,CAACC,MAA6B;AAC3D,QAAM,EAAE,WAAAC,GAAW,OAAAC,GAAO,SAAAC,IAAU,OAASH,GACvC,EAAE,MAAAI,GAAM,KAAKC,MAAoBC,EAAgB,GACjDC,IAAkBC,EAAOJ,CAAI;AAEnC,SAAAK,EAAU,MAAM;AACd,IAAAF,EAAgB,UAAUH;AAAA,EAAA,GACzB,CAACA,CAAI,CAAC,GAETK,EAAU,MAAM;AACd,IAAIN,KAAWF,KACbI,EAAgBJ,GAAWC,CAAK;AAAA,KAEjC,CAACA,GAAOG,GAAiBJ,GAAWE,CAAO,CAAC,GAEtBO;AAAA,IACvB,OAAO,EAAE,QAAAC,GAAQ,WAAAC,GAAW,SAAAC,GAAS,SAAAC,GAAS,UAAAC,QAAkC;AAC9E,YAAMC,IAAeT,EAAgB;AAErC,UAAI,CAACS,EAAc;AAEb,YAAAC,IAAM,WAAWD,EAAa,UAAU;AAE1C,UAAA;AACF,cAAME,IAAiBP,EAAO,IAAI,OAAOQ,MAAkC;AACnE,gBAAAC,IAAW,IAAI,YACfC,IAAM,GAAGP,CAAO,GAAGC,KAAYO,EAAQ,CAAA;AAgBzC,cAdKF,EAAA,OAAO,OAAOC,CAAG,GACjBD,EAAA,OAAO,kBAAkBJ,EAAa,MAAM,GAC5CI,EAAA,OAAO,OAAO,aAAa,GAC3BA,EAAA,OAAO,2BAA2B,EAAE,GACpCA,EAAA,OAAO,UAAUJ,EAAa,MAAM,GACpCI,EAAA,OAAO,aAAaJ,EAAa,SAAS,GAC1CI,EAAA,OAAO,gBAAgB,YAAY,GACnCA,EAAA,OAAO,QAAQD,EAAK,IAAI,GAO7B,EALQ,MAAM,MAAMF,GAAK;AAAA,YAC3B,QAAQ;AAAA,YACR,MAAMG;AAAA,UAAA,CACP,GAEQ;AACD,kBAAA,IAAI,MAAM,eAAe;AAG1B,iBAAA,GAAGH,CAAG,GAAGI,CAAG;AAAA,QAAA,CACpB,GAEKE,IAAe,MAAM,QAAQ,IAAIL,CAAc;AAErD,eAAAN,KAAA,QAAAA,EAAYW,IAELA;AAAA,cACO;AACJ,QAAAV,KAAA,QAAAA;AAAA,MACZ;AAAA,IACF;AAAA,IACA,CAAC;AAAA,EAAA;AAIL;"}
1
+ {"version":3,"file":"use-s3-helper.js","sources":["../../../../../src/features/worksheet/worksheet/hooks/use-s3-helper.ts"],"sourcesContent":["import type { IFile } from '../worksheet-question/subjective-review';\n\nimport { useCallback, useEffect } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { useAwsSignedKey } from '../api/subjective-review';\n\ninterface IUseS3helper {\n (params: {\n studentId: string;\n query: {\n type: string;\n };\n }): (props: IUploadImageProps) => void;\n}\n\ninterface IUploadImageProps {\n images: IFile[];\n onSuccess: (urls: string[]) => void;\n onError: () => void;\n fileKey: string;\n fileName?: string;\n}\n\nconst useS3ImageUploadHelper: IUseS3helper = props => {\n const { studentId, query } = props;\n const { data: awsSignedKey, get: getAwsSignedKey } = useAwsSignedKey();\n\n useEffect(() => {\n getAwsSignedKey(studentId, query);\n }, [query, getAwsSignedKey, studentId]);\n\n const uploadImagesToS3 = useCallback(\n async ({ images, onSuccess, onError, fileKey, fileName }: IUploadImageProps) => {\n if (!awsSignedKey) return;\n\n const url = `https://${awsSignedKey.bucketName}.s3.amazonaws.com/`;\n\n try {\n const uploadPromises = images.map(async (item: { file: string | Blob }) => {\n const formData = new FormData();\n const key = `${fileKey}${fileName ?? uuidv4()}`;\n\n formData.append('key', key);\n formData.append('AWSAccessKeyId', awsSignedKey.awsKey);\n formData.append('acl', 'public-read');\n formData.append('success_action_redirect', '');\n formData.append('policy', awsSignedKey.policy);\n formData.append('signature', awsSignedKey.signature);\n formData.append('Content-Type', 'image/jpeg');\n formData.append('file', item.file);\n\n const res = await fetch(url, {\n method: 'POST',\n body: formData,\n });\n\n if (!res.ok) {\n throw new Error('Upload failed');\n }\n\n return `${url}${key}`;\n });\n\n const uploadedUrls = await Promise.all(uploadPromises);\n\n onSuccess(uploadedUrls);\n } catch (error) {\n onError();\n }\n },\n [awsSignedKey],\n );\n\n return uploadImagesToS3;\n};\n\nexport default useS3ImageUploadHelper;\n"],"names":["useS3ImageUploadHelper","props","studentId","query","awsSignedKey","getAwsSignedKey","useAwsSignedKey","useEffect","useCallback","images","onSuccess","onError","fileKey","fileName","url","uploadPromises","item","formData","key","uuidv4","uploadedUrls"],"mappings":";;;AAwBA,MAAMA,IAAuC,CAASC,MAAA;AAC9C,QAAA,EAAE,WAAAC,GAAW,OAAAC,EAAU,IAAAF,GACvB,EAAE,MAAMG,GAAc,KAAKC,EAAA,IAAoBC;AAErD,SAAAC,EAAU,MAAM;AACd,IAAAF,EAAgBH,GAAWC,CAAK;AAAA,EAC/B,GAAA,CAACA,GAAOE,GAAiBH,CAAS,CAAC,GAEbM;AAAA,IACvB,OAAO,EAAE,QAAAC,GAAQ,WAAAC,GAAW,SAAAC,GAAS,SAAAC,GAAS,UAAAC,QAAkC;AAC9E,UAAI,CAACT,EAAc;AAEb,YAAAU,IAAM,WAAWV,EAAa,UAAU;AAE1C,UAAA;AACF,cAAMW,IAAiBN,EAAO,IAAI,OAAOO,MAAkC;AACnE,gBAAAC,IAAW,IAAI,YACfC,IAAM,GAAGN,CAAO,GAAGC,KAAYM,EAAQ,CAAA;AAgBzC,cAdKF,EAAA,OAAO,OAAOC,CAAG,GACjBD,EAAA,OAAO,kBAAkBb,EAAa,MAAM,GAC5Ca,EAAA,OAAO,OAAO,aAAa,GAC3BA,EAAA,OAAO,2BAA2B,EAAE,GACpCA,EAAA,OAAO,UAAUb,EAAa,MAAM,GACpCa,EAAA,OAAO,aAAab,EAAa,SAAS,GAC1Ca,EAAA,OAAO,gBAAgB,YAAY,GACnCA,EAAA,OAAO,QAAQD,EAAK,IAAI,GAO7B,EALQ,MAAM,MAAMF,GAAK;AAAA,YAC3B,QAAQ;AAAA,YACR,MAAMG;AAAA,UAAA,CACP,GAEQ;AACD,kBAAA,IAAI,MAAM,eAAe;AAG1B,iBAAA,GAAGH,CAAG,GAAGI,CAAG;AAAA,QAAA,CACpB,GAEKE,IAAe,MAAM,QAAQ,IAAIL,CAAc;AAErD,QAAAL,EAAUU,CAAY;AAAA,cACR;AACN,QAAAT;MACV;AAAA,IACF;AAAA,IACA,CAACP,CAAY;AAAA,EAAA;AAIjB;"}
@@ -1,8 +1,8 @@
1
1
  import b from "../../../assets/line-icons/icons/bulb2.js";
2
- import O from "../../../assets/line-icons/icons/edit-star.js";
3
- import R from "../../../assets/line-icons/icons/edit2.js";
4
- import k from "../../../assets/line-icons/icons/question-letter.js";
5
- import C from "../../../assets/line-icons/icons/star2.js";
2
+ import R from "../../../assets/line-icons/icons/edit-star.js";
3
+ import k from "../../../assets/line-icons/icons/edit2.js";
4
+ import C from "../../../assets/line-icons/icons/question-letter.js";
5
+ import O from "../../../assets/line-icons/icons/star2.js";
6
6
  import w from "../constants/events.js";
7
7
  import { OPTIONAL_ITEM_TYPES as A, ACTION_BAR_HEIGHT as N, QUESTION_WIDTH as y, SPLIT_QUESTION_WIDTH as Q } from "./constants.js";
8
8
  import { QUESTION_TAGS as E } from "./worksheet-types.js";
@@ -36,17 +36,17 @@ const x = (e) => {
36
36
  const r = e.toLowerCase();
37
37
  return r === "intro" || r === "concept-intro";
38
38
  }, I = (e) => e.reduce((r, t) => {
39
- const [n, s] = t.split(":"), a = n == null ? void 0 : n.trim(), c = s == null ? void 0 : s.trim();
40
- return !a || !c ? r : {
39
+ const [n, s] = t.split(":"), o = n == null ? void 0 : n.trim(), c = s == null ? void 0 : s.trim();
40
+ return !o || !c ? r : {
41
41
  ...r,
42
- [a.toLowerCase()]: c
42
+ [o.toLowerCase()]: c
43
43
  };
44
44
  }, {}), Y = (e, { sectioned: r = !1, adaptive: t = !1 }) => {
45
45
  if (r)
46
- return e.reduce((s, a, c) => {
46
+ return e.reduce((s, o, c) => {
47
47
  var T;
48
48
  let d = !1;
49
- const { content: u, questions: i, itemType: o } = a, l = x(o), m = s[s.length - 1], g = l === (m == null ? void 0 : m.section_name) && (m != null && m.item_display_number) ? m.item_display_number + 1 : 1, p = u.match(/question-[^"]*/g), _ = p == null ? void 0 : p.map((f, h) => {
49
+ const { content: u, questions: i, itemType: a } = o, l = x(a), m = s[s.length - 1], g = l === (m == null ? void 0 : m.section_name) && (m != null && m.item_display_number) ? m.item_display_number + 1 : 1, p = u.match(/question-[^"]*/g), _ = p == null ? void 0 : p.map((f, h) => {
50
50
  const v = i.find(
51
51
  ({ response_id: S }) => S === f.replace("question-", "")
52
52
  );
@@ -56,20 +56,20 @@ const x = (e) => {
56
56
  ...v,
57
57
  // Some questions are set to limited number of attempts which can show feedback which is causing the question to be stuck in the errored state
58
58
  feedback_attempts: void 0,
59
- item_reference: a.reference,
59
+ item_reference: o.reference,
60
60
  item_number: c,
61
61
  item_display_number: g,
62
62
  section_name: l,
63
- item_type: r ? o : void 0,
64
- is_optional: o ? A.includes(o) : !1,
65
- item_tags: a.tags ?? [],
66
- item_tags_map: I(a.tags ?? []),
63
+ item_type: r ? a : void 0,
64
+ is_optional: a ? A.includes(a) : !1,
65
+ item_tags: o.tags ?? [],
66
+ item_tags_map: I(o.tags ?? []),
67
67
  question_number: h - (d ? 1 : 0),
68
68
  total_questions: p.length
69
69
  };
70
70
  });
71
71
  if (d = !1, _ != null && _[0] && c > 0 && e.length > 0) {
72
- const f = (T = e[c - 1]) == null ? void 0 : T.itemType, h = o != null && o.startsWith("advanced-") ? "advanced" : o, v = f != null && f.startsWith("advanced-") ? "advanced" : f;
72
+ const f = (T = e[c - 1]) == null ? void 0 : T.itemType, h = a != null && a.startsWith("advanced-") ? "advanced" : a, v = f != null && f.startsWith("advanced-") ? "advanced" : f;
73
73
  if ((h === "practice-basic" || h === "practice-regular" || h === "exit-ticket" || h === "advanced") && h !== v)
74
74
  return [
75
75
  ...s,
@@ -82,16 +82,16 @@ const x = (e) => {
82
82
  solution: void 0
83
83
  },
84
84
  instructor_stimulus: "SystemIntro",
85
- response_id: `${o}-system-intro`,
86
- is_optional: o == null ? void 0 : o.startsWith("advanced-")
85
+ response_id: `${a}-system-intro`,
86
+ is_optional: a == null ? void 0 : a.startsWith("advanced-")
87
87
  },
88
88
  ..._ ?? []
89
89
  ];
90
90
  }
91
91
  return [...s, ..._ ?? []];
92
92
  }, []);
93
- const n = e.reduce((s, a, c) => {
94
- const { content: d, questions: u } = a, i = d.match(/question-[^"]*/g), o = i == null ? void 0 : i.map(
93
+ const n = e.reduce((s, o, c) => {
94
+ const { content: d, questions: u } = o, i = d.match(/question-[^"]*/g), a = i == null ? void 0 : i.map(
95
95
  (l, m) => {
96
96
  const g = u.find(
97
97
  ({ response_id: p }) => p === l.replace("question-", "")
@@ -101,29 +101,29 @@ const x = (e) => {
101
101
  return {
102
102
  ...g,
103
103
  feedback_attempts: void 0,
104
- item_reference: a.reference,
104
+ item_reference: o.reference,
105
105
  item_number: c,
106
106
  item_display_number: c + 1,
107
- item_tags: a.tags ?? [],
108
- item_tags_map: I(a.tags ?? []),
107
+ item_tags: o.tags ?? [],
108
+ item_tags_map: I(o.tags ?? []),
109
109
  question_number: m,
110
110
  total_questions: i.length
111
111
  };
112
112
  }
113
113
  );
114
- return [...s, ...o ?? []];
114
+ return [...s, ...a ?? []];
115
115
  }, []);
116
116
  if (t) {
117
- const s = [], a = {};
117
+ const s = [], o = {};
118
118
  return n.sort((c, d) => {
119
119
  var m, g;
120
120
  const u = c.item_tags_map[E.TRIAL_TOPIC], i = d.item_tags_map[E.TRIAL_TOPIC];
121
- if (u && a[u] === void 0 && (a[u] = s.length, s.push(u)), i && a[i] === void 0 && (a[i] = s.length, s.push(i)), !u || !i)
121
+ if (u && o[u] === void 0 && (o[u] = s.length, s.push(u)), i && o[i] === void 0 && (o[i] = s.length, s.push(i)), !u || !i)
122
122
  return 0;
123
- const o = `${a[u]}-${((m = c.item_tags_map[E.QUESTION_CODE]) == null ? void 0 : m.length) ?? 0}`, l = `${a[i]}-${((g = d.item_tags_map[E.QUESTION_CODE]) == null ? void 0 : g.length) ?? 0}`;
124
- return o > l ? 1 : -1;
123
+ const a = `${o[u]}-${((m = c.item_tags_map[E.QUESTION_CODE]) == null ? void 0 : m.length) ?? 0}`, l = `${o[i]}-${((g = d.item_tags_map[E.QUESTION_CODE]) == null ? void 0 : g.length) ?? 0}`;
124
+ return a > l ? 1 : -1;
125
125
  }).map((c) => {
126
- const d = a[c.item_tags_map[E.TRIAL_TOPIC] ?? ""] ?? 0, u = c.item_tags_map[E.QUESTION_CODE] ?? "";
126
+ const d = o[c.item_tags_map[E.TRIAL_TOPIC] ?? ""] ?? 0, u = c.item_tags_map[E.QUESTION_CODE] ?? "";
127
127
  return {
128
128
  ...c,
129
129
  item_display_number: d * 3 + u.length
@@ -139,11 +139,11 @@ const x = (e) => {
139
139
  lastUnlockedQuestionIndex: s
140
140
  }) => {
141
141
  var d, u;
142
- const a = e.slice(0, s + 1), c = e[s];
143
- if (t && a.find((i) => i.response_id === t))
142
+ const o = e.slice(0, s + 1), c = e[s];
143
+ if (t && o.find((i) => i.response_id === t))
144
144
  return t;
145
145
  if (typeof n == "number" && n <= c.item_number) {
146
- const i = e.find((o) => o.item_number === n);
146
+ const i = e.find((a) => a.item_number === n);
147
147
  if (i != null && i.response_id)
148
148
  return i.response_id;
149
149
  }
@@ -160,35 +160,35 @@ const x = (e) => {
160
160
  behavior: t,
161
161
  userType: n
162
162
  }) => {
163
- const { maximumAttempts: s, teacherValidationEnabled: a, validation: c, navigationMode: d } = t, u = [...e].reverse().findIndex((i) => {
163
+ const { maximumAttempts: s, teacherValidationEnabled: o, validation: c, navigationMode: d } = t, u = [...e].reverse().findIndex((i) => {
164
164
  var _;
165
- const o = r[i.response_id], { attemptsHistory: l, validatedByTeacher: m, assignStatus: g } = o ?? {};
166
- if (a)
165
+ const a = r[i.response_id], { attemptsHistory: l, validatedByTeacher: m, assignStatus: g } = a ?? {};
166
+ if (o)
167
167
  return !!(m || g === "skipped");
168
168
  const p = (_ = l == null ? void 0 : l.slice(-1)[0]) == null ? void 0 : _.score;
169
- return p ? (p.score ?? 0) === p.max_score ? !0 : ((l == null ? void 0 : l.length) ?? 0) >= s : !!(!c && d === "LINEAR" && (o != null && o.response || o != null && o.skipped));
169
+ return p ? (p.score ?? 0) === p.max_score ? !0 : ((l == null ? void 0 : l.length) ?? 0) >= s : !!(!c && d === "LINEAR" && (a != null && a.response || a != null && a.skipped));
170
170
  });
171
171
  if (u === -1)
172
172
  return 0;
173
173
  if (u === 0) {
174
- if (a) {
175
- const i = [...e].reverse().findIndex((o) => {
174
+ if (o) {
175
+ const i = [...e].reverse().findIndex((a) => {
176
176
  var l;
177
- return ((l = r[o.response_id]) == null ? void 0 : l.assignStatus) !== "skipped";
177
+ return ((l = r[a.response_id]) == null ? void 0 : l.assignStatus) !== "skipped";
178
178
  });
179
179
  return e.length - i - 1;
180
180
  }
181
181
  return e.length - 1;
182
182
  }
183
- if (a && n === "STUDENT") {
184
- const i = e.length - u, o = e[i], { assignStatus: l } = r[o.response_id] ?? {};
185
- return o.is_optional && !l ? i - 1 : i;
183
+ if (o && n === "STUDENT") {
184
+ const i = e.length - u, a = e[i], { assignStatus: l } = r[a.response_id] ?? {};
185
+ return a.is_optional && !l ? i - 1 : i;
186
186
  }
187
187
  return e.length - u;
188
188
  };
189
189
  function M(e, r) {
190
190
  var n, s;
191
- const t = Array.isArray(e) ? e.find((a) => a.response_id === r) : e;
191
+ const t = Array.isArray(e) ? e.find((o) => o.response_id === r) : e;
192
192
  if (!t)
193
193
  throw new Error(`Question with id ${r} not found`);
194
194
  return {
@@ -206,22 +206,22 @@ function M(e, r) {
206
206
  }
207
207
  };
208
208
  }
209
- const K = (e) => e.reduce(
209
+ const z = (e) => e.reduce(
210
210
  (r, t) => ({
211
211
  ...r,
212
212
  [t.response_id]: M(e, t.response_id)
213
213
  }),
214
214
  {}
215
- ), X = (e, r) => {
215
+ ), K = (e, r) => {
216
216
  const { actionBar: t } = r;
217
217
  return {
218
218
  questionsContainerWidth: !e.some(
219
- (a) => a.questions.some((c) => c.stimulus_review)
219
+ (o) => o.questions.some((c) => c.stimulus_review)
220
220
  ) ? y : Q,
221
221
  maxQuestionWidth: y,
222
222
  actionbarHeight: t === "bottom" ? N : 0
223
223
  };
224
- }, z = ({
224
+ }, X = ({
225
225
  questions: e,
226
226
  lastUnlockedQuestionIndex: r,
227
227
  userType: t
@@ -343,22 +343,22 @@ const K = (e) => e.reduce(
343
343
  default:
344
344
  return "";
345
345
  }
346
- }, oe = (e) => {
346
+ }, ae = (e) => {
347
347
  switch (e) {
348
348
  case "learning":
349
349
  return b;
350
350
  case "practice-basic":
351
- return R;
351
+ return k;
352
352
  case "practice-regular":
353
- return O;
353
+ return R;
354
354
  case "exit-ticket":
355
- return k;
356
- case "advanced":
357
355
  return C;
356
+ case "advanced":
357
+ return O;
358
358
  default:
359
359
  return b;
360
360
  }
361
- }, ae = (e, r) => {
361
+ }, oe = (e) => Array.isArray(e.value) ? e.value.some((t) => typeof t == "string" && t.length > 100) : !1, ie = (e, r) => {
362
362
  const t = e === "TEACHER";
363
363
  return r ? {
364
364
  bannerBackgroundColor: "GREEN_4",
@@ -369,20 +369,21 @@ const K = (e) => e.reduce(
369
369
  };
370
370
  };
371
371
  export {
372
+ oe as checkIsClozeFormulaResponseInvalid,
372
373
  J as getInitialQuestionId,
373
- K as getInitialResponses,
374
+ z as getInitialResponses,
374
375
  V as getLastUnlockedQuestionIndex,
375
376
  re as getNavigationSectionBackgroundColor,
376
- oe as getNavigationSectionIcon,
377
+ ae as getNavigationSectionIcon,
377
378
  ne as getNavigationSectionName,
378
379
  q as getPaperColorByQuestion,
379
380
  ee as getQuestionBackgroundImage,
380
381
  te as getQuestionBorderColor,
381
382
  M as getQuestionMetadata,
382
383
  Y as getQuestionsFromItems,
383
- z as getRenderableQuestions,
384
- X as getWorksheetDimensions,
385
- ae as getWorksheetNudgeBannerInfo,
384
+ X as getRenderableQuestions,
385
+ K as getWorksheetDimensions,
386
+ ie as getWorksheetNudgeBannerInfo,
386
387
  L as isConceptIntroWidget,
387
388
  U as isOkayTypeQuestion,
388
389
  j as scrollToQuestion,