@cuemath/leap 2.8.38 → 2.8.39

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 (62) 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/communication/pub-sub/constants.js +2 -1
  6. package/dist/features/communication/pub-sub/constants.js.map +1 -1
  7. package/dist/features/milestone/create/milestone-create-styled.js +11 -9
  8. package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
  9. package/dist/features/milestone/edit/comps/milestone-edit-loader/milestone-edit-loader-styled.js +6 -8
  10. package/dist/features/milestone/edit/comps/milestone-edit-loader/milestone-edit-loader-styled.js.map +1 -1
  11. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +130 -117
  12. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  13. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js +205 -0
  14. package/dist/features/milestone/milestone-resources/resources-assign/added-resource-and-filters.js.map +1 -0
  15. package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js +11 -0
  16. package/dist/features/milestone/milestone-resources/resources-assign/api/get-resource.js.map +1 -0
  17. package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js +9 -0
  18. package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js.map +1 -0
  19. package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js +9 -0
  20. package/dist/features/milestone/milestone-resources/resources-assign/api/lpar-resource-assign.js.map +1 -0
  21. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js +19 -0
  22. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item-styled.js.map +1 -0
  23. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js +47 -0
  24. package/dist/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.js.map +1 -0
  25. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.js +22 -0
  26. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.js.map +1 -0
  27. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js +60 -0
  28. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item.js.map +1 -0
  29. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.js +6 -0
  30. package/dist/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.js.map +1 -0
  31. package/dist/features/milestone/milestone-resources/resources-assign/constant.js +6 -0
  32. package/dist/features/milestone/milestone-resources/resources-assign/constant.js.map +1 -0
  33. package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js +19 -0
  34. package/dist/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.js.map +1 -0
  35. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js +32 -0
  36. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.js.map +1 -0
  37. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js +19 -0
  38. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.js.map +1 -0
  39. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js +85 -0
  40. package/dist/features/milestone/milestone-resources/resources-assign/resource-items/resource-items.js.map +1 -0
  41. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js +65 -0
  42. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign-styled.js.map +1 -0
  43. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +233 -0
  44. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -0
  45. package/dist/features/milestone/milestone-resources/resources-assign/utils.js +12 -0
  46. package/dist/features/milestone/milestone-resources/resources-assign/utils.js.map +1 -0
  47. package/dist/features/ui/grade-selector/grade-tab.js +15 -15
  48. package/dist/features/ui/grade-selector/grade-tab.js.map +1 -1
  49. package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js +28 -0
  50. package/dist/features/ui/inputs/searchable-input/searchable-input-styled.js.map +1 -0
  51. package/dist/features/ui/inputs/searchable-input/searchable-input.js +101 -0
  52. package/dist/features/ui/inputs/searchable-input/searchable-input.js.map +1 -0
  53. package/dist/features/ui/tab/tab-styled.js +7 -8
  54. package/dist/features/ui/tab/tab-styled.js.map +1 -1
  55. package/dist/features/ui/tab/tab.js +36 -31
  56. package/dist/features/ui/tab/tab.js.map +1 -1
  57. package/dist/features/ui/theme/tab.js +3 -3
  58. package/dist/features/ui/theme/tab.js.map +1 -1
  59. package/dist/index.d.ts +42 -1
  60. package/dist/index.js +343 -339
  61. package/dist/index.js.map +1 -1
  62. package/package.json +1 -1
