@cuemath/leap 3.0.22-aa2 → 3.0.22-aa5

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 (82) 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 +47 -51
  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 +29 -29
  14. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +46 -50
  15. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  16. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js +14 -18
  17. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js.map +1 -1
  18. package/dist/features/hooks/use-async-error.js +16 -0
  19. package/dist/features/hooks/use-async-error.js.map +1 -0
  20. package/dist/features/ui/stepper/stepper.js +7 -7
  21. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js +19 -22
  22. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js.map +1 -1
  23. package/dist/features/worksheet/worksheet/worksheet-helpers.js +81 -66
  24. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  25. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js +107 -99
  26. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -1
  27. package/dist/index.d.ts +1 -38
  28. package/dist/index.js +481 -487
  29. package/dist/index.js.map +1 -1
  30. package/package.json +1 -1
  31. package/dist/assets/line-icons/icons/hw.js +0 -32
  32. package/dist/assets/line-icons/icons/hw.js.map +0 -1
  33. package/dist/assets/line-icons/icons/puzzle-icon.js +0 -51
  34. package/dist/assets/line-icons/icons/puzzle-icon.js.map +0 -1
  35. package/dist/assets/line-icons/icons/share.js +0 -48
  36. package/dist/assets/line-icons/icons/share.js.map +0 -1
  37. package/dist/assets/line-icons/icons/tile.js +0 -54
  38. package/dist/assets/line-icons/icons/tile.js.map +0 -1
  39. package/dist/features/cue-canvas/bottombar/homework-controls.js +0 -73
  40. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +0 -1
  41. package/dist/features/cue-canvas/hooks/use-upload-helper.js +0 -23
  42. package/dist/features/cue-canvas/hooks/use-upload-helper.js.map +0 -1
  43. package/dist/features/cue-canvas/sidebar/homework/helper.js +0 -20
  44. package/dist/features/cue-canvas/sidebar/homework/helper.js.map +0 -1
  45. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js +0 -33
  46. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +0 -1
  47. package/dist/features/cue-canvas/sidebar/homework/homework-request.js +0 -61
  48. package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +0 -1
  49. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js +0 -25
  50. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js.map +0 -1
  51. package/dist/features/cue-canvas/sidebar/homework/homework.js +0 -29
  52. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +0 -1
  53. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js +0 -13
  54. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +0 -1
  55. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js +0 -60
  56. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js.map +0 -1
  57. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js +0 -44
  58. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js.map +0 -1
  59. package/dist/features/cue-canvas/sidebar/puzzles/filters.js +0 -107
  60. package/dist/features/cue-canvas/sidebar/puzzles/filters.js.map +0 -1
  61. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js +0 -42
  62. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js.map +0 -1
  63. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js +0 -84
  64. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +0 -1
  65. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js +0 -36
  66. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js.map +0 -1
  67. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js +0 -133
  68. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js.map +0 -1
  69. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js +0 -96
  70. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js.map +0 -1
  71. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js +0 -29
  72. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +0 -1
  73. package/dist/features/cue-canvas/sidebar/puzzles/utils.js +0 -120
  74. package/dist/features/cue-canvas/sidebar/puzzles/utils.js.map +0 -1
  75. package/dist/features/cue-canvas/sidebar/sidebar-styled.js +0 -32
  76. package/dist/features/cue-canvas/sidebar/sidebar-styled.js.map +0 -1
  77. package/dist/features/cue-canvas/sidebar/sidebar.js +0 -29
  78. package/dist/features/cue-canvas/sidebar/sidebar.js.map +0 -1
  79. package/dist/features/cue-canvas/sidebar/tiles/tile.js +0 -16
  80. package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +0 -1
  81. package/dist/features/hooks/use-debounce.js +0 -16
  82. package/dist/features/hooks/use-debounce.js.map +0 -1
