@cuemath/leap 2.8.60-gs1 → 2.8.60

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 (166) hide show
  1. package/dist/assets/illustrations/illustrations.js +0 -9
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/line-icons/icons/bin2.js +8 -7
  4. package/dist/assets/line-icons/icons/bin2.js.map +1 -1
  5. package/dist/assets/line-icons/icons/closed-eye.js +23 -0
  6. package/dist/assets/line-icons/icons/closed-eye.js.map +1 -0
  7. package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js +33 -98
  8. package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js.map +1 -1
  9. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js +47 -76
  10. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
  11. package/dist/features/chapters/chapters-list/chapters-list-styled.js +5 -5
  12. package/dist/features/chapters/chapters-list/chapters-list-styled.js.map +1 -1
  13. package/dist/features/chapters/chapters-list/chapters-list.js +70 -65
  14. package/dist/features/chapters/chapters-list/chapters-list.js.map +1 -1
  15. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js +4 -12
  16. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js.map +1 -1
  17. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +105 -128
  18. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
  19. package/dist/features/milestone/create/comps/milestone-progress-v2/milestone-progress-v2.js +92 -0
  20. package/dist/features/milestone/create/comps/milestone-progress-v2/milestone-progress-v2.js.map +1 -0
  21. package/dist/features/milestone/create/comps/milestone-progress-v2/styled.js +25 -0
  22. package/dist/features/milestone/create/comps/milestone-progress-v2/styled.js.map +1 -0
  23. package/dist/features/milestone/create/milestone-create.js +43 -49
  24. package/dist/features/milestone/create/milestone-create.js.map +1 -1
  25. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js +1 -1
  26. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js.map +1 -1
  27. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js +53 -51
  28. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
  29. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +40 -42
  30. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
  31. package/dist/features/milestone/edit/goal-edit-container.js +62 -64
  32. package/dist/features/milestone/edit/goal-edit-container.js.map +1 -1
  33. package/dist/features/milestone/edit/milestone-edit-container.js +52 -54
  34. package/dist/features/milestone/edit/milestone-edit-container.js.map +1 -1
  35. package/dist/features/milestone/milestone-list-container/api/get-milestones.js +17 -9
  36. package/dist/features/milestone/milestone-list-container/api/get-milestones.js.map +1 -1
  37. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +102 -136
  38. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  39. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element-styled.js +13 -0
  40. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element-styled.js.map +1 -0
  41. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element.js +38 -0
  42. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element.js.map +1 -0
  43. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +123 -107
  44. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
  45. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +176 -157
  46. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
  47. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js +10 -24
  48. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js.map +1 -1
  49. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +81 -76
  50. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  51. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-utils.js +22 -10
  52. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-utils.js.map +1 -1
  53. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-status.js +53 -0
  54. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-status.js.map +1 -0
  55. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js +37 -70
  56. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js.map +1 -1
  57. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +174 -114
  58. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
  59. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-info.js +25 -0
  60. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-info.js.map +1 -0
  61. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-rank.js +16 -29
  62. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-rank.js.map +1 -1
  63. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-styled.js +23 -19
  64. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-styled.js.map +1 -1
  65. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome.js +35 -23
  66. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome.js.map +1 -1
  67. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +36 -34
  68. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  69. package/dist/features/milestone/milestone-resources/resources-list/resources-list-styled.js +1 -1
  70. package/dist/features/milestone/milestone-resources/resources-list/resources-list-styled.js.map +1 -1
  71. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +78 -96
  72. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
  73. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +18 -16
  74. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
  75. package/dist/features/milestone/milestone-tests/tests-list/tests-list.js +68 -77
  76. package/dist/features/milestone/milestone-tests/tests-list/tests-list.js.map +1 -1
  77. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.js +3 -4
  78. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.js.map +1 -1
  79. package/dist/features/sheets/utils/is-v3-worksheet.js.map +1 -1
  80. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +29 -30
  81. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
  82. package/dist/features/ui/constants/z-index.js +1 -1
  83. package/dist/features/ui/constants/z-index.js.map +1 -1
  84. package/dist/features/ui/context-menu/context-menu-styled.js +14 -28
  85. package/dist/features/ui/context-menu/context-menu-styled.js.map +1 -1
  86. package/dist/features/ui/context-menu/context-menu.js +15 -30
  87. package/dist/features/ui/context-menu/context-menu.js.map +1 -1
  88. package/dist/features/ui/theme/button.js +107 -22
  89. package/dist/features/ui/theme/button.js.map +1 -1
  90. package/dist/index.d.ts +12 -191
  91. package/dist/index.js +471 -489
  92. package/dist/index.js.map +1 -1
  93. package/package.json +1 -1
  94. package/dist/assets/line-icons/icons/alarm.js +0 -41
  95. package/dist/assets/line-icons/icons/alarm.js.map +0 -1
  96. package/dist/assets/line-icons/icons/dart.js +0 -23
  97. package/dist/assets/line-icons/icons/dart.js.map +0 -1
  98. package/dist/assets/line-icons/icons/exclamation.js +0 -26
  99. package/dist/assets/line-icons/icons/exclamation.js.map +0 -1
  100. package/dist/assets/line-icons/icons/home2.js +0 -25
  101. package/dist/assets/line-icons/icons/home2.js.map +0 -1
  102. package/dist/assets/line-icons/icons/important.js +0 -23
  103. package/dist/assets/line-icons/icons/important.js.map +0 -1
  104. package/dist/assets/line-icons/icons/puzzle.js +0 -25
  105. package/dist/assets/line-icons/icons/puzzle.js.map +0 -1
  106. package/dist/assets/line-icons/icons/recap.js +0 -32
  107. package/dist/assets/line-icons/icons/recap.js.map +0 -1
  108. package/dist/assets/line-icons/icons/skip-colored.js +0 -43
  109. package/dist/assets/line-icons/icons/skip-colored.js.map +0 -1
  110. package/dist/assets/line-icons/icons/status.js +0 -41
  111. package/dist/assets/line-icons/icons/status.js.map +0 -1
  112. package/dist/assets/line-icons/icons/testtube.js +0 -33
  113. package/dist/assets/line-icons/icons/testtube.js.map +0 -1
  114. package/dist/features/chapters-v2/api/chapter.js +0 -10
  115. package/dist/features/chapters-v2/api/chapter.js.map +0 -1
  116. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +0 -112
  117. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +0 -1
  118. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js +0 -26
  119. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js.map +0 -1
  120. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +0 -69
  121. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +0 -1
  122. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js +0 -90
  123. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js.map +0 -1
  124. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js +0 -97
  125. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js.map +0 -1
  126. package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js +0 -52
  127. package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js.map +0 -1
  128. package/dist/features/chapters-v2/chapter-details/chapter-details.js +0 -103
  129. package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +0 -1
  130. package/dist/features/chapters-v2/comps/node-card/border-path-animation.js +0 -13
  131. package/dist/features/chapters-v2/comps/node-card/border-path-animation.js.map +0 -1
  132. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +0 -154
  133. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +0 -1
  134. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +0 -12
  135. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +0 -1
  136. package/dist/features/chapters-v2/comps/node-card/node-card.js +0 -12
  137. package/dist/features/chapters-v2/comps/node-card/node-card.js.map +0 -1
  138. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js +0 -32
  139. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js.map +0 -1
  140. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js +0 -31
  141. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js.map +0 -1
  142. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +0 -164
  143. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +0 -1
  144. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +0 -184
  145. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +0 -1
  146. package/dist/features/chapters-v2/comps/tag/tag-styled.js +0 -13
  147. package/dist/features/chapters-v2/comps/tag/tag-styled.js.map +0 -1
  148. package/dist/features/chapters-v2/comps/tag/tag.js +0 -28
  149. package/dist/features/chapters-v2/comps/tag/tag.js.map +0 -1
  150. package/dist/features/chapters-v2/constants/block-constants.js +0 -20
  151. package/dist/features/chapters-v2/constants/block-constants.js.map +0 -1
  152. package/dist/features/chapters-v2/constants/node-constants.js +0 -15
  153. package/dist/features/chapters-v2/constants/node-constants.js.map +0 -1
  154. package/dist/features/chapters-v2/utils/index.js +0 -40
  155. package/dist/features/chapters-v2/utils/index.js.map +0 -1
  156. package/dist/features/chapters-v2/utils/node-card-utils.js +0 -78
  157. package/dist/features/chapters-v2/utils/node-card-utils.js.map +0 -1
  158. package/dist/static/chapter-header-bg-2.c8d96894.svg +0 -1
  159. package/dist/static/node-custom-test-bg.d3b757be.svg +0 -1
  160. package/dist/static/node-learn-bg.b61f815c.svg +0 -1
  161. package/dist/static/node-practice-bg.16cbaf2a.svg +0 -1
  162. package/dist/static/node-project-bg.e6a33e28.svg +0 -1
  163. package/dist/static/node-puzzle-bg.3422135c.svg +0 -1
  164. package/dist/static/node-recap-bg.546154e4.svg +0 -1
  165. package/dist/static/node-test-prep-bg.42c0b9c4.svg +0 -1
  166. package/dist/static/node-video-bg.3df3f73a.svg +0 -1
