@cuemath/leap 2.8.22 → 2.8.24-hg1

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 (154) hide show
  1. package/dist/assets/images/images.js +0 -12
  2. package/dist/assets/images/images.js.map +1 -1
  3. package/dist/assets/lotties/circle/tables/advance-mode-segment-lottie.json.js +4370 -0
  4. package/dist/assets/lotties/circle/tables/advance-mode-segment-lottie.json.js.map +1 -0
  5. package/dist/assets/lotties/circle/tables/infinite-button-bg.json.js +1552 -0
  6. package/dist/assets/lotties/circle/tables/infinite-button-bg.json.js.map +1 -0
  7. package/dist/assets/lotties/circle/tables/infinite-button-symbol.json.js +1795 -0
  8. package/dist/assets/lotties/circle/tables/infinite-button-symbol.json.js.map +1 -0
  9. package/dist/assets/lotties/circle/tables/random-mode-segment-lottie.json.js +9661 -0
  10. package/dist/assets/lotties/circle/tables/random-mode-segment-lottie.json.js.map +1 -0
  11. package/dist/assets/lotties/circle/tables/sequence-mode-segment-lottie.json.js +8630 -0
  12. package/dist/assets/lotties/circle/tables/sequence-mode-segment-lottie.json.js.map +1 -0
  13. package/dist/assets/lotties/circle/tables/table-mode-reveal.json.js +9076 -0
  14. package/dist/assets/lotties/circle/tables/table-mode-reveal.json.js.map +1 -0
  15. package/dist/features/chapters/chapter/chapter.js +43 -45
  16. package/dist/features/chapters/chapter/chapter.js.map +1 -1
  17. package/dist/features/chapters/chapter/comps/core-lessons/core-lessons.js +21 -23
  18. package/dist/features/chapters/chapter/comps/core-lessons/core-lessons.js.map +1 -1
  19. package/dist/features/circle-games/game-launcher/comps/card-container/card-container-styled.js +53 -0
  20. package/dist/features/circle-games/game-launcher/comps/card-container/card-container-styled.js.map +1 -0
  21. package/dist/features/circle-games/game-launcher/comps/card-container/card-container.js +24 -0
  22. package/dist/features/circle-games/game-launcher/comps/card-container/card-container.js.map +1 -0
  23. package/dist/features/circle-games/game-launcher/comps/card-container/constants.js +7 -0
  24. package/dist/features/circle-games/game-launcher/comps/card-container/constants.js.map +1 -0
  25. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/constants.js +6 -6
  26. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/constants.js.map +1 -1
  27. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card-styled.js +29 -73
  28. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card-styled.js.map +1 -1
  29. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js +83 -81
  30. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js.map +1 -1
  31. package/dist/features/circle-games/game-launcher/comps/tables-card/constants.js +20 -0
  32. package/dist/features/circle-games/game-launcher/comps/tables-card/constants.js.map +1 -0
  33. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode-styled.js +24 -0
  34. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode-styled.js.map +1 -0
  35. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode.js +83 -0
  36. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode.js.map +1 -0
  37. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js +161 -0
  38. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js.map +1 -0
  39. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js +223 -0
  40. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -0
  41. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js +25 -15
  42. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js.map +1 -1
  43. package/dist/features/circle-games/game-launcher/game-launcher-styled.js +6 -5
  44. package/dist/features/circle-games/game-launcher/game-launcher-styled.js.map +1 -1
  45. package/dist/features/circle-games/game-launcher/game-launcher.js +123 -82
  46. package/dist/features/circle-games/game-launcher/game-launcher.js.map +1 -1
  47. package/dist/features/circle-games/games/web-view/enums/project-type-enum.js +1 -1
  48. package/dist/features/circle-games/games/web-view/enums/project-type-enum.js.map +1 -1
  49. package/dist/features/circle-games/games/web-view/web-view-types.js.map +1 -1
  50. package/dist/features/circle-games/games/web-view/web-view.js +70 -83
  51. package/dist/features/circle-games/games/web-view/web-view.js.map +1 -1
  52. package/dist/features/milestone/constants.js +18 -53
  53. package/dist/features/milestone/constants.js.map +1 -1
  54. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js +4 -16
  55. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js.map +1 -1
  56. package/dist/features/milestone/create/milestone-create-constants.js.map +1 -1
  57. package/dist/features/milestone/create/milestone-create-container.js +47 -56
  58. package/dist/features/milestone/create/milestone-create-container.js.map +1 -1
  59. package/dist/features/milestone/create/milestone-create-helpers.js +113 -132
  60. package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
  61. package/dist/features/milestone/create/milestone-create-hooks.js +90 -92
  62. package/dist/features/milestone/create/milestone-create-hooks.js.map +1 -1
  63. package/dist/features/milestone/create/milestone-create-styled.js +20 -34
  64. package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
  65. package/dist/features/milestone/create/milestone-create.js +53 -72
  66. package/dist/features/milestone/create/milestone-create.js.map +1 -1
  67. package/dist/features/milestone/create/submit-modal/use-submit-milestone.js +46 -53
  68. package/dist/features/milestone/create/submit-modal/use-submit-milestone.js.map +1 -1
  69. package/dist/features/milestone/create/utils/index.js.map +1 -1
  70. package/dist/features/milestone/edit/comps/delete-milestone/styled.js +8 -11
  71. package/dist/features/milestone/edit/comps/delete-milestone/styled.js.map +1 -1
  72. package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone.js +82 -79
  73. package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone.js.map +1 -1
  74. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js +112 -136
  75. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
  76. package/dist/features/milestone/{drafts/goal-edit → edit/goal-drafts}/goal-draft-edit-container.js +22 -24
  77. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -0
  78. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-helpers.js +17 -0
  79. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-helpers.js.map +1 -0
  80. package/dist/features/milestone/edit/goal-edit-helpers.js +5 -6
  81. package/dist/features/milestone/edit/goal-edit-helpers.js.map +1 -1
  82. package/dist/features/milestone/edit/milestone-edit-helpers.js +16 -17
  83. package/dist/features/milestone/edit/milestone-edit-helpers.js.map +1 -1
  84. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +46 -48
  85. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  86. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +58 -60
  87. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  88. package/dist/features/milestone/outcome/comps/past-milestone/past-milestone-container.js +39 -41
  89. package/dist/features/milestone/outcome/comps/past-milestone/past-milestone-container.js.map +1 -1
  90. package/dist/features/post-game-stats/accuracy/accuracy-styled.js +17 -16
  91. package/dist/features/post-game-stats/accuracy/accuracy-styled.js.map +1 -1
  92. package/dist/features/post-game-stats/clock/clock-styled.js +11 -10
  93. package/dist/features/post-game-stats/clock/clock-styled.js.map +1 -1
  94. package/dist/features/post-game-stats/points/points-styled.js +7 -6
  95. package/dist/features/post-game-stats/points/points-styled.js.map +1 -1
  96. package/dist/features/post-game-stats/post-game-stats-styled.js +1 -1
  97. package/dist/features/post-game-stats/post-game-stats-styled.js.map +1 -1
  98. package/dist/features/post-game-stats/streak/streak-styled.js +18 -17
  99. package/dist/features/post-game-stats/streak/streak-styled.js.map +1 -1
  100. package/dist/features/trial-session/comps/trial-circle-game/constants.js.map +1 -1
  101. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js.map +1 -1
  102. package/dist/index.d.ts +79 -234
  103. package/dist/index.js +318 -337
  104. package/dist/index.js.map +1 -1
  105. package/package.json +1 -1
  106. package/dist/constants/urls.js +0 -5
  107. package/dist/constants/urls.js.map +0 -1
  108. package/dist/features/circle-games/games/web-view/enums/project-ids-enum.js +0 -14
  109. package/dist/features/circle-games/games/web-view/enums/project-ids-enum.js.map +0 -1
  110. package/dist/features/milestone/drafts/create/draft-create-container.js +0 -54
  111. package/dist/features/milestone/drafts/create/draft-create-container.js.map +0 -1
  112. package/dist/features/milestone/drafts/edit/draft-edit-container.js +0 -77
  113. package/dist/features/milestone/drafts/edit/draft-edit-container.js.map +0 -1
  114. package/dist/features/milestone/drafts/edit/draft-edit-helpers.js +0 -69
  115. package/dist/features/milestone/drafts/edit/draft-edit-helpers.js.map +0 -1
  116. package/dist/features/milestone/drafts/goal-edit/goal-draft-edit-container.js.map +0 -1
  117. package/dist/features/milestone/drafts/review/draft-review-container.js +0 -76
  118. package/dist/features/milestone/drafts/review/draft-review-container.js.map +0 -1
  119. package/dist/features/milestone/edit/comps/delete-milestone/add-remove-nudge.js +0 -48
  120. package/dist/features/milestone/edit/comps/delete-milestone/add-remove-nudge.js.map +0 -1
  121. package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone-modal-styled.js +0 -23
  122. package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone-modal-styled.js.map +0 -1
  123. package/dist/features/milestone/edit/comps/edit-milestone-modal/share-screen.js +0 -68
  124. package/dist/features/milestone/edit/comps/edit-milestone-modal/share-screen.js.map +0 -1
  125. package/dist/features/milestone/help-modals/index.js +0 -22
  126. package/dist/features/milestone/help-modals/index.js.map +0 -1
  127. package/dist/features/milestone/help-modals/milestone-lesson.js +0 -17
  128. package/dist/features/milestone/help-modals/milestone-lesson.js.map +0 -1
  129. package/dist/features/milestone/help-modals/milestone-list.js +0 -17
  130. package/dist/features/milestone/help-modals/milestone-list.js.map +0 -1
  131. package/dist/features/milestone/help-modals/utils.js +0 -20
  132. package/dist/features/milestone/help-modals/utils.js.map +0 -1
  133. package/dist/features/milestone/intro-modal/index.js +0 -24
  134. package/dist/features/milestone/intro-modal/index.js.map +0 -1
  135. package/dist/features/notifications/api/notification.js +0 -13
  136. package/dist/features/notifications/api/notification.js.map +0 -1
  137. package/dist/features/notifications/use-student-journey.js +0 -20
  138. package/dist/features/notifications/use-student-journey.js.map +0 -1
  139. package/dist/features/sheets/constants/lessons.js +0 -28
  140. package/dist/features/sheets/constants/lessons.js.map +0 -1
  141. package/dist/features/ui/modals/info-modal/index.js +0 -117
  142. package/dist/features/ui/modals/info-modal/index.js.map +0 -1
  143. package/dist/static/goal_creation_helper.d45e4d58.png +0 -0
  144. package/dist/static/help_banner1.ddb0ef0f.png +0 -0
  145. package/dist/static/help_banner2.40979ed0.png +0 -0
  146. package/dist/static/help_banner3.532099c7.png +0 -0
  147. package/dist/static/help_banner4.90a6fd4d.png +0 -0
  148. package/dist/static/help_banner5.2a9efb39.png +0 -0
  149. package/dist/static/help_banner6.94fe9589.png +0 -0
  150. package/dist/static/milestone_intro_slide1.1537493e.png +0 -0
  151. package/dist/static/milestone_intro_slide2.b791c159.png +0 -0
  152. package/dist/static/milestone_intro_slide3.f7d63a11.png +0 -0
  153. package/dist/static/milestone_intro_slide4.f8da4e46.png +0 -0
  154. package/dist/static/milestone_intro_slide5.ea5d12d2.png +0 -0
