@cuemath/leap 2.8.35-aa0 → 2.8.35-beta-0.3

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 (55) hide show
  1. package/dist/assets/line-icons/icons/sheet.js +54 -0
  2. package/dist/assets/line-icons/icons/sheet.js.map +1 -0
  3. package/dist/features/analytics-events/whitelist-events.js +15 -13
  4. package/dist/features/analytics-events/whitelist-events.js.map +1 -1
  5. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  6. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +54 -63
  7. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  8. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +194 -0
  9. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -0
  10. package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js +10 -0
  11. package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js.map +1 -0
  12. package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js +9 -0
  13. package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js.map +1 -0
  14. package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js +9 -0
  15. package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js.map +1 -0
  16. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js +19 -0
  17. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js.map +1 -0
  18. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +47 -0
  19. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +1 -0
  20. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.js +22 -0
  21. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.js.map +1 -0
  22. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js +60 -0
  23. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +1 -0
  24. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.js +6 -0
  25. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.js.map +1 -0
  26. package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js +19 -0
  27. package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js.map +1 -0
  28. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js +22 -0
  29. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js.map +1 -0
  30. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js +17 -0
  31. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js.map +1 -0
  32. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js +95 -0
  33. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +1 -0
  34. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js +63 -0
  35. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js.map +1 -0
  36. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +199 -0
  37. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -0
  38. package/dist/features/milestone/milestone-resources/resources-assign/utils.js +8 -0
  39. package/dist/features/milestone/milestone-resources/resources-assign/utils.js.map +1 -0
  40. package/dist/features/ui/grade-selector/grade-tab.js +15 -15
  41. package/dist/features/ui/grade-selector/grade-tab.js.map +1 -1
  42. package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js +28 -0
  43. package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js.map +1 -0
  44. package/dist/features/ui/inputs/searchable-input/searchable-input.js +101 -0
  45. package/dist/features/ui/inputs/searchable-input/searchable-input.js.map +1 -0
  46. package/dist/features/ui/tab/tab-styled.js +7 -8
  47. package/dist/features/ui/tab/tab-styled.js.map +1 -1
  48. package/dist/features/ui/tab/tab.js +36 -31
  49. package/dist/features/ui/tab/tab.js.map +1 -1
  50. package/dist/features/ui/theme/tab.js +3 -3
  51. package/dist/features/ui/theme/tab.js.map +1 -1
  52. package/dist/index.d.ts +37 -4
  53. package/dist/index.js +348 -344
  54. package/dist/index.js.map +1 -1
  55. package/package.json +1 -1
@@ -0,0 +1,54 @@
1
+ import { jsxs as o, jsx as e } from "react/jsx-runtime";
2
+ const d = (l) => /* @__PURE__ */ o(
3
+ "svg",
4
+ {
5
+ width: "56",
6
+ height: "56",
7
+ viewBox: "0 0 56 56",
8
+ fill: "none",
9
+ xmlns: "http://www.w3.org/2000/svg",
10
+ ...l,
11
+ children: [
12
+ /* @__PURE__ */ e(
13
+ "path",
14
+ {
15
+ fillRule: "evenodd",
16
+ clipRule: "evenodd",
17
+ d: "M12.6006 9.10059H31.5099L43.4006 21.3667V46.9006H12.6006V9.10059ZM15.4006 11.9006V44.1006H40.6006V23.3339H29.5173V11.9006H15.4006ZM32.3173 13.9562L38.6936 20.5339H32.3173V13.9562Z",
18
+ fill: "currentColor"
19
+ }
20
+ ),
21
+ /* @__PURE__ */ e(
22
+ "path",
23
+ {
24
+ fillRule: "evenodd",
25
+ clipRule: "evenodd",
26
+ d: "M20.7673 28.1172H35.2339V30.9172H20.7673V28.1172Z",
27
+ fill: "currentColor"
28
+ }
29
+ ),
30
+ /* @__PURE__ */ e(
31
+ "path",
32
+ {
33
+ fillRule: "evenodd",
34
+ clipRule: "evenodd",
35
+ d: "M20.7673 34.1839H35.2339V36.9839H20.7673V34.1839Z",
36
+ fill: "currentColor"
37
+ }
38
+ ),
39
+ /* @__PURE__ */ e(
40
+ "path",
41
+ {
42
+ fillRule: "evenodd",
43
+ clipRule: "evenodd",
44
+ d: "M20.7673 22.0506H26.4839V24.8506H20.7673V22.0506Z",
45
+ fill: "currentColor"
46
+ }
47
+ )
48
+ ]
49
+ }
50
+ ), t = d;
51
+ export {
52
+ t as default
53
+ };
54
+ //# sourceMappingURL=sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet.js","sources":["../../../../src/assets/line-icons/icons/sheet.tsx"],"sourcesContent":["const SheetIcon: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n width=\"56\"\n height=\"56\"\n viewBox=\"0 0 56 56\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12.6006 9.10059H31.5099L43.4006 21.3667V46.9006H12.6006V9.10059ZM15.4006 11.9006V44.1006H40.6006V23.3339H29.5173V11.9006H15.4006ZM32.3173 13.9562L38.6936 20.5339H32.3173V13.9562Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.7673 28.1172H35.2339V30.9172H20.7673V28.1172Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.7673 34.1839H35.2339V36.9839H20.7673V34.1839Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M20.7673 22.0506H26.4839V24.8506H20.7673V22.0506Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default SheetIcon;\n"],"names":["SheetIcon","props","jsxs","jsx","SheetIcon$1"],"mappings":";AAAA,MAAMA,IAAqD,CACzDC,MAAA,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACL,GAAGD;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA,QAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA,QAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA,QAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA,QAAA;AAAA,MACP;AAAA,IAAA;AAAA,EAAA;AACF,GAGFC,IAAeJ;"}
@@ -1,24 +1,26 @@
1
- import { GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS as T } from "../circle-games/game-launcher/game-launcher-analytics-events.js";
2
- import { WEBVIEW_ANALYTICS_WHITELIST_EVENTS as E } from "../circle-games/games/web-view/web-view-analytics-events.js";
1
+ import { GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS as E } from "../circle-games/game-launcher/game-launcher-analytics-events.js";
2
+ import { WEBVIEW_ANALYTICS_WHITELIST_EVENTS as T } from "../circle-games/games/web-view/web-view-analytics-events.js";
3
3
  import { LEADERBOARD_ANALYTICS_WHITELIST_EVENTS as S } from "../circle-games/leaderboard/leaderboard-analytics-events.js";
