@cuemath/leap 3.5.51-as13 → 3.5.51-as14

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.
@@ -1,6 +1,6 @@
1
1
  import t from "styled-components";
2
- import d from "../../../../assets/line-icons/icons/important.js";
3
- import c from "../../../../assets/line-icons/icons/lock2.js";
2
+ import s from "../../../../assets/line-icons/icons/important.js";
3
+ import d from "../../../../assets/line-icons/icons/lock2.js";
4
4
  import e from "../../../ui/layout/flex-view.js";
5
5
  import l from "../../../ui/text/text.js";
6
6
  const m = t(e)(({
@@ -8,12 +8,12 @@ const m = t(e)(({
8
8
  $disabled: r,
9
9
  $minWidth: n
10
10
  }) => {
11
- const { BLACK: p, BLACK_T_15: i, WHITE_5: a } = o.colors;
11
+ const { BLACK: i, BLACK_T_15: p, WHITE_5: a } = o.colors;
12
12
  return `
13
13
  ${n ? `min-width: ${n}px;` : ""}
14
14
  cursor: ${r ? "not-allowed" : "pointer"};
15
15
  position: relative;
16
- border-image: linear-gradient(to right, ${i} 0%, ${i} 100%);
16
+ border-image: linear-gradient(to right, ${p} 0%, ${p} 100%);
17
17
  outline: 1px solid ${a};
18
18
 
19
19
  .node-card-border {
@@ -29,11 +29,11 @@ const m = t(e)(({
29
29
 
30
30
  &:hover {
31
31
  ${!r && `
32
- outline: 1px solid ${p};
32
+ outline: 1px solid ${i};
33
33
  `}
34
34
  }
35
35
  `;
36
- }), f = t(d)(({ theme: o }) => {
36
+ }), b = t(s)(({ theme: o }) => {
37
37
  const { layout: r } = o;
38
38
  return `
39
39
  width: ${r.gutter * 0.75}px;
@@ -42,30 +42,30 @@ const m = t(e)(({
42
42
  top: -2.5px;
43
43
  right: -2.5px;
44
44
  `;
45
- }), $ = t(e)(({ $bgImage: o }) => `
45
+ }), f = 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
- `), I = t(e)`
52
+ `), $ = t(e)`
53
53
  border-radius: 50%;
54
- `, w = t(e)(() => `
54
+ `, I = 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(c)`
63
+ t(d)`
64
64
  width: 28px;
65
65
  height: 28px;
66
66
  `;
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;
67
+ const W = t(e)(({ theme: o, $paddingRight: r, $paddingLeft: n }) => {
68
+ const { WHITE_1: i } = o.colors;
69
69
  return `
70
70
  position: absolute;
71
71
  top: -10px;
@@ -73,13 +73,12 @@ const k = t(e)(({ theme: o, $paddingRight: r, $paddingLeft: n, $showWarningBg: p
73
73
  padding: 0px;
74
74
  padding-left: ${n}px;
75
75
  padding-right: ${r}px;
76
- background: ${p ? i : a};
77
76
 
78
77
  path {
79
- fill: ${s};
78
+ fill: ${i};
80
79
  }
81
80
  `;
82
- }), C = t(l)(() => `
81
+ }), k = t(l)(() => `
83
82
  display: -webkit-box;
84
83
  -webkit-box-orient: vertical;
85
84
  -webkit-line-clamp: 2;
@@ -93,7 +92,7 @@ const k = t(e)(({ theme: o, $paddingRight: r, $paddingLeft: n, $showWarningBg: p
93
92
  border-radius: 50%;
94
93
  background: ${o.colors.WHITE_5};
95
94
  }
96
- `), T = t(e)(({ theme: o, $visible: r }) => `
95
+ `), C = t(e)(({ theme: o, $visible: r }) => `
97
96
  cursor: pointer;
98
97
 
99
98
  position: absolute;
@@ -112,15 +111,15 @@ const k = t(e)(({ theme: o, $paddingRight: r, $paddingLeft: n, $showWarningBg: p
112
111
  }
113
112
  `);
114
113
  export {
115
- I as IconWrapper,
116
- k as InProgressIconWrapper,
114
+ $ as IconWrapper,
115
+ W as InProgressIconWrapper,
117
116
  m as NodeCardContainer,
118
- w as NodeCardContentWrapper,
119
- $ as NodeCardInfoWrapper,
120
- C as NodeCardTitle,
117
+ I as NodeCardContentWrapper,
118
+ f as NodeCardInfoWrapper,
119
+ k as NodeCardTitle,
121
120
  v as NodeKebabMenuWrapper,
122
- T as NodeMenuOptionsWrapper,
123
- W as SheetTagWrapper,
124
- f as StyledImportantIcon
121
+ C as NodeMenuOptionsWrapper,
122
+ w as SheetTagWrapper,
123
+ b as StyledImportantIcon
125
124
  };
126
125
  //# 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)<{\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
+ {"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}>(({ theme, $paddingRight, $paddingLeft }) => {\n const { 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\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","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,EAG1C,CAAC,EAAE,OAAAC,GAAO,eAAAkB,GAAe,cAAAC,QAAmB;AACvC,QAAA,EAAE,SAAAC,EAAQ,IAAIpB,EAAM;AAEnB,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKWmB,CAAY;AAAA,qBACXD,CAAa;AAAA;AAAA;AAAA,cAGpBE,CAAO;AAAA;AAAA;AAGrB,CAAC,GAEKC,IAAgBvB,EAAOwB,CAAI,EAAE,MAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOR,GAEKC,IAAuBzB,EAAOC,CAAQ,EAAE,CAAC,EAAE,OAAAC,QACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMWA,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC,GAMKwB,IAAyB1B,EAAOC,CAAQ,EAA2B,CAAC,EAAE,OAAAC,GAAO,UAAAyB,QAC1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBASeA,IAAW,IAAI,CAAC;AAAA,eACzBA,IAAW,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKXzB,EAAM,OAAO,OAAO;AAAA;AAAA,GAGvC;"}
@@ -1,21 +1,21 @@
1
1
  import { jsx as r, jsxs as p } from "react/jsx-runtime";
2
2
  import N from "../../../assets/line-icons/icons/check2.js";
3
- import h from "../../../assets/line-icons/icons/exclamation.js";
4
- import C from "../../../assets/line-icons/icons/lock2.js";
3
+ import C from "../../../assets/line-icons/icons/exclamation.js";
4
+ import h from "../../../assets/line-icons/icons/lock2.js";
5
5
  import D from "../../../assets/line-icons/icons/status.js";
6
6
  import { LOTTIE as o } from "../../../assets/lottie/lottie.js";
7
7
  import l 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 P } from "../comps/node-card/node-card-styled.js";
8
+ import u from "../../ui/arrow-tooltip/arrow-tooltip.js";
9
+ import S from "../../ui/text/text.js";
10
+ import { InProgressIconWrapper as L } from "../comps/node-card/node-card-styled.js";
11
11
  import R from "../comps/tag/tag.js";
12
- const L = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, t, n) => {
12
+ const P = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, t, n) => {
13
13
  if (!e || t && !n)
14
14
  return { isOverdue: !1, daysText: "", differenceInDays: 0, hoursLeft: 0, minutesLeft: 0 };
15
- const a = Math.floor(Date.now() / 1e3), c = e - a, s = Math.floor(c / g), T = Math.floor(c / $), i = Math.round(c / L), A = i < 0, E = i > 0 ? `${Math.abs(i)}D` : "", d = s > 0 ? Math.abs(s) : 0, I = T > 0 ? Math.abs(T) : 0;
15
+ const a = Math.floor(Date.now() / 1e3), c = e - a, s = Math.floor(c / g), T = Math.floor(c / $), i = Math.round(c / P), A = i < 0, E = i > 0 ? `${Math.abs(i)}D` : "", d = s > 0 ? Math.abs(s) : 0, I = T > 0 ? Math.abs(T) : 0;
16
16
  return { isOverdue: A, daysText: E, differenceInDays: i, hoursLeft: d, minutesLeft: I };
17
- }, b = (e, t, n, a) => a ? e < 1 && t > 0 ? `${t}m` : `${e}h` : n, m = (e, t, n = !1) => /* @__PURE__ */ p(
18
- P,
17
+ }, b = (e, t, n, a) => a ? e < 1 && t > 0 ? `${t}m` : `${e}h` : n, _ = (e, t, n = !1) => /* @__PURE__ */ p(
18
+ L,
19
19
  {
20
20
  $flexDirection: "row",
21
21
  $alignItems: "center",
@@ -23,9 +23,9 @@ const L = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, t, n)
23
23
  $borderRadius: 16,
24
24
  $paddingRight: n ? 0 : 6,
25
25
  $paddingLeft: e ? 6 : 0,
26
- $showWarningBg: t,
26
+ $background: t ? "RED" : "BLACK_1",
27
27
  children: [
28
- e && /* @__PURE__ */ r(u, { $renderAs: "ub3-bold", $color: "WHITE", children: e }),
28
+ e && /* @__PURE__ */ r(S, { $renderAs: "ub3-bold", $color: "WHITE", children: e }),
29
29
  n && /* @__PURE__ */ r(D, {})
30
30
  ]
31
31
  }
@@ -44,11 +44,11 @@ const L = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, t, n)
44
44
  a,
45
45
  c,
46
46
  s
47
- ), I = !!(s && E <= 24 && E >= 0), f = b(E, d, i, I), _ = U(n, s);
47
+ ), I = !!(s && E <= 24 && E >= 0), f = b(E, d, i, I), m = U(n, s);
48
48
  if (!c && T && O.includes(e))