@@ -1,83 +1,81 @@
1
- import { jsx as V } from "react/jsx-runtime";
2
- import { memo as j, useRef as x, useCallback as k, useEffect as n } from "react";
3
- import { CueCanvasCore as A } from "./cue-canvas-core.js";
4
- import { getCanvasConfig as P, getCanvasSettings as W } from "./cue-canvas-helpers.js";
5
- import { CueCanvasWrapper as q } from "./cue-cavas-styled.js";
6
- import { useCueCanvasActions as z } from "./hooks/use-cue-canvas-actions.js";
7
- import B from "./hooks/use-height-extender.js";
8
- import F from "./hooks/use-upload-helper.js";
9
- const G = j(
1
+ import { jsx as R } from "react/jsx-runtime";
2
+ import { memo as V, useRef as g, useCallback as $, useEffect as o } from "react";
3
+ import { CueCanvasCore as j } from "./cue-canvas-core.js";
4
+ import { getCanvasConfig as k, getCanvasSettings as z } from "./cue-canvas-helpers.js";
5
+ import { CueCanvasWrapper as H } from "./cue-cavas-styled.js";
6
+ import { useCueCanvasActions as M } from "./hooks/use-cue-canvas-actions.js";
7
+ import T from "./hooks/use-height-extender.js";
8
+ const U = V(
10
9
  ({
11
- canvasId: i,
10
+ canvasId: w,
12
11
  width: u,
13
- height: o,
14
- canRender: C,
15
- onUpdateHeight: E,
12
+ height: t,
13
+ canRender: f,
14
+ onUpdateHeight: x,
16
15
  initialData: a,
17
- onPublish: p,
18
- onSubscribe: l,
19
- userId: $,
20
- appended: g,
16
+ onPublish: i,
17
+ onSubscribe: p,
18
+ userId: A,
19
+ appended: l,
21
20
  canScribble: r,
22
- userType: s,
23
- renderAs: e = "canvas"
21
+ userType: C,
22
+ renderAs: s = "canvas"
24
23
  }) => {
25
- const f = x(null), { setActiveInstance: c, setActiveTool: w } = z(), H = F({ userId: $, renderAs: e, userType: s }), t = x(null), R = k(
26
- (m) => {
27
- w(m);
24
+ const m = g(null), { setActiveInstance: c, setActiveTool: d } = M(), e = g(null), E = $(
25
+ (n) => {
26
+ d(n);
28
27
  },
29
- [w]
30
- );
31
- return B({
32
- canvasElementRef: f,
33
- cueCanvasRef: t,
28
+ [d]
29
+ ), I = $((n) => (console.log(n, "file to upload"), "https://cuemath-intel.s3.amazonaws.com/media/cuemath-whiteboard/2b0b9468-d6d4-11e8-9bfb-02420a000032:practice/Screenshot 2025-04-16 at 3.18.32 PM.png_b9079e2f-4ae6-439c-8edd-104dbfdc6100"), []);
30
+ return T({
31
+ canvasElementRef: m,
32
+ cueCanvasRef: e,
34
33
  canScribble: r
35
- }), n(() => {
36
- r && t.current && (t.current.resetViewPort(), c(t.current));
37
- }, [r, c]), n(() => {
38
- a && t.current && t.current.update(a);
39
- }, [a]), n(() => {
40
- o && t.current && t.current.resetViewPort();
41
- }, [o, u]), n(() => {
42
- if (C && g && !t.current) {
43
- const m = P(u, o, e, s), U = W(e, s), v = new A({
44
- onPublish: p,
45
- onSubscribe: l,
46
- onUpdateActiveTool: R,
47
- onUpdateHeight: E,
48
- uploadImageToS3: H,
49
- height: o,
50
- userId: $,
51
- canvasId: i,
52
- userType: s,
53
- renderAs: e
34
+ }), o(() => {
35
+ r && e.current && (e.current.resetViewPort(), c(e.current));
36
+ }, [r, c]), o(() => {
37
+ a && e.current && e.current.update(a);
38
+ }, [a]), o(() => {
39
+ t && e.current && e.current.resetViewPort();
40
+ }, [t, u]), o(() => {
41
+ if (f && l && !e.current) {
42
+ const n = k(u, t, s, C), P = z(s, C), v = new j({
43
+ onPublish: i,
44
+ onSubscribe: p,
45
+ onUpdateActiveTool: E,
46
+ onUpdateHeight: x,
47
+ uploadImageToS3: I,
48
+ height: t,
49
+ userId: A,
50
+ canvasId: w,
51
+ userType: C,
52
+ renderAs: s
54
53
  });
55
54
  (async () => {
56
55
  await v.create({
57
- canvasElementRef: f,
58
- canvasConfig: m,
59
- canvasSetting: U,
56
+ canvasElementRef: m,
57
+ canvasConfig: n,
58
+ canvasSetting: P,
60
59
  initialData: a
61
- }), t.current = v, r && c(v);
60
+ }), e.current = v, r && c(v);
62
61
  })();
63
62
  }
64
- }, [p, l, c, C, g]), n(() => () => {
65
- t.current && (t.current.destroy(), t.current = null);
66
- }, []), /* @__PURE__ */ V(
67
- q,
63
+ }, [i, p, c, f, l]), o(() => () => {
64
+ e.current && (e.current.destroy(), e.current = null);
65
+ }, []), /* @__PURE__ */ R(
66
+ H,
68
67
  {
69
- id: e === "whiteboard" ? "canvasContainer" : i,
70
- ref: f,
68
+ ref: m,
71
69
  $width: u,
72
- $height: o,
70
+ $height: t,
73
71
  $canScribble: r,
74
- $canRender: C,
75
- $renderAs: e
72
+ $canRender: f,
73
+ $renderAs: s
76
74
  }
77
75
  );
78
76
  }
79
- ), X = G;
77
+ ), K = U;
80
78
  export {
81
- X as default
79
+ K as default
82
80
  };
83
81
  //# sourceMappingURL=cue-canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cue-canvas.js","sources":["../../../src/features/cue-canvas/cue-canvas.tsx"],"sourcesContent":["import type { ICueCanvas, TCueCanvasTool } from './types/cue-canvas';\n\nimport { memo, useCallback, useEffect, useRef } from 'react';\n\nimport { CueCanvasCore } from './cue-canvas-core';\nimport { getCanvasConfig, getCanvasSettings } from './cue-canvas-helpers';\nimport { CueCanvasWrapper } from './cue-cavas-styled';\nimport { useCueCanvasActions } from './hooks/use-cue-canvas-actions';\nimport useHeightExtender from './hooks/use-height-extender';\nimport useUploadHelper from './hooks/use-upload-helper';\n\nconst CueCanvas: React.FC<ICueCanvas> = memo(\n ({\n canvasId,\n width,\n height,\n canRender,\n onUpdateHeight,\n initialData,\n onPublish,\n onSubscribe,\n userId,\n appended,\n canScribble,\n userType,\n renderAs = 'canvas',\n }) => {\n const canvasElementRef = useRef<HTMLDivElement>(null);\n const { setActiveInstance: setActiveCueCanvas, setActiveTool } = useCueCanvasActions();\n const uploadImageToS3 = useUploadHelper({ userId, renderAs, userType });\n\n const cueCanvasRef = useRef<CueCanvasCore | null>(null);\n\n const onUpdateActiveTool = useCallback(\n (tool: TCueCanvasTool) => {\n setActiveTool(tool);\n },\n [setActiveTool],\n );\n\n useHeightExtender({\n canvasElementRef,\n cueCanvasRef,\n canScribble,\n });\n\n useEffect(() => {\n if (canScribble && cueCanvasRef.current) {\n cueCanvasRef.current.resetViewPort();\n\n setActiveCueCanvas(cueCanvasRef.current);\n }\n }, [canScribble, setActiveCueCanvas]);\n\n useEffect(() => {\n if (initialData && cueCanvasRef.current) {\n cueCanvasRef.current.update(initialData);\n }\n }, [initialData]);\n\n useEffect(() => {\n if (height && cueCanvasRef.current) {\n cueCanvasRef.current.resetViewPort();\n }\n }, [height, width]);\n\n useEffect(() => {\n if (canRender && appended && !cueCanvasRef.current) {\n const canvasConfig = getCanvasConfig(width, height, renderAs, userType);\n const canvasSetting = getCanvasSettings(renderAs, userType);\n const cueCanvasCore = new CueCanvasCore({\n onPublish,\n onSubscribe,\n onUpdateActiveTool,\n onUpdateHeight,\n uploadImageToS3,\n height,\n userId,\n canvasId,\n userType,\n renderAs,\n });\n\n const createCueCanvas = async () => {\n await cueCanvasCore.create({\n canvasElementRef,\n canvasConfig,\n canvasSetting,\n initialData,\n });\n cueCanvasRef.current = cueCanvasCore;\n\n if (canScribble) {\n setActiveCueCanvas(cueCanvasCore);\n }\n };\n\n createCueCanvas();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [onPublish, onSubscribe, setActiveCueCanvas, canRender, appended]);\n\n useEffect(() => {\n return () => {\n if (cueCanvasRef.current) {\n cueCanvasRef.current.destroy();\n cueCanvasRef.current = null;\n }\n };\n }, []);\n\n return (\n <CueCanvasWrapper\n id={renderAs === 'whiteboard' ? 'canvasContainer' : canvasId}\n ref={canvasElementRef}\n $width={width}\n $height={height}\n $canScribble={canScribble}\n $canRender={canRender}\n $renderAs={renderAs}\n />\n );\n },\n);\n\nexport default CueCanvas;\n"],"names":["CueCanvas","memo","canvasId","width","height","canRender","onUpdateHeight","initialData","onPublish","onSubscribe","userId","appended","canScribble","userType","renderAs","canvasElementRef","useRef","setActiveCueCanvas","setActiveTool","useCueCanvasActions","uploadImageToS3","useUploadHelper","cueCanvasRef","onUpdateActiveTool","useCallback","tool","useHeightExtender","useEffect","canvasConfig","getCanvasConfig","canvasSetting","getCanvasSettings","cueCanvasCore","CueCanvasCore","jsx","CueCanvasWrapper","CueCanvas$1"],"mappings":";;;;;;;;AAWA,MAAMA,IAAkCC;AAAA,EACtC,CAAC;AAAA,IACC,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,EAAA,MACP;AACE,UAAAC,IAAmBC,EAAuB,IAAI,GAC9C,EAAE,mBAAmBC,GAAoB,eAAAC,MAAkBC,EAAoB,GAC/EC,IAAkBC,EAAgB,EAAE,QAAAX,GAAQ,UAAAI,GAAU,UAAAD,GAAU,GAEhES,IAAeN,EAA6B,IAAI,GAEhDO,IAAqBC;AAAA,MACzB,CAACC,MAAyB;AACxB,QAAAP,EAAcO,CAAI;AAAA,MACpB;AAAA,MACA,CAACP,CAAa;AAAA,IAAA;AAGE,WAAAQ,EAAA;AAAA,MAChB,kBAAAX;AAAA,MACA,cAAAO;AAAA,MACA,aAAAV;AAAA,IAAA,CACD,GAEDe,EAAU,MAAM;AACV,MAAAf,KAAeU,EAAa,YAC9BA,EAAa,QAAQ,iBAErBL,EAAmBK,EAAa,OAAO;AAAA,IACzC,GACC,CAACV,GAAaK,CAAkB,CAAC,GAEpCU,EAAU,MAAM;AACV,MAAApB,KAAee,EAAa,WACjBA,EAAA,QAAQ,OAAOf,CAAW;AAAA,IACzC,GACC,CAACA,CAAW,CAAC,GAEhBoB,EAAU,MAAM;AACV,MAAAvB,KAAUkB,EAAa,WACzBA,EAAa,QAAQ;IACvB,GACC,CAAClB,GAAQD,CAAK,CAAC,GAElBwB,EAAU,MAAM;AACd,UAAItB,KAAaM,KAAY,CAACW,EAAa,SAAS;AAClD,cAAMM,IAAeC,EAAgB1B,GAAOC,GAAQU,GAAUD,CAAQ,GAChEiB,IAAgBC,EAAkBjB,GAAUD,CAAQ,GACpDmB,IAAgB,IAAIC,EAAc;AAAA,UACtC,WAAAzB;AAAA,UACA,aAAAC;AAAA,UACA,oBAAAc;AAAA,UACA,gBAAAjB;AAAA,UACA,iBAAAc;AAAA,UACA,QAAAhB;AAAA,UACA,QAAAM;AAAA,UACA,UAAAR;AAAA,UACA,UAAAW;AAAA,UACA,UAAAC;AAAA,QAAA,CACD;AAgBe,SAdQ,YAAY;AAClC,gBAAMkB,EAAc,OAAO;AAAA,YACzB,kBAAAjB;AAAA,YACA,cAAAa;AAAA,YACA,eAAAE;AAAA,YACA,aAAAvB;AAAA,UAAA,CACD,GACDe,EAAa,UAAUU,GAEnBpB,KACFK,EAAmBe,CAAa;AAAA,QAClC;MAIJ;AAAA,IAAA,GAEC,CAACxB,GAAWC,GAAaQ,GAAoBZ,GAAWM,CAAQ,CAAC,GAEpEgB,EAAU,MACD,MAAM;AACX,MAAIL,EAAa,YACfA,EAAa,QAAQ,WACrBA,EAAa,UAAU;AAAA,IACzB,GAED,CAAE,CAAA,GAGH,gBAAAY;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,IAAIrB,MAAa,eAAe,oBAAoBZ;AAAA,QACpD,KAAKa;AAAA,QACL,QAAQZ;AAAA,QACR,SAASC;AAAA,QACT,cAAcQ;AAAA,QACd,YAAYP;AAAA,QACZ,WAAWS;AAAA,MAAA;AAAA,IAAA;AAAA,EAGjB;AACF,GAEAsB,IAAepC;"}
1
+ {"version":3,"file":"cue-canvas.js","sources":["../../../src/features/cue-canvas/cue-canvas.tsx"],"sourcesContent":["import type { ICueCanvas, TCueCanvasTool } from './types/cue-canvas';\n\nimport { memo, useCallback, useEffect, useRef } from 'react';\n\nimport { CueCanvasCore } from './cue-canvas-core';\nimport { getCanvasConfig, getCanvasSettings } from './cue-canvas-helpers';\nimport { CueCanvasWrapper } from './cue-cavas-styled';\nimport { useCueCanvasActions } from './hooks/use-cue-canvas-actions';\nimport useHeightExtender from './hooks/use-height-extender';\n\nconst CueCanvas: React.FC<ICueCanvas> = memo(\n ({\n canvasId,\n width,\n height,\n canRender,\n onUpdateHeight,\n initialData,\n onPublish,\n onSubscribe,\n userId,\n appended,\n canScribble,\n userType,\n renderAs = 'canvas',\n }) => {\n const canvasElementRef = useRef<HTMLDivElement>(null);\n const { setActiveInstance: setActiveCueCanvas, setActiveTool } = useCueCanvasActions();\n\n const cueCanvasRef = useRef<CueCanvasCore | null>(null);\n\n const onUpdateActiveTool = useCallback(\n (tool: TCueCanvasTool) => {\n setActiveTool(tool);\n },\n [setActiveTool],\n );\n\n const uploadImageToS3 = useCallback((file: File) => {\n // Todo @ayushsinghal1998: Update this once upload api is ready\n\n // eslint-disable-next-line no-console\n console.log(file, 'file to upload');\n\n return 'https://cuemath-intel.s3.amazonaws.com/media/cuemath-whiteboard/2b0b9468-d6d4-11e8-9bfb-02420a000032:practice/Screenshot 2025-04-16 at 3.18.32 PM.png_b9079e2f-4ae6-439c-8edd-104dbfdc6100';\n }, []);\n\n useHeightExtender({\n canvasElementRef,\n cueCanvasRef,\n canScribble,\n });\n\n useEffect(() => {\n if (canScribble && cueCanvasRef.current) {\n cueCanvasRef.current.resetViewPort();\n\n setActiveCueCanvas(cueCanvasRef.current);\n }\n }, [canScribble, setActiveCueCanvas]);\n\n useEffect(() => {\n if (initialData && cueCanvasRef.current) {\n cueCanvasRef.current.update(initialData);\n }\n }, [initialData]);\n\n useEffect(() => {\n if (height && cueCanvasRef.current) {\n cueCanvasRef.current.resetViewPort();\n }\n }, [height, width]);\n\n useEffect(() => {\n if (canRender && appended && !cueCanvasRef.current) {\n const canvasConfig = getCanvasConfig(width, height, renderAs, userType);\n const canvasSetting = getCanvasSettings(renderAs, userType);\n const cueCanvasCore = new CueCanvasCore({\n onPublish,\n onSubscribe,\n onUpdateActiveTool,\n onUpdateHeight,\n uploadImageToS3,\n height,\n userId,\n canvasId,\n userType,\n renderAs,\n });\n\n const createCueCanvas = async () => {\n await cueCanvasCore.create({\n canvasElementRef,\n canvasConfig,\n canvasSetting,\n initialData,\n });\n cueCanvasRef.current = cueCanvasCore;\n\n if (canScribble) {\n setActiveCueCanvas(cueCanvasCore);\n }\n };\n\n createCueCanvas();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [onPublish, onSubscribe, setActiveCueCanvas, canRender, appended]);\n\n useEffect(() => {\n return () => {\n if (cueCanvasRef.current) {\n cueCanvasRef.current.destroy();\n cueCanvasRef.current = null;\n }\n };\n }, []);\n\n return (\n <CueCanvasWrapper\n ref={canvasElementRef}\n $width={width}\n $height={height}\n $canScribble={canScribble}\n $canRender={canRender}\n $renderAs={renderAs}\n />\n );\n },\n);\n\nexport default CueCanvas;\n"],"names":["CueCanvas","memo","canvasId","width","height","canRender","onUpdateHeight","initialData","onPublish","onSubscribe","userId","appended","canScribble","userType","renderAs","canvasElementRef","useRef","setActiveCueCanvas","setActiveTool","useCueCanvasActions","cueCanvasRef","onUpdateActiveTool","useCallback","tool","uploadImageToS3","file","useHeightExtender","useEffect","canvasConfig","getCanvasConfig","canvasSetting","getCanvasSettings","cueCanvasCore","CueCanvasCore","jsx","CueCanvasWrapper","CueCanvas$1"],"mappings":";;;;;;;AAUA,MAAMA,IAAkCC;AAAA,EACtC,CAAC;AAAA,IACC,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,EAAA,MACP;AACE,UAAAC,IAAmBC,EAAuB,IAAI,GAC9C,EAAE,mBAAmBC,GAAoB,eAAAC,MAAkBC,EAAoB,GAE/EC,IAAeJ,EAA6B,IAAI,GAEhDK,IAAqBC;AAAA,MACzB,CAACC,MAAyB;AACxB,QAAAL,EAAcK,CAAI;AAAA,MACpB;AAAA,MACA,CAACL,CAAa;AAAA,IAAA,GAGVM,IAAkBF,EAAY,CAACG,OAI3B,QAAA,IAAIA,GAAM,gBAAgB,GAE3B,+LACN,CAAE,CAAA;AAEa,WAAAC,EAAA;AAAA,MAChB,kBAAAX;AAAA,MACA,cAAAK;AAAA,MACA,aAAAR;AAAA,IAAA,CACD,GAEDe,EAAU,MAAM;AACV,MAAAf,KAAeQ,EAAa,YAC9BA,EAAa,QAAQ,iBAErBH,EAAmBG,EAAa,OAAO;AAAA,IACzC,GACC,CAACR,GAAaK,CAAkB,CAAC,GAEpCU,EAAU,MAAM;AACV,MAAApB,KAAea,EAAa,WACjBA,EAAA,QAAQ,OAAOb,CAAW;AAAA,IACzC,GACC,CAACA,CAAW,CAAC,GAEhBoB,EAAU,MAAM;AACV,MAAAvB,KAAUgB,EAAa,WACzBA,EAAa,QAAQ;IACvB,GACC,CAAChB,GAAQD,CAAK,CAAC,GAElBwB,EAAU,MAAM;AACd,UAAItB,KAAaM,KAAY,CAACS,EAAa,SAAS;AAClD,cAAMQ,IAAeC,EAAgB1B,GAAOC,GAAQU,GAAUD,CAAQ,GAChEiB,IAAgBC,EAAkBjB,GAAUD,CAAQ,GACpDmB,IAAgB,IAAIC,EAAc;AAAA,UACtC,WAAAzB;AAAA,UACA,aAAAC;AAAA,UACA,oBAAAY;AAAA,UACA,gBAAAf;AAAA,UACA,iBAAAkB;AAAA,UACA,QAAApB;AAAA,UACA,QAAAM;AAAA,UACA,UAAAR;AAAA,UACA,UAAAW;AAAA,UACA,UAAAC;AAAA,QAAA,CACD;AAgBe,SAdQ,YAAY;AAClC,gBAAMkB,EAAc,OAAO;AAAA,YACzB,kBAAAjB;AAAA,YACA,cAAAa;AAAA,YACA,eAAAE;AAAA,YACA,aAAAvB;AAAA,UAAA,CACD,GACDa,EAAa,UAAUY,GAEnBpB,KACFK,EAAmBe,CAAa;AAAA,QAClC;MAIJ;AAAA,IAAA,GAEC,CAACxB,GAAWC,GAAaQ,GAAoBZ,GAAWM,CAAQ,CAAC,GAEpEgB,EAAU,MACD,MAAM;AACX,MAAIP,EAAa,YACfA,EAAa,QAAQ,WACrBA,EAAa,UAAU;AAAA,IACzB,GAED,CAAE,CAAA,GAGH,gBAAAc;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAKpB;AAAA,QACL,QAAQZ;AAAA,QACR,SAASC;AAAA,QACT,cAAcQ;AAAA,QACd,YAAYP;AAAA,QACZ,WAAWS;AAAA,MAAA;AAAA,IAAA;AAAA,EAGjB;AACF,GAEAsB,IAAepC;"}
@@ -1,4 +1,4 @@
1
- import i, { css as l } from "styled-components";
1
+ import e, { css as l } from "styled-components";
2
2
  import a from "../../assets/line-icons/icons/check.js";
3
3
  import d from "../../assets/line-icons/icons/down.js";
4
4
  import h from "../../assets/line-icons/icons/highlighter.js";
@@ -10,45 +10,45 @@ import $ from "../../assets/line-icons/icons/undo.js";
10
10
  import m from "../../assets/line-icons/icons/unlock.js";
11
11
  import p from "../ui/layout/flex-view.js";
12
12
  import { CANVAS_COLORS as c } from "./constants/constants.js";
13
- const S = i(u)(({
13
+ const S = e(u)(({
14
14
  theme: r,
15
15
  $active: o,
16
16
  $activeColor: t,
17
17
  $shouldAnimate: s
18
18
  }) => {
19
- const { colors: e } = r, n = o ? c[t] : e.REAL_BLACK_50;
19
+ const { colors: i } = r, n = o ? c[t] : i.REAL_BLACK_50;
20
20
  return l`
21
21
  position: relative;
22
22
  transition: top 0.3s ease-in-out;
23
23
  top: ${o && s ? "0px" : "8px"};
24
24
  cursor: ${o ? "auto" : "pointer"};
25
25
  .pencil-dark-shade {
26
- fill: ${o ? n : e.GREY_3};
26
+ fill: ${o ? n : i.GREY_3};
27
27
  }
28
28
 
29
29
  .pencil-light-shade {
30
- fill: ${o ? n : e.GREY_2};
30
+ fill: ${o ? n : i.GREY_2};
31
31
  opacity: ${o ? 0.3 : 1};
32
32
  }
33
33
 
34
34
  ${!o && l`
35
35
  &:hover {
36
36
  .pencil-dark-shade {
37
- fill: ${e.GREY_4};
37
+ fill: ${i.GREY_4};
38
38
  }
39
39
  .pencil-light-shade {
40
- fill: ${e.GREY_2};
40
+ fill: ${i.GREY_2};
41
41
  }
42
42
  }
43
43
  `}
44
44
  `;
45
- }), G = i(g)(({
45
+ }), G = e(g)(({
46
46
  theme: r,
47
47
  $active: o,
48
48
  $activeColor: t,
49
49
  $shouldAnimate: s
50
50
  }) => {
51
- const { colors: e } = r, n = o ? c[t] : e.REAL_BLACK_50;
51
+ const { colors: i } = r, n = o ? c[t] : i.REAL_BLACK_50;
52
52
  return l`
53
53
  cursor: ${o ? "auto" : "pointer"};
54
54
  position: relative;
@@ -56,36 +56,36 @@ const S = i(u)(({
56
56
  top: ${o && s ? "0px" : "8px"};
57
57
 
58
58
  .ruler-rect-color {
59
- fill: ${o ? n : e.GREY_3};
59
+ fill: ${o ? n : i.GREY_3};
60
60
  }
61
61
 
62
62
  .ruler-stripe-base {
63
- fill: ${o ? n : e.GREY_2};
63
+ fill: ${o ? n : i.GREY_2};
64
64
  opacity: ${o ? 0.2 : 1};
65
65
  }
66
66
 
67
67
  .ruler-small-stripe {
68
- fill: ${e.REAL_BLACK};
68
+ fill: ${i.REAL_BLACK};
69
69
  }
70
70
 
71
71
  ${!o && l`
72
72
  &:hover {
73
73
  .ruler-rect-color {
74
- fill: ${e.GREY_4};
74
+ fill: ${i.GREY_4};
75
75
  }
76
76
  .ruler-stripe-base {
77
- fill: ${e.GREY_3};
77
+ fill: ${i.GREY_3};
78
78
  }
79
79
  }
80
80
  `}
81
81
  `;
82
- }), W = i(h)(({
82
+ }), W = e(h)(({
83
83
  $active: r,
84
84
  theme: o,
85
85
  $activeColor: t,
86
86
  $shouldAnimate: s
87
87
  }) => {
88
- const { colors: e } = o, n = r ? c[t] : e.REAL_BLACK_50;
88
+ const { colors: i } = o, n = r ? c[t] : i.REAL_BLACK_50;
89
89
  return l`
90
90
  cursor: ${r ? "auto" : "pointer"};
91
91
  position: relative;
@@ -123,13 +123,13 @@ const S = i(u)(({
123
123
  }
124
124
  `}
125
125
  `;
126
- }), Y = i(x)(({
126
+ }), Y = e(x)(({
127
127
  $active: r,
128
128
  theme: o,
129
129
  $activeColor: t,
130
130
  $shouldAnimate: s
131
131
  }) => {
132
- const { colors: e } = o, n = r ? c[t] : e.REAL_BLACK_50;
132
+ const { colors: i } = o, n = r ? c[t] : i.REAL_BLACK_50;
133
133
  return l`
134
134
  cursor: ${r ? "auto" : "pointer"};
135
135
  position: relative;
@@ -169,13 +169,13 @@ const S = i(u)(({
169
169
  }
170
170
  `}
171
171
  `;
172
- }), w = i(f)`
172
+ }), w = e(f)`
173
173
  width: 20px;
174
174
  height: 20px;
175
- `, H = i(m)`
175
+ `, H = e(m)`
176
176
  width: 20px;
177
177
  height: 20px;
178
- `, P = i(p)(
178
+ `, P = e(p)(
179
179
  ({ theme: r, $active: o }) => {
180
180
  const { colors: t } = r;
181
181
  return l`
@@ -215,13 +215,13 @@ const S = i(u)(({
215
215
  `}
216
216
  `;
217
217
  }
218
- ), T = i(a)`
218
+ ), T = e(a)`
219
219
  path {
220
220
  stroke: ${"white"};
221
221
  }
222
- `, U = i($)`
222
+ `, U = e($)`
223
223
  transform: scaleX(-1);
224
- `, j = i(p)`
224
+ `, j = e(p)`
225
225
  position: absolute;
226
226
  display: flex;
227
227
  justify-content: center;
@@ -229,7 +229,7 @@ const S = i(u)(({
229
229
  transition:
230
230
  opacity 0.5s ease,
231
231
  transform 0.5s ease;
232
- `, D = i(p)(
232
+ `, D = e(p)(
233
233
  ({ $canScribble: r, $canRender: o, $renderAs: t }) => `
234
234
  display: ${o ? "block" : "none"};
235
235
  opacity: ${r ? 1 : 0.5};
@@ -242,18 +242,18 @@ const S = i(u)(({
242
242
  `}
243
243
 
244
244
  `
245
- ), O = i(p)(
245
+ ), O = e(p)(
246
246
  ({ $color: r }) => `
247
247
  background: ${c[r]};
248
248
  `
249
- ), V = i(d)`
249
+ ), V = e(d)`
250
250
  pointer-events: none;
251
251
  transition: transform 0.5s ease;
252
252
  transform: ${({ $isAnimating: r }) => r ? "rotate(180deg)" : "rotate(0deg)"};
253
- `, z = i(p)`
253
+ `, z = e(p)`
254
254
  overflow: hidden;
255
255
  border-right: 1px solid ${({ theme: r }) => r.colors.GREY_1};
256
- `, F = i(p)`
256
+ `, F = e(p)`
257
257
  position: absolute;
258
258
  padding: 8px 8px 0 8px;
259
259
  overflow: hidden;
@@ -1,75 +1,71 @@
1
1
  import { useMessageBrokerChannel as q } from "@cuemath/cue-message-broker";
2
2
  import { useState as x, useRef as w, useMemo as E, useCallback as h } from "react";
3
- const p = (r) => ({
4
- userId: r.userId,
5
- data: r.data,
6
- height: r.height,
7
- responseId: r.responseId,
8
- gridName: r.gridName,
9
- dimension: r.dimension
10
- }), F = (r, g, f, m = "canvas") => {
11
- const [b, l] = x(
3
+ const I = (c) => ({
4
+ userId: c.userId,
5
+ data: c.data,
6
+ height: c.height,
7
+ responseId: c.responseId
8
+ }), F = (c, f, g) => {
9
+ const [d, m] = x(
12
10
  () => {
13
- var o, n;
14
- const c = {};
15
- if (!f) return c;
16
- for (const { message: i } of f) {
17
- const e = (o = i.payload) == null ? void 0 : o.eventPayload, s = e == null ? void 0 : e.responseId;
11
+ var o, r;
12
+ const n = {};
13
+ if (!g) return n;
14
+ for (const { message: a } of g) {
15
+ const e = (o = a.payload) == null ? void 0 : o.eventPayload, s = e == null ? void 0 : e.responseId;
18
16
  if (!(e != null && e.responseId)) continue;
19
- const t = p(e);
20
- s && c[s] ? (n = c[s]) == null || n.push(t) : c[s] = [t];
17
+ const t = I(e);
18
+ s && n[s] ? (r = n[s]) == null || r.push(t) : n[s] = [t];
21
19
  }
22
- return c;
20
+ return n;
23
21
  }
24
- ), u = w({}), S = E(
22
+ ), u = w({}), b = E(
25
23
  () => ({
26
- channelId: r,
27
- ttl: m === "canvas" ? 0 : 24,
28
- logger: g
24
+ channelId: c,
25
+ ttl: 0,
26
+ logger: f
29
27
  }),
30
- [r, g, m]
31
- ), C = h((c, o) => {
32
- u.current = { ...u.current, [c]: o };
33
- }, []), D = h(
34
- (c, o) => {
35
- const n = {};
36
- c.forEach((i) => {
37
- var I;
38
- const { payload: e } = i.message, { eventPayload: s } = e, t = s == null ? void 0 : s.responseId, R = s == null ? void 0 : s.data, B = s == null ? void 0 : s.userId, j = s == null ? void 0 : s.height, k = u.current[t];
39
- if (!o && k)
40
- k({
28
+ [c, f]
29
+ ), S = h((n, o) => {
30
+ u.current = { ...u.current, [n]: o };
31
+ }, []), C = h(
32
+ (n, o) => {
33
+ const r = {};
34
+ n.forEach((a) => {
35
+ var p;
36
+ const { payload: e } = a.message, { eventPayload: s } = e, t = s == null ? void 0 : s.responseId, R = s == null ? void 0 : s.data, B = s == null ? void 0 : s.userId, j = s == null ? void 0 : s.height, l = u.current[t];
37
+ if (!o && l)
38
+ l({
41
39
  data: R,
42
40
  height: j,
43
41
  userId: B,
44
- responseId: t,
45
- gridName: s == null ? void 0 : s.gridName,
46
- dimension: s == null ? void 0 : s.dimension
42
+ responseId: t
47
43
  });
48
44
  else {
49
- const d = p(s);
50
- t && n[t] ? (I = n[t]) == null || I.push(d) : n[t] = [d];
45
+ const k = I(s);
46
+ t && r[t] ? (p = r[t]) == null || p.push(k) : r[t] = [k];
51
47
  }
52
- }), Object.keys(n).length > 0 && l((i) => {
53
- const e = { ...i };
54
- return Object.keys(n).forEach((s) => {
48
+ }), Object.keys(r).length > 0 && m((a) => {
49
+ const e = { ...a };
50
+ return Object.keys(r).forEach((s) => {
55
51
  var t;
56
- s && e[s] ? (t = e[s]) == null || t.push(...n[s] ?? []) : e[s] = n[s] ?? [];
52
+ s && e[s] ? (t = e[s]) == null || t.push(...r[s] ?? []) : e[s] = r[s] ?? [];
57
53
  }), e;
58
54
  });
59
55
  },
60
56
  []
61
- ), { publish: M, channelStatus: N, channel: a } = q({
62
- channelOptions: S,
63
- consumerFn: D
57
+ ), { publish: D, channelStatus: M, channel: i } = q({
58
+ channelOptions: b,
59
+ consumerFn: C
64
60
  }), O = h(() => {
65
- a && a.destroyChannel();
66
- }, [a]);
61
+ i && i.destroyChannel();
62
+ }, [i]);
67
63
  return {
68
- publishStrokes: M,
69
- channelStatus: N,
64
+ publishStrokes: D,
65
+ channelStatus: M,
70
66
  closeChannel: O,
71
- initialStrokesData: b,
72
- registerCallback: C
67
+ initialStrokesData: d,
68
+ registerCallback: S
73
69
  };
74
70
  }, $ = F;
75
71
  export {
@@ -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":"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"}
@@ -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;"}
@@ -0,0 +1,16 @@
1
+ import { useState as o, useCallback as e } from "react";
2
+ const c = () => {
3
+ const [, r] = o();
4
+ return e(
5
+ (t) => {
6
+ r(() => {
7
+ throw t;
8
+ });
9
+ },
10
+ [r]
11
+ );
12
+ };
13
+ export {
14
+ c as useAsyncError
15
+ };
16
+ //# sourceMappingURL=use-async-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-async-error.js","sources":["../../../src/features/hooks/use-async-error.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\nexport const useAsyncError = () => {\n const [, setError] = useState();\n\n return useCallback(\n (e: Error) => {\n setError(() => {\n throw e;\n });\n },\n [setError],\n );\n};\n"],"names":["useAsyncError","setError","useState","useCallback","e"],"mappings":";AAEO,MAAMA,IAAgB,MAAM;AACjC,QAAM,CAAG,EAAAC,CAAQ,IAAIC;AAEd,SAAAC;AAAA,IACL,CAACC,MAAa;AACZ,MAAAH,EAAS,MAAM;AACP,cAAAG;AAAA,MAAA,CACP;AAAA,IACH;AAAA,IACA,CAACH,CAAQ;AAAA,EAAA;AAEb;"}
@@ -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