4
- import { TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS as _ } from "../milestone/milestone-tests/tests-creation/tests-creation-analytics-events.js";
5
- import { SHEETS_ANALYTICS_WHITELIST_EVENTS as I } from "../sheets/sheets-analytics-events.js";
6
- import { USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS as A } from "../hooks/use-auto-play-permission/use-auto-play-permission-analytics-events.js";
7
- import { PLATFORM_WHITELIST_EVENTS_STUDENT as L } from "./platform-events-student.js";
8
- import { PLATFORM_WHITELIST_EVENTS_TEACHER as N } from "./platform-events-teacher.js";
9
- const C = {
4
+ import { RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS as _ } from "../milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js";
5
+ import { TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS as I } from "../milestone/milestone-tests/tests-creation/tests-creation-analytics-events.js";
6
+ import { SHEETS_ANALYTICS_WHITELIST_EVENTS as A } from "../sheets/sheets-analytics-events.js";
7
+ import { USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS as L } from "../hooks/use-auto-play-permission/use-auto-play-permission-analytics-events.js";
8
+ import { PLATFORM_WHITELIST_EVENTS_STUDENT as N } from "./platform-events-student.js";
9
+ import { PLATFORM_WHITELIST_EVENTS_TEACHER as o } from "./platform-events-teacher.js";
10
+ const f = {
10
11
  //* Global/Platform specific events
11
- ...L,
12
12
  ...N,
13
+ ...o,
13
14
  //* Feature specific events
14
- ...T,
15
- ...S,
16
15
  ...E,
16
+ ...S,
17
17
  ..._,
18
+ ...A,
18
19
  ...I,
19
- ...A
20
+ ...L,
21
+ ...T
20
22
  };
21
23
  export {
22
- C as WHITELIST_EVENTS
24
+ f as WHITELIST_EVENTS
23
25
  };
24
26
  //# sourceMappingURL=whitelist-events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"whitelist-events.js","sources":["../../../src/features/analytics-events/whitelist-events.ts"],"sourcesContent":["import type { PLUGIN_NAME } from '@cuemath/analytics-v2/dist/constants';\n\nimport { GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/game-launcher/game-launcher-analytics-events';\nimport { WEBVIEW_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/games/web-view/web-view-analytics-events';\nimport { LEADERBOARD_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/leaderboard/leaderboard-analytics-events';\nimport { TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS } from '../milestone/milestone-tests/tests-creation/tests-creation-analytics-events';\nimport { SHEETS_ANALYTICS_WHITELIST_EVENTS } from '../sheets/sheets-analytics-events';\nimport { USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS } from './../hooks/use-auto-play-permission/use-auto-play-permission-analytics-events';\nimport { PLATFORM_WHITELIST_EVENTS_STUDENT } from './platform-events-student';\nimport { PLATFORM_WHITELIST_EVENTS_TEACHER } from './platform-events-teacher';\n\n/**\n ** Feature specific & Global/Platform specific events are imported here\n */\nconst WHITELIST_EVENTS: Record<string, PLUGIN_NAME[]> = {\n //* Global/Platform specific events\n ...PLATFORM_WHITELIST_EVENTS_STUDENT,\n ...PLATFORM_WHITELIST_EVENTS_TEACHER,\n\n //* Feature specific events\n ...GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS,\n ...LEADERBOARD_ANALYTICS_WHITELIST_EVENTS,\n ...WEBVIEW_ANALYTICS_WHITELIST_EVENTS,\n ...TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS,\n ...SHEETS_ANALYTICS_WHITELIST_EVENTS,\n ...USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS,\n};\n\nexport { WHITELIST_EVENTS };\n"],"names":["WHITELIST_EVENTS","PLATFORM_WHITELIST_EVENTS_STUDENT","PLATFORM_WHITELIST_EVENTS_TEACHER","GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS","LEADERBOARD_ANALYTICS_WHITELIST_EVENTS","WEBVIEW_ANALYTICS_WHITELIST_EVENTS","TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS","SHEETS_ANALYTICS_WHITELIST_EVENTS","USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS"],"mappings":";;;;;;;;AAcA,MAAMA,IAAkD;AAAA;AAAA,EAEtD,GAAGC;AAAA,EACH,GAAGC;AAAA;AAAA,EAGH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AACL;"}
1
+ {"version":3,"file":"whitelist-events.js","sources":["../../../src/features/analytics-events/whitelist-events.ts"],"sourcesContent":["import type { PLUGIN_NAME } from '@cuemath/analytics-v2/dist/constants';\n\nimport { GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/game-launcher/game-launcher-analytics-events';\nimport { WEBVIEW_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/games/web-view/web-view-analytics-events';\nimport { LEADERBOARD_ANALYTICS_WHITELIST_EVENTS } from '../circle-games/leaderboard/leaderboard-analytics-events';\nimport { RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS } from '../milestone/milestone-resources/resources-assign/resource-assign-analytics-events';\nimport { TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS } from '../milestone/milestone-tests/tests-creation/tests-creation-analytics-events';\nimport { SHEETS_ANALYTICS_WHITELIST_EVENTS } from '../sheets/sheets-analytics-events';\nimport { USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS } from './../hooks/use-auto-play-permission/use-auto-play-permission-analytics-events';\nimport { PLATFORM_WHITELIST_EVENTS_STUDENT } from './platform-events-student';\nimport { PLATFORM_WHITELIST_EVENTS_TEACHER } from './platform-events-teacher';\n\n/**\n ** Feature specific & Global/Platform specific events are imported here\n */\nconst WHITELIST_EVENTS: Record<string, PLUGIN_NAME[]> = {\n //* Global/Platform specific events\n ...PLATFORM_WHITELIST_EVENTS_STUDENT,\n ...PLATFORM_WHITELIST_EVENTS_TEACHER,\n\n //* Feature specific events\n ...GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS,\n ...LEADERBOARD_ANALYTICS_WHITELIST_EVENTS,\n ...RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS,\n ...SHEETS_ANALYTICS_WHITELIST_EVENTS,\n ...TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS,\n ...USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS,\n ...WEBVIEW_ANALYTICS_WHITELIST_EVENTS,\n};\n\nexport { WHITELIST_EVENTS };\n"],"names":["WHITELIST_EVENTS","PLATFORM_WHITELIST_EVENTS_STUDENT","PLATFORM_WHITELIST_EVENTS_TEACHER","GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS","LEADERBOARD_ANALYTICS_WHITELIST_EVENTS","RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS","SHEETS_ANALYTICS_WHITELIST_EVENTS","TESTS_CREATION_ANALYTICS_WHITELIST_EVENTS","USE_AUTO_PLAY_PERMISSION_ANALYTICS_WHITELIST_EVENTS","WEBVIEW_ANALYTICS_WHITELIST_EVENTS"],"mappings":";;;;;;;;;AAeA,MAAMA,IAAkD;AAAA;AAAA,EAEtD,GAAGC;AAAA,EACH,GAAGC;AAAA;AAAA,EAGH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AACL;"}
@@ -1 +1 @@
1
- {"version":3,"file":"cue-canvas-core.js","sources":["../../../src/features/cue-canvas/cue-canvas-core.ts"],"sourcesContent":["import type { TUserTypes } from '../ui/types';\nimport type {\n IActionData,\n TCueCanvasChangeData,\n TCueCanvasTool,\n TPublish,\n TSubscribe,\n} from './types/cue-canvas';\nimport type { ICreateOptions } from './types/cue-canvas';\nimport type { IPolypad, IPolyPadInstance } from './types/polypad';\n\nimport { getReverseMap, getToolAndSubtool, removeMask } from './cue-canvas-helpers';\n\ndeclare global {\n interface Window {\n Polypad: IPolypad;\n }\n}\nexport class CueCanvasCore {\n private polycanvas: IPolyPadInstance | undefined;\n private publish?: TPublish;\n private height: number;\n private onUpdateHeight: (height: number) => void;\n private userId: string;\n private responseId: string;\n private userType: TUserTypes;\n\n constructor(\n onPublish: TPublish,\n onSubscribe: TSubscribe,\n onUpdateHeight: (height: number) => void,\n height: number,\n userId: string,\n responseId: string,\n userType: TUserTypes,\n ) {\n this.onUpdateHeight = onUpdateHeight;\n this.height = height;\n this.userId = userId;\n this.responseId = responseId;\n this.publish = onPublish;\n this.userType = userType;\n onSubscribe(this.responseId, this.update);\n }\n\n async create({ canvasElementRef, canvasConfig, canvasSetting, initialData }: ICreateOptions) {\n if (!canvasElementRef.current) {\n throw new Error('PolyCanvas: Div Element Not found for canvas');\n }\n this.polycanvas = await window.Polypad.create(canvasElementRef.current, {\n initial: {\n options: canvasConfig,\n },\n ...canvasSetting,\n });\n\n removeMask(canvasElementRef);\n this.polycanvas.on('change', this.onChange);\n if (initialData) {\n this.update(initialData);\n }\n }\n\n resetViewPort = () => {\n if (this.polycanvas) {\n this.polycanvas.resetViewport();\n }\n };\n\n onChange = (e: unknown) => {\n const data = e as TCueCanvasChangeData;\n const payload = Object.fromEntries(data.entries());\n\n if (this.publish) {\n this.publish({\n eventName: 'cue_canvas_changed',\n eventPayload: {\n data: payload,\n height: this.height,\n userId: this.userId,\n responseId: this.responseId,\n },\n });\n }\n };\n\n undo = () => {\n if (!this.polycanvas) {\n return;\n }\n\n const data = this.polycanvas.undo() as TCueCanvasChangeData;\n\n if (!data) {\n return;\n }\n\n const undoData = getReverseMap(data);\n\n this.onChange(undoData);\n };\n\n redo = () => {\n if (!this.polycanvas) {\n return;\n }\n\n const data = this.polycanvas.redo() as TCueCanvasChangeData;\n\n if (!data) {\n return;\n }\n\n this.onChange(data);\n };\n\n setTool = (tool: TCueCanvasTool) => {\n if (this.polycanvas) {\n const [currTool, currSubTool] = getToolAndSubtool(tool);\n\n switch (currTool) {\n case 'undo':\n this.undo();\n break;\n case 'redo':\n this.redo();\n break;\n default:\n this.polycanvas.setTool(currTool, currSubTool);\n }\n }\n };\n\n updateCanvas = ({ data, userId }: IActionData) => {\n const canEditStroke = this.userType === 'TEACHER' || userId === this.userId;\n\n Object.entries(data).forEach(([key, value]) => {\n if (!value[0] && value[1]) {\n this.polycanvas?.add({ ...value[1], cannotEdit: !canEditStroke }, key);\n } else if (value[0] && !value[1]) {\n this.polycanvas?.delete(key);\n } else {\n // This is the case for tile edit (rotate, flip, slice etc)\n // this.polycanvas?.update(key, { ...value[1] });\n }\n });\n };\n /**\n * The `update` method is called in two cases:\n * 1. When receiving initial data to update the canvas content.\n * 2. When receiving strokes from other peers to update the canvas content.\n * Each item can contain multiple actions, which are applied to the canvas.\n *\n * The method checks if the payload is an array or a single object.\n * If it's an array, it iterates over each item and updates the canvas accordingly.\n * If it's a single object, it directly updates the canvas.\n *\n * Additionally, if the payload contains a height greater than the current height of the canvas, the `updateHeight` method is called to update the canvas height.\n */\n update = (payload: IActionData | IActionData[]) => {\n if (Array.isArray(payload)) {\n const heights = payload.map(data => data.height);\n const maxHeight = Math.max(...heights);\n\n if (maxHeight > this.height) {\n this.updateHeight(maxHeight);\n }\n payload.forEach(item => this.updateCanvas(item));\n } else {\n if (payload.height > this.height) {\n this.updateHeight(payload.height);\n }\n this.updateCanvas(payload);\n }\n };\n\n setColor = (color: string) => {\n if (this.polycanvas) {\n this.polycanvas.setColor(color);\n }\n };\n\n updateHeight = (height: number) => {\n this.height = height;\n this.onUpdateHeight(height);\n };\n\n destroy = () => {\n if (this.polycanvas) {\n this.polycanvas.off('change', this.onChange);\n this.polycanvas.destroy();\n this.polycanvas = undefined;\n }\n };\n}\n"],"names":["CueCanvasCore","onPublish","onSubscribe","onUpdateHeight","height","userId","responseId","userType","__publicField","e","payload","data","undoData","getReverseMap","tool","currTool","currSubTool","getToolAndSubtool","canEditStroke","key","value","_a","_b","heights","maxHeight","item","color","canvasElementRef","canvasConfig","canvasSetting","initialData","removeMask"],"mappings":"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"}
1
+ {"version":3,"file":"cue-canvas-core.js","sources":["../../../src/features/cue-canvas/cue-canvas-core.ts"],"sourcesContent":["import '../../library/polypad';\nimport type { TUserTypes } from '../ui/types';\nimport type {\n IActionData,\n TCueCanvasChangeData,\n TCueCanvasTool,\n TPublish,\n TSubscribe,\n} from './types/cue-canvas';\nimport type { ICreateOptions } from './types/cue-canvas';\nimport type { IPolypad, IPolyPadInstance } from './types/polypad';\n\nimport { getReverseMap, getToolAndSubtool, removeMask } from './cue-canvas-helpers';\n\ndeclare global {\n interface Window {\n Polypad: IPolypad;\n }\n}\nexport class CueCanvasCore {\n private polycanvas: IPolyPadInstance | undefined;\n private publish?: TPublish;\n private height: number;\n private onUpdateHeight: (height: number) => void;\n private userId: string;\n private responseId: string;\n private userType: TUserTypes;\n\n constructor(\n onPublish: TPublish,\n onSubscribe: TSubscribe,\n onUpdateHeight: (height: number) => void,\n height: number,\n userId: string,\n responseId: string,\n userType: TUserTypes,\n ) {\n this.onUpdateHeight = onUpdateHeight;\n this.height = height;\n this.userId = userId;\n this.responseId = responseId;\n this.publish = onPublish;\n this.userType = userType;\n onSubscribe(this.responseId, this.update);\n }\n\n async create({ canvasElementRef, canvasConfig, canvasSetting, initialData }: ICreateOptions) {\n if (!canvasElementRef.current) {\n throw new Error('PolyCanvas: Div Element Not found for canvas');\n }\n this.polycanvas = await window.Polypad.create(canvasElementRef.current, {\n initial: {\n options: canvasConfig,\n },\n ...canvasSetting,\n });\n\n removeMask(canvasElementRef);\n this.polycanvas.on('change', this.onChange);\n if (initialData) {\n this.update(initialData);\n }\n }\n\n resetViewPort = () => {\n if (this.polycanvas) {\n this.polycanvas.resetViewport();\n }\n };\n\n onChange = (e: unknown) => {\n const data = e as TCueCanvasChangeData;\n const payload = Object.fromEntries(data.entries());\n\n if (this.publish) {\n this.publish({\n eventName: 'cue_canvas_changed',\n eventPayload: {\n data: payload,\n height: this.height,\n userId: this.userId,\n responseId: this.responseId,\n },\n });\n }\n };\n\n undo = () => {\n if (!this.polycanvas) {\n return;\n }\n\n const data = this.polycanvas.undo() as TCueCanvasChangeData;\n\n if (!data) {\n return;\n }\n\n const undoData = getReverseMap(data);\n\n this.onChange(undoData);\n };\n\n redo = () => {\n if (!this.polycanvas) {\n return;\n }\n\n const data = this.polycanvas.redo() as TCueCanvasChangeData;\n\n if (!data) {\n return;\n }\n\n this.onChange(data);\n };\n\n setTool = (tool: TCueCanvasTool) => {\n if (this.polycanvas) {\n const [currTool, currSubTool] = getToolAndSubtool(tool);\n\n switch (currTool) {\n case 'undo':\n this.undo();\n break;\n case 'redo':\n this.redo();\n break;\n default:\n this.polycanvas.setTool(currTool, currSubTool);\n }\n }\n };\n\n updateCanvas = ({ data, userId }: IActionData) => {\n const canEditStroke = this.userType === 'TEACHER' || userId === this.userId;\n\n Object.entries(data).forEach(([key, value]) => {\n if (!value[0] && value[1]) {\n this.polycanvas?.add({ ...value[1], cannotEdit: !canEditStroke }, key);\n } else if (value[0] && !value[1]) {\n this.polycanvas?.delete(key);\n } else {\n // This is the case for tile edit (rotate, flip, slice etc)\n // this.polycanvas?.update(key, { ...value[1] });\n }\n });\n };\n /**\n * The `update` method is called in two cases:\n * 1. When receiving initial data to update the canvas content.\n * 2. When receiving strokes from other peers to update the canvas content.\n * Each item can contain multiple actions, which are applied to the canvas.\n *\n * The method checks if the payload is an array or a single object.\n * If it's an array, it iterates over each item and updates the canvas accordingly.\n * If it's a single object, it directly updates the canvas.\n *\n * Additionally, if the payload contains a height greater than the current height of the canvas, the `updateHeight` method is called to update the canvas height.\n */\n update = (payload: IActionData | IActionData[]) => {\n if (Array.isArray(payload)) {\n const heights = payload.map(data => data.height);\n const maxHeight = Math.max(...heights);\n\n if (maxHeight > this.height) {\n this.updateHeight(maxHeight);\n }\n payload.forEach(item => this.updateCanvas(item));\n } else {\n if (payload.height > this.height) {\n this.updateHeight(payload.height);\n }\n this.updateCanvas(payload);\n }\n };\n\n setColor = (color: string) => {\n if (this.polycanvas) {\n this.polycanvas.setColor(color);\n }\n };\n\n updateHeight = (height: number) => {\n this.height = height;\n this.onUpdateHeight(height);\n };\n\n destroy = () => {\n if (this.polycanvas) {\n this.polycanvas.off('change', this.onChange);\n this.polycanvas.destroy();\n this.polycanvas = undefined;\n }\n };\n}\n"],"names":["CueCanvasCore","onPublish","onSubscribe","onUpdateHeight","height","userId","responseId","userType","__publicField","e","payload","data","undoData","getReverseMap","tool","currTool","currSubTool","getToolAndSubtool","canEditStroke","key","value","_a","_b","heights","maxHeight","item","color","canvasElementRef","canvasConfig","canvasSetting","initialData","removeMask"],"mappings":"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"}
@@ -1,74 +1,65 @@
1
- import { useMessageBrokerChannel as q } from "@cuemath/cue-message-broker";
2
- import { useState as x, useRef as w, useMemo as E, useCallback as h } from "react";
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(
10
- () => {
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;
16
- if (!(e != null && e.responseId)) continue;
17
- const t = I(e);
18
- s && n[s] ? (r = n[s]) == null || r.push(t) : n[s] = [t];
19
- }
20
- return n;
21
- }
22
- ), u = w({}), b = E(
1
+ import { useMessageBrokerChannel as B } from "@cuemath/cue-message-broker";
2
+ import { useState as j, useRef as D, useMemo as q, useCallback as p } from "react";
3
+ const w = (f, g) => {
4
+ const [C, k] = j(
5
+ {}
6
+ ), c = D({}), m = q(
23
7
  () => ({
24
- channelId: c,
8
+ channelId: f,
25
9
  ttl: 0,
26
- logger: f
10
+ logger: g
27
11
  }),
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({
39
- data: R,
40
- height: j,
41
- userId: B,
42
- responseId: t
43
- });
44
- else {
45
- const k = I(s);
46
- t && r[t] ? (p = r[t]) == null || p.push(k) : r[t] = [k];
47
- }
48
- }), Object.keys(r).length > 0 && m((a) => {
49
- const e = { ...a };
50
- return Object.keys(r).forEach((s) => {
51
- var t;
52
- s && e[s] ? (t = e[s]) == null || t.push(...r[s] ?? []) : e[s] = r[s] ?? [];
53
- }), e;
12
+ [f, g]
13
+ ), I = p((a, n) => {
14
+ c.current = { ...c.current, [a]: n };
15
+ }, []), S = p(
16
+ (a, n) => {
17
+ const t = {};
18
+ a.forEach((i) => {
19
+ var d;
20
+ const { payload: r } = i.message, { eventPayload: s } = r, e = s == null ? void 0 : s.responseId, u = s == null ? void 0 : s.data, h = s == null ? void 0 : s.userId, l = s == null ? void 0 : s.height, b = c.current[e];
21
+ !n && b ? b({
22
+ data: u,
23
+ height: l,
24
+ userId: h,
25
+ responseId: e
26
+ }) : e && t[e] ? (d = t[e]) == null || d.push({
27
+ userId: h,
28
+ data: u,
29
+ height: l,
30
+ responseId: e
31
+ }) : t[e] = [
32
+ {
33
+ userId: h,
34
+ data: u,
35
+ height: l,
36
+ responseId: e
37
+ }
38
+ ];
39
+ }), Object.keys(t).length > 0 && k(n ? t : (i) => {
40
+ const r = { ...i };
41
+ return Object.keys(t).forEach((s) => {
42
+ var e;
43
+ s && r[s] ? (e = r[s]) == null || e.push(...t[s] ?? []) : r[s] = t[s] ?? [];
44
+ }), r;
54
45
  });
55
46
  },
56
47
  []
57
- ), { publish: D, channelStatus: M, channel: i } = q({
58
- channelOptions: b,
59
- consumerFn: C
60
- }), O = h(() => {
61
- i && i.destroyChannel();
62
- }, [i]);
48
+ ), { publish: M, channelStatus: O, channel: o } = B({
49
+ channelOptions: m,
50
+ consumerFn: S
51
+ }), R = p(() => {
52
+ o && o.destroyChannel();
53
+ }, [o]);
63
54
  return {
64
- publishStrokes: D,
65
- channelStatus: M,
66
- closeChannel: O,
67
- initialStrokesData: d,
68
- registerCallback: S
55
+ publishStrokes: M,
56
+ channelStatus: O,
57
+ closeChannel: R,
58
+ initialStrokesData: C,
59
+ registerCallback: I
69
60
  };
70
- }, $ = F;
61
+ }, F = w;
71
62
  export {
72
- $ as default
63
+ F as default
73
64
  };