49
49
  return {
50
50
  icon: /* @__PURE__ */ r(
51
- S,
51
+ u,
52
52
  {
53
53
  renderAs: "primary",
54
54
  position: "bottom",
@@ -56,7 +56,7 @@ const L = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, t, n)
56
56
  zIndex: 10,
57
57
  hidden: !t,
58
58
  parentWidth: "fit-content",
59
- children: /* @__PURE__ */ r(l, { $background: "RED", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ r(u, { $renderAs: "ac4-black", $color: "WHITE", children: "OVERDUE" }) })
59
+ children: /* @__PURE__ */ r(l, { $background: "RED", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ r(S, { $renderAs: "ac4-black", $color: "WHITE", children: "OVERDUE" }) })
60
60
  }
61
61
  ),
62
62
  top: -10,
@@ -66,14 +66,14 @@ const L = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, t, n)
66
66
  case "NOT_STARTED":
67
67
  return {
68
68
  icon: /* @__PURE__ */ r(
69
- S,
69
+ u,
70
70
  {
71
71
  renderAs: "primary",
72
72
  position: "bottom",
73
73
  tooltipItem: A > 1 ? `${A} days left` : "Complete it today",
74
74
  zIndex: 10,
75
75
  hidden: !t,
76
- children: m(f, I)
76
+ children: _(f, I)
77
77
  }
78
78
  ),
79
79
  top: 0,
@@ -81,30 +81,30 @@ const L = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, t, n)
81
81
  };