@@ -1,144 +1,142 @@
1
- import { useState as P, useMemo as N, useRef as B, useCallback as b } from "react";
2
- import j from "../../notifications/use-student-journey.js";
1
+ import { useState as P, useMemo as w, useRef as B, useCallback as N } from "react";
3
2
  import { TEST_TYPE_TO_TEST_NAME as v } from "../constants.js";
4
- import { checkIfCommittedFieldIsUpdated as y } from "../edit/goal-edit-helpers.js";
5
- import { GOAL_EDIT_FLOWS as p, BRANCHING_FIELDS as k } from "./milestone-create-constants.js";
6
- import F, { CHAPTERS_SELECTION_FORM_TREE as H, ADD_CUSTOM_CHAPTERS as W, SET_COMPLETION_DATE as J } from "./milestone-create-form-tree.js";
3
+ import { checkIfCommittedFieldIsUpdated as k } from "../edit/goal-edit-helpers.js";
4
+ import { GOAL_EDIT_FLOWS as p, BRANCHING_FIELDS as F } from "./milestone-create-constants.js";
5
+ import W, { CHAPTERS_SELECTION_FORM_TREE as j, ADD_CUSTOM_CHAPTERS as H, SET_COMPLETION_DATE as y } from "./milestone-create-form-tree.js";
7
6
  import { appendSchoolDataToFormState as V, generateFormStateWithPrefilledSchoolData as Y, getCurrenStep as h, clearNextFields as q } from "./milestone-create-helpers.js";
