@cuemath/leap 3.5.51-as1 → 3.5.51-as11

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 (68) hide show
  1. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +27 -31
  2. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +1 -1
  3. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +21 -13
  4. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -1
  5. package/dist/features/chapters-v2/constants/node-constants.js +1 -1
  6. package/dist/features/chapters-v2/constants/node-constants.js.map +1 -1
  7. package/dist/features/chapters-v2/utils/node-card-utils.js +86 -79
  8. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
  9. package/dist/features/homework/homework-card-view.js +37 -37
  10. package/dist/features/homework/homework-card-view.js.map +1 -1
  11. package/dist/features/homework/homework-card.js +135 -134
  12. package/dist/features/homework/homework-card.js.map +1 -1
  13. package/dist/features/homework/hw-card-list/api/get-homeworks.js.map +1 -1
  14. package/dist/features/homework/hw-card-list/hw-card-list-view.js +36 -27
  15. package/dist/features/homework/hw-card-list/hw-card-list-view.js.map +1 -1
  16. package/dist/features/homework/hw-card-list/hw-card-list.js +2 -2
  17. package/dist/features/homework/hw-card-list/hw-card-list.js.map +1 -1
  18. package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js +4 -5
  19. package/dist/features/journey/hooks/use-home-page-journey/home-page-homeworks-mock.js.map +1 -1
  20. package/dist/features/math-fit/math-fit/math-fit.js +28 -30
  21. package/dist/features/math-fit/math-fit/math-fit.js.map +1 -1
  22. package/dist/features/math-fit/math-fit-card/math-fit-card-styled.js +6 -4
  23. package/dist/features/math-fit/math-fit-card/math-fit-card-styled.js.map +1 -1
  24. package/dist/features/math-fit/math-fit-card/math-fit-card.js +40 -37
  25. package/dist/features/math-fit/math-fit-card/math-fit-card.js.map +1 -1
  26. package/dist/features/math-fit/math-fit-overview/comps/section-card/section-card-types.js +5 -0
  27. package/dist/features/math-fit/math-fit-overview/comps/section-card/section-card-types.js.map +1 -0
  28. package/dist/features/math-fit/math-fit-overview/comps/section-card/section-card.js +58 -59
  29. package/dist/features/math-fit/math-fit-overview/comps/section-card/section-card.js.map +1 -1
  30. package/dist/features/math-fit/math-fit-overview/comps/stat-item/stat-item-styled.js +3 -3
  31. package/dist/features/math-fit/math-fit-overview/comps/stat-item/stat-item-styled.js.map +1 -1
  32. package/dist/features/math-fit/math-fit-overview/comps/stat-item/stat-item.js +12 -10
  33. package/dist/features/math-fit/math-fit-overview/comps/stat-item/stat-item.js.map +1 -1
  34. package/dist/features/math-fit/math-fit-overview/math-fit-overview-helpers.js +63 -0
  35. package/dist/features/math-fit/math-fit-overview/math-fit-overview-helpers.js.map +1 -0
  36. package/dist/features/math-fit/math-fit-overview/math-fit-overview-types.js +4 -2
  37. package/dist/features/math-fit/math-fit-overview/math-fit-overview-types.js.map +1 -1
  38. package/dist/features/math-fit/math-fit-overview/math-fit-overview.js +39 -45
  39. package/dist/features/math-fit/math-fit-overview/math-fit-overview.js.map +1 -1
  40. package/dist/features/math-fit/math-fit-report/comps/report-header/report-header-styled.js +20 -7
  41. package/dist/features/math-fit/math-fit-report/comps/report-header/report-header-styled.js.map +1 -1
  42. package/dist/features/math-fit/math-fit-report/comps/report-header/report-header.js +37 -22
  43. package/dist/features/math-fit/math-fit-report/comps/report-header/report-header.js.map +1 -1
  44. package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js +38 -36
  45. package/dist/features/math-fit/math-fit-report/comps/score-section/score-section.js.map +1 -1
  46. package/dist/features/math-fit/math-fit-report/math-fit-report-helpers.js +24 -18
  47. package/dist/features/math-fit/math-fit-report/math-fit-report-helpers.js.map +1 -1
  48. package/dist/features/math-fit/math-fit-report/math-fit-report.js +55 -69
  49. package/dist/features/math-fit/math-fit-report/math-fit-report.js.map +1 -1
  50. package/dist/features/milestone/milestone-list-container/api/get-tests-list.js.map +1 -1
  51. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +14 -14
  52. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  53. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +31 -31
  54. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  55. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +26 -26
  56. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
  57. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +8 -8
  58. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  59. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +30 -30
  60. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +1 -1
  61. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +49 -63
  62. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +1 -1
  63. package/dist/features/sheets/constants/sheet.js +2 -1
  64. package/dist/features/sheets/constants/sheet.js.map +1 -1
  65. package/dist/index.d.ts +29 -11
  66. package/package.json +1 -1
  67. package/dist/features/math-fit/math-fit-overview/helpers.js +0 -46
  68. package/dist/features/math-fit/math-fit-overview/helpers.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import t from "styled-components";
2
- import s from "../../../../assets/line-icons/icons/important.js";
3
- import d from "../../../../assets/line-icons/icons/lock2.js";
2
+ import d from "../../../../assets/line-icons/icons/important.js";
3
+ import c from "../../../../assets/line-icons/icons/lock2.js";
4
4
  import e from "../../../ui/layout/flex-view.js";