@@ -0,0 +1,205 @@
1
+ import { jsxs as c, Fragment as h, jsx as t } from "react/jsx-runtime";
2
+ import { memo as x, useState as y, useMemo as $, useCallback as S, Fragment as U } from "react";
3
+ import B from "../../../../assets/line-icons/icons/sheet.js";
4
+ import { useUIContext as N } from "../../../ui/context/context.js";
5
+ import _ from "../../../ui/layout/flex-view.js";
6
+ import X from "../../../ui/separator/separator.js";
7
+ import g from "../../../ui/text/text.js";
8
+ import G from "./comps/filter-item/filter-item.js";
9
+ import W from "./comps/resource-item/resource-item.js";
10
+ import { RESOURCE_ASSIGN_ANALYTICS_EVENTS as i } from "./resource-assign-analytics-events.js";
11
+ import { HeaderWrapper as j, FilterTabWrapper as w, ResourceCountWrapper as P, FilterListWrapper as V } from "./resources-assign-styled.js";
12
+ const Y = [
13
+ {
14
+ id: "resource-filters",
15
+ label: "Filters"
16
+ },
17
+ {
18
+ id: "resource-added",
19
+ label: "Added"
20
+ }
21
+ ], H = {
22
+ LEARNING: "Learning",
23
+ PRACTICE: "Practice",
24
+ ASSESSMENT: "Assessment",
25
+ LEVEL2: "Advanced",
26
+ LEVEL3: "Advanced",
27
+ SUBJECTIVE: "Subjective"
28
+ }, oe = x((T) => {
29
+ const {
30
+ resourceFilters: f,
31
+ selectedResources: R,
32
+ onResourceDeSelection: b,
33
+ onFilterUpdate: n,
34
+ onViewResource: L
35
+ } = T, { boards: s, grades: a, node_types: d } = f, { onEvent: o } = N(), [A, D] = y("resource-filters"), E = R.length, p = $(() => {
36
+ var e;
37
+ return (e = s.find((r) => r.applied)) == null ? void 0 : e.name;
38
+ }, [s]), u = $(() => {
39
+ var e;
40
+ return (e = a.find((r) => r.applied)) == null ? void 0 : e.name;
41
+ }, [a]), m = $(() => {
42
+ var e;
43
+ return (e = d.find((r) => r.applied)) == null ? void 0 : e.name;
44
+ }, [d]), I = S(
45
+ (e) => {
46
+ const r = p === e;
47
+ o(
48
+ r ? i.RESOURCE_BOARD_DESELECTED : i.RESOURCE_BOARD_SELECTED,
49
+ {
50
+ board: e
51
+ }
52
+ ), n({ board: r ? "" : e });
53
+ },
54
+ [o, n, p]
55
+ ), O = S(
56
+ (e) => {
57
+ const r = u === e;
58
+ o(
59
+ r ? i.RESOURCE_GRADE_DESELECTED : i.RESOURCE_GRADE_SELECTED,
60
+ {
61
+ grade: e
62
+ }
63
+ ), n({ grade: r ? "" : e });
64
+ },
65
+ [o, n, u]
66
+ ), v = S(
67
+ (e) => {
68
+ const r = m === e;
69
+ o(
70
+ r ? i.RESOURCE_NODE_TYPE_DESELECTED : i.RESOURCE_NODE_TYPE_SELECTED,
71
+ {
72
+ node_type: e
73
+ }
74
+ ), n({ node_type: r ? "" : e });
75
+ },
76
+ [o, n, m]
77
+ ), k = [
78
+ {
79
+ title: "Curriculum",
80
+ options: s.map(({ code: e, name: r }) => ({
81
+ id: e,
82
+ label: r,
83
+ value: r
84
+ })),
85
+ value: p,
86
+ onClick: I
87
+ },
88
+ {
89
+ title: "Grade",
90
+ options: a.map(({ code: e, name: r }) => ({
91
+ id: e,
92
+ label: e,
93
+ value: r
94
+ })),
95
+ value: u,
96
+ onClick: O
97
+ },
98
+ {
99
+ title: "Type",
100
+ options: d.map(({ code: e, name: r }) => ({
101
+ id: e,
102
+ label: H[r] || "",
103
+ value: r || ""
104
+ })),
105
+ value: m,
106
+ onClick: v
107
+ }
108
+ ];
109
+ return /* @__PURE__ */ c(h, { children: [
110
+ /* @__PURE__ */ t(
111
+ j,
112
+ {
113
+ $heightX: 4,
114
+ $background: "WHITE_3",
115
+ $flexDirection: "row",
116
+ $alignItems: "end",
117
+ $noBorder: !0,
118
+ children: Y.map((e) => {
119
+ const { id: r, label: C } = e, l = r === A;
120
+ return /* @__PURE__ */ c(
121
+ w,
122
+ {
123
+ $flexDirection: "row",
124
+ $width: "100%",
125
+ $alignItems: "center",
126
+ $justifyContent: "center",
127
+ $gapX: 0.5,
128
+ $selected: l,
129
+ onClick: () => D(r),
130
+ $flexGap: 4,
131
+ $heightX: 2.5,
132
+ children: [
133
+ /* @__PURE__ */ t(
134
+ g,
135
+ {
136
+ $renderAs: l ? "ub3-bold" : "ub3",
137
+ $align: "center",
138
+ $color: l ? "BLACK_T_87" : "BLACK_T_38",
139
+ children: C
140
+ }
141
+ ),
142
+ E > 0 && r === "resource-added" && /* @__PURE__ */ t(
143
+ P,
144
+ {
145
+ $borderRadius: 50,
146
+ $background: "YELLOW_4",
147
+ $gutter: 4,
148
+ $justifyContent: "center",
149
+ $alignItems: "center",
150
+ $heightX: 1.25,
151
+ children: /* @__PURE__ */ t(g, { $renderAs: "ac4-black", children: E })
152
+ }
153
+ )
154
+ ]
155
+ },
156
+ r
157
+ );
158
+ })
159
+ }
160
+ ),
161
+ /* @__PURE__ */ t(V, { children: A === "resource-filters" ? /* @__PURE__ */ t(h, { children: k.map((e) => {
162
+ const { title: r, value: C, options: l, onClick: F } = e;
163
+ return /* @__PURE__ */ c(U, { children: [
164
+ /* @__PURE__ */ t(
165
+ G,
166
+ {
167
+ title: r,
168
+ value: C ?? "",
169
+ options: l,
170
+ onClick: F
171
+ }
172
+ ),
173
+ /* @__PURE__ */ t(X, { height: 1, background: "WHITE_5" })
174
+ ] }, r);
175
+ }) }) : /* @__PURE__ */ c(h, { children: [
176
+ R.map((e) => /* @__PURE__ */ t(_, { $gapX: 1, $gutterX: 1, children: /* @__PURE__ */ t(
177
+ W,
178
+ {
179
+ resource: e,
180
+ onViewResource: L,
181
+ onResourceAdditionOrDeletion: b,
182
+ selected: !0
183
+ }
184
+ ) }, e.id)),
185
+ E === 0 && /* @__PURE__ */ c(
186
+ _,
187
+ {
188
+ $alignItems: "center",
189
+ $justifyContent: "center",
190
+ $gapX: 2,
191
+ $height: "100%",
192
+ $flexGap: 8,
193
+ children: [
194
+ /* @__PURE__ */ t(B, { opacity: 0.38 }),
195
+ /* @__PURE__ */ t(_, { $widthX: 15, children: /* @__PURE__ */ t(g, { $renderAs: "ub1-bold", $color: "BLACK_T_38", $align: "center", children: "No sheets added" }) })
196
+ ]
197
+ }
198
+ )
199
+ ] }) })
200
+ ] });
201
+ });
202
+ export {
203
+ oe as default
204
+ };
205
+ //# 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, useCallback, useMemo, 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 resourceFilters,\n selectedResources,\n onResourceDeSelection,\n onFilterUpdate,\n onViewResource,\n } = props;\n\n const { boards, grades, node_types: nodeTypes } = resourceFilters;\n\n const { onEvent: trackEvent } = useUIContext();\n\n const [selectedTab, setSelectedTab] = useState('resource-filters');\n\n const addedResourceCount = selectedResources.length;\n const appliedBoard = useMemo(() => boards.find(board => board.applied)?.name, [boards]);\n const appliedGrade = useMemo(() => grades.find(grade => grade.applied)?.name, [grades]);\n const appliedNodeType = useMemo(() => nodeTypes.find(grade => grade.applied)?.name, [nodeTypes]);\n\n const handleOnBoardChange = useCallback(\n (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 [trackEvent, onFilterUpdate, appliedBoard],\n );\n\n const handleOnGradeChange = useCallback(\n (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 [trackEvent, onFilterUpdate, appliedGrade],\n );\n\n const handleOnNodeTypeChange = useCallback(\n (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 [trackEvent, onFilterUpdate, appliedNodeType],\n );\n\n const filterItemList = [\n {\n title: 'Curriculum',\n options: boards.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: grades.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: nodeTypes.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>\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","resourceFilters","selectedResources","onResourceDeSelection","onFilterUpdate","onViewResource","boards","grades","nodeTypes","trackEvent","useUIContext","selectedTab","setSelectedTab","useState","addedResourceCount","appliedBoard","useMemo","_a","board","appliedGrade","grade","appliedNodeType","handleOnBoardChange","useCallback","updatedBoard","boardSelection","RESOURCE_ASSIGN_ANALYTICS_EVENTS","handleOnGradeChange","updatedGrade","gradeSelection","handleOnNodeTypeChange","updatedNodeType","nodeTypeSelection","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,11 @@
1
+ import { createGetAPI as r } 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 { get: i, useGet: a } = r({
5
+ getURL: (c, e) => `${t}/curriculum/extra-resources/?${o(e)}`
6
+ });
7
+ export {
8
+ i as getResourceSearchAPI,
9
+ a as useGetSearchResource
10
+ };
11
+ //# 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';\nimport type { ResourceModel } from '@cuemath/rest-api';\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\nexport type IExtendedResourceModel = ResourceModel<IResourceData> & {\n __ERROR__: Record<string, string>;\n};\n\nconst { get: getResourceSearchAPI, useGet: useGetSearchResource } = createGetAPI<\n IResourceData,\n IExtraPracticeQuery,\n null\n>({\n getURL: (_, query) => `${BASE_URL_V3}/curriculum/extra-resources/?${stringify(query)}`,\n});\n\nexport { getResourceSearchAPI, useGetSearchResource, type IExtraPracticeQuery };\n"],"names":["getResourceSearchAPI","useGetSearchResource","createGetAPI","_","query","BASE_URL_V3","stringify"],"mappings":";;;AA0BA,MAAM,EAAE,KAAKA,GAAsB,QAAQC,EAAA,IAAyBC,EAIlE;AAAA,EACA,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;"}
@@ -0,0 +1,47 @@
1
+ import { jsxs as o, jsx as e } from "react/jsx-runtime";
2
+ import { memo as f, useState as x } from "react";
3
+ import l from "../../../../../ui/layout/flex-view.js";
4
+ import u from "../../../../../ui/tab/tab.js";
5
+ import h from "../../../../../ui/text/text.js";
6
+ import { FilterItemHeader as w, StyledChevronIcon as C } from "./filter-item-styled.js";
7
+ const F = f((i) => {
8
+ const { options: a, title: c, value: s, onClick: d } = i, [r, m] = x(!0);
9
+ return /* @__PURE__ */ o(l, { $width: "100%", $gapX: 1, $gutterX: 1, $flexGapX: 1, children: [
10
+ /* @__PURE__ */ o(
11
+ w,
12
+ {
13
+ $flexDirection: "row",
14
+ $alignItems: "center",
15
+ $justifyContent: "space-between",
16
+ $flexGap: 8,
17
+ onClick: () => {
18
+ m((t) => !t);
19
+ },
20
+ children: [
21
+ /* @__PURE__ */ e(h, { $renderAs: "ac4-black", children: c }),
22
+ /* @__PURE__ */ e(C, { $active: r })
23
+ ]
24
+ }
25
+ ),
26
+ r && /* @__PURE__ */ e(l, { $flexDirection: "row", $flexWrap: !0, $flexGap: 12, children: a.map((t) => {
27
+ const { id: p, label: $, value: n } = t;
28
+ return /* @__PURE__ */ e(
29
+ u,
30
+ {
31
+ $width: "fit-content",
32
+ $renderAs: "primary",
33
+ label: $,
34
+ $selected: n === s,
35
+ shape: "curved",
36
+ $size: "small",
37
+ onClick: () => d(n)
38
+ },
39
+ p
40
+ );
41
+ }) })
42
+ ] });
43
+ });
44
+ export {
45
+ F as default
46
+ };
47
+ //# sourceMappingURL=filter-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-item.js","sources":["../../../../../../../src/features/milestone/milestone-resources/resources-assign/comps/filter-item/filter-item.tsx"],"sourcesContent":["import type { IFilterItem } from './filter-item-types';\nimport type { FC } from 'react';\n\nimport { memo, useState } from 'react';\n\nimport FlexView from '../../../../../ui/layout/flex-view';\nimport TabComponent from '../../../../../ui/tab/tab';\nimport Text from '../../../../../ui/text/text';\nimport * as Styled from './filter-item-styled';\n\nconst FilterItem: FC<IFilterItem> = memo(props => {\n const { options, title, value, onClick } = props;\n const [expandItem, setExpandedItem] = useState(true);\n\n const handleOnExpand = () => {\n setExpandedItem(prev => !prev);\n };\n\n return (\n <FlexView $width=\"100%\" $gapX={1} $gutterX={1} $flexGapX={1}>\n <Styled.FilterItemHeader\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"space-between\"\n $flexGap={8}\n onClick={handleOnExpand}\n >\n <Text $renderAs=\"ac4-black\">{title}</Text>\n\n <Styled.StyledChevronIcon $active={expandItem} />\n </Styled.FilterItemHeader>\n\n {expandItem && (\n <FlexView $flexDirection=\"row\" $flexWrap $flexGap={12}>\n {options.map(option => {\n const { id, label, value: optionValue } = option;\n const selected = optionValue === value;\n\n return (\n <TabComponent\n key={id}\n $width=\"fit-content\"\n $renderAs=\"primary\"\n label={label}\n $selected={selected}\n shape=\"curved\"\n $size=\"small\"\n onClick={() => onClick(optionValue)}\n />\n );\n })}\n </FlexView>\n )}\n </FlexView>\n );\n});\n\nexport default FilterItem;\n"],"names":["FilterItem","memo","props","options","title","value","onClick","expandItem","setExpandedItem","useState","jsxs","FlexView","Styled.FilterItemHeader","prev","jsx","Text","Styled.StyledChevronIcon","option","id","label","optionValue","TabComponent"],"mappings":";;;;;;AAUM,MAAAA,IAA8BC,EAAK,CAASC,MAAA;AAChD,QAAM,EAAE,SAAAC,GAAS,OAAAC,GAAO,OAAAC,GAAO,SAAAC,MAAYJ,GACrC,CAACK,GAAYC,CAAe,IAAIC,EAAS,EAAI;AAOjD,SAAA,gBAAAC,EAACC,KAAS,QAAO,QAAO,OAAO,GAAG,UAAU,GAAG,WAAW,GACxD,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAACE;AAAAA,MAAA;AAAA,QACC,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,iBAAgB;AAAA,QAChB,UAAU;AAAA,QACV,SAXiB,MAAM;AACX,UAAAJ,EAAA,CAAAK,MAAQ,CAACA,CAAI;AAAA,QAAA;AAAA,QAYzB,UAAA;AAAA,UAAC,gBAAAC,EAAAC,GAAA,EAAK,WAAU,aAAa,UAAMX,GAAA;AAAA,UAElC,gBAAAU,EAAAE,GAAA,EAAyB,SAAST,EAAY,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACjD;AAAA,IAECA,KACE,gBAAAO,EAAAH,GAAA,EAAS,gBAAe,OAAM,WAAS,IAAC,UAAU,IAChD,UAAQR,EAAA,IAAI,CAAUc,MAAA;AACrB,YAAM,EAAE,IAAAC,GAAI,OAAAC,GAAO,OAAOC,MAAgBH;AAIxC,aAAA,gBAAAH;AAAA,QAACO;AAAA,QAAA;AAAA,UAEC,QAAO;AAAA,UACP,WAAU;AAAA,UACV,OAAAF;AAAA,UACA,WARaC,MAAgBf;AAAA,UAS7B,OAAM;AAAA,UACN,OAAM;AAAA,UACN,SAAS,MAAMC,EAAQc,CAAW;AAAA,QAAA;AAAA,QAP7BF;AAAA,MAAA;AAAA,IAUV,CAAA,GACH;AAAA,EAEJ,EAAA,CAAA;AAEJ,CAAC;"}
@@ -0,0 +1,22 @@
1
+ import e from "styled-components";
2
+ import t from "../../../../../ui/text/text.js";
3
+ const i = e(t)`
4
+ cursor: pointer;
5
+ display: -webkit-box;
6
+ -webkit-box-orient: vertical;
7
+ -webkit-line-clamp: 2;
8
+ text-overflow: ellipsis;
9
+ overflow: hidden;
10
+
11
+ &:hover {
12
+ text-decoration: underline;
13
+ text-underline-offset: 3px;
14
+ }
15
+ `, l = e(t)`
16
+ word-spacing: 4px;
17
+ `;
18
+ export {
19
+ l as ResourceItemTags,
20
+ i as ResourceItemTitle
21
+ };
22
+ //# sourceMappingURL=resource-item-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-item-styled.js","sources":["../../../../../../../src/features/milestone/milestone-resources/resources-assign/comps/resource-item/resource-item-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport Text from '../../../../../ui/text/text';\n\nconst ResourceItemTitle = styled(Text)`\n cursor: pointer;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n text-overflow: ellipsis;\n overflow: hidden;\n\n &:hover {\n text-decoration: underline;\n text-underline-offset: 3px;\n }\n`;\n\nconst ResourceItemTags = styled(Text)`\n word-spacing: 4px;\n`;\n\nexport { ResourceItemTitle, ResourceItemTags };\n"],"names":["ResourceItemTitle","styled","Text","ResourceItemTags"],"mappings":";;AAIM,MAAAA,IAAoBC,EAAOC,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAc/BC,IAAmBF,EAAOC,CAAI;AAAA;AAAA;"}
@@ -0,0 +1,60 @@
1
+ import { jsxs as o, jsx as n } from "react/jsx-runtime";
2
+ import { memo as R, useCallback as a } from "react";
3
+ import $ from "../../../../../../assets/line-icons/icons/cross.js";
4
+ import g from "../../../../../../assets/line-icons/icons/plus.js";
5
+ import h from "../../../../../ui/buttons/icon-button/icon-button.js";
6
+ import s from "../../../../../ui/layout/flex-view.js";
7
+ import x from "../../../../../ui/separator/separator.js";
8
+ import { RESOURCE_ASSIGN_ANALYTICS_EVENTS as l } from "../../resource-assign-analytics-events.js";
9
+ import { ResourceItemTitle as S, ResourceItemTags as A } from "./resource-item-styled.js";
10
+ import { getGradeTags as b, getBoardTags as y } from "./utils.js";
11
+ const U = R((d) => {
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
+ c(e ? "deselect" : "select", t);
14
+ }, [c, t, e]), _ = a(() => {
15
+ i(r);
16
+ }, [i, r]);
17
+ return /* @__PURE__ */ o(s, { $flexGapX: 1.5, children: [
18
+ /* @__PURE__ */ o(
19
+ s,
20
+ {
21
+ $flexDirection: "row",
22
+ $alignItems: "center",
23
+ $justifyContent: "space-between",
24
+ $flexGapX: 2,
25
+ children: [
26
+ /* @__PURE__ */ o(s, { $flexWrap: !0, $flexGap: 4, $widthX: 25.5, children: [
27
+ /* @__PURE__ */ n(S, { $renderAs: "ab2", onClick: _, children: m }),
28
+ /* @__PURE__ */ o(A, { $renderAs: "ub3", $color: "BLACK_T_60", children: [
29
+ p,
30
+ " ",
31
+ I,
32
+ " ",
33
+ C,
34
+ " • ",
35
+ u
36
+ ] })
37
+ ] }),
38
+ /* @__PURE__ */ n(
39
+ h,
40
+ {
41
+ Icon: e ? $ : g,
42
+ renderAs: e ? "tertiary" : "secondary",
43
+ analyticsLabel: e ? l.RESOURCE_ITEM_DESELECTED : l.RESOURCE_ITEM_SELECTED,
44
+ analyticsProps: {
45
+ node_id: t
46
+ },
47
+ size: "xsmall",
48
+ onClick: T
49
+ }
50
+ )
51
+ ]
52
+ }
53
+ ),
54
+ /* @__PURE__ */ n(x, { height: 1, background: "WHITE_5" })
55
+ ] });
56
+ });
57
+ export {
58
+ U as default
59
+ };
60
+ //# sourceMappingURL=resource-item.js.map
@@ -0,0 +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 { 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;"}
@@ -0,0 +1,6 @@
1
+ const a = (e) => e.reduce((r, t) => `${r} • G${t}`, ""), c = (e) => e.reduce((r, t) => `${r} • ${t}`, "");
2
+ export {
3
+ c as getBoardTags,
4
+ a as getGradeTags
5
+ };
6
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../../src/features/milestone/milestone-resources/resources-assign/comps/resource-item/utils.ts"],"sourcesContent":["const getGradeTags = (grades: string[]) => {\n return grades.reduce((acc, gradeInfo) => `${acc} • G${gradeInfo}`, '');\n};\n\nconst getBoardTags = (boards: string[]) => {\n return boards.reduce((acc, boardInfo) => `${acc} • ${boardInfo}`, '');\n};\n\nexport { getGradeTags, getBoardTags };\n"],"names":["getGradeTags","grades","acc","gradeInfo","getBoardTags","boards","boardInfo"],"mappings":"AAAM,MAAAA,IAAe,CAACC,MACbA,EAAO,OAAO,CAACC,GAAKC,MAAc,GAAGD,CAAG,OAAOC,CAAS,IAAI,EAAE,GAGjEC,IAAe,CAACC,MACbA,EAAO,OAAO,CAACH,GAAKI,MAAc,GAAGJ,CAAG,MAAMI,CAAS,IAAI,EAAE;"}
@@ -0,0 +1,6 @@
1
+ const E = 64, H = 72;
2
+ export {
3
+ H as FOOTER_HEIGHT,
4
+ E as HEADER_HEIGHT
5
+ };
6
+ //# sourceMappingURL=constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant.js","sources":["../../../../../src/features/milestone/milestone-resources/resources-assign/constant.ts"],"sourcesContent":["export const HEADER_HEIGHT = 64;\nexport const FOOTER_HEIGHT = 72;\n"],"names":["HEADER_HEIGHT","FOOTER_HEIGHT"],"mappings":"AAAO,MAAMA,IAAgB,IAChBC,IAAgB;"}
@@ -0,0 +1,19 @@
1
+ import { PLUGINS as r } from "../../../../node_modules/@cuemath/analytics-v2/dist/constants.js";
2
+ var s = /* @__PURE__ */ ((e) => (e.RESOURCE_ASSIGNED = "resource_assigned", e.RESOURCE_BOARD_SELECTED = "resource_board_selected", e.RESOURCE_BOARD_DESELECTED = "resource_board_deselected", e.RESOURCE_GRADE_SELECTED = "resource_grade_selected", e.RESOURCE_GRADE_DESELECTED = "resource_grade_deselected", e.RESOURCE_NODE_TYPE_SELECTED = "resource_node_type_selected", e.RESOURCE_NODE_TYPE_DESELECTED = "resource_node_type_deselected", e.RESOURCE_SEARCH_INPUT_VALUE = "resource_search_input_value", e.RESOURCE_ITEM_SELECTED = "resource_item_selected", e.RESOURCE_ITEM_DESELECTED = "resource_item_deselected", e))(s || {});
3
+ const c = {
4
+ resource_assigned: [r.MIXPANEL],
5
+ resource_board_selected: [r.MIXPANEL],
6
+ resource_board_deselected: [r.MIXPANEL],
7
+ resource_grade_selected: [r.MIXPANEL],
8
+ resource_grade_deselected: [r.MIXPANEL],
9
+ resource_node_type_selected: [r.MIXPANEL],
10
+ resource_node_type_deselected: [r.MIXPANEL],
11
+ resource_search_input_value: [r.MIXPANEL],
12
+ resource_item_selected: [r.MIXPANEL],
13
+ resource_item_deselected: [r.MIXPANEL]
14
+ };
15
+ export {
16
+ s as RESOURCE_ASSIGN_ANALYTICS_EVENTS,
17
+ c as RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS
18
+ };
19
+ //# sourceMappingURL=resource-assign-analytics-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-assign-analytics-events.js","sources":["../../../../../src/features/milestone/milestone-resources/resources-assign/resource-assign-analytics-events.ts"],"sourcesContent":["import { PLUGINS } from '@cuemath/analytics-v2/dist/constants';\n\nexport enum RESOURCE_ASSIGN_ANALYTICS_EVENTS {\n RESOURCE_ASSIGNED = 'resource_assigned',\n RESOURCE_BOARD_SELECTED = 'resource_board_selected',\n RESOURCE_BOARD_DESELECTED = 'resource_board_deselected',\n RESOURCE_GRADE_SELECTED = 'resource_grade_selected',\n RESOURCE_GRADE_DESELECTED = 'resource_grade_deselected',\n RESOURCE_NODE_TYPE_SELECTED = 'resource_node_type_selected',\n RESOURCE_NODE_TYPE_DESELECTED = 'resource_node_type_deselected',\n RESOURCE_SEARCH_INPUT_VALUE = 'resource_search_input_value',\n RESOURCE_ITEM_SELECTED = 'resource_item_selected',\n RESOURCE_ITEM_DESELECTED = 'resource_item_deselected',\n}\n\nexport const RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS = {\n [RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_ASSIGNED]: [PLUGINS.MIXPANEL],\n [RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_BOARD_SELECTED]: [PLUGINS.MIXPANEL],\n [RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_BOARD_DESELECTED]: [PLUGINS.MIXPANEL],\n [RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_GRADE_SELECTED]: [PLUGINS.MIXPANEL],\n [RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_GRADE_DESELECTED]: [PLUGINS.MIXPANEL],\n [RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_NODE_TYPE_SELECTED]: [PLUGINS.MIXPANEL],\n [RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_NODE_TYPE_DESELECTED]: [PLUGINS.MIXPANEL],\n [RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_SEARCH_INPUT_VALUE]: [PLUGINS.MIXPANEL],\n [RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_ITEM_SELECTED]: [PLUGINS.MIXPANEL],\n [RESOURCE_ASSIGN_ANALYTICS_EVENTS.RESOURCE_ITEM_DESELECTED]: [PLUGINS.MIXPANEL],\n};\n"],"names":["RESOURCE_ASSIGN_ANALYTICS_EVENTS","RESOURCE_ASSIGN_ANALYTICS_WHITELIST_EVENTS","PLUGINS"],"mappings":";AAEY,IAAAA,sBAAAA,OACVA,EAAA,oBAAoB,qBACpBA,EAAA,0BAA0B,2BAC1BA,EAAA,4BAA4B,6BAC5BA,EAAA,0BAA0B,2BAC1BA,EAAA,4BAA4B,6BAC5BA,EAAA,8BAA8B,+BAC9BA,EAAA,gCAAgC,iCAChCA,EAAA,8BAA8B,+BAC9BA,EAAA,yBAAyB,0BACzBA,EAAA,2BAA2B,4BAVjBA,IAAAA,KAAA,CAAA,CAAA;AAaL,MAAMC,IAA6C;AAAA,EACvD,mBAAqD,CAACC,EAAQ,QAAQ;AAAA,EACtE,yBAA2D,CAACA,EAAQ,QAAQ;AAAA,EAC5E,2BAA6D,CAACA,EAAQ,QAAQ;AAAA,EAC9E,yBAA2D,CAACA,EAAQ,QAAQ;AAAA,EAC5E,2BAA6D,CAACA,EAAQ,QAAQ;AAAA,EAC9E,6BAA+D,CAACA,EAAQ,QAAQ;AAAA,EAChF,+BAAiE,CAACA,EAAQ,QAAQ;AAAA,EAClF,6BAA+D,CAACA,EAAQ,QAAQ;AAAA,EAChF,wBAA0D,CAACA,EAAQ,QAAQ;AAAA,EAC3E,0BAA4D,CAACA,EAAQ,QAAQ;AAChF;"}
@@ -0,0 +1,32 @@
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ import { IMAGES as t } from "../../../../../assets/images/images.js";
3
+ import o from "../../../../ui/image/image.js";
4
+ import i from "../../../../ui/layout/flex-view.js";
5
+ import { NoResourceText as s } from "../resources-assign-styled.js";
6
+ const l = () => /* @__PURE__ */ r(
7
+ i,
8
+ {
9
+ $width: 620,
10
+ $height: 620,
11
+ $position: "relative",
12
+ $justifyContent: "center",
13
+ $alignItems: "center",
14
+ children: [
15
+ /* @__PURE__ */ e(
16
+ o,
17
+ {
18
+ withLoader: !1,
19
+ src: t.BG_EMPTY_RESOURCES,
20
+ alt: "Empty resources",
21
+ width: 520,
22
+ height: 520
23
+ }
24
+ ),
25
+ /* @__PURE__ */ e(s, { $renderAs: "ab2-bold", children: "Type + Search = Resources!" })
26
+ ]
27
+ }
28
+ );
29
+ export {
30
+ l as default
31
+ };
32
+ //# sourceMappingURL=no-resource-screen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-resource-screen.js","sources":["../../../../../../src/features/milestone/milestone-resources/resources-assign/resource-items/no-resource-screen.tsx"],"sourcesContent":["import type { FC } from 'react';\n\nimport { IMAGES } from '../../../../../assets/images/images';\nimport Image from '../../../../ui/image/image';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport * as Styled from '../resources-assign-styled';\n\nconst NoResourceScreen: FC = () => {\n return (\n <FlexView\n $width={620}\n $height={620}\n $position=\"relative\"\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n <Image\n withLoader={false}\n src={IMAGES.BG_EMPTY_RESOURCES}\n alt=\"Empty resources\"\n width={520}\n height={520}\n />\n\n <Styled.NoResourceText $renderAs=\"ab2-bold\">Type + Search = Resources!</Styled.NoResourceText>\n </FlexView>\n );\n};\n\nexport default NoResourceScreen;\n"],"names":["NoResourceScreen","jsxs","FlexView","jsx","Image","IMAGES","Styled.NoResourceText"],"mappings":";;;;;AAOA,MAAMA,IAAuB,MAEzB,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAU;AAAA,IACV,iBAAgB;AAAA,IAChB,aAAY;AAAA,IAEZ,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,YAAY;AAAA,UACZ,KAAKC,EAAO;AAAA,UACZ,KAAI;AAAA,UACJ,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA;AAAA,MACV;AAAA,wBAECC,GAAA,EAAsB,WAAU,YAAW,UAA0B,8BAAA;AAAA,IAAA;AAAA,EAAA;AAAA;"}
@@ -0,0 +1,19 @@
1
+ import t from "styled-components";
2
+ import e from "../../../../ui/buttons/button/button.js";
3
+ import r from "../../../../ui/layout/flex-view.js";
4
+ import { HEADER_HEIGHT as p, FOOTER_HEIGHT as i } from "../constant.js";
5
+ const c = t(r)(({ $overflowHidden: o }) => `
6
+ ${o ? "overflow: hidden;" : "overflow-y: auto;"}
7
+ height: calc(100vh - ${p}px - ${i}px);
8
+ `), l = t(r)`
9
+ position: sticky;
10
+ bottom: 0;
11
+ `, u = t(e)(({ theme: o }) => `
12
+ box-shadow: 0px 10px 20px 0px ${o.colors.BLACK_T_20};
13
+ `);
14
+ export {
15
+ l as ButtonWrapper,
16
+ c as ResourceItemWrapper,
17
+ u as StyledButton
18
+ };
19
+ //# sourceMappingURL=resource-items-styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-items-styled.js","sources":["../../../../../../src/features/milestone/milestone-resources/resources-assign/resource-items/resource-items-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport Button from '../../../../ui/buttons/button/button';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport { FOOTER_HEIGHT, HEADER_HEIGHT } from '../constant';\n\ninterface IResourceItemWrapper {\n $overflowHidden?: boolean;\n}\n\nconst ResourceItemWrapper = styled(FlexView)<IResourceItemWrapper>(({ $overflowHidden }) => {\n return `\n ${$overflowHidden ? 'overflow: hidden;' : 'overflow-y: auto;'}\n height: calc(100vh - ${HEADER_HEIGHT}px - ${FOOTER_HEIGHT}px);\n `;\n});\n\nconst ButtonWrapper = styled(FlexView)`\n position: sticky;\n bottom: 0;\n`;\n\nconst StyledButton = styled(Button)(({ theme }) => {\n return `\n box-shadow: 0px 10px 20px 0px ${theme.colors.BLACK_T_20};\n `;\n});\n\nexport { ResourceItemWrapper, ButtonWrapper, StyledButton };\n"],"names":["ResourceItemWrapper","styled","FlexView","$overflowHidden","HEADER_HEIGHT","FOOTER_HEIGHT","ButtonWrapper","StyledButton","Button","theme"],"mappings":";;;;AAUA,MAAMA,IAAsBC,EAAOC,CAAQ,EAAwB,CAAC,EAAE,iBAAAC,QAC7D;AAAA,MACHA,IAAkB,sBAAsB,mBAAmB;AAAA,2BACtCC,CAAa,QAAQC,CAAa;AAAA,GAE5D,GAEKC,IAAgBL,EAAOC,CAAQ;AAAA;AAAA;AAAA,GAK/BK,IAAeN,EAAOO,CAAM,EAAE,CAAC,EAAE,OAAAC,QAC9B;AAAA,oCAC2BA,EAAM,OAAO,UAAU;AAAA,GAE1D;"}