texteditorrefactor 0.0.12 → 0.0.13
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.
- package/dist/components/Molecules/PerformanceScreen/PreformanceResultScreenSkeleton.d.ts +6 -0
- package/dist/components/Molecules/PerformanceScreen/PreformanceResultScreenSkeleton.js +12 -0
- package/dist/components/Molecules/PerformanceScreen/PreformanceResultScreenSkeleton.js.map +1 -0
- package/dist/components/Molecules/RecapNode/ContentView.js +2 -2
- package/dist/components/Molecules/RecapNode/ContentView.js.map +1 -1
- package/dist/components/Molecules/RecapNode/SectionView.js +70 -10
- package/dist/components/Molecules/RecapNode/SectionView.js.map +1 -1
- package/dist/components/Molecules/RecapNode/VideoView.d.ts +6 -1
- package/dist/components/Molecules/RecapNode/VideoView.js +47 -6
- package/dist/components/Molecules/RecapNode/VideoView.js.map +1 -1
- package/dist/components/Organisms/FlashCardNode/FlashCardNode.js +46 -3
- package/dist/components/Organisms/FlashCardNode/FlashCardNode.js.map +1 -1
- package/dist/components/Organisms/FlashCardNode/FlashcardContainer.d.ts +2 -1
- package/dist/components/Organisms/FlashCardNode/FlashcardContainer.js +6 -30
- package/dist/components/Organisms/FlashCardNode/FlashcardContainer.js.map +1 -1
- package/dist/components/Organisms/FlashCardNode/IconBar.d.ts +3 -1
- package/dist/components/Organisms/FlashCardNode/IconBar.js +3 -3
- package/dist/components/Organisms/FlashCardNode/IconBar.js.map +1 -1
- package/dist/components/Organisms/FlashCardNode/MobileAccordionView.d.ts +2 -1
- package/dist/components/Organisms/FlashCardNode/MobileAccordionView.js +12 -107
- package/dist/components/Organisms/FlashCardNode/MobileAccordionView.js.map +1 -1
- package/dist/components/Organisms/RecapGraph/Example.stories.js +22 -8
- package/dist/components/Organisms/RecapGraph/Example.stories.js.map +1 -1
- package/dist/components/Organisms/RecapGraph/Reactgraphflow.d.ts +3 -2
- package/dist/components/Organisms/RecapGraph/Reactgraphflow.js +54 -214
- package/dist/components/Organisms/RecapGraph/Reactgraphflow.js.map +1 -1
- package/dist/components/Organisms/RecapGraph/useRecapGraphLogic.d.ts +29 -0
- package/dist/components/Organisms/RecapGraph/useRecapGraphLogic.js +357 -0
- package/dist/components/Organisms/RecapGraph/useRecapGraphLogic.js.map +1 -0
- package/dist/components/Organisms/StudentEditor/components/EditorComponent.d.ts +0 -1
- package/dist/components/Organisms/StudentEditor/components/EditorComponent.js +4 -32
- package/dist/components/Organisms/StudentEditor/components/EditorComponent.js.map +1 -1
- package/dist/components/Organisms/StudentEditor/components/TextEditor.js +28 -63
- package/dist/components/Organisms/StudentEditor/components/TextEditor.js.map +1 -1
- package/dist/utils/RecapData.d.ts +504 -33
- package/dist/utils/RecapData.js +1999 -538
- package/dist/utils/RecapData.js.map +1 -1
- package/dist/utils/contentUtils.js +12 -5
- package/dist/utils/contentUtils.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const react_1 = require("@chakra-ui/react");
|
|
5
|
+
const QuizResult_styles_1 = require("./QuizResult.styles");
|
|
6
|
+
const PreformanceResultScreenSkeleton = ({ isMobile = false, }) => {
|
|
7
|
+
return ((0, jsx_runtime_1.jsx)(react_1.ChakraProvider, { children: (0, jsx_runtime_1.jsx)(react_1.Box, { sx: QuizResult_styles_1.styles.container, children: (0, jsx_runtime_1.jsx)(react_1.Box, { sx: {
|
|
8
|
+
...(isMobile && { background: "white", padding: "12px" }),
|
|
9
|
+
}, children: (0, jsx_runtime_1.jsxs)(react_1.Box, { sx: isMobile ? QuizResult_styles_1.styles.mobilecard : QuizResult_styles_1.styles.card, children: [(0, jsx_runtime_1.jsxs)(react_1.Box, { sx: QuizResult_styles_1.styles.header, children: [(0, jsx_runtime_1.jsx)(react_1.Box, { position: "absolute", left: "12px", bottom: "1px", width: isMobile ? "120px" : "183px", height: isMobile ? "120px" : "183px", bg: "#DFDAFE", borderTopLeftRadius: "100px", borderTopRightRadius: "100px", borderBottomLeftRadius: "100px", display: "flex", alignItems: "center", justifyContent: "center", zIndex: 2, children: (0, jsx_runtime_1.jsx)(react_1.Skeleton, { width: "90px", height: "90px", borderRadius: "50%" }) }), (0, jsx_runtime_1.jsxs)(react_1.Box, { sx: QuizResult_styles_1.styles.messageBox, children: [(0, jsx_runtime_1.jsx)(react_1.Skeleton, { height: "22px", width: "160px", mb: "6px", ml: "24px" }), (0, jsx_runtime_1.jsx)(react_1.SkeletonText, { noOfLines: 2, spacing: "3", skeletonHeight: "14px", ml: "24px", mr: "22px", mb: "24px" })] })] }), (0, jsx_runtime_1.jsx)(react_1.Box, { sx: QuizResult_styles_1.styles.separator }), (0, jsx_runtime_1.jsxs)(react_1.Box, { sx: QuizResult_styles_1.styles.buttonContainer, children: [(0, jsx_runtime_1.jsx)(react_1.Skeleton, { height: "40px", borderRadius: "8px", flex: "1" }), (0, jsx_runtime_1.jsx)(react_1.Skeleton, { height: "40px", borderRadius: "8px", flex: "1" })] })] }) }) }) }));
|
|
10
|
+
};
|
|
11
|
+
exports.default = PreformanceResultScreenSkeleton;
|
|
12
|
+
//# sourceMappingURL=PreformanceResultScreenSkeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreformanceResultScreenSkeleton.js","sourceRoot":"","sources":["../../../../src/components/Molecules/PerformanceScreen/PreformanceResultScreenSkeleton.tsx"],"names":[],"mappings":";;;AACA,4CAA+E;AAC/E,2DAA6C;AAM7C,MAAM,+BAA+B,GAAoB,CAAC,EACxD,QAAQ,GAAG,KAAK,GACjB,EAAE,EAAE;IACH,OAAO,CACL,uBAAC,sBAAc,cACb,uBAAC,WAAG,IAAC,EAAE,EAAE,0BAAM,CAAC,SAAS,YACvB,uBAAC,WAAG,IACF,EAAE,EAAE;oBACF,GAAG,CAAC,QAAQ,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;iBAC1D,YAED,wBAAC,WAAG,IAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,0BAAM,CAAC,UAAU,CAAC,CAAC,CAAC,0BAAM,CAAC,IAAI,aAEjD,wBAAC,WAAG,IAAC,EAAE,EAAE,0BAAM,CAAC,MAAM,aAEpB,uBAAC,WAAG,IACF,QAAQ,EAAC,UAAU,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,KAAK,EACZ,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EACnC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EACpC,EAAE,EAAC,SAAS,EACZ,mBAAmB,EAAC,OAAO,EAC3B,oBAAoB,EAAC,OAAO,EAC5B,sBAAsB,EAAC,OAAO,EAC9B,OAAO,EAAC,MAAM,EACd,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,QAAQ,EACvB,MAAM,EAAE,CAAC,YAET,uBAAC,gBAAQ,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,YAAY,EAAC,KAAK,GAAG,GACtD,EAGN,wBAAC,WAAG,IAAC,EAAE,EAAE,0BAAM,CAAC,UAAU,aAExB,uBAAC,gBAAQ,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,MAAM,GAAG,EAG3D,uBAAC,oBAAY,IACX,SAAS,EAAE,CAAC,EACZ,OAAO,EAAC,GAAG,EACX,cAAc,EAAC,MAAM,EACrB,EAAE,EAAC,MAAM,EACT,EAAE,EAAC,MAAM,EACT,EAAE,EAAC,MAAM,GACT,IACE,IACF,EAGN,uBAAC,WAAG,IAAC,EAAE,EAAE,0BAAM,CAAC,SAAS,GAAI,EAG7B,wBAAC,WAAG,IAAC,EAAE,EAAE,0BAAM,CAAC,eAAe,aAE7B,uBAAC,gBAAQ,IAAC,MAAM,EAAC,MAAM,EAAC,YAAY,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,GAAG,EAGtD,uBAAC,gBAAQ,IAAC,MAAM,EAAC,MAAM,EAAC,YAAY,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,GAAG,IAClD,IACF,GACF,GACF,GACS,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,+BAA+B,CAAC"}
|
|
@@ -28,10 +28,10 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
28
28
|
const react_1 = __importStar(require("react"));
|
|
29
29
|
const VideoView_1 = require("./VideoView");
|
|
30
30
|
const SectionView_1 = require("./SectionView");
|
|
31
|
-
exports.ContentView = (0, react_1.memo)(({ displayType, content, currentVideoIdx, setCurrentVideoIdx, isAdmin, nodeId, rootNodeId, onIconDataUpdate, colorKey, isMobile, }) => {
|
|
31
|
+
exports.ContentView = (0, react_1.memo)(({ displayType, content, currentVideoIdx, setCurrentVideoIdx, isAdmin, nodeId, rootNodeId, onIconDataUpdate, colorKey, isMobile, playicon, }) => {
|
|
32
32
|
// Handle video display
|
|
33
33
|
if (displayType === "videos" && content?.videos?.length > 0) {
|
|
34
|
-
return ((0, jsx_runtime_1.jsx)(VideoView_1.VideoView, { videos: content.videos, currentVideoIdx: currentVideoIdx, setCurrentVideoIdx: setCurrentVideoIdx }));
|
|
34
|
+
return ((0, jsx_runtime_1.jsx)(VideoView_1.VideoView, { videos: content.videos, thumbnails: content.thumbnail_url, currentVideoIdx: currentVideoIdx, setCurrentVideoIdx: setCurrentVideoIdx, playicon: playicon }));
|
|
35
35
|
}
|
|
36
36
|
// Handle all other types - show recap sections
|
|
37
37
|
if (displayType && displayType !== "videos" && content?.recap) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentView.js","sourceRoot":"","sources":["../../../../src/components/Molecules/RecapNode/ContentView.jsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAoC;AACpC,2CAAwC;AACxC,+CAA4C;AAE/B,QAAA,WAAW,GAAG,IAAA,YAAI,EAC7B,CAAC,EACC,WAAW,EACX,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,OAAO,EACP,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,QAAQ,GACT,EAAE,EAAE;IACH,uBAAuB;IACvB,IAAI,WAAW,KAAK,QAAQ,IAAI,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE;QAC3D,OAAO,CACL,uBAAC,qBAAS,IACR,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ContentView.js","sourceRoot":"","sources":["../../../../src/components/Molecules/RecapNode/ContentView.jsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAoC;AACpC,2CAAwC;AACxC,+CAA4C;AAE/B,QAAA,WAAW,GAAG,IAAA,YAAI,EAC7B,CAAC,EACC,WAAW,EACX,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,OAAO,EACP,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE,EAAE;IACH,uBAAuB;IACvB,IAAI,WAAW,KAAK,QAAQ,IAAI,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE;QAC3D,OAAO,CACL,uBAAC,qBAAS,IACR,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,UAAU,EAAE,OAAO,CAAC,aAAa,EACjC,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,kBAAkB,EACtC,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;KACH;IAED,+CAA+C;IAC/C,IAAI,WAAW,IAAI,WAAW,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,EAAE;QAC7D,OAAO,CACL,uBAAC,yBAAW,IACV,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CACF,CAAC;AAEF,mBAAW,CAAC,WAAW,GAAG,aAAa,CAAC"}
|
|
@@ -32,7 +32,8 @@ const tutor_utils_1 = require("../../../utils/tutor-utils");
|
|
|
32
32
|
const contentUtils_1 = require("../../../utils/contentUtils");
|
|
33
33
|
const SectionView = ({ recap, displayType, colorKey, isMobile }) => {
|
|
34
34
|
const [expanded, setExpanded] = (0, react_1.useState)(false);
|
|
35
|
-
const
|
|
35
|
+
const [showButton, setShowButton] = (0, react_1.useState)(false);
|
|
36
|
+
const contentRef = (0, react_1.useRef)(null);
|
|
36
37
|
const LIGHT_COLOR_MAP = {
|
|
37
38
|
root: "#FFF3C9",
|
|
38
39
|
0: "#FFEBD2",
|
|
@@ -47,7 +48,6 @@ const SectionView = ({ recap, displayType, colorKey, isMobile }) => {
|
|
|
47
48
|
const bgcolor = LIGHT_COLOR_MAP[colorKey];
|
|
48
49
|
if (!recap)
|
|
49
50
|
return null;
|
|
50
|
-
const relevantKeys = Object.keys(recap).filter((key) => contentUtils_1.RECAP_SECTION_ICON_MAP[key] === displayType);
|
|
51
51
|
const formatSectionName = (key) => {
|
|
52
52
|
const nameMap = {
|
|
53
53
|
summary: "Summary",
|
|
@@ -69,22 +69,82 @@ const SectionView = ({ recap, displayType, colorKey, isMobile }) => {
|
|
|
69
69
|
};
|
|
70
70
|
return nameMap[key] ?? key.replace(/([A-Z])/g, " $1").trim();
|
|
71
71
|
};
|
|
72
|
-
|
|
72
|
+
// Get relevant keys for the display type
|
|
73
|
+
const relevantKeys = Object.keys(recap).filter((key) => contentUtils_1.RECAP_SECTION_ICON_MAP[key] === displayType);
|
|
74
|
+
// Keep sections separate but in order (laws then applications, equations then reactions)
|
|
75
|
+
const orderedKeys = [];
|
|
76
|
+
const keyOrder = ["laws", "applications", "equations", "reactions"];
|
|
77
|
+
keyOrder.forEach((key) => {
|
|
78
|
+
if (relevantKeys.includes(key)) {
|
|
79
|
+
orderedKeys.push(key);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
// Add any remaining keys not in the predefined order
|
|
83
|
+
relevantKeys.forEach((key) => {
|
|
84
|
+
if (!orderedKeys.includes(key)) {
|
|
85
|
+
orderedKeys.push(key);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
const renderSection = (sectionName, items) => {
|
|
73
89
|
if (!Array.isArray(items))
|
|
74
90
|
return null;
|
|
75
91
|
const validItems = items.filter((item) => (item.title && item.title.trim()) ||
|
|
76
92
|
(item.description && item.description.trim()));
|
|
77
93
|
if (validItems.length === 0)
|
|
78
94
|
return null;
|
|
79
|
-
return ((0, jsx_runtime_1.jsxs)(react_2.Box, {
|
|
95
|
+
return ((0, jsx_runtime_1.jsxs)(react_2.Box, { children: [(0, jsx_runtime_1.jsx)(react_2.Text, { fontWeight: "700", fontFamily: "poppins", fontSize: "18px", color: "#0f172a", margin: "0px", children: sectionName }), (0, jsx_runtime_1.jsx)(react_2.UnorderedList, { pl: "20px", m: "0", children: validItems.map((item, idx) => ((0, jsx_runtime_1.jsxs)(react_2.ListItem, { mb: "10px", color: "black", children: [item.title?.trim() && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontWeight: "600", fontFamily: "poppins", fontSize: "14px", color: "black", mb: "4px", children: (0, tutor_utils_1.renderContent)(item.title) })), item.description?.trim() && ((0, jsx_runtime_1.jsx)(react_2.Text, { fontSize: "14px", fontFamily: "poppins", children: (0, tutor_utils_1.renderContent)(item.description, true) }))] }, idx))) })] }, sectionName));
|
|
80
96
|
};
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
97
|
+
// Build section data with proper ordering
|
|
98
|
+
const allSectionEntries = orderedKeys.map((key) => [
|
|
99
|
+
formatSectionName(key),
|
|
100
|
+
recap[key],
|
|
101
|
+
]);
|
|
102
|
+
// Collect all valid items to determine if we need a view more button
|
|
103
|
+
const totalValidItems = allSectionEntries.reduce((total, [_, items]) => {
|
|
104
|
+
if (!Array.isArray(items))
|
|
105
|
+
return total;
|
|
106
|
+
const validItems = items.filter((item) => (item.title && item.title.trim()) ||
|
|
107
|
+
(item.description && item.description.trim()));
|
|
108
|
+
return total + validItems.length;
|
|
109
|
+
}, 0);
|
|
110
|
+
// Show view more button if more than 2 items exist
|
|
111
|
+
const hasMoreContent = totalValidItems > 2;
|
|
112
|
+
// Get items to display (first 2 items when collapsed)
|
|
113
|
+
const getItemsToDisplay = () => {
|
|
114
|
+
if (expanded) {
|
|
115
|
+
return allSectionEntries;
|
|
116
|
+
}
|
|
117
|
+
// Collapsed: show only first 2 items across all sections
|
|
118
|
+
let itemCount = 0;
|
|
119
|
+
const displayEntries = [];
|
|
120
|
+
for (const [sectionName, items] of allSectionEntries) {
|
|
121
|
+
if (!Array.isArray(items))
|
|
122
|
+
continue;
|
|
123
|
+
const validItems = items.filter((item) => (item.title && item.title.trim()) ||
|
|
124
|
+
(item.description && item.description.trim()));
|
|
125
|
+
if (validItems.length === 0)
|
|
126
|
+
continue;
|
|
127
|
+
const itemsToAdd = [];
|
|
128
|
+
for (const item of validItems) {
|
|
129
|
+
if (itemCount < 2) {
|
|
130
|
+
itemsToAdd.push(item);
|
|
131
|
+
itemCount++;
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (itemsToAdd.length > 0) {
|
|
138
|
+
displayEntries.push([sectionName, itemsToAdd]);
|
|
139
|
+
}
|
|
140
|
+
if (itemCount >= 2)
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
return displayEntries;
|
|
86
144
|
};
|
|
87
|
-
return ((0, jsx_runtime_1.jsxs)(react_2.Box, { bg: bgcolor, p: "
|
|
145
|
+
return ((0, jsx_runtime_1.jsxs)(react_2.Box, { bg: bgcolor, p: "15px",
|
|
146
|
+
// borderRadius="12px"
|
|
147
|
+
boxShadow: "0px 2px 8px rgba(0,0,0,0.05)", maxH: !isMobile ? "480px" : "", overflowY: !isMobile ? "auto" : "", children: [(0, jsx_runtime_1.jsx)(react_2.Box, { ref: contentRef, children: getItemsToDisplay().length > 0 ? (getItemsToDisplay().map(([sectionName, items]) => renderSection(sectionName, items))) : ((0, jsx_runtime_1.jsx)(react_2.Text, { textAlign: "center", py: "40px", fontSize: "16px", color: "#94a3b8", children: "No content available for this section" })) }), hasMoreContent && ((0, jsx_runtime_1.jsx)(react_2.Flex, { justify: "flex-end", mt: "8px", children: (0, jsx_runtime_1.jsxs)(react_2.Flex, { align: "center", gap: "4px", fontSize: "14px", fontWeight: "600", cursor: "pointer", onClick: () => setExpanded(!expanded), children: [(0, jsx_runtime_1.jsx)(react_2.Text, { m: "0", lineHeight: "1", fontFamily: "poppins", children: !expanded ? "View more" : "View less" }), !expanded ? ((0, jsx_runtime_1.jsx)(icons_1.ChevronDownIcon, { boxSize: "15px" })) : ((0, jsx_runtime_1.jsx)(icons_1.ChevronUpIcon, { boxSize: "15px" }))] }) }))] }));
|
|
88
148
|
};
|
|
89
149
|
exports.SectionView = SectionView;
|
|
90
150
|
//# sourceMappingURL=SectionView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionView.js","sourceRoot":"","sources":["../../../../src/components/Molecules/RecapNode/SectionView.jsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"SectionView.js","sourceRoot":"","sources":["../../../../src/components/Molecules/RecapNode/SectionView.jsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
export function VideoView({ videos, currentVideoIdx, setCurrentVideoIdx }: {
|
|
1
|
+
export function VideoView({ videos, thumbnails, currentVideoIdx, setCurrentVideoIdx, playicon, authToken, saveEvent, learningStepData, }: {
|
|
2
2
|
videos: any;
|
|
3
|
+
thumbnails?: any[] | undefined;
|
|
3
4
|
currentVideoIdx: any;
|
|
4
5
|
setCurrentVideoIdx: any;
|
|
6
|
+
playicon: any;
|
|
7
|
+
authToken: any;
|
|
8
|
+
saveEvent?: (() => void) | undefined;
|
|
9
|
+
learningStepData: any;
|
|
5
10
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,23 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
29
|
exports.VideoView = void 0;
|
|
7
30
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
-
const react_1 =
|
|
31
|
+
const react_1 = __importStar(require("react"));
|
|
9
32
|
const react_2 = require("@chakra-ui/react");
|
|
10
33
|
const icons_1 = require("@chakra-ui/icons");
|
|
11
|
-
const
|
|
12
|
-
const VideoView = ({ videos, currentVideoIdx, setCurrentVideoIdx }) => {
|
|
34
|
+
const MediaModal_1 = __importDefault(require("../MediaModal/MediaModal"));
|
|
35
|
+
const VideoView = ({ videos, thumbnails = [], currentVideoIdx, setCurrentVideoIdx, playicon, authToken, saveEvent = () => { }, learningStepData, }) => {
|
|
36
|
+
const [isMediaModalOpen, setIsMediaModalOpen] = (0, react_1.useState)(false);
|
|
13
37
|
const currentVideo = videos[currentVideoIdx];
|
|
14
|
-
|
|
38
|
+
const currentThumbnail = thumbnails[currentVideoIdx];
|
|
39
|
+
// Handle click on thumbnail/play icon
|
|
40
|
+
const handleThumbnailClick = () => {
|
|
41
|
+
const currentTime = new Date().toISOString();
|
|
42
|
+
if (saveEvent) {
|
|
43
|
+
saveEvent({
|
|
44
|
+
event_time: currentTime,
|
|
45
|
+
event_name: "video_clicked",
|
|
46
|
+
video_id: currentVideo,
|
|
47
|
+
}, {});
|
|
48
|
+
}
|
|
49
|
+
setIsMediaModalOpen(true);
|
|
50
|
+
};
|
|
51
|
+
return ((0, jsx_runtime_1.jsxs)(react_2.Box, { position: "relative", children: [(0, jsx_runtime_1.jsxs)(react_2.Box, { w: "100%", h: "250px", borderRadius: "12px", position: "relative", display: "flex", alignItems: "center", justifyContent: "center", children: [videos.length > 1 && ((0, jsx_runtime_1.jsx)(react_2.IconButton, { "aria-label": "Prev", icon: (0, jsx_runtime_1.jsx)(icons_1.ChevronLeftIcon, {}), paddingLeft: "8px", variant: "unstyled", border: "none", bg: "transparent", position: "absolute", left: "-18px", top: "50%", transform: "translateY(-50%)", fontSize: "30px", onClick: (e) => {
|
|
15
52
|
e.stopPropagation();
|
|
16
53
|
setCurrentVideoIdx((prev) => prev === 0 ? videos.length - 1 : prev - 1);
|
|
17
|
-
} }), (0, jsx_runtime_1.
|
|
54
|
+
} })), (0, jsx_runtime_1.jsxs)(react_2.Box, { h: "100%", w: "100%", paddingLeft: "24px", paddingRight: "24px", borderRadius: "12px", overflow: "hidden", position: "relative", cursor: "pointer", onClick: handleThumbnailClick, children: [(0, jsx_runtime_1.jsx)("img", { src: currentThumbnail, alt: "video thumbnail", style: { width: "100%", height: "100%", objectFit: "contain" } }), playicon && ((0, jsx_runtime_1.jsx)(react_2.Box, { position: "absolute", top: "50%", left: "50%", transform: "translate(-50%, -50%)", zIndex: 2, children: (0, jsx_runtime_1.jsx)("img", { src: playicon, alt: "Play", style: { width: "48px", height: "48px" } }) }))] }), videos.length > 1 && ((0, jsx_runtime_1.jsx)(react_2.IconButton, { "aria-label": "Next", icon: (0, jsx_runtime_1.jsx)(icons_1.ChevronRightIcon, {}), paddingRight: "8px", border: "none", bg: "transparent", variant: "unstyled", position: "absolute", right: "-18px", top: "50%", transform: "translateY(-50%)", fontSize: "30px", onClick: (e) => {
|
|
18
55
|
e.stopPropagation();
|
|
19
56
|
setCurrentVideoIdx((prev) => prev === videos.length - 1 ? 0 : prev + 1);
|
|
20
|
-
} })] }), (0, jsx_runtime_1.jsx)(react_2.Flex, { justify: "center", align: "center", mt: "12px", gap: "6px", children: videos.
|
|
57
|
+
} }))] }), (0, jsx_runtime_1.jsx)(react_2.Flex, { justify: "center", align: "center", mt: "12px", gap: "6px", children: videos.length > 1 &&
|
|
58
|
+
videos.map((_, idx) => ((0, jsx_runtime_1.jsx)(react_2.Box, { w: "30px", h: "8px", borderRadius: "12px", bg: currentVideoIdx === idx ? "#6D4AFF" : "#CBD5E1", transition: "all 0.3s", cursor: "pointer", onClick: () => setCurrentVideoIdx(idx) }, idx))) }), (0, jsx_runtime_1.jsx)(MediaModal_1.default, { authToken: authToken, openMedia: isMediaModalOpen, handleClose: () => setIsMediaModalOpen(false), selectedMedia: {
|
|
59
|
+
video_url: currentVideo,
|
|
60
|
+
media_type: "video",
|
|
61
|
+
}, updateVideoEvents: saveEvent, learningStepData: learningStepData })] }));
|
|
21
62
|
};
|
|
22
63
|
exports.VideoView = VideoView;
|
|
23
64
|
//# sourceMappingURL=VideoView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoView.js","sourceRoot":"","sources":["../../../../src/components/Molecules/RecapNode/VideoView.jsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VideoView.js","sourceRoot":"","sources":["../../../../src/components/Molecules/RecapNode/VideoView.jsx"],"names":[],"mappings":"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"}
|
|
@@ -28,22 +28,65 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
30
30
|
const react_1 = __importStar(require("react"));
|
|
31
|
+
const reactflow_1 = require("reactflow");
|
|
31
32
|
const NodeHandles_1 = require("./NodeHandles");
|
|
32
33
|
const contentUtils_1 = require("../../../utils/contentUtils");
|
|
33
34
|
const FlashcardContainer_1 = __importDefault(require("./FlashcardContainer"));
|
|
34
|
-
const FlashcardNode = (0, react_1.memo)((
|
|
35
|
+
const FlashcardNode = (0, react_1.memo)((props) => {
|
|
36
|
+
const { data, rootNodeId, onContentUpdate, isAdmin, onIconDataUpdate, isMobile, playicon, } = props;
|
|
35
37
|
const [currentVideoIdx, setCurrentVideoIdx] = (0, react_1.useState)(0);
|
|
36
38
|
const [isExpanded, setIsExpanded] = (0, react_1.useState)(false);
|
|
37
|
-
const
|
|
39
|
+
const [isAnimating, setIsAnimating] = (0, react_1.useState)(false);
|
|
40
|
+
const containerRef = (0, react_1.useRef)(null);
|
|
41
|
+
const updateNodeInternals = (0, reactflow_1.useUpdateNodeInternals)();
|
|
42
|
+
const { hasContent, level, hasMultipleChildren, color, label, icons = [], content, bgColor, colorKey, onNodeExpand, shouldClose, } = data;
|
|
38
43
|
const availableTypes = (0, contentUtils_1.getAvailableContentTypes)(content);
|
|
39
44
|
const [displayType, setDisplayType] = (0, react_1.useState)(null);
|
|
40
45
|
const availableIcons = icons.filter((icon) => availableTypes.includes(icon.type));
|
|
41
46
|
const handleIconClick = (iconType) => {
|
|
47
|
+
if (!isExpanded || displayType !== iconType) {
|
|
48
|
+
onNodeExpand?.(data.id);
|
|
49
|
+
}
|
|
42
50
|
const newExpanded = displayType === iconType ? !isExpanded : true;
|
|
43
51
|
setDisplayType(iconType);
|
|
44
52
|
setIsExpanded(newExpanded);
|
|
53
|
+
setIsAnimating(true);
|
|
45
54
|
};
|
|
46
|
-
|
|
55
|
+
// Handle closing when another node is expanded
|
|
56
|
+
(0, react_1.useEffect)(() => {
|
|
57
|
+
if (shouldClose && isExpanded) {
|
|
58
|
+
setIsAnimating(true);
|
|
59
|
+
// Small delay to allow animation
|
|
60
|
+
const timer = setTimeout(() => {
|
|
61
|
+
setIsExpanded(false);
|
|
62
|
+
setDisplayType(null);
|
|
63
|
+
setIsAnimating(false);
|
|
64
|
+
}, 150);
|
|
65
|
+
return () => clearTimeout(timer);
|
|
66
|
+
}
|
|
67
|
+
}, [shouldClose, isExpanded]);
|
|
68
|
+
(0, react_1.useEffect)(() => {
|
|
69
|
+
if (!containerRef.current)
|
|
70
|
+
return;
|
|
71
|
+
const height = containerRef.current.offsetHeight;
|
|
72
|
+
data?.onExpandChange?.(data.id, isExpanded, isExpanded ? height : 0);
|
|
73
|
+
// Update node internals after animation completes
|
|
74
|
+
if (isAnimating) {
|
|
75
|
+
const timer = setTimeout(() => {
|
|
76
|
+
updateNodeInternals(data.id);
|
|
77
|
+
setIsAnimating(false);
|
|
78
|
+
}, 300);
|
|
79
|
+
return () => clearTimeout(timer);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
updateNodeInternals(data.id);
|
|
83
|
+
}
|
|
84
|
+
}, [isExpanded, isAnimating]);
|
|
85
|
+
return ((0, jsx_runtime_1.jsxs)("div", { ref: containerRef, style: {
|
|
86
|
+
width: "390px",
|
|
87
|
+
transition: isAnimating ? "transform 0.3s ease-in-out" : "none",
|
|
88
|
+
transform: isAnimating ? "scale(0.98)" : "scale(1)",
|
|
89
|
+
}, children: [(0, jsx_runtime_1.jsx)(NodeHandles_1.NodeHandles, { level: level, hasMultipleChildren: hasMultipleChildren }), (0, jsx_runtime_1.jsx)(FlashcardContainer_1.default, { label: label, color: color, hasContent: hasContent, isExpanded: isExpanded, availableIcons: availableIcons, displayType: displayType, handleIconClick: handleIconClick, content: content, currentVideoIdx: currentVideoIdx, setCurrentVideoIdx: setCurrentVideoIdx, isAdmin: isAdmin, nodeId: data.id, rootNodeId: rootNodeId, onContentUpdate: onContentUpdate, onIconDataUpdate: onIconDataUpdate, level: level, bgColor: bgColor, colorKey: colorKey, playicon: playicon })] }));
|
|
47
90
|
});
|
|
48
91
|
FlashcardNode.displayName = "FlashcardNode";
|
|
49
92
|
exports.default = FlashcardNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlashCardNode.js","sourceRoot":"","sources":["../../../../src/components/Organisms/FlashCardNode/FlashCardNode.jsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"FlashCardNode.js","sourceRoot":"","sources":["../../../../src/components/Organisms/FlashCardNode/FlashCardNode.jsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default FlashcardContainer;
|
|
2
|
-
declare function FlashcardContainer({ label, color, hasContent, isExpanded, isNodeExpanded, isContentExpanded, availableIcons, displayType, handleIconClick, content, currentVideoIdx, setCurrentVideoIdx, isAdmin, onContentUpdate, nodeId, rootNodeId, onIconDataUpdate, isMobile, hasChildren, onChevronClick, level, colorKey, bgColor, }: {
|
|
2
|
+
declare function FlashcardContainer({ label, color, hasContent, isExpanded, isNodeExpanded, isContentExpanded, availableIcons, displayType, handleIconClick, content, currentVideoIdx, setCurrentVideoIdx, isAdmin, onContentUpdate, nodeId, rootNodeId, onIconDataUpdate, isMobile, hasChildren, onChevronClick, level, colorKey, bgColor, playicon, }: {
|
|
3
3
|
label: any;
|
|
4
4
|
color: any;
|
|
5
5
|
hasContent: any;
|
|
@@ -23,4 +23,5 @@ declare function FlashcardContainer({ label, color, hasContent, isExpanded, isNo
|
|
|
23
23
|
level: any;
|
|
24
24
|
colorKey: any;
|
|
25
25
|
bgColor: any;
|
|
26
|
+
playicon: any;
|
|
26
27
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -9,7 +9,7 @@ const react_2 = require("@chakra-ui/react");
|
|
|
9
9
|
const IconBar_1 = require("./IconBar");
|
|
10
10
|
const ContentView_1 = require("../../Molecules/RecapNode/ContentView");
|
|
11
11
|
const icons_1 = require("@chakra-ui/icons");
|
|
12
|
-
const FlashcardContainer = ({ label, color, hasContent, isExpanded, isNodeExpanded, isContentExpanded, availableIcons, displayType, handleIconClick, content, currentVideoIdx, setCurrentVideoIdx, isAdmin, onContentUpdate, nodeId, rootNodeId, onIconDataUpdate, isMobile, hasChildren, onChevronClick, level, colorKey, bgColor, }) => {
|
|
12
|
+
const FlashcardContainer = ({ label, color, hasContent, isExpanded, isNodeExpanded, isContentExpanded, availableIcons, displayType, handleIconClick, content, currentVideoIdx, setCurrentVideoIdx, isAdmin, onContentUpdate, nodeId, rootNodeId, onIconDataUpdate, isMobile, hasChildren, onChevronClick, level, colorKey, bgColor, playicon, }) => {
|
|
13
13
|
const handleAddClick = () => {
|
|
14
14
|
onContentUpdate({
|
|
15
15
|
contentid: content?.contentid,
|
|
@@ -19,36 +19,12 @@ const FlashcardContainer = ({ label, color, hasContent, isExpanded, isNodeExpand
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
const lightenedBg = bgColor;
|
|
22
|
-
// Determine if content should be shown
|
|
23
22
|
const shouldShowContent = isMobile ? isContentExpanded : isExpanded;
|
|
24
|
-
return ((0, jsx_runtime_1.jsxs)(react_2.Box, { p: "4px", bg: lightenedBg, borderRadius: "4px", border: `1px solid ${bgColor}`, children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { bg: color, p: "8px 12px", align: "center", borderRadius: "4px", justify: "space-between", gap: "
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
minWidth: "28px",
|
|
30
|
-
borderRadius: "50%",
|
|
31
|
-
background: "linear-gradient(135deg, #0f62fe, #0043ce)",
|
|
32
|
-
color: "#fff",
|
|
33
|
-
fontSize: "18px",
|
|
34
|
-
fontWeight: "600",
|
|
35
|
-
display: "flex",
|
|
36
|
-
alignItems: "center",
|
|
37
|
-
justifyContent: "center",
|
|
38
|
-
boxShadow: "0 4px 10px rgba(15, 98, 254, 0.35)",
|
|
39
|
-
transition: "all 0.2s ease-in-out",
|
|
40
|
-
"&:hover": {
|
|
41
|
-
background: "linear-gradient(135deg, #0043ce, #0f62fe)",
|
|
42
|
-
transform: "scale(1.05)",
|
|
43
|
-
boxShadow: "0 6px 16px rgba(15, 98, 254, 0.45)",
|
|
44
|
-
},
|
|
45
|
-
"&:active": {
|
|
46
|
-
transform: "scale(0.95)",
|
|
47
|
-
},
|
|
48
|
-
}, children: "+" })), isMobile && hasChildren && ((0, jsx_runtime_1.jsx)(react_2.Box, { cursor: "pointer", onClick: onChevronClick, ml: "4px", display: "flex", alignItems: "center", children: isNodeExpanded ? ((0, jsx_runtime_1.jsx)(icons_1.ChevronUpIcon, { w: "25px", h: "25px", color: "white" })) : ((0, jsx_runtime_1.jsx)(icons_1.ChevronDownIcon, { w: "25px", h: "25px", color: "white" })) }))] }), hasContent && shouldShowContent && ((0, jsx_runtime_1.jsx)(react_2.Box, { p: content.recap &&
|
|
49
|
-
["definitions", "formula", "equations"].includes(displayType)
|
|
50
|
-
? "0px"
|
|
51
|
-
: "12px", fontSize: "13px", lineHeight: "1.6", borderRadius: "4px", bg: "#fff", mt: "8px", maxWidth: isMobile ? "100%" : "390px", children: (0, jsx_runtime_1.jsx)(ContentView_1.ContentView, { displayType: displayType, content: content, currentVideoIdx: currentVideoIdx, setCurrentVideoIdx: setCurrentVideoIdx, isAdmin: isAdmin, nodeId: nodeId, rootNodeId: rootNodeId, onIconDataUpdate: onIconDataUpdate, colorKey: colorKey, isMobile: isMobile }) }))] }));
|
|
23
|
+
return ((0, jsx_runtime_1.jsxs)(react_2.Box, { p: "4px", bg: lightenedBg, borderRadius: "4px", border: `1px solid ${bgColor}`, children: [(0, jsx_runtime_1.jsxs)(react_2.Flex, { bg: color, p: "8px 12px", align: "center", borderRadius: "4px", justify: "space-between", children: [(0, jsx_runtime_1.jsx)(react_2.Box, { flex: "1", minW: "0", mr: "8px", children: (0, jsx_runtime_1.jsx)(react_2.Text, { fontFamily: "Inter", fontWeight: "600", fontSize: "14px", lineHeight: "150%", letterSpacing: "-0.019em", whiteSpace: "normal", wordBreak: "break-word", children: label }) }), hasContent && ((0, jsx_runtime_1.jsx)(react_2.Flex, { flexShrink: 0, gap: "6px", wrap: "nowrap", alignItems: "center", mr: "8px", children: (0, jsx_runtime_1.jsx)(IconBar_1.IconBar, { icons: availableIcons, displayType: displayType, onIconClick: handleIconClick, content: content, isMobile: isMobile, isExpanded: shouldShowContent }) })), isMobile && hasChildren && ((0, jsx_runtime_1.jsx)(react_2.Box, { cursor: "pointer", onClick: onChevronClick, children: isNodeExpanded ? ((0, jsx_runtime_1.jsx)(icons_1.ChevronUpIcon, { w: "25px", h: "25px", color: "black" })) : ((0, jsx_runtime_1.jsx)(icons_1.ChevronDownIcon, { w: "25px", h: "25px", color: "black" })) })), isAdmin && ((0, jsx_runtime_1.jsx)(react_2.Button, { onClick: handleAddClick, w: "28px", h: "28px", minW: "28px", borderRadius: "50%", bg: "linear-gradient(135deg, #0f62fe, #0043ce)", color: "#fff", fontSize: "18px", fontWeight: "600", display: "flex", alignItems: "center", justifyContent: "center", transition: "all 0.2s ease-in-out", _hover: {
|
|
24
|
+
bg: "linear-gradient(135deg, #0043ce, #0f62fe)",
|
|
25
|
+
transform: "scale(1.05)",
|
|
26
|
+
boxShadow: "0 6px 16px rgba(15, 98, 254, 0.45)",
|
|
27
|
+
}, _active: { transform: "scale(0.95)" }, ml: "8px", children: "+" }))] }), hasContent && shouldShowContent && ((0, jsx_runtime_1.jsx)(react_2.Box, { padding: displayType === "videos" ? "14px" : "", fontSize: "13px", lineHeight: "1.6", borderRadius: "4px", bg: "#fff", mt: "8px", maxWidth: isMobile ? "100%" : "390px", children: (0, jsx_runtime_1.jsx)(ContentView_1.ContentView, { displayType: displayType, content: content, currentVideoIdx: currentVideoIdx, setCurrentVideoIdx: setCurrentVideoIdx, isAdmin: isAdmin, nodeId: nodeId, rootNodeId: rootNodeId, onIconDataUpdate: onIconDataUpdate, colorKey: colorKey, isMobile: isMobile, playicon: playicon }) }))] }));
|
|
52
28
|
};
|
|
53
29
|
exports.default = FlashcardContainer;
|
|
54
30
|
//# sourceMappingURL=FlashcardContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlashcardContainer.js","sourceRoot":"","sources":["../../../../src/components/Organisms/FlashCardNode/FlashcardContainer.jsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4CAA2D;AAC3D,uCAAoC;AACpC,uEAAoE;AACpE,4CAAkE;
|
|
1
|
+
{"version":3,"file":"FlashcardContainer.js","sourceRoot":"","sources":["../../../../src/components/Organisms/FlashCardNode/FlashcardContainer.jsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
export function IconBar({ icons, displayType, onIconClick }: {
|
|
1
|
+
export function IconBar({ icons, displayType, onIconClick, isMobile, isExpanded, }: {
|
|
2
2
|
icons: any;
|
|
3
3
|
displayType: any;
|
|
4
4
|
onIconClick: any;
|
|
5
|
+
isMobile: any;
|
|
6
|
+
isExpanded: any;
|
|
5
7
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -7,16 +7,16 @@ exports.IconBar = void 0;
|
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
8
|
const react_1 = __importDefault(require("react"));
|
|
9
9
|
const react_2 = require("@chakra-ui/react");
|
|
10
|
-
const IconBar = ({ icons, displayType, onIconClick }) => {
|
|
10
|
+
const IconBar = ({ icons, displayType, onIconClick, isMobile, isExpanded, }) => {
|
|
11
11
|
if (!icons || icons.length === 0)
|
|
12
12
|
return null;
|
|
13
13
|
const handleIconClick = (iconType) => {
|
|
14
14
|
onIconClick(iconType);
|
|
15
15
|
};
|
|
16
|
-
return ((0, jsx_runtime_1.jsx)(react_2.Flex, { align: "center", gap: "6px", flexShrink: 0, children: icons.map((iconObj, i) => ((0, jsx_runtime_1.jsx)(react_2.Flex, { w: "26px", h: "26px", borderRadius: "4px", align: "center", justify: "center", cursor: "pointer", onClick: (e) => {
|
|
16
|
+
return ((0, jsx_runtime_1.jsx)(react_2.Flex, { align: "center", gap: "6px", flexShrink: 0, children: icons.map((iconObj, i) => ((0, jsx_runtime_1.jsx)(react_2.Flex, { w: isMobile ? "20px" : "26px", h: isMobile ? "20px" : "26px", borderRadius: "4px", align: "center", justify: "center", cursor: "pointer", onClick: (e) => {
|
|
17
17
|
e.stopPropagation();
|
|
18
18
|
handleIconClick(iconObj.type);
|
|
19
|
-
}, opacity: displayType === iconObj.type ? 1 : 0.4, transition: "opacity 0.2s", _hover: { transform: "scale(1.1)" }, children: (0, jsx_runtime_1.jsx)(react_2.Image, { src: iconObj.src, w: "20px", h: "20px", alt: iconObj.type }) }, i))) }));
|
|
19
|
+
}, opacity: isExpanded && displayType === iconObj.type ? 1 : 0.4, transition: "opacity 0.2s", _hover: { transform: "scale(1.1)" }, children: (0, jsx_runtime_1.jsx)(react_2.Image, { src: iconObj.src, w: "20px", h: "20px", alt: iconObj.type }) }, i))) }));
|
|
20
20
|
};
|
|
21
21
|
exports.IconBar = IconBar;
|
|
22
22
|
//# sourceMappingURL=IconBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconBar.js","sourceRoot":"","sources":["../../../../src/components/Organisms/FlashCardNode/IconBar.jsx"],"names":[],"mappings":";;;;;;;AAAA,kDAA0B;AAC1B,4CAA+C;AAExC,MAAM,OAAO,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"IconBar.js","sourceRoot":"","sources":["../../../../src/components/Organisms/FlashCardNode/IconBar.jsx"],"names":[],"mappings":";;;;;;;AAAA,kDAA0B;AAC1B,4CAA+C;AAExC,MAAM,OAAO,GAAG,CAAC,EACtB,KAAK,EACL,WAAW,EACX,WAAW,EACX,QAAQ,EACR,UAAU,GACX,EAAE,EAAE;IACH,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9C,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,EAAE;QACnC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,CACL,uBAAC,YAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,KAAK,EAAC,UAAU,EAAE,CAAC,YACzC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CACzB,uBAAC,YAAI,IAEH,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAC7B,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAC7B,YAAY,EAAC,KAAK,EAClB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,QAAQ,EAChB,MAAM,EAAC,SAAS,EAChB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACb,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC,EACD,OAAO,EAAE,UAAU,IAAI,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAC7D,UAAU,EAAC,cAAc,EACzB,MAAM,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,YAEnC,uBAAC,aAAK,IAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,GAAG,EAAE,OAAO,CAAC,IAAI,GAAI,IAf3D,CAAC,CAgBD,CACR,CAAC,GACG,CACR,CAAC;AACJ,CAAC,CAAC;AArCW,QAAA,OAAO,WAqClB"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
export function MobileAccordionView({ jsonData, contentMap, onContentUpdate, onIconDataUpdate, isAdmin, iconConfig, }: {
|
|
1
|
+
export function MobileAccordionView({ jsonData, contentMap, onContentUpdate, onIconDataUpdate, isAdmin, iconConfig, playicon, }: {
|
|
2
2
|
jsonData?: null | undefined;
|
|
3
3
|
contentMap?: {} | undefined;
|
|
4
4
|
onContentUpdate: any;
|
|
5
5
|
onIconDataUpdate: any;
|
|
6
6
|
isAdmin?: boolean | undefined;
|
|
7
7
|
iconConfig?: any[] | undefined;
|
|
8
|
+
playicon: any;
|
|
8
9
|
}): import("react/jsx-runtime").JSX.Element;
|
|
9
10
|
export default MobileAccordionView;
|