@peak-ai/canvas 1.6.0-rc.21 → 1.6.0-rc.22
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/GrapesjsCanvas.js +2 -5
- package/GrapesjsCanvas.js.map +1 -1
- package/package.json +1 -1
package/GrapesjsCanvas.js
CHANGED
|
@@ -12,8 +12,7 @@ console.log("[GrapejsCanvas] Component initialization debug:");console.log("[Gra
|
|
|
12
12
|
// This ensures placeholder values are properly cleared and don't cause stale data issues
|
|
13
13
|
var filteredProps=_extends({},newProps);Object.keys(filteredProps).forEach(function(key){var value=filteredProps[key];if(value&&typeof value==="object"&&value.name==="__peak_placeholder"){filteredProps[key]=null}});var parsedNewProps=_extends({},filteredProps);if(filteredProps.pagination){parsedNewProps.pagination=_extends({},model.get("componentProps").pagination||{},filteredProps.pagination)}// Handle Actions component: expand into ActionCards when data arrives via streaming
|
|
14
14
|
var isActionsComponent=model.get("componentName")==="Actions";var hasValidActionsData=parsedNewProps.actions&&parsedNewProps.actions!==null&&Array.isArray(parsedNewProps.actions)&&parsedNewProps.actions.length>0;if(isActionsComponent&&hasValidActionsData){var _model$components$at;var isAlreadyExpanded=model.components().length>0&&((_model$components$at=model.components().at(0))==null?void 0:_model$components$at.get("componentName"))==="ActionCard";if(!isAlreadyExpanded&&editorInstance.current&&isEditorAliveRef.current){expandActionsComponent(model,parsedNewProps.actions);return true}}model.set("componentProps",_extends({},model.get("componentProps"),parsedNewProps));// Set loading: false when data arrives
|
|
15
|
-
var modelId=model.get("id")
|
|
16
|
-
console.log("[GrapesJS Loading] Setting loading: false for component "+modelId+" (data arrived)");model.set("attributes",_extends({},model.get("attributes"),newAttributes,{loading:false}));if(model.view){model.view.render()}return true}useEffect(function(){newDataNotifier(notificationHandler)},[]);function handleNavigateToPage(targetPageId){if(externalOnPageChange){externalOnPageChange(targetPageId)}if(pageContext){pageContext.navigateToPage(targetPageId)}if(!pageContext&&!externalOnPageChange){// eslint-disable-next-line no-console
|
|
15
|
+
var modelId=model.get("id");model.set("attributes",_extends({},model.get("attributes"),newAttributes,{loading:false}));if(model.view){model.view.render()}return true}useEffect(function(){newDataNotifier(notificationHandler)},[]);function handleNavigateToPage(targetPageId){if(externalOnPageChange){externalOnPageChange(targetPageId)}if(pageContext){pageContext.navigateToPage(targetPageId)}if(!pageContext&&!externalOnPageChange){// eslint-disable-next-line no-console
|
|
17
16
|
console.warn("Page navigation requested but no navigation handler available")}}function performInteractionWrapper(_x4){return _performInteractionWrapper.apply(this,arguments)}function _performInteractionWrapper(){_performInteractionWrapper=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(payload){var updatedJson,apiResponse,componentUpdates;return _regeneratorRuntime.wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:updatedJson=null;if(!editorInstance.current){_context4.next=9;break}// DEBUG: Check what's being passed to safeStoreEditor
|
|
18
17
|
console.log("[performInteractionWrapper] About to call safeStoreEditor with:");console.log("[performInteractionWrapper] json:",JSON.stringify(json,null,2));console.log("[performInteractionWrapper] effectiveCurrentPageId:",effectiveCurrentPageId);_context4.next=7;return safeStoreEditor(editorInstance.current,json,effectiveCurrentPageId);case 7:updatedJson=_context4.sent;console.log("[performInteractionWrapper] safeStoreEditor returned:",JSON.stringify(updatedJson,null,2));case 9:setInteracting(renderedComponents.current,payload.affectedComponents,true);_context4.prev=10;_context4.next=13;return performInteraction(_extends({},payload,{json:updatedJson}));case 13:apiResponse=_context4.sent;componentUpdates=apiResponse||{};Object.entries(componentUpdates).forEach(function(_ref8){var key=_ref8[0],value=_ref8[1];var model=renderedComponents.current[key];if(model){model.set("attributes",_extends({},model.get("attributes"),{error:undefined}));model.set("componentProps",_extends({},model.get("componentProps"),value,{error:undefined,isMissing:undefined}))}});return _context4.abrupt("return",componentUpdates);case 19:_context4.prev=19;_context4.t0=_context4["catch"](10);payload.affectedComponents.forEach(function(componentId){var model=renderedComponents.current[componentId];if(model){var errorMessage=_context4.t0 instanceof Error?_context4.t0.message:"Something went wrong. Please try again.";model.set("attributes",_extends({},model.get("attributes"),{error:errorMessage}));model.set("componentProps",_extends({},model.get("componentProps"),{error:errorMessage,isMissing:undefined}))}});throw _context4.t0;case 23:_context4.prev=23;setInteracting(renderedComponents.current,payload.affectedComponents,false);return _context4.finish(23);case 26:case"end":return _context4.stop()}},_callee4,null,[[10,19,23,26]])}));return _performInteractionWrapper.apply(this,arguments)}useEffect(function(){if(!editorRef.current){return function(){// no op
|
|
19
18
|
}}if(editorInstance.current){editorInstance.current.destroy();editorInstance.current=null;isEditorAliveRef.current=false}var currentMode=mode;var editor=grapesjs.init({container:editorRef.current,height:"100%",plugins:[tailwind,createGrapesjsShadcnGenericPlugin(modeRef,performInteractionWrapper,renderedComponents.current,setHasChanged,isTemplateView,isStreamingRef,handleNavigateToPage)],storageManager:{type:"none"},richTextEditor:{actions:["bold","italic","underline","strikethrough"]},canvas:{customBadgeLabel:function customBadgeLabel(component){var tagName=component.get("tagName");return tagName==="body"?"":tagName||""}}});isEditorAliveRef.current=true;var injectionAttempts=0;function injectStylesEarly(){var _editor$Canvas;var iframeDoc=(_editor$Canvas=editor.Canvas)==null||_editor$Canvas.getDocument==null?void 0:_editor$Canvas.getDocument();if(iframeDoc&&iframeDoc.head){if(!iframeDoc.head.querySelector("[data-grapesjs-styles]")){var style=iframeDoc.createElement("style");var fullCss="\n "+tailwindCompiledCss+"\n "+datePickerCss+"\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n ";style.innerHTML=fullCss;style.setAttribute("type","text/css");style.setAttribute("data-grapesjs-styles","true");iframeDoc.head.appendChild(style)}}else if(injectionAttempts<50){injectionAttempts+=1;requestAnimationFrame(injectStylesEarly)}}requestAnimationFrame(injectStylesEarly);function checkDirty(){return _checkDirty.apply(this,arguments)}function _checkDirty(){_checkDirty=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(){var stored,newJson;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(!(isStreamingRef.current||isSystemUpdateRef.current)){_context2.next=2;break}return _context2.abrupt("return");case 2:if(!(!isEditorAliveRef.current||!editorInstance.current)){_context2.next=4;break}return _context2.abrupt("return");case 4:stored=null;_context2.next=7;return safeStoreEditor(editorInstance.current,json,effectiveCurrentPageId);case 7:stored=_context2.sent;if(stored){_context2.next=10;break}return _context2.abrupt("return");case 10:newJson=JSON.stringify(stored);if(newJson!==lastJsonRef.current){setHasChanged(true);lastJsonRef.current=newJson}case 12:case"end":return _context2.stop()}},_callee2)}));return _checkDirty.apply(this,arguments)}var debouncedCheckDirty=function(){var timeout=null;return function(){if(timeout){clearTimeout(timeout)}timeout=setTimeout(checkDirty,200)}}();["component:add","component:remove","component:update:content","style:update","component:drag:end","rte:change"].forEach(function(evt){editor.on(evt,debouncedCheckDirty)});editor.on("component:update",function(model,prop){if(["attributes","componentProps","content"].includes(prop)){debouncedCheckDirty()}});// Tailwind CSS rules aren't fully added to our component
|
|
@@ -21,7 +20,5 @@ console.log("[performInteractionWrapper] About to call safeStoreEditor with:");c
|
|
|
21
20
|
editor.on("load",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var canvasDoc,canvasHead,style,fullCss,storeResult;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:canvasDoc=editor.Canvas.getDocument();canvasHead=canvasDoc.head;if(!canvasHead.querySelector("[data-grapesjs-styles]")){style=canvasDoc.createElement("style");fullCss="\n "+tailwindCompiledCss+"\n "+datePickerCss+"\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n ";style.innerHTML=fullCss;style.setAttribute("type","text/css");style.setAttribute("data-grapesjs-styles","true");canvasHead.appendChild(style)}isSystemUpdateRef.current=true;_context.next=6;return safeStoreEditor(editor,json,effectiveCurrentPageId);case 6:storeResult=_context.sent;if(storeResult){lastJsonRef.current=JSON.stringify(storeResult)}isSystemUpdateRef.current=false;setComponentProperties(editor,currentMode==="preview",isStreamingRef.current);case 10:case"end":return _context.stop()}},_callee)})));editorInstance.current=editor;if(setEditor){setEditor(editor)}TypesToRegister.forEach(function(_ref4){var type=_ref4.type,tagName=_ref4.tagName;if(!editor.DomComponents.getType(type)){editor.DomComponents.addType(type,{model:{defaults:{tagName:tagName}},view:{}})}});return function cleanup(){editor.destroy();isEditorAliveRef.current=false}},[]);useEffect(function(){var _json$pages2;if(json&&((_json$pages2=json.pages)==null?void 0:_json$pages2.length)>0){var _currentPage$frames,_editorInstance$curre3;if(!isEditorAliveRef.current||!editorInstance.current){return}var pageNormalizedJson=normalizeMultiPageJson(json);if(!(pageNormalizedJson!=null&&pageNormalizedJson.pages)||!Array.isArray(pageNormalizedJson.pages)){// eslint-disable-next-line no-console
|
|
22
21
|
console.warn("Invalid or missing pages in normalized JSON");return}var currentPage=getCurrentPage(pageNormalizedJson.pages,effectiveCurrentPageId);if(!currentPage||!((_currentPage$frames=currentPage.frames)!=null&&_currentPage$frames.length)){// eslint-disable-next-line no-console
|
|
23
22
|
console.warn("No valid page found to render");return}isSystemUpdateRef.current=true;var raw=currentPage.frames[0].component;var processed=expandActions(raw);try{var _editorInstance$curre;(_editorInstance$curre=editorInstance.current)==null||_editorInstance$curre.setComponents(processed);setTimeout(function(){if(editorInstance.current&&isEditorAliveRef.current){var _editorInstance$curre2;var domComponents=(_editorInstance$curre2=editorInstance.current)==null?void 0:_editorInstance$curre2.DomComponents;if(domComponents){var _domComponents$getWra;var allComponents=domComponents==null||(_domComponents$getWra=domComponents.getWrapper())==null?void 0:_domComponents$getWra.findType("shadcn-generic");allComponents==null||allComponents.forEach(function(comp){if(comp.get("componentName")==="Tabs"){var _comp$view;(_comp$view=comp.view)==null||_comp$view.render()}})}}},100)}catch(error){// eslint-disable-next-line no-console
|
|
24
|
-
console.error("Error during component restoration:",error)}var globalStyles=pageNormalizedJson.styles||[];var pageStyles=currentPage.styles||[];var mergedStyles=mergeStyles(globalStyles,pageStyles);var cssText=convertStyles(mergedStyles);(_editorInstance$curre3=editorInstance.current)==null||_editorInstance$curre3.setStyle(cssText);if(onRequestPageDataRef.current&¤tPage.dataQueries){onRequestPageDataRef.current(currentPage.id,currentPage.dataQueries)}if(editorInstance.current){setComponentProperties(editorInstance.current,mode==="preview",isStreaming);setTimeout(function(){if(editorInstance.current&&isEditorAliveRef.current&&mode==="preview"){setComponentProperties(editorInstance.current,true,isStreaming)}},50)}setTimeout(function(){if(currentPage&&pageDataCache.current[currentPage.id]){var cachedData=pageDataCache.current[currentPage.id];Object.entries(cachedData).forEach(function(_ref5){var componentId=_ref5[0],data=_ref5[1];var model=renderedComponents.current[componentId];if(model&&data){if(data.newProps){model.set("componentProps",_extends({},model.get("componentProps"),data.newProps))}
|
|
25
|
-
console.log("[GrapesJS Loading] Setting loading: false for component "+componentId+" (cached data applied)");var updatedAttributes=_extends({},model.get("attributes"),data.newAttributes||{},{loading:false});model.set("attributes",updatedAttributes);if(model.view){model.view.render()}}});delete pageDataCache.current[currentPage.id]}},150);var cacheCheckInterval=setInterval(function(){if(!currentPage||!pageDataCache.current[currentPage.id]){return}var cachedData=pageDataCache.current[currentPage.id];var appliedAny=false;Object.entries(cachedData).forEach(function(_ref6){var componentId=_ref6[0],data=_ref6[1];var model=renderedComponents.current[componentId];if(model&&data){if(data.newProps){model.set("componentProps",_extends({},model.get("componentProps"),data.newProps))}// eslint-disable-next-line no-console
|
|
26
|
-
console.log("[GrapesJS Loading] Setting loading: false for component "+componentId+" (cached data timeout applied)");var updatedAttributes=_extends({},model.get("attributes"),data.newAttributes||{},{loading:false});model.set("attributes",updatedAttributes);if(model.view){model.view.render()}appliedAny=true}});if(appliedAny){Object.keys(cachedData).forEach(function(componentId){if(renderedComponents.current[componentId]){delete cachedData[componentId]}});if(Object.keys(cachedData).length===0){delete pageDataCache.current[currentPage.id]}}},100);setTimeout(function(){clearInterval(cacheCheckInterval)},5000);setTimeout(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(){var storeResult;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:if(!(editorInstance.current&&isEditorAliveRef.current)){_context3.next=6;break}_context3.next=3;return safeStoreEditor(editorInstance.current,json,effectiveCurrentPageId);case 3:storeResult=_context3.sent;if(storeResult){lastJsonRef.current=JSON.stringify(storeResult)}isSystemUpdateRef.current=false;case 6:case"end":return _context3.stop()}},_callee3)})),100)}},[json,effectiveCurrentPageId]);useEffect(function(){if(mode&&editorInstance.current&&isEditorAliveRef.current&&!isSettingPropertiesRef.current){isSettingPropertiesRef.current=true;isSystemUpdateRef.current=true;if(isModeChangeFromToggle){setIsTransitioning(true)}setComponentProperties(editorInstance.current,mode==="preview",isStreaming!=null?isStreaming:false);var wrapper=editorInstance.current.getWrapper();var shadcnComponents=(wrapper==null?void 0:wrapper.find("[data-gjs-type=\"shadcn-generic\"]"))||[];shadcnComponents.forEach(function(comp){if(comp.view&&typeof comp.view.render==="function"){var currentAttrs=comp.get("attributes")||{};var isCurrentlyLoading=currentAttrs.loading||currentAttrs.interactionApiInProgress;if(isCurrentlyLoading){comp.set("attributes",_extends({},currentAttrs,{loading:true}))}comp.view.render()}});setTimeout(function(){if(isEditorAliveRef.current){isSystemUpdateRef.current=false;isSettingPropertiesRef.current=false;setIsTransitioning(false)}},50)}},[mode,isModeChangeFromToggle,isStreaming!=null?isStreaming:false]);return/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(StyledEditor,{}),/*#__PURE__*/_jsx("div",{ref:editorRef,id:"grapesjs-editor",style:{opacity:isTransitioning?0:1,transition:"opacity 0.15s ease-in-out"}})]})}function GrapejsCanvas(props){var _pages$2;var existingContext=usePageContext();if(existingContext){return/*#__PURE__*/_jsx(GrapejsCanvasInternal,_extends({},props))}var normalizedJson=normalizeMultiPageJson(props.json);var pages=normalizedJson!=null&&normalizedJson.pages&&Array.isArray(normalizedJson.pages)?normalizedJson.pages.map(extractPageMetadata):[];var initialPageId=props.currentPageId||((_pages$2=pages[0])==null?void 0:_pages$2.id)||"";return/*#__PURE__*/_jsx(PageProvider,{pages:pages,initialPageId:initialPageId,onPageChange:props.onPageChange,children:/*#__PURE__*/_jsx(GrapejsCanvasInternal,_extends({},props))})}export default GrapejsCanvas;
|
|
23
|
+
console.error("Error during component restoration:",error)}var globalStyles=pageNormalizedJson.styles||[];var pageStyles=currentPage.styles||[];var mergedStyles=mergeStyles(globalStyles,pageStyles);var cssText=convertStyles(mergedStyles);(_editorInstance$curre3=editorInstance.current)==null||_editorInstance$curre3.setStyle(cssText);if(onRequestPageDataRef.current&¤tPage.dataQueries){onRequestPageDataRef.current(currentPage.id,currentPage.dataQueries)}if(editorInstance.current){setComponentProperties(editorInstance.current,mode==="preview",isStreaming);setTimeout(function(){if(editorInstance.current&&isEditorAliveRef.current&&mode==="preview"){setComponentProperties(editorInstance.current,true,isStreaming)}},50)}setTimeout(function(){if(currentPage&&pageDataCache.current[currentPage.id]){var cachedData=pageDataCache.current[currentPage.id];Object.entries(cachedData).forEach(function(_ref5){var componentId=_ref5[0],data=_ref5[1];var model=renderedComponents.current[componentId];if(model&&data){if(data.newProps){model.set("componentProps",_extends({},model.get("componentProps"),data.newProps))}var updatedAttributes=_extends({},model.get("attributes"),data.newAttributes||{},{loading:false});model.set("attributes",updatedAttributes);if(model.view){model.view.render()}}});delete pageDataCache.current[currentPage.id]}},150);var cacheCheckInterval=setInterval(function(){if(!currentPage||!pageDataCache.current[currentPage.id]){return}var cachedData=pageDataCache.current[currentPage.id];var appliedAny=false;Object.entries(cachedData).forEach(function(_ref6){var componentId=_ref6[0],data=_ref6[1];var model=renderedComponents.current[componentId];if(model&&data){if(data.newProps){model.set("componentProps",_extends({},model.get("componentProps"),data.newProps))}var updatedAttributes=_extends({},model.get("attributes"),data.newAttributes||{},{loading:false});model.set("attributes",updatedAttributes);if(model.view){model.view.render()}appliedAny=true}});if(appliedAny){Object.keys(cachedData).forEach(function(componentId){if(renderedComponents.current[componentId]){delete cachedData[componentId]}});if(Object.keys(cachedData).length===0){delete pageDataCache.current[currentPage.id]}}},100);setTimeout(function(){clearInterval(cacheCheckInterval)},5000);setTimeout(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(){var storeResult;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:if(!(editorInstance.current&&isEditorAliveRef.current)){_context3.next=6;break}_context3.next=3;return safeStoreEditor(editorInstance.current,json,effectiveCurrentPageId);case 3:storeResult=_context3.sent;if(storeResult){lastJsonRef.current=JSON.stringify(storeResult)}isSystemUpdateRef.current=false;case 6:case"end":return _context3.stop()}},_callee3)})),100)}},[json,effectiveCurrentPageId]);useEffect(function(){if(mode&&editorInstance.current&&isEditorAliveRef.current&&!isSettingPropertiesRef.current){isSettingPropertiesRef.current=true;isSystemUpdateRef.current=true;if(isModeChangeFromToggle){setIsTransitioning(true)}setComponentProperties(editorInstance.current,mode==="preview",isStreaming!=null?isStreaming:false);var wrapper=editorInstance.current.getWrapper();var shadcnComponents=(wrapper==null?void 0:wrapper.find("[data-gjs-type=\"shadcn-generic\"]"))||[];shadcnComponents.forEach(function(comp){if(comp.view&&typeof comp.view.render==="function"){var currentAttrs=comp.get("attributes")||{};var isCurrentlyLoading=currentAttrs.loading||currentAttrs.interactionApiInProgress;if(isCurrentlyLoading){comp.set("attributes",_extends({},currentAttrs,{loading:true}))}comp.view.render()}});setTimeout(function(){if(isEditorAliveRef.current){isSystemUpdateRef.current=false;isSettingPropertiesRef.current=false;setIsTransitioning(false)}},50)}},[mode,isModeChangeFromToggle,isStreaming!=null?isStreaming:false]);return/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(StyledEditor,{}),/*#__PURE__*/_jsx("div",{ref:editorRef,id:"grapesjs-editor",style:{opacity:isTransitioning?0:1,transition:"opacity 0.15s ease-in-out"}})]})}function GrapejsCanvas(props){var _pages$2;var existingContext=usePageContext();if(existingContext){return/*#__PURE__*/_jsx(GrapejsCanvasInternal,_extends({},props))}var normalizedJson=normalizeMultiPageJson(props.json);var pages=normalizedJson!=null&&normalizedJson.pages&&Array.isArray(normalizedJson.pages)?normalizedJson.pages.map(extractPageMetadata):[];var initialPageId=props.currentPageId||((_pages$2=pages[0])==null?void 0:_pages$2.id)||"";return/*#__PURE__*/_jsx(PageProvider,{pages:pages,initialPageId:initialPageId,onPageChange:props.onPageChange,children:/*#__PURE__*/_jsx(GrapejsCanvasInternal,_extends({},props))})}export default GrapejsCanvas;
|
|
27
24
|
//# sourceMappingURL=GrapesjsCanvas.js.map
|
package/GrapesjsCanvas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GrapesjsCanvas.js","names":["React","useEffect","useRef","useState","grapesjs","tailwind","TypesToRegister","toKebabCase","tailwindCompiledCss","datePickerCss","extractPageMetadata","getCurrentPage","mergeStyles","normalizeMultiPageJson","createGrapesjsShadcnGenericPlugin","StyledEditor","PageProvider","usePageContext","jsx","_jsx","jsxs","_jsxs","isEditorCanvasReady","editor","canvas","Canvas","canvasDoc","getDocument","canvasBody","body","_unused","safeStoreEditor","_x","_x2","_x3","_safeStoreEditor","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee5","originalJson","currentPageId","_editor$Pages","_originalJson$pages","_storedResult$pages","_originalJson$pages2","wrapper","pages","storedResult","pageIndex","updatedPages","reconstructedResult","wrap","_callee5$","_context5","prev","next","getWrapper","abrupt","Pages","getAll","length","store","sent","console","log","hasOriginalJson","isMultiPage","originalPagesCount","storedResultPagesCount","originalPageIds","map","p","id","Array","isArray","findIndex","concat","_extends","frames","assets","dataSources","styles","symbols","t0","warn","stop","setComponentProperties","isPreview","isStreaming","setPropertiesRecursively","comp","isMutable","set","editable","draggable","droppable","getName","selectable","hoverable","highlightable","copyable","resizable","removable","badgable","get","isEditable","attributes","command","components","forEach","find","runCommand","stopCommand","convertStyles","stylesArray","block","selectors","join","declarations","Object","entries","style","_ref","prop","value","createActionCardConfig","action","icon","title","description","type","componentName","componentProps","headerContent","bodyContent","expandActions","node","_node$componentProps","actions","classes","undefined","i","setInteracting","renderedComponents","inProgress","component","componentId","showLoader","gjsModel","interactionApiInProgress","expandActionsComponent","model","append","addClass","GrapejsCanvasInternal","_ref2","_json$pages","_normalizedJson$pages","_pages$","json","_ref2$mode","mode","setEditor","performInteraction","_ref2$newDataNotifier","newDataNotifier","_ref2$setHasChanged","setHasChanged","_ref2$isModeChangeFro","isModeChangeFromToggle","_ref2$isTemplateView","isTemplateView","externalCurrentPageId","externalOnPageChange","onPageChange","onRequestPageData","pageContext","normalizedJson","JSON","stringify","effectiveCurrentPageId","editorRef","editorInstance","pageDataCache","currentPageIdRef","isStreamingRef","modeRef","isSystemUpdateRef","lastJsonRef","isEditorAliveRef","isSettingPropertiesRef","onRequestPageDataRef","_useState","isTransitioning","setIsTransitioning","current","notificationHandler","props","compId","_props$newProps","newProps","_props$newAttributes","newAttributes","pageId","timestamp","Date","now","filteredProps","keys","key","name","parsedNewProps","pagination","isActionsComponent","hasValidActionsData","_model$components$at","isAlreadyExpanded","at","modelId","loading","view","render","handleNavigateToPage","targetPageId","navigateToPage","performInteractionWrapper","_x4","_performInteractionWrapper","_callee4","payload","updatedJson","apiResponse","componentUpdates","_callee4$","_context4","affectedComponents","_ref8","error","isMissing","errorMessage","Error","message","finish","destroy","currentMode","init","container","height","plugins","storageManager","richTextEditor","customBadgeLabel","tagName","injectionAttempts","injectStylesEarly","_editor$Canvas","iframeDoc","head","querySelector","createElement","fullCss","innerHTML","setAttribute","appendChild","requestAnimationFrame","checkDirty","_checkDirty","_callee2","stored","newJson","_callee2$","_context2","debouncedCheckDirty","timeout","clearTimeout","setTimeout","evt","on","includes","_callee","canvasHead","storeResult","_callee$","_context","_ref4","DomComponents","getType","addType","defaults","cleanup","_json$pages2","_currentPage$frames","_editorInstance$curre3","pageNormalizedJson","currentPage","raw","processed","_editorInstance$curre","setComponents","_editorInstance$curre2","domComponents","_domComponents$getWra","allComponents","findType","_comp$view","globalStyles","pageStyles","mergedStyles","cssText","setStyle","dataQueries","cachedData","_ref5","data","updatedAttributes","cacheCheckInterval","setInterval","appliedAny","_ref6","clearInterval","_callee3","_callee3$","_context3","shadcnComponents","currentAttrs","isCurrentlyLoading","Fragment","children","ref","opacity","transition","GrapejsCanvas","_pages$2","existingContext","initialPageId"],"sources":["../src/GrapesjsCanvas.tsx"],"sourcesContent":["/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef, useState } from 'react';\n// eslint-disable-next-line import/no-named-as-default\nimport grapesjs, { Component, Editor } from 'grapesjs';\nimport 'grapesjs/dist/css/grapes.min.css';\nimport tailwind from 'grapesjs-tailwind';\n\nimport { TypesToRegister } from './constants';\nimport { toKebabCase } from './helpers';\nimport { tailwindCompiledCss } from './helpers/css';\nimport { datePickerCss } from './helpers/date-picker';\nimport {\n extractPageMetadata,\n getCurrentPage,\n mergeStyles,\n normalizeMultiPageJson,\n} from './helpers/page-utils';\nimport { createGrapesjsShadcnGenericPlugin } from './plugins/grapejs-plugin';\nimport { StyledEditor } from './index.styles';\nimport type { PageAwareProps } from './types/page';\nimport { PageProvider, usePageContext } from './contexts/PageContext';\n\ntype NotificationHandler = (newData: {\n componentId: string;\n newProps: Record<string, any>;\n newAttributes: Record<string, any>;\n}) => boolean;\n\ntype GrapesjsCanvasProps = {\n json: any;\n mode?: 'editor' | 'preview';\n setEditor: (editor: Editor) => void;\n performInteraction: (payload: Record<string, any>) => Promise<Record<string, any> | undefined>;\n newDataNotifier: (notifHandler: NotificationHandler) => void;\n setHasChanged: (hasChanged: boolean) => void;\n isStreaming: boolean;\n isModeChangeFromToggle?: boolean;\n isTemplateView?: boolean;\n} & PageAwareProps;\n\nfunction isEditorCanvasReady(editor: Editor): boolean {\n try {\n const canvas = editor.Canvas;\n\n if (!canvas) {\n return false;\n }\n\n const canvasDoc = canvas.getDocument?.();\n\n if (!canvasDoc) {\n return false;\n }\n\n const canvasBody = canvasDoc.body;\n\n if (!canvasBody) {\n return false;\n }\n\n return true;\n } catch {\n return false;\n }\n}\n\nasync function safeStoreEditor(\n editor: Editor,\n originalJson?: any,\n currentPageId?: string,\n): Promise<any | null> {\n try {\n const wrapper = editor.getWrapper();\n\n if (!wrapper) {\n return null;\n }\n\n const pages = editor.Pages?.getAll?.() || [];\n\n if (pages.length === 0) {\n return null;\n }\n\n const storedResult = await editor.store();\n\n // Debug logging to understand what's happening\n // eslint-disable-next-line no-console\n console.log('[DEBUG] safeStoreEditor:', {\n hasOriginalJson: !!originalJson,\n isMultiPage: originalJson?.isMultiPage,\n currentPageId,\n originalPagesCount: originalJson?.pages?.length,\n storedResultPagesCount: storedResult.pages?.length,\n originalPageIds: originalJson?.pages?.map((p: any) => p.id),\n });\n\n if (\n originalJson?.isMultiPage &&\n currentPageId &&\n originalJson.pages &&\n Array.isArray(originalJson.pages)\n ) {\n const pageIndex = originalJson.pages.findIndex((p: any) => p.id === currentPageId);\n\n // eslint-disable-next-line no-console\n console.log('[DEBUG] Multipage reconstruction - pageIndex:', pageIndex);\n\n if (pageIndex >= 0 && storedResult.pages && storedResult.pages[0]) {\n const updatedPages = [...originalJson.pages];\n updatedPages[pageIndex] = {\n ...updatedPages[pageIndex],\n frames: storedResult.pages[0].frames,\n };\n\n const reconstructedResult = {\n assets: originalJson.assets || [],\n dataSources: originalJson.dataSources || [],\n isMultiPage: originalJson.isMultiPage,\n pages: updatedPages,\n styles: originalJson.styles || [],\n symbols: originalJson.symbols || [],\n };\n\n // eslint-disable-next-line no-console\n console.log(\n '[DEBUG] Returning reconstructed multipage result with',\n reconstructedResult.pages.length,\n 'pages',\n );\n\n return reconstructedResult;\n }\n }\n\n // eslint-disable-next-line no-console\n console.log('[DEBUG] Returning original stored result');\n\n return storedResult;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn('Error during store operation:', error);\n\n return null;\n }\n}\n\nfunction setComponentProperties(editor: Editor, isPreview: boolean, isStreaming: boolean): void {\n if (!editor) {\n return;\n }\n\n function setPropertiesRecursively(comp: Component) {\n const isMutable = !isPreview && !isStreaming;\n\n comp.set({\n editable: isMutable,\n draggable: isMutable,\n droppable: isMutable && comp.getName() !== 'Shadcn-generic',\n selectable: isMutable,\n hoverable: isMutable,\n highlightable: isMutable,\n copyable: false,\n resizable: false,\n removable: isMutable,\n badgable: false,\n });\n\n comp.set('attributes', {\n ...(comp.get('attributes') || {}),\n isEditable: isMutable,\n });\n\n if (isMutable) {\n comp.set('toolbar', [\n { attributes: { class: 'fa fa-arrows' }, command: 'tlb-move' },\n { attributes: { class: 'fa fa-trash' }, command: 'tlb-delete' },\n ]);\n } else {\n comp.set('toolbar', []);\n }\n\n comp.components().forEach(setPropertiesRecursively);\n }\n\n const wrapper = editor.getWrapper();\n const components = wrapper?.find('*') || [];\n\n components.forEach(setPropertiesRecursively);\n\n if (isEditorCanvasReady(editor)) {\n if (isPreview) {\n editor.runCommand('core:preview');\n } else {\n editor.stopCommand('core:preview');\n }\n }\n}\n\nfunction convertStyles(stylesArray: any[]): string {\n return stylesArray\n .map((block) => {\n const selectors = Array.isArray(block.selectors)\n ? block.selectors.join(', ')\n : block.selectors;\n const declarations = Object.entries(block.style)\n .map(([prop, value]) => `${toKebabCase(prop)}: ${value};`)\n .join(' ');\n\n return `${selectors} { ${declarations} }`;\n })\n .join('\\n');\n}\n\nfunction createActionCardConfig(action: any): any {\n const { icon, title, description } = action;\n\n return {\n type: 'shadcn-generic',\n componentName: 'ActionCard',\n badgable: false,\n copyable: false,\n removable: true,\n draggable: true,\n componentProps: {\n icon,\n headerContent: title,\n bodyContent: description,\n },\n };\n}\n\nfunction expandActions(node: any): any {\n if (node.type === 'shadcn-generic' && node.componentName === 'Actions') {\n const actions = node.componentProps?.actions;\n\n if (Array.isArray(actions) && actions.length > 0) {\n return {\n ...node,\n type: 'div',\n classes: ['dashboard-cards', ...(node.classes || [])],\n componentName: undefined,\n componentProps: undefined,\n components: actions.map((action: any, i: number) => ({\n ...createActionCardConfig(action),\n id: `${node.id}--action-card-${i}`,\n })),\n };\n }\n\n return node;\n }\n\n if (Array.isArray(node.components)) {\n return {\n ...node,\n components: node.components.map(expandActions),\n };\n }\n\n return node;\n}\n\nfunction setInteracting(\n renderedComponents: Record<string, Component>,\n components: { componentId: string; showLoader: boolean }[],\n inProgress: boolean,\n) {\n components.forEach((component) => {\n const { componentId, showLoader } = component;\n\n if (!showLoader) {\n return;\n }\n\n const gjsModel = renderedComponents[componentId];\n\n if (gjsModel) {\n gjsModel.set('attributes', {\n ...gjsModel.get('attributes'),\n interactionApiInProgress: inProgress,\n });\n }\n });\n}\n\nfunction expandActionsComponent(model: Component, actions: any[]): void {\n model.components('');\n\n actions.forEach((action: any) => {\n model.append(createActionCardConfig(action));\n });\n\n model.set('type', 'div');\n model.addClass('dashboard-cards');\n model.set('componentName', undefined);\n model.set('componentProps', {});\n}\n\nfunction GrapejsCanvasInternal({\n json,\n mode = 'preview',\n setEditor,\n performInteraction,\n newDataNotifier = () => {\n // no op\n },\n setHasChanged = () => {\n // no op\n },\n isStreaming,\n isModeChangeFromToggle = false,\n isTemplateView = false,\n currentPageId: externalCurrentPageId,\n onPageChange: externalOnPageChange, // eslint-disable-line @typescript-eslint/no-unused-vars\n onRequestPageData,\n}: GrapesjsCanvasProps) {\n const pageContext = usePageContext();\n\n const normalizedJson = normalizeMultiPageJson(json);\n\n // DEBUG: Analyze initial JSON structure\n console.log('[GrapejsCanvas] Component initialization debug:');\n console.log('[GrapejsCanvas] Raw json prop:', JSON.stringify(json, null, 2));\n console.log('[GrapejsCanvas] Normalized json:', JSON.stringify(normalizedJson, null, 2));\n console.log('[GrapejsCanvas] Has pages in raw json:', json?.pages ? 'YES' : 'NO');\n console.log('[GrapejsCanvas] Pages count in raw json:', json?.pages?.length || 0);\n console.log('[GrapejsCanvas] Has pages in normalized:', normalizedJson?.pages ? 'YES' : 'NO');\n console.log('[GrapejsCanvas] Pages count in normalized:', normalizedJson?.pages?.length || 0);\n\n const pages =\n normalizedJson?.pages && Array.isArray(normalizedJson.pages)\n ? normalizedJson.pages.map(extractPageMetadata)\n : [];\n const effectiveCurrentPageId =\n externalCurrentPageId || pageContext?.currentPageId || pages[0]?.id || '';\n\n console.log('[GrapejsCanvas] Extracted pages:', pages);\n console.log('[GrapejsCanvas] Effective current page ID:', effectiveCurrentPageId);\n\n const editorRef = useRef<HTMLDivElement>(null);\n const editorInstance = useRef<Editor | null>(null);\n const renderedComponents = useRef<Record<string, Component>>({});\n const pageDataCache = useRef<Record<string, Record<string, any>>>({});\n const currentPageIdRef = useRef<string>(effectiveCurrentPageId);\n const isStreamingRef = useRef(isStreaming ?? false);\n const modeRef = useRef(mode);\n const isSystemUpdateRef = useRef(false);\n const lastJsonRef = useRef<string>('');\n const isEditorAliveRef = useRef(false);\n const isSettingPropertiesRef = useRef(false);\n const onRequestPageDataRef = useRef(onRequestPageData);\n const [isTransitioning, setIsTransitioning] = useState(false);\n\n useEffect(() => {\n currentPageIdRef.current = effectiveCurrentPageId;\n }, [effectiveCurrentPageId]);\n\n useEffect(() => {\n isStreamingRef.current = isStreaming ?? false;\n }, [isStreaming ?? false]);\n\n useEffect(() => {\n modeRef.current = mode;\n }, [mode]);\n\n useEffect(() => {\n onRequestPageDataRef.current = onRequestPageData;\n }, [onRequestPageData]);\n\n function notificationHandler(\n props: Parameters<NotificationHandler>[0],\n ): ReturnType<NotificationHandler> {\n if (!props) {\n return true;\n }\n\n const { componentId: compId, newProps = {}, newAttributes = {} } = props;\n\n const model = renderedComponents.current[compId];\n\n if (!model) {\n const pageId = currentPageIdRef.current;\n\n if (pageId) {\n if (!pageDataCache.current[pageId]) {\n pageDataCache.current[pageId] = {};\n }\n\n pageDataCache.current[pageId][compId] = {\n newProps,\n newAttributes,\n timestamp: Date.now(),\n };\n }\n\n return false;\n }\n\n // Filter out complex placeholder objects by setting them to null\n // This ensures placeholder values are properly cleared and don't cause stale data issues\n const filteredProps = { ...newProps };\n\n Object.keys(filteredProps).forEach((key) => {\n const value = filteredProps[key];\n\n if (value && typeof value === 'object' && value.name === '__peak_placeholder') {\n filteredProps[key] = null;\n }\n });\n\n const parsedNewProps = {\n ...filteredProps,\n };\n\n if (filteredProps.pagination) {\n parsedNewProps.pagination = {\n ...(model.get('componentProps').pagination || {}),\n ...filteredProps.pagination,\n };\n }\n\n // Handle Actions component: expand into ActionCards when data arrives via streaming\n const isActionsComponent = model.get('componentName') === 'Actions';\n const hasValidActionsData =\n parsedNewProps.actions &&\n parsedNewProps.actions !== null &&\n Array.isArray(parsedNewProps.actions) &&\n parsedNewProps.actions.length > 0;\n\n if (isActionsComponent && hasValidActionsData) {\n const isAlreadyExpanded =\n model.components().length > 0 &&\n model.components().at(0)?.get('componentName') === 'ActionCard';\n\n if (!isAlreadyExpanded && editorInstance.current && isEditorAliveRef.current) {\n expandActionsComponent(model, parsedNewProps.actions);\n\n return true;\n }\n }\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...parsedNewProps,\n });\n\n // Set loading: false when data arrives\n const modelId = model.get('id');\n // eslint-disable-next-line no-console\n console.log(\n `[GrapesJS Loading] Setting loading: false for component ${modelId} (data arrived)`,\n );\n model.set('attributes', {\n ...model.get('attributes'),\n ...newAttributes,\n loading: false,\n });\n\n if (model.view) {\n model.view.render();\n }\n\n return true;\n }\n\n useEffect(() => {\n newDataNotifier(notificationHandler);\n }, []);\n\n function handleNavigateToPage(targetPageId: string) {\n if (externalOnPageChange) {\n externalOnPageChange(targetPageId);\n }\n\n if (pageContext) {\n pageContext.navigateToPage(targetPageId);\n }\n\n if (!pageContext && !externalOnPageChange) {\n // eslint-disable-next-line no-console\n console.warn('Page navigation requested but no navigation handler available');\n }\n }\n\n async function performInteractionWrapper(payload: Record<string, any>) {\n let updatedJson = null;\n\n if (editorInstance.current) {\n // DEBUG: Check what's being passed to safeStoreEditor\n console.log('[performInteractionWrapper] About to call safeStoreEditor with:');\n console.log('[performInteractionWrapper] json:', JSON.stringify(json, null, 2));\n console.log('[performInteractionWrapper] effectiveCurrentPageId:', effectiveCurrentPageId);\n\n updatedJson = await safeStoreEditor(editorInstance.current, json, effectiveCurrentPageId);\n\n console.log(\n '[performInteractionWrapper] safeStoreEditor returned:',\n JSON.stringify(updatedJson, null, 2),\n );\n }\n\n setInteracting(renderedComponents.current, payload.affectedComponents, true);\n\n try {\n const apiResponse = await performInteraction({\n ...payload,\n json: updatedJson,\n });\n\n const componentUpdates = apiResponse || {};\n\n Object.entries(componentUpdates).forEach(([key, value]) => {\n const model = renderedComponents.current[key];\n\n if (model) {\n model.set('attributes', {\n ...model.get('attributes'),\n error: undefined,\n });\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...value,\n error: undefined,\n isMissing: undefined,\n });\n }\n });\n\n return componentUpdates;\n } catch (error) {\n payload.affectedComponents.forEach((componentId: string) => {\n const model = renderedComponents.current[componentId];\n\n if (model) {\n const errorMessage =\n error instanceof Error ? error.message : 'Something went wrong. Please try again.';\n\n model.set('attributes', {\n ...model.get('attributes'),\n error: errorMessage,\n });\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n error: errorMessage,\n isMissing: undefined,\n });\n }\n });\n\n throw error;\n } finally {\n setInteracting(renderedComponents.current, payload.affectedComponents, false);\n }\n }\n\n useEffect(() => {\n if (!editorRef.current) {\n return () => {\n // no op\n };\n }\n\n if (editorInstance.current) {\n editorInstance.current.destroy();\n editorInstance.current = null;\n isEditorAliveRef.current = false;\n }\n\n const currentMode = mode;\n\n const editor = grapesjs.init({\n container: editorRef.current,\n height: '100%',\n plugins: [\n tailwind,\n createGrapesjsShadcnGenericPlugin(\n modeRef,\n performInteractionWrapper,\n renderedComponents.current,\n setHasChanged,\n isTemplateView,\n isStreamingRef,\n handleNavigateToPage,\n ),\n ],\n storageManager: { type: 'none' },\n richTextEditor: {\n actions: ['bold', 'italic', 'underline', 'strikethrough'],\n },\n canvas: {\n customBadgeLabel: (component) => {\n const tagName = component.get('tagName');\n\n return tagName === 'body' ? '' : tagName || '';\n },\n },\n });\n\n isEditorAliveRef.current = true;\n\n let injectionAttempts = 0;\n\n function injectStylesEarly() {\n const iframeDoc = editor.Canvas?.getDocument?.();\n\n if (iframeDoc && iframeDoc.head) {\n if (!iframeDoc.head.querySelector('[data-grapesjs-styles]')) {\n const style = iframeDoc.createElement('style');\n const fullCss = `\n ${tailwindCompiledCss}\n ${datePickerCss}\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `;\n style.innerHTML = fullCss;\n style.setAttribute('type', 'text/css');\n style.setAttribute('data-grapesjs-styles', 'true');\n iframeDoc.head.appendChild(style);\n }\n } else if (injectionAttempts < 50) {\n injectionAttempts += 1;\n requestAnimationFrame(injectStylesEarly);\n }\n }\n\n requestAnimationFrame(injectStylesEarly);\n\n async function checkDirty() {\n if (isStreamingRef.current || isSystemUpdateRef.current) {\n return;\n }\n\n if (!isEditorAliveRef.current || !editorInstance.current) {\n return;\n }\n\n let stored = null;\n\n stored = await safeStoreEditor(editorInstance.current, json, effectiveCurrentPageId);\n\n if (!stored) {\n return;\n }\n\n const newJson = JSON.stringify(stored);\n\n if (newJson !== lastJsonRef.current) {\n setHasChanged(true);\n lastJsonRef.current = newJson;\n }\n }\n\n const debouncedCheckDirty = (() => {\n let timeout: NodeJS.Timeout | null = null;\n\n return () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n\n timeout = setTimeout(checkDirty, 200);\n };\n })();\n\n [\n 'component:add',\n 'component:remove',\n 'component:update:content',\n 'style:update',\n 'component:drag:end',\n 'rte:change',\n ].forEach((evt) => {\n editor.on(evt, debouncedCheckDirty);\n });\n\n editor.on('component:update', (model, prop) => {\n if (['attributes', 'componentProps', 'content'].includes(prop)) {\n debouncedCheckDirty();\n }\n });\n\n // Tailwind CSS rules aren't fully added to our component\n // So, adding them from here!\n editor.on('load', async () => {\n const canvasDoc = editor.Canvas.getDocument();\n const canvasHead = canvasDoc.head;\n\n if (!canvasHead.querySelector('[data-grapesjs-styles]')) {\n const style = canvasDoc.createElement('style');\n const fullCss = `\n ${tailwindCompiledCss}\n ${datePickerCss}\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `;\n style.innerHTML = fullCss;\n style.setAttribute('type', 'text/css');\n style.setAttribute('data-grapesjs-styles', 'true');\n canvasHead.appendChild(style);\n }\n\n isSystemUpdateRef.current = true;\n const storeResult = await safeStoreEditor(editor, json, effectiveCurrentPageId);\n\n if (storeResult) {\n lastJsonRef.current = JSON.stringify(storeResult);\n }\n\n isSystemUpdateRef.current = false;\n\n setComponentProperties(editor, currentMode === 'preview', isStreamingRef.current);\n });\n\n editorInstance.current = editor;\n\n if (setEditor) {\n setEditor(editor);\n }\n\n TypesToRegister.forEach(({ type, tagName }) => {\n if (!editor.DomComponents.getType(type)) {\n editor.DomComponents.addType(type, {\n model: {\n defaults: { tagName },\n },\n view: {},\n });\n }\n });\n\n return function cleanup() {\n editor.destroy();\n isEditorAliveRef.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (json && json.pages?.length > 0) {\n if (!isEditorAliveRef.current || !editorInstance.current) {\n return;\n }\n\n const pageNormalizedJson = normalizeMultiPageJson(json);\n\n if (!pageNormalizedJson?.pages || !Array.isArray(pageNormalizedJson.pages)) {\n // eslint-disable-next-line no-console\n console.warn('Invalid or missing pages in normalized JSON');\n\n return;\n }\n\n const currentPage = getCurrentPage(pageNormalizedJson.pages, effectiveCurrentPageId);\n\n if (!currentPage || !currentPage.frames?.length) {\n // eslint-disable-next-line no-console\n console.warn('No valid page found to render');\n\n return;\n }\n\n isSystemUpdateRef.current = true;\n const raw = currentPage.frames[0].component;\n const processed = expandActions(raw);\n\n try {\n editorInstance.current?.setComponents(processed);\n\n setTimeout(() => {\n if (editorInstance.current && isEditorAliveRef.current) {\n const domComponents = editorInstance.current?.DomComponents;\n\n if (domComponents) {\n const allComponents = domComponents?.getWrapper()?.findType('shadcn-generic');\n allComponents?.forEach((comp: any) => {\n if (comp.get('componentName') === 'Tabs') {\n comp.view?.render();\n }\n });\n }\n }\n }, 100);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error during component restoration:', error);\n }\n\n const globalStyles = pageNormalizedJson.styles || [];\n const pageStyles = currentPage.styles || [];\n const mergedStyles = mergeStyles(globalStyles, pageStyles);\n const cssText = convertStyles(mergedStyles);\n editorInstance.current?.setStyle(cssText);\n\n if (onRequestPageDataRef.current && currentPage.dataQueries) {\n onRequestPageDataRef.current(currentPage.id, currentPage.dataQueries);\n }\n\n if (editorInstance.current) {\n setComponentProperties(editorInstance.current, mode === 'preview', isStreaming);\n\n setTimeout(() => {\n if (editorInstance.current && isEditorAliveRef.current && mode === 'preview') {\n setComponentProperties(editorInstance.current, true, isStreaming);\n }\n }, 50);\n }\n\n setTimeout(() => {\n if (currentPage && pageDataCache.current[currentPage.id]) {\n const cachedData = pageDataCache.current[currentPage.id];\n\n Object.entries(cachedData).forEach(([componentId, data]) => {\n const model = renderedComponents.current[componentId];\n\n if (model && data) {\n if (data.newProps) {\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...data.newProps,\n });\n }\n\n // eslint-disable-next-line no-console\n console.log(\n `[GrapesJS Loading] Setting loading: false for component ${componentId} (cached data applied)`,\n );\n const updatedAttributes = {\n ...model.get('attributes'),\n ...(data.newAttributes || {}),\n loading: false,\n };\n\n model.set('attributes', updatedAttributes);\n\n if (model.view) {\n model.view.render();\n }\n }\n });\n\n delete pageDataCache.current[currentPage.id];\n }\n }, 150);\n\n const cacheCheckInterval = setInterval(() => {\n if (!currentPage || !pageDataCache.current[currentPage.id]) {\n return;\n }\n\n const cachedData = pageDataCache.current[currentPage.id];\n let appliedAny = false;\n\n Object.entries(cachedData).forEach(([componentId, data]) => {\n const model = renderedComponents.current[componentId];\n\n if (model && data) {\n if (data.newProps) {\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...data.newProps,\n });\n }\n\n // eslint-disable-next-line no-console\n console.log(\n `[GrapesJS Loading] Setting loading: false for component ${componentId} (cached data timeout applied)`,\n );\n const updatedAttributes = {\n ...model.get('attributes'),\n ...(data.newAttributes || {}),\n loading: false,\n };\n\n model.set('attributes', updatedAttributes);\n\n if (model.view) {\n model.view.render();\n }\n\n appliedAny = true;\n }\n });\n\n if (appliedAny) {\n Object.keys(cachedData).forEach((componentId) => {\n if (renderedComponents.current[componentId]) {\n delete cachedData[componentId];\n }\n });\n\n if (Object.keys(cachedData).length === 0) {\n delete pageDataCache.current[currentPage.id];\n }\n }\n }, 100);\n\n setTimeout(() => {\n clearInterval(cacheCheckInterval);\n }, 5000);\n\n setTimeout(async () => {\n if (editorInstance.current && isEditorAliveRef.current) {\n const storeResult = await safeStoreEditor(\n editorInstance.current,\n json,\n effectiveCurrentPageId,\n );\n\n if (storeResult) {\n lastJsonRef.current = JSON.stringify(storeResult);\n }\n\n isSystemUpdateRef.current = false;\n }\n }, 100);\n }\n }, [json, effectiveCurrentPageId]);\n\n useEffect(() => {\n if (\n mode &&\n editorInstance.current &&\n isEditorAliveRef.current &&\n !isSettingPropertiesRef.current\n ) {\n isSettingPropertiesRef.current = true;\n isSystemUpdateRef.current = true;\n\n if (isModeChangeFromToggle) {\n setIsTransitioning(true);\n }\n\n setComponentProperties(\n editorInstance.current as Editor,\n mode === 'preview',\n isStreaming ?? false,\n );\n\n const wrapper = editorInstance.current.getWrapper();\n const shadcnComponents = wrapper?.find('[data-gjs-type=\"shadcn-generic\"]') || [];\n\n shadcnComponents.forEach((comp: Component) => {\n if (comp.view && typeof comp.view.render === 'function') {\n const currentAttrs = comp.get('attributes') || {};\n const isCurrentlyLoading = currentAttrs.loading || currentAttrs.interactionApiInProgress;\n\n if (isCurrentlyLoading) {\n comp.set('attributes', {\n ...currentAttrs,\n loading: true,\n });\n }\n\n comp.view.render();\n }\n });\n\n setTimeout(() => {\n if (isEditorAliveRef.current) {\n isSystemUpdateRef.current = false;\n isSettingPropertiesRef.current = false;\n setIsTransitioning(false);\n }\n }, 50);\n }\n }, [mode, isModeChangeFromToggle, isStreaming ?? false]);\n\n return (\n <React.Fragment>\n <StyledEditor />\n <div\n ref={editorRef}\n id=\"grapesjs-editor\"\n style={{\n opacity: isTransitioning ? 0 : 1,\n transition: 'opacity 0.15s ease-in-out',\n }}\n />\n </React.Fragment>\n );\n}\n\nfunction GrapejsCanvas(props: GrapesjsCanvasProps) {\n const existingContext = usePageContext();\n\n if (existingContext) {\n return <GrapejsCanvasInternal {...props} />;\n }\n\n const normalizedJson = normalizeMultiPageJson(props.json);\n const pages =\n normalizedJson?.pages && Array.isArray(normalizedJson.pages)\n ? normalizedJson.pages.map(extractPageMetadata)\n : [];\n const initialPageId = props.currentPageId || pages[0]?.id || '';\n\n return (\n <PageProvider pages={pages} initialPageId={initialPageId} onPageChange={props.onPageChange}>\n <GrapejsCanvasInternal {...props} />\n </PageProvider>\n );\n}\n\nexport default GrapejsCanvas;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"GrapesjsCanvas.js","names":["React","useEffect","useRef","useState","grapesjs","tailwind","TypesToRegister","toKebabCase","tailwindCompiledCss","datePickerCss","extractPageMetadata","getCurrentPage","mergeStyles","normalizeMultiPageJson","createGrapesjsShadcnGenericPlugin","StyledEditor","PageProvider","usePageContext","jsx","_jsx","jsxs","_jsxs","isEditorCanvasReady","editor","canvas","Canvas","canvasDoc","getDocument","canvasBody","body","_unused","safeStoreEditor","_x","_x2","_x3","_safeStoreEditor","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee5","originalJson","currentPageId","_editor$Pages","_originalJson$pages","_storedResult$pages","_originalJson$pages2","wrapper","pages","storedResult","pageIndex","updatedPages","reconstructedResult","wrap","_callee5$","_context5","prev","next","getWrapper","abrupt","Pages","getAll","length","store","sent","console","log","hasOriginalJson","isMultiPage","originalPagesCount","storedResultPagesCount","originalPageIds","map","p","id","Array","isArray","findIndex","concat","_extends","frames","assets","dataSources","styles","symbols","t0","warn","stop","setComponentProperties","isPreview","isStreaming","setPropertiesRecursively","comp","isMutable","set","editable","draggable","droppable","getName","selectable","hoverable","highlightable","copyable","resizable","removable","badgable","get","isEditable","attributes","command","components","forEach","find","runCommand","stopCommand","convertStyles","stylesArray","block","selectors","join","declarations","Object","entries","style","_ref","prop","value","createActionCardConfig","action","icon","title","description","type","componentName","componentProps","headerContent","bodyContent","expandActions","node","_node$componentProps","actions","classes","undefined","i","setInteracting","renderedComponents","inProgress","component","componentId","showLoader","gjsModel","interactionApiInProgress","expandActionsComponent","model","append","addClass","GrapejsCanvasInternal","_ref2","_json$pages","_normalizedJson$pages","_pages$","json","_ref2$mode","mode","setEditor","performInteraction","_ref2$newDataNotifier","newDataNotifier","_ref2$setHasChanged","setHasChanged","_ref2$isModeChangeFro","isModeChangeFromToggle","_ref2$isTemplateView","isTemplateView","externalCurrentPageId","externalOnPageChange","onPageChange","onRequestPageData","pageContext","normalizedJson","JSON","stringify","effectiveCurrentPageId","editorRef","editorInstance","pageDataCache","currentPageIdRef","isStreamingRef","modeRef","isSystemUpdateRef","lastJsonRef","isEditorAliveRef","isSettingPropertiesRef","onRequestPageDataRef","_useState","isTransitioning","setIsTransitioning","current","notificationHandler","props","compId","_props$newProps","newProps","_props$newAttributes","newAttributes","pageId","timestamp","Date","now","filteredProps","keys","key","name","parsedNewProps","pagination","isActionsComponent","hasValidActionsData","_model$components$at","isAlreadyExpanded","at","modelId","loading","view","render","handleNavigateToPage","targetPageId","navigateToPage","performInteractionWrapper","_x4","_performInteractionWrapper","_callee4","payload","updatedJson","apiResponse","componentUpdates","_callee4$","_context4","affectedComponents","_ref8","error","isMissing","errorMessage","Error","message","finish","destroy","currentMode","init","container","height","plugins","storageManager","richTextEditor","customBadgeLabel","tagName","injectionAttempts","injectStylesEarly","_editor$Canvas","iframeDoc","head","querySelector","createElement","fullCss","innerHTML","setAttribute","appendChild","requestAnimationFrame","checkDirty","_checkDirty","_callee2","stored","newJson","_callee2$","_context2","debouncedCheckDirty","timeout","clearTimeout","setTimeout","evt","on","includes","_callee","canvasHead","storeResult","_callee$","_context","_ref4","DomComponents","getType","addType","defaults","cleanup","_json$pages2","_currentPage$frames","_editorInstance$curre3","pageNormalizedJson","currentPage","raw","processed","_editorInstance$curre","setComponents","_editorInstance$curre2","domComponents","_domComponents$getWra","allComponents","findType","_comp$view","globalStyles","pageStyles","mergedStyles","cssText","setStyle","dataQueries","cachedData","_ref5","data","updatedAttributes","cacheCheckInterval","setInterval","appliedAny","_ref6","clearInterval","_callee3","_callee3$","_context3","shadcnComponents","currentAttrs","isCurrentlyLoading","Fragment","children","ref","opacity","transition","GrapejsCanvas","_pages$2","existingContext","initialPageId"],"sources":["../src/GrapesjsCanvas.tsx"],"sourcesContent":["/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef, useState } from 'react';\n// eslint-disable-next-line import/no-named-as-default\nimport grapesjs, { Component, Editor } from 'grapesjs';\nimport 'grapesjs/dist/css/grapes.min.css';\nimport tailwind from 'grapesjs-tailwind';\n\nimport { TypesToRegister } from './constants';\nimport { toKebabCase } from './helpers';\nimport { tailwindCompiledCss } from './helpers/css';\nimport { datePickerCss } from './helpers/date-picker';\nimport {\n extractPageMetadata,\n getCurrentPage,\n mergeStyles,\n normalizeMultiPageJson,\n} from './helpers/page-utils';\nimport { createGrapesjsShadcnGenericPlugin } from './plugins/grapejs-plugin';\nimport { StyledEditor } from './index.styles';\nimport type { PageAwareProps } from './types/page';\nimport { PageProvider, usePageContext } from './contexts/PageContext';\n\ntype NotificationHandler = (newData: {\n componentId: string;\n newProps: Record<string, any>;\n newAttributes: Record<string, any>;\n}) => boolean;\n\ntype GrapesjsCanvasProps = {\n json: any;\n mode?: 'editor' | 'preview';\n setEditor: (editor: Editor) => void;\n performInteraction: (payload: Record<string, any>) => Promise<Record<string, any> | undefined>;\n newDataNotifier: (notifHandler: NotificationHandler) => void;\n setHasChanged: (hasChanged: boolean) => void;\n isStreaming: boolean;\n isModeChangeFromToggle?: boolean;\n isTemplateView?: boolean;\n} & PageAwareProps;\n\nfunction isEditorCanvasReady(editor: Editor): boolean {\n try {\n const canvas = editor.Canvas;\n\n if (!canvas) {\n return false;\n }\n\n const canvasDoc = canvas.getDocument?.();\n\n if (!canvasDoc) {\n return false;\n }\n\n const canvasBody = canvasDoc.body;\n\n if (!canvasBody) {\n return false;\n }\n\n return true;\n } catch {\n return false;\n }\n}\n\nasync function safeStoreEditor(\n editor: Editor,\n originalJson?: any,\n currentPageId?: string,\n): Promise<any | null> {\n try {\n const wrapper = editor.getWrapper();\n\n if (!wrapper) {\n return null;\n }\n\n const pages = editor.Pages?.getAll?.() || [];\n\n if (pages.length === 0) {\n return null;\n }\n\n const storedResult = await editor.store();\n\n // Debug logging to understand what's happening\n // eslint-disable-next-line no-console\n console.log('[DEBUG] safeStoreEditor:', {\n hasOriginalJson: !!originalJson,\n isMultiPage: originalJson?.isMultiPage,\n currentPageId,\n originalPagesCount: originalJson?.pages?.length,\n storedResultPagesCount: storedResult.pages?.length,\n originalPageIds: originalJson?.pages?.map((p: any) => p.id),\n });\n\n if (\n originalJson?.isMultiPage &&\n currentPageId &&\n originalJson.pages &&\n Array.isArray(originalJson.pages)\n ) {\n const pageIndex = originalJson.pages.findIndex((p: any) => p.id === currentPageId);\n\n // eslint-disable-next-line no-console\n console.log('[DEBUG] Multipage reconstruction - pageIndex:', pageIndex);\n\n if (pageIndex >= 0 && storedResult.pages && storedResult.pages[0]) {\n const updatedPages = [...originalJson.pages];\n updatedPages[pageIndex] = {\n ...updatedPages[pageIndex],\n frames: storedResult.pages[0].frames,\n };\n\n const reconstructedResult = {\n assets: originalJson.assets || [],\n dataSources: originalJson.dataSources || [],\n isMultiPage: originalJson.isMultiPage,\n pages: updatedPages,\n styles: originalJson.styles || [],\n symbols: originalJson.symbols || [],\n };\n\n // eslint-disable-next-line no-console\n console.log(\n '[DEBUG] Returning reconstructed multipage result with',\n reconstructedResult.pages.length,\n 'pages',\n );\n\n return reconstructedResult;\n }\n }\n\n // eslint-disable-next-line no-console\n console.log('[DEBUG] Returning original stored result');\n\n return storedResult;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn('Error during store operation:', error);\n\n return null;\n }\n}\n\nfunction setComponentProperties(editor: Editor, isPreview: boolean, isStreaming: boolean): void {\n if (!editor) {\n return;\n }\n\n function setPropertiesRecursively(comp: Component) {\n const isMutable = !isPreview && !isStreaming;\n\n comp.set({\n editable: isMutable,\n draggable: isMutable,\n droppable: isMutable && comp.getName() !== 'Shadcn-generic',\n selectable: isMutable,\n hoverable: isMutable,\n highlightable: isMutable,\n copyable: false,\n resizable: false,\n removable: isMutable,\n badgable: false,\n });\n\n comp.set('attributes', {\n ...(comp.get('attributes') || {}),\n isEditable: isMutable,\n });\n\n if (isMutable) {\n comp.set('toolbar', [\n { attributes: { class: 'fa fa-arrows' }, command: 'tlb-move' },\n { attributes: { class: 'fa fa-trash' }, command: 'tlb-delete' },\n ]);\n } else {\n comp.set('toolbar', []);\n }\n\n comp.components().forEach(setPropertiesRecursively);\n }\n\n const wrapper = editor.getWrapper();\n const components = wrapper?.find('*') || [];\n\n components.forEach(setPropertiesRecursively);\n\n if (isEditorCanvasReady(editor)) {\n if (isPreview) {\n editor.runCommand('core:preview');\n } else {\n editor.stopCommand('core:preview');\n }\n }\n}\n\nfunction convertStyles(stylesArray: any[]): string {\n return stylesArray\n .map((block) => {\n const selectors = Array.isArray(block.selectors)\n ? block.selectors.join(', ')\n : block.selectors;\n const declarations = Object.entries(block.style)\n .map(([prop, value]) => `${toKebabCase(prop)}: ${value};`)\n .join(' ');\n\n return `${selectors} { ${declarations} }`;\n })\n .join('\\n');\n}\n\nfunction createActionCardConfig(action: any): any {\n const { icon, title, description } = action;\n\n return {\n type: 'shadcn-generic',\n componentName: 'ActionCard',\n badgable: false,\n copyable: false,\n removable: true,\n draggable: true,\n componentProps: {\n icon,\n headerContent: title,\n bodyContent: description,\n },\n };\n}\n\nfunction expandActions(node: any): any {\n if (node.type === 'shadcn-generic' && node.componentName === 'Actions') {\n const actions = node.componentProps?.actions;\n\n if (Array.isArray(actions) && actions.length > 0) {\n return {\n ...node,\n type: 'div',\n classes: ['dashboard-cards', ...(node.classes || [])],\n componentName: undefined,\n componentProps: undefined,\n components: actions.map((action: any, i: number) => ({\n ...createActionCardConfig(action),\n id: `${node.id}--action-card-${i}`,\n })),\n };\n }\n\n return node;\n }\n\n if (Array.isArray(node.components)) {\n return {\n ...node,\n components: node.components.map(expandActions),\n };\n }\n\n return node;\n}\n\nfunction setInteracting(\n renderedComponents: Record<string, Component>,\n components: { componentId: string; showLoader: boolean }[],\n inProgress: boolean,\n) {\n components.forEach((component) => {\n const { componentId, showLoader } = component;\n\n if (!showLoader) {\n return;\n }\n\n const gjsModel = renderedComponents[componentId];\n\n if (gjsModel) {\n gjsModel.set('attributes', {\n ...gjsModel.get('attributes'),\n interactionApiInProgress: inProgress,\n });\n }\n });\n}\n\nfunction expandActionsComponent(model: Component, actions: any[]): void {\n model.components('');\n\n actions.forEach((action: any) => {\n model.append(createActionCardConfig(action));\n });\n\n model.set('type', 'div');\n model.addClass('dashboard-cards');\n model.set('componentName', undefined);\n model.set('componentProps', {});\n}\n\nfunction GrapejsCanvasInternal({\n json,\n mode = 'preview',\n setEditor,\n performInteraction,\n newDataNotifier = () => {\n // no op\n },\n setHasChanged = () => {\n // no op\n },\n isStreaming,\n isModeChangeFromToggle = false,\n isTemplateView = false,\n currentPageId: externalCurrentPageId,\n onPageChange: externalOnPageChange, // eslint-disable-line @typescript-eslint/no-unused-vars\n onRequestPageData,\n}: GrapesjsCanvasProps) {\n const pageContext = usePageContext();\n\n const normalizedJson = normalizeMultiPageJson(json);\n\n // DEBUG: Analyze initial JSON structure\n console.log('[GrapejsCanvas] Component initialization debug:');\n console.log('[GrapejsCanvas] Raw json prop:', JSON.stringify(json, null, 2));\n console.log('[GrapejsCanvas] Normalized json:', JSON.stringify(normalizedJson, null, 2));\n console.log('[GrapejsCanvas] Has pages in raw json:', json?.pages ? 'YES' : 'NO');\n console.log('[GrapejsCanvas] Pages count in raw json:', json?.pages?.length || 0);\n console.log('[GrapejsCanvas] Has pages in normalized:', normalizedJson?.pages ? 'YES' : 'NO');\n console.log('[GrapejsCanvas] Pages count in normalized:', normalizedJson?.pages?.length || 0);\n\n const pages =\n normalizedJson?.pages && Array.isArray(normalizedJson.pages)\n ? normalizedJson.pages.map(extractPageMetadata)\n : [];\n const effectiveCurrentPageId =\n externalCurrentPageId || pageContext?.currentPageId || pages[0]?.id || '';\n\n console.log('[GrapejsCanvas] Extracted pages:', pages);\n console.log('[GrapejsCanvas] Effective current page ID:', effectiveCurrentPageId);\n\n const editorRef = useRef<HTMLDivElement>(null);\n const editorInstance = useRef<Editor | null>(null);\n const renderedComponents = useRef<Record<string, Component>>({});\n const pageDataCache = useRef<Record<string, Record<string, any>>>({});\n const currentPageIdRef = useRef<string>(effectiveCurrentPageId);\n const isStreamingRef = useRef(isStreaming ?? false);\n const modeRef = useRef(mode);\n const isSystemUpdateRef = useRef(false);\n const lastJsonRef = useRef<string>('');\n const isEditorAliveRef = useRef(false);\n const isSettingPropertiesRef = useRef(false);\n const onRequestPageDataRef = useRef(onRequestPageData);\n const [isTransitioning, setIsTransitioning] = useState(false);\n\n useEffect(() => {\n currentPageIdRef.current = effectiveCurrentPageId;\n }, [effectiveCurrentPageId]);\n\n useEffect(() => {\n isStreamingRef.current = isStreaming ?? false;\n }, [isStreaming ?? false]);\n\n useEffect(() => {\n modeRef.current = mode;\n }, [mode]);\n\n useEffect(() => {\n onRequestPageDataRef.current = onRequestPageData;\n }, [onRequestPageData]);\n\n function notificationHandler(\n props: Parameters<NotificationHandler>[0],\n ): ReturnType<NotificationHandler> {\n if (!props) {\n return true;\n }\n\n const { componentId: compId, newProps = {}, newAttributes = {} } = props;\n\n const model = renderedComponents.current[compId];\n\n if (!model) {\n const pageId = currentPageIdRef.current;\n\n if (pageId) {\n if (!pageDataCache.current[pageId]) {\n pageDataCache.current[pageId] = {};\n }\n\n pageDataCache.current[pageId][compId] = {\n newProps,\n newAttributes,\n timestamp: Date.now(),\n };\n }\n\n return false;\n }\n\n // Filter out complex placeholder objects by setting them to null\n // This ensures placeholder values are properly cleared and don't cause stale data issues\n const filteredProps = { ...newProps };\n\n Object.keys(filteredProps).forEach((key) => {\n const value = filteredProps[key];\n\n if (value && typeof value === 'object' && value.name === '__peak_placeholder') {\n filteredProps[key] = null;\n }\n });\n\n const parsedNewProps = {\n ...filteredProps,\n };\n\n if (filteredProps.pagination) {\n parsedNewProps.pagination = {\n ...(model.get('componentProps').pagination || {}),\n ...filteredProps.pagination,\n };\n }\n\n // Handle Actions component: expand into ActionCards when data arrives via streaming\n const isActionsComponent = model.get('componentName') === 'Actions';\n const hasValidActionsData =\n parsedNewProps.actions &&\n parsedNewProps.actions !== null &&\n Array.isArray(parsedNewProps.actions) &&\n parsedNewProps.actions.length > 0;\n\n if (isActionsComponent && hasValidActionsData) {\n const isAlreadyExpanded =\n model.components().length > 0 &&\n model.components().at(0)?.get('componentName') === 'ActionCard';\n\n if (!isAlreadyExpanded && editorInstance.current && isEditorAliveRef.current) {\n expandActionsComponent(model, parsedNewProps.actions);\n\n return true;\n }\n }\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...parsedNewProps,\n });\n\n // Set loading: false when data arrives\n const modelId = model.get('id');\n model.set('attributes', {\n ...model.get('attributes'),\n ...newAttributes,\n loading: false,\n });\n\n if (model.view) {\n model.view.render();\n }\n\n return true;\n }\n\n useEffect(() => {\n newDataNotifier(notificationHandler);\n }, []);\n\n function handleNavigateToPage(targetPageId: string) {\n if (externalOnPageChange) {\n externalOnPageChange(targetPageId);\n }\n\n if (pageContext) {\n pageContext.navigateToPage(targetPageId);\n }\n\n if (!pageContext && !externalOnPageChange) {\n // eslint-disable-next-line no-console\n console.warn('Page navigation requested but no navigation handler available');\n }\n }\n\n async function performInteractionWrapper(payload: Record<string, any>) {\n let updatedJson = null;\n\n if (editorInstance.current) {\n // DEBUG: Check what's being passed to safeStoreEditor\n console.log('[performInteractionWrapper] About to call safeStoreEditor with:');\n console.log('[performInteractionWrapper] json:', JSON.stringify(json, null, 2));\n console.log('[performInteractionWrapper] effectiveCurrentPageId:', effectiveCurrentPageId);\n\n updatedJson = await safeStoreEditor(editorInstance.current, json, effectiveCurrentPageId);\n\n console.log(\n '[performInteractionWrapper] safeStoreEditor returned:',\n JSON.stringify(updatedJson, null, 2),\n );\n }\n\n setInteracting(renderedComponents.current, payload.affectedComponents, true);\n\n try {\n const apiResponse = await performInteraction({\n ...payload,\n json: updatedJson,\n });\n\n const componentUpdates = apiResponse || {};\n\n Object.entries(componentUpdates).forEach(([key, value]) => {\n const model = renderedComponents.current[key];\n\n if (model) {\n model.set('attributes', {\n ...model.get('attributes'),\n error: undefined,\n });\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...value,\n error: undefined,\n isMissing: undefined,\n });\n }\n });\n\n return componentUpdates;\n } catch (error) {\n payload.affectedComponents.forEach((componentId: string) => {\n const model = renderedComponents.current[componentId];\n\n if (model) {\n const errorMessage =\n error instanceof Error ? error.message : 'Something went wrong. Please try again.';\n\n model.set('attributes', {\n ...model.get('attributes'),\n error: errorMessage,\n });\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n error: errorMessage,\n isMissing: undefined,\n });\n }\n });\n\n throw error;\n } finally {\n setInteracting(renderedComponents.current, payload.affectedComponents, false);\n }\n }\n\n useEffect(() => {\n if (!editorRef.current) {\n return () => {\n // no op\n };\n }\n\n if (editorInstance.current) {\n editorInstance.current.destroy();\n editorInstance.current = null;\n isEditorAliveRef.current = false;\n }\n\n const currentMode = mode;\n\n const editor = grapesjs.init({\n container: editorRef.current,\n height: '100%',\n plugins: [\n tailwind,\n createGrapesjsShadcnGenericPlugin(\n modeRef,\n performInteractionWrapper,\n renderedComponents.current,\n setHasChanged,\n isTemplateView,\n isStreamingRef,\n handleNavigateToPage,\n ),\n ],\n storageManager: { type: 'none' },\n richTextEditor: {\n actions: ['bold', 'italic', 'underline', 'strikethrough'],\n },\n canvas: {\n customBadgeLabel: (component) => {\n const tagName = component.get('tagName');\n\n return tagName === 'body' ? '' : tagName || '';\n },\n },\n });\n\n isEditorAliveRef.current = true;\n\n let injectionAttempts = 0;\n\n function injectStylesEarly() {\n const iframeDoc = editor.Canvas?.getDocument?.();\n\n if (iframeDoc && iframeDoc.head) {\n if (!iframeDoc.head.querySelector('[data-grapesjs-styles]')) {\n const style = iframeDoc.createElement('style');\n const fullCss = `\n ${tailwindCompiledCss}\n ${datePickerCss}\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `;\n style.innerHTML = fullCss;\n style.setAttribute('type', 'text/css');\n style.setAttribute('data-grapesjs-styles', 'true');\n iframeDoc.head.appendChild(style);\n }\n } else if (injectionAttempts < 50) {\n injectionAttempts += 1;\n requestAnimationFrame(injectStylesEarly);\n }\n }\n\n requestAnimationFrame(injectStylesEarly);\n\n async function checkDirty() {\n if (isStreamingRef.current || isSystemUpdateRef.current) {\n return;\n }\n\n if (!isEditorAliveRef.current || !editorInstance.current) {\n return;\n }\n\n let stored = null;\n\n stored = await safeStoreEditor(editorInstance.current, json, effectiveCurrentPageId);\n\n if (!stored) {\n return;\n }\n\n const newJson = JSON.stringify(stored);\n\n if (newJson !== lastJsonRef.current) {\n setHasChanged(true);\n lastJsonRef.current = newJson;\n }\n }\n\n const debouncedCheckDirty = (() => {\n let timeout: NodeJS.Timeout | null = null;\n\n return () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n\n timeout = setTimeout(checkDirty, 200);\n };\n })();\n\n [\n 'component:add',\n 'component:remove',\n 'component:update:content',\n 'style:update',\n 'component:drag:end',\n 'rte:change',\n ].forEach((evt) => {\n editor.on(evt, debouncedCheckDirty);\n });\n\n editor.on('component:update', (model, prop) => {\n if (['attributes', 'componentProps', 'content'].includes(prop)) {\n debouncedCheckDirty();\n }\n });\n\n // Tailwind CSS rules aren't fully added to our component\n // So, adding them from here!\n editor.on('load', async () => {\n const canvasDoc = editor.Canvas.getDocument();\n const canvasHead = canvasDoc.head;\n\n if (!canvasHead.querySelector('[data-grapesjs-styles]')) {\n const style = canvasDoc.createElement('style');\n const fullCss = `\n ${tailwindCompiledCss}\n ${datePickerCss}\n ::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n }\n html, body {\n overflow: auto !important;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n `;\n style.innerHTML = fullCss;\n style.setAttribute('type', 'text/css');\n style.setAttribute('data-grapesjs-styles', 'true');\n canvasHead.appendChild(style);\n }\n\n isSystemUpdateRef.current = true;\n const storeResult = await safeStoreEditor(editor, json, effectiveCurrentPageId);\n\n if (storeResult) {\n lastJsonRef.current = JSON.stringify(storeResult);\n }\n\n isSystemUpdateRef.current = false;\n\n setComponentProperties(editor, currentMode === 'preview', isStreamingRef.current);\n });\n\n editorInstance.current = editor;\n\n if (setEditor) {\n setEditor(editor);\n }\n\n TypesToRegister.forEach(({ type, tagName }) => {\n if (!editor.DomComponents.getType(type)) {\n editor.DomComponents.addType(type, {\n model: {\n defaults: { tagName },\n },\n view: {},\n });\n }\n });\n\n return function cleanup() {\n editor.destroy();\n isEditorAliveRef.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (json && json.pages?.length > 0) {\n if (!isEditorAliveRef.current || !editorInstance.current) {\n return;\n }\n\n const pageNormalizedJson = normalizeMultiPageJson(json);\n\n if (!pageNormalizedJson?.pages || !Array.isArray(pageNormalizedJson.pages)) {\n // eslint-disable-next-line no-console\n console.warn('Invalid or missing pages in normalized JSON');\n\n return;\n }\n\n const currentPage = getCurrentPage(pageNormalizedJson.pages, effectiveCurrentPageId);\n\n if (!currentPage || !currentPage.frames?.length) {\n // eslint-disable-next-line no-console\n console.warn('No valid page found to render');\n\n return;\n }\n\n isSystemUpdateRef.current = true;\n const raw = currentPage.frames[0].component;\n const processed = expandActions(raw);\n\n try {\n editorInstance.current?.setComponents(processed);\n\n setTimeout(() => {\n if (editorInstance.current && isEditorAliveRef.current) {\n const domComponents = editorInstance.current?.DomComponents;\n\n if (domComponents) {\n const allComponents = domComponents?.getWrapper()?.findType('shadcn-generic');\n allComponents?.forEach((comp: any) => {\n if (comp.get('componentName') === 'Tabs') {\n comp.view?.render();\n }\n });\n }\n }\n }, 100);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error during component restoration:', error);\n }\n\n const globalStyles = pageNormalizedJson.styles || [];\n const pageStyles = currentPage.styles || [];\n const mergedStyles = mergeStyles(globalStyles, pageStyles);\n const cssText = convertStyles(mergedStyles);\n editorInstance.current?.setStyle(cssText);\n\n if (onRequestPageDataRef.current && currentPage.dataQueries) {\n onRequestPageDataRef.current(currentPage.id, currentPage.dataQueries);\n }\n\n if (editorInstance.current) {\n setComponentProperties(editorInstance.current, mode === 'preview', isStreaming);\n\n setTimeout(() => {\n if (editorInstance.current && isEditorAliveRef.current && mode === 'preview') {\n setComponentProperties(editorInstance.current, true, isStreaming);\n }\n }, 50);\n }\n\n setTimeout(() => {\n if (currentPage && pageDataCache.current[currentPage.id]) {\n const cachedData = pageDataCache.current[currentPage.id];\n\n Object.entries(cachedData).forEach(([componentId, data]) => {\n const model = renderedComponents.current[componentId];\n\n if (model && data) {\n if (data.newProps) {\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...data.newProps,\n });\n }\n\n const updatedAttributes = {\n ...model.get('attributes'),\n ...(data.newAttributes || {}),\n loading: false,\n };\n\n model.set('attributes', updatedAttributes);\n\n if (model.view) {\n model.view.render();\n }\n }\n });\n\n delete pageDataCache.current[currentPage.id];\n }\n }, 150);\n\n const cacheCheckInterval = setInterval(() => {\n if (!currentPage || !pageDataCache.current[currentPage.id]) {\n return;\n }\n\n const cachedData = pageDataCache.current[currentPage.id];\n let appliedAny = false;\n\n Object.entries(cachedData).forEach(([componentId, data]) => {\n const model = renderedComponents.current[componentId];\n\n if (model && data) {\n if (data.newProps) {\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...data.newProps,\n });\n }\n\n const updatedAttributes = {\n ...model.get('attributes'),\n ...(data.newAttributes || {}),\n loading: false,\n };\n\n model.set('attributes', updatedAttributes);\n\n if (model.view) {\n model.view.render();\n }\n\n appliedAny = true;\n }\n });\n\n if (appliedAny) {\n Object.keys(cachedData).forEach((componentId) => {\n if (renderedComponents.current[componentId]) {\n delete cachedData[componentId];\n }\n });\n\n if (Object.keys(cachedData).length === 0) {\n delete pageDataCache.current[currentPage.id];\n }\n }\n }, 100);\n\n setTimeout(() => {\n clearInterval(cacheCheckInterval);\n }, 5000);\n\n setTimeout(async () => {\n if (editorInstance.current && isEditorAliveRef.current) {\n const storeResult = await safeStoreEditor(\n editorInstance.current,\n json,\n effectiveCurrentPageId,\n );\n\n if (storeResult) {\n lastJsonRef.current = JSON.stringify(storeResult);\n }\n\n isSystemUpdateRef.current = false;\n }\n }, 100);\n }\n }, [json, effectiveCurrentPageId]);\n\n useEffect(() => {\n if (\n mode &&\n editorInstance.current &&\n isEditorAliveRef.current &&\n !isSettingPropertiesRef.current\n ) {\n isSettingPropertiesRef.current = true;\n isSystemUpdateRef.current = true;\n\n if (isModeChangeFromToggle) {\n setIsTransitioning(true);\n }\n\n setComponentProperties(\n editorInstance.current as Editor,\n mode === 'preview',\n isStreaming ?? false,\n );\n\n const wrapper = editorInstance.current.getWrapper();\n const shadcnComponents = wrapper?.find('[data-gjs-type=\"shadcn-generic\"]') || [];\n\n shadcnComponents.forEach((comp: Component) => {\n if (comp.view && typeof comp.view.render === 'function') {\n const currentAttrs = comp.get('attributes') || {};\n const isCurrentlyLoading = currentAttrs.loading || currentAttrs.interactionApiInProgress;\n\n if (isCurrentlyLoading) {\n comp.set('attributes', {\n ...currentAttrs,\n loading: true,\n });\n }\n\n comp.view.render();\n }\n });\n\n setTimeout(() => {\n if (isEditorAliveRef.current) {\n isSystemUpdateRef.current = false;\n isSettingPropertiesRef.current = false;\n setIsTransitioning(false);\n }\n }, 50);\n }\n }, [mode, isModeChangeFromToggle, isStreaming ?? false]);\n\n return (\n <React.Fragment>\n <StyledEditor />\n <div\n ref={editorRef}\n id=\"grapesjs-editor\"\n style={{\n opacity: isTransitioning ? 0 : 1,\n transition: 'opacity 0.15s ease-in-out',\n }}\n />\n </React.Fragment>\n );\n}\n\nfunction GrapejsCanvas(props: GrapesjsCanvasProps) {\n const existingContext = usePageContext();\n\n if (existingContext) {\n return <GrapejsCanvasInternal {...props} />;\n }\n\n const normalizedJson = normalizeMultiPageJson(props.json);\n const pages =\n normalizedJson?.pages && Array.isArray(normalizedJson.pages)\n ? normalizedJson.pages.map(extractPageMetadata)\n : [];\n const initialPageId = props.currentPageId || pages[0]?.id || '';\n\n return (\n <PageProvider pages={pages} initialPageId={initialPageId} onPageChange={props.onPageChange}>\n <GrapejsCanvasInternal {...props} />\n </PageProvider>\n );\n}\n\nexport default GrapejsCanvas;\n"],"mappings":"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","ignoreList":[]}
|