5
- import c from "../../../ui/text/text.js";
6
- const h = t(e)(({
5
+ import l from "../../../ui/text/text.js";
6
+ const m = t(e)(({
7
7
  theme: o,
8
8
  $disabled: r,
9
9
  $minWidth: n
@@ -33,7 +33,7 @@ const h = t(e)(({
33
33
  `}
34
34
  }
35
35
  `;
36
- }), m = t(s)(({ theme: o }) => {
36
+ }), f = t(d)(({ theme: o }) => {
37
37
  const { layout: r } = o;
38
38
  return `
39
39
  width: ${r.gutter * 0.75}px;
@@ -42,34 +42,30 @@ const h = t(e)(({
42
42
  top: -2.5px;
43
43
  right: -2.5px;
44
44
  `;
45
- }), f = t(e)(({ $bgImage: o }) => `
45
+ }), $ = t(e)(({ $bgImage: o }) => `
46
46
  background-image: url(${o});
47
47
 
48
48
  & .context-menu {
49
49
  justify-self: flex-end;
50
50
  margin-left: auto;
51
51
  }
52
- `), $ = t(e)`
52
+ `), I = t(e)`
53
53
  border-radius: 50%;
54
- `, I = t(e)(() => `
54
+ `, w = t(e)(() => `
55
55
  position: relative;
56
56
  padding: 12px 8px 12px 12px;
57
- `), w = t(e)(({ $top: o, $right: r }) => `
57
+ `), W = t(e)(({ $top: o, $right: r }) => `
58
58
  position: absolute;
59
59
  top: ${o ?? 0}px;
60
60
  right: ${r ?? 0}px;
61
61
  z-index: 3;
62
62
  `);
63
- t(d)`
63
+ t(c)`
64
64
  width: 28px;
65
65
  height: 28px;
66
66
  `;
67
- const W = t(e)(({
68
- theme: o,
69
- $paddingRight: r,
70
- $paddingLeft: n
71
- }) => {
72
- const { BLACK_1: p, WHITE_1: i } = o.colors;
67
+ const k = t(e)(({ theme: o, $paddingRight: r, $paddingLeft: n, $showWarningBg: p }) => {
68
+ const { RED: i, BLACK_1: a, WHITE_1: s } = o.colors;
73
69
  return `
74
70
  position: absolute;
75
71
  top: -10px;
@@ -77,19 +73,19 @@ const W = t(e)(({
77
73
  padding: 0px;
78
74
  padding-left: ${n}px;
79
75
  padding-right: ${r}px;
80
- background: ${p};
76
+ background: ${p ? i : a};
81
77
 
82
78
  path {
83
- fill: ${i};
79
+ fill: ${s};
84
80
  }
85
81
  `;
86
- }), k = t(c)(() => `
82
+ }), C = t(l)(() => `
87
83
  display: -webkit-box;
88
84
  -webkit-box-orient: vertical;
89
85
  -webkit-line-clamp: 2;
90
86
  text-overflow: ellipsis;
91
87
  overflow: hidden;
92
- `), C = t(e)(({ theme: o }) => `
88
+ `), v = t(e)(({ theme: o }) => `
93
89
  cursor: pointer;
94
90
  padding: 4px;
95
91
 
@@ -97,7 +93,7 @@ const W = t(e)(({
97
93
  border-radius: 50%;
98
94
  background: ${o.colors.WHITE_5};
99
95
  }
100
- `), v = t(e)(({ theme: o, $visible: r }) => `
96
+ `), T = t(e)(({ theme: o, $visible: r }) => `
101
97
  cursor: pointer;
102
98
 
103
99
  position: absolute;
@@ -116,15 +112,15 @@ const W = t(e)(({
116
112
  }
117
113
  `);
118
114
  export {
119
- $ as IconWrapper,
120
- W as InProgressIconWrapper,
121
- h as NodeCardContainer,
122
- I as NodeCardContentWrapper,
123
- f as NodeCardInfoWrapper,
124
- k as NodeCardTitle,
125
- C as NodeKebabMenuWrapper,
126
- v as NodeMenuOptionsWrapper,
127
- w as SheetTagWrapper,
128
- m as StyledImportantIcon
115
+ I as IconWrapper,
116
+ k as InProgressIconWrapper,
117
+ m as NodeCardContainer,
118
+ w as NodeCardContentWrapper,
119
+ $ as NodeCardInfoWrapper,
120
+ C as NodeCardTitle,
121
+ v as NodeKebabMenuWrapper,
122
+ T as NodeMenuOptionsWrapper,
123
+ W as SheetTagWrapper,
124
+ f as StyledImportantIcon
129
125
  };
130
126
  //# sourceMappingURL=node-card-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-card-styled.js","sources":["../../../../../src/features/chapters-v2/comps/node-card/node-card-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport ImportantIcon from '../../../../assets/line-icons/icons/important';\nimport Lock2Icon from '../../../../assets/line-icons/icons/lock2';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\n\ninterface INodeCardContainer {\n $disabled: boolean;\n $isSheetLocked?: boolean;\n $minWidth?: number;\n}\n\nconst NodeCardContainer = styled(FlexView)<INodeCardContainer>(({\n theme,\n $disabled,\n $minWidth,\n}) => {\n const { BLACK, BLACK_T_15, WHITE_5 } = theme.colors;\n\n return `\n ${$minWidth ? `min-width: ${$minWidth}px;` : ''}\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n position: relative;\n border-image: linear-gradient(to right, ${BLACK_T_15} 0%, ${BLACK_T_15} 100%);\n outline: 1px solid ${WHITE_5};\n\n .node-card-border {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 2;\n width: 100%;\n height: 100%;\n pointer-events: none;\n background: transparent;\n }\n\n &:hover {\n ${\n !$disabled &&\n `\n outline: 1px solid ${BLACK};\n `\n } \n }\n `;\n});\n\nconst StyledImportantIcon = styled(ImportantIcon)(({ theme }) => {\n const { layout } = theme;\n\n return `\n width: ${layout.gutter * 0.75}px;\n height: ${layout.gutter * 0.75}px;\n position: absolute;\n top: -2.5px;\n right: -2.5px;\n `;\n});\n\ninterface INodeCardInfoWrapper {\n $bgImage: string;\n}\n\nconst NodeCardInfoWrapper = styled(FlexView)<INodeCardInfoWrapper>(({ $bgImage }) => {\n return `\n background-image: url(${$bgImage});\n\n & .context-menu {\n justify-self: flex-end;\n margin-left: auto;\n }\n `;\n});\n\nconst IconWrapper = styled(FlexView)`\n border-radius: 50%;\n`;\n\nconst NodeCardContentWrapper = styled(FlexView)(() => {\n return `\n position: relative;\n padding: 12px 8px 12px 12px;\n `;\n});\n\ninterface ISheetTagWrapper {\n $top?: number;\n $right?: number;\n}\n\nconst SheetTagWrapper = styled(FlexView)<ISheetTagWrapper>(({ $top, $right }) => {\n return `\n position: absolute;\n top: ${$top ?? 0}px;\n right: ${$right ?? 0}px;\n z-index: 3;\n`;\n});\n\nconst StyledLockIcon = styled(Lock2Icon)`\n width: 28px;\n height: 28px;\n`;\n\nconst InProgressIconWrapper = styled(FlexView)<{ $paddingRight: number; $paddingLeft: number }>(({\n theme,\n $paddingRight,\n $paddingLeft,\n}) => {\n const { BLACK_1, WHITE_1 } = theme.colors;\n\n return `\n position: absolute;\n top: -10px;\n right: -10px;\n padding: 0px;\n padding-left: ${$paddingLeft}px;\n padding-right: ${$paddingRight}px;\n background: ${BLACK_1};\n\n path {\n fill: ${WHITE_1};\n }\n `;\n});\n\nconst NodeCardTitle = styled(Text)(() => {\n return `\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n text-overflow: ellipsis;\n overflow: hidden;\n `;\n});\n\nconst NodeKebabMenuWrapper = styled(FlexView)(({ theme }) => {\n return `\n cursor: pointer;\n padding: 4px;\n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\ninterface INodeOptionsMenuWrapper {\n $visible: boolean;\n}\n\nconst NodeMenuOptionsWrapper = styled(FlexView)<INodeOptionsMenuWrapper>(({ theme, $visible }) => {\n return `\n cursor: pointer;\n\n position: absolute;\n z-index: 6;\n top: calc(100% + 4px);\n left: 0;\n\n transform-origin: top;\n transform: scaleY(${$visible ? 1 : 0});\n opacity: ${$visible ? 1 : 0};\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\nexport {\n NodeCardContainer,\n StyledImportantIcon,\n NodeCardInfoWrapper,\n IconWrapper,\n NodeCardContentWrapper,\n SheetTagWrapper,\n StyledLockIcon,\n InProgressIconWrapper,\n NodeCardTitle,\n NodeKebabMenuWrapper,\n NodeMenuOptionsWrapper,\n};\n"],"names":["NodeCardContainer","styled","FlexView","theme","$disabled","$minWidth","BLACK","BLACK_T_15","WHITE_5","StyledImportantIcon","ImportantIcon","layout","NodeCardInfoWrapper","$bgImage","IconWrapper","NodeCardContentWrapper","SheetTagWrapper","$top","$right","Lock2Icon","InProgressIconWrapper","$paddingRight","$paddingLeft","BLACK_1","WHITE_1","NodeCardTitle","Text","NodeKebabMenuWrapper","NodeMenuOptionsWrapper","$visible"],"mappings":";;;;;AAaA,MAAMA,IAAoBC,EAAOC,CAAQ,EAAsB,CAAC;AAAA,EAC9D,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AACF,MAAM;AACJ,QAAM,EAAE,OAAAC,GAAO,YAAAC,GAAY,SAAAC,EAAA,IAAYL,EAAM;AAEtC,SAAA;AAAA,MACHE,IAAY,cAAcA,CAAS,QAAQ,EAAE;AAAA,cACrCD,IAAY,gBAAgB,SAAS;AAAA;AAAA,8CAELG,CAAU,QAAQA,CAAU;AAAA,yBACjDC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAexB,CAACJ,KACD;AAAA,+BACuBE,CAAK;AAAA,SAE9B;AAAA;AAAA;AAGN,CAAC,GAEKG,IAAsBR,EAAOS,CAAa,EAAE,CAAC,EAAE,OAAAP,QAAY;AACzD,QAAA,EAAE,QAAAQ,EAAW,IAAAR;AAEZ,SAAA;AAAA,aACIQ,EAAO,SAAS,IAAI;AAAA,cACnBA,EAAO,SAAS,IAAI;AAAA;AAAA;AAAA;AAAA;AAKlC,CAAC,GAMKC,IAAsBX,EAAOC,CAAQ,EAAwB,CAAC,EAAE,UAAAW,QAC7D;AAAA,4BACmBA,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOnC,GAEKC,IAAcb,EAAOC,CAAQ;AAAA;AAAA,GAI7Ba,IAAyBd,EAAOC,CAAQ,EAAE,MACvC;AAAA;AAAA;AAAA,GAIR,GAOKc,IAAkBf,EAAOC,CAAQ,EAAoB,CAAC,EAAE,MAAAe,GAAM,QAAAC,QAC3D;AAAA;AAAA,SAEAD,KAAQ,CAAC;AAAA,WACPC,KAAU,CAAC;AAAA;AAAA,CAGrB;AAEsBjB,EAAOkB,CAAS;AAAA;AAAA;AAAA;AAKvC,MAAMC,IAAwBnB,EAAOC,CAAQ,EAAmD,CAAC;AAAA,EAC/F,OAAAC;AAAA,EACA,eAAAkB;AAAA,EACA,cAAAC;AACF,MAAM;AACJ,QAAM,EAAE,SAAAC,GAAS,SAAAC,MAAYrB,EAAM;AAE5B,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKWmB,CAAY;AAAA,qBACXD,CAAa;AAAA,kBAChBE,CAAO;AAAA;AAAA;AAAA,cAGXC,CAAO;AAAA;AAAA;AAGrB,CAAC,GAEKC,IAAgBxB,EAAOyB,CAAI,EAAE,MAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOR,GAEKC,IAAuB1B,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMWA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAMKyB,IAAyB3B,EAAOC,CAAQ,EAA2B,CAAC,EAAE,OAAAC,GAAO,UAAA0B,QAC1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBASeA,IAAW,IAAI,CAAC;AAAA,eACzBA,IAAW,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKX1B,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC;"}
1
+ {"version":3,"file":"node-card-styled.js","sources":["../../../../../src/features/chapters-v2/comps/node-card/node-card-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport ImportantIcon from '../../../../assets/line-icons/icons/important';\nimport Lock2Icon from '../../../../assets/line-icons/icons/lock2';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\n\ninterface INodeCardContainer {\n $disabled: boolean;\n $isSheetLocked?: boolean;\n $minWidth?: number;\n}\n\nconst NodeCardContainer = styled(FlexView)<INodeCardContainer>(({\n theme,\n $disabled,\n $minWidth,\n}) => {\n const { BLACK, BLACK_T_15, WHITE_5 } = theme.colors;\n\n return `\n ${$minWidth ? `min-width: ${$minWidth}px;` : ''}\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n position: relative;\n border-image: linear-gradient(to right, ${BLACK_T_15} 0%, ${BLACK_T_15} 100%);\n outline: 1px solid ${WHITE_5};\n\n .node-card-border {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 2;\n width: 100%;\n height: 100%;\n pointer-events: none;\n background: transparent;\n }\n\n &:hover {\n ${\n !$disabled &&\n `\n outline: 1px solid ${BLACK};\n `\n } \n }\n `;\n});\n\nconst StyledImportantIcon = styled(ImportantIcon)(({ theme }) => {\n const { layout } = theme;\n\n return `\n width: ${layout.gutter * 0.75}px;\n height: ${layout.gutter * 0.75}px;\n position: absolute;\n top: -2.5px;\n right: -2.5px;\n `;\n});\n\ninterface INodeCardInfoWrapper {\n $bgImage: string;\n}\n\nconst NodeCardInfoWrapper = styled(FlexView)<INodeCardInfoWrapper>(({ $bgImage }) => {\n return `\n background-image: url(${$bgImage});\n\n & .context-menu {\n justify-self: flex-end;\n margin-left: auto;\n }\n `;\n});\n\nconst IconWrapper = styled(FlexView)`\n border-radius: 50%;\n`;\n\nconst NodeCardContentWrapper = styled(FlexView)(() => {\n return `\n position: relative;\n padding: 12px 8px 12px 12px;\n `;\n});\n\ninterface ISheetTagWrapper {\n $top?: number;\n $right?: number;\n}\n\nconst SheetTagWrapper = styled(FlexView)<ISheetTagWrapper>(({ $top, $right }) => {\n return `\n position: absolute;\n top: ${$top ?? 0}px;\n right: ${$right ?? 0}px;\n z-index: 3;\n`;\n});\n\nconst StyledLockIcon = styled(Lock2Icon)`\n width: 28px;\n height: 28px;\n`;\n\nconst InProgressIconWrapper = styled(FlexView)<{\n $paddingRight: number;\n $paddingLeft: number;\n $showWarningBg: boolean;\n}>(({ theme, $paddingRight, $paddingLeft, $showWarningBg }) => {\n const { RED, BLACK_1, WHITE_1 } = theme.colors;\n\n return `\n position: absolute;\n top: -10px;\n right: -10px;\n padding: 0px;\n padding-left: ${$paddingLeft}px;\n padding-right: ${$paddingRight}px;\n background: ${$showWarningBg ? RED : BLACK_1};\n\n path {\n fill: ${WHITE_1};\n }\n `;\n});\n\nconst NodeCardTitle = styled(Text)(() => {\n return `\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n text-overflow: ellipsis;\n overflow: hidden;\n `;\n});\n\nconst NodeKebabMenuWrapper = styled(FlexView)(({ theme }) => {\n return `\n cursor: pointer;\n padding: 4px;\n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\ninterface INodeOptionsMenuWrapper {\n $visible: boolean;\n}\n\nconst NodeMenuOptionsWrapper = styled(FlexView)<INodeOptionsMenuWrapper>(({ theme, $visible }) => {\n return `\n cursor: pointer;\n\n position: absolute;\n z-index: 6;\n top: calc(100% + 4px);\n left: 0;\n\n transform-origin: top;\n transform: scaleY(${$visible ? 1 : 0});\n opacity: ${$visible ? 1 : 0};\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n \n &:hover {\n border-radius: 50%;\n background: ${theme.colors.WHITE_5}; \n }\n `;\n});\n\nexport {\n NodeCardContainer,\n StyledImportantIcon,\n NodeCardInfoWrapper,\n IconWrapper,\n NodeCardContentWrapper,\n SheetTagWrapper,\n StyledLockIcon,\n InProgressIconWrapper,\n NodeCardTitle,\n NodeKebabMenuWrapper,\n NodeMenuOptionsWrapper,\n};\n"],"names":["NodeCardContainer","styled","FlexView","theme","$disabled","$minWidth","BLACK","BLACK_T_15","WHITE_5","StyledImportantIcon","ImportantIcon","layout","NodeCardInfoWrapper","$bgImage","IconWrapper","NodeCardContentWrapper","SheetTagWrapper","$top","$right","Lock2Icon","InProgressIconWrapper","$paddingRight","$paddingLeft","$showWarningBg","RED","BLACK_1","WHITE_1","NodeCardTitle","Text","NodeKebabMenuWrapper","NodeMenuOptionsWrapper","$visible"],"mappings":";;;;;AAaA,MAAMA,IAAoBC,EAAOC,CAAQ,EAAsB,CAAC;AAAA,EAC9D,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AACF,MAAM;AACJ,QAAM,EAAE,OAAAC,GAAO,YAAAC,GAAY,SAAAC,EAAA,IAAYL,EAAM;AAEtC,SAAA;AAAA,MACHE,IAAY,cAAcA,CAAS,QAAQ,EAAE;AAAA,cACrCD,IAAY,gBAAgB,SAAS;AAAA;AAAA,8CAELG,CAAU,QAAQA,CAAU;AAAA,yBACjDC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAexB,CAACJ,KACD;AAAA,+BACuBE,CAAK;AAAA,SAE9B;AAAA;AAAA;AAGN,CAAC,GAEKG,IAAsBR,EAAOS,CAAa,EAAE,CAAC,EAAE,OAAAP,QAAY;AACzD,QAAA,EAAE,QAAAQ,EAAW,IAAAR;AAEZ,SAAA;AAAA,aACIQ,EAAO,SAAS,IAAI;AAAA,cACnBA,EAAO,SAAS,IAAI;AAAA;AAAA;AAAA;AAAA;AAKlC,CAAC,GAMKC,IAAsBX,EAAOC,CAAQ,EAAwB,CAAC,EAAE,UAAAW,QAC7D;AAAA,4BACmBA,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOnC,GAEKC,IAAcb,EAAOC,CAAQ;AAAA;AAAA,GAI7Ba,IAAyBd,EAAOC,CAAQ,EAAE,MACvC;AAAA;AAAA;AAAA,GAIR,GAOKc,IAAkBf,EAAOC,CAAQ,EAAoB,CAAC,EAAE,MAAAe,GAAM,QAAAC,QAC3D;AAAA;AAAA,SAEAD,KAAQ,CAAC;AAAA,WACPC,KAAU,CAAC;AAAA;AAAA,CAGrB;AAEsBjB,EAAOkB,CAAS;AAAA;AAAA;AAAA;AAKjC,MAAAC,IAAwBnB,EAAOC,CAAQ,EAI1C,CAAC,EAAE,OAAAC,GAAO,eAAAkB,GAAe,cAAAC,GAAc,gBAAAC,QAAqB;AAC7D,QAAM,EAAE,KAAAC,GAAK,SAAAC,GAAS,SAAAC,EAAA,IAAYvB,EAAM;AAEjC,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKWmB,CAAY;AAAA,qBACXD,CAAa;AAAA,kBAChBE,IAAiBC,IAAMC,CAAO;AAAA;AAAA;AAAA,cAGlCC,CAAO;AAAA;AAAA;AAGrB,CAAC,GAEKC,IAAgB1B,EAAO2B,CAAI,EAAE,MAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOR,GAEKC,IAAuB5B,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMWA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAMK2B,IAAyB7B,EAAOC,CAAQ,EAA2B,CAAC,EAAE,OAAAC,GAAO,UAAA4B,QAC1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBASeA,IAAW,IAAI,CAAC;AAAA,eACzBA,IAAW,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKX5B,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC;"}
@@ -1,8 +1,8 @@
1
- import { jsx as d } from "react/jsx-runtime";
2
- import { memo as E } from "react";
3
- import { getNodeStateBasedTagInfo as N } from "../../utils/node-card-utils.js";
4
- import { SheetTagWrapper as m } from "./node-card-styled.js";
5
- const p = [
1
+ import { jsx as E } from "react/jsx-runtime";
2
+ import { memo as N } from "react";
3
+ import { getNodeStateBasedTagInfo as m } from "../../utils/node-card-utils.js";
4
+ import { SheetTagWrapper as p } from "./node-card-styled.js";
5
+ const u = [
6
6
  "DYNAMIC",
7
7
  "ASSESSMENT",
8
8
  "CHAPTER_ASSESSMENT",
@@ -11,15 +11,23 @@ const p = [
11
11
  "SAT_MATH_ASSESSMENT",
12
12
  "TURING_SUBJECTIVE",
13
13
  "SUBJECTIVE"
14
- ], y = E(function(o) {
15
- const { state: e, accuracy: t, nodeType: S, dueDateTs: a, isStudent: T, isMilestone: c } = o, n = p.includes(S) ? t : void 0, {
16
- icon: r,
17
- top: s,
18
- right: i
19
- } = N(e, !!T, n, a, c);
20
- return /* @__PURE__ */ d(m, { $top: s, $right: i, children: r });
14
+ ], C = N(function(t) {
15
+ const { state: e, accuracy: S, nodeType: o, dueDateTs: a, isStudent: c, isMilestone: i, isMathFitCard: r } = t, s = u.includes(o) ? S : void 0, {
16
+ icon: n,
17
+ top: T,
18
+ right: d
19
+ } = m({
20
+ state: e,
21
+ isStudent: !!c,
22
+ accuracy: s,
23
+ nodeType: o,
24
+ dueDateTs: a,
25
+ isMilestone: i,
26
+ isMathFitCard: r
27
+ });
28
+ return /* @__PURE__ */ E(p, { $top: T, $right: d, children: n });
21
29
  });
22
30
  export {
23
- y as default
31
+ C as default
24
32
  };
25
33
  //# sourceMappingURL=node-card-tags.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-card-tags.js","sources":["../../../../../src/features/chapters-v2/comps/node-card/node-card-tags.tsx"],"sourcesContent":["import { memo, type FC } from 'react';\n\nimport { getNodeStateBasedTagInfo } from '../../utils/node-card-utils';\nimport * as Styled from './node-card-styled';\nimport type { INodeCardTagsProps } from './node-card-types';\n\nconst dynamicNodeTypes = [\n 'DYNAMIC',\n 'ASSESSMENT',\n 'CHAPTER_ASSESSMENT',\n 'TURING_ASSESSMENT',\n 'SAT_ENGLISH_ASSESSMENT',\n 'SAT_MATH_ASSESSMENT',\n 'TURING_SUBJECTIVE',\n 'SUBJECTIVE',\n];\n\nconst NodeCardTags: FC<INodeCardTagsProps> = memo(function NodeCardTags(props) {\n const { state, accuracy, nodeType, dueDateTs, isStudent, isMilestone } = props;\n\n const isDynamicNode = dynamicNodeTypes.includes(nodeType);\n const accuracyValue = isDynamicNode ? accuracy : undefined;\n\n const {\n icon: NodeTagIcon,\n top,\n right,\n } = getNodeStateBasedTagInfo(state, !!isStudent, accuracyValue, dueDateTs, isMilestone);\n\n return (\n <Styled.SheetTagWrapper $top={top} $right={right}>\n {NodeTagIcon}\n </Styled.SheetTagWrapper>\n );\n});\n\nexport default NodeCardTags;\n"],"names":["dynamicNodeTypes","NodeCardTags","memo","props","state","accuracy","nodeType","dueDateTs","isStudent","isMilestone","accuracyValue","NodeTagIcon","top","right","getNodeStateBasedTagInfo","jsx","Styled.SheetTagWrapper"],"mappings":";;;;AAMA,MAAMA,IAAmB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEMC,IAAuCC,EAAK,SAAsBC,GAAO;AAC7E,QAAM,EAAE,OAAAC,GAAO,UAAAC,GAAU,UAAAC,GAAU,WAAAC,GAAW,WAAAC,GAAW,aAAAC,EAAgB,IAAAN,GAGnEO,IADgBV,EAAiB,SAASM,CAAQ,IAClBD,IAAW,QAE3C;AAAA,IACJ,MAAMM;AAAA,IACN,KAAAC;AAAA,IACA,OAAAC;AAAA,EAAA,IACEC,EAAyBV,GAAO,CAAC,CAACI,GAAWE,GAAeH,GAAWE,CAAW;AAGpF,SAAA,gBAAAM,EAACC,GAAA,EAAuB,MAAMJ,GAAK,QAAQC,GACxC,UACHF,EAAA,CAAA;AAEJ,CAAC;"}
1
+ {"version":3,"file":"node-card-tags.js","sources":["../../../../../src/features/chapters-v2/comps/node-card/node-card-tags.tsx"],"sourcesContent":["import { memo, type FC } from 'react';\n\nimport { getNodeStateBasedTagInfo } from '../../utils/node-card-utils';\nimport * as Styled from './node-card-styled';\nimport type { INodeCardTagsProps } from './node-card-types';\n\nconst dynamicNodeTypes = [\n 'DYNAMIC',\n 'ASSESSMENT',\n 'CHAPTER_ASSESSMENT',\n 'TURING_ASSESSMENT',\n 'SAT_ENGLISH_ASSESSMENT',\n 'SAT_MATH_ASSESSMENT',\n 'TURING_SUBJECTIVE',\n 'SUBJECTIVE',\n];\n\nconst NodeCardTags: FC<INodeCardTagsProps> = memo(function NodeCardTags(props) {\n const { state, accuracy, nodeType, dueDateTs, isStudent, isMilestone, isMathFitCard } = props;\n\n const isDynamicNode = dynamicNodeTypes.includes(nodeType);\n const accuracyValue = isDynamicNode ? accuracy : undefined;\n\n const {\n icon: NodeTagIcon,\n top,\n right,\n } = getNodeStateBasedTagInfo({\n state,\n isStudent: !!isStudent,\n accuracy: accuracyValue,\n nodeType,\n dueDateTs,\n isMilestone,\n isMathFitCard,\n });\n\n return (\n <Styled.SheetTagWrapper $top={top} $right={right}>\n {NodeTagIcon}\n </Styled.SheetTagWrapper>\n );\n});\n\nexport default NodeCardTags;\n"],"names":["dynamicNodeTypes","NodeCardTags","memo","props","state","accuracy","nodeType","dueDateTs","isStudent","isMilestone","isMathFitCard","accuracyValue","NodeTagIcon","top","right","getNodeStateBasedTagInfo","jsx","Styled.SheetTagWrapper"],"mappings":";;;;AAMA,MAAMA,IAAmB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEMC,IAAuCC,EAAK,SAAsBC,GAAO;AACvE,QAAA,EAAE,OAAAC,GAAO,UAAAC,GAAU,UAAAC,GAAU,WAAAC,GAAW,WAAAC,GAAW,aAAAC,GAAa,eAAAC,EAAkB,IAAAP,GAGlFQ,IADgBX,EAAiB,SAASM,CAAQ,IAClBD,IAAW,QAE3C;AAAA,IACJ,MAAMO;AAAA,IACN,KAAAC;AAAA,IACA,OAAAC;AAAA,MACEC,EAAyB;AAAA,IAC3B,OAAAX;AAAA,IACA,WAAW,CAAC,CAACI;AAAA,IACb,UAAUG;AAAA,IACV,UAAAL;AAAA,IACA,WAAAC;AAAA,IACA,aAAAE;AAAA,IACA,eAAAC;AAAA,EAAA,CACD;AAGC,SAAA,gBAAAM,EAACC,GAAA,EAAuB,MAAMJ,GAAK,QAAQC,GACxC,UACHF,EAAA,CAAA;AAEJ,CAAC;"}
@@ -9,7 +9,7 @@ const I = {
9
9
  LOCK: "Lock",
10
10
  UNLOCK: "Unlock"
11
11
  };
12
- var R = /* @__PURE__ */ ((E) => (E.LOCKED = "LOCKED", E.NOT_STARTED = "NOT_STARTED", E.WAIT_FOR_REVIEW = "WAIT_FOR_REVIEW", E.IN_PROGRESS = "IN_PROGRESS", E.COMPLETED = "COMPLETED", E))(R || {});
12
+ var R = /* @__PURE__ */ ((E) => (E.LOCKED = "LOCKED", E.NOT_STARTED = "NOT_STARTED", E.WAIT_FOR_REVIEW = "WAIT_FOR_REVIEW", E.IN_PROGRESS = "IN_PROGRESS", E.COMPLETED = "COMPLETED", E.EXPIRED = "EXPIRED", E))(R || {});
13
13
  export {
14
14
  R as NODE_CARD_STATES,
15
15
  I as TEACHER_MENU_LABELS
@@ -1 +1 @@
1
- {"version":3,"file":"node-constants.js","sources":["../../../../src/features/chapters-v2/constants/node-constants.ts"],"sourcesContent":["export const TEACHER_MENU_LABELS = {\n ASSIGN_AS_HW: 'Assign as HW',\n MARK_AS_DONE: 'Mark as Done',\n SKIP: 'Skip',\n REVERT_SKIP: 'Revert Skip',\n REVIEW: 'Review',\n VIEW: 'View',\n RESET: 'Reset',\n LOCK: 'Lock',\n UNLOCK: 'Unlock',\n};\n\nexport enum NODE_CARD_STATES {\n LOCKED = 'LOCKED',\n NOT_STARTED = 'NOT_STARTED',\n WAIT_FOR_REVIEW = 'WAIT_FOR_REVIEW',\n IN_PROGRESS = 'IN_PROGRESS',\n COMPLETED = 'COMPLETED',\n}\n\nexport enum NODE_CARD_COURSE_TYPES {\n PROGRAM = 'PROGRAM',\n REMEDIAL = 'REMEDIAL',\n TEST_SERIES = 'TEST_SERIES',\n EXAM = 'EXAM',\n MATHFIT = 'MATHFIT',\n}\n"],"names":["TEACHER_MENU_LABELS","NODE_CARD_STATES"],"mappings":"AAAO,MAAMA,IAAsB;AAAA,EACjC,cAAc;AAAA,EACd,cAAc;AAAA,EACd,MAAM;AAAA,EACN,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AACV;AAEY,IAAAC,sBAAAA,OACVA,EAAA,SAAS,UACTA,EAAA,cAAc,eACdA,EAAA,kBAAkB,mBAClBA,EAAA,cAAc,eACdA,EAAA,YAAY,aALFA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"node-constants.js","sources":["../../../../src/features/chapters-v2/constants/node-constants.ts"],"sourcesContent":["export const TEACHER_MENU_LABELS = {\n ASSIGN_AS_HW: 'Assign as HW',\n MARK_AS_DONE: 'Mark as Done',\n SKIP: 'Skip',\n REVERT_SKIP: 'Revert Skip',\n REVIEW: 'Review',\n VIEW: 'View',\n RESET: 'Reset',\n LOCK: 'Lock',\n UNLOCK: 'Unlock',\n};\n\nexport enum NODE_CARD_STATES {\n LOCKED = 'LOCKED',\n NOT_STARTED = 'NOT_STARTED',\n WAIT_FOR_REVIEW = 'WAIT_FOR_REVIEW',\n IN_PROGRESS = 'IN_PROGRESS',\n COMPLETED = 'COMPLETED',\n EXPIRED = 'EXPIRED',\n}\n\nexport enum NODE_CARD_COURSE_TYPES {\n PROGRAM = 'PROGRAM',\n REMEDIAL = 'REMEDIAL',\n TEST_SERIES = 'TEST_SERIES',\n EXAM = 'EXAM',\n MATHFIT = 'MATHFIT',\n}\n"],"names":["TEACHER_MENU_LABELS","NODE_CARD_STATES"],"mappings":"AAAO,MAAMA,IAAsB;AAAA,EACjC,cAAc;AAAA,EACd,cAAc;AAAA,EACd,MAAM;AAAA,EACN,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AACV;AAEY,IAAAC,sBAAAA,OACVA,EAAA,SAAS,UACTA,EAAA,cAAc,eACdA,EAAA,kBAAkB,mBAClBA,EAAA,cAAc,eACdA,EAAA,YAAY,aACZA,EAAA,UAAU,WANAA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -1,61 +1,76 @@
1
- import { jsx as e, jsxs as S } from "react/jsx-runtime";
2
- import l from "../../../assets/line-icons/icons/check2.js";
3
- import R from "../../../assets/line-icons/icons/exclamation.js";
4
- import m from "../../../assets/line-icons/icons/lock2.js";
5
- import p from "../../../assets/line-icons/icons/status.js";
6
- import { LOTTIE as t } from "../../../assets/lottie/lottie.js";
7
- import u from "../../ui/layout/flex-view.js";
8
- import E from "../../ui/arrow-tooltip/arrow-tooltip.js";
9
- import I from "../../ui/text/text.js";
10
- import { InProgressIconWrapper as d } from "../comps/node-card/node-card-styled.js";
11
- import A from "../comps/tag/tag.js";
12
- const f = 60 * 60 * 24, _ = ["NOT_STARTED"], C = (r, c) => {
13
- if (!r || c)
14
- return { isOverdue: !1, daysText: "", differenceInDays: 0 };
15
- const i = Math.floor(Date.now() / 1e3), s = r - i, o = Math.round(s / f), a = o < 0, n = o > 0 ? `${Math.abs(o)}D` : "";
16
- return { isOverdue: a, daysText: n, differenceInDays: o };
17
- }, x = (r, c, i, s, o) => {
18
- const { isOverdue: a, daysText: n, differenceInDays: T } = C(s, o);
19
- if (!o && a && _.includes(r))
1
+ import { jsx as t, jsxs as _ } from "react/jsx-runtime";
2
+ import p from "../../../assets/line-icons/icons/check2.js";
3
+ import h from "../../../assets/line-icons/icons/exclamation.js";
4
+ import N from "../../../assets/line-icons/icons/lock2.js";
5
+ import C from "../../../assets/line-icons/icons/status.js";
6
+ import { LOTTIE as r } from "../../../assets/lottie/lottie.js";
7
+ import f from "../../ui/layout/flex-view.js";
8
+ import S from "../../ui/arrow-tooltip/arrow-tooltip.js";
9
+ import u from "../../ui/text/text.js";
10
+ import { InProgressIconWrapper as D } from "../comps/node-card/node-card-styled.js";
11
+ import R from "../comps/tag/tag.js";
12
+ const P = 60 * 60 * 24, L = 60 * 60, g = 60, O = ["NOT_STARTED"], $ = (e, o, n) => {
13
+ if (!e || o && !n)
14
+ return { isOverdue: !1, daysText: "", differenceInDays: 0, hoursLeft: 0, minutesLeft: 0 };
15
+ const i = Math.floor(Date.now() / 1e3), c = e - i, a = Math.floor(c / L), T = Math.floor(c / g), s = Math.round(c / P), d = s < 0, E = s > 0 ? `${Math.abs(s)}D` : "", A = a > 0 ? Math.abs(a) : 0, I = T > 0 ? Math.abs(T) : 0;
16
+ return { isOverdue: d, daysText: E, differenceInDays: s, hoursLeft: A, minutesLeft: I };
17
+ }, M = (e, o, n, i) => i ? e < 1 && o > 0 ? `${o}m` : `${e}h` : n, m = (e, o, n = !1) => /* @__PURE__ */ _(
18
+ D,
19
+ {
20
+ $flexDirection: "row",
21
+ $alignItems: "center",
22
+ $justifyContent: "center",
23
+ $borderRadius: 16,
24
+ $paddingRight: n ? 0 : 6,
25
+ $paddingLeft: e ? 6 : 0,
26
+ $showWarningBg: o,
27
+ children: [
28
+ e && /* @__PURE__ */ t(u, { $renderAs: "ub3-bold", $color: "WHITE", children: e }),
29
+ n && /* @__PURE__ */ t(C, {})
30
+ ]
31
+ }
32
+ ), v = ({
33
+ state: e,
34
+ isStudent: o,
35
+ accuracy: n,
36
+ dueDateTs: i,
37
+ isMilestone: c,
38
+ isMathFitCard: a
39
+ }) => {
40
+ const { isOverdue: T, daysText: s, differenceInDays: d, hoursLeft: E, minutesLeft: A } = $(
41
+ i,
42
+ c,
43
+ a
44
+ ), I = !!(a && E <= 24 && E >= 0), l = M(E, A, s, I);
45
+ if (!c && T && O.includes(e))
20
46
  return {
21
- icon: /* @__PURE__ */ e(
22
- E,
47
+ icon: /* @__PURE__ */ t(
48
+ S,
23
49
  {
24
50
  renderAs: "primary",
25
51
  position: "bottom",
26
52
  tooltipItem: "Complete now",
27
53
  zIndex: 10,
28
- hidden: !c,
54
+ hidden: !o,
29
55
  parentWidth: "fit-content",
30
- children: /* @__PURE__ */ e(u, { $background: "RED", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ e(I, { $renderAs: "ac4-black", $color: "WHITE", children: "OVERDUE" }) })
56
+ children: /* @__PURE__ */ t(f, { $background: "RED", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ t(u, { $renderAs: "ac4-black", $color: "WHITE", children: "OVERDUE" }) })
31
57
  }
32
58
  ),
33
59
  top: -10,
34
60
  right: -10
35
61
  };
36
- switch (r) {
62
+ switch (e) {
37
63
  case "NOT_STARTED":
38
64
  return {
39
- icon: /* @__PURE__ */ e(
40
- E,
65
+ icon: /* @__PURE__ */ t(
66
+ S,
41
67
  {
42
68
  renderAs: "primary",
43
69
  position: "bottom",
44
- tooltipItem: T > 1 ? `${T} days left` : "Complete it today",
70
+ tooltipItem: d > 1 ? `${d} days left` : "Complete it today",
45
71
  zIndex: 10,
46
- hidden: !c,
47
- children: /* @__PURE__ */ e(
48
- d,
49
- {
50
- $flexDirection: "row",
51
- $alignItems: "center",
52
- $justifyContent: "center",
53
- $borderRadius: 16,
54
- $paddingRight: 6,
55
- $paddingLeft: 6,
56
- children: n && /* @__PURE__ */ e(I, { $renderAs: "ub3-bold", $color: "WHITE", children: n })
57
- }
58
- )
72
+ hidden: !o,
73
+ children: m(l, I)
59
74
  }
60
75
  ),
61
76
  top: 0,
@@ -63,35 +78,21 @@ const f = 60 * 60 * 24, _ = ["NOT_STARTED"], C = (r, c) => {
63
78
  };
64
79
  case "LOCKED":
65
80
  return {
66
- icon: /* @__PURE__ */ e(m, { width: 32, height: 32 }),
81
+ icon: /* @__PURE__ */ t(N, { width: 32, height: 32 }),
67
82
  top: -16,
68
83
  right: -16
69
84
  };
70
85
  case "IN_PROGRESS":
71
86
  return {
72
- icon: /* @__PURE__ */ S(
73
- d,
74
- {
75
- $flexDirection: "row",
76
- $alignItems: "center",
77
- $justifyContent: "center",
78
- $borderRadius: 16,
79
- $paddingRight: 0,
80
- $paddingLeft: n ? 6 : 0,
81
- children: [
82
- n && /* @__PURE__ */ e(I, { $renderAs: "ub3-bold", $color: "WHITE", children: n }),
83
- /* @__PURE__ */ e(p, {})
84
- ]
85
- }
86
- )
87
+ icon: m(l, I, !0)
87
88
  };
88
89
  case "COMPLETED":
89
90
  return {
90
- icon: /* @__PURE__ */ e(
91
- A,
91
+ icon: /* @__PURE__ */ t(
92
+ R,
92
93
  {
93
- Icon: l,
94
- label: typeof i == "number" ? `${i}%` : void 0
94
+ Icon: p,
95
+ label: typeof n == "number" ? `${n}%` : void 0
95
96
  }
96
97
  ),
97
98
  top: -10,
@@ -99,37 +100,43 @@ const f = 60 * 60 * 24, _ = ["NOT_STARTED"], C = (r, c) => {
99
100
  };
100
101
  case "WAIT_FOR_REVIEW":
101
102
  return {
102
- icon: /* @__PURE__ */ e(
103
- E,
103
+ icon: /* @__PURE__ */ t(
104
+ S,
104
105
  {
105
106
  renderAs: "primary",
106
107
  position: "bottom",
107
- tooltipItem: c ? "Waiting for teacher to review" : "Needs your review",
108
+ tooltipItem: o ? "Waiting for teacher to review" : "Needs your review",
108
109
  zIndex: 10,
109
- children: /* @__PURE__ */ e(A, { Icon: R })
110
+ children: /* @__PURE__ */ t(R, { Icon: h })
110
111
  }
111
112
  ),
112
113
  top: -10,
113
114
  right: -10
114
115
  };
116
+ case "EXPIRED":
117
+ return {
118
+ icon: /* @__PURE__ */ t(f, { $background: "WHITE_5", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ t(u, { $renderAs: "ub3", $color: "BLACK_1", children: "EXPIRED" }) }),
119
+ top: -10,
120
+ right: -10
121
+ };
115
122
  default:
116
123
  return {
117
124
  icon: void 0
118
125
  };
119
126
  }
120
- }, y = (r) => {
121
- switch (r) {
127
+ }, X = (e) => {
128
+ switch (e) {
122
129
  case "LEVEL2":
123
130
  case "LEVEL3":
124
131
  case "HIDDEN_BASIC":
125
132
  return {
126
- lottie: t.COMPETITIVE_ARENA
133
+ lottie: r.COMPETITIVE_ARENA
127
134
  };
128
135
  case "LEARNING":
129
136
  case "SAT_MATH_LEARNING":
130
137
  case "SAT_ENGLISH_LEARNING":
131
138
  return {
132
- lottie: t.LEARN
139
+ lottie: r.LEARN
133
140
  };
134
141
  case "RECAP":
135
142
  case "REMEDIAL":
@@ -138,7 +145,7 @@ const f = 60 * 60 * 24, _ = ["NOT_STARTED"], C = (r, c) => {
138
145
  case "SAT_MATH_RECAP":
139
146
  case "SAT_ENGLISH_RECAP":
140
147
  return {
141
- lottie: t.RECAP
148
+ lottie: r.RECAP
142
149
  };
143
150
  case "DYNAMIC":
144
151
  case "ASSESSMENT":
@@ -146,7 +153,7 @@ const f = 60 * 60 * 24, _ = ["NOT_STARTED"], C = (r, c) => {
146
153
  case "DIAGNOSTIC":
147
154
  case "TURING_ASSESSMENT":
148
155
  return {
149
- lottie: t.TEST
156
+ lottie: r.TEST
150
157
  };
151
158
  case "PRACTICE":
152
159
  case "EXTRA_PRACTICE":
@@ -156,41 +163,41 @@ const f = 60 * 60 * 24, _ = ["NOT_STARTED"], C = (r, c) => {
156
163
  case "SAT_MATH_ASSESSMENT":
157
164
  case "SAT_ENGLISH_ASSESSMENT":
158
165
  return {
159
- lottie: t.PRACTICE
166
+ lottie: r.PRACTICE
160
167
  };
161
168
  case "PUZZLE":
162
169
  case "PUZZLE_EASY":
163
170
  case "PUZZLE_MEDIUM":
164
171
  case "PUZZLE_HARD":
165
172
  return {
166
- lottie: t.PUZZLE
173
+ lottie: r.PUZZLE
167
174
  };
168
175
  case "TURING_SUBJECTIVE":
169
176
  return {
170
- lottie: t.SUBJECTIVE
177
+ lottie: r.SUBJECTIVE
171
178
  };
172
179
  case "TURING_BASIC":
173
180
  case "PYTHON_BASIC":
174
181
  case "PYTHON_VISUAL":
175
182
  return {
176
- lottie: t.ACTIVITY
183
+ lottie: r.ACTIVITY
177
184
  };
178
185
  case "VIDEO":
179
186
  return {
180
- lottie: t.VIDEO
187
+ lottie: r.VIDEO
181
188
  };
182
189
  case "PDF":
183
190
  return {
184
- lottie: t.DOWNLOAD
191
+ lottie: r.DOWNLOAD
185
192
  };
186
193
  default:
187
194
  return {
188
- lottie: t.PROJECT
195
+ lottie: r.PROJECT
189
196
  };
190
197
  }
191
198
  };
192
199
  export {
193
- y as getNodeCardBasedIcon,
194
- x as getNodeStateBasedTagInfo
200
+ X as getNodeCardBasedIcon,
201
+ v as getNodeStateBasedTagInfo
195
202
  };
196
203
  //# sourceMappingURL=node-card-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-card-utils.js","sources":["../../../../src/features/chapters-v2/utils/node-card-utils.tsx"],"sourcesContent":["import Check2Icon from '../../../assets/line-icons/icons/check2';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport FlexView from '../..//ui/layout/flex-view';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport Text from '../../ui/text/text';\nimport { InProgressIconWrapper } from '../comps/node-card/node-card-styled';\nimport type { INodeDataProps } from '../comps/node-card/node-card-types';\nimport Tag from '../comps/tag/tag';\n\ninterface DueDateInfo {\n isOverdue: boolean;\n daysText: string;\n differenceInDays: number;\n}\n\nconst SECONDS_PER_DAY = 60 * 60 * 24;\nconst OVERDUE_TAG_STATES: INodeDataProps['state'][] = ['NOT_STARTED'];\n\nconst calculateDueDateInfo = (dueDateTs?: number | null, isMilestone?: boolean): DueDateInfo => {\n if (!dueDateTs || isMilestone) {\n return { isOverdue: false, daysText: '', differenceInDays: 0 };\n }\n\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const differenceInSeconds = dueDateTs - currentTimestamp;\n const differenceInDays = Math.round(differenceInSeconds / SECONDS_PER_DAY);\n\n const isOverdue = differenceInDays < 0;\n\n const daysText = differenceInDays > 0 ? `${Math.abs(differenceInDays)}D` : '';\n\n return { isOverdue, daysText, differenceInDays };\n};\n\nconst getNodeStateBasedTagInfo = (\n nodeState: INodeDataProps['state'],\n isStudent: boolean,\n accuracy?: number | null,\n dueDateTs?: number | null,\n isMilestone?: boolean,\n) => {\n const { isOverdue, daysText, differenceInDays } = calculateDueDateInfo(dueDateTs, isMilestone);\n\n if (!isMilestone && isOverdue && OVERDUE_TAG_STATES.includes(nodeState)) {\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Complete now\"\n zIndex={10}\n hidden={!isStudent}\n parentWidth=\"fit-content\"\n >\n <FlexView $background=\"RED\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ac4-black\" $color=\"WHITE\">\n OVERDUE\n </Text>\n </FlexView>\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n }\n\n switch (nodeState) {\n case 'NOT_STARTED':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={\n differenceInDays > 1 ? `${differenceInDays} days left` : 'Complete it today'\n }\n zIndex={10}\n hidden={!isStudent}\n >\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={6}\n $paddingLeft={6}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n </InProgressIconWrapper>\n </ArrowTooltip>\n ),\n top: 0,\n right: 0,\n };\n case 'LOCKED':\n return {\n icon: <Lock2Icon width={32} height={32} />,\n top: -16,\n right: -16,\n };\n case 'IN_PROGRESS':\n return {\n icon: (\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={0}\n $paddingLeft={daysText ? 6 : 0}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n <StatusIcon />\n </InProgressIconWrapper>\n ),\n };\n case 'COMPLETED':\n return {\n icon: (\n <Tag\n Icon={Check2Icon}\n label={typeof accuracy === 'number' ? `${accuracy}%` : undefined}\n />\n ),\n top: -10,\n right: -10,\n };\n case 'WAIT_FOR_REVIEW':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={isStudent ? 'Waiting for teacher to review' : 'Needs your review'}\n zIndex={10}\n >\n <Tag Icon={ExclamationIcon} />\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n\n default:\n return {\n icon: undefined,\n };\n }\n};\n\nconst getNodeCardBasedIcon = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEVEL2':\n case 'LEVEL3':\n case 'HIDDEN_BASIC':\n return {\n lottie: LOTTIE.COMPETITIVE_ARENA,\n };\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return {\n lottie: LOTTIE.LEARN,\n };\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n case 'PPT_BASIC':\n case 'SAT_MATH_RECAP':\n case 'SAT_ENGLISH_RECAP':\n return {\n lottie: LOTTIE.RECAP,\n };\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'TURING_ASSESSMENT':\n return {\n lottie: LOTTIE.TEST,\n };\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n case 'TURING_PRACTICE':\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return {\n lottie: LOTTIE.PRACTICE,\n };\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return {\n lottie: LOTTIE.PUZZLE,\n };\n case 'TURING_SUBJECTIVE':\n return {\n lottie: LOTTIE.SUBJECTIVE,\n };\n case 'TURING_BASIC':\n case 'PYTHON_BASIC':\n case 'PYTHON_VISUAL':\n return {\n lottie: LOTTIE.ACTIVITY,\n };\n case 'VIDEO':\n return {\n lottie: LOTTIE.VIDEO,\n };\n case 'PDF':\n return {\n lottie: LOTTIE.DOWNLOAD,\n };\n default:\n return {\n lottie: LOTTIE.PROJECT,\n };\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["SECONDS_PER_DAY","OVERDUE_TAG_STATES","calculateDueDateInfo","dueDateTs","isMilestone","currentTimestamp","differenceInSeconds","differenceInDays","isOverdue","daysText","getNodeStateBasedTagInfo","nodeState","isStudent","accuracy","jsx","ArrowTooltip","FlexView","Text","InProgressIconWrapper","Lock2Icon","jsxs","StatusIcon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","LOTTIE"],"mappings":"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"}
1
+ {"version":3,"file":"node-card-utils.js","sources":["../../../../src/features/chapters-v2/utils/node-card-utils.tsx"],"sourcesContent":["import Check2Icon from '../../../assets/line-icons/icons/check2';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport FlexView from '../..//ui/layout/flex-view';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport Text from '../../ui/text/text';\nimport { InProgressIconWrapper } from '../comps/node-card/node-card-styled';\nimport type { INodeCardTagsProps, INodeDataProps } from '../comps/node-card/node-card-types';\nimport Tag from '../comps/tag/tag';\n\ninterface IDueDateInfo {\n isOverdue: boolean;\n daysText: string;\n differenceInDays: number;\n hoursLeft: number;\n minutesLeft: number;\n}\n\nconst SECONDS_PER_DAY = 60 * 60 * 24;\nconst SECONDS_PER_HOUR = 60 * 60;\nconst SECONDS_PER_MINUTE = 60;\nconst OVERDUE_TAG_STATES: INodeDataProps['state'][] = ['NOT_STARTED'];\n\nconst calculateDueDateInfo = (\n dueDateTs?: number | null,\n isMilestone?: boolean,\n isMathFitCard?: boolean,\n): IDueDateInfo => {\n if (!dueDateTs || (isMilestone && !isMathFitCard)) {\n return { isOverdue: false, daysText: '', differenceInDays: 0, hoursLeft: 0, minutesLeft: 0 };\n }\n\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const differenceInSeconds = dueDateTs - currentTimestamp;\n const differenceInHours = Math.floor(differenceInSeconds / SECONDS_PER_HOUR);\n const differenceInMinutes = Math.floor(differenceInSeconds / SECONDS_PER_MINUTE);\n const differenceInDays = Math.round(differenceInSeconds / SECONDS_PER_DAY);\n\n const isOverdue = differenceInDays < 0;\n\n const daysText = differenceInDays > 0 ? `${Math.abs(differenceInDays)}D` : '';\n const hoursLeft = differenceInHours > 0 ? Math.abs(differenceInHours) : 0;\n const minutesLeft = differenceInMinutes > 0 ? Math.abs(differenceInMinutes) : 0;\n\n return { isOverdue, daysText, differenceInDays, hoursLeft, minutesLeft };\n};\n\nconst getTimeDisplayText = (\n hoursLeft: number,\n minutesLeft: number,\n daysText: string,\n showWarning: boolean,\n): string => {\n if (showWarning) {\n return hoursLeft < 1 && minutesLeft > 0 ? `${minutesLeft}m` : `${hoursLeft}h`;\n }\n\n return daysText;\n};\n\nconst renderTimeDisplayIcon = (\n timeDisplayText: string,\n showWarning: boolean,\n includeStatusIcon = false,\n) => {\n return (\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={includeStatusIcon ? 0 : 6}\n $paddingLeft={timeDisplayText ? 6 : 0}\n $showWarningBg={showWarning}\n >\n {timeDisplayText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {timeDisplayText}\n </Text>\n )}\n {includeStatusIcon && <StatusIcon />}\n </InProgressIconWrapper>\n );\n};\n\nconst getNodeStateBasedTagInfo = ({\n state: nodeState,\n isStudent,\n accuracy,\n dueDateTs,\n isMilestone,\n isMathFitCard,\n}: INodeCardTagsProps) => {\n const { isOverdue, daysText, differenceInDays, hoursLeft, minutesLeft } = calculateDueDateInfo(\n dueDateTs,\n isMilestone,\n isMathFitCard,\n );\n\n const showWarning = !!(isMathFitCard && hoursLeft <= 24 && hoursLeft >= 0);\n\n const timeDisplayText = getTimeDisplayText(hoursLeft, minutesLeft, daysText, showWarning);\n\n if (!isMilestone && isOverdue && OVERDUE_TAG_STATES.includes(nodeState)) {\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Complete now\"\n zIndex={10}\n hidden={!isStudent}\n parentWidth=\"fit-content\"\n >\n <FlexView $background=\"RED\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ac4-black\" $color=\"WHITE\">\n OVERDUE\n </Text>\n </FlexView>\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n }\n\n switch (nodeState) {\n case 'NOT_STARTED':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={\n differenceInDays > 1 ? `${differenceInDays} days left` : 'Complete it today'\n }\n zIndex={10}\n hidden={!isStudent}\n >\n {renderTimeDisplayIcon(timeDisplayText, showWarning)}\n </ArrowTooltip>\n ),\n top: 0,\n right: 0,\n };\n case 'LOCKED':\n return {\n icon: <Lock2Icon width={32} height={32} />,\n top: -16,\n right: -16,\n };\n case 'IN_PROGRESS':\n return {\n icon: renderTimeDisplayIcon(timeDisplayText, showWarning, true),\n };\n case 'COMPLETED':\n return {\n icon: (\n <Tag\n Icon={Check2Icon}\n label={typeof accuracy === 'number' ? `${accuracy}%` : undefined}\n />\n ),\n top: -10,\n right: -10,\n };\n case 'WAIT_FOR_REVIEW':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={isStudent ? 'Waiting for teacher to review' : 'Needs your review'}\n zIndex={10}\n >\n <Tag Icon={ExclamationIcon} />\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n\n case 'EXPIRED':\n return {\n icon: (\n <FlexView $background=\"WHITE_5\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ub3\" $color=\"BLACK_1\">\n EXPIRED\n </Text>\n </FlexView>\n ),\n top: -10,\n right: -10,\n };\n\n default:\n return {\n icon: undefined,\n };\n }\n};\n\nconst getNodeCardBasedIcon = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEVEL2':\n case 'LEVEL3':\n case 'HIDDEN_BASIC':\n return {\n lottie: LOTTIE.COMPETITIVE_ARENA,\n };\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return {\n lottie: LOTTIE.LEARN,\n };\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n case 'PPT_BASIC':\n case 'SAT_MATH_RECAP':\n case 'SAT_ENGLISH_RECAP':\n return {\n lottie: LOTTIE.RECAP,\n };\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'TURING_ASSESSMENT':\n return {\n lottie: LOTTIE.TEST,\n };\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n case 'TURING_PRACTICE':\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return {\n lottie: LOTTIE.PRACTICE,\n };\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return {\n lottie: LOTTIE.PUZZLE,\n };\n case 'TURING_SUBJECTIVE':\n return {\n lottie: LOTTIE.SUBJECTIVE,\n };\n case 'TURING_BASIC':\n case 'PYTHON_BASIC':\n case 'PYTHON_VISUAL':\n return {\n lottie: LOTTIE.ACTIVITY,\n };\n case 'VIDEO':\n return {\n lottie: LOTTIE.VIDEO,\n };\n case 'PDF':\n return {\n lottie: LOTTIE.DOWNLOAD,\n };\n default:\n return {\n lottie: LOTTIE.PROJECT,\n };\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["SECONDS_PER_DAY","SECONDS_PER_HOUR","SECONDS_PER_MINUTE","OVERDUE_TAG_STATES","calculateDueDateInfo","dueDateTs","isMilestone","isMathFitCard","currentTimestamp","differenceInSeconds","differenceInHours","differenceInMinutes","differenceInDays","isOverdue","daysText","hoursLeft","minutesLeft","getTimeDisplayText","showWarning","renderTimeDisplayIcon","timeDisplayText","includeStatusIcon","jsxs","InProgressIconWrapper","Text","StatusIcon","getNodeStateBasedTagInfo","nodeState","isStudent","accuracy","jsx","ArrowTooltip","FlexView","Lock2Icon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","LOTTIE"],"mappings":"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"}