@cuemath/leap 2.8.22 → 2.8.23

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 (95) hide show
  1. package/dist/assets/images/images.js +0 -12
  2. package/dist/assets/images/images.js.map +1 -1
  3. package/dist/features/chapters/chapter/chapter.js +43 -45
  4. package/dist/features/chapters/chapter/chapter.js.map +1 -1
  5. package/dist/features/chapters/chapter/comps/core-lessons/core-lessons.js +21 -23
  6. package/dist/features/chapters/chapter/comps/core-lessons/core-lessons.js.map +1 -1
  7. package/dist/features/milestone/constants.js +18 -53
  8. package/dist/features/milestone/constants.js.map +1 -1
  9. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js +4 -16
  10. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js.map +1 -1
  11. package/dist/features/milestone/create/milestone-create-constants.js.map +1 -1
  12. package/dist/features/milestone/create/milestone-create-container.js +47 -56
  13. package/dist/features/milestone/create/milestone-create-container.js.map +1 -1
  14. package/dist/features/milestone/create/milestone-create-helpers.js +113 -132
  15. package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
  16. package/dist/features/milestone/create/milestone-create-hooks.js +90 -92
  17. package/dist/features/milestone/create/milestone-create-hooks.js.map +1 -1
  18. package/dist/features/milestone/create/milestone-create-styled.js +20 -34
  19. package/dist/features/milestone/create/milestone-create-styled.js.map +1 -1
  20. package/dist/features/milestone/create/milestone-create.js +53 -72
  21. package/dist/features/milestone/create/milestone-create.js.map +1 -1
  22. package/dist/features/milestone/create/submit-modal/use-submit-milestone.js +46 -53
  23. package/dist/features/milestone/create/submit-modal/use-submit-milestone.js.map +1 -1
  24. package/dist/features/milestone/create/utils/index.js.map +1 -1
  25. package/dist/features/milestone/edit/comps/delete-milestone/styled.js +8 -11
  26. package/dist/features/milestone/edit/comps/delete-milestone/styled.js.map +1 -1
  27. package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone.js +82 -79
  28. package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone.js.map +1 -1
  29. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js +112 -136
  30. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
  31. package/dist/features/milestone/{drafts/goal-edit → edit/goal-drafts}/goal-draft-edit-container.js +22 -24
  32. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -0
  33. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-helpers.js +17 -0
  34. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-helpers.js.map +1 -0
  35. package/dist/features/milestone/edit/goal-edit-helpers.js +5 -6
  36. package/dist/features/milestone/edit/goal-edit-helpers.js.map +1 -1
  37. package/dist/features/milestone/edit/milestone-edit-helpers.js +16 -17
  38. package/dist/features/milestone/edit/milestone-edit-helpers.js.map +1 -1
  39. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +46 -48
  40. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  41. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +58 -60
  42. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  43. package/dist/features/milestone/outcome/comps/past-milestone/past-milestone-container.js +39 -41
  44. package/dist/features/milestone/outcome/comps/past-milestone/past-milestone-container.js.map +1 -1
  45. package/dist/index.d.ts +7 -125
  46. package/dist/index.js +244 -258
  47. package/dist/index.js.map +1 -1
  48. package/package.json +1 -1
  49. package/dist/constants/urls.js +0 -5
  50. package/dist/constants/urls.js.map +0 -1
  51. package/dist/features/milestone/drafts/create/draft-create-container.js +0 -54
  52. package/dist/features/milestone/drafts/create/draft-create-container.js.map +0 -1
  53. package/dist/features/milestone/drafts/edit/draft-edit-container.js +0 -77
  54. package/dist/features/milestone/drafts/edit/draft-edit-container.js.map +0 -1
  55. package/dist/features/milestone/drafts/edit/draft-edit-helpers.js +0 -69
  56. package/dist/features/milestone/drafts/edit/draft-edit-helpers.js.map +0 -1
  57. package/dist/features/milestone/drafts/goal-edit/goal-draft-edit-container.js.map +0 -1
  58. package/dist/features/milestone/drafts/review/draft-review-container.js +0 -76
  59. package/dist/features/milestone/drafts/review/draft-review-container.js.map +0 -1
  60. package/dist/features/milestone/edit/comps/delete-milestone/add-remove-nudge.js +0 -48
  61. package/dist/features/milestone/edit/comps/delete-milestone/add-remove-nudge.js.map +0 -1
  62. package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone-modal-styled.js +0 -23
  63. package/dist/features/milestone/edit/comps/edit-milestone-modal/edit-milestone-modal-styled.js.map +0 -1
  64. package/dist/features/milestone/edit/comps/edit-milestone-modal/share-screen.js +0 -68
  65. package/dist/features/milestone/edit/comps/edit-milestone-modal/share-screen.js.map +0 -1
  66. package/dist/features/milestone/help-modals/index.js +0 -22
  67. package/dist/features/milestone/help-modals/index.js.map +0 -1
  68. package/dist/features/milestone/help-modals/milestone-lesson.js +0 -17
  69. package/dist/features/milestone/help-modals/milestone-lesson.js.map +0 -1
  70. package/dist/features/milestone/help-modals/milestone-list.js +0 -17
  71. package/dist/features/milestone/help-modals/milestone-list.js.map +0 -1
  72. package/dist/features/milestone/help-modals/utils.js +0 -20
  73. package/dist/features/milestone/help-modals/utils.js.map +0 -1
  74. package/dist/features/milestone/intro-modal/index.js +0 -24
  75. package/dist/features/milestone/intro-modal/index.js.map +0 -1
  76. package/dist/features/notifications/api/notification.js +0 -13
  77. package/dist/features/notifications/api/notification.js.map +0 -1
  78. package/dist/features/notifications/use-student-journey.js +0 -20
  79. package/dist/features/notifications/use-student-journey.js.map +0 -1
  80. package/dist/features/sheets/constants/lessons.js +0 -28
  81. package/dist/features/sheets/constants/lessons.js.map +0 -1
  82. package/dist/features/ui/modals/info-modal/index.js +0 -117
  83. package/dist/features/ui/modals/info-modal/index.js.map +0 -1
  84. package/dist/static/goal_creation_helper.d45e4d58.png +0 -0
  85. package/dist/static/help_banner1.ddb0ef0f.png +0 -0
  86. package/dist/static/help_banner2.40979ed0.png +0 -0
  87. package/dist/static/help_banner3.532099c7.png +0 -0
  88. package/dist/static/help_banner4.90a6fd4d.png +0 -0
  89. package/dist/static/help_banner5.2a9efb39.png +0 -0
  90. package/dist/static/help_banner6.94fe9589.png +0 -0
  91. package/dist/static/milestone_intro_slide1.1537493e.png +0 -0
  92. package/dist/static/milestone_intro_slide2.b791c159.png +0 -0
  93. package/dist/static/milestone_intro_slide3.f7d63a11.png +0 -0
  94. package/dist/static/milestone_intro_slide4.f8da4e46.png +0 -0
  95. package/dist/static/milestone_intro_slide5.ea5d12d2.png +0 -0