8
- const a = (d, {
9
- schoolData: o,
10
- board: e,
11
- grade: u,
7
+ const $ = (l, {
8
+ schoolData: c,
9
+ board: t,
10
+ grade: r,
12
11
  currentCountryCode: T,
13
- flow: r
12
+ flow: d
14
13
  }) => {
15
- const [l, i] = P(() => d && p.includes(r) ? V(d, o, e, u) : {
14
+ const [m, o] = P(() => l && p.includes(d) ? V(l, c, t, r) : {
16
15
  ...Y(
17
- o,
18
- e,
19
- u,
16
+ c,
17
+ t,
18
+ r,
20
19
  T
21
20
  )
22
21
  });
23
- return { formDataState: l, setFormData: i };
24
- }, g = (d, o) => j(d === "TEACHER" ? o : null), D = ({
25
- flow: d,
26
- formDataState: o,
27
- isGoalCreation: e
22
+ return { formDataState: m, setFormData: o };
23
+ }, x = ({
24
+ flow: l,
25
+ formDataState: c,
26
+ isGoalCreation: t
28
27
  }) => {
29
- const { testType: u } = o;
30
- return N(() => {
31
- if (p.includes(d) && u) {
32
- const r = {
33
- ...H,
28
+ const { testType: r } = c;
29
+ return w(() => {
30
+ if (p.includes(l) && r) {
31
+ const d = {
32
+ ...j,
34
33
  isRootNode: !0,
35
- title: v[u]
36
- }, l = Object.assign({}, W), i = Object.assign({}, J);
37
- return e || (l.buttonLabel = "Add to learning plan", r.buttonLabel = "Update"), d === "EDIT" && (i.buttonLabel = "Update goal"), (!e || u === "no-test") && (r.next = [l, i]), r;
34
+ title: v[r]
35
+ }, m = Object.assign({}, H), o = Object.assign({}, y);
36
+ return t || (m.buttonLabel = "Add to learning plan", d.buttonLabel = "Update"), l === "EDIT" && (o.buttonLabel = "Update goal"), (!t || r === "no-test") && (d.next = [m, o]), d;
38
37
  }
39
- return F;
40
- }, [d, u, e]);
41
- }, ee = ({
42
- flow: d,
43
- updatedFormTree: o,
44
- formData: e,
45
- formDataState: u,
38
+ return W;
39
+ }, [l, r, t]);
40
+ }, a = ({
41
+ flow: l,
42
+ updatedFormTree: c,
43
+ formData: t,
44
+ formDataState: r,
46
45
  setFormData: T,
47
- handleExit: r
46
+ handleExit: d
48
47
  }) => {
49
- const l = B(u), i = (e == null ? void 0 : e.currentFlow) ?? d, s = N(
50
- () => h(o, e, i),
51
- [o, e, i]
52
- ), O = s == null ? void 0 : s.name, A = !!(s != null && s.isRootNode), E = b(
53
- (t) => {
54
- T((n) => {
55
- const S = n.testType;
56
- if (p.includes(i)) {
57
- const I = {
58
- ...n.committed,
59
- ...t.committed
48
+ const m = B(r), o = (t == null ? void 0 : t.currentFlow) ?? l, i = w(
49
+ () => h(c, t, o),
50
+ [c, t, o]
51
+ ), O = i == null ? void 0 : i.name, b = !!(i != null && i.isRootNode), E = N(
52
+ (e) => {
53
+ T((s) => {
54
+ const S = s.testType;
55
+ if (p.includes(o)) {
56
+ const A = {
57
+ ...s.committed,
58
+ ...e.committed
60
59
  }, C = [];
61
- if (Object.entries((t == null ? void 0 : t.committed) || {}).forEach((R) => {
62
- const c = R[0], M = !!R[1], U = t[c] ?? n[c];
63
- if (y({
64
- field: c,
65
- isFieldCommited: M,
66
- prevFormData: n,
67
- newValueOfField: U,
68
- formDataStateRef: l.current
60
+ if (Object.entries((e == null ? void 0 : e.committed) || {}).forEach((R) => {
61
+ const n = R[0], U = !!R[1], M = e[n] ?? s[n];
62
+ if (k({
63
+ field: n,
64
+ isFieldCommited: U,
65
+ prevFormData: s,
66
+ newValueOfField: M,
67
+ formDataStateRef: m.current
69
68
  })) {
70
69
  let _ = [];
71
- S && S === "no-test" && (_ = _.concat(["board"])), _.includes(c) || C.push(c);
70
+ S && S === "no-test" && (_ = _.concat(["board"])), _.includes(n) || C.push(n);
72
71
  }
73
- }), C.length > 0 && C.some((c) => k.includes(c))) {
74
- const c = q(
75
- o,
76
- n,
72
+ }), C.length > 0 && C.some((n) => F.includes(n))) {
73
+ const n = q(
74
+ c,
75
+ s,
77
76
  O,
78
- A,
77
+ b,
79
78
  []
80
79
  );
81
- if (c)
80
+ if (n)
82
81
  return {
83
- ...c,
84
- ...t,
82
+ ...n,
83
+ ...e,
85
84
  committed: {
86
- ...c.committed,
87
- ...t.committed
85
+ ...n.committed,
86
+ ...e.committed
88
87
  },
89
88
  reviewed: {
90
- ...I
89
+ ...A
91
90
  },
92
91
  currentFlow: "CREATE"
93
92
  };
94
93
  }
95
94
  return {
96
- ...n,
97
- ...t,
95
+ ...s,
96
+ ...e,
98
97
  committed: {
99
- ...n.committed,
100
- ...t.committed
98
+ ...s.committed,
99
+ ...e.committed
101
100
  },
102
- reviewed: I
101
+ reviewed: A
103
102
  };
104
103
  }
105
- const { committed: m, reviewed: f, ...L } = n;
104
+ const { committed: u, reviewed: f, ...L } = s;
106
105
  return {
107
106
  ...L,
108
- ...t,
107
+ ...e,
109
108
  committed: {
110
- ...m,
111
- ...t.committed
109
+ ...u,
110
+ ...e.committed
112
111
  },
113
112
  reviewed: {}
114
113
  };
115
114
  });
116
115
  },
117
- [T, i, o, O, A]
118
- ), w = b(() => {
119
- if (s) {
120
- const { reset: t, rollback: n, isRootNode: S } = s;
116
+ [T, o, c, O, b]
117
+ ), I = N(() => {
118
+ if (i) {
119
+ const { reset: e, rollback: s, isRootNode: S } = i;
121
120
  if (S) {
122
- r == null || r();
121
+ d == null || d();
123
122
  return;
124
123
  }
125
- const m = {
124
+ const u = {
126
125
  committed: {},
127
126
  reviewed: {}
128
127
  };
129
- p.includes(i) ? n.forEach((f) => {
130
- m.reviewed[f] = void 0;
131
- }) : t.forEach((f) => (m[f] = void 0, !0)), n.forEach((f) => {
132
- m.committed[f] = void 0;
133
- }), E(m);
128
+ p.includes(o) ? s.forEach((f) => {
129
+ u.reviewed[f] = void 0;
130
+ }) : e.forEach((f) => (u[f] = void 0, !0)), s.forEach((f) => {
131
+ u.committed[f] = void 0;
132
+ }), E(u);
134
133
  }
135
- }, [s, i, E, r]);
136
- return { currentStep: s, updateFormData: E, handleBack: w };
134
+ }, [i, o, E, d]);
135
+ return { currentStep: i, updateFormData: E, handleBack: I };
137
136
  };
138
137
  export {
139
- a as useFormDataPrefiller,
140
- ee as useFormTreeTraversal,
141
- D as useMilestoneFormTree,
142
- g as useMilestoneInfoTransitionsControl
138
+ $ as useFormDataPrefiller,
139
+ a as useFormTreeTraversal,
140
+ x as useMilestoneFormTree
143
141
  };
144
142
  //# sourceMappingURL=milestone-create-hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"milestone-create-hooks.js","sources":["../../../../src/features/milestone/create/milestone-create-hooks.ts"],"sourcesContent":["import type IStudentSchool from '../../../types/models/school';\nimport type { IStudentJourneyData } from '../../notifications/types';\nimport type { TUserTypes } from '../../ui/types';\nimport type {\n IFormStep,\n IFormStepProps,\n IMileStoneFormFields,\n IMilestoneConfig,\n IMilestoneFormData,\n TMilesonteFormStateField,\n TMilestoneFormFlow,\n} from './milestone-create-types';\n\nimport { useCallback, useMemo, useRef, useState } from 'react';\n\nimport useStudentJourneys from '../../notifications/use-student-journey';\nimport { TEST_TYPE_TO_TEST_NAME } from '../constants';\nimport { checkIfCommittedFieldIsUpdated } from '../edit/goal-edit-helpers';\nimport { BRANCHING_FIELDS, GOAL_EDIT_FLOWS } from './milestone-create-constants';\nimport FORM_TREE, {\n ADD_CUSTOM_CHAPTERS,\n CHAPTERS_SELECTION_FORM_TREE,\n SET_COMPLETION_DATE,\n} from './milestone-create-form-tree';\nimport {\n appendSchoolDataToFormState,\n clearNextFields,\n generateFormStateWithPrefilledSchoolData,\n getCurrenStep,\n} from './milestone-create-helpers';\n\n//TODO: right now it is for only one step, but should be for all steps in future if needed\nconst useFormDataPrefiller = (\n formDataProp: IMilestoneFormData | undefined,\n {\n schoolData,\n board,\n grade,\n currentCountryCode,\n flow,\n }: {\n grade: string;\n schoolData: IStudentSchool | undefined;\n board: string | undefined;\n config: IMilestoneConfig;\n journeysToInclude: IStudentJourneyData[];\n flow: TMilestoneFormFlow;\n currentCountryCode?: string;\n },\n) => {\n const [formDataState, setFormData] = useState<IMilestoneFormData>(() => {\n if (formDataProp && GOAL_EDIT_FLOWS.includes(flow)) {\n return appendSchoolDataToFormState(formDataProp, schoolData, board, grade);\n }\n\n const formStateWithPrefilledSchoolData = generateFormStateWithPrefilledSchoolData(\n schoolData,\n board,\n grade,\n currentCountryCode,\n );\n\n return {\n ...formStateWithPrefilledSchoolData,\n };\n });\n\n return { formDataState, setFormData };\n};\n\nconst useMilestoneInfoTransitionsControl = (userType: TUserTypes, studentId: string | null) => {\n const journeysToInclude = useStudentJourneys(userType === 'TEACHER' ? studentId : null);\n\n return journeysToInclude;\n};\n\n/**\n * Based on the flow returns the correct modified tree\n */\nconst useMilestoneFormTree = ({\n flow,\n formDataState,\n isGoalCreation,\n}: {\n isFirstMilestoneCreated: boolean;\n flow: TMilestoneFormFlow;\n formDataState: IMilestoneFormData;\n isGoalCreation?: boolean;\n}) => {\n const { testType } = formDataState;\n\n const updatedFormTree: IFormStep = useMemo(() => {\n if (GOAL_EDIT_FLOWS.includes(flow) && testType) {\n const formTreeInfo = {\n ...CHAPTERS_SELECTION_FORM_TREE,\n isRootNode: true,\n title: TEST_TYPE_TO_TEST_NAME[testType],\n };\n\n //* Creating a shallow copy as we need to change only first level element.\n const addCustomChapter = Object.assign({}, ADD_CUSTOM_CHAPTERS);\n const setCompletionDate = Object.assign({}, SET_COMPLETION_DATE);\n\n //* To compensate existing milestones chapter addition.\n if (!isGoalCreation) {\n addCustomChapter.buttonLabel = 'Add to learning plan';\n formTreeInfo.buttonLabel = 'Update';\n }\n\n if (flow === 'EDIT') {\n setCompletionDate.buttonLabel = 'Update goal';\n }\n\n if (!isGoalCreation || testType === 'no-test') {\n formTreeInfo.next = [addCustomChapter, setCompletionDate];\n }\n\n return formTreeInfo;\n }\n\n return FORM_TREE;\n }, [flow, testType, isGoalCreation]);\n\n return updatedFormTree;\n};\n\n/**\n * This hook holds the logic to run the traversal of the tree during different flows.\n * While most of the logic is same for all flows, DRAFT_EDIT and DRAFT_REVIEW flows require extra logic where a user can navigate back and forth steps without clearing data.\n * Internally, this hook uses a currentFlow variable which is initially set to the flow but changes to CREATE flow, when certain BRANCHING_FIELDS are edited.\n * BRANCHING_FIELDS are fields on edition of which the flow might change and hence the prefilled data, needs to be cleared.\n * @returns `currentStep` - the current step the tree should be at\n * @returns `updateFormData` - the method to update form data\n * @returns `handleBack` - the method to handle back navigation\n */\nconst useFormTreeTraversal = ({\n flow,\n updatedFormTree,\n formData,\n formDataState,\n setFormData,\n handleExit,\n}: {\n flow: TMilestoneFormFlow;\n updatedFormTree: IFormStep;\n formData: IMilestoneFormData;\n formDataState: IMilestoneFormData;\n setFormData: React.Dispatch<React.SetStateAction<IMilestoneFormData>>;\n handleExit?: () => void;\n}) => {\n const formDataStateRef = useRef(formDataState);\n const currentFlow = formData?.currentFlow ?? flow;\n\n const currentStep = useMemo(\n () => getCurrenStep(updatedFormTree, formData, currentFlow),\n [updatedFormTree, formData, currentFlow],\n );\n\n const currentStepName = currentStep?.name;\n const isCurrentStepRoot = Boolean(currentStep?.isRootNode);\n\n const updateFormData = useCallback<IFormStepProps['onFormDataChange']>(\n changedFormData => {\n setFormData(prevFormData => {\n const currentTestType = prevFormData.testType;\n\n if (GOAL_EDIT_FLOWS.includes(currentFlow)) {\n const updatedReviewed = {\n ...prevFormData.committed,\n ...changedFormData.committed,\n };\n const updatedFields: TMilesonteFormStateField[] = [];\n\n Object.entries(changedFormData?.committed || {}).forEach(entry => {\n const field = entry[0] as keyof IMileStoneFormFields;\n const isFieldCommited = Boolean(entry[1]);\n const newValueOfField = changedFormData[field] ?? prevFormData[field];\n\n const isFieldUpdatedAndCommitted = checkIfCommittedFieldIsUpdated({\n field,\n isFieldCommited,\n prevFormData,\n newValueOfField,\n formDataStateRef: formDataStateRef.current,\n });\n\n if (isFieldUpdatedAndCommitted) {\n let exceptedFields: TMilesonteFormStateField[] = [];\n\n if (currentTestType && currentTestType === 'no-test') {\n exceptedFields = exceptedFields.concat(['board']);\n }\n\n if (!exceptedFields.includes(field)) {\n updatedFields.push(field);\n }\n }\n });\n\n if (updatedFields.length > 0) {\n const isBranchingFieldUpdated = updatedFields.some(field => {\n return BRANCHING_FIELDS.includes(field);\n });\n\n if (isBranchingFieldUpdated) {\n const updatedTree = clearNextFields(\n updatedFormTree,\n prevFormData,\n currentStepName,\n isCurrentStepRoot,\n [],\n );\n\n if (updatedTree)\n return {\n ...updatedTree,\n ...changedFormData,\n committed: {\n ...updatedTree.committed,\n ...changedFormData.committed,\n },\n reviewed: {\n ...updatedReviewed,\n },\n currentFlow: 'CREATE',\n };\n }\n }\n\n return {\n ...prevFormData,\n ...changedFormData,\n committed: {\n ...prevFormData.committed,\n ...changedFormData.committed,\n },\n reviewed: updatedReviewed,\n };\n }\n\n const { committed: prevFormCommitted, reviewed, ...fieldsData } = prevFormData;\n\n return {\n ...fieldsData,\n ...changedFormData,\n committed: {\n ...prevFormCommitted,\n ...changedFormData.committed,\n },\n reviewed: {},\n };\n });\n },\n [setFormData, currentFlow, updatedFormTree, currentStepName, isCurrentStepRoot],\n );\n\n const handleBack = useCallback(() => {\n if (currentStep) {\n const { reset, rollback, isRootNode } = currentStep;\n\n if (isRootNode) {\n handleExit?.();\n\n return;\n }\n\n const data: IMilestoneFormData = {\n committed: {},\n reviewed: {},\n };\n\n if (!GOAL_EDIT_FLOWS.includes(currentFlow)) {\n reset.forEach(field => {\n data[field] = undefined;\n\n return true;\n });\n } else {\n rollback.forEach(field => {\n data.reviewed[field] = undefined;\n });\n }\n rollback.forEach(field => {\n data.committed[field] = undefined;\n });\n\n updateFormData(data);\n }\n }, [currentStep, currentFlow, updateFormData, handleExit]);\n\n return { currentStep, updateFormData, handleBack };\n};\n\nexport {\n useFormDataPrefiller,\n useFormTreeTraversal,\n useMilestoneFormTree,\n useMilestoneInfoTransitionsControl,\n};\n"],"names":["useFormDataPrefiller","formDataProp","schoolData","board","grade","currentCountryCode","flow","formDataState","setFormData","useState","GOAL_EDIT_FLOWS","appendSchoolDataToFormState","generateFormStateWithPrefilledSchoolData","useMilestoneInfoTransitionsControl","userType","studentId","useStudentJourneys","useMilestoneFormTree","isGoalCreation","testType","useMemo","formTreeInfo","CHAPTERS_SELECTION_FORM_TREE","TEST_TYPE_TO_TEST_NAME","addCustomChapter","ADD_CUSTOM_CHAPTERS","setCompletionDate","SET_COMPLETION_DATE","FORM_TREE","useFormTreeTraversal","updatedFormTree","formData","handleExit","formDataStateRef","useRef","currentFlow","currentStep","getCurrenStep","currentStepName","isCurrentStepRoot","updateFormData","useCallback","changedFormData","prevFormData","currentTestType","updatedReviewed","updatedFields","entry","field","isFieldCommited","newValueOfField","checkIfCommittedFieldIsUpdated","exceptedFields","BRANCHING_FIELDS","updatedTree","clearNextFields","prevFormCommitted","reviewed","fieldsData","handleBack","reset","rollback","isRootNode","data"],"mappings":"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"}
1
+ {"version":3,"file":"milestone-create-hooks.js","sources":["../../../../src/features/milestone/create/milestone-create-hooks.ts"],"sourcesContent":["import type IStudentSchool from '../../../types/models/school';\nimport type {\n IFormStep,\n IFormStepProps,\n IMileStoneFormFields,\n IMilestoneConfig,\n IMilestoneFormData,\n TMilestoneFormStateField,\n TMilestoneFormFlow,\n} from './milestone-create-types';\n\nimport { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { TEST_TYPE_TO_TEST_NAME } from '../constants';\nimport { checkIfCommittedFieldIsUpdated } from '../edit/goal-edit-helpers';\nimport { BRANCHING_FIELDS, GOAL_EDIT_FLOWS } from './milestone-create-constants';\nimport FORM_TREE, {\n ADD_CUSTOM_CHAPTERS,\n CHAPTERS_SELECTION_FORM_TREE,\n SET_COMPLETION_DATE,\n} from './milestone-create-form-tree';\nimport {\n appendSchoolDataToFormState,\n clearNextFields,\n generateFormStateWithPrefilledSchoolData,\n getCurrenStep,\n} from './milestone-create-helpers';\n\n//TODO: right now it is for only one step, but should be for all steps in future if needed\nconst useFormDataPrefiller = (\n formDataProp: IMilestoneFormData | undefined,\n {\n schoolData,\n board,\n grade,\n currentCountryCode,\n flow,\n }: {\n grade: string;\n schoolData: IStudentSchool | undefined;\n board: string | undefined;\n config: IMilestoneConfig;\n flow: TMilestoneFormFlow;\n currentCountryCode?: string;\n },\n) => {\n const [formDataState, setFormData] = useState<IMilestoneFormData>(() => {\n if (formDataProp && GOAL_EDIT_FLOWS.includes(flow)) {\n return appendSchoolDataToFormState(formDataProp, schoolData, board, grade);\n }\n\n const formStateWithPrefilledSchoolData = generateFormStateWithPrefilledSchoolData(\n schoolData,\n board,\n grade,\n currentCountryCode,\n );\n\n return {\n ...formStateWithPrefilledSchoolData,\n };\n });\n\n return { formDataState, setFormData };\n};\n\n/**\n * Based on the flow returns the correct modified tree\n */\nconst useMilestoneFormTree = ({\n flow,\n formDataState,\n isGoalCreation,\n}: {\n flow: TMilestoneFormFlow;\n formDataState: IMilestoneFormData;\n isGoalCreation?: boolean;\n}) => {\n const { testType } = formDataState;\n\n const updatedFormTree: IFormStep = useMemo(() => {\n if (GOAL_EDIT_FLOWS.includes(flow) && testType) {\n const formTreeInfo = {\n ...CHAPTERS_SELECTION_FORM_TREE,\n isRootNode: true,\n title: TEST_TYPE_TO_TEST_NAME[testType],\n };\n\n //* Creating a shallow copy as we need to change only first level element.\n const addCustomChapter = Object.assign({}, ADD_CUSTOM_CHAPTERS);\n const setCompletionDate = Object.assign({}, SET_COMPLETION_DATE);\n\n //* To compensate existing milestones chapter addition.\n if (!isGoalCreation) {\n addCustomChapter.buttonLabel = 'Add to learning plan';\n formTreeInfo.buttonLabel = 'Update';\n }\n\n if (flow === 'EDIT') {\n setCompletionDate.buttonLabel = 'Update goal';\n }\n\n if (!isGoalCreation || testType === 'no-test') {\n formTreeInfo.next = [addCustomChapter, setCompletionDate];\n }\n\n return formTreeInfo;\n }\n\n return FORM_TREE;\n }, [flow, testType, isGoalCreation]);\n\n return updatedFormTree;\n};\n\n/**\n * This hook holds the logic to run the traversal of the tree during different flows.\n * While most of the logic is same for all flows, DRAFT_EDIT and DRAFT_REVIEW flows require extra logic where a user can navigate back and forth steps without clearing data.\n * Internally, this hook uses a currentFlow variable which is initially set to the flow but changes to CREATE flow, when certain BRANCHING_FIELDS are edited.\n * BRANCHING_FIELDS are fields on edition of which the flow might change and hence the prefilled data, needs to be cleared.\n * @returns `currentStep` - the current step the tree should be at\n * @returns `updateFormData` - the method to update form data\n * @returns `handleBack` - the method to handle back navigation\n */\nconst useFormTreeTraversal = ({\n flow,\n updatedFormTree,\n formData,\n formDataState,\n setFormData,\n handleExit,\n}: {\n flow: TMilestoneFormFlow;\n updatedFormTree: IFormStep;\n formData: IMilestoneFormData;\n formDataState: IMilestoneFormData;\n setFormData: React.Dispatch<React.SetStateAction<IMilestoneFormData>>;\n handleExit?: () => void;\n}) => {\n const formDataStateRef = useRef(formDataState);\n const currentFlow = formData?.currentFlow ?? flow;\n\n const currentStep = useMemo(\n () => getCurrenStep(updatedFormTree, formData, currentFlow),\n [updatedFormTree, formData, currentFlow],\n );\n\n const currentStepName = currentStep?.name;\n const isCurrentStepRoot = Boolean(currentStep?.isRootNode);\n\n const updateFormData = useCallback<IFormStepProps['onFormDataChange']>(\n changedFormData => {\n setFormData(prevFormData => {\n const currentTestType = prevFormData.testType;\n\n if (GOAL_EDIT_FLOWS.includes(currentFlow)) {\n const updatedReviewed = {\n ...prevFormData.committed,\n ...changedFormData.committed,\n };\n const updatedFields: TMilestoneFormStateField[] = [];\n\n Object.entries(changedFormData?.committed || {}).forEach(entry => {\n const field = entry[0] as keyof IMileStoneFormFields;\n const isFieldCommited = Boolean(entry[1]);\n const newValueOfField = changedFormData[field] ?? prevFormData[field];\n\n const isFieldUpdatedAndCommitted = checkIfCommittedFieldIsUpdated({\n field,\n isFieldCommited,\n prevFormData,\n newValueOfField,\n formDataStateRef: formDataStateRef.current,\n });\n\n if (isFieldUpdatedAndCommitted) {\n let exceptedFields: TMilestoneFormStateField[] = [];\n\n if (currentTestType && currentTestType === 'no-test') {\n exceptedFields = exceptedFields.concat(['board']);\n }\n\n if (!exceptedFields.includes(field)) {\n updatedFields.push(field);\n }\n }\n });\n\n if (updatedFields.length > 0) {\n const isBranchingFieldUpdated = updatedFields.some(field => {\n return BRANCHING_FIELDS.includes(field);\n });\n\n if (isBranchingFieldUpdated) {\n const updatedTree = clearNextFields(\n updatedFormTree,\n prevFormData,\n currentStepName,\n isCurrentStepRoot,\n [],\n );\n\n if (updatedTree)\n return {\n ...updatedTree,\n ...changedFormData,\n committed: {\n ...updatedTree.committed,\n ...changedFormData.committed,\n },\n reviewed: {\n ...updatedReviewed,\n },\n currentFlow: 'CREATE',\n };\n }\n }\n\n return {\n ...prevFormData,\n ...changedFormData,\n committed: {\n ...prevFormData.committed,\n ...changedFormData.committed,\n },\n reviewed: updatedReviewed,\n };\n }\n\n const { committed: prevFormCommitted, reviewed, ...fieldsData } = prevFormData;\n\n return {\n ...fieldsData,\n ...changedFormData,\n committed: {\n ...prevFormCommitted,\n ...changedFormData.committed,\n },\n reviewed: {},\n };\n });\n },\n [setFormData, currentFlow, updatedFormTree, currentStepName, isCurrentStepRoot],\n );\n\n const handleBack = useCallback(() => {\n if (currentStep) {\n const { reset, rollback, isRootNode } = currentStep;\n\n if (isRootNode) {\n handleExit?.();\n\n return;\n }\n\n const data: IMilestoneFormData = {\n committed: {},\n reviewed: {},\n };\n\n if (!GOAL_EDIT_FLOWS.includes(currentFlow)) {\n reset.forEach(field => {\n data[field] = undefined;\n\n return true;\n });\n } else {\n rollback.forEach(field => {\n data.reviewed[field] = undefined;\n });\n }\n rollback.forEach(field => {\n data.committed[field] = undefined;\n });\n\n updateFormData(data);\n }\n }, [currentStep, currentFlow, updateFormData, handleExit]);\n\n return { currentStep, updateFormData, handleBack };\n};\n\nexport { useFormDataPrefiller, useFormTreeTraversal, useMilestoneFormTree };\n"],"names":["useFormDataPrefiller","formDataProp","schoolData","board","grade","currentCountryCode","flow","formDataState","setFormData","useState","GOAL_EDIT_FLOWS","appendSchoolDataToFormState","generateFormStateWithPrefilledSchoolData","useMilestoneFormTree","isGoalCreation","testType","useMemo","formTreeInfo","CHAPTERS_SELECTION_FORM_TREE","TEST_TYPE_TO_TEST_NAME","addCustomChapter","ADD_CUSTOM_CHAPTERS","setCompletionDate","SET_COMPLETION_DATE","FORM_TREE","useFormTreeTraversal","updatedFormTree","formData","handleExit","formDataStateRef","useRef","currentFlow","currentStep","getCurrenStep","currentStepName","isCurrentStepRoot","updateFormData","useCallback","changedFormData","prevFormData","currentTestType","updatedReviewed","updatedFields","entry","field","isFieldCommited","newValueOfField","checkIfCommittedFieldIsUpdated","exceptedFields","BRANCHING_FIELDS","updatedTree","clearNextFields","prevFormCommitted","reviewed","fieldsData","handleBack","reset","rollback","isRootNode","data"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import r from "styled-components";
2
2
  import n from "../../ui/layout/flex-view.js";
3
- const d = r.div(
4
- ({ $height: o, $viewMode: t, $minHeight: e }) => `
3
+ const l = r.div(
4
+ ({ $height: o, $viewMode: e, $minHeight: t }) => `
5
5
  display: flex;
6
6
  flex-direction: column;
7
7
  height: ${o ? typeof o == "number" ? `${o}px` : `${o}` : "auto"};
8
- min-height: ${e || "auto"};
9
- ${t ? `
8
+ min-height: ${t || "auto"};
9
+ ${e ? `
10
10
  cursor: not-allowed;
11
11
  border: 2px solid black;
12
12
  border-radius: 8px;
@@ -16,8 +16,8 @@ const d = r.div(
16
16
  }
17
17
  ` : ""}
18
18
  `
19
- ), l = r.div(
20
- ({ theme: o, $viewMode: t }) => `
19
+ ), d = r.div(
20
+ ({ theme: o, $viewMode: e }) => `
21
21
  position: relative;
22
22
  display: flex;
23
23
  flex-direction: column;
@@ -25,7 +25,7 @@ const d = r.div(
25
25
  margin-bottom: ${o.layout.gutter * 0.5}px;
26
26
  border: 1px solid ${o.colors.GREY_1};
27
27
  border-radius: ${o.layout.gutter * 0.75}px;
28
- ${t ? `
28
+ ${e ? `
29
29
  pointer-events: none;
30
30
  // opacity: 0.85;
31
31
  ` : ""}
@@ -45,34 +45,25 @@ const d = r.div(
45
45
  position: fixed;
46
46
  bottom: 24px;
47
47
  right: 24px;
48
- `);
49
- r.div(({ theme: o }) => {
50
- const { gutter: t } = o.layout;
51
- return `
52
- position: absolute;
53
- top: ${t * 2}px;
54
- left: ${t * 1.5}px;
55
- `;
56
- });
57
- const x = r.img(({ theme: o, $backgroundColor: t }) => {
48
+ `), x = r.img(({ theme: o, $backgroundColor: e }) => {
58
49
  const {
59
- layout: { gutter: e },
50
+ layout: { gutter: t },
60
51
  colors: i
61
52
  } = o;
62
53
  return `
63
- width: ${e * 6}px;
64
- height: ${e * 6}px;
65
- background: ${i[t]};
66
- border-radius: ${e * 0.5}px;
54
+ width: ${t * 6}px;
55
+ height: ${t * 6}px;
56
+ background: ${i[e]};
57
+ border-radius: ${t * 0.5}px;
67
58
  `;
68
- }), f = r(n)(({ theme: o, $viewMode: t }) => {
59
+ }), f = r(n)(({ theme: o, $viewMode: e }) => {
69
60
  const {
70
- layout: { gutter: e }
61
+ layout: { gutter: t }
71
62
  } = o;
72
63
  return `
73
64
  position:relative;
74
- min-height:${e * 2.75}px;
75
- ${t ? `
65
+ min-height:${t * 2.75}px;
66
+ ${e ? `
76
67
  pointer-events: none;
77
68
  opacity: 0.85;
78
69
  ` : ""}
@@ -81,20 +72,15 @@ const x = r.img(({ theme: o, $backgroundColor: t }) => {
81
72
  position: absolute;
82
73
  left: 50%;
83
74
  transform: translateX(-50%);
84
- `, b = r(n)`
85
- border-radius: 0 0 8px 8px;
86
- margin: auto;
87
- width: 328px;
88
75
  `;
89
76
  export {
90
- l as BodyContainer,
91
- d as Container,
77
+ d as BodyContainer,
78
+ l as Container,
92
79
  a as ContentContainer,
93
80
  c as FooterWrapper,
94
81
  u as HeaderContainer,
95
82
  f as HeaderWrapper,
96
83
  x as RadioCardIcon,
97
- $ as StepperWrapper,
98
- b as SyncIndicator
84
+ $ as StepperWrapper
99
85
  };
100
86
  //# sourceMappingURL=milestone-create-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"milestone-create-styled.js","sources":["../../../../src/features/milestone/create/milestone-create-styled.tsx"],"sourcesContent":["import type { TColorNames } from '../../ui/types';\n\nimport styled from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\n\ninterface ContainerProps {\n $height?: string | number;\n $minHeight?: string;\n $viewMode: boolean;\n}\n\nconst Container = styled.div<ContainerProps>(\n ({ $height, $viewMode, $minHeight }) => `\n display: flex;\n flex-direction: column;\n height: ${$height ? (typeof $height === 'number' ? `${$height}px` : `${$height}`) : 'auto'};\n min-height: ${$minHeight ? $minHeight : 'auto'};\n ${\n $viewMode\n ? `\n cursor: not-allowed;\n border: 2px solid black;\n border-radius: 8px;\n transform: scale3d(.9943, .9900, 1);\n & ${ContentContainer} {\n pointer-events: auto;\n }\n `\n : ``\n }\n`,\n);\n\nconst BodyContainer = styled.div<{ $viewMode?: boolean }>(\n ({ theme, $viewMode }) => `\n position: relative;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n margin-bottom: ${theme.layout.gutter * 0.5}px;\n border: 1px solid ${theme.colors.GREY_1};\n border-radius: ${theme.layout.gutter * 0.75}px;\n ${\n $viewMode\n ? `\n pointer-events: none;\n // opacity: 0.85;\n `\n : ``\n }\n`,\n);\n\ninterface IContentContainer {\n $overflowHidden?: boolean;\n}\n\nconst ContentContainer = styled.div<IContentContainer>(({ $overflowHidden }) => {\n return `\n flex-grow: 1;\n overflow-y: auto;\n\n ${$overflowHidden && 'overflow: hidden'};\n `;\n});\n\nconst HeaderContainer = styled(FlexView)(({ theme }) => {\n return `\n position: sticky;\n top: 0;\n z-index: 2;\n border-bottom: 1px solid ${theme.colors.WHITE_5};\n `;\n});\n\nconst FooterWrapper = styled(FlexView)(() => {\n return `\n align-self: flex-end;\n position: fixed;\n bottom: 24px;\n right: 24px;\n `;\n});\n\nconst BackButtonWrapper = styled.div(({ theme }) => {\n const { gutter } = theme.layout;\n\n return `\n position: absolute;\n top: ${gutter * 2}px;\n left: ${gutter * 1.5}px;\n `;\n});\n\ninterface IRadioCardIconProps {\n $backgroundColor: TColorNames;\n}\n\nconst RadioCardIcon = styled.img<IRadioCardIconProps>(({ theme, $backgroundColor }) => {\n const {\n layout: { gutter },\n colors,\n } = theme;\n\n return `\n width: ${gutter * 6}px;\n height: ${gutter * 6}px;\n background: ${colors[$backgroundColor]};\n border-radius: ${gutter * 0.5}px;\n `;\n});\n\nconst HeaderWrapper = styled(FlexView)<{ $viewMode?: boolean }>(({ theme, $viewMode }) => {\n const {\n layout: { gutter },\n } = theme;\n\n return `\n position:relative;\n min-height:${gutter * 2.75}px;\n ${\n $viewMode\n ? `\n pointer-events: none;\n opacity: 0.85;\n `\n : ``\n }\n`;\n});\n\nconst StepperWrapper = styled.div`\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n`;\n\nconst SyncIndicator = styled(FlexView)`\n border-radius: 0 0 8px 8px;\n margin: auto;\n width: 328px;\n`;\n\nexport {\n Container,\n BodyContainer,\n ContentContainer,\n HeaderContainer,\n FooterWrapper,\n BackButtonWrapper,\n RadioCardIcon,\n StepperWrapper,\n HeaderWrapper,\n SyncIndicator,\n};\n"],"names":["Container","styled","$height","$viewMode","$minHeight","ContentContainer","BodyContainer","theme","$overflowHidden","HeaderContainer","FlexView","FooterWrapper","gutter","RadioCardIcon","$backgroundColor","colors","HeaderWrapper","StepperWrapper","SyncIndicator"],"mappings":";;AAYA,MAAMA,IAAYC,EAAO;AAAA,EACvB,CAAC,EAAE,SAAAC,GAAS,WAAAC,GAAW,YAAAC,EAAiB,MAAA;AAAA;AAAA;AAAA,YAG9BF,IAAW,OAAOA,KAAY,WAAW,GAAGA,CAAO,OAAO,GAAGA,CAAO,KAAM,MAAM;AAAA,gBAC5EE,KAA0B,MAAM;AAAA,IAE5CD,IACI;AAAA;AAAA;AAAA;AAAA;AAAA,YAKIE,CAAgB;AAAA;AAAA;AAAA,UAIpB,EACN;AAAA;AAEF,GAEMC,IAAgBL,EAAO;AAAA,EAC3B,CAAC,EAAE,OAAAM,GAAO,WAAAJ,EAAA,MAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,mBAKTI,EAAM,OAAO,SAAS,GAAG;AAAA,sBACtBA,EAAM,OAAO,MAAM;AAAA,mBACtBA,EAAM,OAAO,SAAS,IAAI;AAAA,IAEzCJ,IACI;AAAA;AAAA;AAAA,UAIA,EACN;AAAA;AAEF,GAMME,IAAmBJ,EAAO,IAAuB,CAAC,EAAE,iBAAAO,QACjD;AAAA;AAAA;AAAA;AAAA,MAIHA,KAAmB,kBAAkB;AAAA,GAE1C,GAEKC,IAAkBR,EAAOS,CAAQ,EAAE,CAAC,EAAE,OAAAH,QACnC;AAAA;AAAA;AAAA;AAAA,+BAIsBA,EAAM,OAAO,OAAO;AAAA,GAElD,GAEKI,IAAgBV,EAAOS,CAAQ,EAAE,MAC9B;AAAA;AAAA;AAAA;AAAA;AAAA,KAMR;AAEyBT,EAAO,IAAI,CAAC,EAAE,OAAAM,QAAY;AAC5C,QAAA,EAAE,QAAAK,EAAO,IAAIL,EAAM;AAElB,SAAA;AAAA;AAAA,WAEEK,IAAS,CAAC;AAAA,YACTA,IAAS,GAAG;AAAA;AAExB,CAAC;AAMD,MAAMC,IAAgBZ,EAAO,IAAyB,CAAC,EAAE,OAAAM,GAAO,kBAAAO,QAAuB;AAC/E,QAAA;AAAA,IACJ,QAAQ,EAAE,QAAAF,EAAO;AAAA,IACjB,QAAAG;AAAA,EACE,IAAAR;AAEG,SAAA;AAAA,aACIK,IAAS,CAAC;AAAA,cACTA,IAAS,CAAC;AAAA,kBACNG,EAAOD,CAAgB,CAAC;AAAA,qBACrBF,IAAS,GAAG;AAAA;AAEjC,CAAC,GAEKI,IAAgBf,EAAOS,CAAQ,EAA2B,CAAC,EAAE,OAAAH,GAAO,WAAAJ,QAAgB;AAClF,QAAA;AAAA,IACJ,QAAQ,EAAE,QAAAS,EAAO;AAAA,EACf,IAAAL;AAEG,SAAA;AAAA;AAAA,iBAEQK,IAAS,IAAI;AAAA,MAExBT,IACI;AAAA;AAAA;AAAA,YAIA,EACN;AAAA;AAEJ,CAAC,GAEKc,IAAiBhB,EAAO;AAAA;AAAA;AAAA;AAAA,GAMxBiB,IAAgBjB,EAAOS,CAAQ;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"milestone-create-styled.js","sources":["../../../../src/features/milestone/create/milestone-create-styled.tsx"],"sourcesContent":["import type { TColorNames } from '../../ui/types';\n\nimport styled from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\n\ninterface ContainerProps {\n $height?: string | number;\n $minHeight?: string;\n $viewMode: boolean;\n}\n\nconst Container = styled.div<ContainerProps>(\n ({ $height, $viewMode, $minHeight }) => `\n display: flex;\n flex-direction: column;\n height: ${$height ? (typeof $height === 'number' ? `${$height}px` : `${$height}`) : 'auto'};\n min-height: ${$minHeight ? $minHeight : 'auto'};\n ${\n $viewMode\n ? `\n cursor: not-allowed;\n border: 2px solid black;\n border-radius: 8px;\n transform: scale3d(.9943, .9900, 1);\n & ${ContentContainer} {\n pointer-events: auto;\n }\n `\n : ``\n }\n`,\n);\n\nconst BodyContainer = styled.div<{ $viewMode?: boolean }>(\n ({ theme, $viewMode }) => `\n position: relative;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n margin-bottom: ${theme.layout.gutter * 0.5}px;\n border: 1px solid ${theme.colors.GREY_1};\n border-radius: ${theme.layout.gutter * 0.75}px;\n ${\n $viewMode\n ? `\n pointer-events: none;\n // opacity: 0.85;\n `\n : ``\n }\n`,\n);\n\ninterface IContentContainer {\n $overflowHidden?: boolean;\n}\n\nconst ContentContainer = styled.div<IContentContainer>(({ $overflowHidden }) => {\n return `\n flex-grow: 1;\n overflow-y: auto;\n\n ${$overflowHidden && 'overflow: hidden'};\n `;\n});\n\nconst HeaderContainer = styled(FlexView)(({ theme }) => {\n return `\n position: sticky;\n top: 0;\n z-index: 2;\n border-bottom: 1px solid ${theme.colors.WHITE_5};\n `;\n});\n\nconst FooterWrapper = styled(FlexView)(() => {\n return `\n align-self: flex-end;\n position: fixed;\n bottom: 24px;\n right: 24px;\n `;\n});\n\ninterface IRadioCardIconProps {\n $backgroundColor: TColorNames;\n}\n\nconst RadioCardIcon = styled.img<IRadioCardIconProps>(({ theme, $backgroundColor }) => {\n const {\n layout: { gutter },\n colors,\n } = theme;\n\n return `\n width: ${gutter * 6}px;\n height: ${gutter * 6}px;\n background: ${colors[$backgroundColor]};\n border-radius: ${gutter * 0.5}px;\n `;\n});\n\nconst HeaderWrapper = styled(FlexView)<{ $viewMode?: boolean }>(({ theme, $viewMode }) => {\n const {\n layout: { gutter },\n } = theme;\n\n return `\n position:relative;\n min-height:${gutter * 2.75}px;\n ${\n $viewMode\n ? `\n pointer-events: none;\n opacity: 0.85;\n `\n : ``\n }\n`;\n});\n\nconst StepperWrapper = styled.div`\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n`;\n\nexport {\n Container,\n BodyContainer,\n ContentContainer,\n HeaderContainer,\n FooterWrapper,\n RadioCardIcon,\n StepperWrapper,\n HeaderWrapper,\n};\n"],"names":["Container","styled","$height","$viewMode","$minHeight","ContentContainer","BodyContainer","theme","$overflowHidden","HeaderContainer","FlexView","FooterWrapper","RadioCardIcon","$backgroundColor","gutter","colors","HeaderWrapper","StepperWrapper"],"mappings":";;AAYA,MAAMA,IAAYC,EAAO;AAAA,EACvB,CAAC,EAAE,SAAAC,GAAS,WAAAC,GAAW,YAAAC,EAAiB,MAAA;AAAA;AAAA;AAAA,YAG9BF,IAAW,OAAOA,KAAY,WAAW,GAAGA,CAAO,OAAO,GAAGA,CAAO,KAAM,MAAM;AAAA,gBAC5EE,KAA0B,MAAM;AAAA,IAE5CD,IACI;AAAA;AAAA;AAAA;AAAA;AAAA,YAKIE,CAAgB;AAAA;AAAA;AAAA,UAIpB,EACN;AAAA;AAEF,GAEMC,IAAgBL,EAAO;AAAA,EAC3B,CAAC,EAAE,OAAAM,GAAO,WAAAJ,EAAA,MAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,mBAKTI,EAAM,OAAO,SAAS,GAAG;AAAA,sBACtBA,EAAM,OAAO,MAAM;AAAA,mBACtBA,EAAM,OAAO,SAAS,IAAI;AAAA,IAEzCJ,IACI;AAAA;AAAA;AAAA,UAIA,EACN;AAAA;AAEF,GAMME,IAAmBJ,EAAO,IAAuB,CAAC,EAAE,iBAAAO,QACjD;AAAA;AAAA;AAAA;AAAA,MAIHA,KAAmB,kBAAkB;AAAA,GAE1C,GAEKC,IAAkBR,EAAOS,CAAQ,EAAE,CAAC,EAAE,OAAAH,QACnC;AAAA;AAAA;AAAA;AAAA,+BAIsBA,EAAM,OAAO,OAAO;AAAA,GAElD,GAEKI,IAAgBV,EAAOS,CAAQ,EAAE,MAC9B;AAAA;AAAA;AAAA;AAAA;AAAA,KAMR,GAMKE,IAAgBX,EAAO,IAAyB,CAAC,EAAE,OAAAM,GAAO,kBAAAM,QAAuB;AAC/E,QAAA;AAAA,IACJ,QAAQ,EAAE,QAAAC,EAAO;AAAA,IACjB,QAAAC;AAAA,EACE,IAAAR;AAEG,SAAA;AAAA,aACIO,IAAS,CAAC;AAAA,cACTA,IAAS,CAAC;AAAA,kBACNC,EAAOF,CAAgB,CAAC;AAAA,qBACrBC,IAAS,GAAG;AAAA;AAEjC,CAAC,GAEKE,IAAgBf,EAAOS,CAAQ,EAA2B,CAAC,EAAE,OAAAH,GAAO,WAAAJ,QAAgB;AAClF,QAAA;AAAA,IACJ,QAAQ,EAAE,QAAAW,EAAO;AAAA,EACf,IAAAP;AAEG,SAAA;AAAA;AAAA,iBAEQO,IAAS,IAAI;AAAA,MAExBX,IACI;AAAA;AAAA;AAAA,YAIA,EACN;AAAA;AAEJ,CAAC,GAEKc,IAAiBhB,EAAO;AAAA;AAAA;AAAA;AAAA;"}
@@ -1,93 +1,74 @@
1
- import { jsx as r, jsxs as I } from "react/jsx-runtime";
2
- import { memo as V, useMemo as Y, useEffect as H } from "react";
3
- import K from "../../ui/text/text.js";
4
- import N from "./milestone-create-components-map.js";
5
- import O from "./milestone-create-context.js";
6
- import { useFormDataPrefiller as R, useMilestoneFormTree as U, useFormTreeTraversal as W } from "./milestone-create-hooks.js";
7
- import { Container as _, SyncIndicator as q, BodyContainer as z } from "./milestone-create-styled.js";
8
- const re = V(
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { memo as H, useMemo as R, useEffect as q } from "react";
3
+ import y from "./milestone-create-components-map.js";
4
+ import z from "./milestone-create-context.js";
5
+ import { useFormDataPrefiller as A, useMilestoneFormTree as I, useFormTreeTraversal as J } from "./milestone-create-hooks.js";
6
+ import { Container as K, BodyContainer as L } from "./milestone-create-styled.js";
7
+ const Y = H(
9
8
  ({
10
- studentName: $,
11
- studentId: v,
9
+ studentName: M,
10
+ studentId: l,
12
11
  height: x,
13
- minHeight: M,
14
- formData: m,
15
- config: c,
12
+ minHeight: S,
13
+ formData: n,
14
+ config: a,
16
15
  onChapterExitWarning: h,
17
16
  onFormDataChange: e,
18
- onPreSubmit: S,
19
- onExit: T,
20
- userType: C,
21
- board: b,
22
- schoolData: w,
23
- grade: y,
24
- journeysToInclude: D = [],
25
- isFirstMilestoneCreated: E = !0,
17
+ onPreSubmit: $,
18
+ onExit: C,
19
+ board: F,
20
+ schoolData: P,
21
+ grade: T,
26
22
  flow: t,
27
- milestoneId: j,
23
+ milestoneId: b,
28
24
  currentCountryCode: B,
29
- isGoalCreation: a,
30
- courseStream: F,
31
- classRatio: L,
25
+ isGoalCreation: c,
26
+ courseStream: D,
27
+ classRatio: E,
32
28
  enrollmentType: d
33
29
  }) => {
34
- const { formDataState: i, setFormData: P } = R(m, {
35
- schoolData: w,
36
- board: b,
37
- grade: y,
38
- config: c,
39
- journeysToInclude: D,
30
+ const { formDataState: i, setFormData: V } = A(n, {
31
+ schoolData: P,
32
+ board: F,
33
+ grade: T,
34
+ config: a,
40
35
  flow: t,
41
36
  currentCountryCode: B
42
- }), g = U({
43
- isFirstMilestoneCreated: E,
37
+ }), j = I({
44
38
  flow: t,
45
39
  formDataState: i,
46
- isGoalCreation: a
47
- }), o = e ? i : m, n = e ? "edit" : "view", u = n === "view", { currentStep: s, updateFormData: k, handleBack: p } = W({
40
+ isGoalCreation: c
41
+ }), o = e ? i : n, m = e ? "edit" : "view", u = m === "view", { currentStep: s, updateFormData: k, handleBack: p } = J({
48
42
  flow: t,
49
- updatedFormTree: g,
43
+ updatedFormTree: j,
50
44
  formData: o,
51
45
  formDataState: i,
52
- setFormData: P,
53
- handleExit: T
54
- }), { name: l } = s || {}, f = l ? N[l] : void 0, A = Y(() => ({ handleBack: p, mode: n, flow: t }), [p, n, t]);
55
- return H(() => {
46
+ setFormData: V,
47
+ handleExit: C
48
+ }), { name: v } = s || {}, f = v ? y[v] : void 0, w = R(() => ({ handleBack: p, mode: m, flow: t }), [p, m, t]);
49
+ return q(() => {
56
50
  e && e(o);
57
- }, [o, e]), /* @__PURE__ */ r(O.Provider, { value: A, children: /* @__PURE__ */ I(_, { $height: x, $minHeight: M, $viewMode: u, children: [
58
- C === "STUDENT" && /* @__PURE__ */ r(
59
- q,
60
- {
61
- $gutter: 16,
62
- $flexDirection: "row",
63
- $alignItems: "center",
64
- $background: "BLACK",
65
- $justifyContent: "center",
66
- children: /* @__PURE__ */ r(K, { $color: "YELLOW_4", $renderAs: "eyebrow2", children: "You are viewing your teacher’s screen" })
67
- }
68
- ),
69
- /* @__PURE__ */ r(z, { $viewMode: u, children: f && s && d ? /* @__PURE__ */ r(
70
- f,
71
- {
72
- studentName: $,
73
- currentStep: s,
74
- isGoalCreation: a,
75
- config: c,
76
- formData: o,
77
- onFormDataChange: k,
78
- onChapterExitWarning: h,
79
- studentId: v,
80
- onPreSubmit: S,
81
- milestoneId: j,
82
- courseStream: F,
83
- classRatio: L || 0,
84
- enrollmentType: d
85
- }
86
- ) : void 0 })
87
- ] }) });
51
+ }, [o, e]), /* @__PURE__ */ r(z.Provider, { value: w, children: /* @__PURE__ */ r(K, { $height: x, $minHeight: S, $viewMode: u, children: /* @__PURE__ */ r(L, { $viewMode: u, children: f && s && d ? /* @__PURE__ */ r(
52
+ f,
53
+ {
54
+ studentName: M,
55
+ currentStep: s,
56
+ isGoalCreation: c,
57
+ config: a,
58
+ formData: o,
59
+ onFormDataChange: k,
60
+ onChapterExitWarning: h,
61
+ studentId: l,
62
+ onPreSubmit: $,
63
+ milestoneId: b,
64
+ courseStream: D,
65
+ classRatio: E || 0,
66
+ enrollmentType: d
67
+ }
68
+ ) : void 0 }) }) });
88
69
  }
89
70
  );
90
71
  export {
91
- re as default
72
+ Y as default
92
73
  };
93
74
  //# sourceMappingURL=milestone-create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"milestone-create.js","sources":["../../../../src/features/milestone/create/milestone-create.tsx"],"sourcesContent":["import type { MileStoneJourneyMode } from './milestone-create-context';\nimport type { IMileStoneCreateProps, IMilestoneFormData } from './milestone-create-types';\n\nimport React, { memo, useEffect, useMemo } from 'react';\n\nimport Text from '../../ui/text/text';\nimport ComponentsMap from './milestone-create-components-map';\nimport MilestoneCreateContext from './milestone-create-context';\nimport {\n useFormDataPrefiller,\n useFormTreeTraversal,\n useMilestoneFormTree,\n} from './milestone-create-hooks';\nimport { BodyContainer, Container, SyncIndicator } from './milestone-create-styled';\n\nconst MilestoneCreate: React.FC<IMileStoneCreateProps> = memo(\n ({\n studentName,\n studentId,\n height,\n minHeight,\n formData: formDataProp,\n config,\n onChapterExitWarning,\n onFormDataChange,\n onPreSubmit: handlePreSubmit,\n onExit: handleExit,\n userType,\n board,\n schoolData,\n grade,\n journeysToInclude = [],\n isFirstMilestoneCreated = true,\n flow,\n milestoneId,\n currentCountryCode,\n isGoalCreation,\n courseStream,\n classRatio,\n enrollmentType,\n }) => {\n const { formDataState, setFormData } = useFormDataPrefiller(formDataProp, {\n schoolData,\n board,\n grade,\n config,\n journeysToInclude,\n flow,\n currentCountryCode,\n });\n\n const updatedFormTree = useMilestoneFormTree({\n isFirstMilestoneCreated,\n flow,\n formDataState,\n isGoalCreation,\n });\n\n const formData = (onFormDataChange ? formDataState : formDataProp) as IMilestoneFormData; //TODO: make better\n\n const mode: MileStoneJourneyMode = onFormDataChange ? 'edit' : 'view';\n const isViewMode = mode === 'view';\n\n const { currentStep, updateFormData, handleBack } = useFormTreeTraversal({\n flow,\n updatedFormTree,\n formData,\n formDataState,\n setFormData,\n handleExit,\n });\n\n const { name } = currentStep || {};\n const StepComponent = name ? ComponentsMap[name] : undefined;\n\n const contextValue = useMemo(() => ({ handleBack, mode, flow }), [handleBack, mode, flow]);\n\n useEffect(() => {\n if (onFormDataChange) {\n onFormDataChange(formData);\n }\n }, [formData, onFormDataChange]);\n\n return (\n <MilestoneCreateContext.Provider value={contextValue}>\n <Container $height={height} $minHeight={minHeight} $viewMode={isViewMode}>\n {userType === 'STUDENT' && (\n <SyncIndicator\n $gutter={16}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $background=\"BLACK\"\n $justifyContent=\"center\"\n >\n <Text $color=\"YELLOW_4\" $renderAs=\"eyebrow2\">\n You are viewing your teacher’s screen\n </Text>\n </SyncIndicator>\n )}\n\n <BodyContainer $viewMode={isViewMode}>\n {StepComponent && currentStep && enrollmentType ? (\n <StepComponent\n studentName={studentName}\n currentStep={currentStep}\n isGoalCreation={isGoalCreation}\n config={config}\n formData={formData}\n onFormDataChange={updateFormData}\n onChapterExitWarning={onChapterExitWarning}\n studentId={studentId}\n onPreSubmit={handlePreSubmit}\n milestoneId={milestoneId}\n courseStream={courseStream}\n classRatio={classRatio || 0}\n enrollmentType={enrollmentType}\n />\n ) : undefined}\n </BodyContainer>\n </Container>\n </MilestoneCreateContext.Provider>\n );\n },\n);\n\nexport default MilestoneCreate;\n"],"names":["MilestoneCreate","memo","studentName","studentId","height","minHeight","formDataProp","config","onChapterExitWarning","onFormDataChange","handlePreSubmit","handleExit","userType","board","schoolData","grade","journeysToInclude","isFirstMilestoneCreated","flow","milestoneId","currentCountryCode","isGoalCreation","courseStream","classRatio","enrollmentType","formDataState","setFormData","useFormDataPrefiller","updatedFormTree","useMilestoneFormTree","formData","mode","isViewMode","currentStep","updateFormData","handleBack","useFormTreeTraversal","name","StepComponent","ComponentsMap","contextValue","useMemo","useEffect","jsx","MilestoneCreateContext","jsxs","Container","SyncIndicator","Text","BodyContainer"],"mappings":";;;;;;;AAeA,MAAMA,KAAmDC;AAAA,EACvD,CAAC;AAAA,IACC,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAUC;AAAA,IACV,QAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,aAAaC;AAAA,IACb,QAAQC;AAAA,IACR,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,OAAAC;AAAA,IACA,mBAAAC,IAAoB,CAAC;AAAA,IACrB,yBAAAC,IAA0B;AAAA,IAC1B,MAAAC;AAAA,IACA,aAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,MACI;AACJ,UAAM,EAAE,eAAAC,GAAe,aAAAC,MAAgBC,EAAqBrB,GAAc;AAAA,MACxE,YAAAQ;AAAA,MACA,OAAAD;AAAA,MACA,OAAAE;AAAA,MACA,QAAAR;AAAA,MACA,mBAAAS;AAAA,MACA,MAAAE;AAAA,MACA,oBAAAE;AAAA,IAAA,CACD,GAEKQ,IAAkBC,EAAqB;AAAA,MAC3C,yBAAAZ;AAAA,MACA,MAAAC;AAAA,MACA,eAAAO;AAAA,MACA,gBAAAJ;AAAA,IAAA,CACD,GAEKS,IAAYrB,IAAmBgB,IAAgBnB,GAE/CyB,IAA6BtB,IAAmB,SAAS,QACzDuB,IAAaD,MAAS,QAEtB,EAAE,aAAAE,GAAa,gBAAAC,GAAgB,YAAAC,EAAA,IAAeC,EAAqB;AAAA,MACvE,MAAAlB;AAAA,MACA,iBAAAU;AAAA,MACA,UAAAE;AAAA,MACA,eAAAL;AAAA,MACA,aAAAC;AAAA,MACA,YAAAf;AAAA,IAAA,CACD,GAEK,EAAE,MAAA0B,EAAA,IAASJ,KAAe,IAC1BK,IAAgBD,IAAOE,EAAcF,CAAI,IAAI,QAE7CG,IAAeC,EAAQ,OAAO,EAAE,YAAAN,GAAY,MAAAJ,GAAM,MAAAb,EAAK,IAAI,CAACiB,GAAYJ,GAAMb,CAAI,CAAC;AAEzF,WAAAwB,EAAU,MAAM;AACd,MAAIjC,KACFA,EAAiBqB,CAAQ;AAAA,IAC3B,GACC,CAACA,GAAUrB,CAAgB,CAAC,GAG5B,gBAAAkC,EAAAC,EAAuB,UAAvB,EAAgC,OAAOJ,GACtC,UAAC,gBAAAK,EAAAC,GAAA,EAAU,SAAS1C,GAAQ,YAAYC,GAAW,WAAW2B,GAC3D,UAAA;AAAA,MAAApB,MAAa,aACZ,gBAAA+B;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,SAAS;AAAA,UACT,gBAAe;AAAA,UACf,aAAY;AAAA,UACZ,aAAY;AAAA,UACZ,iBAAgB;AAAA,UAEhB,4BAACC,GAAK,EAAA,QAAO,YAAW,WAAU,YAAW,UAE7C,yCAAA;AAAA,QAAA;AAAA,MACF;AAAA,wBAGDC,GAAc,EAAA,WAAWjB,GACvB,UAAAM,KAAiBL,KAAeT,IAC/B,gBAAAmB;AAAA,QAACL;AAAA,QAAA;AAAA,UACC,aAAApC;AAAA,UACA,aAAA+B;AAAA,UACA,gBAAAZ;AAAA,UACA,QAAAd;AAAA,UACA,UAAAuB;AAAA,UACA,kBAAkBI;AAAA,UAClB,sBAAA1B;AAAA,UACA,WAAAL;AAAA,UACA,aAAaO;AAAA,UACb,aAAAS;AAAA,UACA,cAAAG;AAAA,UACA,YAAYC,KAAc;AAAA,UAC1B,gBAAAC;AAAA,QAAA;AAAA,MAAA,IAEA,OACN,CAAA;AAAA,IAAA,EACF,CAAA,EACF,CAAA;AAAA,EAEJ;AACF;"}
1
+ {"version":3,"file":"milestone-create.js","sources":["../../../../src/features/milestone/create/milestone-create.tsx"],"sourcesContent":["import type { MileStoneJourneyMode } from './milestone-create-context';\nimport type { IMileStoneCreateProps, IMilestoneFormData } from './milestone-create-types';\n\nimport React, { memo, useEffect, useMemo } from 'react';\n\nimport ComponentsMap from './milestone-create-components-map';\nimport MilestoneCreateContext from './milestone-create-context';\nimport {\n useFormDataPrefiller,\n useFormTreeTraversal,\n useMilestoneFormTree,\n} from './milestone-create-hooks';\nimport { BodyContainer, Container } from './milestone-create-styled';\n\nconst MilestoneCreate: React.FC<IMileStoneCreateProps> = memo(\n ({\n studentName,\n studentId,\n height,\n minHeight,\n formData: formDataProp,\n config,\n onChapterExitWarning,\n onFormDataChange,\n onPreSubmit: handlePreSubmit,\n onExit: handleExit,\n board,\n schoolData,\n grade,\n flow,\n milestoneId,\n currentCountryCode,\n isGoalCreation,\n courseStream,\n classRatio,\n enrollmentType,\n }) => {\n const { formDataState, setFormData } = useFormDataPrefiller(formDataProp, {\n schoolData,\n board,\n grade,\n config,\n flow,\n currentCountryCode,\n });\n\n const updatedFormTree = useMilestoneFormTree({\n flow,\n formDataState,\n isGoalCreation,\n });\n\n const formData = (onFormDataChange ? formDataState : formDataProp) as IMilestoneFormData; //TODO: make better\n\n const mode: MileStoneJourneyMode = onFormDataChange ? 'edit' : 'view';\n const isViewMode = mode === 'view';\n\n const { currentStep, updateFormData, handleBack } = useFormTreeTraversal({\n flow,\n updatedFormTree,\n formData,\n formDataState,\n setFormData,\n handleExit,\n });\n\n const { name } = currentStep || {};\n const StepComponent = name ? ComponentsMap[name] : undefined;\n\n const contextValue = useMemo(() => ({ handleBack, mode, flow }), [handleBack, mode, flow]);\n\n useEffect(() => {\n if (onFormDataChange) {\n onFormDataChange(formData);\n }\n }, [formData, onFormDataChange]);\n\n return (\n <MilestoneCreateContext.Provider value={contextValue}>\n <Container $height={height} $minHeight={minHeight} $viewMode={isViewMode}>\n <BodyContainer $viewMode={isViewMode}>\n {StepComponent && currentStep && enrollmentType ? (\n <StepComponent\n studentName={studentName}\n currentStep={currentStep}\n isGoalCreation={isGoalCreation}\n config={config}\n formData={formData}\n onFormDataChange={updateFormData}\n onChapterExitWarning={onChapterExitWarning}\n studentId={studentId}\n onPreSubmit={handlePreSubmit}\n milestoneId={milestoneId}\n courseStream={courseStream}\n classRatio={classRatio || 0}\n enrollmentType={enrollmentType}\n />\n ) : undefined}\n </BodyContainer>\n </Container>\n </MilestoneCreateContext.Provider>\n );\n },\n);\n\nexport default MilestoneCreate;\n"],"names":["MilestoneCreate","memo","studentName","studentId","height","minHeight","formDataProp","config","onChapterExitWarning","onFormDataChange","handlePreSubmit","handleExit","board","schoolData","grade","flow","milestoneId","currentCountryCode","isGoalCreation","courseStream","classRatio","enrollmentType","formDataState","setFormData","useFormDataPrefiller","updatedFormTree","useMilestoneFormTree","formData","mode","isViewMode","currentStep","updateFormData","handleBack","useFormTreeTraversal","name","StepComponent","ComponentsMap","contextValue","useMemo","useEffect","jsx","MilestoneCreateContext","Container","BodyContainer"],"mappings":";;;;;;AAcA,MAAMA,IAAmDC;AAAA,EACvD,CAAC;AAAA,IACC,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAUC;AAAA,IACV,QAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,aAAaC;AAAA,IACb,QAAQC;AAAA,IACR,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,aAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,MACI;AACJ,UAAM,EAAE,eAAAC,GAAe,aAAAC,MAAgBC,EAAqBlB,GAAc;AAAA,MACxE,YAAAO;AAAA,MACA,OAAAD;AAAA,MACA,OAAAE;AAAA,MACA,QAAAP;AAAA,MACA,MAAAQ;AAAA,MACA,oBAAAE;AAAA,IAAA,CACD,GAEKQ,IAAkBC,EAAqB;AAAA,MAC3C,MAAAX;AAAA,MACA,eAAAO;AAAA,MACA,gBAAAJ;AAAA,IAAA,CACD,GAEKS,IAAYlB,IAAmBa,IAAgBhB,GAE/CsB,IAA6BnB,IAAmB,SAAS,QACzDoB,IAAaD,MAAS,QAEtB,EAAE,aAAAE,GAAa,gBAAAC,GAAgB,YAAAC,EAAA,IAAeC,EAAqB;AAAA,MACvE,MAAAlB;AAAA,MACA,iBAAAU;AAAA,MACA,UAAAE;AAAA,MACA,eAAAL;AAAA,MACA,aAAAC;AAAA,MACA,YAAAZ;AAAA,IAAA,CACD,GAEK,EAAE,MAAAuB,EAAA,IAASJ,KAAe,IAC1BK,IAAgBD,IAAOE,EAAcF,CAAI,IAAI,QAE7CG,IAAeC,EAAQ,OAAO,EAAE,YAAAN,GAAY,MAAAJ,GAAM,MAAAb,EAAK,IAAI,CAACiB,GAAYJ,GAAMb,CAAI,CAAC;AAEzF,WAAAwB,EAAU,MAAM;AACd,MAAI9B,KACFA,EAAiBkB,CAAQ;AAAA,IAC3B,GACC,CAACA,GAAUlB,CAAgB,CAAC,GAG7B,gBAAA+B,EAACC,EAAuB,UAAvB,EAAgC,OAAOJ,GACtC,UAAA,gBAAAG,EAACE,KAAU,SAAStC,GAAQ,YAAYC,GAAW,WAAWwB,GAC5D,UAAC,gBAAAW,EAAAG,GAAA,EAAc,WAAWd,GACvB,UAAAM,KAAiBL,KAAeT,IAC/B,gBAAAmB;AAAA,MAACL;AAAA,MAAA;AAAA,QACC,aAAAjC;AAAA,QACA,aAAA4B;AAAA,QACA,gBAAAZ;AAAA,QACA,QAAAX;AAAA,QACA,UAAAoB;AAAA,QACA,kBAAkBI;AAAA,QAClB,sBAAAvB;AAAA,QACA,WAAAL;AAAA,QACA,aAAaO;AAAA,QACb,aAAAM;AAAA,QACA,cAAAG;AAAA,QACA,YAAYC,KAAc;AAAA,QAC1B,gBAAAC;AAAA,MAAA;AAAA,IACF,IACE,OACN,CAAA,EACF,CAAA,EACF,CAAA;AAAA,EAEJ;AACF;"}