74
65
  //# sourceMappingURL=use-canvas-sync-broker.js.map
@@ -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 { 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
+ {"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 useCanvasSyncBroker = (\n channelId: string,\n logEvent: (type: string, payload?: Record<string, unknown>) => void,\n) => {\n const [initialStrokesData, setInitialStrokesData] = useState<Record<string, Array<IActionData>>>(\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 if (qrId && strokesPerWidgetMap[qrId]) {\n strokesPerWidgetMap[qrId]?.push({\n userId,\n data: strokes,\n height: canvasHeight,\n responseId: qrId,\n });\n } else {\n strokesPerWidgetMap[qrId] = [\n {\n userId,\n data: strokes,\n height: canvasHeight,\n responseId: qrId,\n },\n ];\n }\n }\n });\n\n if (Object.keys(strokesPerWidgetMap).length > 0) {\n if (initialData) {\n setInitialStrokesData(strokesPerWidgetMap);\n } else {\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\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":["useCanvasSyncBroker","channelId","logEvent","initialStrokesData","setInitialStrokesData","useState","callbacksMapRef","useRef","channelOptions","useMemo","registerCallback","useCallback","qrId","cb","onMessageReceive","messages","initialData","strokesPerWidgetMap","message","payload","eventPayload","strokes","userId","canvasHeight","widgetOnReceiveCallback","_a","prevData","currentData","key","publish","channelStatus","channel","useMessageBrokerChannel","closeChannel","useCanvasSyncBroker$1"],"mappings":";;AAeA,MAAMA,IAAsB,CAC1BC,GACAC,MACG;AACG,QAAA,CAACC,GAAoBC,CAAqB,IAAIC;AAAA,IAClD,CAAC;AAAA,EAAA,GAEGC,IAAkBC,EAAoD,CAAA,CAAE,GAExEC,IAAiBC;AAAA,IACrB,OAAO;AAAA,MACL,WAAAR;AAAA,MACA,KAAK;AAAA,MACL,QAAQC;AAAA,IAAA;AAAA,IAEV,CAACD,GAAWC,CAAQ;AAAA,EAAA,GAGhBQ,IAAmBC,EAAY,CAACC,GAAcC,MAAoC;AACtE,IAAAP,EAAA,UAAU,EAAE,GAAGA,EAAgB,SAAS,CAACM,CAAI,GAAGC;EAClE,GAAG,CAAE,CAAA,GAECC,IAAmBH;AAAA,IACvB,CAACI,GAAkCC,MAA0B;AAC3D,YAAMC,IAA0D,CAAA;AAEhE,MAAAF,EAAS,QAAQ,CAAWG,MAAA;;AACpB,cAAA,EAAE,SAAAC,EAAQ,IAAID,EAAQ,SACtB,EAAE,cAAAE,EAAiB,IAAAD,GACnBP,IAAOQ,KAAA,gBAAAA,EAAc,YACrBC,IAAUD,KAAA,gBAAAA,EAAc,MACxBE,IAASF,KAAA,gBAAAA,EAAc,QACvBG,IAAeH,KAAA,gBAAAA,EAAc,QAC7BI,IAA0BlB,EAAgB,QAAQM,CAAI;AAExD,QAAA,CAACI,KAAeQ,IACMA,EAAA;AAAA,UACtB,MAAMH;AAAA,UACN,QAAQE;AAAA,UACR,QAAAD;AAAA,UACA,YAAYV;AAAA,QAAA,CACb,IAEGA,KAAQK,EAAoBL,CAAI,KACda,IAAAR,EAAAL,CAAI,MAAJ,QAAAa,EAAO,KAAK;AAAA,UAC9B,QAAAH;AAAA,UACA,MAAMD;AAAA,UACN,QAAQE;AAAA,UACR,YAAYX;AAAA,QAAA,KAGdK,EAAoBL,CAAI,IAAI;AAAA,UAC1B;AAAA,YACE,QAAAU;AAAA,YACA,MAAMD;AAAA,YACN,QAAQE;AAAA,YACR,YAAYX;AAAA,UACd;AAAA,QAAA;AAAA,MAGN,CACD,GAEG,OAAO,KAAKK,CAAmB,EAAE,SAAS,KAE1Cb,EADEY,IACoBC,IAEA,CAAYS,MAAA;AAC1B,cAAAC,IAAc,EAAE,GAAGD;AAEzB,sBAAO,KAAKT,CAAmB,EAAE,QAAQ,CAAOW,MAAA;;AAC1C,UAAAA,KAAOD,EAAYC,CAAG,KACZH,IAAAE,EAAAC,CAAG,MAAH,QAAAH,EAAM,KAAK,GAAIR,EAAoBW,CAAG,KAAK,CAAA,KAEvDD,EAAYC,CAAG,IAAIX,EAAoBW,CAAG,KAAK,CAAA;AAAA,QACjD,CACD,GAEMD;AAAA,MAAA,CAbgC;AAAA,IAiB/C;AAAA,IACA,CAAC;AAAA,EAAA,GAGG,EAAE,SAAAE,GAAS,eAAAC,GAAe,SAAAC,EAAA,IAAYC,EAAwB;AAAA,IAClE,gBAAAxB;AAAA,IACA,YAAYM;AAAA,EAAA,CACb,GAEKmB,IAAetB,EAAY,MAAM;AACrC,IAAIoB,KACFA,EAAQ,eAAe;AAAA,EACzB,GACC,CAACA,CAAO,CAAC;AAEL,SAAA;AAAA,IACL,gBAAgBF;AAAA,IAChB,eAAAC;AAAA,IACA,cAAAG;AAAA,IACA,oBAAA9B;AAAA,IACA,kBAAAO;AAAA,EAAA;AAEJ,GAEAwB,IAAelC;"}
@@ -0,0 +1,194 @@
1
+ import { jsxs as c, Fragment as C, jsx as t } from "react/jsx-runtime";
2
+ import { memo as N, useRef as $, useState as X, useEffect as G, Fragment as W } from "react";
3
+ import j from "../../../../assets/line-icons/icons/sheet.js";
4
+ import { useUIContext as w } from "../../../ui/context/context.js";
5
+ import R from "../../../ui/layout/flex-view.js";
6
+ import P from "../../../ui/separator/separator.js";
7
+ import g from "../../../ui/text/text.js";
8
+ import V from "./comps/filter-item/filter-item.js";
9
+ import Y from "./comps/resource-item/resource-item.js";
10
+ import { RESOURCE_ASSIGN_ANALYTICS_EVENTS as n } from "./resource-assign-analytics-events.js";
11
+ import { HeaderWrapper as H, FilterTabWrapper as K, ResourceCountWrapper as M, FilterListWrapper as J } from "./resources-assign-styled.js";
12
+ const q = [
13
+ {
14
+ id: "resource-filters",
15
+ label: "Filters"
16
+ },
17
+ {
18
+ id: "resource-added",
19
+ label: "Added"
20
+ }
21
+ ], z = {
22
+ LEARNING: "Learning",
23
+ PRACTICE: "Practice",
24
+ ASSESSMENT: "Assessment",
25
+ LEVEL2: "Advanced",
26
+ LEVEL3: "Advanced",
27
+ SUBJECTIVE: "Subjective"
28
+ }, ae = N((I) => {
29
+ var b, L, D;
30
+ const {
31
+ boards: i,
32
+ grades: l,
33
+ nodeTypes: s,
34
+ selectedResources: f,
35
+ onResourceDeSelection: O,
36
+ onFilterUpdate: a,
37
+ onViewResource: v
38
+ } = I, d = $(i), E = $(l), u = $(s), { onEvent: p } = w(), [S, x] = X("resource-filters"), m = f.length, _ = (b = d.current.find((e) => e.applied)) == null ? void 0 : b.name, T = (L = E.current.find((e) => e.applied)) == null ? void 0 : L.name, A = (D = u.current.find((e) => e.applied)) == null ? void 0 : D.name, k = (e) => {
39
+ const r = _ === e;
40
+ p(
41
+ r ? n.RESOURCE_BOARD_DESELECTED : n.RESOURCE_BOARD_SELECTED,
42
+ {
43
+ board: e
44
+ }
45
+ ), a({ board: r ? "" : e });
46
+ }, y = (e) => {
47
+ const r = T === e;
48
+ p(
49
+ r ? n.RESOURCE_GRADE_DESELECTED : n.RESOURCE_GRADE_SELECTED,
50
+ {
51
+ grade: e
52
+ }
53
+ ), a({ grade: r ? "" : e });
54
+ }, F = (e) => {
55
+ const r = A === e;
56
+ p(
57
+ r ? n.RESOURCE_NODE_TYPE_DESELECTED : n.RESOURCE_NODE_TYPE_SELECTED,
58
+ {
59
+ node_type: e
60
+ }
61
+ ), a({ node_type: r ? "" : e });
62
+ };
63
+ G(() => {
64
+ d.current = i, E.current = l, u.current = s;
65
+ }, [i, l, s]);
66
+ const U = [
67
+ {
68
+ title: "Curriculum",
69
+ options: d.current.map(({ code: e, name: r }) => ({
70
+ id: e,
71
+ label: r,
72
+ value: r
73
+ })),
74
+ value: _,
75
+ onClick: k
76
+ },
77
+ {
78
+ title: "Grade",
79
+ options: E.current.map(({ code: e, name: r }) => ({
80
+ id: e,
81
+ label: e,
82
+ value: r
83
+ })),
84
+ value: T,
85
+ onClick: y
86
+ },
87
+ {
88
+ title: "Type",
89
+ options: u.current.map(({ code: e, name: r }) => ({
90
+ id: e,
91
+ label: z[r] || "",
92
+ value: r || ""
93
+ })),
94
+ value: A,
95
+ onClick: F
96
+ }
97
+ ];
98
+ return /* @__PURE__ */ c(C, { children: [
99
+ /* @__PURE__ */ t(
100
+ H,
101
+ {
102
+ $heightX: 4,
103
+ $background: "WHITE_3",
104
+ $flexDirection: "row",
105
+ $alignItems: "end",
106
+ $noBorder: !0,
107
+ children: q.map((e) => {
108
+ const { id: r, label: h } = e, o = r === S;
109
+ return /* @__PURE__ */ c(
110
+ K,
111
+ {
112
+ $flexDirection: "row",
113
+ $width: "100%",
114
+ $alignItems: "center",
115
+ $justifyContent: "center",
116
+ $gapX: 0.5,
117
+ $selected: o,
118
+ onClick: () => x(r),
119
+ $flexGap: 4,
120
+ $heightX: 2.5,
121
+ children: [
122
+ /* @__PURE__ */ t(
123
+ g,
124
+ {
125
+ $renderAs: o ? "ub3-bold" : "ub3",
126
+ $align: "center",
127
+ $color: o ? "BLACK_T_87" : "BLACK_T_38",
128
+ children: h
129
+ }
130
+ ),
131
+ m > 0 && r === "resource-added" && /* @__PURE__ */ t(
132
+ M,
133
+ {
134
+ $borderRadius: 50,
135
+ $background: "YELLOW_4",
136
+ $gutter: 4,
137
+ $justifyContent: "center",
138
+ $alignItems: "center",
139
+ $heightX: 1.25,
140
+ children: /* @__PURE__ */ t(g, { $renderAs: "ac4-black", children: m })
141
+ }
142
+ )
143
+ ]
144
+ },
145
+ r
146
+ );
147
+ })
148
+ }
149
+ ),
150
+ /* @__PURE__ */ t(J, { $height: "calc(100vh - 64px - 16px)", children: S === "resource-filters" ? /* @__PURE__ */ t(C, { children: U.map((e) => {
151
+ const { title: r, value: h, options: o, onClick: B } = e;
152
+ return /* @__PURE__ */ c(W, { children: [
153
+ /* @__PURE__ */ t(
154
+ V,
155
+ {
156
+ title: r,
157
+ value: h ?? "",
158
+ options: o,
159
+ onClick: B
160
+ }
161
+ ),
162
+ /* @__PURE__ */ t(P, { height: 1, background: "WHITE_5" })
163
+ ] }, r);
164
+ }) }) : /* @__PURE__ */ c(C, { children: [
165
+ f.map((e) => /* @__PURE__ */ t(R, { $gapX: 1, $gutterX: 1, children: /* @__PURE__ */ t(
166
+ Y,
167
+ {
168
+ resource: e,
169
+ onViewResource: v,
170
+ onResourceAdditionOrDeletion: O,
171
+ selected: !0
172
+ }
173
+ ) }, e.id)),
174
+ m === 0 && /* @__PURE__ */ c(
175
+ R,
176
+ {
177
+ $alignItems: "center",
178
+ $justifyContent: "center",
179
+ $gapX: 2,
180
+ $height: "100%",
181
+ $flexGap: 8,
182
+ children: [
183
+ /* @__PURE__ */ t(j, { opacity: 0.38 }),
184
+ /* @__PURE__ */ t(R, { $widthX: 15, children: /* @__PURE__ */ t(g, { $renderAs: "ub1-bold", $color: "BLACK_T_38", $align: "center", children: "No sheets added" }) })
185
+ ]
186
+ }
187
+ )
188
+ ] }) })
189
+ ] });
190
+ });
191
+ export {
192
+ ae as default
193
+ };
194
+ //# sourceMappingURL=added-resource-and-filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"added-resource-and-filters.js","sources":["../../../../../src/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.tsx"],"sourcesContent":["import type { IAddedResourceAndFilters } from './resources-assign-type';\nimport type { FC } from 'react';\n\nimport { Fragment, memo, useEffect, useRef, useState } from 'react';\n\nimport SheetIcon from '../../../../assets/line-icons/icons/sheet';\nimport { useUIContext } from '../../../ui/context/context';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport FilterItem from './comps/filter-item/filter-item';\nimport ResourceItem from './comps/resource-item/resource-item';\nimport { RESOURCE_ASSIGN_ANALYTICS_EVENTS } from './resource-assign-analytics-events';\nimport * as Styled from './resources-assign-styled';\n\nconst TABS = [\n {\n id: 'resource-filters',\n label: 'Filters',\n },\n {\n id: 'resource-added',\n label: 'Added',\n },\n];\n\nconst EXTRA_PRACTICE_LABEL_MAP: Record<string, string> = {\n LEARNING: 'Learning',\n PRACTICE: 'Practice',\n ASSESSMENT: 'Assessment',\n LEVEL2: 'Advanced',\n LEVEL3: 'Advanced',\n SUBJECTIVE: 'Subjective',\n};\n\nconst AddedResourceAndFilters: FC<IAddedResourceAndFilters> = memo(props => {\n const {\n boards,\n grades,\n nodeTypes,\n selectedResources,\n onResourceDeSelection,\n onFilterUpdate,\n onViewResource,\n } = props;\n\n const boardsRef = useRef(boards);\n const gradesRef = useRef(grades);\n const nodeTypesRef = useRef(nodeTypes);\n\n const { onEvent: trackEvent } = useUIContext();\n\n const [selectedTab, setSelectedTab] = useState('resource-filters');\n\n const addedResourceCount = selectedResources.length;\n const appliedBoard = boardsRef.current.find(board => board.applied)?.name;\n const appliedGrade = gradesRef.current.find(grade => grade.applied)?.name;\n const appliedNodeType = nodeTypesRef.current.find(grade => grade.applied)?.name;\n\n const handleOnBoardChange = (updatedBoard: string) => {\n const boardSelection = appliedBoard === updatedBoard;\n\n trackEvent(\n boardSelection\n ? RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_BOARD_DESELECTED\n : RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_BOARD_SELECTED,\n {\n board: updatedBoard,\n },\n );\n onFilterUpdate({ board: boardSelection ? '' : updatedBoard });\n };\n\n const handleOnGradeChange = (updatedGrade: string) => {\n const gradeSelection = appliedGrade === updatedGrade;\n\n trackEvent(\n gradeSelection\n ? RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_GRADE_DESELECTED\n : RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_GRADE_SELECTED,\n {\n grade: updatedGrade,\n },\n );\n onFilterUpdate({ grade: gradeSelection ? '' : updatedGrade });\n };\n\n const handleOnNodeTypeChange = (updatedNodeType: string) => {\n const nodeTypeSelection = appliedNodeType === updatedNodeType;\n\n trackEvent(\n nodeTypeSelection\n ? RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_NODE_TYPE_DESELECTED\n : RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_NODE_TYPE_SELECTED,\n {\n node_type: updatedNodeType,\n },\n );\n onFilterUpdate({ node_type: nodeTypeSelection ? '' : updatedNodeType });\n };\n\n useEffect(() => {\n boardsRef.current = boards;\n gradesRef.current = grades;\n nodeTypesRef.current = nodeTypes;\n }, [boards, grades, nodeTypes]);\n\n const filterItemList = [\n {\n title: 'Curriculum',\n options: boardsRef.current.map(({ code, name }) => ({\n id: code,\n label: name,\n value: name,\n })),\n value: appliedBoard,\n onClick: handleOnBoardChange,\n },\n {\n title: 'Grade',\n options: gradesRef.current.map(({ code, name }) => ({\n id: code,\n label: code,\n value: name,\n })),\n value: appliedGrade,\n onClick: handleOnGradeChange,\n },\n {\n title: 'Type',\n options: nodeTypesRef.current.map(({ code, name }) => ({\n id: code,\n label: EXTRA_PRACTICE_LABEL_MAP[name] || '',\n value: name || '',\n })),\n value: appliedNodeType,\n onClick: handleOnNodeTypeChange,\n },\n ];\n\n return (\n <>\n <Styled.HeaderWrapper\n $heightX={4}\n $background=\"WHITE_3\"\n $flexDirection=\"row\"\n $alignItems=\"end\"\n $noBorder\n >\n {TABS.map(tab => {\n const { id, label } = tab;\n const selected = id === selectedTab;\n\n return (\n <Styled.FilterTabWrapper\n key={id}\n $flexDirection=\"row\"\n $width=\"100%\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $gapX={0.5}\n $selected={selected}\n onClick={() => setSelectedTab(id)}\n $flexGap={4}\n $heightX={2.5}\n >\n <Text\n $renderAs={selected ? 'ub3-bold' : 'ub3'}\n $align=\"center\"\n $color={selected ? 'BLACK_T_87' : 'BLACK_T_38'}\n >\n {label}\n </Text>\n {addedResourceCount > 0 && id === 'resource-added' && (\n <Styled.ResourceCountWrapper\n $borderRadius={50}\n $background=\"YELLOW_4\"\n $gutter={4}\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $heightX={1.25}\n >\n <Text $renderAs=\"ac4-black\">{addedResourceCount}</Text>\n </Styled.ResourceCountWrapper>\n )}\n </Styled.FilterTabWrapper>\n );\n })}\n </Styled.HeaderWrapper>\n\n <Styled.FilterListWrapper $height=\"calc(100vh - 64px - 16px)\">\n {selectedTab === 'resource-filters' ? (\n <>\n {filterItemList.map(item => {\n const { title, value, options, onClick } = item;\n\n return (\n <Fragment key={title}>\n <FilterItem\n title={title}\n value={value ?? ''}\n options={options}\n onClick={onClick}\n />\n\n <Separator height={1} background=\"WHITE_5\" />\n </Fragment>\n );\n })}\n </>\n ) : (\n <>\n {selectedResources.map(item => (\n <FlexView $gapX={1} $gutterX={1} key={item.id}>\n <ResourceItem\n resource={item}\n onViewResource={onViewResource}\n onResourceAdditionOrDeletion={onResourceDeSelection}\n selected={true}\n />\n </FlexView>\n ))}\n\n {addedResourceCount === 0 && (\n <FlexView\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $gapX={2}\n $height=\"100%\"\n $flexGap={8}\n >\n <SheetIcon opacity={0.38} />\n <FlexView $widthX={15}>\n <Text $renderAs=\"ub1-bold\" $color=\"BLACK_T_38\" $align=\"center\">\n No sheets added\n </Text>\n </FlexView>\n </FlexView>\n )}\n </>\n )}\n </Styled.FilterListWrapper>\n </>\n );\n});\n\nexport default AddedResourceAndFilters;\n"],"names":["TABS","EXTRA_PRACTICE_LABEL_MAP","AddedResourceAndFilters","memo","props","boards","grades","nodeTypes","selectedResources","onResourceDeSelection","onFilterUpdate","onViewResource","boardsRef","useRef","gradesRef","nodeTypesRef","trackEvent","useUIContext","selectedTab","setSelectedTab","useState","addedResourceCount","appliedBoard","_a","board","appliedGrade","_b","grade","appliedNodeType","_c","handleOnBoardChange","updatedBoard","boardSelection","RESOURCE_ASSIGN_ANALYTICS_EVENTS","handleOnGradeChange","updatedGrade","gradeSelection","handleOnNodeTypeChange","updatedNodeType","nodeTypeSelection","useEffect","filterItemList","code","name","jsxs","Fragment","jsx","Styled.HeaderWrapper","tab","id","label","selected","Styled.FilterTabWrapper","Text","Styled.ResourceCountWrapper","Styled.FilterListWrapper","item","title","value","options","onClick","FilterItem","Separator","FlexView","ResourceItem","SheetIcon"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { createGetAPI as e } from "@cuemath/rest-api";
2
+ import { BASE_URL_V3 as t } from "../../../../../constants/api.js";
3
+ import { stringify as o } from "../../../../../helpers/query-string.js";
4
+ const { useGet: i } = e({
5
+ getURL: (c, r) => `${t}/curriculum/extra-resources/?${o(r)}`
6
+ });
7
+ export {
8
+ i as useGetSearchResource
9
+ };
10
+ //# sourceMappingURL=get-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-resource.js","sources":["../../../../../../src/features/milestone/milestone-resources/resources-assign/api/get-resource.ts"],"sourcesContent":["import type { TCourseStream } from '../../../create/milestone-create-types';\nimport type { IResourceData } from '../resources-assign-type';\n\nimport { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V3 } from '../../../../../constants/api';\nimport { stringify } from '../../../../../helpers/query-string';\n\ninterface IExtraPracticeQuery {\n board?: string;\n grade?: string;\n stream: TCourseStream;\n search_term?: string;\n node_type?: string;\n page?: number;\n per_page?: number;\n user_milestone_id?: string;\n program_id?: string;\n user_id?: string;\n}\n\nconst { useGet: useGetSearchResource } = createGetAPI<IResourceData, IExtraPracticeQuery>({\n getURL: (_, query) => `${BASE_URL_V3}/curriculum/extra-resources/?${stringify(query)}`,\n});\n\nexport { useGetSearchResource, type IExtraPracticeQuery };\n"],"names":["useGetSearchResource","createGetAPI","_","query","BASE_URL_V3","stringify"],"mappings":";;;AAqBA,MAAM,EAAE,QAAQA,EAAqB,IAAIC,EAAiD;AAAA,EACxF,QAAQ,CAACC,GAAGC,MAAU,GAAGC,CAAW,gCAAgCC,EAAUF,CAAK,CAAC;AACtF,CAAC;"}
@@ -0,0 +1,9 @@
1
+ import { createPostAPI as o } from "@cuemath/rest-api";
2
+ import { BASE_URL_V3 as s } from "../../../../../constants/api.js";
3
+ const { usePost: u } = o({
4
+ getURL: (t, { userMilestoneId: e }) => `${s}/user-milestone/${e}/resources`
5
+ });
6
+ export {
7
+ u as usePostMilestoneResource
8
+ };
9
+ //# sourceMappingURL=goal-resource-assign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goal-resource-assign.js","sources":["../../../../../../src/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.ts"],"sourcesContent":["import { createPostAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V3 } from '../../../../../constants/api';\n\nconst { usePost: usePostMilestoneResource } = createPostAPI<\n void,\n {\n node_ids: string[];\n },\n { userMilestoneId: string }\n>({\n getURL: (_, { userMilestoneId }) => `${BASE_URL_V3}/user-milestone/${userMilestoneId}/resources`,\n});\n\nexport { usePostMilestoneResource };\n"],"names":["usePostMilestoneResource","createPostAPI","_","userMilestoneId","BASE_URL_V3"],"mappings":";;AAIA,MAAM,EAAE,SAASA,EAAyB,IAAIC,EAM5C;AAAA,EACA,QAAQ,CAACC,GAAG,EAAE,iBAAAC,EAAsB,MAAA,GAAGC,CAAW,mBAAmBD,CAAe;AACtF,CAAC;"}
@@ -0,0 +1,9 @@
1
+ import { createPostAPI as e } from "@cuemath/rest-api";
2
+ import { BASE_URL_V2 as s } from "../../../../../constants/api.js";
3
+ const { usePost: P } = e({
4
+ getURL: (o, { studentId: t }) => `${s}/students/${t}/practice-sheets/`
5
+ });
6
+ export {
7
+ P as usePostLPARResource
8
+ };
9
+ //# sourceMappingURL=lpar-resource-assign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lpar-resource-assign.js","sources":["../../../../../../src/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.ts"],"sourcesContent":["import { createPostAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V2 } from '../../../../../constants/api';\n\nconst { usePost: usePostLPARResource } = createPostAPI<\n void,\n {\n program_id: string;\n nodes: { id: string; attempt_location: string }[];\n },\n { studentId: string }\n>({\n getURL: (_, { studentId }) => `${BASE_URL_V2}/students/${studentId}/practice-sheets/`,\n});\n\nexport { usePostLPARResource };\n"],"names":["usePostLPARResource","createPostAPI","_","studentId","BASE_URL_V2"],"mappings":";;AAIA,MAAM,EAAE,SAASA,EAAoB,IAAIC,EAOvC;AAAA,EACA,QAAQ,CAACC,GAAG,EAAE,WAAAC,EAAgB,MAAA,GAAGC,CAAW,aAAaD,CAAS;AACpE,CAAC;"}
@@ -0,0 +1,19 @@
1
+ import o from "styled-components";
2
+ import n from "../../../../../../assets/line-icons/icons/chevron-down.js";
3
+ import i from "../../../../../ui/layout/flex-view.js";
4
+ const p = o(i)`
5
+ cursor: pointer;
6
+ `, c = o(n)(({ $active: r, theme: e }) => {
7
+ const { gutter: t } = e.layout;
8
+ return `
9
+ width: ${t}px;
10
+ height: ${t}px;
11
+ transform: rotate(${r ? 180 : 0}deg);
12
+ transition: transform 0.3s ease-out;
13
+ `;
14
+ });
15
+ export {
16
+ p as FilterItemHeader,
17
+ c as StyledChevronIcon
18
+ };
19
+ //# sourceMappingURL=filter-item-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-item-styled.js","sources":["../../../../../../../src/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport ChevronDownIcon from '../../../../../../assets/line-icons/icons/chevron-down';\nimport FlexView from '../../../../../ui/layout/flex-view';\n\nconst FilterItemHeader = styled(FlexView)`\n cursor: pointer;\n`;\n\ninterface IChevronIcon {\n $active: boolean;\n}\n\nconst StyledChevronIcon = styled(ChevronDownIcon)<IChevronIcon>(({ $active, theme }) => {\n const { gutter } = theme.layout;\n\n return `\n width: ${gutter}px;\n height: ${gutter}px;\n transform: rotate(${$active ? 180 : 0}deg);\n transition: transform 0.3s ease-out;\n `;\n});\n\nexport { FilterItemHeader, StyledChevronIcon };\n"],"names":["FilterItemHeader","styled","FlexView","StyledChevronIcon","ChevronDownIcon","$active","theme","gutter"],"mappings":";;;AAKM,MAAAA,IAAmBC,EAAOC,CAAQ;AAAA;AAAA,GAQlCC,IAAoBF,EAAOG,CAAe,EAAgB,CAAC,EAAE,SAAAC,GAAS,OAAAC,QAAY;AAChF,QAAA,EAAE,QAAAC,EAAO,IAAID,EAAM;AAElB,SAAA;AAAA,aACIC,CAAM;AAAA,cACLA,CAAM;AAAA,wBACIF,IAAU,MAAM,CAAC;AAAA;AAAA;AAGzC,CAAC;"}