82
82
  case "LOCKED":
83
83
  return {
84
- icon: /* @__PURE__ */ r(C, { width: 32, height: 32 }),
84
+ icon: /* @__PURE__ */ r(h, { width: 32, height: 32 }),
85
85
  top: -16,
86
86
  right: -16
87
87
  };
88
88
  case "IN_PROGRESS":
89
89
  return {
90
- icon: m(f, I, !0)
90
+ icon: _(f, I, !0)
91
91
  };
92
92
  case "COMPLETED":
93
93
  return {
94
- icon: /* @__PURE__ */ r(R, { Icon: N, label: _ }),
94
+ icon: /* @__PURE__ */ r(R, { Icon: N, label: m }),
95
95
  top: -10,
96
96
  right: -10
97
97
  };
98
98
  case "WAIT_FOR_REVIEW":
99
99
  return {
100
100
  icon: /* @__PURE__ */ r(
101
- S,
101
+ u,
102
102
  {
103
103
  renderAs: "primary",
104
104
  position: "bottom",
105
105
  tooltipItem: t ? "Waiting for teacher to review" : "Needs your review",
106
106
  zIndex: 10,
107
- children: /* @__PURE__ */ r(R, { Icon: h })
107
+ children: /* @__PURE__ */ r(R, { Icon: C })
108
108
  }
109
109
  ),
110
110
  top: -10,
@@ -112,7 +112,7 @@ const L = 60 * 60 * 24, g = 60 * 60, $ = 60, O = ["NOT_STARTED"], M = (e, t, n)
112
112
  };
113
113
  case "EXPIRED":
114
114
  return {
115
- icon: /* @__PURE__ */ r(l, { $background: "WHITE_5", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ r(u, { $renderAs: "ub3", $color: "BLACK_1", children: "EXPIRED" }) }),
115
+ icon: /* @__PURE__ */ r(l, { $background: "WHITE_5", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ r(S, { $renderAs: "ub3", $color: "BLACK_1", children: "EXPIRED" }) }),
116
116
  top: -10,
117
117
  right: -10
118
118
  };