@@ -1,144 +1,120 @@
1
- import { jsxs as J, jsx as l } from "react/jsx-runtime";
2
- import { useState as s, useMemo as M, useCallback as a } from "react";
3
- import { EVENTS as K } from "../../../../communication/pub-sub/constants.js";
4
- import { useInClassActionDispatcher as Q } from "../../../../communication/pub-sub/hooks.js";
5
- import X from "../../../../ui/context/context.js";
6
- import Z from "../../../../ui/context/use-tracking-context.js";
7
- import { ONE_YEAR_TIMESTAMP_IN_SECONDS as ee } from "../../../constants.js";
8
- import { invalidateMilestonesData as te } from "../../../milestone-list-container/api/get-milestones.js";
9
- import oe from "../delete-milestone/add-remove-nudge.js";
10
- import se from "../delete-milestone/confirm-delete.js";
11
- import { useMilestonePatch as ae } from "./api/patch-milestone.js";
12
- import ne from "./edit-milestone.js";
13
- import re from "./share-screen.js";
14
- import { parse as ie } from "../../../../../node_modules/date-fns/parse.js";
15
- const n = {
1
+ import { jsxs as $, jsx as P } from "react/jsx-runtime";
2
+ import { memo as q, useState as s, useMemo as f, useCallback as i } from "react";
3
+ import { EVENTS as z } from "../../../../communication/pub-sub/constants.js";
4
+ import { useInClassActionDispatcher as B } from "../../../../communication/pub-sub/hooks.js";
5
+ import G from "../../../../ui/context/context.js";
6
+ import J from "../../../../ui/context/use-tracking-context.js";
7
+ import { ONE_YEAR_TIMESTAMP_IN_SECONDS as K } from "../../../constants.js";
8
+ import { invalidateMilestonesData as Q } from "../../../milestone-list-container/api/get-milestones.js";
9
+ import X from "../delete-milestone/confirm-delete.js";
10
+ import { useMilestonePatch as Z } from "./api/patch-milestone.js";
11
+ import ee from "./edit-milestone.js";
12
+ import { parse as te } from "../../../../../node_modules/date-fns/parse.js";
13
+ const v = {
16
14
  DELETE_CONFIRM: "delete_confirm",
17
- SHARE_SCREEN: "share_screen",
18
- ADD_REMOVE_NUDGE: "add_remove_nudge",
19
15
  EDIT: "edit"
20
- }, ce = ({
21
- milestoneName: F,
22
- milestoneId: e,
23
- milestoneDueDate: h,
24
- isStudentPresent: C,
25
- handleEditChapters: m,
26
- studentId: N,
27
- isMilestoneChaptersListEditable: O,
28
- studentName: x,
29
- isMilestoneDateEditable: w,
30
- isClassOngoing: r,
31
- onDelete: I,
32
- analyticsProps: T,
33
- canDelete: L,
34
- milestoneState: V,
35
- studentClassroomId: U,
36
- courseStream: R
37
- }) => {
38
- const [i, E] = s("edit"), [t, k] = s(h), [d, v] = s(!1), [_, S] = s(!1), [f, p] = s(""), o = M(
39
- () => Math.floor((/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0) / 1e3),
40
- []
41
- ), c = M(
42
- () => o + ee,
43
- [o]
44
- ), { dispatchInClassAction: A } = Q({ studentClassroomId: U }), H = t !== h, P = a(() => {
45
- d && v(!1), _ && S(!1);
46
- }, [d, _]), b = a(
47
- (D) => {
48
- if (D) {
49
- S(!0);
16
+ }, oe = q(
17
+ ({
18
+ milestoneName: I,
19
+ milestoneId: e,
20
+ milestoneDueDate: u,
21
+ studentId: E,
22
+ isMilestoneChaptersListEditable: g,
23
+ isMilestoneDateEditable: x,
24
+ isClassOngoing: a,
25
+ onDelete: F,
26
+ analyticsProps: _,
27
+ canDelete: w,
28
+ milestoneState: A,
29
+ studentClassroomId: L,
30
+ courseStream: M
31
+ }) => {
32
+ const [D, O] = s("edit"), [t, R] = s(u), [r, h] = s(!1), [c, C] = s(!1), [l, m] = s(""), o = f(
33
+ () => Math.floor((/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0) / 1e3),
34
+ []
35
+ ), n = f(
36
+ () => o + K,
37
+ [o]
38
+ ), { dispatchInClassAction: T } = B({ studentClassroomId: L }), V = t !== u, S = i(() => {
39
+ r && h(!1), c && C(!1);
40
+ }, [r, c]), k = i(
41
+ (d) => {
42
+ if (d) {
43
+ C(!0);
44
+ return;
45
+ }
46
+ Q({
47
+ milestone_state_group: "LIVE",
48
+ with_plan: !0,
49
+ course_stream: M,
50
+ student_id: E,
51
+ in_class: a
52
+ }), h(!0), T({
53
+ eventName: z.MILESTONE_EDITED,
54
+ eventPayload: {
55
+ milestoneId: e
56
+ }
57
+ });
58
+ },
59
+ [T, a, e, E, M]
60
+ ), { patch: y, isProcessing: b } = Z({
61
+ onComplete: k
62
+ }), j = i(
63
+ (d) => {
64
+ S();
65
+ const N = d.target.value;
66
+ if (!N) return;
67
+ const p = te(N, "yyyy-MM-dd", /* @__PURE__ */ new Date()).getTime() / 1e3;
68
+ l && p >= o && p < n && m(""), R(p);
69
+ },
70
+ [l, S, n, o]
71
+ ), U = i(() => {
72
+ if (t < o || t > n) {
73
+ t < o ? m("Please enter a future date") : m("Please select a date within the next year");
50
74
  return;
51
75
  }
52
- te({
53
- milestone_state_group: "LIVE",
54
- with_plan: !0,
55
- course_stream: R,
56
- student_id: N,
57
- in_class: r
58
- }), v(!0), A({
59
- eventName: K.MILESTONE_EDITED,
60
- eventPayload: {
61
- milestoneId: e
62
- }
76
+ y(e, {
77
+ milestone_date_ts: t
63
78
  });
64
- },
65
- [A, r, e, N, R]
66
- ), { patch: y, isProcessing: j } = ae({
67
- onComplete: b
68
- }), G = a(
69
- (D) => {
70
- P();
71
- const g = D.target.value;
72
- if (!g) return;
73
- const u = ie(g, "yyyy-MM-dd", /* @__PURE__ */ new Date()).getTime() / 1e3;
74
- f && u >= o && u < c && p(""), k(u);
75
- },
76
- [f, P, c, o]
77
- ), Y = a(() => {
78
- if (t < o || t > c) {
79
- t < o ? p("Please enter a future date") : p("Please select a date within the next year");
80
- return;
81
- }
82
- y(e, {
83
- milestone_date_ts: t
84
- });
85
- }, [
86
- e,
87
- t,
88
- c,
89
- o,
90
- y
91
- ]), W = a(() => {
92
- C ? E(n.SHARE_SCREEN) : m(e, !1);
93
- }, [m, C, e]), $ = () => {
94
- E(n.DELETE_CONFIRM);
95
- }, q = () => {
96
- E(n.DELETE_CONFIRM);
97
- }, z = M(() => ({
98
- ...T,
99
- milestone_id: e,
100
- temporary_milestone_id: e,
101
- is_student_class_ongoing: r
102
- }), [T, r, e]), B = Z(z);
103
- return /* @__PURE__ */ J(X.Provider, { value: B, children: [
104
- i === n.DELETE_CONFIRM && /* @__PURE__ */ l(se, { milestoneId: e, onDelete: I }),
105
- i === n.ADD_REMOVE_NUDGE && /* @__PURE__ */ l(
106
- oe,
107
- {
108
- onAddRemove: W,
109
- onProceedToDelete: q
110
- }
111
- ),
112
- i === "share_screen" && /* @__PURE__ */ l(
113
- re,
114
- {
115
- handleEditChapters: m,
116
- milestoneId: e,
117
- studentName: x
118
- }
119
- ),
120
- i === "edit" && /* @__PURE__ */ l(
121
- ne,
122
- {
123
- inputMilestoneName: F,
124
- areDateUpdatesDisabled: !w,
125
- handleDateChange: G,
126
- inputMilestoneDate: t,
127
- anyFieldChanged: H,
128
- isProcessing: j,
129
- isDataPatched: d,
130
- isMilestoneChaptersListEditable: O,
131
- onSave: Y,
132
- isPatchingFailed: _,
133
- onDeleteOptionClick: $,
134
- errorMessage: f,
135
- canDelete: L,
136
- milestoneState: V
137
- }
138
- )
139
- ] });
140
- }, Re = ce;
79
+ }, [
80
+ e,
81
+ t,
82
+ n,
83
+ o,
84
+ y
85
+ ]), Y = () => {
86
+ O(v.DELETE_CONFIRM);
87
+ }, H = f(() => ({
88
+ ..._,
89
+ milestone_id: e,
90
+ temporary_milestone_id: e,
91
+ is_student_class_ongoing: a
92
+ }), [_, a, e]), W = J(H);
93
+ return /* @__PURE__ */ $(G.Provider, { value: W, children: [
94
+ D === v.DELETE_CONFIRM && /* @__PURE__ */ P(X, { milestoneId: e, onDelete: F }),
95
+ D === "edit" && /* @__PURE__ */ P(
96
+ ee,
97
+ {
98
+ inputMilestoneName: I,
99
+ areDateUpdatesDisabled: !x,
100
+ handleDateChange: j,
101
+ inputMilestoneDate: t,
102
+ anyFieldChanged: V,
103
+ isProcessing: b,
104
+ isDataPatched: r,
105
+ isMilestoneChaptersListEditable: g,
106
+ onSave: U,
107
+ isPatchingFailed: c,
108
+ onDeleteOptionClick: Y,
109
+ errorMessage: l,
110
+ canDelete: w,
111
+ milestoneState: A
112
+ }
113
+ )
114
+ ] });
115
+ }
116
+ ), Ee = oe;
141
117
  export {
142
- Re as default
118
+ Ee as default
143
119
  };
144
120
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/features/milestone/edit/comps/edit-milestone-modal/index.tsx"],"sourcesContent":["import type { IEditMilestoneModalProps } from './edit-milestone-modal-types';\nimport type { ChangeEvent } from 'react';\n\nimport { parse } from 'date-fns';\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { EVENTS } from '../../../../communication/pub-sub/constants';\nimport { useInClassActionDispatcher } from '../../../../communication/pub-sub/hooks';\nimport UIContext from '../../../../ui/context/context';\nimport useTrackingContext from '../../../../ui/context/use-tracking-context';\nimport { ONE_YEAR_TIMESTAMP_IN_SECONDS } from '../../../constants';\nimport { invalidateMilestonesData } from '../../../milestone-list-container/api/get-milestones';\nimport AddRemoveNudge from '../delete-milestone/add-remove-nudge';\nimport ConfirmDelete from '../delete-milestone/confirm-delete';\nimport { useMilestonePatch } from './api/patch-milestone';\nimport EditMilestone from './edit-milestone';\nimport AddRemoveChapters from './share-screen';\n\nconst VIEWS = {\n DELETE_CONFIRM: 'delete_confirm',\n SHARE_SCREEN: 'share_screen',\n ADD_REMOVE_NUDGE: 'add_remove_nudge',\n EDIT: 'edit',\n};\n\n// https://github.com/cuemath/package-leap/issues/409\nconst EditDeleteMilestone: React.FC<IEditMilestoneModalProps> = ({\n milestoneName,\n milestoneId,\n milestoneDueDate,\n isStudentPresent,\n handleEditChapters,\n studentId,\n isMilestoneChaptersListEditable,\n studentName,\n isMilestoneDateEditable,\n isClassOngoing,\n onDelete,\n analyticsProps,\n canDelete,\n milestoneState,\n studentClassroomId,\n courseStream,\n}) => {\n const [view, setView] = useState<(typeof VIEWS)[keyof typeof VIEWS]>('edit');\n\n const [inputMilestoneDate, setMilestoneDate] = useState(milestoneDueDate);\n const [isDataPatched, setIsDataPatched] = useState(false);\n const [isPatchingFailed, setIsPatchingFailed] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n const todayTimestampSeconds = useMemo(\n () => Math.floor(new Date().setHours(0, 0, 0, 0) / 1000),\n [],\n );\n const oneYearFutureTimestampSeconds = useMemo(\n () => todayTimestampSeconds + ONE_YEAR_TIMESTAMP_IN_SECONDS,\n [todayTimestampSeconds],\n );\n\n const { dispatchInClassAction } = useInClassActionDispatcher({ studentClassroomId });\n\n const anyFieldChanged = inputMilestoneDate !== milestoneDueDate;\n\n const handleClearState = useCallback(() => {\n if (isDataPatched) {\n setIsDataPatched(false);\n }\n\n if (isPatchingFailed) {\n setIsPatchingFailed(false);\n }\n }, [isDataPatched, isPatchingFailed]);\n\n const handleOnComplete = useCallback(\n (errorMsg: string | null) => {\n if (errorMsg) {\n setIsPatchingFailed(true);\n\n return;\n }\n\n invalidateMilestonesData({\n milestone_state_group: 'LIVE',\n with_plan: true,\n course_stream: courseStream,\n student_id: studentId,\n in_class: isClassOngoing,\n });\n setIsDataPatched(true);\n dispatchInClassAction({\n eventName: EVENTS.MILESTONE_EDITED,\n eventPayload: {\n milestoneId,\n },\n });\n },\n [dispatchInClassAction, isClassOngoing, milestoneId, studentId, courseStream],\n );\n\n const { patch: updateMilestone, isProcessing } = useMilestonePatch({\n onComplete: handleOnComplete,\n });\n\n const handleDateChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n handleClearState();\n const value = e.target.value;\n\n if (!value) return;\n\n const timestampInSeconds = parse(value, 'yyyy-MM-dd', new Date()).getTime() / 1000;\n\n if (\n errorMessage &&\n timestampInSeconds >= todayTimestampSeconds &&\n timestampInSeconds < oneYearFutureTimestampSeconds\n ) {\n setErrorMessage('');\n }\n\n setMilestoneDate(timestampInSeconds);\n },\n [errorMessage, handleClearState, oneYearFutureTimestampSeconds, todayTimestampSeconds],\n );\n\n const onSave = useCallback(() => {\n if (\n inputMilestoneDate < todayTimestampSeconds ||\n inputMilestoneDate > oneYearFutureTimestampSeconds\n ) {\n if (inputMilestoneDate < todayTimestampSeconds) {\n setErrorMessage('Please enter a future date');\n } else {\n setErrorMessage('Please select a date within the next year');\n }\n\n return;\n }\n\n updateMilestone(milestoneId, {\n milestone_date_ts: inputMilestoneDate,\n });\n }, [\n milestoneId,\n inputMilestoneDate,\n oneYearFutureTimestampSeconds,\n todayTimestampSeconds,\n updateMilestone,\n ]);\n\n const handleAddRemoveChapter = useCallback(() => {\n if (isStudentPresent) {\n setView(VIEWS.SHARE_SCREEN);\n } else {\n handleEditChapters(milestoneId, false);\n }\n }, [handleEditChapters, isStudentPresent, milestoneId]);\n\n const onDeleteOptionClick = () => {\n setView(VIEWS.DELETE_CONFIRM);\n };\n\n const handleProceedToDelete = () => {\n setView(VIEWS.DELETE_CONFIRM);\n };\n\n const commonAnalytics = useMemo(() => {\n return {\n ...analyticsProps,\n milestone_id: milestoneId,\n temporary_milestone_id: milestoneId,\n is_student_class_ongoing: isClassOngoing,\n };\n }, [analyticsProps, isClassOngoing, milestoneId]);\n\n const analyticsContext = useTrackingContext(commonAnalytics);\n\n return (\n <UIContext.Provider value={analyticsContext}>\n {view === VIEWS.DELETE_CONFIRM && (\n <ConfirmDelete milestoneId={milestoneId} onDelete={onDelete} />\n )}\n\n {view === VIEWS.ADD_REMOVE_NUDGE && (\n <AddRemoveNudge\n onAddRemove={handleAddRemoveChapter}\n onProceedToDelete={handleProceedToDelete}\n />\n )}\n\n {view === 'share_screen' && (\n <AddRemoveChapters\n handleEditChapters={handleEditChapters}\n milestoneId={milestoneId}\n studentName={studentName}\n />\n )}\n\n {view === 'edit' && (\n <EditMilestone\n inputMilestoneName={milestoneName}\n areDateUpdatesDisabled={!isMilestoneDateEditable}\n handleDateChange={handleDateChange}\n inputMilestoneDate={inputMilestoneDate}\n anyFieldChanged={anyFieldChanged}\n isProcessing={isProcessing}\n isDataPatched={isDataPatched}\n isMilestoneChaptersListEditable={isMilestoneChaptersListEditable}\n onSave={onSave}\n isPatchingFailed={isPatchingFailed}\n onDeleteOptionClick={onDeleteOptionClick}\n errorMessage={errorMessage}\n canDelete={canDelete}\n milestoneState={milestoneState}\n />\n )}\n </UIContext.Provider>\n );\n};\n\nexport default EditDeleteMilestone;\n"],"names":["VIEWS","EditDeleteMilestone","milestoneName","milestoneId","milestoneDueDate","isStudentPresent","handleEditChapters","studentId","isMilestoneChaptersListEditable","studentName","isMilestoneDateEditable","isClassOngoing","onDelete","analyticsProps","canDelete","milestoneState","studentClassroomId","courseStream","view","setView","useState","inputMilestoneDate","setMilestoneDate","isDataPatched","setIsDataPatched","isPatchingFailed","setIsPatchingFailed","errorMessage","setErrorMessage","todayTimestampSeconds","useMemo","oneYearFutureTimestampSeconds","ONE_YEAR_TIMESTAMP_IN_SECONDS","dispatchInClassAction","useInClassActionDispatcher","anyFieldChanged","handleClearState","useCallback","handleOnComplete","errorMsg","invalidateMilestonesData","EVENTS","updateMilestone","isProcessing","useMilestonePatch","handleDateChange","e","value","timestampInSeconds","parse","onSave","handleAddRemoveChapter","onDeleteOptionClick","handleProceedToDelete","commonAnalytics","analyticsContext","useTrackingContext","jsxs","UIContext","jsx","ConfirmDelete","AddRemoveNudge","AddRemoveChapters","EditMilestone","EditDeleteMilestone$1"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/features/milestone/edit/comps/edit-milestone-modal/index.tsx"],"sourcesContent":["import type { IEditMilestoneModalProps } from './edit-milestone-modal-types';\nimport type { ChangeEvent } from 'react';\n\nimport { parse } from 'date-fns';\nimport React, { memo, useCallback, useMemo, useState } from 'react';\n\nimport { EVENTS } from '../../../../communication/pub-sub/constants';\nimport { useInClassActionDispatcher } from '../../../../communication/pub-sub/hooks';\nimport UIContext from '../../../../ui/context/context';\nimport useTrackingContext from '../../../../ui/context/use-tracking-context';\nimport { ONE_YEAR_TIMESTAMP_IN_SECONDS } from '../../../constants';\nimport { invalidateMilestonesData } from '../../../milestone-list-container/api/get-milestones';\nimport ConfirmDelete from '../delete-milestone/confirm-delete';\nimport { useMilestonePatch } from './api/patch-milestone';\nimport EditMilestone from './edit-milestone';\n\nconst VIEWS = {\n DELETE_CONFIRM: 'delete_confirm',\n EDIT: 'edit',\n};\n\n// https://github.com/cuemath/package-leap/issues/409\nconst EditDeleteMilestone: React.FC<IEditMilestoneModalProps> = memo(\n ({\n milestoneName,\n milestoneId,\n milestoneDueDate,\n studentId,\n isMilestoneChaptersListEditable,\n isMilestoneDateEditable,\n isClassOngoing,\n onDelete,\n analyticsProps,\n canDelete,\n milestoneState,\n studentClassroomId,\n courseStream,\n }) => {\n const [view, setView] = useState<(typeof VIEWS)[keyof typeof VIEWS]>('edit');\n\n const [inputMilestoneDate, setMilestoneDate] = useState(milestoneDueDate);\n const [isDataPatched, setIsDataPatched] = useState(false);\n const [isPatchingFailed, setIsPatchingFailed] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n const todayTimestampSeconds = useMemo(\n () => Math.floor(new Date().setHours(0, 0, 0, 0) / 1000),\n [],\n );\n const oneYearFutureTimestampSeconds = useMemo(\n () => todayTimestampSeconds + ONE_YEAR_TIMESTAMP_IN_SECONDS,\n [todayTimestampSeconds],\n );\n\n const { dispatchInClassAction } = useInClassActionDispatcher({ studentClassroomId });\n\n const anyFieldChanged = inputMilestoneDate !== milestoneDueDate;\n\n const handleClearState = useCallback(() => {\n if (isDataPatched) {\n setIsDataPatched(false);\n }\n\n if (isPatchingFailed) {\n setIsPatchingFailed(false);\n }\n }, [isDataPatched, isPatchingFailed]);\n\n const handleOnComplete = useCallback(\n (errorMsg: string | null) => {\n if (errorMsg) {\n setIsPatchingFailed(true);\n\n return;\n }\n\n invalidateMilestonesData({\n milestone_state_group: 'LIVE',\n with_plan: true,\n course_stream: courseStream,\n student_id: studentId,\n in_class: isClassOngoing,\n });\n setIsDataPatched(true);\n dispatchInClassAction({\n eventName: EVENTS.MILESTONE_EDITED,\n eventPayload: {\n milestoneId,\n },\n });\n },\n [dispatchInClassAction, isClassOngoing, milestoneId, studentId, courseStream],\n );\n\n const { patch: updateMilestone, isProcessing } = useMilestonePatch({\n onComplete: handleOnComplete,\n });\n\n const handleDateChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n handleClearState();\n const value = e.target.value;\n\n if (!value) return;\n\n const timestampInSeconds = parse(value, 'yyyy-MM-dd', new Date()).getTime() / 1000;\n\n if (\n errorMessage &&\n timestampInSeconds >= todayTimestampSeconds &&\n timestampInSeconds < oneYearFutureTimestampSeconds\n ) {\n setErrorMessage('');\n }\n\n setMilestoneDate(timestampInSeconds);\n },\n [errorMessage, handleClearState, oneYearFutureTimestampSeconds, todayTimestampSeconds],\n );\n\n const onSave = useCallback(() => {\n if (\n inputMilestoneDate < todayTimestampSeconds ||\n inputMilestoneDate > oneYearFutureTimestampSeconds\n ) {\n if (inputMilestoneDate < todayTimestampSeconds) {\n setErrorMessage('Please enter a future date');\n } else {\n setErrorMessage('Please select a date within the next year');\n }\n\n return;\n }\n\n updateMilestone(milestoneId, {\n milestone_date_ts: inputMilestoneDate,\n });\n }, [\n milestoneId,\n inputMilestoneDate,\n oneYearFutureTimestampSeconds,\n todayTimestampSeconds,\n updateMilestone,\n ]);\n\n const onDeleteOptionClick = () => {\n setView(VIEWS.DELETE_CONFIRM);\n };\n\n const commonAnalytics = useMemo(() => {\n return {\n ...analyticsProps,\n milestone_id: milestoneId,\n temporary_milestone_id: milestoneId,\n is_student_class_ongoing: isClassOngoing,\n };\n }, [analyticsProps, isClassOngoing, milestoneId]);\n\n const analyticsContext = useTrackingContext(commonAnalytics);\n\n return (\n <UIContext.Provider value={analyticsContext}>\n {view === VIEWS.DELETE_CONFIRM && (\n <ConfirmDelete milestoneId={milestoneId} onDelete={onDelete} />\n )}\n\n {view === 'edit' && (\n <EditMilestone\n inputMilestoneName={milestoneName}\n areDateUpdatesDisabled={!isMilestoneDateEditable}\n handleDateChange={handleDateChange}\n inputMilestoneDate={inputMilestoneDate}\n anyFieldChanged={anyFieldChanged}\n isProcessing={isProcessing}\n isDataPatched={isDataPatched}\n isMilestoneChaptersListEditable={isMilestoneChaptersListEditable}\n onSave={onSave}\n isPatchingFailed={isPatchingFailed}\n onDeleteOptionClick={onDeleteOptionClick}\n errorMessage={errorMessage}\n canDelete={canDelete}\n milestoneState={milestoneState}\n />\n )}\n </UIContext.Provider>\n );\n },\n);\n\nexport default EditDeleteMilestone;\n"],"names":["VIEWS","EditDeleteMilestone","memo","milestoneName","milestoneId","milestoneDueDate","studentId","isMilestoneChaptersListEditable","isMilestoneDateEditable","isClassOngoing","onDelete","analyticsProps","canDelete","milestoneState","studentClassroomId","courseStream","view","setView","useState","inputMilestoneDate","setMilestoneDate","isDataPatched","setIsDataPatched","isPatchingFailed","setIsPatchingFailed","errorMessage","setErrorMessage","todayTimestampSeconds","useMemo","oneYearFutureTimestampSeconds","ONE_YEAR_TIMESTAMP_IN_SECONDS","dispatchInClassAction","useInClassActionDispatcher","anyFieldChanged","handleClearState","useCallback","handleOnComplete","errorMsg","invalidateMilestonesData","EVENTS","updateMilestone","isProcessing","useMilestonePatch","handleDateChange","e","value","timestampInSeconds","parse","onSave","onDeleteOptionClick","commonAnalytics","analyticsContext","useTrackingContext","jsxs","UIContext","jsx","ConfirmDelete","EditMilestone","EditDeleteMilestone$1"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
- import { h as v } from "../../../../node_modules/humanize-plus/dist/humanize.js";
3
- import { memo as A, useEffect as c, useMemo as R } from "react";
4
- import { useGetMileStoneConfig as S } from "../../create/api/milestone-config.js";
5
- import W from "../../create/milestone-create.js";
6
- import { useMilestoneGet as j } from "../../edit/comps/edit-milestone-modal/api/get-milestone.js";
7
- import z from "../../edit/comps/milestone-edit-loader/milestone-edit-loader.js";
8
- import { transformGoalData as H } from "../../edit/goal-edit-helpers.js";
9
- const L = A(
2
+ import { h as b } from "../../../../node_modules/humanize-plus/dist/humanize.js";
3
+ import { memo as v, useEffect as c, useMemo as A } from "react";
4
+ import { useGetMileStoneConfig as R } from "../../create/api/milestone-config.js";
5
+ import S from "../../create/milestone-create.js";
6
+ import { useMilestoneGet as W } from "../comps/edit-milestone-modal/api/get-milestone.js";
7
+ import j from "../comps/milestone-edit-loader/milestone-edit-loader.js";
8
+ import { transformGoalData as z } from "../goal-edit-helpers.js";
9
+ const H = v(
10
10
  ({
11
11
  studentName: l,
12
12
  studentId: d,
@@ -19,29 +19,28 @@ const L = A(
19
19
  board: P,
20
20
  schoolData: D,
21
21
  grade: x,
22
- isFirstMilestoneCreated: F,
23
22
  milestoneId: t,
24
23
  currentCountryCode: a,
25
24
  courseStream: r,
26
- classRatio: M,
25
+ classRatio: F,
27
26
  enrollmentType: n
28
27
  }) => {
29
28
  const {
30
29
  get: f,
31
30
  data: i,
32
- isProcessing: G,
33
- isProcessingFailed: _
34
- } = S();
31
+ isProcessing: M,
32
+ isProcessingFailed: G
33
+ } = R();
35
34
  c(() => {
36
35
  f("", void 0);
37
36
  }, [f]);
38
37
  const {
39
38
  get: m,
40
39
  data: o,
41
- isProcessing: w,
42
- isProcessingFailed: b
43
- } = j(t), g = R(
44
- () => o && i && H({
40
+ isProcessing: _,
41
+ isProcessingFailed: w
42
+ } = W(t), g = A(
43
+ () => o && i && z({
45
44
  currentMilestoneData: o,
46
45
  config: i,
47
46
  courseStream: r,
@@ -56,14 +55,14 @@ const L = A(
56
55
  with_sheets: !0,
57
56
  with_recommended_chapters: !0
58
57
  });
59
- }, [m, t, e]), G || w ? /* @__PURE__ */ s(z, {}) : b || _ ? /* @__PURE__ */ s("p", { children: "Error" }) : i && g ? /* @__PURE__ */ s(
60
- W,
58
+ }, [m, t, e]), M || _ ? /* @__PURE__ */ s(j, {}) : w || G ? /* @__PURE__ */ s("p", { children: "Error" }) : i && g ? /* @__PURE__ */ s(
59
+ S,
61
60
  {
62
61
  flow: "DRAFT_EDIT",
63
62
  board: P,
64
63
  schoolData: D,
65
64
  studentId: d,
66
- studentName: v.titleCase(l),
65
+ studentName: b.titleCase(l),
67
66
  height: E,
68
67
  formData: g,
69
68
  config: i,
@@ -73,17 +72,16 @@ const L = A(
73
72
  onChapterExitWarning: p,
74
73
  userType: e,
75
74
  grade: x,
76
- isFirstMilestoneCreated: F,
77
75
  milestoneId: t,
78
76
  isGoalCreation: !0,
79
77
  courseStream: (o == null ? void 0 : o.course_stream) || r,
80
- classRatio: M,
78
+ classRatio: F,
81
79
  enrollmentType: n
82
80
  }
83
81
  ) : null;
84
82
  }
85
- ), Q = L;
83
+ ), O = H;
86
84
  export {
87
- Q as default
85
+ O as default
88
86
  };
89
87
  //# sourceMappingURL=goal-draft-edit-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goal-draft-edit-container.js","sources":["../../../../../src/features/milestone/edit/goal-drafts/goal-draft-edit-container.tsx"],"sourcesContent":["import type { IMileStoneEditContainerProps } from '../milestone-edit-types';\n\nimport { titleCase } from 'humanize-plus';\nimport { memo, useEffect, useMemo } from 'react';\n\nimport { useGetMileStoneConfig } from '../../create/api/milestone-config';\nimport MilestoneCreate from '../../create/milestone-create';\nimport { useMilestoneGet } from '../comps/edit-milestone-modal/api/get-milestone';\nimport MilestoneEditLoader from '../comps/milestone-edit-loader/milestone-edit-loader';\nimport { transformGoalData } from '../goal-edit-helpers';\n\nconst GoalDraftEditContainer: React.FC<IMileStoneEditContainerProps> = memo(\n ({\n studentName,\n studentId,\n height,\n onFormDataChange: handleFormDataChange,\n onPreSubmit: handlePreSubmit,\n onExit: handleExit,\n onChapterExitWarning: handleChapterExitWarning,\n userType,\n board,\n schoolData,\n grade,\n milestoneId,\n currentCountryCode,\n courseStream,\n classRatio,\n enrollmentType,\n }) => {\n const {\n get: getConfig,\n data: configData,\n isProcessing: isConfigProcessing,\n isProcessingFailed: isConfigProcessingFailed,\n } = useGetMileStoneConfig();\n\n useEffect(() => {\n getConfig('', undefined);\n }, [getConfig]);\n\n const {\n get: getMilestone,\n data: currentMilestoneData,\n isProcessing: isMilestoneProcessing,\n isProcessingFailed: isMilestoneProcessingFailed,\n } = useMilestoneGet(milestoneId);\n\n const convertedData = useMemo(\n () =>\n currentMilestoneData &&\n configData &&\n transformGoalData({\n currentMilestoneData,\n config: configData,\n courseStream,\n enrollmentType,\n currentCountryCode,\n }),\n [configData, currentCountryCode, enrollmentType, currentMilestoneData, courseStream],\n );\n\n useEffect(() => {\n if (userType === 'TEACHER')\n getMilestone(milestoneId, {\n with_plan: true,\n with_sheets: true,\n with_recommended_chapters: true,\n });\n }, [getMilestone, milestoneId, userType]);\n\n if (isConfigProcessing || isMilestoneProcessing) return <MilestoneEditLoader />;\n\n if (isMilestoneProcessingFailed || isConfigProcessingFailed) {\n return <p>Error</p>;\n }\n\n return configData && convertedData ? (\n <MilestoneCreate\n flow=\"DRAFT_EDIT\"\n board={board}\n schoolData={schoolData}\n studentId={studentId}\n studentName={titleCase(studentName)}\n height={height}\n formData={convertedData}\n config={configData}\n onFormDataChange={handleFormDataChange}\n onPreSubmit={handlePreSubmit}\n onExit={handleExit}\n onChapterExitWarning={handleChapterExitWarning}\n userType={userType}\n grade={grade}\n milestoneId={milestoneId}\n isGoalCreation={true}\n courseStream={currentMilestoneData?.course_stream || courseStream}\n classRatio={classRatio}\n enrollmentType={enrollmentType}\n />\n ) : null;\n },\n);\n\nexport default GoalDraftEditContainer;\n"],"names":["GoalDraftEditContainer","memo","studentName","studentId","height","handleFormDataChange","handlePreSubmit","handleExit","handleChapterExitWarning","userType","board","schoolData","grade","milestoneId","currentCountryCode","courseStream","classRatio","enrollmentType","getConfig","configData","isConfigProcessing","isConfigProcessingFailed","useGetMileStoneConfig","useEffect","getMilestone","currentMilestoneData","isMilestoneProcessing","isMilestoneProcessingFailed","useMilestoneGet","convertedData","useMemo","transformGoalData","jsx","MilestoneEditLoader","MilestoneCreate","titleCase","GoalDraftEditContainer$1"],"mappings":";;;;;;;;AAWA,MAAMA,IAAiEC;AAAA,EACrE,CAAC;AAAA,IACC,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,kBAAkBC;AAAA,IAClB,aAAaC;AAAA,IACb,QAAQC;AAAA,IACR,sBAAsBC;AAAA,IACtB,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,MACI;AACE,UAAA;AAAA,MACJ,KAAKC;AAAA,MACL,MAAMC;AAAA,MACN,cAAcC;AAAA,MACd,oBAAoBC;AAAA,QAClBC,EAAsB;AAE1B,IAAAC,EAAU,MAAM;AACd,MAAAL,EAAU,IAAI,MAAS;AAAA,IAAA,GACtB,CAACA,CAAS,CAAC;AAER,UAAA;AAAA,MACJ,KAAKM;AAAA,MACL,MAAMC;AAAA,MACN,cAAcC;AAAA,MACd,oBAAoBC;AAAA,IAAA,IAClBC,EAAgBf,CAAW,GAEzBgB,IAAgBC;AAAA,MACpB,MACEL,KACAN,KACAY,EAAkB;AAAA,QAChB,sBAAAN;AAAA,QACA,QAAQN;AAAA,QACR,cAAAJ;AAAA,QACA,gBAAAE;AAAA,QACA,oBAAAH;AAAA,MAAA,CACD;AAAA,MACH,CAACK,GAAYL,GAAoBG,GAAgBQ,GAAsBV,CAAY;AAAA,IAAA;AAYrF,WATAQ,EAAU,MAAM;AACd,MAAId,MAAa,aACfe,EAAaX,GAAa;AAAA,QACxB,WAAW;AAAA,QACX,aAAa;AAAA,QACb,2BAA2B;AAAA,MAAA,CAC5B;AAAA,IACF,GAAA,CAACW,GAAcX,GAAaJ,CAAQ,CAAC,GAEpCW,KAAsBM,IAA8B,gBAAAM,EAACC,GAAoB,CAAA,CAAA,IAEzEN,KAA+BN,IAC1B,gBAAAW,EAAC,OAAE,UAAK,QAAA,CAAA,IAGVb,KAAcU,IACnB,gBAAAG;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAAxB;AAAA,QACA,YAAAC;AAAA,QACA,WAAAR;AAAA,QACA,aAAagC,YAAUjC,CAAW;AAAA,QAClC,QAAAE;AAAA,QACA,UAAUyB;AAAA,QACV,QAAQV;AAAA,QACR,kBAAkBd;AAAA,QAClB,aAAaC;AAAA,QACb,QAAQC;AAAA,QACR,sBAAsBC;AAAA,QACtB,UAAAC;AAAA,QACA,OAAAG;AAAA,QACA,aAAAC;AAAA,QACA,gBAAgB;AAAA,QAChB,eAAcY,KAAA,gBAAAA,EAAsB,kBAAiBV;AAAA,QACrD,YAAAC;AAAA,QACA,gBAAAC;AAAA,MAAA;AAAA,IAEA,IAAA;AAAA,EACN;AACF,GAEAmB,IAAepC;"}
@@ -0,0 +1,17 @@
1
+ import { getFormChapters as m } from "../../create/utils/index.js";
2
+ const d = (e) => {
3
+ let r = [];
4
+ return e && (r = m(
5
+ e.map((t) => ({
6
+ ...t,
7
+ id: t.id,
8
+ added: !1,
9
+ recommended: !0
10
+ })),
11
+ !0
12
+ )), r;
13
+ };
14
+ export {
15
+ d as transformRecommendedChaptersFromMilestonePlan
16
+ };
17
+ //# sourceMappingURL=goal-draft-edit-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goal-draft-edit-helpers.js","sources":["../../../../../src/features/milestone/edit/goal-drafts/goal-draft-edit-helpers.ts"],"sourcesContent":["import type { IChapter } from '../../create/comps/chapter-item/chapter-item-types';\nimport type { IMilestoneData } from '../../milestone-list-container/milestone-list/milestone-list-types';\n\nimport { getFormChapters } from '../../create/utils';\n\nconst transformRecommendedChaptersFromMilestonePlan = (\n recommendedChaptersInPlan: IMilestoneData['recommended_chapters'],\n) => {\n let recommendedChapters: IChapter[] = [];\n\n if (recommendedChaptersInPlan) {\n recommendedChapters = getFormChapters(\n recommendedChaptersInPlan.map(chapter => ({\n ...chapter,\n id: chapter.id,\n added: false,\n recommended: true,\n })),\n true,\n );\n }\n\n return recommendedChapters;\n};\n\nexport { transformRecommendedChaptersFromMilestonePlan };\n"],"names":["transformRecommendedChaptersFromMilestonePlan","recommendedChaptersInPlan","recommendedChapters","getFormChapters","chapter"],"mappings":";AAKM,MAAAA,IAAgD,CACpDC,MACG;AACH,MAAIC,IAAkC,CAAA;AAEtC,SAAID,MACoBC,IAAAC;AAAA,IACpBF,EAA0B,IAAI,CAAYG,OAAA;AAAA,MACxC,GAAGA;AAAA,MACH,IAAIA,EAAQ;AAAA,MACZ,OAAO;AAAA,MACP,aAAa;AAAA,IAAA,EACb;AAAA,IACF;AAAA,EAAA,IAIGF;AACT;"}
@@ -2,14 +2,14 @@ import { GOAL_CATEGORY as u } from "../constants.js";
2
2
  import { checkEnrollmentAvailable as _ } from "../create/comps/test-type-step/test-type-utils.js";
3
3
  import { getRegionCodeBasedOnCountryCode as f } from "../create/milestone-create-helpers.js";
4
4
  import { getLearningSheetData as g, getTotalSupplementarySheetCount as h } from "../create/utils/index.js";
5
- import { transformRecommendedChaptersFromMilestonePlan as y } from "../drafts/edit/draft-edit-helpers.js";
5
+ import { transformRecommendedChaptersFromMilestonePlan as y } from "./goal-drafts/goal-draft-edit-helpers.js";
6
6
  import { formatDate as C } from "../../../node_modules/date-fns/format.js";
7
7
  const { SCHOOL_SUCCESS: T, TEST_PREP: E, ENRICHMENT: I } = u, c = (t, r, s) => {
8
8
  const m = t.committed;
9
9
  m[r] = !0;
10
10
  const o = r;
11
11
  t[o] = s;
12
- }, G = (t, r = !1) => t.map((s) => {
12
+ }, L = (t, r = !1) => t.map((s) => {
13
13
  const {
14
14
  id: m,
15
15
  code: o = "",
@@ -55,7 +55,6 @@ const { SCHOOL_SUCCESS: T, TEST_PREP: E, ENRICHMENT: I } = u, c = (t, r, s) => {
55
55
  milestoneEndDate: !0,
56
56
  region: !0,
57
57
  chapterGoalCategory: !0,
58
- schoolGooglePlaceData: !0,
59
58
  milestoneEndDateIsTentative: !0
60
59
  },
61
60
  reviewed: {}
@@ -67,7 +66,7 @@ const { SCHOOL_SUCCESS: T, TEST_PREP: E, ENRICHMENT: I } = u, c = (t, r, s) => {
67
66
  "yyyy-MM-dd"
68
67
  ), c(e, "region", d ?? "DUMMY"), e.major = t.selected_major ?? "DUMMY_MAJOR";
69
68
  const p = (i = t.user_milestone_plan) == null ? void 0 : i.user_chapters;
70
- p ? e.primaryChaptersList = G(p).map((n) => ({
69
+ p ? e.primaryChaptersList = L(p).map((n) => ({
71
70
  ...n,
72
71
  added: !0
73
72
  })) : e.primaryChaptersList = [];
@@ -80,7 +79,7 @@ const { SCHOOL_SUCCESS: T, TEST_PREP: E, ENRICHMENT: I } = u, c = (t, r, s) => {
80
79
  ], {
81
80
  ...e
82
81
  };
83
- }, P = ({
82
+ }, U = ({
84
83
  field: t,
85
84
  isFieldCommited: r,
86
85
  prevFormData: s,
@@ -98,7 +97,7 @@ const { SCHOOL_SUCCESS: T, TEST_PREP: E, ENRICHMENT: I } = u, c = (t, r, s) => {
98
97
  return !1;
99
98
  };
100
99
  export {
101
- P as checkIfCommittedFieldIsUpdated,
100
+ U as checkIfCommittedFieldIsUpdated,
102
101
  v as transformGoalData
103
102
  };
104
103
  //# sourceMappingURL=goal-edit-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"goal-edit-helpers.js","sources":["../../../../src/features/milestone/edit/goal-edit-helpers.ts"],"sourcesContent":["import type { IChapterDataProps } from '../../chapters/chapter/chapter-types';\nimport type { IChapter } from '../create/comps/chapter-item/chapter-item-types';\nimport type {\n IMileStoneFormFields,\n IMilestoneConfig,\n IMilestoneFormData,\n TCourseStream,\n TEnrollmentTypes,\n TMilesonteFormStateField,\n} from '../create/milestone-create-types';\nimport type { IMilestoneData } from '../milestone-list-container/milestone-list/milestone-list-types';\n\nimport { format } from 'date-fns';\n\nimport { GOAL_CATEGORY } from '../constants';\nimport { checkEnrollmentAvailable } from '../create/comps/test-type-step/test-type-utils';\nimport { getRegionCodeBasedOnCountryCode } from '../create/milestone-create-helpers';\nimport { getLearningSheetData, getTotalSupplementarySheetCount } from '../create/utils';\nimport { transformRecommendedChaptersFromMilestonePlan } from '../drafts/edit/draft-edit-helpers';\n\nconst { SCHOOL_SUCCESS, TEST_PREP, ENRICHMENT } = GOAL_CATEGORY;\n\ntype TTransformDataProps = {\n currentMilestoneData: IMilestoneData;\n config: IMilestoneConfig;\n courseStream: TCourseStream;\n enrollmentType?: TEnrollmentTypes;\n currentCountryCode?: string;\n};\n\ninterface ITransformData {\n (props: TTransformDataProps): IMilestoneFormData;\n}\n\ntype TFormValues = IMilestoneFormData[keyof IMileStoneFormFields];\ntype TFormFields = keyof IMileStoneFormFields | 'committed';\ntype TFormData = Record<TFormFields, TFormValues> | IMilestoneFormData;\n\nconst commitAndAdd = (formData: TFormData, field: TFormFields, value: TFormValues) => {\n const committedFormData = formData.committed as Record<TFormFields, boolean>;\n\n committedFormData[field] = true;\n\n const formDataFiledValue = field as keyof IMileStoneFormFields;\n\n formData[formDataFiledValue] = value;\n};\n\nconst getFormChapters = (chapters: IChapterDataProps[], editMode = false): IChapter[] => {\n return chapters.map(chapter => {\n const {\n id,\n code = '',\n chapter_code,\n image_url,\n name,\n chapter_tags,\n state,\n sheets_data: sheetsData,\n program_id: programId,\n } = chapter;\n\n return {\n id,\n code: code || chapter_code,\n chapter_code,\n image_url,\n name,\n chapter_tags,\n state,\n added: !editMode,\n program_id: programId,\n learning_sheet_data: getLearningSheetData(sheetsData.lessons),\n total_supplementary_sheets: getTotalSupplementarySheetCount(\n sheetsData.supplementary_sheets_grouped,\n ),\n };\n });\n};\n\nconst transformGoalData: ITransformData = ({\n currentMilestoneData,\n config,\n courseStream,\n enrollmentType,\n currentCountryCode,\n}) => {\n //TODO: We need country code from currentMilestoneData\n const regionCode = currentCountryCode\n ? getRegionCodeBasedOnCountryCode(currentCountryCode)\n : undefined;\n\n const transformedData: IMilestoneFormData = {\n testType: undefined,\n committed: {\n testType: true,\n grade: true,\n schoolInfo: true,\n board: true,\n major: false,\n milestoneEndDate: true,\n region: true,\n chapterGoalCategory: true,\n\n schoolGooglePlaceData: true,\n milestoneEndDateIsTentative: true,\n },\n reviewed: {},\n };\n\n const { goal_category: goalCategory } = currentMilestoneData || {};\n\n if (goalCategory) {\n if (goalCategory === SCHOOL_SUCCESS) {\n commitAndAdd(transformedData, 'testType', 'no-test');\n } else if (goalCategory === TEST_PREP) {\n commitAndAdd(transformedData, 'testType', 'non-standardized');\n } else if (goalCategory === ENRICHMENT) {\n commitAndAdd(transformedData, 'testType', 'standardized');\n }\n }\n\n transformedData.chapterGoalCategory = {\n primaryGoalCategory: config.goal_curriculum_map.find(goalData => {\n if (goalData.goal_code !== currentMilestoneData.goal_code) return false;\n\n if (goalData.course_stream !== courseStream) return false;\n\n return checkEnrollmentAvailable(goalData, enrollmentType);\n }),\n };\n\n transformedData.grade = currentMilestoneData.grade;\n transformedData.board = currentMilestoneData.board;\n transformedData.milestoneEndDate = format(\n new Date(currentMilestoneData.milestone_date_ts * 1000),\n 'yyyy-MM-dd',\n );\n commitAndAdd(transformedData, 'region', regionCode ?? 'DUMMY');\n transformedData.major = currentMilestoneData.selected_major ?? 'DUMMY_MAJOR';\n\n const userChapters = currentMilestoneData.user_milestone_plan?.user_chapters;\n\n if (userChapters) {\n transformedData.primaryChaptersList = getFormChapters(userChapters).map(chapter => {\n return {\n ...chapter,\n added: true,\n };\n });\n } else {\n transformedData.primaryChaptersList = [];\n }\n\n const recommendedChapters = transformRecommendedChaptersFromMilestonePlan(\n currentMilestoneData.recommended_chapters,\n );\n\n transformedData.primaryChaptersList = [\n ...(transformedData.primaryChaptersList ?? []),\n ...recommendedChapters,\n ];\n\n return {\n ...transformedData,\n };\n};\n\ninterface ICheckIfCommittedFieldIsUpdated {\n (params: {\n field: TMilesonteFormStateField;\n isFieldCommited: boolean;\n prevFormData: IMilestoneFormData;\n newValueOfField: unknown;\n formDataStateRef: IMilestoneFormData;\n }): boolean;\n}\n\n/**\n * This method accepts commited changes in the form tree and checks if the committed fields are actually updated from the original value.\n *\n * @param field - The field to be checked for updates.\n * @param isFieldCommited - Is field committed\n * @param prevFormData - The previous form data.\n * @param newValueOfField - The value of the field in updated form data.\n * @param formDataStateRef - The reference to the current form data state.\n *\n * @returns The updated field if any, or null if no updates were made.\n */\n\nconst checkIfCommittedFieldIsUpdated: ICheckIfCommittedFieldIsUpdated = ({\n field,\n isFieldCommited,\n prevFormData,\n newValueOfField,\n formDataStateRef,\n}) => {\n if (isFieldCommited && prevFormData.committed?.[field] !== isFieldCommited) {\n if (field === 'schoolInfo') {\n if (formDataStateRef.schoolInfo?.countryCode !== prevFormData.schoolInfo?.countryCode)\n return true;\n } else if (formDataStateRef[field] !== newValueOfField) {\n return true;\n }\n }\n\n return false;\n};\n\nexport { checkIfCommittedFieldIsUpdated, transformGoalData };\n"],"names":["SCHOOL_SUCCESS","TEST_PREP","ENRICHMENT","GOAL_CATEGORY","commitAndAdd","formData","field","value","committedFormData","formDataFiledValue","getFormChapters","chapters","editMode","chapter","id","code","chapter_code","image_url","name","chapter_tags","state","sheetsData","programId","getLearningSheetData","getTotalSupplementarySheetCount","transformGoalData","currentMilestoneData","config","courseStream","enrollmentType","currentCountryCode","regionCode","getRegionCodeBasedOnCountryCode","transformedData","goalCategory","goalData","checkEnrollmentAvailable","format","userChapters","_a","recommendedChapters","transformRecommendedChaptersFromMilestonePlan","checkIfCommittedFieldIsUpdated","isFieldCommited","prevFormData","newValueOfField","formDataStateRef","_b","_c"],"mappings":"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"}
1
+ {"version":3,"file":"goal-edit-helpers.js","sources":["../../../../src/features/milestone/edit/goal-edit-helpers.ts"],"sourcesContent":["import type { IChapterDataProps } from '../../chapters/chapter/chapter-types';\nimport type { IChapter } from '../create/comps/chapter-item/chapter-item-types';\nimport type {\n IMileStoneFormFields,\n IMilestoneConfig,\n IMilestoneFormData,\n TCourseStream,\n TEnrollmentTypes,\n TMilestoneFormStateField,\n} from '../create/milestone-create-types';\nimport type { IMilestoneData } from '../milestone-list-container/milestone-list/milestone-list-types';\n\nimport { format } from 'date-fns';\n\nimport { GOAL_CATEGORY } from '../constants';\nimport { checkEnrollmentAvailable } from '../create/comps/test-type-step/test-type-utils';\nimport { getRegionCodeBasedOnCountryCode } from '../create/milestone-create-helpers';\nimport { getLearningSheetData, getTotalSupplementarySheetCount } from '../create/utils';\nimport { transformRecommendedChaptersFromMilestonePlan } from './goal-drafts/goal-draft-edit-helpers';\n\nconst { SCHOOL_SUCCESS, TEST_PREP, ENRICHMENT } = GOAL_CATEGORY;\n\ntype TTransformDataProps = {\n currentMilestoneData: IMilestoneData;\n config: IMilestoneConfig;\n courseStream: TCourseStream;\n enrollmentType?: TEnrollmentTypes;\n currentCountryCode?: string;\n};\n\ninterface ITransformData {\n (props: TTransformDataProps): IMilestoneFormData;\n}\n\ntype TFormValues = IMilestoneFormData[keyof IMileStoneFormFields];\ntype TFormFields = keyof IMileStoneFormFields | 'committed';\ntype TFormData = Record<TFormFields, TFormValues> | IMilestoneFormData;\n\nconst commitAndAdd = (formData: TFormData, field: TFormFields, value: TFormValues) => {\n const committedFormData = formData.committed as Record<TFormFields, boolean>;\n\n committedFormData[field] = true;\n\n const formDataFiledValue = field as keyof IMileStoneFormFields;\n\n formData[formDataFiledValue] = value;\n};\n\nconst getFormChapters = (chapters: IChapterDataProps[], editMode = false): IChapter[] => {\n return chapters.map(chapter => {\n const {\n id,\n code = '',\n chapter_code,\n image_url,\n name,\n chapter_tags,\n state,\n sheets_data: sheetsData,\n program_id: programId,\n } = chapter;\n\n return {\n id,\n code: code || chapter_code,\n chapter_code,\n image_url,\n name,\n chapter_tags,\n state,\n added: !editMode,\n program_id: programId,\n learning_sheet_data: getLearningSheetData(sheetsData.lessons),\n total_supplementary_sheets: getTotalSupplementarySheetCount(\n sheetsData.supplementary_sheets_grouped,\n ),\n };\n });\n};\n\nconst transformGoalData: ITransformData = ({\n currentMilestoneData,\n config,\n courseStream,\n enrollmentType,\n currentCountryCode,\n}) => {\n //TODO: We need country code from currentMilestoneData\n const regionCode = currentCountryCode\n ? getRegionCodeBasedOnCountryCode(currentCountryCode)\n : undefined;\n\n const transformedData: IMilestoneFormData = {\n testType: undefined,\n committed: {\n testType: true,\n grade: true,\n schoolInfo: true,\n board: true,\n major: false,\n milestoneEndDate: true,\n region: true,\n chapterGoalCategory: true,\n\n milestoneEndDateIsTentative: true,\n },\n reviewed: {},\n };\n\n const { goal_category: goalCategory } = currentMilestoneData || {};\n\n if (goalCategory) {\n if (goalCategory === SCHOOL_SUCCESS) {\n commitAndAdd(transformedData, 'testType', 'no-test');\n } else if (goalCategory === TEST_PREP) {\n commitAndAdd(transformedData, 'testType', 'non-standardized');\n } else if (goalCategory === ENRICHMENT) {\n commitAndAdd(transformedData, 'testType', 'standardized');\n }\n }\n\n transformedData.chapterGoalCategory = {\n primaryGoalCategory: config.goal_curriculum_map.find(goalData => {\n if (goalData.goal_code !== currentMilestoneData.goal_code) return false;\n\n if (goalData.course_stream !== courseStream) return false;\n\n return checkEnrollmentAvailable(goalData, enrollmentType);\n }),\n };\n\n transformedData.grade = currentMilestoneData.grade;\n transformedData.board = currentMilestoneData.board;\n transformedData.milestoneEndDate = format(\n new Date(currentMilestoneData.milestone_date_ts * 1000),\n 'yyyy-MM-dd',\n );\n commitAndAdd(transformedData, 'region', regionCode ?? 'DUMMY');\n transformedData.major = currentMilestoneData.selected_major ?? 'DUMMY_MAJOR';\n\n const userChapters = currentMilestoneData.user_milestone_plan?.user_chapters;\n\n if (userChapters) {\n transformedData.primaryChaptersList = getFormChapters(userChapters).map(chapter => {\n return {\n ...chapter,\n added: true,\n };\n });\n } else {\n transformedData.primaryChaptersList = [];\n }\n\n const recommendedChapters = transformRecommendedChaptersFromMilestonePlan(\n currentMilestoneData.recommended_chapters,\n );\n\n transformedData.primaryChaptersList = [\n ...(transformedData.primaryChaptersList ?? []),\n ...recommendedChapters,\n ];\n\n return {\n ...transformedData,\n };\n};\n\ninterface ICheckIfCommittedFieldIsUpdated {\n (params: {\n field: TMilestoneFormStateField;\n isFieldCommited: boolean;\n prevFormData: IMilestoneFormData;\n newValueOfField: unknown;\n formDataStateRef: IMilestoneFormData;\n }): boolean;\n}\n\n/**\n * This method accepts commited changes in the form tree and checks if the committed fields are actually updated from the original value.\n *\n * @param field - The field to be checked for updates.\n * @param isFieldCommited - Is field committed\n * @param prevFormData - The previous form data.\n * @param newValueOfField - The value of the field in updated form data.\n * @param formDataStateRef - The reference to the current form data state.\n *\n * @returns The updated field if any, or null if no updates were made.\n */\n\nconst checkIfCommittedFieldIsUpdated: ICheckIfCommittedFieldIsUpdated = ({\n field,\n isFieldCommited,\n prevFormData,\n newValueOfField,\n formDataStateRef,\n}) => {\n if (isFieldCommited && prevFormData.committed?.[field] !== isFieldCommited) {\n if (field === 'schoolInfo') {\n if (formDataStateRef.schoolInfo?.countryCode !== prevFormData.schoolInfo?.countryCode)\n return true;\n } else if (formDataStateRef[field] !== newValueOfField) {\n return true;\n }\n }\n\n return false;\n};\n\nexport { checkIfCommittedFieldIsUpdated, transformGoalData };\n"],"names":["SCHOOL_SUCCESS","TEST_PREP","ENRICHMENT","GOAL_CATEGORY","commitAndAdd","formData","field","value","committedFormData","formDataFiledValue","getFormChapters","chapters","editMode","chapter","id","code","chapter_code","image_url","name","chapter_tags","state","sheetsData","programId","getLearningSheetData","getTotalSupplementarySheetCount","transformGoalData","currentMilestoneData","config","courseStream","enrollmentType","currentCountryCode","regionCode","getRegionCodeBasedOnCountryCode","transformedData","goalCategory","goalData","checkEnrollmentAvailable","format","userChapters","_a","recommendedChapters","transformRecommendedChaptersFromMilestonePlan","checkIfCommittedFieldIsUpdated","isFieldCommited","prevFormData","newValueOfField","formDataStateRef","_b","_c"],"mappings":"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"}
@@ -1,15 +1,14 @@
1
- import { getFormChapters as l } from "../create/utils/index.js";
2
- import { transformRecommendedChaptersFromMilestonePlan as _ } from "../drafts/edit/draft-edit-helpers.js";
3
- import { formatDate as f } from "../../../node_modules/date-fns/format.js";
4
- const a = (t, o, e) => {
5
- t.committed[o] = !0, t[o] = e;
6
- }, u = (t, o) => {
1
+ import { getFormChapters as _ } from "../create/utils/index.js";
2
+ import { transformRecommendedChaptersFromMilestonePlan as f } from "./goal-drafts/goal-draft-edit-helpers.js";
3
+ import { formatDate as y } from "../../../node_modules/date-fns/format.js";
4
+ const m = (t, s, e) => {
5
+ t.committed[s] = !0, t[s] = e;
6
+ }, h = (t, s) => {
7
7
  const e = {
8
8
  committed: {
9
9
  testType: !0,
10
10
  grade: !0,
11
11
  schoolInfo: !0,
12
- schoolGooglePlaceData: !0,
13
12
  board: !0,
14
13
  major: !1,
15
14
  milestoneEndDate: !0,
@@ -17,27 +16,27 @@ const a = (t, o, e) => {
17
16
  region: !0
18
17
  },
19
18
  reviewed: {}
20
- }, { academic_event_id: s, milestone_name: i } = t || {}, { academic_events: n = [] } = o || {}, c = n.find(({ id: m }) => m === s), { event_name: r, event_type: d } = c || {};
21
- s && (e.committed.academicEventId = !0, e.academicEventId = s), r ? (e.committed.testName = !0, e.testName = r) : (e.committed.testName = !0, e.testName = i), d && (d === "SCHOOL_TEST" ? a(e, "testType", "non-standardized") : d === "STANDARDISED_TEST" ? (a(e, "testType", "standardized"), a(e, "standardizedTestType", "unknown"), a(e, "standardizedTestPreparationMethod", "cuemath-curricullum"), a(e, "region", "DUMMY"), a(e, "board", "DUMMY")) : d === "COURSE_COMPLETION" ? a(e, "testType", "no-test") : a(e, "testType", void 0)), e.grade = t.grade, e.board = t.board, e.milestoneEndDate = f(
19
+ }, { academic_event_id: d, milestone_name: i } = t || {}, { academic_events: n = [] } = s || {}, c = n.find(({ id: a }) => a === d), { event_name: r, event_type: o } = c || {};
20
+ d && (e.committed.academicEventId = !0, e.academicEventId = d), r ? (e.committed.testName = !0, e.testName = r) : (e.committed.testName = !0, e.testName = i), o && (o === "SCHOOL_TEST" ? m(e, "testType", "non-standardized") : o === "STANDARDISED_TEST" ? (m(e, "testType", "standardized"), m(e, "region", "DUMMY"), m(e, "board", "DUMMY")) : o === "COURSE_COMPLETION" ? m(e, "testType", "no-test") : m(e, "testType", void 0)), e.grade = t.grade, e.board = t.board, e.milestoneEndDate = y(
22
21
  new Date(t.milestone_date_ts * 1e3),
23
22
  "yyyy-MM-dd"
24
- ), e.schoolInfo = t.schoolInfo ?? {}, e.schoolGooglePlaceData = t.schoolGooglePlaceData || {}, a(e, "region", "DUMMY"), e.major = t.major ?? "DUMMY_MAJOR", t.user_milestone_plan ? e.primaryChaptersList = l(
25
- t.user_milestone_plan.user_chapters.map((m) => ({
26
- ...m,
27
- id: m.chapter_id
23
+ ), e.schoolInfo = t.schoolInfo ?? {}, m(e, "region", "DUMMY"), e.major = t.major ?? "DUMMY_MAJOR", t.user_milestone_plan ? e.primaryChaptersList = _(
24
+ t.user_milestone_plan.user_chapters.map((a) => ({
25
+ ...a,
26
+ id: a.chapter_id
28
27
  }))
29
- ).map((m) => ({ ...m, added: !0 })) : e.primaryChaptersList = [];
30
- const p = _(
28
+ ).map((a) => ({ ...a, added: !0 })) : e.primaryChaptersList = [];
29
+ const p = f(
31
30
  t.recommended_chapters
32
31
  );
33
32
  return e.primaryChaptersList = [
34
33
  ...e.primaryChaptersList ?? [],
35
34
  ...p
36
- ], e.metaRecommendedChaptersQuery = t.recommended_chapter_filters, {
35
+ ], {
37
36
  ...e
38
37
  };
39
38
  };
40
39
  export {
41
- u as transformData
40
+ h as transformData
42
41
  };
43
42
  //# sourceMappingURL=milestone-edit-helpers.js.map