@cuemath/leap 2.8.34-beta-0.1 → 2.8.34-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.
@@ -1,23 +1,23 @@
1
1
  import { GAME_LAUNCHER_ANALYTICS_WHITELIST_EVENTS as E } from "../circle-games/game-launcher/game-launcher-analytics-events.js";
2
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
- import { RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS as o } from "../milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js";
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
10
  const f = {
11
11
  //* Global/Platform specific events
12
- ...L,
13
12
  ...N,
13
+ ...o,
14
14
  //* Feature specific events
15
15
  ...E,
16
16
  ...S,
17
- ...o,
18
- ...I,
19
17
  ..._,
20
18
  ...A,
19
+ ...I,
20
+ ...L,
21
21
  ...T
22
22
  };
23
23
  export {
@@ -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';\nimport { RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS } from '../milestone/milestone-resources/resources-assign/resource-assign-analytics-events';\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
+ {"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,14 +1,14 @@
1
1
  import { jsxs as c, Fragment as C, jsx as t } from "react/jsx-runtime";
2
- import { memo as G, useRef as R, useState as X, useEffect as N, Fragment as W } from "react";
2
+ import { memo as N, useRef as $, useState as X, useEffect as G, Fragment as W } from "react";
3
3
  import j from "../../../../assets/line-icons/icons/sheet.js";
4
- import $ from "../../../ui/layout/flex-view.js";
5
- import w from "../../../ui/separator/separator.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";
6
7
  import g from "../../../ui/text/text.js";
7
8
  import V from "./comps/filter-item/filter-item.js";
8
- import P from "./comps/resource-item/resource-item.js";
9
- import { HeaderWrapper as H, FilterTabWrapper as K, ResourceCountWrapper as M, FilterListWrapper as Y } from "./resources-assign-styled.js";
10
- import { useUIContext as J } from "../../../ui/context/context.js";
9
+ import Y from "./comps/resource-item/resource-item.js";
11
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
12
  const q = [
13
13
  {
14
14
  id: "resource-filters",
@@ -25,18 +25,18 @@ const q = [
25
25
  LEVEL2: "Advanced",
26
26
  LEVEL3: "Advanced",
27
27
  SUBJECTIVE: "Subjective"
28
- }, ae = G((I) => {
28
+ }, ae = N((I) => {
29
29
  var b, L, D;
30
30
  const {
31
31
  boards: i,
32
32
  grades: l,
33
33
  nodeTypes: s,
34
34
  selectedResources: f,
35
- onResourceDeSelection: v,
35
+ onResourceDeSelection: O,
36
36
  onFilterUpdate: a,
37
- onViewResource: O
38
- } = I, d = R(i), E = R(l), u = R(s), { onEvent: p } = J(), [S, x] = X("resource-filters"), m = f.length, A = (b = d.current.find((e) => e.applied)) == null ? void 0 : b.name, _ = (L = E.current.find((e) => e.applied)) == null ? void 0 : L.name, T = (D = u.current.find((e) => e.applied)) == null ? void 0 : D.name, k = (e) => {
39
- const r = A === e;
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
40
  p(
41
41
  r ? n.RESOURCE_BOARD_DESELECTED : n.RESOURCE_BOARD_SELECTED,
42
42
  {
@@ -44,7 +44,7 @@ const q = [
44
44
  }
45
45
  ), a({ board: r ? "" : e });
46
46
  }, y = (e) => {
47
- const r = _ === e;
47
+ const r = T === e;
48
48
  p(
49
49
  r ? n.RESOURCE_GRADE_DESELECTED : n.RESOURCE_GRADE_SELECTED,
50
50
  {
@@ -52,15 +52,15 @@ const q = [
52
52
  }
53
53
  ), a({ grade: r ? "" : e });
54
54
  }, F = (e) => {
55
- const r = T === e;
55
+ const r = A === e;
56
56
  p(
57
- r ? n.RESOURCE_GRADE_DESELECTED : n.RESOURCE_GRADE_SELECTED,
57
+ r ? n.RESOURCE_NODE_TYPE_DESELECTED : n.RESOURCE_NODE_TYPE_SELECTED,
58
58
  {
59
59
  node_type: e
60
60
  }
61
61
  ), a({ node_type: r ? "" : e });
62
62
  };
63
- N(() => {
63
+ G(() => {
64
64
  d.current = i, E.current = l, u.current = s;
65
65
  }, [i, l, s]);
66
66
  const U = [
@@ -71,7 +71,7 @@ const q = [
71
71
  label: r,
72
72
  value: r
73
73
  })),
74
- value: A,
74
+ value: _,
75
75
  onClick: k
76
76
  },
77
77
  {
@@ -81,7 +81,7 @@ const q = [
81
81
  label: e,
82
82
  value: r
83
83
  })),
84
- value: _,
84
+ value: T,
85
85
  onClick: y
86
86
  },
87
87
  {
@@ -91,7 +91,7 @@ const q = [
91
91
  label: z[r] || "",
92
92
  value: r || ""
93
93
  })),
94
- value: T,
94
+ value: A,
95
95
  onClick: F
96
96
  }
97
97
  ];
@@ -147,7 +147,7 @@ const q = [
147
147
  })
148
148
  }
149
149
  ),
150
- /* @__PURE__ */ t(Y, { $height: "calc(100vh - 64px - 16px)", children: S === "resource-filters" ? /* @__PURE__ */ t(C, { children: U.map((e) => {
150
+ /* @__PURE__ */ t(J, { $height: "calc(100vh - 64px - 16px)", children: S === "resource-filters" ? /* @__PURE__ */ t(C, { children: U.map((e) => {
151
151
  const { title: r, value: h, options: o, onClick: B } = e;
152
152
  return /* @__PURE__ */ c(W, { children: [
153
153
  /* @__PURE__ */ t(
@@ -159,20 +159,20 @@ const q = [
159
159
  onClick: B
160
160
  }
161
161
  ),
162
- /* @__PURE__ */ t(w, { height: 1, background: "WHITE_5" })
162
+ /* @__PURE__ */ t(P, { height: 1, background: "WHITE_5" })
163
163
  ] }, r);
164
164
  }) }) : /* @__PURE__ */ c(C, { children: [
165
- f.map((e) => /* @__PURE__ */ t($, { $gapX: 1, $gutterX: 1, children: /* @__PURE__ */ t(
166
- P,
165
+ f.map((e) => /* @__PURE__ */ t(R, { $gapX: 1, $gutterX: 1, children: /* @__PURE__ */ t(
166
+ Y,
167
167
  {
168
168
  resource: e,
169
- onViewResource: O,
170
- onResourceAdditionOrDeletion: v,
169
+ onViewResource: v,
170
+ onResourceAdditionOrDeletion: O,
171
171
  selected: !0
172
172
  }
173
173
  ) }, e.id)),
174
174
  m === 0 && /* @__PURE__ */ c(
175
- $,
175
+ R,
176
176
  {
177
177
  $alignItems: "center",
178
178
  $justifyContent: "center",
@@ -181,7 +181,7 @@ const q = [
181
181
  $flexGap: 8,
182
182
  children: [
183
183
  /* @__PURE__ */ t(j, { opacity: 0.38 }),
184
- /* @__PURE__ */ t($, { $widthX: 15, children: /* @__PURE__ */ t(g, { $renderAs: "ub1-bold", $color: "BLACK_T_38", $align: "center", children: "No sheets added" }) })
184
+ /* @__PURE__ */ t(R, { $widthX: 15, children: /* @__PURE__ */ t(g, { $renderAs: "ub1-bold", $color: "BLACK_T_38", $align: "center", children: "No sheets added" }) })
185
185
  ]
186
186
  }
187
187
  )
@@ -1 +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 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 * as Styled from './resources-assign-styled';\nimport { useUIContext } from '../../../ui/context/context';\nimport { RESOURCE_ASSIGN_ANALYTICS_EVENTS } from './resource-assign-analytics-events';\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_GRADE_DESELECTED\n : RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_GRADE_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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"}
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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"}
@@ -5,9 +5,9 @@ import g from "../../../../../../assets/line-icons/icons/plus.js";
5
5
  import h from "../../../../../ui/buttons/icon-button/icon-button.js";
6
6
  import s from "../../../../../ui/layout/flex-view.js";
7
7
  import x from "../../../../../ui/separator/separator.js";
8
+ import { RESOURCE_ASSIGN_ANALYTICS_EVENTS as l } from "../../resource-assign-analytics-events.js";
8
9
  import { ResourceItemTitle as S, ResourceItemTags as A } from "./resource-item-styled.js";
9
10
  import { getGradeTags as b, getBoardTags as y } from "./utils.js";
10
- import { RESOURCE_ASSIGN_ANALYTICS_EVENTS as l } from "../../resource-assign-analytics-events.js";
11
11
  const U = R((d) => {
12
12
  const { resource: r, selected: e, onResourceAdditionOrDeletion: c, onViewResource: i } = d, { name: m, stream: p, grades: E, boards: f, node_type: u, node_id: t } = r, I = b(E), C = y(f), T = a(() => {
13
13
  c(e ? "deselect" : "select", t);
@@ -1 +1 @@
1
- {"version":3,"file":"resource-item.js","sources":["../../../../../../../src/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.tsx"],"sourcesContent":["import type { IResourceItem } from './resource-item-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback } from 'react';\n\nimport CrossIcon from '../../../../../../assets/line-icons/icons/cross';\nimport PlusIcon from '../../../../../../assets/line-icons/icons/plus';\nimport IconButton from '../../../../../ui/buttons/icon-button/icon-button';\nimport FlexView from '../../../../../ui/layout/flex-view';\nimport Separator from '../../../../../ui/separator/separator';\nimport * as Styled from './resource-item-styled';\nimport { getBoardTags, getGradeTags } from './utils';\nimport { RESOURCE_ASSIGN_ANALYTICS_EVENTS } from '../../resource-assign-analytics-events';\n\nconst ResourceItem: FC<IResourceItem> = memo(props => {\n const { resource, selected, onResourceAdditionOrDeletion, onViewResource } = props;\n const { name, stream, grades, boards, node_type: nodeType, node_id: nodeId } = resource;\n const grade = getGradeTags(grades);\n const test = getBoardTags(boards);\n\n const handleOnClick = useCallback(() => {\n onResourceAdditionOrDeletion(selected ? 'deselect' : 'select', nodeId);\n }, [onResourceAdditionOrDeletion, nodeId, selected]);\n\n const handleOnResourceView = useCallback(() => {\n onViewResource(resource);\n }, [onViewResource, resource]);\n\n return (\n <FlexView $flexGapX={1.5}>\n <FlexView\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n $flexGapX={2}\n >\n <FlexView $flexWrap $flexGap={4} $widthX={25.5}>\n <Styled.ResourceItemTitle $renderAs=\"ab2\" onClick={handleOnResourceView}>\n {name}\n </Styled.ResourceItemTitle>\n\n <Styled.ResourceItemTags $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n {stream} {grade} {test} • {nodeType}\n </Styled.ResourceItemTags>\n </FlexView>\n\n <IconButton\n Icon={selected ? CrossIcon : PlusIcon}\n renderAs={selected ? 'tertiary' : 'secondary'}\n analyticsLabel={\n selected\n ? RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_ITEM_DESELECTED\n : RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_ITEM_SELECTED\n }\n analyticsProps={{\n node_id: nodeId,\n }}\n size=\"xsmall\"\n onClick={handleOnClick}\n />\n </FlexView>\n\n <Separator height={1} background=\"WHITE_5\" />\n </FlexView>\n );\n});\n\nexport default ResourceItem;\n"],"names":["ResourceItem","memo","props","resource","selected","onResourceAdditionOrDeletion","onViewResource","name","stream","grades","boards","nodeType","nodeId","grade","getGradeTags","test","getBoardTags","handleOnClick","useCallback","handleOnResourceView","jsxs","FlexView","jsx","Styled.ResourceItemTitle","Styled.ResourceItemTags","IconButton","CrossIcon","PlusIcon","RESOURCE_ASSIGN_ANALYTICS_EVENTS","Separator"],"mappings":";;;;;;;;;;AAcM,MAAAA,IAAkCC,EAAK,CAASC,MAAA;AACpD,QAAM,EAAE,UAAAC,GAAU,UAAAC,GAAU,8BAAAC,GAA8B,gBAAAC,MAAmBJ,GACvE,EAAE,MAAAK,GAAM,QAAAC,GAAQ,QAAAC,GAAQ,QAAAC,GAAQ,WAAWC,GAAU,SAASC,EAAW,IAAAT,GACzEU,IAAQC,EAAaL,CAAM,GAC3BM,IAAOC,EAAaN,CAAM,GAE1BO,IAAgBC,EAAY,MAAM;AACT,IAAAb,EAAAD,IAAW,aAAa,UAAUQ,CAAM;AAAA,EACpE,GAAA,CAACP,GAA8BO,GAAQR,CAAQ,CAAC,GAE7Ce,IAAuBD,EAAY,MAAM;AAC7C,IAAAZ,EAAeH,CAAQ;AAAA,EAAA,GACtB,CAACG,GAAgBH,CAAQ,CAAC;AAG3B,SAAA,gBAAAiB,EAACC,GAAS,EAAA,WAAW,KACnB,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,iBAAgB;AAAA,QAChB,WAAW;AAAA,QAEX,UAAA;AAAA,UAAA,gBAAAD,EAACC,KAAS,WAAS,IAAC,UAAU,GAAG,SAAS,MACxC,UAAA;AAAA,YAAA,gBAAAC,EAACC,GAAA,EAAyB,WAAU,OAAM,SAASJ,GAChD,UACHZ,GAAA;AAAA,8BAECiB,GAAA,EAAwB,WAAU,OAAM,QAAO,cAC7C,UAAA;AAAA,cAAAhB;AAAA,cAAO;AAAA,cAAEK;AAAA,cAAM;AAAA,cAAEE;AAAA,cAAK;AAAA,cAAIJ;AAAA,YAAA,GAC7B;AAAA,UAAA,GACF;AAAA,UAEA,gBAAAW;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,MAAMrB,IAAWsB,IAAYC;AAAA,cAC7B,UAAUvB,IAAW,aAAa;AAAA,cAClC,gBACEA,IACIwB,EAAiC,2BACjCA,EAAiC;AAAA,cAEvC,gBAAgB;AAAA,gBACd,SAAShB;AAAA,cACX;AAAA,cACA,MAAK;AAAA,cACL,SAASK;AAAA,YAAA;AAAA,UACX;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,IAEC,gBAAAK,EAAAO,GAAA,EAAU,QAAQ,GAAG,YAAW,WAAU;AAAA,EAC7C,EAAA,CAAA;AAEJ,CAAC;"}
1
+ {"version":3,"file":"resource-item.js","sources":["../../../../../../../src/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.tsx"],"sourcesContent":["import type { IResourceItem } from './resource-item-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback } from 'react';\n\nimport CrossIcon from '../../../../../../assets/line-icons/icons/cross';\nimport PlusIcon from '../../../../../../assets/line-icons/icons/plus';\nimport IconButton from '../../../../../ui/buttons/icon-button/icon-button';\nimport FlexView from '../../../../../ui/layout/flex-view';\nimport Separator from '../../../../../ui/separator/separator';\nimport { RESOURCE_ASSIGN_ANALYTICS_EVENTS } from '../../resource-assign-analytics-events';\nimport * as Styled from './resource-item-styled';\nimport { getBoardTags, getGradeTags } from './utils';\n\nconst ResourceItem: FC<IResourceItem> = memo(props => {\n const { resource, selected, onResourceAdditionOrDeletion, onViewResource } = props;\n const { name, stream, grades, boards, node_type: nodeType, node_id: nodeId } = resource;\n const grade = getGradeTags(grades);\n const test = getBoardTags(boards);\n\n const handleOnClick = useCallback(() => {\n onResourceAdditionOrDeletion(selected ? 'deselect' : 'select', nodeId);\n }, [onResourceAdditionOrDeletion, nodeId, selected]);\n\n const handleOnResourceView = useCallback(() => {\n onViewResource(resource);\n }, [onViewResource, resource]);\n\n return (\n <FlexView $flexGapX={1.5}>\n <FlexView\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n $flexGapX={2}\n >\n <FlexView $flexWrap $flexGap={4} $widthX={25.5}>\n <Styled.ResourceItemTitle $renderAs=\"ab2\" onClick={handleOnResourceView}>\n {name}\n </Styled.ResourceItemTitle>\n\n <Styled.ResourceItemTags $renderAs=\"ub3\" $color=\"BLACK_T_60\">\n {stream} {grade} {test} • {nodeType}\n </Styled.ResourceItemTags>\n </FlexView>\n\n <IconButton\n Icon={selected ? CrossIcon : PlusIcon}\n renderAs={selected ? 'tertiary' : 'secondary'}\n analyticsLabel={\n selected\n ? RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_ITEM_DESELECTED\n : RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_ITEM_SELECTED\n }\n analyticsProps={{\n node_id: nodeId,\n }}\n size=\"xsmall\"\n onClick={handleOnClick}\n />\n </FlexView>\n\n <Separator height={1} background=\"WHITE_5\" />\n </FlexView>\n );\n});\n\nexport default ResourceItem;\n"],"names":["ResourceItem","memo","props","resource","selected","onResourceAdditionOrDeletion","onViewResource","name","stream","grades","boards","nodeType","nodeId","grade","getGradeTags","test","getBoardTags","handleOnClick","useCallback","handleOnResourceView","jsxs","FlexView","jsx","Styled.ResourceItemTitle","Styled.ResourceItemTags","IconButton","CrossIcon","PlusIcon","RESOURCE_ASSIGN_ANALYTICS_EVENTS","Separator"],"mappings":";;;;;;;;;;AAcM,MAAAA,IAAkCC,EAAK,CAASC,MAAA;AACpD,QAAM,EAAE,UAAAC,GAAU,UAAAC,GAAU,8BAAAC,GAA8B,gBAAAC,MAAmBJ,GACvE,EAAE,MAAAK,GAAM,QAAAC,GAAQ,QAAAC,GAAQ,QAAAC,GAAQ,WAAWC,GAAU,SAASC,EAAW,IAAAT,GACzEU,IAAQC,EAAaL,CAAM,GAC3BM,IAAOC,EAAaN,CAAM,GAE1BO,IAAgBC,EAAY,MAAM;AACT,IAAAb,EAAAD,IAAW,aAAa,UAAUQ,CAAM;AAAA,EACpE,GAAA,CAACP,GAA8BO,GAAQR,CAAQ,CAAC,GAE7Ce,IAAuBD,EAAY,MAAM;AAC7C,IAAAZ,EAAeH,CAAQ;AAAA,EAAA,GACtB,CAACG,GAAgBH,CAAQ,CAAC;AAG3B,SAAA,gBAAAiB,EAACC,GAAS,EAAA,WAAW,KACnB,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,iBAAgB;AAAA,QAChB,WAAW;AAAA,QAEX,UAAA;AAAA,UAAA,gBAAAD,EAACC,KAAS,WAAS,IAAC,UAAU,GAAG,SAAS,MACxC,UAAA;AAAA,YAAA,gBAAAC,EAACC,GAAA,EAAyB,WAAU,OAAM,SAASJ,GAChD,UACHZ,GAAA;AAAA,8BAECiB,GAAA,EAAwB,WAAU,OAAM,QAAO,cAC7C,UAAA;AAAA,cAAAhB;AAAA,cAAO;AAAA,cAAEK;AAAA,cAAM;AAAA,cAAEE;AAAA,cAAK;AAAA,cAAIJ;AAAA,YAAA,GAC7B;AAAA,UAAA,GACF;AAAA,UAEA,gBAAAW;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,MAAMrB,IAAWsB,IAAYC;AAAA,cAC7B,UAAUvB,IAAW,aAAa;AAAA,cAClC,gBACEA,IACIwB,EAAiC,2BACjCA,EAAiC;AAAA,cAEvC,gBAAgB;AAAA,gBACd,SAAShB;AAAA,cACX;AAAA,cACA,MAAK;AAAA,cACL,SAASK;AAAA,YAAA;AAAA,UACX;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,IAEC,gBAAAK,EAAAO,GAAA,EAAU,QAAQ,GAAG,YAAW,WAAU;AAAA,EAC7C,EAAA,CAAA;AAEJ,CAAC;"}
@@ -1,113 +1,113 @@
1
- import { jsx as r, jsxs as R } from "react/jsx-runtime";
2
- import { memo as Z, useState as l, useCallback as d, useEffect as w } from "react";
1
+ import { jsx as r, jsxs as A } from "react/jsx-runtime";
2
+ import { memo as Z, useState as a, useCallback as l, useEffect as w } from "react";
3
3
  import { ILLUSTRATIONS as ee } from "../../../../assets/illustrations/illustrations.js";
4
4
  import re from "../../../../assets/line-icons/icons/back2.js";
5
5
  import se from "../../../ui/buttons/button/button.js";
6
- import { useUIContext as oe } from "../../../ui/context/context.js";
7
- import te from "../../../ui/inputs/searchable-input/searchable-input.js";
8
- import g from "../../../ui/layout/flex-view.js";
6
+ import { useUIContext as te } from "../../../ui/context/context.js";
7
+ import oe from "../../../ui/inputs/searchable-input/searchable-input.js";
8
+ import h from "../../../ui/layout/flex-view.js";
9
9
  import ne from "../../../ui/loader/app-loader/app-loader.js";
10
10
  import ie from "../../../ui/text/text.js";
11
11
  import ce from "./added-resource-and-filters.js";
12
12
  import { useGetSearchResource as ae } from "./api/get-resource.js";
13
13
  import { usePostMilestoneResource as le } from "./api/goal-resource-assign.js";
14
14
  import { usePostLPARResource as de } from "./api/lpar-resource-assign.js";
15
- import me from "./resource-items/resource-items.js";
16
- import { LoaderWrapper as ue, SearchContainer as pe, HeaderWrapper as ge } from "./resources-assign-styled.js";
15
+ import { RESOURCE_ASSIGN_ANALYTICS_EVENTS as me } from "./resource-assign-analytics-events.js";
16
+ import ue from "./resource-items/resource-items.js";
17
+ import { LoaderWrapper as pe, SearchContainer as ge, HeaderWrapper as he } from "./resources-assign-styled.js";
17
18
  import { checkIfFiltersAreAdded as U } from "./utils.js";
18
- import { RESOURCE_ASSIGN_ANALYTICS_EVENTS as he } from "./resource-assign-analytics-events.js";
19
19
  const fe = Z((k) => {
20
20
  const {
21
- studentId: A,
22
- stream: D,
23
- onResourceAssign: _,
21
+ studentId: _,
22
+ stream: N,
23
+ onResourceAssign: I,
24
24
  onError: S,
25
- onExitResourceAssign: N,
26
- onViewResource: I,
27
- userMilestoneId: m,
28
- programId: u
29
- } = k, { onEvent: E } = oe(), [P, v] = l(1), [n, F] = l(""), [o, C] = l({
30
- stream: D,
31
- page: P,
25
+ onExitResourceAssign: v,
26
+ onViewResource: E,
27
+ userMilestoneId: d,
28
+ programId: m
29
+ } = k, { onEvent: C } = te(), [u, F] = a(1), [p, V] = a(""), [o, P] = a({
30
+ stream: N,
31
+ page: u,
32
32
  per_page: 50,
33
- user_milestone_id: m,
34
- program_id: u
35
- }), [p, y] = l([]), [i, $] = l([]), x = d(
33
+ user_milestone_id: d,
34
+ program_id: m
35
+ }), [g, y] = a([]), [i, $] = a([]), x = l(
36
36
  (e) => {
37
- e ? S(e) : _();
37
+ e ? S(e) : I();
38
38
  },
39
- [S, _]
39
+ [S, I]
40
40
  ), {
41
- get: h,
42
- data: c,
43
- isProcessing: T,
44
- isProcessingFailed: V
45
- } = ae(), { post: O, isProcessing: j } = le({
41
+ get: f,
42
+ data: s,
43
+ isProcessing: O,
44
+ isProcessingFailed: j
45
+ } = ae(), { post: T, isProcessing: G } = le({
46
46
  onComplete: x
47
- }), { post: L, isProcessing: G } = de({
47
+ }), { post: L, isProcessing: D } = de({
48
48
  onComplete: x
49
49
  }), H = (e) => {
50
- C((t) => ({ ...t, ...e }));
51
- }, b = d(
52
- (e, t) => {
50
+ P((n) => ({ ...n, ...e }));
51
+ }, b = l(
52
+ (e, n) => {
53
53
  if (e === "select") {
54
- const s = p.find((a) => a.node_id === t);
55
- s && $((a) => [...a, s]);
54
+ const t = g.find((c) => c.node_id === n);
55
+ t && $((c) => [...c, t]);
56
56
  } else
57
57
  $(
58
- (s) => s.filter((a) => a.node_id !== t)
58
+ (t) => t.filter((c) => c.node_id !== n)
59
59
  );
60
60
  },
61
- [p]
61
+ [g]
62
62
  ), Q = (e) => {
63
- h("ep-dummy-id", {
63
+ f("ep-dummy-id", {
64
64
  ...o,
65
65
  page: e
66
- }), v(e);
67
- }, W = (e) => {
68
- F(e);
69
- }, X = d(() => {
70
- n && E(he.RESOURCE_SEARCH_INPUT_VALUE, {
71
- search_term: n
72
- }), C((e) => ({
66
+ }), F(e);
67
+ }, W = l(() => {
68
+ C(me.RESOURCE_SEARCH_INPUT_VALUE, {
69
+ search_term: p
70
+ }), P((e) => ({
73
71
  ...e,
74
- search_term: n || ""
72
+ search_term: p || ""
75
73
  }));
76
- }, [n, E]), f = d(() => {
77
- (U(o) || o.stream) && (h("ep-dummy-id", o), y([]));
78
- }, [o, h]), z = d(() => {
79
- m ? O(
74
+ }, [p, C]), X = (e) => {
75
+ V(e);
76
+ }, R = l(() => {
77
+ (U(o) || o.stream) && (f("ep-dummy-id", o), y([]));
78
+ }, [o, f]), z = l(() => {
79
+ d ? T(
80
80
  {
81
81
  node_ids: i.map((e) => e.node_id)
82
82
  },
83
- { userMilestoneId: m }
84
- ) : u && L(
83
+ { userMilestoneId: d }
84
+ ) : m && L(
85
85
  {
86
86
  nodes: i.map(({ node_id: e }) => ({
87
87
  id: e,
88
88
  attempt_location: "ANY"
89
89
  })),
90
- program_id: u
90
+ program_id: m
91
91
  },
92
- { studentId: A }
92
+ { studentId: _ }
93
93
  );
94
94
  }, [
95
- O,
96
- m,
95
+ T,
96
+ d,
97
97
  i,
98
98
  L,
99
- u,
100
- A
99
+ m,
100
+ _
101
101
  ]);
102
102
  if (w(() => {
103
- f();
104
- }, [f]), w(() => {
105
- c && y((e) => {
106
- const t = [...e, ...c.results];
107
- return Array.from(new Map(t.map((s) => [s.id, s])).values());
103
+ R();
104
+ }, [R]), w(() => {
105
+ s != null && s.results.length && y((e) => {
106
+ const n = u !== 1 ? [...e, ...s.results] : s.results;
107
+ return Array.from(new Map(n.map((t) => [t.id, t])).values());
108
108
  });
109
- }, [c]), V)
110
- return /* @__PURE__ */ r(g, { $height: "100%", $alignItems: "center", $justifyContent: "center", children: /* @__PURE__ */ R(g, { $flexGapX: 1.5, $alignItems: "center", $justifyContent: "center", children: [
109
+ }, [s == null ? void 0 : s.results, u]), j)
110
+ return /* @__PURE__ */ r(h, { $height: "100%", $alignItems: "center", $justifyContent: "center", children: /* @__PURE__ */ A(h, { $flexGapX: 1.5, $alignItems: "center", $justifyContent: "center", children: [
111
111
  /* @__PURE__ */ r(ie, { $renderAs: "h6", children: "Oops! Something went wrong. Please try again later." }),
112
112
  /* @__PURE__ */ r(
113
113
  se,
@@ -118,56 +118,57 @@ const fe = Z((k) => {
118
118
  renderAs: "primary",
119
119
  label: "Try again",
120
120
  analyticsLabel: "resource_get_api_failed",
121
- onClick: f
121
+ onClick: R
122
122
  }
123
123
  )
124
124
  ] }) });
125
- if (T && !c && p.length === 0)
125
+ if (O && !s && g.length === 0)
126
126
  return /* @__PURE__ */ r(ne, { height: "100vh" });
127
- const { filters: B, total_pages: M = 0 } = c || {}, { boards: Y = [], grades: q = [], node_types: J = [] } = B || {}, K = U(o);
128
- return /* @__PURE__ */ R(g, { $flexDirection: "row", $height: "100vh", children: [
129
- T && /* @__PURE__ */ r(ue, { children: /* @__PURE__ */ r("img", { src: ee.LOADER_1, alt: "resource_loading" }) }),
130
- /* @__PURE__ */ R(pe, { $width: "60%", children: [
127
+ const { filters: B, total_pages: M = 0 } = s || {}, { boards: Y = [], grades: q = [], node_types: J = [] } = B || {}, K = U(o);
128
+ return /* @__PURE__ */ A(h, { $flexDirection: "row", $height: "100vh", children: [
129
+ O && /* @__PURE__ */ r(pe, { children: /* @__PURE__ */ r("img", { src: ee.LOADER_1, alt: "resource_loading" }) }),
130
+ /* @__PURE__ */ A(ge, { $width: "60%", children: [
131
131
  /* @__PURE__ */ r(
132
- ge,
132
+ he,
133
133
  {
134
134
  $heightX: 4,
135
135
  $background: "WHITE_3",
136
136
  $alignItems: "center",
137
137
  $justifyContent: "center",
138
138
  children: /* @__PURE__ */ r(
139
- te,
139
+ oe,
140
140
  {
141
- value: n,
142
- onSearchTextChange: W,
141
+ value: p,
142
+ onSearchTextChange: X,
143
143
  renderAs: "primary",
144
144
  width: "99%",
145
145
  size: "regular",
146
146
  label: "Type topic name...",
147
- onEnter: X,
148
- onPrefixElementClick: N,
147
+ onEnter: W,
148
+ searchOnClear: !0,
149
+ onPrefixElementClick: v,
149
150
  prefixElement: /* @__PURE__ */ r(re, {})
150
151
  }
151
152
  )
152
153
  }
153
154
  ),
154
155
  /* @__PURE__ */ r(
155
- me,
156
+ ue,
156
157
  {
157
- resourceItems: p,
158
+ resourceItems: g,
158
159
  selectedResource: i,
159
- pageNumber: P,
160
+ pageNumber: u,
160
161
  totalPages: M,
161
- assigningInProgress: j || G,
162
+ assigningInProgress: G || D,
162
163
  isFilterAdded: K,
163
164
  onResourceAdditionOrDeletion: b,
164
165
  onResourceAssign: z,
165
- onViewResource: I,
166
+ onViewResource: E,
166
167
  onPageNumberUpdate: Q
167
168
  }
168
169
  )
169
170
  ] }),
170
- /* @__PURE__ */ r(g, { $width: "40%", children: /* @__PURE__ */ r(
171
+ /* @__PURE__ */ r(h, { $width: "40%", children: /* @__PURE__ */ r(
171
172
  ce,
172
173
  {
173
174
  boards: Y,
@@ -176,12 +177,12 @@ const fe = Z((k) => {
176
177
  selectedResources: i,
177
178
  onResourceDeSelection: b,
178
179
  onFilterUpdate: H,
179
- onViewResource: I
180
+ onViewResource: E
180
181
  }
181
182
  ) })
182
183
  ] });
183
- }), De = fe;
184
+ }), Ne = fe;
184
185
  export {
185
- De as default
186
+ Ne as default
186
187
  };
187
188
  //# sourceMappingURL=resources-assign.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resources-assign.js","sources":["../../../../../src/features/milestone/milestone-resources/resources-assign/resources-assign.tsx"],"sourcesContent":["import type { IExtraPracticeQuery } from './api/get-resource';\nimport type { IResourceItemStep } from './comps/resource-item/resource-item-types';\nimport type { IEPResourceAssign, IResourceData } from './resources-assign-type';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useState } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport Back2Icon from '../../../../assets/line-icons/icons/back2';\nimport Button from '../../../ui/buttons/button/button';\nimport { useUIContext } from '../../../ui/context/context';\nimport SearchableInput from '../../../ui/inputs/searchable-input/searchable-input';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Text from '../../../ui/text/text';\nimport AddedResourceAndFilters from './added-resource-and-filters';\nimport { useGetSearchResource } from './api/get-resource';\nimport { usePostMilestoneResource } from './api/goal-resource-assign';\nimport { usePostLPARResource } from './api/lpar-resource-assign';\nimport ResourceItems from './resource-items/resource-items';\nimport * as Styled from './resources-assign-styled';\nimport { checkIfFiltersAreAdded } from './utils';\nimport { RESOURCE_ASSIGN_ANALYTICS_EVENTS } from './resource-assign-analytics-events';\n\nconst EPResourceAssign: FC<IEPResourceAssign> = memo(props => {\n const {\n studentId,\n stream,\n onResourceAssign,\n onError,\n onExitResourceAssign,\n onViewResource,\n userMilestoneId,\n programId,\n } = props;\n\n const { onEvent: trackEvent } = useUIContext();\n\n const [pageNumber, setPageNumber] = useState(1);\n const [searchValue, setSearchValue] = useState('');\n const [searchQuery, setSearchQuery] = useState<IExtraPracticeQuery>({\n stream: stream,\n page: pageNumber,\n per_page: 50,\n user_milestone_id: userMilestoneId,\n program_id: programId,\n });\n const [resourceItems, setResourceItems] = useState<IResourceData['results']>([]);\n const [selectedResourceItems, setSelectedResource] = useState<IResourceData['results']>([]);\n\n const handleOnResourceAssignComplete = useCallback(\n (errorMessage: string | null) => {\n if (errorMessage) {\n onError(errorMessage);\n } else {\n onResourceAssign();\n }\n },\n [onError, onResourceAssign],\n );\n\n const {\n get: getSearchResource,\n data: resourceSearchData,\n isProcessing,\n isProcessingFailed,\n } = useGetSearchResource();\n\n const { post: postAssignGoalResource, isProcessing: goalResourceAssignInProgress } =\n usePostMilestoneResource({\n onComplete: handleOnResourceAssignComplete,\n });\n const { post: postAssignLPARResource, isProcessing: lparResourceAssignInProgress } =\n usePostLPARResource({\n onComplete: handleOnResourceAssignComplete,\n });\n\n const handleOnSearchQueryChange = (updatedQuery: Omit<IExtraPracticeQuery, 'stream'>) => {\n setSearchQuery(prev => ({ ...prev, ...updatedQuery }));\n };\n\n const handleOnResourceAdditionOrDeletion = useCallback(\n (step: IResourceItemStep, resourceNodeId: string) => {\n if (step === 'select') {\n const resourceItem = resourceItems.find(resource => resource.node_id === resourceNodeId);\n\n if (resourceItem) {\n setSelectedResource(prev => {\n return [...prev, resourceItem];\n });\n }\n } else {\n setSelectedResource(prev =>\n prev.filter(prevResource => prevResource.node_id !== resourceNodeId),\n );\n }\n },\n [resourceItems],\n );\n\n const handleScrollPagination = (newPageNumber: number) => {\n getSearchResource('ep-dummy-id', {\n ...searchQuery,\n page: newPageNumber,\n });\n setPageNumber(newPageNumber);\n };\n\n const handleSearchTextChange = (value: string) => {\n setSearchValue(value);\n };\n\n const handleSearch = useCallback(() => {\n if (searchValue) {\n trackEvent(RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_SEARCH_INPUT_VALUE, {\n search_term: searchValue,\n });\n }\n\n setSearchQuery(prev => ({\n ...prev,\n search_term: searchValue || '',\n }));\n }, [searchValue, trackEvent]);\n\n const fetchResource = useCallback(() => {\n if (checkIfFiltersAreAdded(searchQuery) || searchQuery.stream) {\n getSearchResource('ep-dummy-id', searchQuery);\n setResourceItems([]);\n }\n }, [searchQuery, getSearchResource]);\n\n const handleOnResourceAssign = useCallback(() => {\n if (userMilestoneId) {\n postAssignGoalResource(\n {\n node_ids: selectedResourceItems.map(resource => resource.node_id),\n },\n { userMilestoneId },\n );\n } else if (programId) {\n postAssignLPARResource(\n {\n nodes: selectedResourceItems.map(({ node_id: nodeId }) => ({\n id: nodeId,\n attempt_location: 'ANY',\n })),\n program_id: programId,\n },\n { studentId },\n );\n }\n }, [\n postAssignGoalResource,\n userMilestoneId,\n selectedResourceItems,\n postAssignLPARResource,\n programId,\n studentId,\n ]);\n\n useEffect(() => {\n fetchResource();\n }, [fetchResource]);\n\n useEffect(() => {\n if (resourceSearchData) {\n setResourceItems(prev => {\n const updatedData = [...prev, ...resourceSearchData.results];\n\n return Array.from(new Map(updatedData.map(item => [item.id, item])).values());\n });\n }\n }, [resourceSearchData]);\n\n if (isProcessingFailed) {\n return (\n <FlexView $height=\"100%\" $alignItems=\"center\" $justifyContent=\"center\">\n <FlexView $flexGapX={1.5} $alignItems=\"center\" $justifyContent=\"center\">\n <Text $renderAs=\"h6\">Oops! Something went wrong. Please try again later.</Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n analyticsLabel=\"resource_get_api_failed\"\n onClick={fetchResource}\n />\n </FlexView>\n </FlexView>\n );\n }\n\n if (isProcessing && !resourceSearchData && resourceItems.length === 0) {\n return <AppLoader height=\"100vh\" />;\n }\n\n const { filters, total_pages: totalPages = 0 } = resourceSearchData || {};\n const { boards = [], grades = [], node_types: nodeTypes = [] } = filters || {};\n const isFilterAdded = checkIfFiltersAreAdded(searchQuery);\n\n return (\n <FlexView $flexDirection=\"row\" $height=\"100vh\">\n {isProcessing && (\n <Styled.LoaderWrapper>\n <img src={ILLUSTRATIONS.LOADER_1} alt=\"resource_loading\" />\n </Styled.LoaderWrapper>\n )}\n\n <Styled.SearchContainer $width=\"60%\">\n <Styled.HeaderWrapper\n $heightX={4}\n $background=\"WHITE_3\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <SearchableInput\n value={searchValue}\n onSearchTextChange={handleSearchTextChange}\n renderAs=\"primary\"\n width=\"99%\"\n size=\"regular\"\n label=\"Type topic name...\"\n onEnter={handleSearch}\n onPrefixElementClick={onExitResourceAssign}\n prefixElement={<Back2Icon />}\n />\n </Styled.HeaderWrapper>\n\n <ResourceItems\n resourceItems={resourceItems}\n selectedResource={selectedResourceItems}\n pageNumber={pageNumber}\n totalPages={totalPages}\n assigningInProgress={goalResourceAssignInProgress || lparResourceAssignInProgress}\n isFilterAdded={isFilterAdded}\n onResourceAdditionOrDeletion={handleOnResourceAdditionOrDeletion}\n onResourceAssign={handleOnResourceAssign}\n onViewResource={onViewResource}\n onPageNumberUpdate={handleScrollPagination}\n />\n </Styled.SearchContainer>\n\n <FlexView $width=\"40%\">\n <AddedResourceAndFilters\n boards={boards}\n grades={grades}\n nodeTypes={nodeTypes}\n selectedResources={selectedResourceItems}\n onResourceDeSelection={handleOnResourceAdditionOrDeletion}\n onFilterUpdate={handleOnSearchQueryChange}\n onViewResource={onViewResource}\n />\n </FlexView>\n </FlexView>\n );\n});\n\nexport default EPResourceAssign;\n"],"names":["EPResourceAssign","memo","props","studentId","stream","onResourceAssign","onError","onExitResourceAssign","onViewResource","userMilestoneId","programId","trackEvent","useUIContext","pageNumber","setPageNumber","useState","searchValue","setSearchValue","searchQuery","setSearchQuery","resourceItems","setResourceItems","selectedResourceItems","setSelectedResource","handleOnResourceAssignComplete","useCallback","errorMessage","getSearchResource","resourceSearchData","isProcessing","isProcessingFailed","useGetSearchResource","postAssignGoalResource","goalResourceAssignInProgress","usePostMilestoneResource","postAssignLPARResource","lparResourceAssignInProgress","usePostLPARResource","handleOnSearchQueryChange","updatedQuery","prev","handleOnResourceAdditionOrDeletion","step","resourceNodeId","resourceItem","resource","prevResource","handleScrollPagination","newPageNumber","handleSearchTextChange","value","handleSearch","RESOURCE_ASSIGN_ANALYTICS_EVENTS","fetchResource","checkIfFiltersAreAdded","handleOnResourceAssign","nodeId","useEffect","updatedData","item","jsx","FlexView","jsxs","Text","Button","AppLoader","filters","totalPages","boards","grades","nodeTypes","isFilterAdded","Styled.LoaderWrapper","ILLUSTRATIONS","Styled.SearchContainer","Styled.HeaderWrapper","SearchableInput","Back2Icon","ResourceItems","AddedResourceAndFilters","EPResourceAssign$1"],"mappings":"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"}
1
+ {"version":3,"file":"resources-assign.js","sources":["../../../../../src/features/milestone/milestone-resources/resources-assign/resources-assign.tsx"],"sourcesContent":["import type { IExtraPracticeQuery } from './api/get-resource';\nimport type { IResourceItemStep } from './comps/resource-item/resource-item-types';\nimport type { IEPResourceAssign, IResourceData } from './resources-assign-type';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useState } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport Back2Icon from '../../../../assets/line-icons/icons/back2';\nimport Button from '../../../ui/buttons/button/button';\nimport { useUIContext } from '../../../ui/context/context';\nimport SearchableInput from '../../../ui/inputs/searchable-input/searchable-input';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Text from '../../../ui/text/text';\nimport AddedResourceAndFilters from './added-resource-and-filters';\nimport { useGetSearchResource } from './api/get-resource';\nimport { usePostMilestoneResource } from './api/goal-resource-assign';\nimport { usePostLPARResource } from './api/lpar-resource-assign';\nimport { RESOURCE_ASSIGN_ANALYTICS_EVENTS } from './resource-assign-analytics-events';\nimport ResourceItems from './resource-items/resource-items';\nimport * as Styled from './resources-assign-styled';\nimport { checkIfFiltersAreAdded } from './utils';\n\nconst EPResourceAssign: FC<IEPResourceAssign> = memo(props => {\n const {\n studentId,\n stream,\n onResourceAssign,\n onError,\n onExitResourceAssign,\n onViewResource,\n userMilestoneId,\n programId,\n } = props;\n\n const { onEvent: trackEvent } = useUIContext();\n\n const [pageNumber, setPageNumber] = useState(1);\n const [searchValue, setSearchValue] = useState('');\n const [searchQuery, setSearchQuery] = useState<IExtraPracticeQuery>({\n stream: stream,\n page: pageNumber,\n per_page: 50,\n user_milestone_id: userMilestoneId,\n program_id: programId,\n });\n const [resourceItems, setResourceItems] = useState<IResourceData['results']>([]);\n const [selectedResourceItems, setSelectedResource] = useState<IResourceData['results']>([]);\n\n const handleOnResourceAssignComplete = useCallback(\n (errorMessage: string | null) => {\n if (errorMessage) {\n onError(errorMessage);\n } else {\n onResourceAssign();\n }\n },\n [onError, onResourceAssign],\n );\n\n const {\n get: getSearchResource,\n data: resourceSearchData,\n isProcessing,\n isProcessingFailed,\n } = useGetSearchResource();\n\n const { post: postAssignGoalResource, isProcessing: goalResourceAssignInProgress } =\n usePostMilestoneResource({\n onComplete: handleOnResourceAssignComplete,\n });\n const { post: postAssignLPARResource, isProcessing: lparResourceAssignInProgress } =\n usePostLPARResource({\n onComplete: handleOnResourceAssignComplete,\n });\n\n const handleOnSearchQueryChange = (updatedQuery: Omit<IExtraPracticeQuery, 'stream'>) => {\n setSearchQuery(prev => ({ ...prev, ...updatedQuery }));\n };\n\n const handleOnResourceAdditionOrDeletion = useCallback(\n (step: IResourceItemStep, resourceNodeId: string) => {\n if (step === 'select') {\n const resourceItem = resourceItems.find(resource => resource.node_id === resourceNodeId);\n\n if (resourceItem) {\n setSelectedResource(prev => {\n return [...prev, resourceItem];\n });\n }\n } else {\n setSelectedResource(prev =>\n prev.filter(prevResource => prevResource.node_id !== resourceNodeId),\n );\n }\n },\n [resourceItems],\n );\n\n const handleScrollPagination = (newPageNumber: number) => {\n getSearchResource('ep-dummy-id', {\n ...searchQuery,\n page: newPageNumber,\n });\n setPageNumber(newPageNumber);\n };\n\n const handleSearch = useCallback(() => {\n trackEvent(RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_SEARCH_INPUT_VALUE, {\n search_term: searchValue,\n });\n\n setSearchQuery(prev => ({\n ...prev,\n search_term: searchValue || '',\n }));\n }, [searchValue, trackEvent]);\n\n const handleSearchTextChange = (value: string) => {\n setSearchValue(value);\n };\n\n const fetchResource = useCallback(() => {\n if (checkIfFiltersAreAdded(searchQuery) || searchQuery.stream) {\n getSearchResource('ep-dummy-id', searchQuery);\n setResourceItems([]);\n }\n }, [searchQuery, getSearchResource]);\n\n const handleOnResourceAssign = useCallback(() => {\n if (userMilestoneId) {\n postAssignGoalResource(\n {\n node_ids: selectedResourceItems.map(resource => resource.node_id),\n },\n { userMilestoneId },\n );\n } else if (programId) {\n postAssignLPARResource(\n {\n nodes: selectedResourceItems.map(({ node_id: nodeId }) => ({\n id: nodeId,\n attempt_location: 'ANY',\n })),\n program_id: programId,\n },\n { studentId },\n );\n }\n }, [\n postAssignGoalResource,\n userMilestoneId,\n selectedResourceItems,\n postAssignLPARResource,\n programId,\n studentId,\n ]);\n\n useEffect(() => {\n fetchResource();\n }, [fetchResource]);\n\n useEffect(() => {\n if (resourceSearchData?.results.length) {\n setResourceItems(prev => {\n const updatedData =\n pageNumber !== 1 ? [...prev, ...resourceSearchData.results] : resourceSearchData.results;\n\n return Array.from(new Map(updatedData.map(item => [item.id, item])).values());\n });\n }\n }, [resourceSearchData?.results, pageNumber]);\n\n if (isProcessingFailed) {\n return (\n <FlexView $height=\"100%\" $alignItems=\"center\" $justifyContent=\"center\">\n <FlexView $flexGapX={1.5} $alignItems=\"center\" $justifyContent=\"center\">\n <Text $renderAs=\"h6\">Oops! Something went wrong. Please try again later.</Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n analyticsLabel=\"resource_get_api_failed\"\n onClick={fetchResource}\n />\n </FlexView>\n </FlexView>\n );\n }\n\n if (isProcessing && !resourceSearchData && resourceItems.length === 0) {\n return <AppLoader height=\"100vh\" />;\n }\n\n const { filters, total_pages: totalPages = 0 } = resourceSearchData || {};\n const { boards = [], grades = [], node_types: nodeTypes = [] } = filters || {};\n const isFilterAdded = checkIfFiltersAreAdded(searchQuery);\n\n return (\n <FlexView $flexDirection=\"row\" $height=\"100vh\">\n {isProcessing && (\n <Styled.LoaderWrapper>\n <img src={ILLUSTRATIONS.LOADER_1} alt=\"resource_loading\" />\n </Styled.LoaderWrapper>\n )}\n\n <Styled.SearchContainer $width=\"60%\">\n <Styled.HeaderWrapper\n $heightX={4}\n $background=\"WHITE_3\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n <SearchableInput\n value={searchValue}\n onSearchTextChange={handleSearchTextChange}\n renderAs=\"primary\"\n width=\"99%\"\n size=\"regular\"\n label=\"Type topic name...\"\n onEnter={handleSearch}\n searchOnClear\n onPrefixElementClick={onExitResourceAssign}\n prefixElement={<Back2Icon />}\n />\n </Styled.HeaderWrapper>\n\n <ResourceItems\n resourceItems={resourceItems}\n selectedResource={selectedResourceItems}\n pageNumber={pageNumber}\n totalPages={totalPages}\n assigningInProgress={goalResourceAssignInProgress || lparResourceAssignInProgress}\n isFilterAdded={isFilterAdded}\n onResourceAdditionOrDeletion={handleOnResourceAdditionOrDeletion}\n onResourceAssign={handleOnResourceAssign}\n onViewResource={onViewResource}\n onPageNumberUpdate={handleScrollPagination}\n />\n </Styled.SearchContainer>\n\n <FlexView $width=\"40%\">\n <AddedResourceAndFilters\n boards={boards}\n grades={grades}\n nodeTypes={nodeTypes}\n selectedResources={selectedResourceItems}\n onResourceDeSelection={handleOnResourceAdditionOrDeletion}\n onFilterUpdate={handleOnSearchQueryChange}\n onViewResource={onViewResource}\n />\n </FlexView>\n </FlexView>\n );\n});\n\nexport default EPResourceAssign;\n"],"names":["EPResourceAssign","memo","props","studentId","stream","onResourceAssign","onError","onExitResourceAssign","onViewResource","userMilestoneId","programId","trackEvent","useUIContext","pageNumber","setPageNumber","useState","searchValue","setSearchValue","searchQuery","setSearchQuery","resourceItems","setResourceItems","selectedResourceItems","setSelectedResource","handleOnResourceAssignComplete","useCallback","errorMessage","getSearchResource","resourceSearchData","isProcessing","isProcessingFailed","useGetSearchResource","postAssignGoalResource","goalResourceAssignInProgress","usePostMilestoneResource","postAssignLPARResource","lparResourceAssignInProgress","usePostLPARResource","handleOnSearchQueryChange","updatedQuery","prev","handleOnResourceAdditionOrDeletion","step","resourceNodeId","resourceItem","resource","prevResource","handleScrollPagination","newPageNumber","handleSearch","RESOURCE_ASSIGN_ANALYTICS_EVENTS","handleSearchTextChange","value","fetchResource","checkIfFiltersAreAdded","handleOnResourceAssign","nodeId","useEffect","updatedData","item","jsx","FlexView","jsxs","Text","Button","AppLoader","filters","totalPages","boards","grades","nodeTypes","isFilterAdded","Styled.LoaderWrapper","ILLUSTRATIONS","Styled.SearchContainer","Styled.HeaderWrapper","SearchableInput","Back2Icon","ResourceItems","AddedResourceAndFilters","EPResourceAssign$1"],"mappings":"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"}
@@ -1,59 +1,60 @@
1
- import { jsx as r, jsxs as k } from "react/jsx-runtime";
2
- import { useRef as I, useCallback as i } from "react";
1
+ import { jsx as r, jsxs as I } from "react/jsx-runtime";
2
+ import { useRef as O, useCallback as i } from "react";
3
3
  import v from "../../buttons/clickable/clickable.js";
4
- import E from "../../layout/flex-view.js";
5
- import O from "../base-input/base-input.js";
6
- import { Input as S } from "../text-input/text-input-styled.js";
7
- import { StyledPrefixElementWrapper as z, StyledCrossIcon as A } from "./searchable-input-styled.js";
8
- const F = (m) => {
4
+ import S from "../../layout/flex-view.js";
5
+ import z from "../base-input/base-input.js";
6
+ import { Input as A } from "../text-input/text-input-styled.js";
7
+ import { StyledPrefixElementWrapper as D, StyledCrossIcon as R } from "./searchable-input-styled.js";
8
+ const G = (m) => {
9
9
  const {
10
- renderAs: o,
10
+ renderAs: s,
11
11
  value: d,
12
- disabled: l,
13
- label: s,
12
+ disabled: t,
13
+ label: o,
14
14
  width: u,
15
15
  widthX: f,
16
16
  shape: $ = "curved",
17
17
  size: c = "regular",
18
- onSearchTextChange: t,
19
- onPrefixElementClick: n,
20
- onEnter: a,
21
- analyticsLabel: b,
18
+ onSearchTextChange: a,
19
+ onPrefixElementClick: l,
20
+ onEnter: e,
21
+ searchOnClear: b,
22
+ analyticsLabel: C,
22
23
  analyticsProps: x,
23
- prefixElement: p
24
- } = m, h = I(null), C = i(
25
- (e) => {
26
- t(e.target.value);
27
- },
28
- [t]
29
- ), g = i(
30
- (e) => {
31
- e.key === "Enter" && (a == null || a());
24
+ prefixElement: h
25
+ } = m, p = O(null), g = i(
26
+ (n) => {
27
+ a(n.target.value);
32
28
  },
33
29
  [a]
34
- ), w = i(() => {
35
- n == null || n();
36
- }, [n]), y = i(() => {
37
- var e;
38
- t(""), (e = h.current) == null || e.focus();
39
- }, [t]);
30
+ ), w = i(
31
+ (n) => {
32
+ n.key === "Enter" && (e == null || e());
33
+ },
34
+ [e]
35
+ ), y = i(() => {
36
+ l == null || l();
37
+ }, [l]), k = i(() => {
38
+ var n;
39
+ a(""), b && (e == null || e()), (n = p.current) == null || n.focus();
40
+ }, [a, e]);
40
41
  return /* @__PURE__ */ r(
41
42
  v,
42
43
  {
43
- label: s ?? "searchable_input",
44
- analyticsLabel: b,
44
+ label: o ?? "searchable_input",
45
+ analyticsLabel: C,
45
46
  analyticsProps: x,
46
- disabled: l,
47
+ disabled: t,
47
48
  children: /* @__PURE__ */ r(
48
- O,
49
+ z,
49
50
  {
50
- renderAs: o,
51
+ renderAs: s,
51
52
  size: c,
52
53
  shape: $,
53
- disabled: l,
54
- label: s,
55
- inputElement: /* @__PURE__ */ k(
56
- E,
54
+ disabled: t,
55
+ label: o,
56
+ inputElement: /* @__PURE__ */ I(
57
+ S,
57
58
  {
58
59
  $flexDirection: "row",
59
60
  $alignItems: "center",
@@ -62,39 +63,39 @@ const F = (m) => {
62
63
  $width: u,
63
64
  $widthX: f,
64
65
  children: [
65
- n && p && /* @__PURE__ */ r(
66
- z,
66
+ l && h && /* @__PURE__ */ r(
67
+ D,
67
68
  {
68
- $inputRenderAs: o,
69
- $disabled: l,
69
+ $inputRenderAs: s,
70
+ $disabled: t,
70
71
  $size: c,
71
- onClick: w,
72
- children: p
72
+ onClick: y,
73
+ children: h
73
74
  }
74
75
  ),
75
76
  /* @__PURE__ */ r(
76
- S,
77
+ A,
77
78
  {
78
- $renderAs: o,
79
- placeholder: s,
80
- ref: h,
79
+ $renderAs: s,
80
+ placeholder: o,
81
+ ref: p,
81
82
  $size: c,
82
83
  value: d ?? "",
83
- disabled: l,
84
- onChange: C,
85
- onKeyDown: g
84
+ disabled: t,
85
+ onChange: g,
86
+ onKeyDown: w
86
87
  }
87
88
  )
88
89
  ]
89
90
  }
90
91
  ),
91
- siblingElement: d && /* @__PURE__ */ r(A, { onClick: y })
92
+ siblingElement: d && /* @__PURE__ */ r(R, { onClick: k })
92
93
  }
93
94
  )
94
95
  }
95
96
  );
96
97
  };
97
98
  export {
98
- F as default
99
+ G as default
99
100
  };
100
101
  //# sourceMappingURL=searchable-input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"searchable-input.js","sources":["../../../../../src/features/ui/inputs/searchable-input/searchable-input.tsx"],"sourcesContent":["import type { ISearchableInputProps } from './searchable-input-types';\nimport type { ChangeEvent } from 'react';\n\nimport { useCallback, useRef } from 'react';\n\nimport Clickable from '../../buttons/clickable/clickable';\nimport FlexView from '../../layout/flex-view';\nimport BaseInput from '../base-input/base-input';\nimport { Input } from '../text-input/text-input-styled';\nimport * as Styled from './searchable-input-styled';\n\nconst SearchableInput = <IDType extends string>(props: ISearchableInputProps<IDType>) => {\n const {\n renderAs,\n value,\n disabled,\n label,\n width,\n widthX,\n shape = 'curved',\n size = 'regular',\n onSearchTextChange,\n onPrefixElementClick,\n onEnter,\n analyticsLabel,\n analyticsProps,\n prefixElement,\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleOnChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n onSearchTextChange(e.target.value);\n },\n [onSearchTextChange],\n );\n\n const handleOnKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n onEnter?.();\n }\n },\n [onEnter],\n );\n\n const handleOnPrefixElementClick = useCallback(() => {\n onPrefixElementClick?.();\n }, [onPrefixElementClick]);\n\n const handleOnClear = useCallback(() => {\n onSearchTextChange('');\n inputRef.current?.focus();\n }, [onSearchTextChange]);\n\n return (\n <Clickable\n label={label ?? 'searchable_input'}\n analyticsLabel={analyticsLabel}\n analyticsProps={analyticsProps}\n disabled={disabled}\n >\n <BaseInput\n renderAs={renderAs}\n size={size}\n shape={shape}\n disabled={disabled}\n label={label}\n inputElement={\n <FlexView\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $height=\"100%\"\n $flexGap={12}\n $width={width}\n $widthX={widthX}\n >\n {onPrefixElementClick && prefixElement && (\n <Styled.StyledPrefixElementWrapper\n $inputRenderAs={renderAs}\n $disabled={disabled}\n $size={size}\n onClick={handleOnPrefixElementClick}\n >\n {prefixElement}\n </Styled.StyledPrefixElementWrapper>\n )}\n <Input\n $renderAs={renderAs}\n placeholder={label}\n ref={inputRef}\n $size={size}\n value={value ?? ''}\n disabled={disabled}\n onChange={handleOnChange}\n onKeyDown={handleOnKeyDown}\n />\n </FlexView>\n }\n siblingElement={value && <Styled.StyledCrossIcon onClick={handleOnClear} />}\n />\n </Clickable>\n );\n};\n\nexport default SearchableInput;\n"],"names":["SearchableInput","props","renderAs","value","disabled","label","width","widthX","shape","size","onSearchTextChange","onPrefixElementClick","onEnter","analyticsLabel","analyticsProps","prefixElement","inputRef","useRef","handleOnChange","useCallback","handleOnKeyDown","handleOnPrefixElementClick","handleOnClear","_a","jsx","Clickable","BaseInput","jsxs","FlexView","Styled.StyledPrefixElementWrapper","Input","Styled.StyledCrossIcon"],"mappings":";;;;;;;AAWM,MAAAA,IAAkB,CAAwBC,MAAyC;AACjF,QAAA;AAAA,IACJ,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,MAAAC,IAAO;AAAA,IACP,oBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,EACE,IAAAd,GAEEe,IAAWC,EAAyB,IAAI,GAExCC,IAAiBC;AAAA,IACrB,CAAC,MAAqC;AACjB,MAAAT,EAAA,EAAE,OAAO,KAAK;AAAA,IACnC;AAAA,IACA,CAACA,CAAkB;AAAA,EAAA,GAGfU,IAAkBD;AAAA,IACtB,CAAC,MAA6C;AACxC,MAAA,EAAE,QAAQ,YACFP,KAAA,QAAAA;AAAA,IAEd;AAAA,IACA,CAACA,CAAO;AAAA,EAAA,GAGJS,IAA6BF,EAAY,MAAM;AAC5B,IAAAR,KAAA,QAAAA;AAAA,EAAA,GACtB,CAACA,CAAoB,CAAC,GAEnBW,IAAgBH,EAAY,MAAM;;AACtC,IAAAT,EAAmB,EAAE,IACrBa,IAAAP,EAAS,YAAT,QAAAO,EAAkB;AAAA,EAAM,GACvB,CAACb,CAAkB,CAAC;AAGrB,SAAA,gBAAAc;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAOpB,KAAS;AAAA,MAChB,gBAAAQ;AAAA,MACA,gBAAAC;AAAA,MACA,UAAAV;AAAA,MAEA,UAAA,gBAAAoB;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,UAAAxB;AAAA,UACA,MAAAO;AAAA,UACA,OAAAD;AAAA,UACA,UAAAJ;AAAA,UACA,OAAAC;AAAA,UACA,cACE,gBAAAsB;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,gBAAe;AAAA,cACf,aAAY;AAAA,cACZ,SAAQ;AAAA,cACR,UAAU;AAAA,cACV,QAAQtB;AAAA,cACR,SAASC;AAAA,cAER,UAAA;AAAA,gBAAAI,KAAwBI,KACvB,gBAAAS;AAAA,kBAACK;AAAAA,kBAAA;AAAA,oBACC,gBAAgB3B;AAAA,oBAChB,WAAWE;AAAA,oBACX,OAAOK;AAAA,oBACP,SAASY;AAAA,oBAER,UAAAN;AAAA,kBAAA;AAAA,gBACH;AAAA,gBAEF,gBAAAS;AAAA,kBAACM;AAAA,kBAAA;AAAA,oBACC,WAAW5B;AAAA,oBACX,aAAaG;AAAA,oBACb,KAAKW;AAAA,oBACL,OAAOP;AAAA,oBACP,OAAON,KAAS;AAAA,oBAChB,UAAAC;AAAA,oBACA,UAAUc;AAAA,oBACV,WAAWE;AAAA,kBAAA;AAAA,gBACb;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,UAEF,gBAAgBjB,KAAS,gBAAAqB,EAACO,GAAA,EAAuB,SAAST,GAAe;AAAA,QAAA;AAAA,MAC3E;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"searchable-input.js","sources":["../../../../../src/features/ui/inputs/searchable-input/searchable-input.tsx"],"sourcesContent":["import type { ISearchableInputProps } from './searchable-input-types';\nimport type { ChangeEvent } from 'react';\n\nimport { useCallback, useRef } from 'react';\n\nimport Clickable from '../../buttons/clickable/clickable';\nimport FlexView from '../../layout/flex-view';\nimport BaseInput from '../base-input/base-input';\nimport { Input } from '../text-input/text-input-styled';\nimport * as Styled from './searchable-input-styled';\n\nconst SearchableInput = <IDType extends string>(props: ISearchableInputProps<IDType>) => {\n const {\n renderAs,\n value,\n disabled,\n label,\n width,\n widthX,\n shape = 'curved',\n size = 'regular',\n onSearchTextChange,\n onPrefixElementClick,\n onEnter,\n searchOnClear,\n analyticsLabel,\n analyticsProps,\n prefixElement,\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleOnChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n onSearchTextChange(e.target.value);\n },\n [onSearchTextChange],\n );\n\n const handleOnKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n onEnter?.();\n }\n },\n [onEnter],\n );\n\n const handleOnPrefixElementClick = useCallback(() => {\n onPrefixElementClick?.();\n }, [onPrefixElementClick]);\n\n const handleOnClear = useCallback(() => {\n onSearchTextChange('');\n\n if (searchOnClear) {\n onEnter?.();\n }\n\n inputRef.current?.focus();\n }, [onSearchTextChange, onEnter]);\n\n return (\n <Clickable\n label={label ?? 'searchable_input'}\n analyticsLabel={analyticsLabel}\n analyticsProps={analyticsProps}\n disabled={disabled}\n >\n <BaseInput\n renderAs={renderAs}\n size={size}\n shape={shape}\n disabled={disabled}\n label={label}\n inputElement={\n <FlexView\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $height=\"100%\"\n $flexGap={12}\n $width={width}\n $widthX={widthX}\n >\n {onPrefixElementClick && prefixElement && (\n <Styled.StyledPrefixElementWrapper\n $inputRenderAs={renderAs}\n $disabled={disabled}\n $size={size}\n onClick={handleOnPrefixElementClick}\n >\n {prefixElement}\n </Styled.StyledPrefixElementWrapper>\n )}\n <Input\n $renderAs={renderAs}\n placeholder={label}\n ref={inputRef}\n $size={size}\n value={value ?? ''}\n disabled={disabled}\n onChange={handleOnChange}\n onKeyDown={handleOnKeyDown}\n />\n </FlexView>\n }\n siblingElement={value && <Styled.StyledCrossIcon onClick={handleOnClear} />}\n />\n </Clickable>\n );\n};\n\nexport default SearchableInput;\n"],"names":["SearchableInput","props","renderAs","value","disabled","label","width","widthX","shape","size","onSearchTextChange","onPrefixElementClick","onEnter","searchOnClear","analyticsLabel","analyticsProps","prefixElement","inputRef","useRef","handleOnChange","useCallback","e","handleOnKeyDown","handleOnPrefixElementClick","handleOnClear","_a","jsx","Clickable","BaseInput","jsxs","FlexView","Styled.StyledPrefixElementWrapper","Input","Styled.StyledCrossIcon"],"mappings":";;;;;;;AAWM,MAAAA,IAAkB,CAAwBC,MAAyC;AACjF,QAAA;AAAA,IACJ,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,MAAAC,IAAO;AAAA,IACP,oBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,EACE,IAAAf,GAEEgB,IAAWC,EAAyB,IAAI,GAExCC,IAAiBC;AAAA,IACrB,CAACC,MAAqC;AACjB,MAAAX,EAAAW,EAAE,OAAO,KAAK;AAAA,IACnC;AAAA,IACA,CAACX,CAAkB;AAAA,EAAA,GAGfY,IAAkBF;AAAA,IACtB,CAACC,MAA6C;AACxC,MAAAA,EAAE,QAAQ,YACFT,KAAA,QAAAA;AAAA,IAEd;AAAA,IACA,CAACA,CAAO;AAAA,EAAA,GAGJW,IAA6BH,EAAY,MAAM;AAC5B,IAAAT,KAAA,QAAAA;AAAA,EAAA,GACtB,CAACA,CAAoB,CAAC,GAEnBa,IAAgBJ,EAAY,MAAM;;AACtC,IAAAV,EAAmB,EAAE,GAEjBG,MACQD,KAAA,QAAAA,OAGZa,IAAAR,EAAS,YAAT,QAAAQ,EAAkB;AAAA,EAAM,GACvB,CAACf,GAAoBE,CAAO,CAAC;AAG9B,SAAA,gBAAAc;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAOtB,KAAS;AAAA,MAChB,gBAAAS;AAAA,MACA,gBAAAC;AAAA,MACA,UAAAX;AAAA,MAEA,UAAA,gBAAAsB;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,UAAA1B;AAAA,UACA,MAAAO;AAAA,UACA,OAAAD;AAAA,UACA,UAAAJ;AAAA,UACA,OAAAC;AAAA,UACA,cACE,gBAAAwB;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,gBAAe;AAAA,cACf,aAAY;AAAA,cACZ,SAAQ;AAAA,cACR,UAAU;AAAA,cACV,QAAQxB;AAAA,cACR,SAASC;AAAA,cAER,UAAA;AAAA,gBAAAI,KAAwBK,KACvB,gBAAAU;AAAA,kBAACK;AAAAA,kBAAA;AAAA,oBACC,gBAAgB7B;AAAA,oBAChB,WAAWE;AAAA,oBACX,OAAOK;AAAA,oBACP,SAASc;AAAA,oBAER,UAAAP;AAAA,kBAAA;AAAA,gBACH;AAAA,gBAEF,gBAAAU;AAAA,kBAACM;AAAA,kBAAA;AAAA,oBACC,WAAW9B;AAAA,oBACX,aAAaG;AAAA,oBACb,KAAKY;AAAA,oBACL,OAAOR;AAAA,oBACP,OAAON,KAAS;AAAA,oBAChB,UAAAC;AAAA,oBACA,UAAUe;AAAA,oBACV,WAAWG;AAAA,kBAAA;AAAA,gBACb;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,UAEF,gBAAgBnB,KAAS,gBAAAuB,EAACO,GAAA,EAAuB,SAAST,GAAe;AAAA,QAAA;AAAA,MAC3E;AAAA,IAAA;AAAA,EAAA;AAGN;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "2.8.34-beta-0.1",
3
+ "version": "2.8.34-beta-0.3",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"