@@ -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 { 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 getAccuracyText = (accuracy?: number | null, isMathFitCard?: boolean): string | undefined => {\n if (typeof accuracy !== 'number') return undefined;\n\n return isMathFitCard ? `${accuracy}` : `${accuracy}%`;\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 const showWarning = !!(isMathFitCard && hoursLeft <= 24 && hoursLeft >= 0);\n const timeDisplayText = getTimeDisplayText(hoursLeft, minutesLeft, daysText, showWarning);\n const accuracyText = getAccuracyText(accuracy, isMathFitCard);\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: <Tag Icon={Check2Icon} label={accuracyText} />,\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","getAccuracyText","accuracy","getNodeStateBasedTagInfo","nodeState","isStudent","accuracyText","jsx","ArrowTooltip","FlexView","Lock2Icon","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 $background={showWarning ? 'RED' : 'BLACK_1'}\n >\n {timeDisplayText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {timeDisplayText}\n </Text>\n )}\n {includeStatusIcon && <StatusIcon />}\n </InProgressIconWrapper>\n );\n};\n\nconst getAccuracyText = (accuracy?: number | null, isMathFitCard?: boolean): string | undefined => {\n if (typeof accuracy !== 'number') return undefined;\n\n return isMathFitCard ? `${accuracy}` : `${accuracy}%`;\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 const showWarning = !!(isMathFitCard && hoursLeft <= 24 && hoursLeft >= 0);\n const timeDisplayText = getTimeDisplayText(hoursLeft, minutesLeft, daysText, showWarning);\n const accuracyText = getAccuracyText(accuracy, isMathFitCard);\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: <Tag Icon={Check2Icon} label={accuracyText} />,\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","getAccuracyText","accuracy","getNodeStateBasedTagInfo","nodeState","isStudent","accuracyText","jsx","ArrowTooltip","FlexView","Lock2Icon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","LOTTIE"],"mappings":";;;;;;;;;;;AAoBA,MAAMA,IAAkB,KAAK,KAAK,IAC5BC,IAAmB,KAAK,IACxBC,IAAqB,IACrBC,IAAgD,CAAC,aAAa,GAE9DC,IAAuB,CAC3BC,GACAC,GACAC,MACiB;AACjB,MAAI,CAACF,KAAcC,KAAe,CAACC;AAC1B,WAAA,EAAE,WAAW,IAAO,UAAU,IAAI,kBAAkB,GAAG,WAAW,GAAG,aAAa,EAAE;AAG7F,QAAMC,IAAmB,KAAK,MAAM,KAAK,IAAA,IAAQ,GAAI,GAC/CC,IAAsBJ,IAAYG,GAClCE,IAAoB,KAAK,MAAMD,IAAsBR,CAAgB,GACrEU,IAAsB,KAAK,MAAMF,IAAsBP,CAAkB,GACzEU,IAAmB,KAAK,MAAMH,IAAsBT,CAAe,GAEnEa,IAAYD,IAAmB,GAE/BE,IAAWF,IAAmB,IAAI,GAAG,KAAK,IAAIA,CAAgB,CAAC,MAAM,IACrEG,IAAYL,IAAoB,IAAI,KAAK,IAAIA,CAAiB,IAAI,GAClEM,IAAcL,IAAsB,IAAI,KAAK,IAAIA,CAAmB,IAAI;AAE9E,SAAO,EAAE,WAAAE,GAAW,UAAAC,GAAU,kBAAAF,GAAkB,WAAAG,GAAW,aAAAC,EAAY;AACzE,GAEMC,IAAqB,CACzBF,GACAC,GACAF,GACAI,MAEIA,IACKH,IAAY,KAAKC,IAAc,IAAI,GAAGA,CAAW,MAAM,GAAGD,CAAS,MAGrED,GAGHK,IAAwB,CAC5BC,GACAF,GACAG,IAAoB,OAGlB,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,gBAAe;AAAA,IACf,aAAY;AAAA,IACZ,iBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,eAAeF,IAAoB,IAAI;AAAA,IACvC,cAAcD,IAAkB,IAAI;AAAA,IACpC,aAAaF,IAAc,QAAQ;AAAA,IAElC,UAAA;AAAA,MAAAE,uBACEI,GAAK,EAAA,WAAU,YAAW,QAAO,SAC/B,UACHJ,GAAA;AAAA,MAEDC,uBAAsBI,GAAW,EAAA;AAAA,IAAA;AAAA,EAAA;AAAA,GAKlCC,IAAkB,CAACC,GAA0BpB,MAAgD;AAC7F,MAAA,OAAOoB,KAAa;AAExB,WAAOpB,IAAgB,GAAGoB,CAAQ,KAAK,GAAGA,CAAQ;AACpD,GAEMC,IAA2B,CAAC;AAAA,EAChC,OAAOC;AAAA,EACP,WAAAC;AAAA,EACA,UAAAH;AAAA,EACA,WAAAtB;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AACF,MAA0B;AACxB,QAAM,EAAE,WAAAM,GAAW,UAAAC,GAAU,kBAAAF,GAAkB,WAAAG,GAAW,aAAAC,MAAgBZ;AAAA,IACxEC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA,GAEIW,IAAc,CAAC,EAAEX,KAAiBQ,KAAa,MAAMA,KAAa,IAClEK,IAAkBH,EAAmBF,GAAWC,GAAaF,GAAUI,CAAW,GAClFa,IAAeL,EAAgBC,GAAUpB,CAAa;AAE5D,MAAI,CAACD,KAAeO,KAAaV,EAAmB,SAAS0B,CAAS;AAC7D,WAAA;AAAA,MACL,MACE,gBAAAG;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,aAAY;AAAA,UACZ,QAAQ;AAAA,UACR,QAAQ,CAACH;AAAA,UACT,aAAY;AAAA,UAEZ,4BAACI,GAAS,EAAA,aAAY,OAAM,eAAe,IAAI,OAAO,MAAM,UAAU,KACpE,4BAACV,GAAK,EAAA,WAAU,aAAY,QAAO,SAAQ,oBAE3C,CAAA,GACF;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,KAAK;AAAA,MACL,OAAO;AAAA,IAAA;AAIX,UAAQK,GAAW;AAAA,IACjB,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAG;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,aACErB,IAAmB,IAAI,GAAGA,CAAgB,eAAe;AAAA,YAE3D,QAAQ;AAAA,YACR,QAAQ,CAACkB;AAAA,YAER,UAAAX,EAAsBC,GAAiBF,CAAW;AAAA,UAAA;AAAA,QACrD;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MAAO,gBAAAc,EAAAG,GAAA,EAAU,OAAO,IAAI,QAAQ,IAAI;AAAA,QACxC,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MAAMhB,EAAsBC,GAAiBF,GAAa,EAAI;AAAA,MAAA;AAAA,IAElE,KAAK;AACI,aAAA;AAAA,QACL,MAAO,gBAAAc,EAAAI,GAAA,EAAI,MAAMC,GAAY,OAAON,GAAc;AAAA,QAClD,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAC;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,aAAaH,IAAY,kCAAkC;AAAA,YAC3D,QAAQ;AAAA,YAER,UAAA,gBAAAE,EAACI,GAAI,EAAA,MAAME,EAAiB,CAAA;AAAA,UAAA;AAAA,QAC9B;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAGX,KAAK;AACI,aAAA;AAAA,QACL,MACG,gBAAAN,EAAAE,GAAA,EAAS,aAAY,WAAU,eAAe,IAAI,OAAO,MAAM,UAAU,KACxE,4BAACV,GAAK,EAAA,WAAU,OAAM,QAAO,WAAU,oBAEvC,CAAA,GACF;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAGX;AACS,aAAA;AAAA,QACL,MAAM;AAAA,MAAA;AAAA,EAEZ;AACF,GAEMe,IAAuB,CAACC,MAA0C;AACtE,UAAQA,GAAU;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQC,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB,KAAK;AACI,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,IAEnB;AACS,aAAA;AAAA,QACL,QAAQA,EAAO;AAAA,MAAA;AAAA,EAErB;AACF;"}
@@ -1,37 +1,37 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import { memo as F, useCallback as M, useEffect as T } from "react";
3
- import d from "../../ui/loader/app-loader/app-loader.js";
4
- import { useGetMathFitAssessment as g } from "../api/get-mathfit-assessment.js";
5
- import { EMATHFIT_TEST_STATE as m } from "../math-fit-overview/math-fit-overview-types.js";
6
- import l from "../math-fit-overview/math-fit-overview.js";
7
- import v from "../math-fit-report/math-fit-report.js";
2
+ import { memo as M, useCallback as E, useEffect as d } from "react";
3
+ import g from "../../ui/loader/app-loader/app-loader.js";
4
+ import { useGetMathFitAssessment as l } from "../api/get-mathfit-assessment.js";
5
+ import { EMathFitTestState as m } from "../math-fit-overview/math-fit-overview-types.js";
6
+ import v from "../math-fit-overview/math-fit-overview.js";
7
+ import P from "../math-fit-report/math-fit-report.js";
8
8
  import A from "../../ui/error/error.js";
9
- const P = F(function({
10
- mathfitTestId: i,
9
+ const k = M(function({
10
+ mathfitTestId: o,
11
11
  userId: e,
12
12
  onResume: n,
13
13
  onReview: f,
14
14
  onDoLater: s,
15
- studentName: c,
16
- userType: h
15
+ studentName: h,
16
+ userType: c
17
17
  }) {
18
- const { get: a, data: t, isProcessing: p, isProcessed: u, isProcessingFailed: E } = g(), o = M(() => {
19
- a(e, void 0, { mathfitTestId: i });
20
- }, [a, e, i]);
21
- return T(() => {
22
- o();
23
- }, [o]), p ? /* @__PURE__ */ r(d, { height: "100dvh" }) : E || u && !t ? /* @__PURE__ */ r(A, { onTryAgain: o, height: "100dvh" }) : t ? t.state === m.COMPLETED || t.state === m.EXPIRED ? /* @__PURE__ */ r(
24
- v,
18
+ const { get: a, data: t, isProcessing: p, isProcessed: u, isProcessingFailed: F } = l(), i = E(() => {
19
+ a(e, void 0, { mathfitTestId: o });
20
+ }, [a, e, o]);
21
+ return d(() => {
22
+ i();
23
+ }, [i]), p ? /* @__PURE__ */ r(g, { height: "100dvh" }) : F || u && !t ? /* @__PURE__ */ r(A, { onTryAgain: i, height: "100dvh" }) : t ? t.state === m.COMPLETED || t.state === m.EXPIRED ? /* @__PURE__ */ r(
24
+ P,
25
25
  {
26
26
  data: t,
27
27
  onReview: f,
28
- studentName: c,
29
- userType: h,
28
+ studentName: h,
29
+ userType: c,
30
30
  onBack: s
31
31
  }
32
- ) : /* @__PURE__ */ r(l, { data: t, onResume: n, onDoLater: s }) : null;
33
- }), j = P;
32
+ ) : /* @__PURE__ */ r(v, { data: t, onResume: n, onDoLater: s }) : null;
33
+ }), y = k;
34
34
  export {
35
- j as default
35
+ y as default
36
36
  };
37
37
  //# sourceMappingURL=math-fit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"math-fit.js","sources":["../../../../src/features/math-fit/math-fit/math-fit.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, type FC } from 'react';\n\nimport AppLoader from '../../ui/loader/app-loader/app-loader';\nimport { useGetMathFitAssessment } from '../api/get-mathfit-assessment';\nimport {\n EMATHFIT_TEST_STATE,\n type IMathFitProps,\n} from '../math-fit-overview/math-fit-overview-types';\nimport MathFitOverview from '../math-fit-overview/math-fit-overview';\nimport MathFitReport from '../math-fit-report/math-fit-report';\nimport Error from '../../ui/error/error';\n\nconst MathFit: FC<IMathFitProps> = memo(function MathFit({\n mathfitTestId,\n userId,\n onResume,\n onReview,\n onDoLater,\n studentName,\n userType,\n}) {\n const { get, data, isProcessing, isProcessed, isProcessingFailed } = useGetMathFitAssessment();\n\n const fetchData = useCallback(() => {\n get(userId, undefined, { mathfitTestId });\n }, [get, userId, mathfitTestId]);\n\n useEffect(() => {\n fetchData();\n }, [fetchData]);\n\n if (isProcessing) {\n return <AppLoader height=\"100dvh\" />;\n }\n\n if (isProcessingFailed || (isProcessed && !data)) {\n return <Error onTryAgain={fetchData} height=\"100dvh\" />;\n }\n\n if (!data) return null;\n\n if (data.state === EMATHFIT_TEST_STATE.COMPLETED || data.state === EMATHFIT_TEST_STATE.EXPIRED) {\n return (\n <MathFitReport\n data={data}\n onReview={onReview}\n studentName={studentName}\n userType={userType}\n onBack={onDoLater}\n />\n );\n }\n\n return <MathFitOverview data={data} onResume={onResume} onDoLater={onDoLater} />;\n});\n\nexport default MathFit;\n"],"names":["MathFit","memo","mathfitTestId","userId","onResume","onReview","onDoLater","studentName","userType","get","data","isProcessing","isProcessed","isProcessingFailed","useGetMathFitAssessment","fetchData","useCallback","useEffect","jsx","AppLoader","Error","EMATHFIT_TEST_STATE","MathFitReport","MathFitOverview","MathFit$1"],"mappings":";;;;;;;;AAYA,MAAMA,IAA6BC,EAAK,SAAiB;AAAA,EACvD,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AACF,GAAG;AACD,QAAM,EAAE,KAAAC,GAAK,MAAAC,GAAM,cAAAC,GAAc,aAAAC,GAAa,oBAAAC,EAAA,IAAuBC,KAE/DC,IAAYC,EAAY,MAAM;AAClC,IAAAP,EAAIN,GAAQ,QAAW,EAAE,eAAAD,EAAe,CAAA;AAAA,EACvC,GAAA,CAACO,GAAKN,GAAQD,CAAa,CAAC;AAM/B,SAJAe,EAAU,MAAM;AACJ,IAAAF;EAAA,GACT,CAACA,CAAS,CAAC,GAEVJ,IACK,gBAAAO,EAACC,GAAU,EAAA,QAAO,SAAS,CAAA,IAGhCN,KAAuBD,KAAe,CAACF,IACjC,gBAAAQ,EAAAE,GAAA,EAAM,YAAYL,GAAW,QAAO,SAAS,CAAA,IAGlDL,IAEDA,EAAK,UAAUW,EAAoB,aAAaX,EAAK,UAAUW,EAAoB,UAEnF,gBAAAH;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,MAAAZ;AAAA,MACA,UAAAL;AAAA,MACA,aAAAE;AAAA,MACA,UAAAC;AAAA,MACA,QAAQF;AAAA,IAAA;AAAA,EAAA,IAKN,gBAAAY,EAAAK,GAAA,EAAgB,MAAAb,GAAY,UAAAN,GAAoB,WAAAE,EAAsB,CAAA,IAd5D;AAepB,CAAC,GAEDkB,IAAexB;"}
1
+ {"version":3,"file":"math-fit.js","sources":["../../../../src/features/math-fit/math-fit/math-fit.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, type FC } from 'react';\n\nimport AppLoader from '../../ui/loader/app-loader/app-loader';\nimport { useGetMathFitAssessment } from '../api/get-mathfit-assessment';\nimport {\n EMathFitTestState,\n type IMathFitProps,\n} from '../math-fit-overview/math-fit-overview-types';\nimport MathFitOverview from '../math-fit-overview/math-fit-overview';\nimport MathFitReport from '../math-fit-report/math-fit-report';\nimport Error from '../../ui/error/error';\n\nconst MathFit: FC<IMathFitProps> = memo(function MathFit({\n mathfitTestId,\n userId,\n onResume,\n onReview,\n onDoLater,\n studentName,\n userType,\n}) {\n const { get, data, isProcessing, isProcessed, isProcessingFailed } = useGetMathFitAssessment();\n\n const fetchData = useCallback(() => {\n get(userId, undefined, { mathfitTestId });\n }, [get, userId, mathfitTestId]);\n\n useEffect(() => {\n fetchData();\n }, [fetchData]);\n\n if (isProcessing) {\n return <AppLoader height=\"100dvh\" />;\n }\n\n if (isProcessingFailed || (isProcessed && !data)) {\n return <Error onTryAgain={fetchData} height=\"100dvh\" />;\n }\n\n if (!data) return null;\n\n if (data.state === EMathFitTestState.COMPLETED || data.state === EMathFitTestState.EXPIRED) {\n return (\n <MathFitReport\n data={data}\n onReview={onReview}\n studentName={studentName}\n userType={userType}\n onBack={onDoLater}\n />\n );\n }\n\n return <MathFitOverview data={data} onResume={onResume} onDoLater={onDoLater} />;\n});\n\nexport default MathFit;\n"],"names":["MathFit","memo","mathfitTestId","userId","onResume","onReview","onDoLater","studentName","userType","get","data","isProcessing","isProcessed","isProcessingFailed","useGetMathFitAssessment","fetchData","useCallback","useEffect","jsx","AppLoader","Error","EMathFitTestState","MathFitReport","MathFitOverview","MathFit$1"],"mappings":";;;;;;;;AAYA,MAAMA,IAA6BC,EAAK,SAAiB;AAAA,EACvD,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AACF,GAAG;AACD,QAAM,EAAE,KAAAC,GAAK,MAAAC,GAAM,cAAAC,GAAc,aAAAC,GAAa,oBAAAC,EAAA,IAAuBC,KAE/DC,IAAYC,EAAY,MAAM;AAClC,IAAAP,EAAIN,GAAQ,QAAW,EAAE,eAAAD,EAAe,CAAA;AAAA,EACvC,GAAA,CAACO,GAAKN,GAAQD,CAAa,CAAC;AAM/B,SAJAe,EAAU,MAAM;AACJ,IAAAF;EAAA,GACT,CAACA,CAAS,CAAC,GAEVJ,IACK,gBAAAO,EAACC,GAAU,EAAA,QAAO,SAAS,CAAA,IAGhCN,KAAuBD,KAAe,CAACF,IACjC,gBAAAQ,EAAAE,GAAA,EAAM,YAAYL,GAAW,QAAO,SAAS,CAAA,IAGlDL,IAEDA,EAAK,UAAUW,EAAkB,aAAaX,EAAK,UAAUW,EAAkB,UAE/E,gBAAAH;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,MAAAZ;AAAA,MACA,UAAAL;AAAA,MACA,aAAAE;AAAA,MACA,UAAAC;AAAA,MACA,QAAQF;AAAA,IAAA;AAAA,EAAA,IAKN,gBAAAY,EAAAK,GAAA,EAAgB,MAAAb,GAAY,UAAAN,GAAoB,WAAAE,EAAsB,CAAA,IAd5D;AAepB,CAAC,GAEDkB,IAAexB;"}
@@ -1,7 +1,7 @@
1
- var R = /* @__PURE__ */ ((C) => (C.COMPLETED = "COMPLETED", C.ACTIVE = "ACTIVE", C.LOCKED = "LOCKED", C))(R || {}), O = /* @__PURE__ */ ((C) => (C.CORRECT = "CORRECT", C.INCORRECT = "INCORRECT", C.SKIPPED = "SKIPPED", C))(O || {}), E = /* @__PURE__ */ ((C) => (C.IN_PROGRESS = "IN_PROGRESS", C.COMPLETED = "COMPLETED", C.NOT_STARTED = "NOT_STARTED", C.EXPIRED = "EXPIRED", C))(E || {});
1
+ var C = /* @__PURE__ */ ((E) => (E.COMPLETED = "COMPLETED", E.ACTIVE = "ACTIVE", E.LOCKED = "LOCKED", E))(C || {}), R = /* @__PURE__ */ ((E) => (E.CORRECT = "CORRECT", E.INCORRECT = "INCORRECT", E.SKIPPED = "SKIPPED", E))(R || {}), O = /* @__PURE__ */ ((E) => (E.IN_PROGRESS = "IN_PROGRESS", E.COMPLETED = "COMPLETED", E.NOT_STARTED = "NOT_STARTED", E.EXPIRED = "EXPIRED", E))(O || {});
2
2
  export {
3
- E as EMATHFIT_TEST_STATE,
4
- O as EQuestionState,
5
- R as ESectionStatus
3
+ O as EMathFitTestState,
4
+ R as EQuestionState,
5
+ C as ESectionStatus
6
6
  };
7
7
  //# sourceMappingURL=math-fit-overview-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"math-fit-overview-types.js","sources":["../../../../src/features/math-fit/math-fit-overview/math-fit-overview-types.ts"],"sourcesContent":["import type { INodeDataProps } from '../../chapters-v2/comps/node-card/node-card-types';\nimport { type TUserTypes } from '../../ui/types';\n\nexport enum ESectionStatus {\n COMPLETED = 'COMPLETED',\n ACTIVE = 'ACTIVE',\n LOCKED = 'LOCKED',\n}\n\nexport enum EQuestionState {\n CORRECT = 'CORRECT',\n INCORRECT = 'INCORRECT',\n SKIPPED = 'SKIPPED',\n}\n\nexport enum EMATHFIT_TEST_STATE {\n IN_PROGRESS = 'IN_PROGRESS',\n COMPLETED = 'COMPLETED',\n NOT_STARTED = 'NOT_STARTED',\n EXPIRED = 'EXPIRED',\n}\n\nexport interface ISectionData {\n id: string;\n title: string;\n status: ESectionStatus;\n questionsCount: number;\n timeInMinutes: number;\n sheetData: INodeDataProps;\n}\n\nexport interface IQuestionDetail {\n item_reference: string;\n state: EQuestionState;\n order: number;\n}\n\nexport interface IMiniGoalDetail {\n order: number;\n description: string;\n items: IQuestionDetail[];\n}\n\nexport interface IMathFitSection {\n id: string;\n section_number: number;\n score: number;\n previous_score: number;\n user_node_id: string;\n created_on: string;\n created_on_ts: number;\n updated_on: string;\n updated_on_ts: number;\n sheet: INodeDataProps;\n summary: {\n [goalId: string]: IMiniGoalDetail;\n };\n}\n\nexport interface IMathFitAssessmentResponse {\n id: string;\n user_id: string;\n state: EMATHFIT_TEST_STATE;\n score: number;\n previous_score: number;\n created_on: string;\n created_on_ts: number;\n updated_on: string;\n updated_on_ts: number;\n sections: IMathFitSection[];\n}\n\nexport interface IMathFitOverviewProps {\n data: IMathFitAssessmentResponse;\n onResume: (sheetData: INodeDataProps, sectionId: string) => void;\n onDoLater: () => void;\n}\n\nexport interface IMathFitProps {\n mathfitTestId: string;\n userId: string;\n onResume: (sheetData: INodeDataProps, sectionId: string) => void;\n onReview: (sheetData: INodeDataProps, sectionId: string) => void;\n onDoLater: () => void;\n studentName: string;\n userType: TUserTypes;\n}\n"],"names":["ESectionStatus","EQuestionState","EMATHFIT_TEST_STATE"],"mappings":"AAGY,IAAAA,sBAAAA,OACVA,EAAA,YAAY,aACZA,EAAA,SAAS,UACTA,EAAA,SAAS,UAHCA,IAAAA,KAAA,CAAA,CAAA,GAMAC,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,YAAY,aACZA,EAAA,UAAU,WAHAA,IAAAA,KAAA,CAAA,CAAA,GAMAC,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,YAAY,aACZA,EAAA,cAAc,eACdA,EAAA,UAAU,WAJAA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"math-fit-overview-types.js","sources":["../../../../src/features/math-fit/math-fit-overview/math-fit-overview-types.ts"],"sourcesContent":["import type { INodeDataProps } from '../../chapters-v2/comps/node-card/node-card-types';\nimport { type TUserTypes } from '../../ui/types';\n\nexport enum ESectionStatus {\n COMPLETED = 'COMPLETED',\n ACTIVE = 'ACTIVE',\n LOCKED = 'LOCKED',\n}\n\nexport enum EQuestionState {\n CORRECT = 'CORRECT',\n INCORRECT = 'INCORRECT',\n SKIPPED = 'SKIPPED',\n}\n\nexport enum EMathFitTestState {\n IN_PROGRESS = 'IN_PROGRESS',\n COMPLETED = 'COMPLETED',\n NOT_STARTED = 'NOT_STARTED',\n EXPIRED = 'EXPIRED',\n}\n\nexport interface ISectionData {\n id: string;\n title: string;\n status: ESectionStatus;\n questionsCount: number;\n timeInMinutes: number;\n sheetData: INodeDataProps;\n}\n\nexport interface IQuestionDetail {\n item_reference: string;\n state: EQuestionState;\n order: number;\n}\n\nexport interface IMiniGoalDetail {\n order: number;\n description: string;\n items: IQuestionDetail[];\n}\n\nexport interface IMathFitSection {\n id: string;\n section_number: number;\n score: number;\n previous_score: number;\n user_node_id: string;\n created_on: string;\n created_on_ts: number;\n updated_on: string;\n updated_on_ts: number;\n sheet: INodeDataProps;\n summary: {\n [goalId: string]: IMiniGoalDetail;\n };\n}\n\nexport interface IMathFitAssessmentResponse {\n id: string;\n user_id: string;\n state: EMathFitTestState;\n score: number;\n previous_score: number;\n created_on: string;\n created_on_ts: number;\n updated_on: string;\n updated_on_ts: number;\n sections: IMathFitSection[];\n}\n\nexport interface IMathFitOverviewProps {\n data: IMathFitAssessmentResponse;\n onResume: (sheetData: INodeDataProps, sectionId: string) => void;\n onDoLater: () => void;\n}\n\nexport interface IMathFitProps {\n mathfitTestId: string;\n userId: string;\n onResume: (sheetData: INodeDataProps, sectionId: string) => void;\n onReview: (sheetData: INodeDataProps, sectionId: string) => void;\n onDoLater: () => void;\n studentName: string;\n userType: TUserTypes;\n}\n"],"names":["ESectionStatus","EQuestionState","EMathFitTestState"],"mappings":"AAGY,IAAAA,sBAAAA,OACVA,EAAA,YAAY,aACZA,EAAA,SAAS,UACTA,EAAA,SAAS,UAHCA,IAAAA,KAAA,CAAA,CAAA,GAMAC,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,YAAY,aACZA,EAAA,UAAU,WAHAA,IAAAA,KAAA,CAAA,CAAA,GAMAC,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,YAAY,aACZA,EAAA,cAAc,eACdA,EAAA,UAAU,WAJAA,IAAAA,KAAA,CAAA,CAAA;"}
package/dist/index.d.ts CHANGED
@@ -585,7 +585,7 @@ export declare enum ELeaderboardType {
585
585
  INFINITE_TABLE = "infiniteTable"
586
586
  }
587
587
 
588
- declare enum EMATHFIT_TEST_STATE {
588
+ declare enum EMathFitTestState {
589
589
  IN_PROGRESS = "IN_PROGRESS",
590
590
  COMPLETED = "COMPLETED",
591
591
  NOT_STARTED = "NOT_STARTED",
@@ -2742,7 +2742,7 @@ declare interface IMaintenanceProps {
2742
2742
  declare interface IMathFitAssessmentResponse {
2743
2743
  id: string;
2744
2744
  user_id: string;
2745
- state: EMATHFIT_TEST_STATE;
2745
+ state: EMathFitTestState;
2746
2746
  score: number;
2747
2747
  previous_score: number;
2748
2748
  created_on: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/leap",
3
- "version": "3.5.51-as13",
3
+ "version": "3.5.51-as14",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"