questionlayoutrefactoring 0.0.90 → 0.0.92
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/PreformanceResultScreen.d.ts +2 -0
- package/dist/components/Molecules/PerformanceScreen/PreformanceResultScreen.js +68 -24
- package/dist/components/Molecules/PerformanceScreen/PreformanceResultScreen.js.map +1 -1
- package/dist/components/Molecules/PerformanceScreen/PreformanceResultScreen.stories.d.ts +12 -0
- package/dist/components/Molecules/PerformanceScreen/PreformanceResultScreen.stories.js +10 -1
- package/dist/components/Molecules/PerformanceScreen/PreformanceResultScreen.stories.js.map +1 -1
- package/dist/components/Molecules/RecapNode/ContentView.d.ts +2 -0
- package/dist/components/Molecules/RecapNode/ContentView.js +43 -0
- package/dist/components/Molecules/RecapNode/ContentView.js.map +1 -0
- package/dist/components/Molecules/RecapNode/SectionView.d.ts +7 -0
- package/dist/components/Molecules/RecapNode/SectionView.js +151 -0
- package/dist/components/Molecules/RecapNode/SectionView.js.map +1 -0
- package/dist/components/Molecules/RecapNode/VideoView.d.ts +8 -0
- package/dist/components/Molecules/RecapNode/VideoView.js +54 -0
- package/dist/components/Molecules/RecapNode/VideoView.js.map +1 -0
- package/dist/components/Molecules/comprehension/SubQuestionLayout.js +2 -2
- package/dist/components/Molecules/comprehension/SubQuestionLayout.js.map +1 -1
- package/dist/components/Molecules/optionLayouts/Scq.js +1 -1
- package/dist/components/Molecules/optionLayouts/Scq.js.map +1 -1
- package/dist/components/Organisms/FlashCardNode/FlashCardNode.d.ts +3 -0
- package/dist/components/Organisms/FlashCardNode/FlashCardNode.js +102 -0
- package/dist/components/Organisms/FlashCardNode/FlashCardNode.js.map +1 -0
- package/dist/components/Organisms/FlashCardNode/FlashcardContainer.d.ts +29 -0
- package/dist/components/Organisms/FlashCardNode/FlashcardContainer.js +57 -0
- package/dist/components/Organisms/FlashCardNode/FlashcardContainer.js.map +1 -0
- package/dist/components/Organisms/FlashCardNode/FlashcardNode.stories.d.ts +15 -0
- package/dist/components/Organisms/FlashCardNode/FlashcardNode.stories.js +301 -0
- package/dist/components/Organisms/FlashCardNode/FlashcardNode.stories.js.map +1 -0
- package/dist/components/Organisms/FlashCardNode/IconBar.d.ts +7 -0
- package/dist/components/Organisms/FlashCardNode/IconBar.js +22 -0
- package/dist/components/Organisms/FlashCardNode/IconBar.js.map +1 -0
- package/dist/components/Organisms/FlashCardNode/MobileAccordionView.d.ts +11 -0
- package/dist/components/Organisms/FlashCardNode/MobileAccordionView.js +34 -0
- package/dist/components/Organisms/FlashCardNode/MobileAccordionView.js.map +1 -0
- package/dist/components/Organisms/FlashCardNode/NodeHandles.d.ts +3 -0
- package/dist/components/Organisms/FlashCardNode/NodeHandles.js +22 -0
- package/dist/components/Organisms/FlashCardNode/NodeHandles.js.map +1 -0
- package/dist/components/Organisms/RecapGraph/Example.stories.d.ts +3 -0
- package/dist/components/Organisms/RecapGraph/Example.stories.js +50 -0
- package/dist/components/Organisms/RecapGraph/Example.stories.js.map +1 -0
- package/dist/components/Organisms/RecapGraph/Reactgraphflow.d.ts +11 -0
- package/dist/components/Organisms/RecapGraph/Reactgraphflow.js +124 -0
- package/dist/components/Organisms/RecapGraph/Reactgraphflow.js.map +1 -0
- package/dist/components/Organisms/RecapGraph/RecapGraph.d.ts +11 -0
- package/dist/components/Organisms/RecapGraph/RecapGraph.js +17 -0
- package/dist/components/Organisms/RecapGraph/RecapGraph.js.map +1 -0
- package/dist/components/Organisms/RecapGraph/RecapGraphFlow.d.ts +10 -0
- package/dist/components/Organisms/RecapGraph/RecapGraphFlow.js +104 -0
- package/dist/components/Organisms/RecapGraph/RecapGraphFlow.js.map +1 -0
- package/dist/components/Organisms/RecapGraph/useRecapGraphLogic.d.ts +29 -0
- package/dist/components/Organisms/RecapGraph/useRecapGraphLogic.js +365 -0
- package/dist/components/Organisms/RecapGraph/useRecapGraphLogic.js.map +1 -0
- package/dist/components/Organisms/StudentEditor/components/EditorComponent.d.ts +4 -0
- package/dist/components/Organisms/StudentEditor/components/EditorComponent.js +148 -0
- package/dist/components/Organisms/StudentEditor/components/EditorComponent.js.map +1 -0
- package/dist/utils/LearningPathUtils.d.ts +1 -0
- package/dist/utils/LearningPathUtils.js +1 -0
- package/dist/utils/LearningPathUtils.js.map +1 -1
- package/dist/utils/RecapData.d.ts +694 -0
- package/dist/utils/RecapData.js +2258 -0
- package/dist/utils/RecapData.js.map +1 -0
- package/dist/utils/contentUtils.d.ts +40 -0
- package/dist/utils/contentUtils.js +66 -0
- package/dist/utils/contentUtils.js.map +1 -0
- package/package.json +1 -1
- package/dist/components/Molecules/optionLayouts/Scqnew.d.ts +0 -2
- package/dist/components/Molecules/optionLayouts/Scqnew.js +0 -491
- package/dist/components/Molecules/optionLayouts/Scqnew.js.map +0 -1
- package/dist/components/Molecules/questionLayouts/AnswerLayoutnew.d.ts +0 -1
- package/dist/components/Molecules/questionLayouts/AnswerLayoutnew.js +0 -61
- package/dist/components/Molecules/questionLayouts/AnswerLayoutnew.js.map +0 -1
- package/dist/components/Molecules/questionLayouts/QuestionLayoutnew.d.ts +0 -2
- package/dist/components/Molecules/questionLayouts/QuestionLayoutnew.js +0 -285
- package/dist/components/Molecules/questionLayouts/QuestionLayoutnew.js.map +0 -1
- package/dist/utils/revision-utils.d.ts +0 -13
- package/dist/utils/revision-utils.js +0 -90
- package/dist/utils/revision-utils.js.map +0 -1
|
@@ -0,0 +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,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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function MobileAccordionView({ jsonData, contentMap, onContentUpdate, onIconDataUpdate, isAdmin, iconConfig, playicon, onOpenMediaModal, }: {
|
|
2
|
+
jsonData?: null | undefined;
|
|
3
|
+
contentMap?: {} | undefined;
|
|
4
|
+
onContentUpdate: any;
|
|
5
|
+
onIconDataUpdate: any;
|
|
6
|
+
isAdmin?: boolean | undefined;
|
|
7
|
+
iconConfig?: any[] | undefined;
|
|
8
|
+
playicon: any;
|
|
9
|
+
onOpenMediaModal: any;
|
|
10
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export default MobileAccordionView;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MobileAccordionView = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const react_1 = require("@chakra-ui/react");
|
|
9
|
+
const FlashcardContainer_1 = __importDefault(require("./FlashcardContainer"));
|
|
10
|
+
const contentUtils_1 = require("../../../utils/contentUtils");
|
|
11
|
+
const useRecapGraphLogic_1 = require("../RecapGraph/useRecapGraphLogic");
|
|
12
|
+
const MobileAccordionView = ({ jsonData = null, contentMap = {}, onContentUpdate, onIconDataUpdate, isAdmin = false, iconConfig = [], playicon, onOpenMediaModal, }) => {
|
|
13
|
+
const logic = (0, useRecapGraphLogic_1.useRecapGraphLogic)(jsonData, contentMap, iconConfig);
|
|
14
|
+
const renderNode = (nodeData, level = 0) => {
|
|
15
|
+
const { nodeContent, hasContent } = logic.getNodeContent(nodeData._id);
|
|
16
|
+
const { headerColor, bgColor, colorInfo } = logic.getNodeColors(nodeData._id);
|
|
17
|
+
const hasChildren = nodeData.children?.length > 0;
|
|
18
|
+
const availableContentTypes = hasContent
|
|
19
|
+
? (0, contentUtils_1.getAvailableContentTypes)(nodeContent)
|
|
20
|
+
: [];
|
|
21
|
+
const availableIcons = iconConfig.filter((icon) => availableContentTypes.includes(icon.type));
|
|
22
|
+
const displayType = logic.displayTypes[nodeData._id] || null;
|
|
23
|
+
const isNodeExpanded = logic.expandedNodes[nodeData._id] !== undefined
|
|
24
|
+
? logic.expandedNodes[nodeData._id]
|
|
25
|
+
: level === 0;
|
|
26
|
+
const isContentExpanded = logic.contentExpanded[nodeData._id] || false;
|
|
27
|
+
const currentVideoIdx = logic.videoIndices[nodeData._id] || 0;
|
|
28
|
+
return ((0, jsx_runtime_1.jsxs)(react_1.Box, { mb: "8px", children: [(0, jsx_runtime_1.jsx)(FlashcardContainer_1.default, { label: nodeData.description || nodeData.name, color: headerColor, bgColor: bgColor, hasContent: hasContent, isNodeExpanded: isNodeExpanded, isContentExpanded: isContentExpanded, displayType: displayType, availableIcons: availableIcons, handleIconClick: (type) => logic.handleIconClick(nodeData._id, type, availableContentTypes), content: nodeContent, currentVideoIdx: currentVideoIdx, setCurrentVideoIdx: (idx) => logic.setCurrentVideoIdx(nodeData._id, idx), isAdmin: isAdmin, onContentUpdate: onContentUpdate, nodeId: nodeData._id, rootNodeId: jsonData._id, onIconDataUpdate: onIconDataUpdate, hasChildren: hasChildren, onChevronClick: () => logic.handleChevronClick(nodeData._id), isMobile: true, colorKey: colorInfo.colorKey, level: colorInfo.level, playicon: playicon, onOpenMediaModal: onOpenMediaModal }), isNodeExpanded && hasChildren && ((0, jsx_runtime_1.jsx)(react_1.Box, { px: colorInfo.level === 0 ? "0" : "8px", mt: colorInfo.level === 0 ? "10px" : "", mb: "2px", bg: colorInfo.level === 0 ? "" : bgColor, children: nodeData.children.map((child) => renderNode(child, level + 1)) }))] }, nodeData._id));
|
|
29
|
+
};
|
|
30
|
+
return ((0, jsx_runtime_1.jsx)(react_1.Box, { p: "16px", bg: "#f8fafc", minW: "340px", overflowX: "scroll", children: (0, jsx_runtime_1.jsx)(react_1.VStack, { align: "stretch", spacing: "0", children: jsonData && renderNode(jsonData, 0) }) }));
|
|
31
|
+
};
|
|
32
|
+
exports.MobileAccordionView = MobileAccordionView;
|
|
33
|
+
exports.default = exports.MobileAccordionView;
|
|
34
|
+
//# sourceMappingURL=MobileAccordionView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobileAccordionView.js","sourceRoot":"","sources":["../../../../src/components/Organisms/FlashCardNode/MobileAccordionView.jsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.NodeHandles = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const reactflow_1 = require("reactflow");
|
|
10
|
+
const NodeHandles = ({ level }) => {
|
|
11
|
+
const handleStyle = {
|
|
12
|
+
background: "transparent",
|
|
13
|
+
border: "none",
|
|
14
|
+
width: "8px",
|
|
15
|
+
height: "8px",
|
|
16
|
+
opacity: 0,
|
|
17
|
+
pointerEvents: "none",
|
|
18
|
+
};
|
|
19
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [level > 0 && ((0, jsx_runtime_1.jsx)(reactflow_1.Handle, { type: "target", position: reactflow_1.Position.Top, style: handleStyle, id: "top" })), level > 0 && ((0, jsx_runtime_1.jsx)(reactflow_1.Handle, { type: "target", position: reactflow_1.Position.Left, style: handleStyle, id: "left" })), (0, jsx_runtime_1.jsx)(reactflow_1.Handle, { type: "source", position: reactflow_1.Position.Bottom, style: handleStyle, id: "bottom" })] }));
|
|
20
|
+
};
|
|
21
|
+
exports.NodeHandles = NodeHandles;
|
|
22
|
+
//# sourceMappingURL=NodeHandles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeHandles.js","sourceRoot":"","sources":["../../../../src/components/Organisms/FlashCardNode/NodeHandles.jsx"],"names":[],"mappings":";;;;;;;AAAA,kDAA0B;AAC1B,yCAA6C;AAEtC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACvC,MAAM,WAAW,GAAG;QAClB,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,CAAC;QACV,aAAa,EAAE,MAAM;KACtB,CAAC;IAEF,OAAO,CACL,6DAEG,KAAK,GAAG,CAAC,IAAI,CACZ,uBAAC,kBAAM,IACL,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,oBAAQ,CAAC,GAAG,EACtB,KAAK,EAAE,WAAW,EAClB,EAAE,EAAC,KAAK,GACR,CACH,EAGA,KAAK,GAAG,CAAC,IAAI,CACZ,uBAAC,kBAAM,IACL,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,oBAAQ,CAAC,IAAI,EACvB,KAAK,EAAE,WAAW,EAClB,EAAE,EAAC,MAAM,GACT,CACH,EAGD,uBAAC,kBAAM,IACL,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,oBAAQ,CAAC,MAAM,EACzB,KAAK,EAAE,WAAW,EAClB,EAAE,EAAC,QAAQ,GACX,IACD,CACJ,CAAC;AACJ,CAAC,CAAC;AAzCW,QAAA,WAAW,eAyCtB"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0fc72a6d").R, import("@storybook/types").Args>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const DefaultTimerClock: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0fc72a6d").R, any>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DefaultTimerClock = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const RecapData_1 = require("../../../utils/RecapData");
|
|
9
|
+
const Reactgraphflow_1 = __importDefault(require("./Reactgraphflow"));
|
|
10
|
+
const defination_svg_1 = __importDefault(require("../../../assests/recap/defination.svg"));
|
|
11
|
+
const formula_svg_1 = __importDefault(require("../../../assests/recap/formula.svg"));
|
|
12
|
+
const videoplay_svg_1 = __importDefault(require("../../../assests/recap/videoplay.svg"));
|
|
13
|
+
const equations_svg_1 = __importDefault(require("../../../assests/recap/equations.svg"));
|
|
14
|
+
const theorem_svg_1 = __importDefault(require("../../../assests/recap/theorem.svg"));
|
|
15
|
+
const timeline_svg_1 = __importDefault(require("../../../assests/recap/timeline.svg"));
|
|
16
|
+
const processes_svg_1 = __importDefault(require("../../../assests/recap/processes.svg"));
|
|
17
|
+
const lawsandapp_svg_1 = __importDefault(require("../../../assests/recap/lawsandapp.svg"));
|
|
18
|
+
const factualPlay_svg_1 = __importDefault(require("../../../assests/revision/factualPlay.svg"));
|
|
19
|
+
exports.default = {
|
|
20
|
+
title: "Components/Organisms/Graph/ReactFlowELKView",
|
|
21
|
+
component: Reactgraphflow_1.default,
|
|
22
|
+
};
|
|
23
|
+
const Template = (args) => (0, jsx_runtime_1.jsx)(Reactgraphflow_1.default, { ...args });
|
|
24
|
+
const customIcons = [
|
|
25
|
+
{ src: equations_svg_1.default, type: "equations" },
|
|
26
|
+
{ src: videoplay_svg_1.default, type: "videos" },
|
|
27
|
+
{ src: formula_svg_1.default, type: "formulae" },
|
|
28
|
+
{ src: defination_svg_1.default, type: "definitions" },
|
|
29
|
+
{ src: defination_svg_1.default, type: "keyConcepts" },
|
|
30
|
+
{ src: theorem_svg_1.default, type: "theorems" },
|
|
31
|
+
{ src: processes_svg_1.default, type: "processes" },
|
|
32
|
+
{ src: lawsandapp_svg_1.default, type: "keyPoints" },
|
|
33
|
+
{ src: timeline_svg_1.default, type: "Timeline" },
|
|
34
|
+
{ src: theorem_svg_1.default, type: "properties" },
|
|
35
|
+
];
|
|
36
|
+
console.log("contentmap:", RecapData_1.contentMap);
|
|
37
|
+
exports.DefaultTimerClock = Template.bind({});
|
|
38
|
+
exports.DefaultTimerClock.args = {
|
|
39
|
+
jsonData: RecapData_1.jsonData,
|
|
40
|
+
contentMap: RecapData_1.contentMap,
|
|
41
|
+
iconConfig: customIcons,
|
|
42
|
+
onContentUpdate: (payload) => {
|
|
43
|
+
console.log("onContentUpdate payload:", payload);
|
|
44
|
+
},
|
|
45
|
+
onIconDataUpdate: () => { },
|
|
46
|
+
isAdmin: true,
|
|
47
|
+
playicon: factualPlay_svg_1.default,
|
|
48
|
+
// isMobile: true,
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=Example.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Example.stories.js","sourceRoot":"","sources":["../../../../src/components/Organisms/RecapGraph/Example.stories.tsx"],"names":[],"mappings":";;;;;;;AAEA,wDAA+E;AAC/E,sEAA0C;AAC1C,2FAAmE;AACnE,qFAA6D;AAC7D,yFAAiE;AACjE,yFAAgE;AAChE,qFAA6D;AAC7D,uFAA+D;AAC/D,yFAAiE;AACjE,2FAAmE;AACnE,gGAAiE;AAEjE,kBAAe;IACb,KAAK,EAAE,6CAA6C;IACpD,SAAS,EAAE,wBAAU;CACd,CAAC;AAEV,MAAM,QAAQ,GAAe,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAC,wBAAU,OAAK,IAAI,GAAI,CAAC;AAEhE,MAAM,WAAW,GAAG;IAClB,EAAE,GAAG,EAAE,uBAAY,EAAE,IAAI,EAAE,WAAW,EAAE;IACxC,EAAE,GAAG,EAAE,uBAAa,EAAE,IAAI,EAAE,QAAQ,EAAE;IACtC,EAAE,GAAG,EAAE,qBAAW,EAAE,IAAI,EAAE,UAAU,EAAE;IACtC,EAAE,GAAG,EAAE,wBAAc,EAAE,IAAI,EAAE,aAAa,EAAE;IAC5C,EAAE,GAAG,EAAE,wBAAc,EAAE,IAAI,EAAE,aAAa,EAAE;IAC5C,EAAE,GAAG,EAAE,qBAAW,EAAE,IAAI,EAAE,UAAU,EAAE;IACtC,EAAE,GAAG,EAAE,uBAAa,EAAE,IAAI,EAAE,WAAW,EAAE;IACzC,EAAE,GAAG,EAAE,wBAAc,EAAE,IAAI,EAAE,WAAW,EAAE;IAC1C,EAAE,GAAG,EAAE,sBAAY,EAAE,IAAI,EAAE,UAAU,EAAE;IACvC,EAAE,GAAG,EAAE,qBAAW,EAAE,IAAI,EAAE,YAAY,EAAE;CACzC,CAAC;AACF,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,sBAAU,CAAC,CAAC;AAE1B,QAAA,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnD,yBAAiB,CAAC,IAAI,GAAG;IACvB,QAAQ,EAAE,oBAAQ;IAClB,UAAU,EAAE,sBAAU;IACtB,UAAU,EAAE,WAAW;IACvB,eAAe,EAAE,CAAC,OAAY,EAAE,EAAE;QAChC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC1B,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,yBAAQ;IAClB,kBAAkB;CACnB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default RecapGraph;
|
|
2
|
+
declare function RecapGraph({ jsonData, contentMap, iconConfig, onContentUpdate, onIconDataUpdate, isAdmin, isMobile, playicon, }: {
|
|
3
|
+
jsonData?: null | undefined;
|
|
4
|
+
contentMap?: {} | undefined;
|
|
5
|
+
iconConfig?: any[] | undefined;
|
|
6
|
+
onContentUpdate: any;
|
|
7
|
+
onIconDataUpdate: any;
|
|
8
|
+
isAdmin?: boolean | undefined;
|
|
9
|
+
isMobile?: boolean | undefined;
|
|
10
|
+
playicon?: {} | undefined;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,124 @@
|
|
|
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
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
30
|
+
const react_1 = __importStar(require("react"));
|
|
31
|
+
const reactflow_1 = __importStar(require("reactflow"));
|
|
32
|
+
// import "reactflow/dist/style.css";
|
|
33
|
+
const FlashCardNode_1 = __importDefault(require("../FlashCardNode/FlashCardNode"));
|
|
34
|
+
const MobileAccordionView_1 = require("../FlashCardNode/MobileAccordionView");
|
|
35
|
+
const useRecapGraphLogic_1 = require("./useRecapGraphLogic");
|
|
36
|
+
const MediaModal_1 = __importDefault(require("../../Molecules/MediaModal/MediaModal"));
|
|
37
|
+
const MIN_ZOOM = 0.6;
|
|
38
|
+
const RecapGraph = ({ jsonData = null, contentMap = {}, iconConfig = [], onContentUpdate, onIconDataUpdate, isAdmin = false, isMobile = false, playicon = {}, }) => {
|
|
39
|
+
const [layout, setLayout] = (0, react_1.useState)({
|
|
40
|
+
nodes: [],
|
|
41
|
+
edges: [],
|
|
42
|
+
bounds: null,
|
|
43
|
+
});
|
|
44
|
+
const logic = (0, useRecapGraphLogic_1.useRecapGraphLogic)(jsonData, contentMap, iconConfig);
|
|
45
|
+
const [isMediaModalOpen, setIsMediaModalOpen] = (0, react_1.useState)(false);
|
|
46
|
+
const [selectedMediaData, setSelectedMediaData] = (0, react_1.useState)(null);
|
|
47
|
+
const handleOpenMediaModal = (videoUrl, videoMetadata = [], videoId = "") => {
|
|
48
|
+
setSelectedMediaData({
|
|
49
|
+
video_url: videoUrl,
|
|
50
|
+
media_type: "video",
|
|
51
|
+
video_metadata: videoMetadata,
|
|
52
|
+
video_id: videoId,
|
|
53
|
+
});
|
|
54
|
+
setIsMediaModalOpen(true);
|
|
55
|
+
};
|
|
56
|
+
// Handle closing media modal
|
|
57
|
+
const handleCloseMediaModal = () => {
|
|
58
|
+
setIsMediaModalOpen(false);
|
|
59
|
+
setSelectedMediaData(null);
|
|
60
|
+
};
|
|
61
|
+
const nodeTypes = (0, react_1.useMemo)(() => ({
|
|
62
|
+
flashcard: (props) => ((0, jsx_runtime_1.jsx)(FlashCardNode_1.default, { ...props, rootNodeId: jsonData?._id, onContentUpdate: onContentUpdate, onIconDataUpdate: onIconDataUpdate, isAdmin: isAdmin, isMobile: isMobile, playicon: playicon, onOpenMediaModal: handleOpenMediaModal })),
|
|
63
|
+
}), [onContentUpdate, onIconDataUpdate, isAdmin, isMobile, jsonData?._id]);
|
|
64
|
+
const graphData = (0, react_1.useMemo)(() => {
|
|
65
|
+
if (!jsonData)
|
|
66
|
+
return { nodes: [], edges: [] };
|
|
67
|
+
const nodes = logic.buildNodes(jsonData);
|
|
68
|
+
const edges = logic.buildEdges(jsonData, nodes);
|
|
69
|
+
return { nodes, edges };
|
|
70
|
+
}, [jsonData, logic.activeExpandedNodeId]);
|
|
71
|
+
const computeBounds = (nodes, minZoom = MIN_ZOOM) => {
|
|
72
|
+
// Fallback bounds when no nodes exist
|
|
73
|
+
if (!nodes || nodes.length === 0) {
|
|
74
|
+
const BASE = 2000 / minZoom;
|
|
75
|
+
return {
|
|
76
|
+
minX: -BASE,
|
|
77
|
+
minY: -BASE / 2,
|
|
78
|
+
maxX: BASE,
|
|
79
|
+
maxY: BASE / 2,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const minX = Math.min(...nodes.map((n) => n.position.x));
|
|
83
|
+
const maxX = Math.max(...nodes.map((n) => n.position.x + (n.width ?? 260)));
|
|
84
|
+
const minY = Math.min(...nodes.map((n) => n.position.y));
|
|
85
|
+
const maxY = Math.max(...nodes.map((n) => n.position.y + (n.height ?? 100)));
|
|
86
|
+
const BASE_PAD_X = 300;
|
|
87
|
+
const BASE_PAD_Y = 120;
|
|
88
|
+
const PAD_X = BASE_PAD_X / minZoom;
|
|
89
|
+
const PAD_Y = BASE_PAD_Y / minZoom;
|
|
90
|
+
return {
|
|
91
|
+
minX: minX - PAD_X,
|
|
92
|
+
minY: minY - PAD_Y,
|
|
93
|
+
maxX: maxX + PAD_X,
|
|
94
|
+
maxY: maxY + PAD_Y,
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
(0, react_1.useEffect)(() => {
|
|
98
|
+
const res = logic.computeCustomLayout(graphData.nodes, graphData.edges);
|
|
99
|
+
setLayout({
|
|
100
|
+
nodes: graphData.nodes.map((n) => ({
|
|
101
|
+
...n,
|
|
102
|
+
position: res.nodes.find((m) => m.id === n.id)?.position || n.position,
|
|
103
|
+
})),
|
|
104
|
+
edges: graphData.edges,
|
|
105
|
+
bounds: computeBounds(res.nodes),
|
|
106
|
+
});
|
|
107
|
+
}, [logic.expandedNodeId, logic.expandedNodeHeight]);
|
|
108
|
+
const bounds = layout.bounds || {
|
|
109
|
+
minX: -2000,
|
|
110
|
+
minY: -2000,
|
|
111
|
+
maxX: 2000,
|
|
112
|
+
maxY: 2000,
|
|
113
|
+
};
|
|
114
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
115
|
+
width: isAdmin ? "100vw" : "100%",
|
|
116
|
+
height: isAdmin ? "100vh" : "90%",
|
|
117
|
+
backgroundColor: "#f8fafc",
|
|
118
|
+
}, children: [isMobile ? ((0, jsx_runtime_1.jsx)(MobileAccordionView_1.MobileAccordionView, { jsonData: jsonData, contentMap: contentMap, iconConfig: iconConfig, onContentUpdate: onContentUpdate, onIconDataUpdate: onIconDataUpdate, isAdmin: isAdmin, playicon: playicon, onOpenMediaModal: handleOpenMediaModal })) : ((0, jsx_runtime_1.jsxs)(reactflow_1.default, { nodes: layout.nodes, edges: layout.edges, nodeTypes: nodeTypes, proOptions: { hideAttribution: true }, fitView: true, panOnScroll: true, panOnScrollMode: "free", zoomOnPinch: true, zoomOnScroll: false, panOnDrag: true, minZoom: MIN_ZOOM, maxZoom: 1.6, translateExtent: [
|
|
119
|
+
[bounds.minX, bounds.minY],
|
|
120
|
+
[bounds.maxX, bounds.maxY],
|
|
121
|
+
], children: [(0, jsx_runtime_1.jsx)(reactflow_1.Controls, { showFitView: false, showInteractive: false }), (0, jsx_runtime_1.jsx)(reactflow_1.Background, { variant: "none" })] })), (0, jsx_runtime_1.jsx)(MediaModal_1.default, { openMedia: isMediaModalOpen, handleClose: handleCloseMediaModal, selectedMedia: selectedMediaData, updateVideoEvents: () => { }, muted: false })] }));
|
|
122
|
+
};
|
|
123
|
+
exports.default = RecapGraph;
|
|
124
|
+
//# sourceMappingURL=Reactgraphflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Reactgraphflow.js","sourceRoot":"","sources":["../../../../src/components/Organisms/RecapGraph/Reactgraphflow.jsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA4D;AAC5D,uDAA4D;AAC5D,qCAAqC;AACrC,mFAA2D;AAC3D,8EAA2E;AAC3E,6DAA0D;AAC1D,uFAA+D;AAE/D,MAAM,QAAQ,GAAG,GAAG,CAAC;AAErB,MAAM,UAAU,GAAG,CAAC,EAClB,QAAQ,GAAG,IAAI,EACf,UAAU,GAAG,EAAE,EACf,UAAU,GAAG,EAAE,EACf,eAAe,EACf,gBAAgB,EAChB,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,EAAE,GACd,EAAE,EAAE;IACH,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC;QACnC,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAA,uCAAkB,EAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACnE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAChE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IAEjE,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,aAAa,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;QAC1E,oBAAoB,CAAC;YACnB,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,OAAO;YACnB,cAAc,EAAE,aAAa;YAC7B,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,6BAA6B;IAC7B,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3B,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,IAAA,eAAO,EACvB,GAAG,EAAE,CAAC,CAAC;QACL,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACpB,uBAAC,uBAAa,OACR,KAAK,EACT,UAAU,EAAE,QAAQ,EAAE,GAAG,EACzB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,oBAAoB,GACtC,CACH;KACF,CAAC,EACF,CAAC,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CACtE,CAAC;IAEF,MAAM,SAAS,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC7B,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3C,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,EAAE,EAAE;QAClD,sCAAsC;QACtC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,MAAM,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;YAC5B,OAAO;gBACL,IAAI,EAAE,CAAC,IAAI;gBACX,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC;gBACf,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI,GAAG,CAAC;aACf,CAAC;SACH;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAE5E,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CACnB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CACtD,CAAC;QAEF,MAAM,UAAU,GAAG,GAAG,CAAC;QACvB,MAAM,UAAU,GAAG,GAAG,CAAC;QAEvB,MAAM,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;QACnC,MAAM,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;QAEnC,OAAO;YACL,IAAI,EAAE,IAAI,GAAG,KAAK;YAClB,IAAI,EAAE,IAAI,GAAG,KAAK;YAClB,IAAI,EAAE,IAAI,GAAG,KAAK;YAClB,IAAI,EAAE,IAAI,GAAG,KAAK;SACnB,CAAC;IACJ,CAAC,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAExE,SAAS,CAAC;YACR,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjC,GAAG,CAAC;gBACJ,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,QAAQ;aACvE,CAAC,CAAC;YACH,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;SACjC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI;QAC9B,IAAI,EAAE,CAAC,IAAI;QACX,IAAI,EAAE,CAAC,IAAI;QACX,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;KACX,CAAC;IAEF,OAAO,CACL,iCACE,KAAK,EAAE;YACL,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YACjC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;YACjC,eAAe,EAAE,SAAS;SAC3B,aAEA,QAAQ,CAAC,CAAC,CAAC,CACV,uBAAC,yCAAmB,IAClB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,oBAAoB,GACtC,CACH,CAAC,CAAC,CAAC,CACF,wBAAC,mBAAS,IACR,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,EACrC,OAAO,QACP,WAAW,QACX,eAAe,EAAC,MAAM,EACtB,WAAW,QACX,YAAY,EAAE,KAAK,EACnB,SAAS,QACT,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,GAAG,EACZ,eAAe,EAAE;oBACf,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;oBAC1B,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;iBAC3B,aAED,uBAAC,oBAAQ,IAAC,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,GAAI,EACxD,uBAAC,sBAAU,IAAC,OAAO,EAAC,MAAM,GAAG,IACnB,CACb,EAED,uBAAC,oBAAU,IACT,SAAS,EAAE,gBAAgB,EAC3B,WAAW,EAAE,qBAAqB,EAClC,aAAa,EAAE,iBAAiB,EAChC,iBAAiB,EAAE,GAAG,EAAE,GAAE,CAAC,EAC3B,KAAK,EAAE,KAAK,GACZ,IACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default RecapGraph;
|
|
2
|
+
declare function RecapGraph({ jsonData, contentMap, iconConfig, onContentUpdate, onIconDataUpdate, isAdmin, isMobile, playicon, }: {
|
|
3
|
+
jsonData?: null | undefined;
|
|
4
|
+
contentMap?: {} | undefined;
|
|
5
|
+
iconConfig?: any[] | undefined;
|
|
6
|
+
onContentUpdate: any;
|
|
7
|
+
onIconDataUpdate: any;
|
|
8
|
+
isAdmin?: boolean | undefined;
|
|
9
|
+
isMobile?: boolean | undefined;
|
|
10
|
+
playicon?: {} | undefined;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
const RecapGraphFlow_1 = __importDefault(require("./RecapGraphFlow"));
|
|
8
|
+
const MobileAccordionView_1 = require("../FlashCardNode/MobileAccordionView");
|
|
9
|
+
const RecapGraph = ({ jsonData = null, contentMap = {}, iconConfig = [], onContentUpdate, onIconDataUpdate, isAdmin = false, isMobile = false, playicon = {}, }) => {
|
|
10
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
11
|
+
width: isAdmin ? "100vw" : "100%",
|
|
12
|
+
height: isAdmin ? "100vh" : "90%",
|
|
13
|
+
backgroundColor: "#f8fafc",
|
|
14
|
+
}, children: isMobile ? ((0, jsx_runtime_1.jsx)(MobileAccordionView_1.MobileAccordionView, { jsonData: jsonData, contentMap: contentMap, iconConfig: iconConfig, onContentUpdate: onContentUpdate, onIconDataUpdate: onIconDataUpdate, isAdmin: isAdmin, playicon: playicon })) : ((0, jsx_runtime_1.jsx)(RecapGraphFlow_1.default, { jsonData: jsonData, contentMap: contentMap, iconConfig: iconConfig, onContentUpdate: onContentUpdate, onIconDataUpdate: onIconDataUpdate, isAdmin: isAdmin, playicon: playicon })) }));
|
|
15
|
+
};
|
|
16
|
+
exports.default = RecapGraph;
|
|
17
|
+
//# sourceMappingURL=RecapGraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecapGraph.js","sourceRoot":"","sources":["../../../../src/components/Organisms/RecapGraph/RecapGraph.jsx"],"names":[],"mappings":";;;;;;AACA,sEAA8C;AAC9C,8EAA2E;AAE3E,MAAM,UAAU,GAAG,CAAC,EAClB,QAAQ,GAAG,IAAI,EACf,UAAU,GAAG,EAAE,EACf,UAAU,GAAG,EAAE,EACf,eAAe,EACf,gBAAgB,EAChB,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,EAAE,GACd,EAAE,EAAE;IACH,OAAO,CACL,gCACE,KAAK,EAAE;YACL,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YACjC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;YACjC,eAAe,EAAE,SAAS;SAC3B,YAEA,QAAQ,CAAC,CAAC,CAAC,CACV,uBAAC,yCAAmB,IAClB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC,CAAC,CAAC,CACF,uBAAC,wBAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,EAEhB,QAAQ,EAAE,QAAQ,GAClB,CACH,GACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default RecapGraphFlow;
|
|
2
|
+
declare function RecapGraphFlow({ jsonData, contentMap, iconConfig, onContentUpdate, onIconDataUpdate, isAdmin, playicon, }: {
|
|
3
|
+
jsonData?: null | undefined;
|
|
4
|
+
contentMap?: {} | undefined;
|
|
5
|
+
iconConfig?: any[] | undefined;
|
|
6
|
+
onContentUpdate: any;
|
|
7
|
+
onIconDataUpdate: any;
|
|
8
|
+
isAdmin?: boolean | undefined;
|
|
9
|
+
playicon?: {} | undefined;
|
|
10
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,104 @@
|
|
|
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
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
30
|
+
const react_1 = __importStar(require("react"));
|
|
31
|
+
const reactflow_1 = __importStar(require("reactflow"));
|
|
32
|
+
// import "reactflow/dist/style.css";
|
|
33
|
+
const FlashCardNode_1 = __importDefault(require("../FlashCardNode/FlashCardNode"));
|
|
34
|
+
const MobileAccordionView_1 = require("../FlashCardNode/MobileAccordionView");
|
|
35
|
+
const useRecapGraphLogic_1 = require("./useRecapGraphLogic");
|
|
36
|
+
const MIN_ZOOM = 0.8;
|
|
37
|
+
const RecapGraphFlow = ({ jsonData = null, contentMap = {}, iconConfig = [], onContentUpdate, onIconDataUpdate, isAdmin = false, playicon = {}, }) => {
|
|
38
|
+
const [layout, setLayout] = (0, react_1.useState)({
|
|
39
|
+
nodes: [],
|
|
40
|
+
edges: [],
|
|
41
|
+
bounds: null,
|
|
42
|
+
});
|
|
43
|
+
const logic = (0, useRecapGraphLogic_1.useRecapGraphLogic)(jsonData, contentMap, iconConfig);
|
|
44
|
+
const nodeTypes = (0, react_1.useMemo)(() => ({
|
|
45
|
+
flashcard: (props) => ((0, jsx_runtime_1.jsx)(FlashCardNode_1.default, { ...props, rootNodeId: jsonData?._id, onContentUpdate: onContentUpdate, onIconDataUpdate: onIconDataUpdate, isAdmin: isAdmin, playicon: playicon })),
|
|
46
|
+
}), [onContentUpdate, onIconDataUpdate, isAdmin, jsonData?._id]);
|
|
47
|
+
const graphData = (0, react_1.useMemo)(() => {
|
|
48
|
+
if (!jsonData)
|
|
49
|
+
return { nodes: [], edges: [] };
|
|
50
|
+
const nodes = logic.buildNodes(jsonData);
|
|
51
|
+
const edges = logic.buildEdges(jsonData, nodes);
|
|
52
|
+
return { nodes, edges };
|
|
53
|
+
}, [jsonData, logic.activeExpandedNodeId]);
|
|
54
|
+
const computeBounds = (nodes, minZoom = MIN_ZOOM) => {
|
|
55
|
+
if (!nodes || nodes.length === 0) {
|
|
56
|
+
const BASE = 2000 / minZoom;
|
|
57
|
+
return {
|
|
58
|
+
minX: -BASE,
|
|
59
|
+
minY: -BASE,
|
|
60
|
+
maxX: BASE,
|
|
61
|
+
maxY: BASE,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const minX = Math.min(...nodes.map((n) => n.position.x));
|
|
65
|
+
const maxX = Math.max(...nodes.map((n) => n.position.x + (n.width || 260)));
|
|
66
|
+
const minY = Math.min(...nodes.map((n) => n.position.y));
|
|
67
|
+
const maxY = Math.max(...nodes.map((n) => n.position.y + (n.height || 150)));
|
|
68
|
+
const BASE_PAD = 400;
|
|
69
|
+
const PAD = BASE_PAD / minZoom;
|
|
70
|
+
return {
|
|
71
|
+
minX: minX - PAD,
|
|
72
|
+
minY: minY - PAD,
|
|
73
|
+
maxX: maxX + PAD,
|
|
74
|
+
maxY: maxY + PAD,
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
(0, react_1.useEffect)(() => {
|
|
78
|
+
const res = logic.computeCustomLayout(graphData.nodes, graphData.edges);
|
|
79
|
+
setLayout({
|
|
80
|
+
nodes: graphData.nodes.map((n) => ({
|
|
81
|
+
...n,
|
|
82
|
+
position: res.nodes.find((m) => m.id === n.id)?.position || n.position,
|
|
83
|
+
})),
|
|
84
|
+
edges: graphData.edges,
|
|
85
|
+
bounds: computeBounds(res.nodes),
|
|
86
|
+
});
|
|
87
|
+
}, [logic.expandedNodeId, logic.expandedNodeHeight]);
|
|
88
|
+
const bounds = layout.bounds || {
|
|
89
|
+
minX: -2000,
|
|
90
|
+
minY: -2000,
|
|
91
|
+
maxX: 2000,
|
|
92
|
+
maxY: 2000,
|
|
93
|
+
};
|
|
94
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
95
|
+
width: isAdmin ? "100vw" : "100%",
|
|
96
|
+
height: isAdmin ? "100vh" : "90%",
|
|
97
|
+
backgroundColor: "#f8fafc",
|
|
98
|
+
}, children: (0, jsx_runtime_1.jsxs)(reactflow_1.default, { nodes: layout.nodes, edges: layout.edges, nodeTypes: nodeTypes, proOptions: { hideAttribution: true }, fitView: true, panOnScroll: true, panOnScrollMode: "free", zoomOnPinch: true, zoomOnScroll: false, panOnDrag: true, minZoom: MIN_ZOOM, maxZoom: 1.6, translateExtent: [
|
|
99
|
+
[bounds.minX, bounds.minY],
|
|
100
|
+
[bounds.maxX, bounds.maxY],
|
|
101
|
+
], children: [(0, jsx_runtime_1.jsx)(reactflow_1.Controls, { showFitView: false, showInteractive: false }), (0, jsx_runtime_1.jsx)(reactflow_1.Background, { variant: "none" })] }) }));
|
|
102
|
+
};
|
|
103
|
+
exports.default = RecapGraphFlow;
|
|
104
|
+
//# sourceMappingURL=RecapGraphFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecapGraphFlow.js","sourceRoot":"","sources":["../../../../src/components/Organisms/RecapGraph/RecapGraphFlow.jsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA4D;AAC5D,uDAA4D;AAC5D,qCAAqC;AACrC,mFAA2D;AAC3D,8EAA2E;AAC3E,6DAA0D;AAE1D,MAAM,QAAQ,GAAG,GAAG,CAAC;AAErB,MAAM,cAAc,GAAG,CAAC,EACtB,QAAQ,GAAG,IAAI,EACf,UAAU,GAAG,EAAE,EACf,UAAU,GAAG,EAAE,EACf,eAAe,EACf,gBAAgB,EAChB,OAAO,GAAG,KAAK,EAEf,QAAQ,GAAG,EAAE,GACd,EAAE,EAAE;IACH,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC;QACnC,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAA,uCAAkB,EAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEnE,MAAM,SAAS,GAAG,IAAA,eAAO,EACvB,GAAG,EAAE,CAAC,CAAC;QACL,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACpB,uBAAC,uBAAa,OACR,KAAK,EACT,UAAU,EAAE,QAAQ,EAAE,GAAG,EACzB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,EAEhB,QAAQ,EAAE,QAAQ,GAClB,CACH;KACF,CAAC,EACF,CAAC,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAC5D,CAAC;IAEF,MAAM,SAAS,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC7B,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3C,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,EAAE,EAAE;QAClD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,MAAM,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;YAC5B,OAAO;gBACL,IAAI,EAAE,CAAC,IAAI;gBACX,IAAI,EAAE,CAAC,IAAI;gBACX,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI;aACX,CAAC;SACH;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAE5E,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CACnB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CACtD,CAAC;QAEF,MAAM,QAAQ,GAAG,GAAG,CAAC;QACrB,MAAM,GAAG,GAAG,QAAQ,GAAG,OAAO,CAAC;QAE/B,OAAO;YACL,IAAI,EAAE,IAAI,GAAG,GAAG;YAChB,IAAI,EAAE,IAAI,GAAG,GAAG;YAChB,IAAI,EAAE,IAAI,GAAG,GAAG;YAChB,IAAI,EAAE,IAAI,GAAG,GAAG;SACjB,CAAC;IACJ,CAAC,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAExE,SAAS,CAAC;YACR,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjC,GAAG,CAAC;gBACJ,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,QAAQ;aACvE,CAAC,CAAC;YACH,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;SACjC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI;QAC9B,IAAI,EAAE,CAAC,IAAI;QACX,IAAI,EAAE,CAAC,IAAI;QACX,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;KACX,CAAC;IAEF,OAAO,CACL,gCACE,KAAK,EAAE;YACL,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YACjC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;YACjC,eAAe,EAAE,SAAS;SAC3B,YAGC,wBAAC,mBAAS,IACR,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,EACrC,OAAO,QACP,WAAW,QACX,eAAe,EAAC,MAAM,EACtB,WAAW,QACX,YAAY,EAAE,KAAK,EACnB,SAAS,QACT,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,GAAG,EACZ,eAAe,EAAE;gBACf,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;gBAC1B,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;aAC3B,aAED,uBAAC,oBAAQ,IAAC,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,GAAI,EACxD,uBAAC,sBAAU,IAAC,OAAO,EAAC,MAAM,GAAG,IACnB,GAEV,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export function useRecapGraphLogic(jsonData: any, contentMap: any, iconConfig: any): {
|
|
2
|
+
expandedNodeId: null;
|
|
3
|
+
expandedNodeHeight: number;
|
|
4
|
+
activeExpandedNodeId: null;
|
|
5
|
+
isTransitioning: boolean;
|
|
6
|
+
expandedNodes: {};
|
|
7
|
+
contentExpanded: {};
|
|
8
|
+
displayTypes: {};
|
|
9
|
+
videoIndices: {};
|
|
10
|
+
colorMap: {};
|
|
11
|
+
getNodeColors: (nodeId: any) => {
|
|
12
|
+
headerColor: any;
|
|
13
|
+
bgColor: any;
|
|
14
|
+
colorInfo: any;
|
|
15
|
+
};
|
|
16
|
+
getNodeContent: (nodeId: any) => {
|
|
17
|
+
nodeContent: any;
|
|
18
|
+
hasContent: any;
|
|
19
|
+
};
|
|
20
|
+
buildNodes: (data: any) => any[];
|
|
21
|
+
buildEdges: (data: any, nodes: any) => any[];
|
|
22
|
+
computeCustomLayout: (inputNodes: any, inputEdges: any) => {
|
|
23
|
+
nodes: any;
|
|
24
|
+
edges: any;
|
|
25
|
+
};
|
|
26
|
+
handleChevronClick: (nodeId: any) => void;
|
|
27
|
+
handleIconClick: (nodeId: any, type: any, availableContentTypes: any) => void;
|
|
28
|
+
setCurrentVideoIdx: (nodeId: any, idxOrUpdater: any) => void;
|
|
29
|
+
};
|