@@ -0,0 +1,92 @@
1
+ import { jsx as t, jsxs as c } from "react/jsx-runtime";
2
+ import { memo as C, Fragment as D } from "react";
3
+ import { ILLUSTRATIONS as R } from "../../../../../assets/illustrations/illustrations.js";
4
+ import L from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
5
+ import $ from "../../../../ui/image/image.js";
6
+ import a from "../../../../ui/layout/flex-view.js";
7
+ import x from "../../../../ui/text/text.js";
8
+ import { getSheetCompletionPercentage as G } from "../milestone-progress/milestone-progress-utils.js";
9
+ import { Progress as u } from "./styled.js";
10
+ const {
11
+ PRACTICED_SHIELD_GREY: T,
12
+ PRACTICED_SHIELD_GREEN: b,
13
+ LEARNED_SHIELD_GRAY: N,
14
+ LEARNED_SHIELD_GREEN: H,
15
+ MASTERED_SHIELD_GRAY: k,
16
+ MASTERED_SHIELD_GREEN: y
17
+ } = R, B = C(
18
+ ({ milestoneId: d, showProgress: e, progressInfo: p }) => {
19
+ const {
20
+ familiar_sheets: n = 0,
21
+ proficient_sheets: m = 0,
22
+ mastered_sheets: s = 0,
23
+ total_core_sheets: o = 0
24
+ } = p || {}, i = o > 0, h = i && n === o, E = i && m === o, S = i && s === o, l = e ? 40 : 20, f = [
25
+ {
26
+ imageUrl: h ? H : N,
27
+ completedSheetsCount: n,
28
+ key: "milestone-widget-learned-badge-data"
29
+ },
30
+ {
31
+ imageUrl: E ? b : T,
32
+ completedSheetsCount: m,
33
+ key: "milestone-widget-practiced-badge-data"
34
+ },
35
+ {
36
+ imageUrl: S ? y : k,
37
+ completedSheetsCount: s,
38
+ key: "milestone-widget-mastered-badge-data"
39
+ }
40
+ ];
41
+ return /* @__PURE__ */ t(a, { $flexGapX: 2, id: `milestone-progress-${d}`, children: /* @__PURE__ */ t(
42
+ a,
43
+ {
44
+ $flexDirection: "row",
45
+ $flexGapX: e ? 1.5 : 0.75,
46
+ $flexWrap: !e,
47
+ children: f.map((_) => {
48
+ const { key: g, imageUrl: I, completedSheetsCount: A } = _, r = G(
49
+ A,
50
+ o
51
+ );
52
+ return /* @__PURE__ */ t(D, { children: /* @__PURE__ */ t(
53
+ L,
54
+ {
55
+ position: "bottom",
56
+ renderAs: "secondary",
57
+ tooltipItem: `${r}%`,
58
+ hidden: !e,
59
+ children: /* @__PURE__ */ c(
60
+ a,
61
+ {
62
+ $flexDirection: e ? "column" : "row",
63
+ $flexGapX: e ? 0.5 : 0.25,
64
+ $alignItems: "center",
65
+ $width: "100%",
66
+ children: [
67
+ /* @__PURE__ */ t($, { withLoader: !0, src: I, width: l, height: l }),
68
+ e ? /* @__PURE__ */ t(u, { $progress: r }) : /* @__PURE__ */ c(
69
+ x,
70
+ {
71
+ $renderAs: "ac4-black",
72
+ $color: r === 100 ? "GREEN_5" : "BLACK_T_60",
73
+ children: [
74
+ r,
75
+ "%"
76
+ ]
77
+ }
78
+ )
79
+ ]
80
+ }
81
+ )
82
+ }
83
+ ) }, g);
84
+ })
85
+ }
86
+ ) });
87
+ }
88
+ );
89
+ export {
90
+ B as default
91
+ };
92
+ //# sourceMappingURL=milestone-progress-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milestone-progress-v2.js","sources":["../../../../../../src/features/milestone/create/comps/milestone-progress-v2/milestone-progress-v2.tsx"],"sourcesContent":["import type { IMileStoneProgressInfoV2Props } from './types';\nimport type { FC } from 'react';\n\nimport { Fragment, memo } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Image from '../../../../ui/image/image';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { getSheetCompletionPercentage } from '../milestone-progress/milestone-progress-utils';\nimport * as Styled from './styled';\n\nconst {\n PRACTICED_SHIELD_GREY,\n PRACTICED_SHIELD_GREEN,\n LEARNED_SHIELD_GRAY,\n LEARNED_SHIELD_GREEN,\n MASTERED_SHIELD_GRAY,\n MASTERED_SHIELD_GREEN,\n} = ILLUSTRATIONS;\n\nconst MilestoneProgressInfoV2: FC<IMileStoneProgressInfoV2Props> = memo(\n ({ milestoneId, showProgress, progressInfo }) => {\n const {\n familiar_sheets: familiarSheets = 0,\n proficient_sheets: proficientSheets = 0,\n mastered_sheets: masteredSheets = 0,\n total_core_sheets: totalCoreSheets = 0,\n } = progressInfo || {};\n\n const hasCoreSheets = totalCoreSheets > 0;\n\n const hasCompletedLearningSheets = hasCoreSheets && familiarSheets === totalCoreSheets;\n const hasCompletedPracticeSheets = hasCoreSheets && proficientSheets === totalCoreSheets;\n const hasMasteredAllSheets = hasCoreSheets && masteredSheets === totalCoreSheets;\n\n const badgeSize = showProgress ? 40 : 20;\n const badgesInfo = [\n {\n imageUrl: hasCompletedLearningSheets ? LEARNED_SHIELD_GREEN : LEARNED_SHIELD_GRAY,\n completedSheetsCount: familiarSheets,\n key: 'milestone-widget-learned-badge-data',\n },\n {\n imageUrl: hasCompletedPracticeSheets ? PRACTICED_SHIELD_GREEN : PRACTICED_SHIELD_GREY,\n completedSheetsCount: proficientSheets,\n key: 'milestone-widget-practiced-badge-data',\n },\n {\n imageUrl: hasMasteredAllSheets ? MASTERED_SHIELD_GREEN : MASTERED_SHIELD_GRAY,\n completedSheetsCount: masteredSheets,\n key: 'milestone-widget-mastered-badge-data',\n },\n ];\n\n return (\n <FlexView $flexGapX={2} id={`milestone-progress-${milestoneId}`}>\n <FlexView\n $flexDirection=\"row\"\n $flexGapX={showProgress ? 1.5 : 0.75}\n $flexWrap={!showProgress}\n >\n {badgesInfo.map(badgeData => {\n const { key, imageUrl, completedSheetsCount } = badgeData;\n\n const progressPercentage = getSheetCompletionPercentage(\n completedSheetsCount,\n totalCoreSheets,\n );\n\n return (\n <Fragment key={key}>\n <ArrowTooltip\n position=\"bottom\"\n renderAs=\"secondary\"\n tooltipItem={`${progressPercentage}%`}\n hidden={!showProgress}\n >\n <FlexView\n $flexDirection={showProgress ? 'column' : 'row'}\n $flexGapX={showProgress ? 0.5 : 0.25}\n $alignItems=\"center\"\n $width=\"100%\"\n >\n <Image withLoader src={imageUrl} width={badgeSize} height={badgeSize} />\n\n {showProgress ? (\n <Styled.Progress $progress={progressPercentage} />\n ) : (\n <Text\n $renderAs=\"ac4-black\"\n $color={progressPercentage === 100 ? 'GREEN_5' : 'BLACK_T_60'}\n >\n {progressPercentage}%\n </Text>\n )}\n </FlexView>\n </ArrowTooltip>\n </Fragment>\n );\n })}\n </FlexView>\n </FlexView>\n );\n },\n);\n\nexport default MilestoneProgressInfoV2;\n"],"names":["PRACTICED_SHIELD_GREY","PRACTICED_SHIELD_GREEN","LEARNED_SHIELD_GRAY","LEARNED_SHIELD_GREEN","MASTERED_SHIELD_GRAY","MASTERED_SHIELD_GREEN","ILLUSTRATIONS","MilestoneProgressInfoV2","memo","milestoneId","showProgress","progressInfo","familiarSheets","proficientSheets","masteredSheets","totalCoreSheets","hasCoreSheets","hasCompletedLearningSheets","hasCompletedPracticeSheets","hasMasteredAllSheets","badgeSize","badgesInfo","FlexView","jsx","badgeData","key","imageUrl","completedSheetsCount","progressPercentage","getSheetCompletionPercentage","Fragment","ArrowTooltip","jsxs","Image","Styled.Progress","Text"],"mappings":";;;;;;;;;AAaA,MAAM;AAAA,EACJ,uBAAAA;AAAA,EACA,wBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,uBAAAC;AACF,IAAIC,GAEEC,IAA6DC;AAAA,EACjE,CAAC,EAAE,aAAAC,GAAa,cAAAC,GAAc,cAAAC,QAAmB;AACzC,UAAA;AAAA,MACJ,iBAAiBC,IAAiB;AAAA,MAClC,mBAAmBC,IAAmB;AAAA,MACtC,iBAAiBC,IAAiB;AAAA,MAClC,mBAAmBC,IAAkB;AAAA,IAAA,IACnCJ,KAAgB,CAAA,GAEdK,IAAgBD,IAAkB,GAElCE,IAA6BD,KAAiBJ,MAAmBG,GACjEG,IAA6BF,KAAiBH,MAAqBE,GACnEI,IAAuBH,KAAiBF,MAAmBC,GAE3DK,IAAYV,IAAe,KAAK,IAChCW,IAAa;AAAA,MACjB;AAAA,QACE,UAAUJ,IAA6Bd,IAAuBD;AAAA,QAC9D,sBAAsBU;AAAA,QACtB,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,UAAUM,IAA6BjB,IAAyBD;AAAA,QAChE,sBAAsBa;AAAA,QACtB,KAAK;AAAA,MACP;AAAA,MACA;AAAA,QACE,UAAUM,IAAuBd,IAAwBD;AAAA,QACzD,sBAAsBU;AAAA,QACtB,KAAK;AAAA,MACP;AAAA,IAAA;AAGF,6BACGQ,GAAS,EAAA,WAAW,GAAG,IAAI,sBAAsBb,CAAW,IAC3D,UAAA,gBAAAc;AAAA,MAACD;AAAA,MAAA;AAAA,QACC,gBAAe;AAAA,QACf,WAAWZ,IAAe,MAAM;AAAA,QAChC,WAAW,CAACA;AAAA,QAEX,UAAAW,EAAW,IAAI,CAAaG,MAAA;AAC3B,gBAAM,EAAE,KAAAC,GAAK,UAAAC,GAAU,sBAAAC,EAAA,IAAyBH,GAE1CI,IAAqBC;AAAA,YACzBF;AAAA,YACAZ;AAAA,UAAA;AAGF,mCACGe,GACC,EAAA,UAAA,gBAAAP;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,UAAS;AAAA,cACT,aAAa,GAAGH,CAAkB;AAAA,cAClC,QAAQ,CAAClB;AAAA,cAET,UAAA,gBAAAsB;AAAA,gBAACV;AAAA,gBAAA;AAAA,kBACC,gBAAgBZ,IAAe,WAAW;AAAA,kBAC1C,WAAWA,IAAe,MAAM;AAAA,kBAChC,aAAY;AAAA,kBACZ,QAAO;AAAA,kBAEP,UAAA;AAAA,oBAAC,gBAAAa,EAAAU,GAAA,EAAM,YAAU,IAAC,KAAKP,GAAU,OAAON,GAAW,QAAQA,EAAW,CAAA;AAAA,oBAErEV,IACE,gBAAAa,EAAAW,GAAA,EAAgB,WAAWN,EAAoB,CAAA,IAEhD,gBAAAI;AAAA,sBAACG;AAAA,sBAAA;AAAA,wBACC,WAAU;AAAA,wBACV,QAAQP,MAAuB,MAAM,YAAY;AAAA,wBAEhD,UAAA;AAAA,0BAAAA;AAAA,0BAAmB;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBACtB;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAEJ;AAAA,YAAA;AAAA,UAAA,KAzBWH,CA2Bf;AAAA,QAAA,CAEH;AAAA,MAAA;AAAA,IAEL,EAAA,CAAA;AAAA,EAEJ;AACF;"}
@@ -0,0 +1,25 @@
1
+ import d from "styled-components";
2
+ const s = d.div(({ theme: r, $progress: o }) => {
3
+ const { BLACK_T_15: t, GREEN_5: i, BLACK_T_87: e } = r.colors;
4
+ return `
5
+ width: 100%;
6
+ height: 4px;
7
+ border-radius: 16px;
8
+ background-color: ${t};
9
+ position: relative;
10
+
11
+ &::after {
12
+ content: '';
13
+ position: absolute;
14
+ top: 0;
15
+ width: ${o}%;
16
+ height: 4px;
17
+ border-radius: 16px;
18
+ background-color: ${o === 100 ? i : e}
19
+ }
20
+ `;
21
+ });
22
+ export {
23
+ s as Progress
24
+ };
25
+ //# sourceMappingURL=styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styled.js","sources":["../../../../../../src/features/milestone/create/comps/milestone-progress-v2/styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\ntype TProgressProps = {\n $progress?: number;\n};\n\nconst Progress = styled.div<TProgressProps>(({ theme, $progress }) => {\n const { BLACK_T_15, GREEN_5, BLACK_T_87 } = theme.colors;\n\n return `\n width: 100%;\n height: 4px;\n border-radius: 16px;\n background-color: ${BLACK_T_15};\n position: relative;\n \n &::after {\n content: '';\n position: absolute;\n top: 0;\n width: ${$progress}%;\n height: 4px;\n border-radius: 16px;\n background-color: ${$progress === 100 ? GREEN_5 : BLACK_T_87}\n }\n `;\n});\n\nexport { Progress };\n"],"names":["Progress","styled","theme","$progress","BLACK_T_15","GREEN_5","BLACK_T_87"],"mappings":";AAMA,MAAMA,IAAWC,EAAO,IAAoB,CAAC,EAAE,OAAAC,GAAO,WAAAC,QAAgB;AACpE,QAAM,EAAE,YAAAC,GAAY,SAAAC,GAAS,YAAAC,EAAA,IAAeJ,EAAM;AAE3C,SAAA;AAAA;AAAA;AAAA;AAAA,0BAIiBE,CAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAOnBD,CAAS;AAAA;AAAA;AAAA,4BAGEA,MAAc,MAAME,IAAUC,CAAU;AAAA;AAAA;AAGpE,CAAC;"}
@@ -1,80 +1,74 @@
1
- import { jsx as i } from "react/jsx-runtime";
2
- import { memo as y, useMemo as z, useCallback as A, useEffect as I } from "react";
3
- import J from "./milestone-create-components-map.js";
4
- import K from "./milestone-create-context.js";
5
- import { useFormDataPrefiller as L, useMilestoneFormTree as N, useFormTreeTraversal as Q } from "./milestone-create-hooks.js";
6
- import { Container as U, BodyContainer as W } from "./milestone-create-styled.js";
7
- const G = y(
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(
8
8
  ({
9
- studentName: h,
10
- studentId: x,
11
- height: S,
12
- minHeight: l,
13
- formData: c,
9
+ studentName: M,
10
+ studentId: l,
11
+ height: x,
12
+ minHeight: S,
13
+ formData: n,
14
14
  config: a,
15
- onChapterExitWarning: C,
15
+ onChapterExitWarning: h,
16
16
  onFormDataChange: e,
17
17
  onPreSubmit: $,
18
- onExit: b,
18
+ onExit: C,
19
19
  board: F,
20
20
  schoolData: P,
21
21
  grade: T,
22
22
  flow: t,
23
- milestoneId: k,
23
+ milestoneId: b,
24
24
  currentCountryCode: B,
25
- isGoalCreation: d,
26
- courseStream: E,
27
- classRatio: V,
28
- enrollmentType: u,
29
- canDeleteGoal: j,
30
- onDeleteGoal: r
25
+ isGoalCreation: c,
26
+ courseStream: D,
27
+ classRatio: E,
28
+ enrollmentType: d
31
29
  }) => {
32
- const { formDataState: s, setFormData: w } = L(c, {
30
+ const { formDataState: i, setFormData: V } = A(n, {
33
31
  schoolData: P,
34
32
  board: F,
35
33
  grade: T,
36
34
  config: a,
37
35
  flow: t,
38
36
  currentCountryCode: B
39
- }), H = N({
37
+ }), j = I({
40
38
  flow: t,
41
- formDataState: s,
42
- isGoalCreation: d
43
- }), o = e ? s : c, m = e ? "edit" : "view", p = m === "view", { currentStep: n, updateFormData: O, handleBack: v } = Q({
39
+ formDataState: i,
40
+ isGoalCreation: c
41
+ }), o = e ? i : n, m = e ? "edit" : "view", u = m === "view", { currentStep: s, updateFormData: k, handleBack: p } = J({
44
42
  flow: t,
45
- updatedFormTree: H,
43
+ updatedFormTree: j,
46
44
  formData: o,
47
- formDataState: s,
48
- setFormData: w,
49
- handleExit: b
50
- }), { name: f } = n || {}, M = f ? J[f] : void 0, R = z(() => ({ handleBack: v, mode: m, flow: t }), [v, m, t]), q = A(() => {
51
- r == null || r();
52
- }, [r]);
53
- return I(() => {
45
+ formDataState: i,
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(() => {
54
50
  e && e(o);
55
- }, [o, e]), /* @__PURE__ */ i(K.Provider, { value: R, children: /* @__PURE__ */ i(U, { $height: S, $minHeight: l, $viewMode: p, children: /* @__PURE__ */ i(W, { $viewMode: p, children: M && n && u ? /* @__PURE__ */ i(
56
- M,
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,
57
53
  {
58
- studentName: h,
59
- currentStep: n,
60
- isGoalCreation: d,
54
+ studentName: M,
55
+ currentStep: s,
56
+ isGoalCreation: c,
61
57
  config: a,
62
58
  formData: o,
63
- onFormDataChange: O,
64
- onChapterExitWarning: C,
65
- studentId: x,
59
+ onFormDataChange: k,
60
+ onChapterExitWarning: h,
61
+ studentId: l,
66
62
  onPreSubmit: $,
67
- milestoneId: k,
68
- courseStream: E,
69
- classRatio: V || 0,
70
- enrollmentType: u,
71
- canDeleteGoal: j,
72
- onDeleteGoal: q
63
+ milestoneId: b,
64
+ courseStream: D,
65
+ classRatio: E || 0,
66
+ enrollmentType: d
73
67
  }
74
68
  ) : void 0 }) }) });
75
69
  }
76
70
  );
77
71
  export {
78
- G as default
72
+ Y as default
79
73
  };
80
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, useCallback, 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 canDeleteGoal,\n onDeleteGoal,\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 const handleOnDeleteGoal = useCallback(() => {\n onDeleteGoal?.();\n }, [onDeleteGoal]);\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 canDeleteGoal={canDeleteGoal}\n onDeleteGoal={handleOnDeleteGoal}\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","canDeleteGoal","onDeleteGoal","formDataState","setFormData","useFormDataPrefiller","updatedFormTree","useMilestoneFormTree","formData","mode","isViewMode","currentStep","updateFormData","handleBack","useFormTreeTraversal","name","StepComponent","ComponentsMap","contextValue","useMemo","handleOnDeleteGoal","useCallback","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,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,MACI;AACJ,UAAM,EAAE,eAAAC,GAAe,aAAAC,MAAgBC,EAAqBpB,GAAc;AAAA,MACxE,YAAAO;AAAA,MACA,OAAAD;AAAA,MACA,OAAAE;AAAA,MACA,QAAAP;AAAA,MACA,MAAAQ;AAAA,MACA,oBAAAE;AAAA,IAAA,CACD,GAEKU,IAAkBC,EAAqB;AAAA,MAC3C,MAAAb;AAAA,MACA,eAAAS;AAAA,MACA,gBAAAN;AAAA,IAAA,CACD,GAEKW,IAAYpB,IAAmBe,IAAgBlB,GAE/CwB,IAA6BrB,IAAmB,SAAS,QACzDsB,IAAaD,MAAS,QAEtB,EAAE,aAAAE,GAAa,gBAAAC,GAAgB,YAAAC,EAAA,IAAeC,EAAqB;AAAA,MACvE,MAAApB;AAAA,MACA,iBAAAY;AAAA,MACA,UAAAE;AAAA,MACA,eAAAL;AAAA,MACA,aAAAC;AAAA,MACA,YAAAd;AAAA,IAAA,CACD,GAEK,EAAE,MAAAyB,EAAA,IAASJ,KAAe,IAC1BK,IAAgBD,IAAOE,EAAcF,CAAI,IAAI,QAE7CG,IAAeC,EAAQ,OAAO,EAAE,YAAAN,GAAY,MAAAJ,GAAM,MAAAf,EAAK,IAAI,CAACmB,GAAYJ,GAAMf,CAAI,CAAC,GAEnF0B,IAAqBC,EAAY,MAAM;AAC5B,MAAAnB,KAAA,QAAAA;AAAA,IAAA,GACd,CAACA,CAAY,CAAC;AAEjB,WAAAoB,EAAU,MAAM;AACd,MAAIlC,KACFA,EAAiBoB,CAAQ;AAAA,IAC3B,GACC,CAACA,GAAUpB,CAAgB,CAAC,GAG7B,gBAAAmC,EAACC,EAAuB,UAAvB,EAAgC,OAAON,GACtC,UAAA,gBAAAK,EAACE,KAAU,SAAS1C,GAAQ,YAAYC,GAAW,WAAW0B,GAC5D,UAAC,gBAAAa,EAAAG,GAAA,EAAc,WAAWhB,GACvB,UAAAM,KAAiBL,KAAeX,IAC/B,gBAAAuB;AAAA,MAACP;AAAA,MAAA;AAAA,QACC,aAAAnC;AAAA,QACA,aAAA8B;AAAA,QACA,gBAAAd;AAAA,QACA,QAAAX;AAAA,QACA,UAAAsB;AAAA,QACA,kBAAkBI;AAAA,QAClB,sBAAAzB;AAAA,QACA,WAAAL;AAAA,QACA,aAAaO;AAAA,QACb,aAAAM;AAAA,QACA,cAAAG;AAAA,QACA,YAAYC,KAAc;AAAA,QAC1B,gBAAAC;AAAA,QACA,eAAAC;AAAA,QACA,cAAcmB;AAAA,MAAA;AAAA,IAChB,IACE,OACN,CAAA,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;"}
@@ -1,5 +1,5 @@
1
1
  import { createGetAPI as i } from "@cuemath/rest-api";
2
- import { BASE_URL_V3_1 as o } from "../../../../../../constants/api.js";
2
+ import { BASE_URL_V3 as o } from "../../../../../../constants/api.js";
3
3
  import { stringify as r } from "../../../../../../helpers/query-string.js";
4
4
  const { useGet: n, invalidate: l } = i({
5
5
  getURL: (e, t) => `${o}/user-milestone/${e}/?${r(t)}`
@@ -1 +1 @@
1
- {"version":3,"file":"get-milestone.js","sources":["../../../../../../../src/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.ts"],"sourcesContent":["import type { IMilestoneData } from '../../../../milestone-list-container/milestone-list/milestone-list-types';\n\nimport { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V3_1 } from '../../../../../../constants/api';\nimport { stringify } from '../../../../../../helpers/query-string';\n\ntype TQuery = {\n with_sheets: boolean;\n with_recommended_chapters?: boolean;\n};\n\nconst { useGet: useMilestoneGet, invalidate: invalidateMilestoneGetData } = createGetAPI<\n IMilestoneData,\n TQuery\n>({\n getURL: (milestoneId, query) =>\n `${BASE_URL_V3_1}/user-milestone/${milestoneId}/?${stringify(query)}`,\n});\n\nexport { useMilestoneGet, invalidateMilestoneGetData };\n"],"names":["useMilestoneGet","invalidateMilestoneGetData","createGetAPI","milestoneId","query","BASE_URL_V3_1","stringify"],"mappings":";;;AAYA,MAAM,EAAE,QAAQA,GAAiB,YAAYC,EAAA,IAA+BC,EAG1E;AAAA,EACA,QAAQ,CAACC,GAAaC,MACpB,GAAGC,CAAa,mBAAmBF,CAAW,KAAKG,EAAUF,CAAK,CAAC;AACvE,CAAC;"}
1
+ {"version":3,"file":"get-milestone.js","sources":["../../../../../../../src/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.ts"],"sourcesContent":["import type { IMilestoneData } from '../../../../milestone-list-container/milestone-list/milestone-list-types';\n\nimport { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V3 } from '../../../../../../constants/api';\nimport { stringify } from '../../../../../../helpers/query-string';\n\ntype TQuery = {\n with_plan: boolean;\n with_sheets: boolean;\n with_recommended_chapters?: boolean;\n};\n\nconst { useGet: useMilestoneGet, invalidate: invalidateMilestoneGetData } = createGetAPI<\n IMilestoneData,\n TQuery\n>({\n getURL: (milestoneId, query) =>\n `${BASE_URL_V3}/user-milestone/${milestoneId}/?${stringify(query)}`,\n});\n\nexport { useMilestoneGet, invalidateMilestoneGetData };\n"],"names":["useMilestoneGet","invalidateMilestoneGetData","createGetAPI","milestoneId","query","BASE_URL_V3","stringify"],"mappings":";;;AAaA,MAAM,EAAE,QAAQA,GAAiB,YAAYC,EAAA,IAA+BC,EAG1E;AAAA,EACA,QAAQ,CAACC,GAAaC,MACpB,GAAGC,CAAW,mBAAmBF,CAAW,KAAKG,EAAUF,CAAK,CAAC;AACrE,CAAC;"}
@@ -1,5 +1,5 @@
1
- import { jsxs as $, jsx as N } from "react/jsx-runtime";
2
- import { memo as q, useState as s, useMemo as f, useCallback as n } from "react";
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
3
  import { EVENTS as z } from "../../../../communication/pub-sub/constants.js";
4
4
  import { useInClassActionDispatcher as B } from "../../../../communication/pub-sub/hooks.js";
5
5
  import G from "../../../../ui/context/context.js";
@@ -10,43 +10,45 @@ import X from "../delete-milestone/confirm-delete.js";
10
10
  import { useMilestonePatch as Z } from "./api/patch-milestone.js";
11
11
  import ee from "./edit-milestone.js";
12
12
  import { parse as te } from "../../../../../node_modules/date-fns/parse.js";
13
- const P = {
13
+ const v = {
14
14
  DELETE_CONFIRM: "delete_confirm",
15
15
  EDIT: "edit"
16
16
  }, oe = q(
17
17
  ({
18
- milestoneName: v,
18
+ milestoneName: I,
19
19
  milestoneId: e,
20
- milestoneDueDate: p,
21
- studentId: u,
22
- isMilestoneChaptersListEditable: I,
20
+ milestoneDueDate: u,
21
+ studentId: E,
22
+ isMilestoneChaptersListEditable: g,
23
23
  isMilestoneDateEditable: x,
24
- isClassOngoing: E,
24
+ isClassOngoing: a,
25
25
  onDelete: F,
26
- analyticsProps: M,
27
- canDelete: O,
28
- milestoneState: w,
29
- studentClassroomId: A,
30
- courseStream: _
26
+ analyticsProps: _,
27
+ canDelete: w,
28
+ milestoneState: A,
29
+ studentClassroomId: L,
30
+ courseStream: M
31
31
  }) => {
32
- const [D, L] = s("edit"), [t, R] = s(p), [i, h] = s(!1), [r, C] = s(!1), [c, l] = s(""), o = f(
32
+ const [D, O] = s("edit"), [t, R] = s(u), [r, h] = s(!1), [c, C] = s(!1), [l, m] = s(""), o = f(
33
33
  () => Math.floor((/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0) / 1e3),
34
34
  []
35
- ), a = f(
35
+ ), n = f(
36
36
  () => o + K,
37
37
  [o]
38
- ), { dispatchInClassAction: T } = B({ studentClassroomId: A }), V = t !== p, g = n(() => {
39
- i && h(!1), r && C(!1);
40
- }, [i, r]), k = n(
41
- (m) => {
42
- if (m) {
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
43
  C(!0);
44
44
  return;
45
45
  }
46
46
  Q({
47
47
  milestone_state_group: "LIVE",
48
- course_stream: _,
49
- student_id: u
48
+ with_plan: !0,
49
+ course_stream: M,
50
+ student_id: E,
51
+ in_class: a
50
52
  }), h(!0), T({
51
53
  eventName: z.MILESTONE_EDITED,
52
54
  eventPayload: {
@@ -54,59 +56,59 @@ const P = {
54
56
  }
55
57
  });
56
58
  },
57
- [T, e, u, _]
58
- ), { patch: S, isProcessing: b } = Z({
59
+ [T, a, e, E, M]
60
+ ), { patch: y, isProcessing: b } = Z({
59
61
  onComplete: k
60
- }), j = n(
61
- (m) => {
62
- g();
63
- const y = m.target.value;
64
- if (!y) return;
65
- const d = te(y, "yyyy-MM-dd", /* @__PURE__ */ new Date()).getTime() / 1e3;
66
- c && d >= o && d < a && l(""), R(d);
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);
67
69
  },
68
- [c, g, a, o]
69
- ), U = n(() => {
70
- if (t < o || t > a) {
71
- t < o ? l("Please enter a future date") : l("Please select a date within the next year");
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");
72
74
  return;
73
75
  }
74
- S(e, {
76
+ y(e, {
75
77
  milestone_date_ts: t
76
78
  });
77
79
  }, [
78
80
  e,
79
81
  t,
80
- a,
82
+ n,
81
83
  o,
82
- S
84
+ y
83
85
  ]), Y = () => {
84
- L(P.DELETE_CONFIRM);
86
+ O(v.DELETE_CONFIRM);
85
87
  }, H = f(() => ({
86
- ...M,
88
+ ..._,
87
89
  milestone_id: e,
88
90
  temporary_milestone_id: e,
89
- is_student_class_ongoing: E
90
- }), [M, E, e]), W = J(H);
91
+ is_student_class_ongoing: a
92
+ }), [_, a, e]), W = J(H);
91
93
  return /* @__PURE__ */ $(G.Provider, { value: W, children: [
92
- D === P.DELETE_CONFIRM && /* @__PURE__ */ N(X, { milestoneId: e, onDelete: F }),
93
- D === "edit" && /* @__PURE__ */ N(
94
+ D === v.DELETE_CONFIRM && /* @__PURE__ */ P(X, { milestoneId: e, onDelete: F }),
95
+ D === "edit" && /* @__PURE__ */ P(
94
96
  ee,
95
97
  {
96
- inputMilestoneName: v,
98
+ inputMilestoneName: I,
97
99
  areDateUpdatesDisabled: !x,
98
100
  handleDateChange: j,
99
101
  inputMilestoneDate: t,
100
102
  anyFieldChanged: V,
101
103
  isProcessing: b,
102
- isDataPatched: i,
103
- isMilestoneChaptersListEditable: I,
104
+ isDataPatched: r,
105
+ isMilestoneChaptersListEditable: g,
104
106
  onSave: U,
105
- isPatchingFailed: r,
107
+ isPatchingFailed: c,
106
108
  onDeleteOptionClick: Y,
107
- errorMessage: c,
108
- canDelete: O,
109
- milestoneState: w
109
+ errorMessage: l,
110
+ canDelete: w,
111
+ milestoneState: A
110
112
  }
111
113
  )
112
114
  ] });
@@ -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, { 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 course_stream: courseStream,\n student_id: studentId,\n });\n setIsDataPatched(true);\n dispatchInClassAction({\n eventName: EVENTS.MILESTONE_EDITED,\n eventPayload: {\n milestoneId,\n },\n });\n },\n [dispatchInClassAction, 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
+ {"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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"}