@peak-ai/canvas 1.4.8 → 1.4.9-rc.3

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _extends from"@babel/runtime/helpers/extends";import _regeneratorRuntime from"@babel/runtime/regenerator";/* eslint-disable @typescript-eslint/no-explicit-any */import React,{useEffect,useRef}from"react";// eslint-disable-next-line import/no-named-as-default
2
- import grapesjs from"grapesjs";import"grapesjs/dist/css/grapes.min.css";import tailwind from"grapesjs-tailwind";import{TypesToRegister}from"./constants";import{toKebabCase}from"./helpers";import{createGrapesjsShadcnGenericPlugin}from"./plugins/grapejs-plugin";import{StyledEditor}from"./index.styles";import{tailwindCompiledCss}from"./helpers/css";import{datePickerCss}from"./helpers/date-picker";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";function setComponentProperties(editor,isPreview){function setPropertiesRecursively(comp){comp.set({editable:!isPreview,draggable:!isPreview,droppable:!isPreview&&comp.getName()!=="Shadcn-generic",selectable:!isPreview,hoverable:!isPreview,highlightable:!isPreview,copyable:false,resizable:false,removable:!isPreview,badgable:false});if(!isPreview){comp.set("toolbar",[{attributes:{"class":"fa fa-arrows"},command:"tlb-move"},{attributes:{"class":"fa fa-trash"},command:"tlb-delete"}])}comp.components().forEach(setPropertiesRecursively)}if(isPreview){editor.runCommand("core:preview")}else{editor.stopCommand("core:preview")}var wrapper=editor.getWrapper();wrapper==null||wrapper.find("*").forEach(setPropertiesRecursively)}function convertStyles(stylesArray){return stylesArray.map(function(block){var selectors=Array.isArray(block.selectors)?block.selectors.join(", "):block.selectors;var declarations=Object.entries(block.style).map(function(_ref){var prop=_ref[0],value=_ref[1];return toKebabCase(prop)+": "+value+";"}).join(" ");return selectors+" { "+declarations+" }"}).join("\n")}function expandActions(node){var _node$componentProps;if(node.type==="shadcn-generic"&&node.componentName==="Actions"&&Array.isArray((_node$componentProps=node.componentProps)==null?void 0:_node$componentProps.actions)){var actions=node.componentProps.actions;return _extends({},node,{type:"div",classes:["dashboard-cards"].concat(node.classes||[]),componentName:undefined,componentProps:undefined,components:actions.map(function(action,i){var icon=action.icon,title=action.title,description=action.description;return{id:node.id+"--action-card-"+i,type:"shadcn-generic",componentName:"ActionCard",badgable:false,copyable:false,componentProps:{icon:icon,headerContent:title,bodyContent:description}}})})}if(Array.isArray(node.components)){return _extends({},node,{components:node.components.map(expandActions)})}return node}function setInteracting(renderedComponents,components,inProgress){components.forEach(function(component){var componentId=component.componentId,showLoader=component.showLoader;if(!showLoader){return}var gjsModel=renderedComponents[componentId];if(gjsModel){gjsModel.set("attributes",_extends({},gjsModel.get("attributes"),{interactionApiInProgress:inProgress}))}})}function GrapesjsCanvas(_ref2){var json=_ref2.json,_ref2$mode=_ref2.mode,mode=_ref2$mode===void 0?"preview":_ref2$mode,setEditor=_ref2.setEditor,performInteraction=_ref2.performInteraction,_ref2$newDataNotifier=_ref2.newDataNotifier,newDataNotifier=_ref2$newDataNotifier===void 0?function(){}:_ref2$newDataNotifier;var editorRef=useRef(null);var editorInstance=useRef(null);var renderedComponents={};function notificationHandler(props){if(!props){return true}var componentId=props.componentId,newProps=props.newProps,newAttributes=props.newAttributes;var model=renderedComponents[componentId];if(!model){return false}var parsedNewProps=_extends({},newProps);if(newProps.pagination){parsedNewProps.pagination=_extends({},model.get("componentProps").pagination||{},newProps.pagination)}model.set("componentProps",_extends({},model.get("componentProps"),parsedNewProps));model.set("attributes",_extends({},model.get("attributes"),newAttributes));return true}useEffect(function(){newDataNotifier(notificationHandler)},[]);function performInteractionWrapper(_x){return _performInteractionWrapper.apply(this,arguments)}function _performInteractionWrapper(){_performInteractionWrapper=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(payload){var _editorInstance$curre;var updatedJson,result;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return(_editorInstance$curre=editorInstance.current)==null?void 0:_editorInstance$curre.store();case 2:updatedJson=_context.sent;setInteracting(renderedComponents,payload.affectedComponents,true);_context.prev=4;_context.next=7;return performInteraction(_extends({},payload,{json:updatedJson}));case 7:result=_context.sent;Object.entries(result||{}).forEach(function(_ref4){var key=_ref4[0],value=_ref4[1];var model=renderedComponents[key];if(model){model.set("componentProps",_extends({},model.get("componentProps"),value))}});return _context.abrupt("return",result);case 10:_context.prev=10;setInteracting(renderedComponents,payload.affectedComponents,false);return _context.finish(10);case 13:case"end":return _context.stop()}},_callee,null,[[4,,10,13]])}));return _performInteractionWrapper.apply(this,arguments)}useEffect(function(){var _json$pages,_json$pages$0$frames;if(!editorRef.current){return function(){// Cleanup if editorRef is not available
3
- }}if(editorInstance.current){editorInstance.current.destroy();editorInstance.current=null}var currentMode=mode;var editor=grapesjs.init({container:editorRef.current,height:"100%",plugins:[tailwind,createGrapesjsShadcnGenericPlugin(currentMode,performInteractionWrapper,renderedComponents)],storageManager:{type:"none"},richTextEditor:{actions:["bold","italic","underline","strikethrough"]},canvas:{customBadgeLabel:function customBadgeLabel(component){var tagName=component.get("tagName");return tagName==="body"?"":tagName||""}}});// Tailwind CSS rules aren't fully added to our component
2
+ import grapesjs from"grapesjs";import"grapesjs/dist/css/grapes.min.css";import tailwind from"grapesjs-tailwind";import{TypesToRegister}from"./constants";import{toKebabCase}from"./helpers";import{createGrapesjsShadcnGenericPlugin}from"./plugins/grapejs-plugin";import{StyledEditor}from"./index.styles";import{tailwindCompiledCss}from"./helpers/css";import{datePickerCss}from"./helpers/date-picker";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";function setComponentProperties(editor,isPreview){function setPropertiesRecursively(comp){comp.set({editable:!isPreview,draggable:!isPreview,droppable:!isPreview&&comp.getName()!=="Shadcn-generic",selectable:!isPreview,hoverable:!isPreview,highlightable:!isPreview,copyable:false,resizable:false,removable:!isPreview,badgable:false});if(!isPreview){comp.set("toolbar",[{attributes:{"class":"fa fa-arrows"},command:"tlb-move"},{attributes:{"class":"fa fa-trash"},command:"tlb-delete"}])}comp.components().forEach(setPropertiesRecursively)}if(isPreview){editor.runCommand("core:preview")}else{editor.stopCommand("core:preview")}var wrapper=editor.getWrapper();wrapper==null||wrapper.find("*").forEach(setPropertiesRecursively)}function convertStyles(stylesArray){return stylesArray.map(function(block){var selectors=Array.isArray(block.selectors)?block.selectors.join(", "):block.selectors;var declarations=Object.entries(block.style).map(function(_ref){var prop=_ref[0],value=_ref[1];return toKebabCase(prop)+": "+value+";"}).join(" ");return selectors+" { "+declarations+" }"}).join("\n")}function expandActions(node){var _node$componentProps;if(node.type==="shadcn-generic"&&node.componentName==="Actions"&&Array.isArray((_node$componentProps=node.componentProps)==null?void 0:_node$componentProps.actions)){var actions=node.componentProps.actions;return _extends({},node,{type:"div",classes:["dashboard-cards"].concat(node.classes||[]),componentName:undefined,componentProps:undefined,components:actions.map(function(action,i){var icon=action.icon,title=action.title,description=action.description;return{id:node.id+"--action-card-"+i,type:"shadcn-generic",componentName:"ActionCard",badgable:false,copyable:false,componentProps:{icon:icon,headerContent:title,bodyContent:description}}})})}if(Array.isArray(node.components)){return _extends({},node,{components:node.components.map(expandActions)})}return node}function setInteracting(renderedComponents,components,inProgress){components.forEach(function(component){var componentId=component.componentId,showLoader=component.showLoader;if(!showLoader){return}var gjsModel=renderedComponents[componentId];if(gjsModel){gjsModel.set("attributes",_extends({},gjsModel.get("attributes"),{interactionApiInProgress:inProgress}))}})}function GrapesjsCanvas(_ref2){var json=_ref2.json,_ref2$mode=_ref2.mode,mode=_ref2$mode===void 0?"preview":_ref2$mode,setEditor=_ref2.setEditor,performInteraction=_ref2.performInteraction,_ref2$newDataNotifier=_ref2.newDataNotifier,newDataNotifier=_ref2$newDataNotifier===void 0?function(){}:_ref2$newDataNotifier;var editorRef=useRef(null);var editorInstance=useRef(null);var renderedComponents=useRef({});function notificationHandler(props){if(!props){return true}var componentId=props.componentId,newProps=props.newProps,newAttributes=props.newAttributes;var model=renderedComponents.current[componentId];if(!model){return false}var parsedNewProps=_extends({},newProps);if(newProps.pagination){parsedNewProps.pagination=_extends({},model.get("componentProps").pagination||{},newProps.pagination)}model.set("componentProps",_extends({},model.get("componentProps"),parsedNewProps));model.set("attributes",_extends({},model.get("attributes"),newAttributes));return true}useEffect(function(){newDataNotifier(notificationHandler)},[]);function performInteractionWrapper(_x){return _performInteractionWrapper.apply(this,arguments)}function _performInteractionWrapper(){_performInteractionWrapper=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(payload){var _editorInstance$curre;var updatedJson,result;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return(_editorInstance$curre=editorInstance.current)==null?void 0:_editorInstance$curre.store();case 2:updatedJson=_context.sent;setInteracting(renderedComponents.current,payload.affectedComponents,true);_context.prev=4;_context.next=7;return performInteraction(_extends({},payload,{json:updatedJson}));case 7:result=_context.sent;Object.entries(result||{}).forEach(function(_ref4){var key=_ref4[0],value=_ref4[1];var model=renderedComponents.current[key];if(model){model.set("componentProps",_extends({},model.get("componentProps"),value))}});return _context.abrupt("return",result);case 10:_context.prev=10;setInteracting(renderedComponents.current,payload.affectedComponents,false);return _context.finish(10);case 13:case"end":return _context.stop()}},_callee,null,[[4,,10,13]])}));return _performInteractionWrapper.apply(this,arguments)}useEffect(function(){var _json$pages,_json$pages$0$frames;if(!editorRef.current){return function(){// Cleanup if editorRef is not available
3
+ }}if(editorInstance.current){editorInstance.current.destroy();editorInstance.current=null}var currentMode=mode;var editor=grapesjs.init({container:editorRef.current,height:"100%",plugins:[tailwind,createGrapesjsShadcnGenericPlugin(currentMode,performInteractionWrapper,renderedComponents.current)],storageManager:{type:"none"},richTextEditor:{actions:["bold","italic","underline","strikethrough"]},canvas:{customBadgeLabel:function customBadgeLabel(component){var tagName=component.get("tagName");return tagName==="body"?"":tagName||""}}});// Tailwind CSS rules aren't fully added to our component
4
4
  // So, adding them from here!
5
5
  editor.on("load",function(){var canvasHead=editor.Canvas.getDocument().head;var style=document.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 \n ";style.innerHTML=fullCss;style.setAttribute("type","text/css");canvasHead.appendChild(style)});editorInstance.current=editor;if(setEditor){setEditor(editor)}TypesToRegister.forEach(function(_ref3){var type=_ref3.type,tagName=_ref3.tagName;if(!editor.DomComponents.getType(type)){editor.DomComponents.addType(type,{model:{defaults:{tagName:tagName}},view:{}})}});if(json&&((_json$pages=json.pages)==null?void 0:_json$pages.length)>0&&((_json$pages$0$frames=json.pages[0].frames)==null?void 0:_json$pages$0$frames.length)>0){var raw=json.pages[0].frames[0].component;var processed=expandActions(raw);editor.setComponents(processed);var cssText=convertStyles(json.styles||[]);editor.setStyle(cssText)}editor.on("load",function(){setComponentProperties(editor,mode==="preview")});return function(){editor.destroy()};// eslint-disable-next-line @typescript-eslint/no-empty-function
6
6
  },[json,mode]);return/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(StyledEditor,{}),/*#__PURE__*/_jsx("div",{ref:editorRef,id:"grapesjs-editor"})]})}export default GrapesjsCanvas;
@@ -1 +1 @@
1
- {"version":3,"file":"GrapesjsCanvas.js","names":["React","useEffect","useRef","grapesjs","tailwind","TypesToRegister","toKebabCase","createGrapesjsShadcnGenericPlugin","StyledEditor","tailwindCompiledCss","datePickerCss","jsx","_jsx","jsxs","_jsxs","setComponentProperties","editor","isPreview","setPropertiesRecursively","comp","set","editable","draggable","droppable","getName","selectable","hoverable","highlightable","copyable","resizable","removable","badgable","attributes","command","components","forEach","runCommand","stopCommand","wrapper","getWrapper","find","convertStyles","stylesArray","map","block","selectors","Array","isArray","join","declarations","Object","entries","style","_ref","prop","value","expandActions","node","_node$componentProps","type","componentName","componentProps","actions","_extends","classes","concat","undefined","action","i","icon","title","description","id","headerContent","bodyContent","setInteracting","renderedComponents","inProgress","component","componentId","showLoader","gjsModel","get","interactionApiInProgress","GrapesjsCanvas","_ref2","json","_ref2$mode","mode","setEditor","performInteraction","_ref2$newDataNotifier","newDataNotifier","editorRef","editorInstance","notificationHandler","props","newProps","newAttributes","model","parsedNewProps","pagination","performInteractionWrapper","_x","_performInteractionWrapper","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","payload","_editorInstance$curre","updatedJson","result","wrap","_callee$","_context","prev","next","current","store","sent","affectedComponents","_ref4","key","abrupt","finish","stop","_json$pages","_json$pages$0$frames","destroy","currentMode","init","container","height","plugins","storageManager","richTextEditor","canvas","customBadgeLabel","tagName","on","canvasHead","Canvas","getDocument","head","document","createElement","fullCss","innerHTML","setAttribute","appendChild","_ref3","DomComponents","getType","addType","defaults","view","pages","length","frames","raw","processed","setComponents","cssText","styles","setStyle","Fragment","children","ref"],"sources":["../src/GrapesjsCanvas.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef } 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';\nimport { TypesToRegister } from './constants';\nimport { toKebabCase } from './helpers';\nimport { createGrapesjsShadcnGenericPlugin } from './plugins/grapejs-plugin';\nimport { StyledEditor } from './index.styles';\nimport { tailwindCompiledCss } from './helpers/css';\nimport { datePickerCss } from './helpers/date-picker';\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};\n\nfunction setComponentProperties(editor: Editor, isPreview: boolean) {\n function setPropertiesRecursively(comp: Component) {\n comp.set({\n editable: !isPreview,\n draggable: !isPreview,\n droppable: !isPreview && comp.getName() !== 'Shadcn-generic',\n selectable: !isPreview,\n hoverable: !isPreview,\n highlightable: !isPreview,\n copyable: false,\n resizable: false,\n removable: !isPreview,\n badgable: false,\n });\n\n if (!isPreview) {\n comp.set('toolbar', [\n { attributes: { class: 'fa fa-arrows' }, command: 'tlb-move' },\n { attributes: { class: 'fa fa-trash' }, command: 'tlb-delete' },\n ]);\n }\n\n comp.components().forEach(setPropertiesRecursively);\n }\n\n if (isPreview) {\n editor.runCommand('core:preview');\n } else {\n editor.stopCommand('core:preview');\n }\n\n const wrapper = editor.getWrapper();\n wrapper?.find('*').forEach(setPropertiesRecursively);\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 expandActions(node: any): any {\n if (\n node.type === 'shadcn-generic' &&\n node.componentName === 'Actions' &&\n Array.isArray(node.componentProps?.actions)\n ) {\n const { actions } = node.componentProps;\n\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 const { icon, title, description } = action;\n\n return {\n id: `${node.id}--action-card-${i}`,\n type: 'shadcn-generic',\n componentName: 'ActionCard',\n badgable: false,\n copyable: false,\n componentProps: {\n icon,\n headerContent: title,\n bodyContent: description,\n },\n };\n }),\n };\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 GrapesjsCanvas({\n json,\n mode = 'preview',\n setEditor,\n performInteraction,\n newDataNotifier = () => {},\n}: GrapesjsCanvasProps) {\n const editorRef = useRef<HTMLDivElement>(null);\n const editorInstance = useRef<any>(null);\n const renderedComponents: Record<string, Component> = {};\n\n function notificationHandler(props: Parameters<NotificationHandler>[0]): ReturnType<NotificationHandler> {\n if (!props) {\n return true;\n }\n\n const {\n componentId,\n newProps,\n newAttributes,\n } = props;\n const model = renderedComponents[componentId];\n\n if (!model) {\n return false;\n }\n\n const parsedNewProps = {\n ...newProps,\n };\n\n if (newProps.pagination) {\n parsedNewProps.pagination = {\n ...(model.get('componentProps').pagination || {}),\n ...newProps.pagination,\n }\n }\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...parsedNewProps,\n });\n\n model.set('attributes', {\n ...model.get('attributes'),\n ...newAttributes,\n });\n\n return true;\n }\n\n useEffect(() => {\n newDataNotifier(notificationHandler);\n }, []);\n\n async function performInteractionWrapper(payload: Record<string, any>) {\n const updatedJson = await editorInstance.current?.store();\n setInteracting(renderedComponents, payload.affectedComponents, true);\n\n try {\n const result = await performInteraction({\n ...payload,\n json: updatedJson,\n });\n\n Object.entries(result || {}).forEach(([key, value]) => {\n const model = renderedComponents[key];\n\n if (model) {\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...value,\n });\n }\n });\n\n return result;\n } finally {\n setInteracting(renderedComponents, payload.affectedComponents, false);\n }\n }\n\n useEffect(() => {\n if (!editorRef.current) {\n return () => {\n // Cleanup if editorRef is not available\n };\n }\n\n if (editorInstance.current) {\n editorInstance.current.destroy();\n editorInstance.current = null;\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 currentMode,\n performInteractionWrapper,\n renderedComponents,\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 // Tailwind CSS rules aren't fully added to our component\n // So, adding them from here!\n editor.on('load', () => {\n const canvasHead = editor.Canvas.getDocument().head;\n const style = document.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 `;\n style.innerHTML = fullCss;\n style.setAttribute('type', 'text/css');\n canvasHead.appendChild(style);\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 if (json && json.pages?.length > 0 && json.pages[0].frames?.length > 0) {\n const raw = json.pages[0].frames[0].component;\n const processed = expandActions(raw);\n editor.setComponents(processed);\n\n const cssText = convertStyles(json.styles || []);\n editor.setStyle(cssText);\n }\n\n editor.on('load', () => {\n setComponentProperties(editor, mode === 'preview');\n });\n\n return () => {\n editor.destroy();\n };\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n }, [json, mode]);\n\n return (\n <React.Fragment>\n <StyledEditor />\n <div ref={editorRef} id=\"grapesjs-editor\" />\n </React.Fragment>\n );\n}\n\nexport default GrapesjsCanvas;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"GrapesjsCanvas.js","names":["React","useEffect","useRef","grapesjs","tailwind","TypesToRegister","toKebabCase","createGrapesjsShadcnGenericPlugin","StyledEditor","tailwindCompiledCss","datePickerCss","jsx","_jsx","jsxs","_jsxs","setComponentProperties","editor","isPreview","setPropertiesRecursively","comp","set","editable","draggable","droppable","getName","selectable","hoverable","highlightable","copyable","resizable","removable","badgable","attributes","command","components","forEach","runCommand","stopCommand","wrapper","getWrapper","find","convertStyles","stylesArray","map","block","selectors","Array","isArray","join","declarations","Object","entries","style","_ref","prop","value","expandActions","node","_node$componentProps","type","componentName","componentProps","actions","_extends","classes","concat","undefined","action","i","icon","title","description","id","headerContent","bodyContent","setInteracting","renderedComponents","inProgress","component","componentId","showLoader","gjsModel","get","interactionApiInProgress","GrapesjsCanvas","_ref2","json","_ref2$mode","mode","setEditor","performInteraction","_ref2$newDataNotifier","newDataNotifier","editorRef","editorInstance","notificationHandler","props","newProps","newAttributes","model","current","parsedNewProps","pagination","performInteractionWrapper","_x","_performInteractionWrapper","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","payload","_editorInstance$curre","updatedJson","result","wrap","_callee$","_context","prev","next","store","sent","affectedComponents","_ref4","key","abrupt","finish","stop","_json$pages","_json$pages$0$frames","destroy","currentMode","init","container","height","plugins","storageManager","richTextEditor","canvas","customBadgeLabel","tagName","on","canvasHead","Canvas","getDocument","head","document","createElement","fullCss","innerHTML","setAttribute","appendChild","_ref3","DomComponents","getType","addType","defaults","view","pages","length","frames","raw","processed","setComponents","cssText","styles","setStyle","Fragment","children","ref"],"sources":["../src/GrapesjsCanvas.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef } 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';\nimport { TypesToRegister } from './constants';\nimport { toKebabCase } from './helpers';\nimport { createGrapesjsShadcnGenericPlugin } from './plugins/grapejs-plugin';\nimport { StyledEditor } from './index.styles';\nimport { tailwindCompiledCss } from './helpers/css';\nimport { datePickerCss } from './helpers/date-picker';\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};\n\nfunction setComponentProperties(editor: Editor, isPreview: boolean) {\n function setPropertiesRecursively(comp: Component) {\n comp.set({\n editable: !isPreview,\n draggable: !isPreview,\n droppable: !isPreview && comp.getName() !== 'Shadcn-generic',\n selectable: !isPreview,\n hoverable: !isPreview,\n highlightable: !isPreview,\n copyable: false,\n resizable: false,\n removable: !isPreview,\n badgable: false,\n });\n\n if (!isPreview) {\n comp.set('toolbar', [\n { attributes: { class: 'fa fa-arrows' }, command: 'tlb-move' },\n { attributes: { class: 'fa fa-trash' }, command: 'tlb-delete' },\n ]);\n }\n\n comp.components().forEach(setPropertiesRecursively);\n }\n\n if (isPreview) {\n editor.runCommand('core:preview');\n } else {\n editor.stopCommand('core:preview');\n }\n\n const wrapper = editor.getWrapper();\n wrapper?.find('*').forEach(setPropertiesRecursively);\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 expandActions(node: any): any {\n if (\n node.type === 'shadcn-generic' &&\n node.componentName === 'Actions' &&\n Array.isArray(node.componentProps?.actions)\n ) {\n const { actions } = node.componentProps;\n\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 const { icon, title, description } = action;\n\n return {\n id: `${node.id}--action-card-${i}`,\n type: 'shadcn-generic',\n componentName: 'ActionCard',\n badgable: false,\n copyable: false,\n componentProps: {\n icon,\n headerContent: title,\n bodyContent: description,\n },\n };\n }),\n };\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 GrapesjsCanvas({\n json,\n mode = 'preview',\n setEditor,\n performInteraction,\n newDataNotifier = () => {},\n}: GrapesjsCanvasProps) {\n const editorRef = useRef<HTMLDivElement>(null);\n const editorInstance = useRef<any>(null);\n const renderedComponents = useRef<Record<string, Component>>({});\n\n function notificationHandler(props: Parameters<NotificationHandler>[0]): ReturnType<NotificationHandler> {\n if (!props) {\n return true;\n }\n\n const {\n componentId,\n newProps,\n newAttributes,\n } = props;\n const model = renderedComponents.current[componentId];\n\n if (!model) {\n return false;\n }\n\n const parsedNewProps = {\n ...newProps,\n };\n\n if (newProps.pagination) {\n parsedNewProps.pagination = {\n ...(model.get('componentProps').pagination || {}),\n ...newProps.pagination,\n }\n }\n\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...parsedNewProps,\n });\n\n model.set('attributes', {\n ...model.get('attributes'),\n ...newAttributes,\n });\n\n return true;\n }\n\n useEffect(() => {\n newDataNotifier(notificationHandler);\n }, []);\n\n async function performInteractionWrapper(payload: Record<string, any>) {\n const updatedJson = await editorInstance.current?.store();\n setInteracting(renderedComponents.current, payload.affectedComponents, true);\n\n try {\n const result = await performInteraction({\n ...payload,\n json: updatedJson,\n });\n\n Object.entries(result || {}).forEach(([key, value]) => {\n const model = renderedComponents.current[key];\n\n if (model) {\n model.set('componentProps', {\n ...model.get('componentProps'),\n ...value,\n });\n }\n });\n\n return result;\n } finally {\n setInteracting(renderedComponents.current, payload.affectedComponents, false);\n }\n }\n\n useEffect(() => {\n if (!editorRef.current) {\n return () => {\n // Cleanup if editorRef is not available\n };\n }\n\n if (editorInstance.current) {\n editorInstance.current.destroy();\n editorInstance.current = null;\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 currentMode,\n performInteractionWrapper,\n renderedComponents.current,\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 // Tailwind CSS rules aren't fully added to our component\n // So, adding them from here!\n editor.on('load', () => {\n const canvasHead = editor.Canvas.getDocument().head;\n const style = document.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 `;\n style.innerHTML = fullCss;\n style.setAttribute('type', 'text/css');\n canvasHead.appendChild(style);\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 if (json && json.pages?.length > 0 && json.pages[0].frames?.length > 0) {\n const raw = json.pages[0].frames[0].component;\n const processed = expandActions(raw);\n editor.setComponents(processed);\n\n const cssText = convertStyles(json.styles || []);\n editor.setStyle(cssText);\n }\n\n editor.on('load', () => {\n setComponentProperties(editor, mode === 'preview');\n });\n\n return () => {\n editor.destroy();\n };\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n }, [json, mode]);\n\n return (\n <React.Fragment>\n <StyledEditor />\n <div ref={editorRef} id=\"grapesjs-editor\" />\n </React.Fragment>\n );\n}\n\nexport default GrapesjsCanvas;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@peak-ai/canvas",
3
3
  "author": "squad-builder-experience",
4
4
  "license": "UNLICENSED",
5
- "version": "1.4.8",
5
+ "version": "1.4.9-rc.3",
6
6
  "description": "",
7
7
  "dependencies": {
8
8
  "@emotion/react": "^11.11.4",
@@ -5,6 +5,6 @@ import*as domutil from"recharts/lib/util/DOMUtils";import{TooltipButton}from"../
5
5
  import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";domutil.getOffset=function(el){var html=el.ownerDocument.documentElement;var box={top:0,left:0};if(typeof el.getBoundingClientRect!=="undefined"){box=el.getBoundingClientRect()}var iframe=document.querySelector(".gjs-frame");var iframeWindow=iframe==null?void 0:iframe.contentWindow;return{top:box.top+iframeWindow.pageYOffset-html.clientTop,left:box.left+iframeWindow.pageXOffset-html.clientLeft}};var baseColors=[[theme.colors.Blue_100,theme.colors.Blue_30],[theme.colors.Purpley_100,theme.colors.Purpley_30],[theme.colors.Light_Bluish_Green,"#06601b"],[theme.colors.Wild_Strawberry,"#4d001c"]];var iconMap={"TrendingUp":/*#__PURE__*/_jsx(TrendingUp,{}),"TrendingDown":/*#__PURE__*/_jsx(TrendingDown,{}),"ShoppingCart":/*#__PURE__*/_jsx(ShoppingCart,{}),"Equalizer":/*#__PURE__*/_jsx(ChartBarBig,{}),"Style":/*#__PURE__*/_jsx(Tag,{}),"Place":/*#__PURE__*/_jsx(MapPin,{})};function getIconFromString(iconString){if(!iconString){return null}if(iconMap[iconString]){return iconMap[iconString]}var lowerIconString=iconString.toLowerCase();var matchingKey=Object.keys(iconMap).find(function(key){return key.toLowerCase()===lowerIconString});if(matchingKey){return iconMap[matchingKey]}return null}function getNColors(n){var colors=[];for(var _iterator=_createForOfIteratorHelperLoose(baseColors),_step;!(_step=_iterator()).done;){var baseColor=_step.value;// eslint-disable-next-line import/no-named-as-default-member
6
6
  colors.push(chroma.scale(baseColor).mode("lab").colors(n))}function getOneColor(existing){var color=null;do{var base=colors[Math.floor(Math.random()*colors.length)];var selectedColorIndex=Math.floor(Math.random()*base.length);color=base[selectedColorIndex]}while(existing.includes(color));return color}var selectedColors=[];for(var i=0;i<n;i++){selectedColors.push(getOneColor(selectedColors))}return selectedColors}/* TODO: Loader remains */export function renderActionCard(props){var gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded);var _useState=useState(_extends({},props)),allData=_useState[0],setAllData=_useState[1];var _allData$headerConten=allData.headerContent,headerContent=_allData$headerConten===void 0?"Default action card title":_allData$headerConten,icon=allData.icon,_allData$bodyContent=allData.bodyContent,bodyContent=_allData$bodyContent===void 0?"Default body content. Click to edit.":_allData$bodyContent;var _useState2=useState(_extends({},gjsModel.get("attributes"))),setAttributes=_useState2[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var defaultClasses="text-black p-4 rounded-lg shadow border flex flex-col h-full";return/*#__PURE__*/_jsx(Card,_extends({className:defaultClasses,style:{background:"linear-gradient(0deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4)), linear-gradient(90.01deg, rgba(255, 255, 255, 0.4) -36.34%, rgba(42, 68, 212, 0.9) 218.89%)"},isEditable:false,contentEditable:false},rest,{children:/*#__PURE__*/_jsx(CardContent,{className:"p-0",isEditable:false,contentEditable:false,children:/*#__PURE__*/_jsx("div",{className:"px-4 py-3",children:/*#__PURE__*/_jsxs("div",{className:"flex items-start flex-col",children:[/*#__PURE__*/_jsxs("div",{className:"flex items-center justify-between w-full",children:[/*#__PURE__*/_jsx("div",{className:"text-xl font-semibold",children:headerContent}),/*#__PURE__*/_jsx("div",{className:"text-5xl ml-2 flex items-center","aria-hidden":"true",children:getIconFromString(icon)})]}),/*#__PURE__*/_jsx("div",{className:"w-full mt-1",children:!bodyContent?/*#__PURE__*/_jsxs("span",{className:"flex flex-row items-center px-3 py-2",children:[/*#__PURE__*/_jsx(CircleAlert,{className:"w-3 h-3 text-gray-400 mr-1"}),/*#__PURE__*/_jsx("p",{className:"text-sm text-gray-500 max-w-md text-center",children:"No data available for given filters"})]}):/*#__PURE__*/_jsx("div",{className:"text-base leading-relaxed",children:bodyContent})})]})})})}))}export function renderCard(props){var _props$isEditable=props.isEditable,isEditable=_props$isEditable===void 0?false:_props$isEditable,gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded2);var _useState3=useState(_extends({},props)),allData=_useState3[0],setAllData=_useState3[1];var headerContent=allData.headerContent,headerDescription=allData.headerDescription,bodyContent=allData.bodyContent,footerContent=allData.footerContent,footerClass=allData.footerClass,footerIcon=allData.footerIcon,contentMetadata=allData.contentMetadata,contentMetadataClass=allData.contentMetadataClass,className=allData.className;var _useState4=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState4[0],setAttributes=_useState4[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var defaultClasses="bg-white text-black p-4 rounded-lg border flex flex-col h-full shadow-none";var defaultFooterClasses=footerContent?"text-sm bg-pink-50 text-pink-900 shadow-sm":"text-sm";var defaultContentMetadataClasses="text-xs";var mergedCardClassName=className?cn(defaultClasses,className):defaultClasses;var mergedFooterClassName=footerClass?cn(defaultFooterClasses,footerClass):defaultFooterClasses;var mergedContentMetadataClassName=contentMetadataClass?cn(defaultContentMetadataClasses,contentMetadataClass):defaultContentMetadataClasses;function getCardContent(){if(attributes.interactionApiInProgress||attributes.loading){return/*#__PURE__*/_jsx(CardContent,{children:/*#__PURE__*/_jsx(CardLoader,{})})}return/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"headerContent",contentEditable:isEditable,className:"text-lg",children:headerContent}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"headerDescription",contentEditable:isEditable,className:"text-sm",children:headerDescription})]}),!bodyContent?/*#__PURE__*/_jsxs("span",{className:"flex flex-row items-center px-3 py-2",children:[/*#__PURE__*/_jsx(CircleAlert,{className:"w-3 h-3 text-gray-400 mr-1"}),/*#__PURE__*/_jsx("p",{className:"text-sm text-gray-500 max-w-md text-center",children:"No data available for given filters"})]}):/*#__PURE__*/_jsxs(CardContent,{"data-slot":"bodyContent",contentEditable:false,className:"flex-grow",children:[/*#__PURE__*/_jsx("div",{className:"text-3xl font-semibold truncate",children:bodyContent}),contentMetadata&&/*#__PURE__*/_jsx("div",{className:mergedContentMetadataClassName,style:{color:"#2A44D4"},children:contentMetadata})]}),/*#__PURE__*/_jsxs(CardFooter,{"data-slot":"footerContent",contentEditable:isEditable,className:cn(mergedFooterClassName),children:[footerIcon&&/*#__PURE__*/_jsx("span",{className:"mr-2","aria-hidden":"true",children:footerIcon}),footerContent]})]})}return/*#__PURE__*/_jsx(Card,_extends({},rest,{className:mergedCardClassName,children:getCardContent()}))}function renderChartComponent(chartType,data,config){if(!data||data.length===0){return renderNoDataFallback()}switch(chartType){case"pie":return/*#__PURE__*/_jsxs(PieChart,{children:[data.length>=20&&/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{hideLabel:true})}),/*#__PURE__*/_jsx(Pie,{data:data,dataKey:config.dataKey,nameKey:config.nameKey,innerRadius:60,strokeWidth:10,label:data.length<20?function(_ref){var name=_ref.name,percent=_ref.percent;return name+": "+(percent*100).toFixed(0)+"%"}:undefined,labelLine:false})]});case"bar":config.dataKeys=config.dataKeys||[];return/*#__PURE__*/_jsxs(BarChart,_extends({data:data},config.chartUi,{children:[/*#__PURE__*/_jsx(CartesianGrid,{vertical:false}),/*#__PURE__*/_jsx(XAxis,{dataKey:config.xAxis}),/*#__PURE__*/_jsx(YAxis,{}),/*#__PURE__*/_jsx(Legend,{align:"left",wrapperStyle:{marginLeft:20}}),config.dataKeys.map(function(_ref2){var key=_ref2.key,name=_ref2.name,color=_ref2.color;return/*#__PURE__*/_jsx(Bar,{dataKey:key,fill:color!=null?color:"#4caf50",name:name,radius:2},key)}),/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{indicator:"dashed"})})]}));case"line":config.dataKeys=config.dataKeys||[];return/*#__PURE__*/_jsxs(LineChart,_extends({data:data},config.chartUi,{children:[/*#__PURE__*/_jsx(CartesianGrid,{vertical:false}),/*#__PURE__*/_jsx(XAxis,{dataKey:config.xAxis}),/*#__PURE__*/_jsx(YAxis,{}),/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{indicator:"dashed"})}),config.dataKeys.map(function(_ref3){var key=_ref3.key,name=_ref3.name,color=_ref3.color;return/*#__PURE__*/_jsx(Line,{type:"monotone",dataKey:key,stroke:color!=null?color:"#4caf50",name:name},key)}),/*#__PURE__*/_jsx(Legend,{align:"left"})]}));default:return/*#__PURE__*/_jsxs(PieChart,{children:[data.length>=20&&/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{hideLabel:true})}),/*#__PURE__*/_jsx(Pie,{data:data,dataKey:config.dataKey,nameKey:config.nameKey,innerRadius:60,strokeWidth:10,label:data.length<20?function(_ref4){var name=_ref4.name,percent=_ref4.percent;return name+": "+(percent*100).toFixed(0)+"%"}:undefined,labelLine:false})]})}}export function renderChart(props){var _props$isEditable2=props.isEditable,isEditable=_props$isEditable2===void 0?false:_props$isEditable2,gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded3);var _useState5=useState(_extends({},props)),allData=_useState5[0],setAllData=_useState5[1];var _useState6=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState6[0],setAttributes=_useState6[1];var containerRef=useRef(null);var _useState7=useState(0),containerWidth=_useState7[0],setContainerWidth=_useState7[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);useEffect(function(){var updateContainerWidth=function updateContainerWidth(){if(containerRef.current){setContainerWidth(containerRef.current.offsetWidth)}};updateContainerWidth();window.addEventListener("resize",updateContainerWidth);return function(){return window.removeEventListener("resize",updateContainerWidth)}},[]);var _allData$config=allData.config,config=_allData$config===void 0?{}:_allData$config,_allData$chartType=allData.chartType,chartType=_allData$chartType===void 0?"pie":_allData$chartType,_allData$chartData=allData.chartData,chartData=_allData$chartData===void 0?[]:_allData$chartData,className=allData.className,_allData$title=allData.title,title=_allData$title===void 0?"Title":_allData$title,_allData$subTitle=allData.subTitle,subTitle=_allData$subTitle===void 0?"Subtitle":_allData$subTitle;var defaultClasses="aspect-auto h-[250px] w-full";var mergedClasses=className?cn(defaultClasses,className):defaultClasses;if(chartType==="pie"){var colors=getNColors(chartData.length);for(var i=0;i<chartData.length;i++){var data=chartData[i];if(!data.fill){data.fill=colors[i]}}}else if(!config.color){config.color=baseColors[Math.floor(Math.random()*baseColors.length)]}var width=undefined;var totalDataPoints=0;// Helper function to get responsive config
7
7
  var getResponsiveConfig=function getResponsiveConfig(){if(chartType==="bar"&&totalDataPoints>15&&containerWidth>0&&width&&width<=containerWidth){// If chart fits in container, use responsive behavior
8
- return _extends({},config,{chartUi:{}})}return config};if(chartType==="bar"){config.dataKeys=config.dataKeys||[];totalDataPoints=chartData.length*Math.max(1,config.dataKeys.length);if(totalDataPoints>15){width=totalDataPoints*20+config.dataKeys.length*8*chartData.length+chartData.length*15;config.chartUi={barCategoryGap:"10%",width:width}}else{config.chartUi={}}}else if(chartType==="line"){config.dataKeys=config.dataKeys||[];totalDataPoints=chartData.length;if(totalDataPoints>15){width=Math.max(800,totalDataPoints*20);config.chartUi={width:width}}else{config.chartUi={}}}var chartUi=attributes.interactionApiInProgress||attributes.loading?/*#__PURE__*/_jsx(ChartLoader,{}):!chartData?renderNoDataFallback():/*#__PURE__*/_jsx(React.Fragment,{children:(chartType==="bar"||chartType==="line")&&totalDataPoints>15&&width&&(containerWidth===0||width>containerWidth)?/*#__PURE__*/_jsx("div",{className:"w-full h-[250px]",children:/*#__PURE__*/_jsxs(ScrollArea,{className:"w-full h-full",children:[/*#__PURE__*/_jsx("div",{style:{minWidth:width+"px",width:"max-content",height:"250px"},children:/*#__PURE__*/_jsx(ResponsiveContainer,{width:width,height:250,children:/*#__PURE__*/_jsx(ChartContainer,_extends({},rest,{config:config,className:mergedClasses,children:renderChartComponent(chartType,chartData,config)}))})}),/*#__PURE__*/_jsx(ScrollBar,{orientation:"horizontal"})]})}):/*#__PURE__*/_jsx(ResponsiveContainer,{width:"100%",height:250,children:/*#__PURE__*/_jsx(ChartContainer,_extends({},rest,{config:getResponsiveConfig(),className:mergedClasses,children:renderChartComponent(chartType,chartData,getResponsiveConfig())}))})});return/*#__PURE__*/_jsxs(Card,{className:"shadow border mt-2 mb-2",children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"title",contentEditable:isEditable,className:"text-2xl",children:title}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"subTitle",contentEditable:isEditable,className:"text-sm",children:subTitle})]}),/*#__PURE__*/_jsx(CardContent,{ref:containerRef,"data-slot":"bodyContent",contentEditable:false,className:"px-6",children:chartUi})]})}export function renderTable(props){var gjsModel=props.gjsModel,_props$performInterac=props.performInteraction,performInteraction=_props$performInterac===void 0?function(){}:_props$performInterac,rest=_objectWithoutPropertiesLoose(props,_excluded4);var _useState8=useState(_extends({},props)),allData=_useState8[0],setAllData=_useState8[1];var cardRef=useRef(null);var _useState9=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState9[0],setAttributes=_useState9[1];var rawData=allData.data,_allData$headerMapper=allData.headerMapper,rawHeaderMapper=_allData$headerMapper===void 0?{}:_allData$headerMapper,className=allData.className,_allData$isEditable=allData.isEditable,isEditable=_allData$isEditable===void 0?false:_allData$isEditable,_allData$title2=allData.title,title=_allData$title2===void 0?"Title":_allData$title2,_allData$subTitle2=allData.subTitle,subTitle=_allData$subTitle2===void 0?"Subtitle":_allData$subTitle2,_allData$actions=allData.actions,actions=_allData$actions===void 0?[]:_allData$actions,pagination=allData.pagination;var data=Array.isArray(rawData)?rawData:[];var headerMapper=function(){var cleaned=_extends({},rawHeaderMapper);if("id"in cleaned){delete cleaned.id}if(data.length>0){var dataKeys=Object.keys(data[0]||{});return Object.fromEntries(Object.entries(cleaned).filter(function(_ref5){var key=_ref5[0];return dataKeys.includes(key)}))}return cleaned}();var sortConfig=function(_gjsModel$get,_ref7){var _ref6=(_gjsModel$get=gjsModel.get("componentProps"))!=null?_gjsModel$get:{},sortColumn=_ref6.sortColumn,sortDirection=_ref6.sortDirection;return sortColumn&&sortDirection?(_ref7={},_ref7[sortColumn]=sortDirection,_ref7):{}}();var _useState0=useState(0),viewportWidth=_useState0[0],setViewportWidth=_useState0[1];var _useState1=useState(250),scrollAreaHeight=_useState1[0],setScrollAreaHeight=_useState1[1];var calculateTableHeight=function calculateTableHeight(tableWidth,rowCount){if(viewportWidth>0){var _gjsModel$collection;var widthRatio=tableWidth/viewportWidth;var baseTableHeight=250;var targetScrollAreaHeight=baseTableHeight;if(widthRatio>=0.8){var headerHeight=48;var rowHeight=40;var calculatedHeight=headerHeight+rowCount*rowHeight;targetScrollAreaHeight=Math.min(calculatedHeight,baseTableHeight)}var tableId=gjsModel.get("id");var editor=gjsModel.em||((_gjsModel$collection=gjsModel.collection)==null?void 0:_gjsModel$collection.em);var canvasDocument=editor.Canvas.getDocument()||document;var tableElement=canvasDocument.querySelector("[data-table-id=\""+tableId+"\"]");if(tableElement){var headerElement=tableElement.querySelector("[data-slot=\"card-header\"]");if(headerElement&&headerElement.offsetHeight>0){var actualHeaderHeight=headerElement.offsetHeight;var standardHeaderHeight=58;var heightDifference=actualHeaderHeight-standardHeaderHeight;if(heightDifference>0){targetScrollAreaHeight=targetScrollAreaHeight-heightDifference}}}setScrollAreaHeight(targetScrollAreaHeight)}};useEffect(function(){var updateViewportWidth=function updateViewportWidth(){var iframe=document.querySelector(".gjs-frame");var iframeWindow=iframe==null?void 0:iframe.contentWindow;var iframeDocument=iframeWindow==null?void 0:iframeWindow.document;if(iframeDocument){var dashboardRoot=iframeDocument.getElementById("dashboard-root");var effectiveViewportWidth=(dashboardRoot==null?void 0:dashboardRoot.clientWidth)||iframeDocument.documentElement.clientWidth;setViewportWidth(effectiveViewportWidth)}};updateViewportWidth();window.addEventListener("resize",updateViewportWidth);var iframe=document.querySelector(".gjs-frame");var iframeWindow=iframe==null?void 0:iframe.contentWindow;if(iframeWindow){iframeWindow.addEventListener("resize",updateViewportWidth)}return function(){window.removeEventListener("resize",updateViewportWidth);if(iframeWindow){iframeWindow.removeEventListener("resize",updateViewportWidth)}}},[]);useEffect(function(){var updateTableWidthAndApplyCSS=function updateTableWidthAndApplyCSS(){var _gjsModel$collection2;var tableId=gjsModel.get("id");var editor=gjsModel.em||((_gjsModel$collection2=gjsModel.collection)==null?void 0:_gjsModel$collection2.em);var canvasDocument=editor.Canvas.getDocument()||document;var tableElement=canvasDocument.querySelector("[data-table-id=\""+tableId+"\"]");if(!tableElement&&window.parent!==window){tableElement=window.parent.document.querySelector("[data-table-id=\""+tableId+"\"]")}if(!tableElement){return}var tableActualWidth=tableElement.getBoundingClientRect().width;if(tableActualWidth>0){calculateTableHeight(tableActualWidth,data.length)}};var timeoutId=setTimeout(updateTableWidthAndApplyCSS,150);window.addEventListener("resize",updateTableWidthAndApplyCSS);return function(){clearTimeout(timeoutId);window.removeEventListener("resize",updateTableWidthAndApplyCSS)}},[allData,gjsModel,viewportWidth,data,calculateTableHeight]);useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var parsedData=function(){if(typeof data==="object"&&data!==null&&!Array.isArray(data)&&data.name==="__peak_placeholder"){return[]}if(!Array.isArray(data)){return[]}return data.map(function(datum){var newData=_extends({},datum);delete newData.id;return newData})}();function onRowAction(_x,_x2){return _onRowAction.apply(this,arguments)}function _onRowAction(){_onRowAction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(rowIndex,actionId){var id;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:id=gjsModel.get("id");_context.next=3;return performInteraction({id:actionId,interactionType:"tableButton",payload:{row:data[rowIndex],tableId:id},affectedComponents:[]});case 3:case"end":return _context.stop()}},_callee)}));return _onRowAction.apply(this,arguments)}function onPageChange(_x3,_x4){return _onPageChange.apply(this,arguments)}function _onPageChange(){_onPageChange=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(pageNumber,pageSize){var _gjsModel$get2;var id,_ref8,sortColumn,sortDirection;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:id=gjsModel.get("id");_ref8=(_gjsModel$get2=gjsModel.get("componentProps"))!=null?_gjsModel$get2:{},sortColumn=_ref8.sortColumn,sortDirection=_ref8.sortDirection;_context2.next=4;return performInteraction({id:id,interactionType:"pagination",payload:_extends({pageNumber:pageNumber,pageSize:pageSize},sortColumn&&sortDirection&&{sortColumn:sortColumn,sortDirection:sortDirection}),affectedComponents:getAffectedComponentsWithLoader([id],true)});case 4:case"end":return _context2.stop()}},_callee2)}));return _onPageChange.apply(this,arguments)}function handleSort(_x5,_x6){return _handleSort.apply(this,arguments)}function _handleSort(){_handleSort=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(column,direction){var currentProps,id;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:currentProps=gjsModel.get("componentProps");id=gjsModel.get("id");gjsModel.set("componentProps",_extends({},currentProps,{sortColumn:direction?column:null,sortDirection:direction}));_context3.next=5;return performInteraction({id:id,interactionType:"tableSort",payload:{sortColumn:direction?column:null,sortDirection:direction,tableId:id},affectedComponents:getAffectedComponentsWithLoader([id],true)});case 5:case"end":return _context3.stop()}},_callee3)}));return _handleSort.apply(this,arguments)}return/*#__PURE__*/_jsxs(Card,{ref:cardRef,className:"shadow border flex flex-col h-fit overflow-hidden","data-component-type":"table","data-table-id":gjsModel.get("id"),children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"title",contentEditable:isEditable,className:"text-2xl",children:title}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"subTitle",contentEditable:isEditable,className:"text-sm",children:subTitle})]}),/*#__PURE__*/_jsx(CardContent,{"data-slot":"bodyContent",contentEditable:false,className:"flex-1 flex flex-col overflow-hidden",children:/*#__PURE__*/_jsx(DataTable,{data:parsedData,headerMapper:headerMapper,className:className,isEditable:isEditable,actions:actions,pagination:pagination,isLoading:attributes.interactionApiInProgress,onRowAction:onRowAction,onPageChange:onPageChange,onSort:handleSort,sortConfig:sortConfig,otherProps:rest,height:scrollAreaHeight})})]})}export function renderTab(props){var tabsWidth=157;if(props.tabs.length>4){tabsWidth=157}return/*#__PURE__*/_jsxs(Tabs,{defaultValue:props.defaultValue,children:[/*#__PURE__*/_jsx("div",{className:"text-center mb-4",children:/*#__PURE__*/_jsx(TabsList,{className:"bg-[#F9F9FE] border border-[#D4D5DE] p-1 rounded-lg h-auto",children:props.tabs.map(function(tab){return/*#__PURE__*/_jsx(TabsTrigger,{value:tab,className:"\n w-["+tabsWidth+"px] h-[38px] gap-1 px-3 py-[11px]\n font-medium text-sm leading-4 \n border-0 bg-[#F9F9FE] text-[#687387] rounded-none\n data-[state=active]:border data-[state=active]:border-solid data-[state=active]:border-[#2A44D4] data-[state=active]:bg-[#EAECFB] data-[state=active]:text-[#263DBF] data-[state=active]:shadow-none data-[state=active]:rounded-md\n transition-all duration-200\n ",style:{fontFamily:"Helvetica Neue",fontWeight:500,fontSize:"14px",lineHeight:"16px",letterSpacing:"0%"},children:tab},tab)})})}),props.tabs.map(function(tab){return/*#__PURE__*/_jsx(TabsContent,{value:tab,className:"tabs-content"},tab)})]})}export function renderMarkdown(props){var gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded5);var _useState10=useState(_extends({},props)),allData=_useState10[0],setAllData=_useState10[1];var _useState11=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState11[0],setAttributes=_useState11[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var _useState12=useState(false),isEditing=_useState12[0],setIsEditing=_useState12[1];var editRef=useRef(null);var startEditing=function startEditing(){setIsEditing(true);setTimeout(function(){setupEditor()},0)};var setupEditor=function setupEditor(){if(!editRef.current){return}var editor=editRef.current;editor.innerHTML="";editor.textContent=allData.summaryText;editor.focus()};// Save changes and exit editing mode
9
- var saveChanges=function saveChanges(){if(!editRef.current){return}var content=editRef.current.innerText||"";setAllData(function(prev){return _extends({},prev,{summaryText:content})});setIsEditing(false);editRef.current.innerHTML=""};var markdownStyles={ul:{props:{className:"list-disc"}},h1:{props:{className:"text-4xl font-bold leading-[4rem]"}},h2:{props:{className:"text-3xl font-bold leading-[3rem]"}},h3:{props:{className:"text-2xl font-bold leading-[2rem]"}},h4:{props:{className:"text-xl font-bold leading-[2.5rem]"}},h5:{props:{className:"text-lg font-bold leading-[2.5rem]"}},h6:{props:{className:"text-base font-bold leading-[2rem]"}}};if(attributes.loading){return/*#__PURE__*/_jsx(MarkdownLoader,{})}if(!allData.isEditable){return/*#__PURE__*/_jsxs("div",_extends({className:"px-[1em]"},rest,{children:[/*#__PURE__*/_jsx("h3",{className:"text-xl font-semibold text-left",children:"Insights"}),/*#__PURE__*/_jsx("div",{"data-slot":"summaryText",children:/*#__PURE__*/_jsx(Markdown,{options:{overrides:markdownStyles},children:allData.summaryText})})]}))}return/*#__PURE__*/_jsxs("div",_extends({className:"p-[1em]"},rest,{children:[/*#__PURE__*/_jsx("h3",{className:"text-xl font-semibold text-left",children:"Insights"}),isEditing?/*#__PURE__*/_jsx("div",{ref:editRef,contentEditable:true,onBlur:saveChanges,"data-slot":"summaryText",className:"p-2 min-h-[100px] whitespace-pre-wrap",suppressContentEditableWarning:true,style:{whiteSpace:"pre-wrap",wordWrap:"break-word"}}):/*#__PURE__*/_jsx("div",{onClick:startEditing,"data-slot":"summaryText",style:{whiteSpace:"pre-wrap",wordWrap:"break-word"},children:/*#__PURE__*/_jsx(Markdown,{options:{overrides:markdownStyles},children:allData.summaryText})})]}))}export function renderButton(props){var _props$isEditable3=props.isEditable,isEditable=_props$isEditable3===void 0?false:_props$isEditable3,gjsModel=props.gjsModel,_props$performInterac2=props.performInteraction,performInteraction=_props$performInterac2===void 0?function(){}:_props$performInterac2;var _useState13=useState(_extends({},props)),allData=_useState13[0],setAllData=_useState13[1];var _useState14=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState14[0],setAttributes=_useState14[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var text=allData.text,className=allData.className,payload=allData.payload,_allData$variant=allData.variant,variant=_allData$variant===void 0?"default":_allData$variant,_allData$size=allData.size,size=_allData$size===void 0?"sm":_allData$size,affectedComponents=allData.affectedComponents,tooltipContent=allData.tooltipContent;function interact(){var id=gjsModel.get("id");performInteraction({id:id,interactionType:"button",affectedComponents:getAffectedComponentsWithLoader([id].concat(affectedComponents),true),payload:payload})}return/*#__PURE__*/_jsx(TooltipButton,{className:className,isEditable:isEditable,interact:interact,attributes:attributes,variant:variant,size:size,text:text,tooltipContent:tooltipContent})}var renderActionCardWithError=function renderActionCardWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderActionCard(props)})};var renderButtonWithError=function renderButtonWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderButton(props)})};var renderCardWithError=function renderCardWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderCard(props)})};var renderChartWithError=function renderChartWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderChart(props)})};var renderFilterWithError=function renderFilterWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderFilter(props)})};var renderMarkdownWithError=function renderMarkdownWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderMarkdown(props)})};var renderSearchWithError=function renderSearchWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderSearch(props)})};var renderTableWithError=function renderTableWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderTable(props)})};var renderTabWithError=function renderTabWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderTab(props)})};export function getRenderers(){return{ActionCard:renderActionCardWithError,Button:renderButtonWithError,Card:renderCardWithError,Chart:renderChartWithError,Filter:renderFilterWithError,Markdown:renderMarkdownWithError,Search:renderSearchWithError,Table:renderTableWithError,Tabs:renderTabWithError}}
8
+ return _extends({},config,{chartUi:{}})}return config};if(chartType==="bar"){config.dataKeys=config.dataKeys||[];totalDataPoints=chartData.length*Math.max(1,config.dataKeys.length);if(totalDataPoints>15){width=totalDataPoints*20+config.dataKeys.length*8*chartData.length+chartData.length*15;config.chartUi={barCategoryGap:"10%",width:width}}else{config.chartUi={}}}else if(chartType==="line"){config.dataKeys=config.dataKeys||[];totalDataPoints=chartData.length;if(totalDataPoints>15){width=Math.max(800,totalDataPoints*20);config.chartUi={width:width}}else{config.chartUi={}}}var chartUi=attributes.interactionApiInProgress||attributes.loading?/*#__PURE__*/_jsx(ChartLoader,{}):!chartData?renderNoDataFallback():/*#__PURE__*/_jsx(React.Fragment,{children:(chartType==="bar"||chartType==="line")&&totalDataPoints>15&&width&&(containerWidth===0||width>containerWidth)?/*#__PURE__*/_jsx("div",{className:"w-full h-[250px]",children:/*#__PURE__*/_jsxs(ScrollArea,{className:"w-full h-full",children:[/*#__PURE__*/_jsx("div",{style:{minWidth:width+"px",width:"max-content",height:"250px"},children:/*#__PURE__*/_jsx(ResponsiveContainer,{width:width,height:250,children:/*#__PURE__*/_jsx(ChartContainer,_extends({},rest,{config:config,className:mergedClasses,children:renderChartComponent(chartType,chartData,config)}))})}),/*#__PURE__*/_jsx(ScrollBar,{orientation:"horizontal"})]})}):/*#__PURE__*/_jsx(ResponsiveContainer,{width:"100%",height:250,children:/*#__PURE__*/_jsx(ChartContainer,_extends({},rest,{config:getResponsiveConfig(),className:mergedClasses,children:renderChartComponent(chartType,chartData,getResponsiveConfig())}))})});return/*#__PURE__*/_jsxs(Card,{className:"shadow border mt-2 mb-2",children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"title",contentEditable:isEditable,className:"text-2xl",children:title}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"subTitle",contentEditable:isEditable,className:"text-sm",children:subTitle})]}),/*#__PURE__*/_jsx(CardContent,{ref:containerRef,"data-slot":"bodyContent",contentEditable:false,className:"px-6",children:chartUi})]})}export function renderTable(props){var gjsModel=props.gjsModel,_props$performInterac=props.performInteraction,performInteraction=_props$performInterac===void 0?function(){}:_props$performInterac,rest=_objectWithoutPropertiesLoose(props,_excluded4);var _useState8=useState(_extends({},props)),allData=_useState8[0],setAllData=_useState8[1];var cardRef=useRef(null);var _useState9=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState9[0],setAttributes=_useState9[1];var rawData=allData.data,_allData$headerMapper=allData.headerMapper,rawHeaderMapper=_allData$headerMapper===void 0?{}:_allData$headerMapper,className=allData.className,_allData$isEditable=allData.isEditable,isEditable=_allData$isEditable===void 0?false:_allData$isEditable,_allData$title2=allData.title,title=_allData$title2===void 0?"Title":_allData$title2,_allData$subTitle2=allData.subTitle,subTitle=_allData$subTitle2===void 0?"Subtitle":_allData$subTitle2,_allData$actions=allData.actions,actions=_allData$actions===void 0?[]:_allData$actions,pagination=allData.pagination;var data=Array.isArray(rawData)?rawData:[];var headerMapper=function(){var cleaned=_extends({},rawHeaderMapper);if("id"in cleaned){delete cleaned.id}if(data.length>0){var dataKeys=Object.keys(data[0]||{});return Object.fromEntries(Object.entries(cleaned).filter(function(_ref5){var key=_ref5[0];return dataKeys.includes(key)}))}return cleaned}();var sortConfig=function(_gjsModel$get,_ref7){var _ref6=(_gjsModel$get=gjsModel.get("componentProps"))!=null?_gjsModel$get:{},sortColumn=_ref6.sortColumn,sortDirection=_ref6.sortDirection;return sortColumn&&sortDirection?(_ref7={},_ref7[sortColumn]=sortDirection,_ref7):{}}();var _useState10=useState(0),viewportWidth=_useState10[0],setViewportWidth=_useState10[1];var _useState11=useState(250),scrollAreaHeight=_useState11[0],setScrollAreaHeight=_useState11[1];var calculateTableHeight=function calculateTableHeight(tableWidth,rowCount){if(viewportWidth>0){var _gjsModel$collection;var widthRatio=tableWidth/viewportWidth;var baseTableHeight=250;var targetScrollAreaHeight=baseTableHeight;if(widthRatio>=0.8){var headerHeight=48;var rowHeight=40;var calculatedHeight=headerHeight+rowCount*rowHeight;targetScrollAreaHeight=Math.min(calculatedHeight,baseTableHeight)}var tableId=gjsModel.get("id");var editor=gjsModel.em||((_gjsModel$collection=gjsModel.collection)==null?void 0:_gjsModel$collection.em);var canvasDocument=editor.Canvas.getDocument()||document;var tableElement=canvasDocument.querySelector("[data-table-id=\""+tableId+"\"]");if(tableElement){var headerElement=tableElement.querySelector("[data-slot=\"card-header\"]");if(headerElement&&headerElement.offsetHeight>0){var actualHeaderHeight=headerElement.offsetHeight;var standardHeaderHeight=58;var heightDifference=actualHeaderHeight-standardHeaderHeight;if(heightDifference>0){targetScrollAreaHeight=targetScrollAreaHeight-heightDifference}}}setScrollAreaHeight(targetScrollAreaHeight)}};useEffect(function(){var updateViewportWidth=function updateViewportWidth(){var iframe=document.querySelector(".gjs-frame");var iframeWindow=iframe==null?void 0:iframe.contentWindow;var iframeDocument=iframeWindow==null?void 0:iframeWindow.document;if(iframeDocument){var dashboardRoot=iframeDocument.getElementById("dashboard-root");var effectiveViewportWidth=(dashboardRoot==null?void 0:dashboardRoot.clientWidth)||iframeDocument.documentElement.clientWidth;setViewportWidth(effectiveViewportWidth)}};updateViewportWidth();window.addEventListener("resize",updateViewportWidth);var iframe=document.querySelector(".gjs-frame");var iframeWindow=iframe==null?void 0:iframe.contentWindow;if(iframeWindow){iframeWindow.addEventListener("resize",updateViewportWidth)}return function(){window.removeEventListener("resize",updateViewportWidth);if(iframeWindow){iframeWindow.removeEventListener("resize",updateViewportWidth)}}},[]);useEffect(function(){var updateTableWidthAndApplyCSS=function updateTableWidthAndApplyCSS(){var _gjsModel$collection2;var tableId=gjsModel.get("id");var editor=gjsModel.em||((_gjsModel$collection2=gjsModel.collection)==null?void 0:_gjsModel$collection2.em);var canvasDocument=editor.Canvas.getDocument()||document;var tableElement=canvasDocument.querySelector("[data-table-id=\""+tableId+"\"]");if(!tableElement&&window.parent!==window){tableElement=window.parent.document.querySelector("[data-table-id=\""+tableId+"\"]")}if(!tableElement){return}var tableActualWidth=tableElement.getBoundingClientRect().width;if(tableActualWidth>0){calculateTableHeight(tableActualWidth,data.length)}};var timeoutId=setTimeout(updateTableWidthAndApplyCSS,150);window.addEventListener("resize",updateTableWidthAndApplyCSS);return function(){clearTimeout(timeoutId);window.removeEventListener("resize",updateTableWidthAndApplyCSS)}},[allData,gjsModel,viewportWidth,data,calculateTableHeight]);useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var parsedData=function(){if(typeof data==="object"&&data!==null&&!Array.isArray(data)&&data.name==="__peak_placeholder"){return[]}if(!Array.isArray(data)){return[]}return data.map(function(datum){var newData=_extends({},datum);delete newData.id;return newData})}();function onRowAction(_x,_x2){return _onRowAction.apply(this,arguments)}function _onRowAction(){_onRowAction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(rowIndex,actionId){var id;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:id=gjsModel.get("id");_context.next=3;return performInteraction({id:actionId,interactionType:"tableButton",payload:{row:data[rowIndex],tableId:id},affectedComponents:[]});case 3:case"end":return _context.stop()}},_callee)}));return _onRowAction.apply(this,arguments)}function onPageChange(_x3,_x4){return _onPageChange.apply(this,arguments)}function _onPageChange(){_onPageChange=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(pageNumber,pageSize){var _gjsModel$get2;var id,_ref8,sortColumn,sortDirection;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:id=gjsModel.get("id");_ref8=(_gjsModel$get2=gjsModel.get("componentProps"))!=null?_gjsModel$get2:{},sortColumn=_ref8.sortColumn,sortDirection=_ref8.sortDirection;_context2.next=4;return performInteraction({id:id,interactionType:"pagination",payload:_extends({pageNumber:pageNumber,pageSize:pageSize},sortColumn&&sortDirection&&{sortColumn:sortColumn,sortDirection:sortDirection}),affectedComponents:getAffectedComponentsWithLoader([id],true)});case 4:case"end":return _context2.stop()}},_callee2)}));return _onPageChange.apply(this,arguments)}function handleSort(_x5,_x6){return _handleSort.apply(this,arguments)}function _handleSort(){_handleSort=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(column,direction){var currentProps,id;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:currentProps=gjsModel.get("componentProps");id=gjsModel.get("id");gjsModel.set("componentProps",_extends({},currentProps,{sortColumn:direction?column:null,sortDirection:direction}));_context3.next=5;return performInteraction({id:id,interactionType:"tableSort",payload:{sortColumn:direction?column:null,sortDirection:direction,tableId:id},affectedComponents:getAffectedComponentsWithLoader([id],true)});case 5:case"end":return _context3.stop()}},_callee3)}));return _handleSort.apply(this,arguments)}return/*#__PURE__*/_jsxs(Card,{ref:cardRef,className:"shadow border flex flex-col h-fit overflow-hidden","data-component-type":"table","data-table-id":gjsModel.get("id"),children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"title",contentEditable:isEditable,className:"text-2xl",children:title}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"subTitle",contentEditable:isEditable,className:"text-sm",children:subTitle})]}),/*#__PURE__*/_jsx(CardContent,{"data-slot":"bodyContent",contentEditable:false,className:"flex-1 flex flex-col overflow-hidden",children:/*#__PURE__*/_jsx(DataTable,{data:parsedData,headerMapper:headerMapper,className:className,isEditable:isEditable,actions:actions,pagination:pagination,isLoading:attributes.interactionApiInProgress,onRowAction:onRowAction,onPageChange:onPageChange,onSort:handleSort,sortConfig:sortConfig,otherProps:rest,height:scrollAreaHeight})})]})}export function renderTab(props){var tabsWidth=157;if(props.tabs.length>4){tabsWidth=157}return/*#__PURE__*/_jsxs(Tabs,{defaultValue:props.defaultValue,children:[/*#__PURE__*/_jsx("div",{className:"text-center mb-4",children:/*#__PURE__*/_jsx(TabsList,{className:"bg-[#F9F9FE] border border-[#D4D5DE] p-1 rounded-lg h-auto",children:props.tabs.map(function(tab){return/*#__PURE__*/_jsx(TabsTrigger,{value:tab,className:"\n w-["+tabsWidth+"px] h-[38px] gap-1 px-3 py-[11px]\n font-medium text-sm leading-4 \n border-0 bg-[#F9F9FE] text-[#687387] rounded-none\n data-[state=active]:border data-[state=active]:border-solid data-[state=active]:border-[#2A44D4] data-[state=active]:bg-[#EAECFB] data-[state=active]:text-[#263DBF] data-[state=active]:shadow-none data-[state=active]:rounded-md\n transition-all duration-200\n ",style:{fontFamily:"Helvetica Neue",fontWeight:500,fontSize:"14px",lineHeight:"16px",letterSpacing:"0%"},children:tab},tab)})})}),props.tabs.map(function(tab){return/*#__PURE__*/_jsx(TabsContent,{value:tab,className:"tabs-content"},tab)})]})}export function renderMarkdown(props){var gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded5);var _useState12=useState(_extends({},props)),allData=_useState12[0],setAllData=_useState12[1];var _useState13=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState13[0],setAttributes=_useState13[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var _useState14=useState(false),isEditing=_useState14[0],setIsEditing=_useState14[1];var editRef=useRef(null);var startEditing=function startEditing(){setIsEditing(true);setTimeout(function(){setupEditor()},0)};var setupEditor=function setupEditor(){if(!editRef.current){return}var editor=editRef.current;editor.innerHTML="";editor.textContent=allData.summaryText;editor.focus()};// Save changes and exit editing mode
9
+ var saveChanges=function saveChanges(){if(!editRef.current){return}var content=editRef.current.innerText||"";setAllData(function(prev){return _extends({},prev,{summaryText:content})});setIsEditing(false);editRef.current.innerHTML=""};var markdownStyles={ul:{props:{className:"list-disc"}},h1:{props:{className:"text-4xl font-bold leading-[4rem]"}},h2:{props:{className:"text-3xl font-bold leading-[3rem]"}},h3:{props:{className:"text-2xl font-bold leading-[2rem]"}},h4:{props:{className:"text-xl font-bold leading-[2.5rem]"}},h5:{props:{className:"text-lg font-bold leading-[2.5rem]"}},h6:{props:{className:"text-base font-bold leading-[2rem]"}}};if(attributes.loading){return/*#__PURE__*/_jsx(MarkdownLoader,{})}if(!allData.isEditable){return/*#__PURE__*/_jsxs("div",_extends({className:"px-[1em]"},rest,{children:[/*#__PURE__*/_jsx("h3",{className:"text-xl font-semibold text-left",children:"Insights"}),/*#__PURE__*/_jsx("div",{"data-slot":"summaryText",children:/*#__PURE__*/_jsx(Markdown,{options:{overrides:markdownStyles},children:allData.summaryText})})]}))}return/*#__PURE__*/_jsxs("div",_extends({className:"p-[1em]"},rest,{children:[/*#__PURE__*/_jsx("h3",{className:"text-xl font-semibold text-left",children:"Insights"}),isEditing?/*#__PURE__*/_jsx("div",{ref:editRef,contentEditable:true,onBlur:saveChanges,"data-slot":"summaryText",className:"p-2 min-h-[100px] whitespace-pre-wrap",suppressContentEditableWarning:true,style:{whiteSpace:"pre-wrap",wordWrap:"break-word"}}):/*#__PURE__*/_jsx("div",{onClick:startEditing,"data-slot":"summaryText",style:{whiteSpace:"pre-wrap",wordWrap:"break-word"},children:/*#__PURE__*/_jsx(Markdown,{options:{overrides:markdownStyles},children:allData.summaryText})})]}))}export function renderButton(props){var _props$isEditable3=props.isEditable,isEditable=_props$isEditable3===void 0?false:_props$isEditable3,gjsModel=props.gjsModel,_props$performInterac2=props.performInteraction,performInteraction=_props$performInterac2===void 0?function(){}:_props$performInterac2;var _useState15=useState(_extends({},props)),allData=_useState15[0],setAllData=_useState15[1];var _useState16=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState16[0],setAttributes=_useState16[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var text=allData.text,className=allData.className,payload=allData.payload,_allData$variant=allData.variant,variant=_allData$variant===void 0?"default":_allData$variant,_allData$size=allData.size,size=_allData$size===void 0?"sm":_allData$size,affectedComponents=allData.affectedComponents,tooltipContent=allData.tooltipContent;function interact(){var id=gjsModel.get("id");performInteraction({id:id,interactionType:"button",affectedComponents:getAffectedComponentsWithLoader([id].concat(affectedComponents),true),payload:payload})}return/*#__PURE__*/_jsx(TooltipButton,{className:className,isEditable:isEditable,interact:interact,attributes:attributes,variant:variant,size:size,text:text,tooltipContent:tooltipContent})}var renderActionCardWithError=function renderActionCardWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderActionCard(props)})};var renderButtonWithError=function renderButtonWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderButton(props)})};var renderCardWithError=function renderCardWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderCard(props)})};var renderChartWithError=function renderChartWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderChart(props)})};var renderFilterWithError=function renderFilterWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderFilter(props)})};var renderMarkdownWithError=function renderMarkdownWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderMarkdown(props)})};var renderSearchWithError=function renderSearchWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderSearch(props)})};var renderTableWithError=function renderTableWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderTable(props)})};var renderTabWithError=function renderTabWithError(props){return/*#__PURE__*/_jsx(ErrorWrapper,{componentProps:props,children:renderTab(props)})};export function getRenderers(){return{ActionCard:renderActionCardWithError,Button:renderButtonWithError,Card:renderCardWithError,Chart:renderChartWithError,Filter:renderFilterWithError,Markdown:renderMarkdownWithError,Search:renderSearchWithError,Table:renderTableWithError,Tabs:renderTabWithError}}
10
10
  //# sourceMappingURL=render-components.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-components.js","names":["chroma","React","useEffect","useState","useRef","renderNoDataFallback","CircleAlert","TrendingDown","TrendingUp","ShoppingCart","ChartBarBig","Tag","MapPin","theme","Markdown","Bar","BarChart","CartesianGrid","Legend","Line","LineChart","Pie","PieChart","ResponsiveContainer","XAxis","YAxis","domutil","TooltipButton","Card","CardContent","CardDescription","CardFooter","CardHeader","CardTitle","ChartContainer","ChartTooltip","ChartTooltipContent","renderFilter","ScrollArea","ScrollBar","renderSearch","CardLoader","ChartLoader","MarkdownLoader","Tabs","TabsContent","TabsList","TabsTrigger","cn","getAffectedComponentsWithLoader","DataTable","ErrorWrapper","jsx","_jsx","jsxs","_jsxs","getOffset","el","html","ownerDocument","documentElement","box","top","left","getBoundingClientRect","iframe","document","querySelector","iframeWindow","contentWindow","pageYOffset","clientTop","pageXOffset","clientLeft","baseColors","colors","Blue_100","Blue_30","Purpley_100","Purpley_30","Light_Bluish_Green","Wild_Strawberry","iconMap","getIconFromString","iconString","lowerIconString","toLowerCase","matchingKey","Object","keys","find","key","getNColors","n","_iterator","_createForOfIteratorHelperLoose","_step","done","baseColor","value","push","scale","mode","getOneColor","existing","color","base","Math","floor","random","length","selectedColorIndex","includes","selectedColors","i","renderActionCard","props","gjsModel","rest","_objectWithoutPropertiesLoose","_excluded","_useState","_extends","allData","setAllData","_allData$headerConten","headerContent","icon","_allData$bodyContent","bodyContent","_useState2","get","setAttributes","on","defaultClasses","className","style","background","isEditable","contentEditable","children","renderCard","_props$isEditable","_excluded2","_useState3","headerDescription","footerContent","footerClass","footerIcon","contentMetadata","contentMetadataClass","_useState4","attributes","defaultFooterClasses","defaultContentMetadataClasses","mergedCardClassName","mergedFooterClassName","mergedContentMetadataClassName","getCardContent","interactionApiInProgress","loading","Fragment","renderChartComponent","chartType","data","config","cursor","content","hideLabel","dataKey","nameKey","innerRadius","strokeWidth","label","_ref","name","percent","toFixed","undefined","labelLine","dataKeys","chartUi","vertical","xAxis","align","wrapperStyle","marginLeft","map","_ref2","fill","radius","indicator","_ref3","type","stroke","_ref4","renderChart","_props$isEditable2","_excluded3","_useState5","_useState6","containerRef","_useState7","containerWidth","setContainerWidth","updateContainerWidth","current","offsetWidth","window","addEventListener","removeEventListener","_allData$config","_allData$chartType","_allData$chartData","chartData","_allData$title","title","_allData$subTitle","subTitle","mergedClasses","width","totalDataPoints","getResponsiveConfig","max","barCategoryGap","minWidth","height","orientation","ref","renderTable","_props$performInterac","performInteraction","_excluded4","_useState8","cardRef","_useState9","rawData","_allData$headerMapper","headerMapper","rawHeaderMapper","_allData$isEditable","_allData$title2","_allData$subTitle2","_allData$actions","actions","pagination","Array","isArray","cleaned","id","fromEntries","entries","filter","_ref5","sortConfig","_gjsModel$get","_ref7","_ref6","sortColumn","sortDirection","_useState0","viewportWidth","setViewportWidth","_useState1","scrollAreaHeight","setScrollAreaHeight","calculateTableHeight","tableWidth","rowCount","_gjsModel$collection","widthRatio","baseTableHeight","targetScrollAreaHeight","headerHeight","rowHeight","calculatedHeight","min","tableId","editor","em","collection","canvasDocument","Canvas","getDocument","tableElement","headerElement","offsetHeight","actualHeaderHeight","standardHeaderHeight","heightDifference","updateViewportWidth","iframeDocument","dashboardRoot","getElementById","effectiveViewportWidth","clientWidth","updateTableWidthAndApplyCSS","_gjsModel$collection2","parent","tableActualWidth","timeoutId","setTimeout","clearTimeout","parsedData","datum","newData","onRowAction","_x","_x2","_onRowAction","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","rowIndex","actionId","wrap","_callee$","_context","prev","next","interactionType","payload","row","affectedComponents","stop","onPageChange","_x3","_x4","_onPageChange","_callee2","pageNumber","pageSize","_gjsModel$get2","_ref8","_callee2$","_context2","handleSort","_x5","_x6","_handleSort","_callee3","column","direction","currentProps","_callee3$","_context3","set","isLoading","onSort","otherProps","renderTab","tabsWidth","tabs","defaultValue","tab","fontFamily","fontWeight","fontSize","lineHeight","letterSpacing","renderMarkdown","_excluded5","_useState10","_useState11","_useState12","isEditing","setIsEditing","editRef","startEditing","setupEditor","innerHTML","textContent","summaryText","focus","saveChanges","innerText","markdownStyles","ul","h1","h2","h3","h4","h5","h6","options","overrides","onBlur","suppressContentEditableWarning","whiteSpace","wordWrap","onClick","renderButton","_props$isEditable3","_props$performInterac2","_useState13","_useState14","text","_allData$variant","variant","_allData$size","size","tooltipContent","interact","concat","renderActionCardWithError","componentProps","renderButtonWithError","renderCardWithError","renderChartWithError","renderFilterWithError","renderMarkdownWithError","renderSearchWithError","renderTableWithError","renderTabWithError","getRenderers","ActionCard","Button","Chart","Filter","Search","Table"],"sources":["../../../src/plugins/helpers/render-components.tsx"],"sourcesContent":["/* eslint-disable no-nested-ternary */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable func-style */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable func-names */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport chroma from 'chroma-js';\nimport React, { useEffect, useState, JSX, useRef } from 'react';\nimport { renderNoDataFallback } from './extra'\nimport { CircleAlert, TrendingDown, TrendingUp, ShoppingCart, ChartBarBig, Tag,MapPin } from 'lucide-react';\n\nimport {theme} from '@peak-ai/ais-components/theme';\n\nimport Markdown from 'markdown-to-jsx';\n\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n Legend,\n Line,\n LineChart,\n Pie,\n PieChart,\n ResponsiveContainer,\n XAxis,\n YAxis,\n} from 'recharts/lib';\n\n// @ts-ignore\nimport * as domutil from 'recharts/lib/util/DOMUtils';\n\nimport {TooltipButton} from '../../shadcn/components/ui/button';\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from '../../shadcn/components/ui/card';\nimport {ChartContainer, ChartTooltip, ChartTooltipContent,} from '../../shadcn/components/ui/chart';\nimport {renderFilter} from '../../shadcn/components/ui/filter';\nimport {ScrollArea, ScrollBar} from '../../shadcn/components/ui/scroll-area';\nimport {renderSearch} from '../../shadcn/components/ui/search';\nimport {CardLoader, ChartLoader, MarkdownLoader} from '../../shadcn/components/ui/skeleton';\nimport {SortDirection} from '../../shadcn/components/ui/table';\nimport {Tabs, TabsContent, TabsList, TabsTrigger} from '../../shadcn/components/ui/tabs';\n\nimport {cn} from '../../shadcn/utils';\nimport {getAffectedComponentsWithLoader} from '../../helpers';\nimport {DataTable} from './data-table';\nimport { ErrorWrapper } from '../../shadcn/components/ui/error-wrapper';\n\n// Monkey-patching the getOffset function to use iframe's window instead of global one\n// REMEMBER TO UDPATE THIS WHEN recharts IS UPGRADED\n// @ts-ignore\ndomutil.getOffset = (el: HTMLElement): {\n top: number;\n left: number;\n} => {\n const html = el.ownerDocument.documentElement;\n let box = { top: 0, left: 0 };\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n const iframe = document.querySelector('.gjs-frame');\n const iframeWindow = (iframe as any)?.contentWindow;\n\n return {\n top: box.top + iframeWindow.pageYOffset - html.clientTop,\n left: box.left + iframeWindow.pageXOffset - html.clientLeft,\n };\n};\n\n\nconst baseColors = [\n [theme.colors.Blue_100, theme.colors.Blue_30],\n [theme.colors.Purpley_100, theme.colors.Purpley_30],\n [theme.colors.Light_Bluish_Green, '#06601b'],\n [theme.colors.Wild_Strawberry, '#4d001c'],\n];\n\nconst iconMap: Record<string, JSX.Element> = {\n 'TrendingUp': <TrendingUp />,\n 'TrendingDown': <TrendingDown />,\n 'ShoppingCart': <ShoppingCart />,\n 'Equalizer': <ChartBarBig />,\n 'Style': <Tag />,\n 'Place': <MapPin />\n};\n\nfunction getIconFromString(iconString: string): JSX.Element | null {\n if (!iconString){\n return null;\n }\n \n if (iconMap[iconString]) {\n return iconMap[iconString];\n }\n \n const lowerIconString = iconString.toLowerCase();\n const matchingKey = Object.keys(iconMap).find(key => key.toLowerCase() === lowerIconString);\n\n if (matchingKey) {\n return iconMap[matchingKey];\n }\n \n return null;\n}\n\nfunction getNColors(n: number) {\n const colors: Array<string[]> = [];\n\n for (const baseColor of baseColors) {\n // eslint-disable-next-line import/no-named-as-default-member\n colors.push(chroma.scale(baseColor).mode('lab').colors(n));\n }\n\n function getOneColor(existing: Array<string>) {\n let color: null | string = null;\n\n do {\n const base = colors[Math.floor(Math.random() * colors.length)];\n const selectedColorIndex = Math.floor(Math.random() * base.length);\n color = base[selectedColorIndex];\n } while (existing.includes(color));\n\n return color as string;\n }\n\n const selectedColors: Array<string> = [];\n\n for (let i = 0; i < n; i++) {\n selectedColors.push(getOneColor(selectedColors));\n }\n\n return selectedColors;\n}\n\n/* TODO: Loader remains */\nexport function renderActionCard(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n headerContent = 'Default action card title',\n icon,\n bodyContent = 'Default body content. Click to edit.',\n } = allData;\n\n const [, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const defaultClasses = 'text-black p-4 rounded-lg shadow border flex flex-col h-full';\n\n return (\n <Card \n className={defaultClasses} \n style={{\n background: 'linear-gradient(0deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4)), linear-gradient(90.01deg, rgba(255, 255, 255, 0.4) -36.34%, rgba(42, 68, 212, 0.9) 218.89%)'\n }}\n isEditable={false} \n contentEditable={false} \n {...rest}\n >\n <CardContent className=\"p-0\" isEditable={false} contentEditable={false}>\n <div className=\"px-4 py-3\">\n <div className=\"flex items-start flex-col\">\n <div className=\"flex items-center justify-between w-full\">\n <div className=\"text-xl font-semibold\">{headerContent}</div>\n <div className=\"text-5xl ml-2 flex items-center\" aria-hidden=\"true\">\n {getIconFromString(icon)}\n </div>\n </div>\n <div className=\"w-full mt-1\">\n {!bodyContent ? (\n <span className=\"flex flex-row items-center px-3 py-2\">\n <CircleAlert className=\"w-3 h-3 text-gray-400 mr-1\" />\n <p className=\"text-sm text-gray-500 max-w-md text-center\">\n No data available for given filters\n </p>\n </span>\n ) : (\n <div className=\"text-base leading-relaxed\">{bodyContent}</div>\n )}\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n );\n}\n\nexport function renderCard(props: any): JSX.Element {\n const { isEditable = false, gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n headerContent,\n headerDescription,\n bodyContent,\n footerContent,\n footerClass,\n footerIcon,\n contentMetadata,\n contentMetadataClass,\n className,\n } = allData;\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const defaultClasses = 'bg-white text-black p-4 rounded-lg border flex flex-col h-full shadow-none';\n const defaultFooterClasses = footerContent ? 'text-sm bg-pink-50 text-pink-900 shadow-sm' : 'text-sm';\n const defaultContentMetadataClasses = 'text-xs';\n const mergedCardClassName = className ? cn(defaultClasses, className) : defaultClasses;\n const mergedFooterClassName = footerClass\n ? cn(defaultFooterClasses, footerClass)\n : defaultFooterClasses;\n const mergedContentMetadataClassName = contentMetadataClass\n ? cn(defaultContentMetadataClasses, contentMetadataClass)\n : defaultContentMetadataClasses;\n\n function getCardContent() {\n if (attributes.interactionApiInProgress || attributes.loading) {\n return (\n <CardContent>\n <CardLoader />\n </CardContent>\n );\n }\n\n return (\n <React.Fragment>\n <CardHeader>\n <CardTitle data-slot=\"headerContent\" contentEditable={isEditable} className=\"text-lg\">\n {headerContent}\n </CardTitle>\n <CardDescription\n data-slot=\"headerDescription\"\n contentEditable={isEditable}\n className=\"text-sm\"\n >\n {headerDescription}\n </CardDescription>\n </CardHeader>\n\n {!bodyContent ? (\n <span className=\"flex flex-row items-center px-3 py-2\">\n <CircleAlert className=\"w-3 h-3 text-gray-400 mr-1\" />\n <p className=\"text-sm text-gray-500 max-w-md text-center\">\n No data available for given filters\n </p>\n </span>\n ) : (\n <CardContent data-slot=\"bodyContent\" contentEditable={false} className=\"flex-grow\">\n <div className=\"text-3xl font-semibold truncate\">{bodyContent}</div>\n {contentMetadata && (\n <div className={mergedContentMetadataClassName} style={{ color: '#2A44D4' }}>\n {contentMetadata}\n </div>\n )}\n </CardContent>\n )}\n\n <CardFooter\n data-slot=\"footerContent\"\n contentEditable={isEditable}\n className={cn(mergedFooterClassName)}\n >\n {footerIcon && (\n <span className=\"mr-2\" aria-hidden=\"true\">\n {footerIcon}\n </span>\n )}\n {footerContent}\n </CardFooter>\n </React.Fragment>\n );\n }\n\n return (\n <Card {...rest} className={mergedCardClassName}>\n {getCardContent()}\n </Card>\n );\n}\n\nfunction renderChartComponent(chartType: string, data: any, config: any): JSX.Element {\n if (!data || data.length === 0) {\n return renderNoDataFallback();\n }\n\n switch (chartType) {\n case 'pie':\n return (\n <PieChart>\n {data.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={data}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n data.length < 20\n ? ({ name, percent }: { name: string; percent: number; }) => `${name}: ${(percent * 100).toFixed(0)}%`\n : undefined\n }\n labelLine={false}\n />\n </PieChart>\n );\n case 'bar':\n config.dataKeys = config.dataKeys || [];\n\n return (\n <BarChart data={data} {...config.chartUi}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <Legend align=\"left\" wrapperStyle={{ marginLeft: 20 }} />\n {config.dataKeys.map(\n ({ key, name, color }: { key: string; name: string; color: string }) => {\n return (\n <Bar dataKey={key} fill={color ?? '#4caf50'} name={name} key={key} radius={2} />\n );\n },\n )}\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n </BarChart>\n );\n case 'line':\n config.dataKeys = config.dataKeys || [];\n\n return (\n <LineChart data={data} {...config.chartUi}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n {config.dataKeys.map(\n ({ key, name, color }: { key: string; name: string; color: string }) => {\n return (\n <Line\n type=\"monotone\"\n dataKey={key}\n stroke={color ?? '#4caf50'}\n name={name}\n key={key}\n />\n );\n },\n )}\n <Legend align=\"left\" />\n </LineChart>\n );\n default:\n return (\n <PieChart>\n {data.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={data}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n data.length < 20\n ? ({ name, percent }: { name: string; percent: number; }) => `${name}: ${(percent * 100).toFixed(0)}%`\n : undefined\n }\n labelLine={false}\n />\n </PieChart>\n );\n }\n}\n\nexport function renderChart(props: any): JSX.Element {\n const { isEditable = false, gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n const containerRef = useRef<HTMLDivElement>(null);\n const [containerWidth, setContainerWidth] = useState<number>(0);\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n useEffect(() => {\n const updateContainerWidth = () => {\n if (containerRef.current) {\n setContainerWidth(containerRef.current.offsetWidth);\n }\n };\n\n updateContainerWidth();\n window.addEventListener('resize', updateContainerWidth);\n\n return () => window.removeEventListener('resize', updateContainerWidth);\n }, []);\n\n const {\n config = {},\n chartType = 'pie',\n chartData = [],\n className,\n title = 'Title',\n subTitle = 'Subtitle',\n } = allData;\n\n const defaultClasses = 'aspect-auto h-[250px] w-full';\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n if (chartType === 'pie') {\n const colors = getNColors(chartData.length);\n\n for (let i = 0; i < chartData.length; i++) {\n const data = chartData[i];\n\n if (!data.fill) {\n data.fill = colors[i];\n }\n }\n } else if (!config.color) {\n config.color = baseColors[Math.floor(Math.random() * baseColors.length)];\n }\n\n let width: number | undefined = undefined;\n let totalDataPoints = 0;\n\n // Helper function to get responsive config\n const getResponsiveConfig = () => {\n if (\n chartType === 'bar' &&\n totalDataPoints > 15 &&\n containerWidth > 0 &&\n width &&\n width <= containerWidth\n ) {\n // If chart fits in container, use responsive behavior\n return { ...config, chartUi: {} };\n }\n\n return config;\n };\n\n if (chartType === 'bar') {\n config.dataKeys = config.dataKeys || [];\n totalDataPoints = chartData.length * Math.max(1, config.dataKeys.length);\n \n if (totalDataPoints > 15) {\n width =\n totalDataPoints * 20 +\n config.dataKeys.length * 8 * chartData.length +\n chartData.length * 15;\n config.chartUi = {\n barCategoryGap: '10%',\n width,\n };\n } else {\n config.chartUi = {};\n }\n } else if (chartType === 'line') {\n config.dataKeys = config.dataKeys || [];\n totalDataPoints = chartData.length;\n \n if (totalDataPoints > 15) {\n width = Math.max(800, totalDataPoints * 20);\n config.chartUi = {\n width,\n };\n } else {\n config.chartUi = {};\n }\n }\n\n const chartUi = (attributes.interactionApiInProgress || attributes.loading) ? (\n <ChartLoader />\n ) : !chartData ? (\n renderNoDataFallback()\n ) : (\n <React.Fragment>\n {(chartType === 'bar' || chartType === 'line') && totalDataPoints > 15 && width && (containerWidth === 0 || width > containerWidth) ? (\n <div className=\"w-full h-[250px]\">\n <ScrollArea className=\"w-full h-full\">\n <div style={{ minWidth: `${width}px`, width: 'max-content', height: '250px' }}>\n <ResponsiveContainer width={width} height={250}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\n </ChartContainer>\n </ResponsiveContainer>\n </div>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n </div>\n ) : (\n <ResponsiveContainer width=\"100%\" height={250}>\n <ChartContainer {...rest} config={getResponsiveConfig()} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, getResponsiveConfig())}\n </ChartContainer>\n </ResponsiveContainer>\n )}\n </React.Fragment>\n );\n\n return (\n <Card className=\"shadow border mt-2 mb-2\">\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent\n ref={containerRef}\n data-slot=\"bodyContent\"\n contentEditable={false}\n className=\"px-6\"\n >\n {chartUi}\n </CardContent>\n </Card>\n );\n}\n\nexport function renderTable(props: any): JSX.Element {\n const { gjsModel, performInteraction = () => {}, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const cardRef = useRef<HTMLDivElement>(null);\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n const {\n data: rawData,\n headerMapper: rawHeaderMapper = {},\n className,\n isEditable = false,\n title = 'Title',\n subTitle = 'Subtitle',\n actions = [],\n pagination,\n } = allData;\n\n const data = Array.isArray(rawData) ? rawData : [];\n const headerMapper = (() => {\n const cleaned = { ...rawHeaderMapper };\n\n if ('id' in cleaned) {\n delete cleaned.id;\n }\n\n if (data.length > 0) {\n const dataKeys = Object.keys(data[0] || {});\n\n return Object.fromEntries(\n Object.entries(cleaned).filter(([key]) => dataKeys.includes(key))\n );\n }\n\n return cleaned;\n })();\n\n const sortConfig = (() => {\n const { sortColumn, sortDirection } = gjsModel.get('componentProps') ?? {};\n\n return sortColumn && sortDirection ? { [sortColumn]: sortDirection } : {};\n })();\n\n const [viewportWidth, setViewportWidth] = useState<number>(0);\n const [scrollAreaHeight, setScrollAreaHeight] = useState<number>(250);\n\n const calculateTableHeight = (tableWidth: number, rowCount: number) => {\n if (viewportWidth > 0) {\n const widthRatio = tableWidth / viewportWidth;\n const baseTableHeight = 250;\n let targetScrollAreaHeight = baseTableHeight;\n \n if (widthRatio >= 0.8) {\n const headerHeight = 48;\n const rowHeight = 40;\n const calculatedHeight = headerHeight + (rowCount * rowHeight);\n targetScrollAreaHeight = Math.min(calculatedHeight, baseTableHeight);\n }\n \n const tableId = gjsModel.get('id');\n const editor = gjsModel.em || gjsModel.collection?.em;\n const canvasDocument = editor.Canvas.getDocument() || document;\n const tableElement = canvasDocument.querySelector(`[data-table-id=\"${tableId}\"]`) as HTMLElement;\n \n if (tableElement) {\n const headerElement = tableElement.querySelector('[data-slot=\"card-header\"]') as HTMLElement;\n \n if (headerElement && headerElement.offsetHeight > 0) {\n const actualHeaderHeight = headerElement.offsetHeight;\n const standardHeaderHeight = 58;\n const heightDifference = actualHeaderHeight - standardHeaderHeight;\n\n if (heightDifference > 0) {\n targetScrollAreaHeight = targetScrollAreaHeight - heightDifference;\n }\n }\n }\n\n setScrollAreaHeight(targetScrollAreaHeight);\n }\n };\n\n useEffect(() => {\n const updateViewportWidth = () => {\n const iframe = document.querySelector('.gjs-frame');\n const iframeWindow = (iframe as any)?.contentWindow;\n const iframeDocument = iframeWindow?.document;\n \n if (iframeDocument) {\n const dashboardRoot = iframeDocument.getElementById('dashboard-root');\n const effectiveViewportWidth = dashboardRoot?.clientWidth || iframeDocument.documentElement.clientWidth;\n setViewportWidth(effectiveViewportWidth);\n }\n };\n\n updateViewportWidth();\n window.addEventListener('resize', updateViewportWidth);\n \n const iframe = document.querySelector('.gjs-frame');\n const iframeWindow = (iframe as any)?.contentWindow;\n \n if (iframeWindow) {\n iframeWindow.addEventListener('resize', updateViewportWidth);\n }\n \n return () => {\n window.removeEventListener('resize', updateViewportWidth);\n \n if (iframeWindow) {\n iframeWindow.removeEventListener('resize', updateViewportWidth);\n }\n };\n }, []);\n\n useEffect(() => {\n const updateTableWidthAndApplyCSS = () => {\n const tableId = gjsModel.get('id');\n const editor = gjsModel.em || gjsModel.collection?.em;\n const canvasDocument = editor.Canvas.getDocument() || document;\n \n let tableElement = canvasDocument.querySelector(`[data-table-id=\"${tableId}\"]`) as HTMLElement;\n\n if (!tableElement && window.parent !== window) {\n tableElement = window.parent.document.querySelector(`[data-table-id=\"${tableId}\"]`) as HTMLElement;\n }\n \n if (!tableElement) {\n return;\n }\n \n const tableActualWidth = tableElement.getBoundingClientRect().width;\n\n if (tableActualWidth > 0) {\n calculateTableHeight(tableActualWidth, data.length);\n }\n };\n\n const timeoutId = setTimeout(updateTableWidthAndApplyCSS, 150);\n window.addEventListener('resize', updateTableWidthAndApplyCSS);\n\n return () => {\n clearTimeout(timeoutId);\n window.removeEventListener('resize', updateTableWidthAndApplyCSS);\n };\n }, [allData, gjsModel, viewportWidth, data, calculateTableHeight]);\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const parsedData = (() => {\n if (typeof data === 'object' && data !== null && !Array.isArray(data) && (data as any).name === '__peak_placeholder') {\n return [];\n }\n\n if (!Array.isArray(data)) {\n return [];\n }\n\n return data.map((datum: any) => {\n const newData = {\n ...datum,\n };\n\n delete newData.id;\n\n return newData;\n });\n })();\n\n async function onRowAction(rowIndex: number, actionId: string) {\n const id = gjsModel.get('id');\n\n await performInteraction({\n id: actionId,\n interactionType: 'tableButton',\n payload: {\n row: data[rowIndex],\n tableId: id,\n },\n affectedComponents: [],\n });\n }\n\n async function onPageChange(pageNumber: number, pageSize: number) {\n const id = gjsModel.get('id');\n const { sortColumn, sortDirection } = gjsModel.get('componentProps') ?? {};\n\n await performInteraction({\n id,\n interactionType: 'pagination',\n payload: {\n pageNumber,\n pageSize,\n ...(sortColumn && sortDirection && { sortColumn, sortDirection }),\n },\n affectedComponents: getAffectedComponentsWithLoader([id], true),\n });\n }\n\n async function handleSort(column: string, direction: SortDirection) {\n const currentProps = gjsModel.get('componentProps');\n const id = gjsModel.get('id');\n\n gjsModel.set('componentProps', {\n ...currentProps,\n sortColumn: direction ? column : null,\n sortDirection: direction,\n });\n\n await performInteraction({\n id,\n interactionType: 'tableSort',\n payload: {\n sortColumn: direction ? column : null,\n sortDirection: direction,\n tableId: id,\n },\n affectedComponents: getAffectedComponentsWithLoader([id], true),\n });\n }\n\n return (\n <Card\n ref={cardRef}\n className=\"shadow border flex flex-col h-fit overflow-hidden\"\n data-component-type=\"table\"\n data-table-id={gjsModel.get('id')}\n >\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent data-slot=\"bodyContent\" contentEditable={false} className=\"flex-1 flex flex-col overflow-hidden\">\n <DataTable\n data={parsedData}\n headerMapper={headerMapper}\n className={className}\n isEditable={isEditable}\n actions={actions}\n pagination={pagination}\n isLoading={attributes.interactionApiInProgress}\n onRowAction={onRowAction}\n onPageChange={onPageChange}\n onSort={handleSort}\n sortConfig={sortConfig}\n otherProps={rest}\n height={scrollAreaHeight}\n />\n </CardContent>\n </Card>\n );\n}\n\nexport function renderTab(props: any): JSX.Element {\n let tabsWidth = 157;\n\n if (props.tabs.length > 4) {\n tabsWidth = 157;\n }\n\n return (\n <Tabs defaultValue={props.defaultValue}>\n <div className=\"text-center mb-4\">\n <TabsList className=\"bg-[#F9F9FE] border border-[#D4D5DE] p-1 rounded-lg h-auto\">\n {props.tabs.map((tab: string) => (\n <TabsTrigger \n value={tab} \n key={tab} \n className={`\n w-[${tabsWidth}px] h-[38px] gap-1 px-3 py-[11px]\n font-medium text-sm leading-4 \n border-0 bg-[#F9F9FE] text-[#687387] rounded-none\n data-[state=active]:border data-[state=active]:border-solid data-[state=active]:border-[#2A44D4] data-[state=active]:bg-[#EAECFB] data-[state=active]:text-[#263DBF] data-[state=active]:shadow-none data-[state=active]:rounded-md\n transition-all duration-200\n `}\n style={{\n fontFamily: 'Helvetica Neue',\n fontWeight: 500,\n fontSize: '14px',\n lineHeight: '16px',\n letterSpacing: '0%'\n }}\n >\n {tab}\n </TabsTrigger>\n ))}\n </TabsList>\n </div>\n {props.tabs.map((tab: string) => (\n <TabsContent value={tab} className=\"tabs-content\" key={tab} />\n ))}\n </Tabs>\n );\n}\n\nexport function renderMarkdown(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const [isEditing, setIsEditing] = useState(false);\n const editRef = useRef<HTMLDivElement>(null);\n\n const startEditing = () => {\n setIsEditing(true);\n setTimeout(() => {\n setupEditor();\n }, 0);\n };\n\n const setupEditor = () => {\n if (!editRef.current) {\n return;\n }\n\n const editor = editRef.current;\n editor.innerHTML = '';\n editor.textContent = allData.summaryText;\n editor.focus();\n };\n\n // Save changes and exit editing mode\n const saveChanges = () => {\n if (!editRef.current) {\n return;\n }\n\n const content = editRef.current.innerText || '';\n setAllData((prev: Record<string, any>) => ({\n ...prev,\n summaryText: content,\n }));\n setIsEditing(false);\n editRef.current.innerHTML = '';\n };\n\n const markdownStyles = {\n ul: { props: { className: 'list-disc' } },\n h1: { props: { className: 'text-4xl font-bold leading-[4rem]' } },\n h2: { props: { className: 'text-3xl font-bold leading-[3rem]' } },\n h3: { props: { className: 'text-2xl font-bold leading-[2rem]' } },\n h4: { props: { className: 'text-xl font-bold leading-[2.5rem]' } },\n h5: { props: { className: 'text-lg font-bold leading-[2.5rem]' } },\n h6: { props: { className: 'text-base font-bold leading-[2rem]' } },\n };\n\n if (attributes.loading) {\n return <MarkdownLoader />\n }\n\n if (!allData.isEditable) {\n return (\n <div className=\"px-[1em]\" {...rest}>\n <h3 className=\"text-xl font-semibold text-left\">Insights</h3>\n <div data-slot=\"summaryText\">\n <Markdown options={{ overrides: markdownStyles }}>{allData.summaryText}</Markdown>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"p-[1em]\" {...rest}>\n <h3 className=\"text-xl font-semibold text-left\">Insights</h3>\n {isEditing ? (\n <div\n ref={editRef}\n contentEditable\n onBlur={saveChanges}\n data-slot=\"summaryText\"\n className=\"p-2 min-h-[100px] whitespace-pre-wrap\"\n suppressContentEditableWarning={true}\n style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n }}\n />\n ) : (\n <div\n onClick={startEditing}\n data-slot=\"summaryText\"\n style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n }}\n >\n <Markdown options={{ overrides: markdownStyles }}>{allData.summaryText}</Markdown>\n </div>\n )}\n </div>\n );\n}\n\nexport function renderButton(props: any): JSX.Element {\n const { isEditable = false, gjsModel, performInteraction = () => {} } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const {\n text,\n className,\n payload,\n variant = 'default',\n size = 'sm',\n affectedComponents,\n tooltipContent,\n } = allData;\n\n function interact() {\n const id = gjsModel.get('id');\n performInteraction({\n id,\n interactionType: 'button',\n affectedComponents: getAffectedComponentsWithLoader([id, ...affectedComponents], true),\n payload,\n });\n }\n\n return (\n <TooltipButton\n className={className}\n isEditable={isEditable}\n interact={interact}\n attributes={attributes}\n variant={variant}\n size={size}\n text={text}\n tooltipContent={tooltipContent}\n />\n );\n}\n\nconst renderActionCardWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderActionCard(props)}\n </ErrorWrapper>\n);\n\nconst renderButtonWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderButton(props)}\n </ErrorWrapper>\n);\n\nconst renderCardWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderCard(props)}\n </ErrorWrapper>\n);\n\nconst renderChartWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderChart(props)}\n </ErrorWrapper>\n);\n\nconst renderFilterWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderFilter(props)}\n </ErrorWrapper>\n);\n\nconst renderMarkdownWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderMarkdown(props)}\n </ErrorWrapper>\n);\n\nconst renderSearchWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderSearch(props)}\n </ErrorWrapper>\n);\n\nconst renderTableWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderTable(props)}\n </ErrorWrapper>\n);\n\nconst renderTabWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderTab(props)}\n </ErrorWrapper>\n);\n\n\nexport function getRenderers(): Record<string, (props: any) => JSX.Element> {\n return {\n ActionCard: renderActionCardWithError,\n Button: renderButtonWithError,\n Card: renderCardWithError,\n Chart: renderChartWithError,\n Filter: renderFilterWithError,\n Markdown: renderMarkdownWithError,\n Search: renderSearchWithError,\n Table: renderTableWithError,\n Tabs: renderTabWithError,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"render-components.js","names":["chroma","React","useEffect","useState","useRef","renderNoDataFallback","CircleAlert","TrendingDown","TrendingUp","ShoppingCart","ChartBarBig","Tag","MapPin","theme","Markdown","Bar","BarChart","CartesianGrid","Legend","Line","LineChart","Pie","PieChart","ResponsiveContainer","XAxis","YAxis","domutil","TooltipButton","Card","CardContent","CardDescription","CardFooter","CardHeader","CardTitle","ChartContainer","ChartTooltip","ChartTooltipContent","renderFilter","ScrollArea","ScrollBar","renderSearch","CardLoader","ChartLoader","MarkdownLoader","Tabs","TabsContent","TabsList","TabsTrigger","cn","getAffectedComponentsWithLoader","DataTable","ErrorWrapper","jsx","_jsx","jsxs","_jsxs","getOffset","el","html","ownerDocument","documentElement","box","top","left","getBoundingClientRect","iframe","document","querySelector","iframeWindow","contentWindow","pageYOffset","clientTop","pageXOffset","clientLeft","baseColors","colors","Blue_100","Blue_30","Purpley_100","Purpley_30","Light_Bluish_Green","Wild_Strawberry","iconMap","getIconFromString","iconString","lowerIconString","toLowerCase","matchingKey","Object","keys","find","key","getNColors","n","_iterator","_createForOfIteratorHelperLoose","_step","done","baseColor","value","push","scale","mode","getOneColor","existing","color","base","Math","floor","random","length","selectedColorIndex","includes","selectedColors","i","renderActionCard","props","gjsModel","rest","_objectWithoutPropertiesLoose","_excluded","_useState","_extends","allData","setAllData","_allData$headerConten","headerContent","icon","_allData$bodyContent","bodyContent","_useState2","get","setAttributes","on","defaultClasses","className","style","background","isEditable","contentEditable","children","renderCard","_props$isEditable","_excluded2","_useState3","headerDescription","footerContent","footerClass","footerIcon","contentMetadata","contentMetadataClass","_useState4","attributes","defaultFooterClasses","defaultContentMetadataClasses","mergedCardClassName","mergedFooterClassName","mergedContentMetadataClassName","getCardContent","interactionApiInProgress","loading","Fragment","renderChartComponent","chartType","data","config","cursor","content","hideLabel","dataKey","nameKey","innerRadius","strokeWidth","label","_ref","name","percent","toFixed","undefined","labelLine","dataKeys","chartUi","vertical","xAxis","align","wrapperStyle","marginLeft","map","_ref2","fill","radius","indicator","_ref3","type","stroke","_ref4","renderChart","_props$isEditable2","_excluded3","_useState5","_useState6","containerRef","_useState7","containerWidth","setContainerWidth","updateContainerWidth","current","offsetWidth","window","addEventListener","removeEventListener","_allData$config","_allData$chartType","_allData$chartData","chartData","_allData$title","title","_allData$subTitle","subTitle","mergedClasses","width","totalDataPoints","getResponsiveConfig","max","barCategoryGap","minWidth","height","orientation","ref","renderTable","_props$performInterac","performInteraction","_excluded4","_useState8","cardRef","_useState9","rawData","_allData$headerMapper","headerMapper","rawHeaderMapper","_allData$isEditable","_allData$title2","_allData$subTitle2","_allData$actions","actions","pagination","Array","isArray","cleaned","id","fromEntries","entries","filter","_ref5","sortConfig","_gjsModel$get","_ref7","_ref6","sortColumn","sortDirection","_useState10","viewportWidth","setViewportWidth","_useState11","scrollAreaHeight","setScrollAreaHeight","calculateTableHeight","tableWidth","rowCount","_gjsModel$collection","widthRatio","baseTableHeight","targetScrollAreaHeight","headerHeight","rowHeight","calculatedHeight","min","tableId","editor","em","collection","canvasDocument","Canvas","getDocument","tableElement","headerElement","offsetHeight","actualHeaderHeight","standardHeaderHeight","heightDifference","updateViewportWidth","iframeDocument","dashboardRoot","getElementById","effectiveViewportWidth","clientWidth","updateTableWidthAndApplyCSS","_gjsModel$collection2","parent","tableActualWidth","timeoutId","setTimeout","clearTimeout","parsedData","datum","newData","onRowAction","_x","_x2","_onRowAction","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","rowIndex","actionId","wrap","_callee$","_context","prev","next","interactionType","payload","row","affectedComponents","stop","onPageChange","_x3","_x4","_onPageChange","_callee2","pageNumber","pageSize","_gjsModel$get2","_ref8","_callee2$","_context2","handleSort","_x5","_x6","_handleSort","_callee3","column","direction","currentProps","_callee3$","_context3","set","isLoading","onSort","otherProps","renderTab","tabsWidth","tabs","defaultValue","tab","fontFamily","fontWeight","fontSize","lineHeight","letterSpacing","renderMarkdown","_excluded5","_useState12","_useState13","_useState14","isEditing","setIsEditing","editRef","startEditing","setupEditor","innerHTML","textContent","summaryText","focus","saveChanges","innerText","markdownStyles","ul","h1","h2","h3","h4","h5","h6","options","overrides","onBlur","suppressContentEditableWarning","whiteSpace","wordWrap","onClick","renderButton","_props$isEditable3","_props$performInterac2","_useState15","_useState16","text","_allData$variant","variant","_allData$size","size","tooltipContent","interact","concat","renderActionCardWithError","componentProps","renderButtonWithError","renderCardWithError","renderChartWithError","renderFilterWithError","renderMarkdownWithError","renderSearchWithError","renderTableWithError","renderTabWithError","getRenderers","ActionCard","Button","Chart","Filter","Search","Table"],"sources":["../../../src/plugins/helpers/render-components.tsx"],"sourcesContent":["/* eslint-disable no-nested-ternary */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable func-style */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable func-names */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport chroma from 'chroma-js';\nimport React, { useEffect, useState, JSX, useRef } from 'react';\nimport { renderNoDataFallback } from './extra'\nimport { CircleAlert, TrendingDown, TrendingUp, ShoppingCart, ChartBarBig, Tag,MapPin } from 'lucide-react';\n\nimport {theme} from '@peak-ai/ais-components/theme';\n\nimport Markdown from 'markdown-to-jsx';\n\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n Legend,\n Line,\n LineChart,\n Pie,\n PieChart,\n ResponsiveContainer,\n XAxis,\n YAxis,\n} from 'recharts/lib';\n\n// @ts-ignore\nimport * as domutil from 'recharts/lib/util/DOMUtils';\n\nimport {TooltipButton} from '../../shadcn/components/ui/button';\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from '../../shadcn/components/ui/card';\nimport {ChartContainer, ChartTooltip, ChartTooltipContent,} from '../../shadcn/components/ui/chart';\nimport {renderFilter} from '../../shadcn/components/ui/filter';\nimport {ScrollArea, ScrollBar} from '../../shadcn/components/ui/scroll-area';\nimport {renderSearch} from '../../shadcn/components/ui/search';\nimport {CardLoader, ChartLoader, MarkdownLoader} from '../../shadcn/components/ui/skeleton';\nimport {SortDirection} from '../../shadcn/components/ui/table';\nimport {Tabs, TabsContent, TabsList, TabsTrigger} from '../../shadcn/components/ui/tabs';\n\nimport {cn} from '../../shadcn/utils';\nimport {getAffectedComponentsWithLoader} from '../../helpers';\nimport {DataTable} from './data-table';\nimport { ErrorWrapper } from '../../shadcn/components/ui/error-wrapper';\n\n// Monkey-patching the getOffset function to use iframe's window instead of global one\n// REMEMBER TO UDPATE THIS WHEN recharts IS UPGRADED\n// @ts-ignore\ndomutil.getOffset = (el: HTMLElement): {\n top: number;\n left: number;\n} => {\n const html = el.ownerDocument.documentElement;\n let box = { top: 0, left: 0 };\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n const iframe = document.querySelector('.gjs-frame');\n const iframeWindow = (iframe as any)?.contentWindow;\n\n return {\n top: box.top + iframeWindow.pageYOffset - html.clientTop,\n left: box.left + iframeWindow.pageXOffset - html.clientLeft,\n };\n};\n\n\nconst baseColors = [\n [theme.colors.Blue_100, theme.colors.Blue_30],\n [theme.colors.Purpley_100, theme.colors.Purpley_30],\n [theme.colors.Light_Bluish_Green, '#06601b'],\n [theme.colors.Wild_Strawberry, '#4d001c'],\n];\n\nconst iconMap: Record<string, JSX.Element> = {\n 'TrendingUp': <TrendingUp />,\n 'TrendingDown': <TrendingDown />,\n 'ShoppingCart': <ShoppingCart />,\n 'Equalizer': <ChartBarBig />,\n 'Style': <Tag />,\n 'Place': <MapPin />\n};\n\nfunction getIconFromString(iconString: string): JSX.Element | null {\n if (!iconString){\n return null;\n }\n \n if (iconMap[iconString]) {\n return iconMap[iconString];\n }\n \n const lowerIconString = iconString.toLowerCase();\n const matchingKey = Object.keys(iconMap).find(key => key.toLowerCase() === lowerIconString);\n\n if (matchingKey) {\n return iconMap[matchingKey];\n }\n \n return null;\n}\n\nfunction getNColors(n: number) {\n const colors: Array<string[]> = [];\n\n for (const baseColor of baseColors) {\n // eslint-disable-next-line import/no-named-as-default-member\n colors.push(chroma.scale(baseColor).mode('lab').colors(n));\n }\n\n function getOneColor(existing: Array<string>) {\n let color: null | string = null;\n\n do {\n const base = colors[Math.floor(Math.random() * colors.length)];\n const selectedColorIndex = Math.floor(Math.random() * base.length);\n color = base[selectedColorIndex];\n } while (existing.includes(color));\n\n return color as string;\n }\n\n const selectedColors: Array<string> = [];\n\n for (let i = 0; i < n; i++) {\n selectedColors.push(getOneColor(selectedColors));\n }\n\n return selectedColors;\n}\n\n/* TODO: Loader remains */\nexport function renderActionCard(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n headerContent = 'Default action card title',\n icon,\n bodyContent = 'Default body content. Click to edit.',\n } = allData;\n\n const [, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const defaultClasses = 'text-black p-4 rounded-lg shadow border flex flex-col h-full';\n\n return (\n <Card \n className={defaultClasses} \n style={{\n background: 'linear-gradient(0deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4)), linear-gradient(90.01deg, rgba(255, 255, 255, 0.4) -36.34%, rgba(42, 68, 212, 0.9) 218.89%)'\n }}\n isEditable={false} \n contentEditable={false} \n {...rest}\n >\n <CardContent className=\"p-0\" isEditable={false} contentEditable={false}>\n <div className=\"px-4 py-3\">\n <div className=\"flex items-start flex-col\">\n <div className=\"flex items-center justify-between w-full\">\n <div className=\"text-xl font-semibold\">{headerContent}</div>\n <div className=\"text-5xl ml-2 flex items-center\" aria-hidden=\"true\">\n {getIconFromString(icon)}\n </div>\n </div>\n <div className=\"w-full mt-1\">\n {!bodyContent ? (\n <span className=\"flex flex-row items-center px-3 py-2\">\n <CircleAlert className=\"w-3 h-3 text-gray-400 mr-1\" />\n <p className=\"text-sm text-gray-500 max-w-md text-center\">\n No data available for given filters\n </p>\n </span>\n ) : (\n <div className=\"text-base leading-relaxed\">{bodyContent}</div>\n )}\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n );\n}\n\nexport function renderCard(props: any): JSX.Element {\n const { isEditable = false, gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n headerContent,\n headerDescription,\n bodyContent,\n footerContent,\n footerClass,\n footerIcon,\n contentMetadata,\n contentMetadataClass,\n className,\n } = allData;\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const defaultClasses = 'bg-white text-black p-4 rounded-lg border flex flex-col h-full shadow-none';\n const defaultFooterClasses = footerContent ? 'text-sm bg-pink-50 text-pink-900 shadow-sm' : 'text-sm';\n const defaultContentMetadataClasses = 'text-xs';\n const mergedCardClassName = className ? cn(defaultClasses, className) : defaultClasses;\n const mergedFooterClassName = footerClass\n ? cn(defaultFooterClasses, footerClass)\n : defaultFooterClasses;\n const mergedContentMetadataClassName = contentMetadataClass\n ? cn(defaultContentMetadataClasses, contentMetadataClass)\n : defaultContentMetadataClasses;\n\n function getCardContent() {\n if (attributes.interactionApiInProgress || attributes.loading) {\n return (\n <CardContent>\n <CardLoader />\n </CardContent>\n );\n }\n\n return (\n <React.Fragment>\n <CardHeader>\n <CardTitle data-slot=\"headerContent\" contentEditable={isEditable} className=\"text-lg\">\n {headerContent}\n </CardTitle>\n <CardDescription\n data-slot=\"headerDescription\"\n contentEditable={isEditable}\n className=\"text-sm\"\n >\n {headerDescription}\n </CardDescription>\n </CardHeader>\n\n {!bodyContent ? (\n <span className=\"flex flex-row items-center px-3 py-2\">\n <CircleAlert className=\"w-3 h-3 text-gray-400 mr-1\" />\n <p className=\"text-sm text-gray-500 max-w-md text-center\">\n No data available for given filters\n </p>\n </span>\n ) : (\n <CardContent data-slot=\"bodyContent\" contentEditable={false} className=\"flex-grow\">\n <div className=\"text-3xl font-semibold truncate\">{bodyContent}</div>\n {contentMetadata && (\n <div className={mergedContentMetadataClassName} style={{ color: '#2A44D4' }}>\n {contentMetadata}\n </div>\n )}\n </CardContent>\n )}\n\n <CardFooter\n data-slot=\"footerContent\"\n contentEditable={isEditable}\n className={cn(mergedFooterClassName)}\n >\n {footerIcon && (\n <span className=\"mr-2\" aria-hidden=\"true\">\n {footerIcon}\n </span>\n )}\n {footerContent}\n </CardFooter>\n </React.Fragment>\n );\n }\n\n return (\n <Card {...rest} className={mergedCardClassName}>\n {getCardContent()}\n </Card>\n );\n}\n\nfunction renderChartComponent(chartType: string, data: any, config: any): JSX.Element {\n if (!data || data.length === 0) {\n return renderNoDataFallback();\n }\n\n switch (chartType) {\n case 'pie':\n return (\n <PieChart>\n {data.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={data}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n data.length < 20\n ? ({ name, percent }: { name: string; percent: number; }) => `${name}: ${(percent * 100).toFixed(0)}%`\n : undefined\n }\n labelLine={false}\n />\n </PieChart>\n );\n case 'bar':\n config.dataKeys = config.dataKeys || [];\n\n return (\n <BarChart data={data} {...config.chartUi}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <Legend align=\"left\" wrapperStyle={{ marginLeft: 20 }} />\n {config.dataKeys.map(\n ({ key, name, color }: { key: string; name: string; color: string }) => {\n return (\n <Bar dataKey={key} fill={color ?? '#4caf50'} name={name} key={key} radius={2} />\n );\n },\n )}\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n </BarChart>\n );\n case 'line':\n config.dataKeys = config.dataKeys || [];\n\n return (\n <LineChart data={data} {...config.chartUi}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n {config.dataKeys.map(\n ({ key, name, color }: { key: string; name: string; color: string }) => {\n return (\n <Line\n type=\"monotone\"\n dataKey={key}\n stroke={color ?? '#4caf50'}\n name={name}\n key={key}\n />\n );\n },\n )}\n <Legend align=\"left\" />\n </LineChart>\n );\n default:\n return (\n <PieChart>\n {data.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={data}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n data.length < 20\n ? ({ name, percent }: { name: string; percent: number; }) => `${name}: ${(percent * 100).toFixed(0)}%`\n : undefined\n }\n labelLine={false}\n />\n </PieChart>\n );\n }\n}\n\nexport function renderChart(props: any): JSX.Element {\n const { isEditable = false, gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n const containerRef = useRef<HTMLDivElement>(null);\n const [containerWidth, setContainerWidth] = useState<number>(0);\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n useEffect(() => {\n const updateContainerWidth = () => {\n if (containerRef.current) {\n setContainerWidth(containerRef.current.offsetWidth);\n }\n };\n\n updateContainerWidth();\n window.addEventListener('resize', updateContainerWidth);\n\n return () => window.removeEventListener('resize', updateContainerWidth);\n }, []);\n\n const {\n config = {},\n chartType = 'pie',\n chartData = [],\n className,\n title = 'Title',\n subTitle = 'Subtitle',\n } = allData;\n\n const defaultClasses = 'aspect-auto h-[250px] w-full';\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n if (chartType === 'pie') {\n const colors = getNColors(chartData.length);\n\n for (let i = 0; i < chartData.length; i++) {\n const data = chartData[i];\n\n if (!data.fill) {\n data.fill = colors[i];\n }\n }\n } else if (!config.color) {\n config.color = baseColors[Math.floor(Math.random() * baseColors.length)];\n }\n\n let width: number | undefined = undefined;\n let totalDataPoints = 0;\n\n // Helper function to get responsive config\n const getResponsiveConfig = () => {\n if (\n chartType === 'bar' &&\n totalDataPoints > 15 &&\n containerWidth > 0 &&\n width &&\n width <= containerWidth\n ) {\n // If chart fits in container, use responsive behavior\n return { ...config, chartUi: {} };\n }\n\n return config;\n };\n\n if (chartType === 'bar') {\n config.dataKeys = config.dataKeys || [];\n totalDataPoints = chartData.length * Math.max(1, config.dataKeys.length);\n \n if (totalDataPoints > 15) {\n width =\n totalDataPoints * 20 +\n config.dataKeys.length * 8 * chartData.length +\n chartData.length * 15;\n config.chartUi = {\n barCategoryGap: '10%',\n width,\n };\n } else {\n config.chartUi = {};\n }\n } else if (chartType === 'line') {\n config.dataKeys = config.dataKeys || [];\n totalDataPoints = chartData.length;\n \n if (totalDataPoints > 15) {\n width = Math.max(800, totalDataPoints * 20);\n config.chartUi = {\n width,\n };\n } else {\n config.chartUi = {};\n }\n }\n\n const chartUi = (attributes.interactionApiInProgress || attributes.loading) ? (\n <ChartLoader />\n ) : !chartData ? (\n renderNoDataFallback()\n ) : (\n <React.Fragment>\n {(chartType === 'bar' || chartType === 'line') && totalDataPoints > 15 && width && (containerWidth === 0 || width > containerWidth) ? (\n <div className=\"w-full h-[250px]\">\n <ScrollArea className=\"w-full h-full\">\n <div style={{ minWidth: `${width}px`, width: 'max-content', height: '250px' }}>\n <ResponsiveContainer width={width} height={250}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\n </ChartContainer>\n </ResponsiveContainer>\n </div>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n </div>\n ) : (\n <ResponsiveContainer width=\"100%\" height={250}>\n <ChartContainer {...rest} config={getResponsiveConfig()} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, getResponsiveConfig())}\n </ChartContainer>\n </ResponsiveContainer>\n )}\n </React.Fragment>\n );\n\n return (\n <Card className=\"shadow border mt-2 mb-2\">\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent\n ref={containerRef}\n data-slot=\"bodyContent\"\n contentEditable={false}\n className=\"px-6\"\n >\n {chartUi}\n </CardContent>\n </Card>\n );\n}\n\nexport function renderTable(props: any): JSX.Element {\n const { gjsModel, performInteraction = () => {}, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const cardRef = useRef<HTMLDivElement>(null);\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n const {\n data: rawData,\n headerMapper: rawHeaderMapper = {},\n className,\n isEditable = false,\n title = 'Title',\n subTitle = 'Subtitle',\n actions = [],\n pagination,\n } = allData;\n\n const data = Array.isArray(rawData) ? rawData : [];\n const headerMapper = (() => {\n const cleaned = { ...rawHeaderMapper };\n\n if ('id' in cleaned) {\n delete cleaned.id;\n }\n\n if (data.length > 0) {\n const dataKeys = Object.keys(data[0] || {});\n\n return Object.fromEntries(\n Object.entries(cleaned).filter(([key]) => dataKeys.includes(key))\n );\n }\n\n return cleaned;\n })();\n\n const sortConfig = (() => {\n const { sortColumn, sortDirection } = gjsModel.get('componentProps') ?? {};\n\n return sortColumn && sortDirection ? { [sortColumn]: sortDirection } : {};\n })();\n\n const [viewportWidth, setViewportWidth] = useState<number>(0);\n const [scrollAreaHeight, setScrollAreaHeight] = useState<number>(250);\n\n const calculateTableHeight = (tableWidth: number, rowCount: number) => {\n if (viewportWidth > 0) {\n const widthRatio = tableWidth / viewportWidth;\n const baseTableHeight = 250;\n let targetScrollAreaHeight = baseTableHeight;\n \n if (widthRatio >= 0.8) {\n const headerHeight = 48;\n const rowHeight = 40;\n const calculatedHeight = headerHeight + (rowCount * rowHeight);\n targetScrollAreaHeight = Math.min(calculatedHeight, baseTableHeight);\n }\n \n const tableId = gjsModel.get('id');\n const editor = gjsModel.em || gjsModel.collection?.em;\n const canvasDocument = editor.Canvas.getDocument() || document;\n const tableElement = canvasDocument.querySelector(`[data-table-id=\"${tableId}\"]`) as HTMLElement;\n \n if (tableElement) {\n const headerElement = tableElement.querySelector('[data-slot=\"card-header\"]') as HTMLElement;\n \n if (headerElement && headerElement.offsetHeight > 0) {\n const actualHeaderHeight = headerElement.offsetHeight;\n const standardHeaderHeight = 58;\n const heightDifference = actualHeaderHeight - standardHeaderHeight;\n\n if (heightDifference > 0) {\n targetScrollAreaHeight = targetScrollAreaHeight - heightDifference;\n }\n }\n }\n\n setScrollAreaHeight(targetScrollAreaHeight);\n }\n };\n\n useEffect(() => {\n const updateViewportWidth = () => {\n const iframe = document.querySelector('.gjs-frame');\n const iframeWindow = (iframe as any)?.contentWindow;\n const iframeDocument = iframeWindow?.document;\n \n if (iframeDocument) {\n const dashboardRoot = iframeDocument.getElementById('dashboard-root');\n const effectiveViewportWidth = dashboardRoot?.clientWidth || iframeDocument.documentElement.clientWidth;\n setViewportWidth(effectiveViewportWidth);\n }\n };\n\n updateViewportWidth();\n window.addEventListener('resize', updateViewportWidth);\n \n const iframe = document.querySelector('.gjs-frame');\n const iframeWindow = (iframe as any)?.contentWindow;\n \n if (iframeWindow) {\n iframeWindow.addEventListener('resize', updateViewportWidth);\n }\n \n return () => {\n window.removeEventListener('resize', updateViewportWidth);\n \n if (iframeWindow) {\n iframeWindow.removeEventListener('resize', updateViewportWidth);\n }\n };\n }, []);\n\n useEffect(() => {\n const updateTableWidthAndApplyCSS = () => {\n const tableId = gjsModel.get('id');\n const editor = gjsModel.em || gjsModel.collection?.em;\n const canvasDocument = editor.Canvas.getDocument() || document;\n \n let tableElement = canvasDocument.querySelector(`[data-table-id=\"${tableId}\"]`) as HTMLElement;\n\n if (!tableElement && window.parent !== window) {\n tableElement = window.parent.document.querySelector(`[data-table-id=\"${tableId}\"]`) as HTMLElement;\n }\n \n if (!tableElement) {\n return;\n }\n \n const tableActualWidth = tableElement.getBoundingClientRect().width;\n\n if (tableActualWidth > 0) {\n calculateTableHeight(tableActualWidth, data.length);\n }\n };\n\n const timeoutId = setTimeout(updateTableWidthAndApplyCSS, 150);\n window.addEventListener('resize', updateTableWidthAndApplyCSS);\n\n return () => {\n clearTimeout(timeoutId);\n window.removeEventListener('resize', updateTableWidthAndApplyCSS);\n };\n }, [allData, gjsModel, viewportWidth, data, calculateTableHeight]);\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const parsedData = (() => {\n if (typeof data === 'object' && data !== null && !Array.isArray(data) && (data as any).name === '__peak_placeholder') {\n return [];\n }\n\n if (!Array.isArray(data)) {\n return [];\n }\n\n return data.map((datum: any) => {\n const newData = {\n ...datum,\n };\n\n delete newData.id;\n\n return newData;\n });\n })();\n\n async function onRowAction(rowIndex: number, actionId: string) {\n const id = gjsModel.get('id');\n\n await performInteraction({\n id: actionId,\n interactionType: 'tableButton',\n payload: {\n row: data[rowIndex],\n tableId: id,\n },\n affectedComponents: [],\n });\n }\n\n async function onPageChange(pageNumber: number, pageSize: number) {\n const id = gjsModel.get('id');\n const { sortColumn, sortDirection } = gjsModel.get('componentProps') ?? {};\n\n await performInteraction({\n id,\n interactionType: 'pagination',\n payload: {\n pageNumber,\n pageSize,\n ...(sortColumn && sortDirection && { sortColumn, sortDirection }),\n },\n affectedComponents: getAffectedComponentsWithLoader([id], true),\n });\n }\n\n async function handleSort(column: string, direction: SortDirection) {\n const currentProps = gjsModel.get('componentProps');\n const id = gjsModel.get('id');\n\n gjsModel.set('componentProps', {\n ...currentProps,\n sortColumn: direction ? column : null,\n sortDirection: direction,\n });\n\n await performInteraction({\n id,\n interactionType: 'tableSort',\n payload: {\n sortColumn: direction ? column : null,\n sortDirection: direction,\n tableId: id,\n },\n affectedComponents: getAffectedComponentsWithLoader([id], true),\n });\n }\n\n return (\n <Card\n ref={cardRef}\n className=\"shadow border flex flex-col h-fit overflow-hidden\"\n data-component-type=\"table\"\n data-table-id={gjsModel.get('id')}\n >\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent data-slot=\"bodyContent\" contentEditable={false} className=\"flex-1 flex flex-col overflow-hidden\">\n <DataTable\n data={parsedData}\n headerMapper={headerMapper}\n className={className}\n isEditable={isEditable}\n actions={actions}\n pagination={pagination}\n isLoading={attributes.interactionApiInProgress}\n onRowAction={onRowAction}\n onPageChange={onPageChange}\n onSort={handleSort}\n sortConfig={sortConfig}\n otherProps={rest}\n height={scrollAreaHeight}\n />\n </CardContent>\n </Card>\n );\n}\n\nexport function renderTab(props: any): JSX.Element {\n let tabsWidth = 157;\n\n if (props.tabs.length > 4) {\n tabsWidth = 157;\n }\n\n return (\n <Tabs defaultValue={props.defaultValue}>\n <div className=\"text-center mb-4\">\n <TabsList className=\"bg-[#F9F9FE] border border-[#D4D5DE] p-1 rounded-lg h-auto\">\n {props.tabs.map((tab: string) => (\n <TabsTrigger \n value={tab} \n key={tab} \n className={`\n w-[${tabsWidth}px] h-[38px] gap-1 px-3 py-[11px]\n font-medium text-sm leading-4 \n border-0 bg-[#F9F9FE] text-[#687387] rounded-none\n data-[state=active]:border data-[state=active]:border-solid data-[state=active]:border-[#2A44D4] data-[state=active]:bg-[#EAECFB] data-[state=active]:text-[#263DBF] data-[state=active]:shadow-none data-[state=active]:rounded-md\n transition-all duration-200\n `}\n style={{\n fontFamily: 'Helvetica Neue',\n fontWeight: 500,\n fontSize: '14px',\n lineHeight: '16px',\n letterSpacing: '0%'\n }}\n >\n {tab}\n </TabsTrigger>\n ))}\n </TabsList>\n </div>\n {props.tabs.map((tab: string) => (\n <TabsContent value={tab} className=\"tabs-content\" key={tab} />\n ))}\n </Tabs>\n );\n}\n\nexport function renderMarkdown(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const [isEditing, setIsEditing] = useState(false);\n const editRef = useRef<HTMLDivElement>(null);\n\n const startEditing = () => {\n setIsEditing(true);\n setTimeout(() => {\n setupEditor();\n }, 0);\n };\n\n const setupEditor = () => {\n if (!editRef.current) {\n return;\n }\n\n const editor = editRef.current;\n editor.innerHTML = '';\n editor.textContent = allData.summaryText;\n editor.focus();\n };\n\n // Save changes and exit editing mode\n const saveChanges = () => {\n if (!editRef.current) {\n return;\n }\n\n const content = editRef.current.innerText || '';\n setAllData((prev: Record<string, any>) => ({\n ...prev,\n summaryText: content,\n }));\n setIsEditing(false);\n editRef.current.innerHTML = '';\n };\n\n const markdownStyles = {\n ul: { props: { className: 'list-disc' } },\n h1: { props: { className: 'text-4xl font-bold leading-[4rem]' } },\n h2: { props: { className: 'text-3xl font-bold leading-[3rem]' } },\n h3: { props: { className: 'text-2xl font-bold leading-[2rem]' } },\n h4: { props: { className: 'text-xl font-bold leading-[2.5rem]' } },\n h5: { props: { className: 'text-lg font-bold leading-[2.5rem]' } },\n h6: { props: { className: 'text-base font-bold leading-[2rem]' } },\n };\n\n if (attributes.loading) {\n return <MarkdownLoader />\n }\n\n if (!allData.isEditable) {\n return (\n <div className=\"px-[1em]\" {...rest}>\n <h3 className=\"text-xl font-semibold text-left\">Insights</h3>\n <div data-slot=\"summaryText\">\n <Markdown options={{ overrides: markdownStyles }}>{allData.summaryText}</Markdown>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"p-[1em]\" {...rest}>\n <h3 className=\"text-xl font-semibold text-left\">Insights</h3>\n {isEditing ? (\n <div\n ref={editRef}\n contentEditable\n onBlur={saveChanges}\n data-slot=\"summaryText\"\n className=\"p-2 min-h-[100px] whitespace-pre-wrap\"\n suppressContentEditableWarning={true}\n style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n }}\n />\n ) : (\n <div\n onClick={startEditing}\n data-slot=\"summaryText\"\n style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n }}\n >\n <Markdown options={{ overrides: markdownStyles }}>{allData.summaryText}</Markdown>\n </div>\n )}\n </div>\n );\n}\n\nexport function renderButton(props: any): JSX.Element {\n const { isEditable = false, gjsModel, performInteraction = () => {} } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const {\n text,\n className,\n payload,\n variant = 'default',\n size = 'sm',\n affectedComponents,\n tooltipContent,\n } = allData;\n\n function interact() {\n const id = gjsModel.get('id');\n performInteraction({\n id,\n interactionType: 'button',\n affectedComponents: getAffectedComponentsWithLoader([id, ...affectedComponents], true),\n payload,\n });\n }\n\n return (\n <TooltipButton\n className={className}\n isEditable={isEditable}\n interact={interact}\n attributes={attributes}\n variant={variant}\n size={size}\n text={text}\n tooltipContent={tooltipContent}\n />\n );\n}\n\nconst renderActionCardWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderActionCard(props)}\n </ErrorWrapper>\n);\n\nconst renderButtonWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderButton(props)}\n </ErrorWrapper>\n);\n\nconst renderCardWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderCard(props)}\n </ErrorWrapper>\n);\n\nconst renderChartWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderChart(props)}\n </ErrorWrapper>\n);\n\nconst renderFilterWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderFilter(props)}\n </ErrorWrapper>\n);\n\nconst renderMarkdownWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderMarkdown(props)}\n </ErrorWrapper>\n);\n\nconst renderSearchWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderSearch(props)}\n </ErrorWrapper>\n);\n\nconst renderTableWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderTable(props)}\n </ErrorWrapper>\n);\n\nconst renderTabWithError = (props: any) => (\n <ErrorWrapper componentProps={props}>\n {renderTab(props)}\n </ErrorWrapper>\n);\n\n\nexport function getRenderers(): Record<string, (props: any) => JSX.Element> {\n return {\n ActionCard: renderActionCardWithError,\n Button: renderButtonWithError,\n Card: renderCardWithError,\n Chart: renderChartWithError,\n Filter: renderFilterWithError,\n Markdown: renderMarkdownWithError,\n Search: renderSearchWithError,\n Table: renderTableWithError,\n Tabs: renderTabWithError,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _e
2
2
  /^(\d{1,2})\/(\d{1,2})\/(\d{4})(?:\s*,?\s*(\d{1,2}):(\d{2}))?$/,// DD-MM-YYYY formats
3
3
  /^(\d{1,2})-(\d{1,2})-(\d{4})(?:\s*,?\s*(\d{1,2}):(\d{2}))?$/,// YYYY-MM-DD formats
4
4
  /^(\d{4})-(\d{1,2})-(\d{1,2})(?:\s*,?\s*(\d{1,2}):(\d{2}))?$/,// YYYY/MM/DD formats
5
- /^(\d{4})\/(\d{1,2})\/(\d{1,2})(?:\s*,?\s*(\d{1,2}):(\d{2}))?$/];for(var _i=0,_commonFormats=commonFormats;_i<_commonFormats.length;_i++){var format=_commonFormats[_i];var match=inputText.match(format);if(match){var day=void 0;var month=void 0;var year=void 0;var hours="0";var minutes="0";if(format.source.startsWith("^(\\d{4})")){year=match[1];month=match[2];day=match[3];var _match$=match[4];hours=_match$===void 0?"0":_match$;var _match$2=match[5];minutes=_match$2===void 0?"0":_match$2}else{day=match[1];month=match[2];year=match[3];var _match$3=match[4];hours=_match$3===void 0?"0":_match$3;var _match$4=match[5];minutes=_match$4===void 0?"0":_match$4}var yearNum=parseInt(year,10);var monthNum=parseInt(month,10);var dayNum=parseInt(day,10);var hoursNum=parseInt(hours,10);var minutesNum=parseInt(minutes,10);var parsedDate=new Date(yearNum,monthNum-1,dayNum,hoursNum,minutesNum);if(!isNaN(parsedDate.getTime())&&parsedDate.getFullYear()===yearNum&&parsedDate.getMonth()===monthNum-1&&parsedDate.getDate()===dayNum){return parsedDate}}}try{var result=sherlock.parse(inputText);if(result.startDate){return result.startDate}}catch(error){return null}return null};var validateDateRange=function validateDateRange(date){if(!date){return""}if(minDate&&date<minDate){return"Minimum allowed date is "+formatDateWithTimezone(minDate,getTimezone(),false)}if(maxDate&&date>maxDate){return"Maximum allowed date is "+formatDateWithTimezone(maxDate,getTimezone(),false)}return""};var handleInputBlur=function handleInputBlur(){setIsEditing(false);if(onChange){var parsedDate=parseInputDate(inputValue);if(parsedDate){var errorMessage=validateDateRange(parsedDate);setValidationError(errorMessage);if(!errorMessage){onChange(parsedDate)}}else if(inputValue.trim()===""){setValidationError("");onChange(null)}else{setValidationError("");setInputValue(formatDate(value))}}};var handleKeyDown=function handleKeyDown(e){if(e.key==="Enter"){e.preventDefault();handleInputBlur()}else if(e.key==="Escape"){e.preventDefault();setInputValue(formatDate(value));setValidationError("");setIsEditing(false)}};return/*#__PURE__*/_jsxs("div",{className:"relative",children:[/*#__PURE__*/_jsx("input",{value:inputValue,onChange:handleInputChange,onFocus:handleInputFocus,onBlur:handleInputBlur,onKeyDown:handleKeyDown,onClick:handleClick,placeholder:placeholder||label,disabled:disabled,className:inputClasses+" "+(disabled?disabledClasses:enabledClasses)+" "+(isOpen?"ring-2 ring-blue-500":""),title:showTime?"Enter date and time":"Enter date"}),/*#__PURE__*/_jsx("div",{className:"absolute right-3 top-7 transform -translate-y-1/2 flex items-center gap-1",children:/*#__PURE__*/_jsx(Calendar,{size:16,className:"text-gray-400 cursor-pointer",onClick:handleClick})}),validationError&&/*#__PURE__*/_jsx("div",{className:"absolute top-full left-0 text-xs text-red-600 px-2 mb-2 z-10",children:validationError})]})};export function DatePicker(_ref2){var _ref2$className=_ref2.className,className=_ref2$className===void 0?"":_ref2$className,_ref2$disabled=_ref2.disabled,disabled=_ref2$disabled===void 0?false:_ref2$disabled,_ref2$enableTime=_ref2.enableTime,enableTime=_ref2$enableTime===void 0?false:_ref2$enableTime,_ref2$isClearable=_ref2.isClearable,isClearable=_ref2$isClearable===void 0?true:_ref2$isClearable,maxDate=_ref2.maxDate,minDate=_ref2.minDate,onChange=_ref2.onChange,_ref2$value=_ref2.value,value=_ref2$value===void 0?null:_ref2$value,open=_ref2.open,onClickOutside=_ref2.onClickOutside,_ref2$showTimeSelect=_ref2.showTimeSelect,showTimeSelect=_ref2$showTimeSelect===void 0?false:_ref2$showTimeSelect,_ref2$timeFormat=_ref2.timeFormat,timeFormat=_ref2$timeFormat===void 0?"HH:mm":_ref2$timeFormat,_ref2$timeIntervals=_ref2.timeIntervals,timeIntervals=_ref2$timeIntervals===void 0?15:_ref2$timeIntervals,_ref2$inline=_ref2.inline,inline=_ref2$inline===void 0?true:_ref2$inline;var dateFormat=showTimeSelect||enableTime?"yyyy-MM-dd HH:mm":"yyyy-MM-dd";var date=typeof value==="string"&&value?new Date(value):value;var shouldShowTime=showTimeSelect||enableTime;var datePickerProps={selected:date,minDate:minDate,maxDate:maxDate,disabled:disabled,isClearable:isClearable,onChange:onChange,dateFormat:dateFormat,showTimeSelect:shouldShowTime,timeFormat:timeFormat,timeIntervals:timeIntervals,timeCaption:"Time",portalId:"date-picker-portal",popperClassName:"date-picker-popper !z-[9999]",popperPlacement:"bottom-end",inline:inline,open:open,onClickOutside:onClickOutside,className:classnames(className,inputClasses)};return/*#__PURE__*/_jsx("div",{className:"relative inline-block "+className,children:/*#__PURE__*/_jsx("div",{className:"absolute z-[9999] mt-1 border rounded-md shadow-lg bg-white",children:/*#__PURE__*/_jsx(ReactDatePicker,_extends({},datePickerProps))})})}export function renderDateFilter(_ref3){var _convertFromStoredDat,_convertFromStoredDat2,_convertFromStoredDat3,_convertFromStoredDat4,_convertFromStoredDat5,_convertFromStoredDat6,_convertFromStoredDat7,_convertFromStoredDat8;var gjsModel=_ref3.gjsModel,performInteraction=_ref3.performInteraction;var wrapperRef=useRef(null);var buttonRef=useRef(null);var startDatePickerRef=useRef(null);var endDatePickerRef=useRef(null);var dropdownRef=useRef(null);var _useState4=useState(_extends({},gjsModel.get("componentProps"))),componentData=_useState4[0],setComponentData=_useState4[1];var _useState5=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState5[0],setAttributes=_useState5[1];var _useState6=useState(false),isApplying=_useState6[0],setIsApplying=_useState6[1];var _useState7=useState(false),isDropdownOpen=_useState7[0],setIsDropdownOpen=_useState7[1];var _useState8=useState(false),isStartDateOpen=_useState8[0],setIsStartDateOpen=_useState8[1];var _useState9=useState(false),isEndDateOpen=_useState9[0],setIsEndDateOpen=_useState9[1];var _useState0=useState({left:"auto",right:"0"}),dropdownPosition=_useState0[0],setDropdownPosition=_useState0[1];var _componentData$classN=componentData.className,className=_componentData$classN===void 0?"":_componentData$classN,_componentData$affect=componentData.affectedComponents,affectedComponents=_componentData$affect===void 0?[]:_componentData$affect,_componentData$startL=componentData.startLabel,startLabel=_componentData$startL===void 0?"Start date":_componentData$startL,_componentData$endLab=componentData.endLabel,endLabel=_componentData$endLab===void 0?"End date":_componentData$endLab,_componentData$isClea=componentData.isClearable,isClearable=_componentData$isClea===void 0?true:_componentData$isClea,_componentData$dateFo=componentData.dateFormat,dateFormat=_componentData$dateFo===void 0?"yyyy-MM-dd":_componentData$dateFo,minDate=componentData.minDate,maxDate=componentData.maxDate,_componentData$showTi=componentData.showTimeSelect,showTimeSelect=_componentData$showTi===void 0?true:_componentData$showTi,_componentData$timeFo=componentData.timeFormat,timeFormat=_componentData$timeFo===void 0?"HH:mm":_componentData$timeFo,_componentData$timeIn=componentData.timeIntervals,timeIntervals=_componentData$timeIn===void 0?15:_componentData$timeIn,value=componentData.value,defaultValue=componentData["default"];var _getDefaultDates=getDefaultDates(),defaultStartDate=_getDefaultDates.defaultStartDate,defaultEndDate=_getDefaultDates.defaultEndDate;var globalMin=minDate?parseRelativeDate(minDate):undefined;var globalMax=maxDate?parseRelativeDate(maxDate):undefined;var getInitialStartDate=function getInitialStartDate(){if(value!=null&&value.start){return new Date(value.start)}if(defaultValue!=null&&defaultValue.start){return parseRelativeDate(defaultValue.start)}return defaultStartDate};var getInitialEndDate=function getInitialEndDate(){if(value!=null&&value.end){return new Date(value.end)}if(defaultValue!=null&&defaultValue.end){return parseRelativeDate(defaultValue.end)}return defaultEndDate};var _useState1=useState(getInitialStartDate()),startDate=_useState1[0],setStartDate=_useState1[1];var _useState10=useState(getInitialEndDate()),endDate=_useState10[0],setEndDate=_useState10[1];var _useState11=useState(null),tempStartDate=_useState11[0],setTempStartDate=_useState11[1];var _useState12=useState(null),tempEndDate=_useState12[0],setTempEndDate=_useState12[1];var isBusy=attributes.interactionApiInProgress||isApplying;var getMaxStartDate=function getMaxStartDate(){return globalMax||tempEndDate};var getMinEndDate=function getMinEndDate(){return globalMin||tempStartDate};var closeAllPickers=function closeAllPickers(){setIsStartDateOpen(false);setIsEndDateOpen(false)};var closeDropdown=function closeDropdown(){setIsDropdownOpen(false);closeAllPickers()};var toggleDropdown=function toggleDropdown(){if(!isDropdownOpen){closeAllPickers()}setIsDropdownOpen(!isDropdownOpen)};var handleStartDateClick=function handleStartDateClick(){if(!isApplying&&!isBusy){setIsEndDateOpen(false);setIsStartDateOpen(!isStartDateOpen)}};var handleEndDateClick=function handleEndDateClick(){if(!isApplying&&!isBusy){setIsStartDateOpen(false);setIsEndDateOpen(!isEndDateOpen)}};useEffect(function(){var _wrapperRef$current$o,_wrapperRef$current;var doc=(_wrapperRef$current$o=(_wrapperRef$current=wrapperRef.current)==null?void 0:_wrapperRef$current.ownerDocument)!=null?_wrapperRef$current$o:document;function handleOutsideClick(e){if(isDropdownOpen&&wrapperRef.current&&!wrapperRef.current.contains(e.target)){closeDropdown()}}function handleEscape(e){if(e.key==="Escape"){closeDropdown()}}doc.addEventListener("pointerdown",handleOutsideClick);doc.addEventListener("keydown",handleEscape);return function(){doc.removeEventListener("pointerdown",handleOutsideClick);doc.removeEventListener("keydown",handleEscape)}},[isDropdownOpen]);// Add click event listeners to detect time selector clicks
5
+ /^(\d{4})\/(\d{1,2})\/(\d{1,2})(?:\s*,?\s*(\d{1,2}):(\d{2}))?$/];for(var _i=0,_commonFormats=commonFormats;_i<_commonFormats.length;_i++){var format=_commonFormats[_i];var match=inputText.match(format);if(match){var day=void 0;var month=void 0;var year=void 0;var hours="0";var minutes="0";if(format.source.startsWith("^(\\d{4})")){year=match[1];month=match[2];day=match[3];var _match$=match[4];hours=_match$===void 0?"0":_match$;var _match$2=match[5];minutes=_match$2===void 0?"0":_match$2}else{day=match[1];month=match[2];year=match[3];var _match$3=match[4];hours=_match$3===void 0?"0":_match$3;var _match$4=match[5];minutes=_match$4===void 0?"0":_match$4}var yearNum=parseInt(year,10);var monthNum=parseInt(month,10);var dayNum=parseInt(day,10);var hoursNum=parseInt(hours,10);var minutesNum=parseInt(minutes,10);var parsedDate=new Date(yearNum,monthNum-1,dayNum,hoursNum,minutesNum);if(!isNaN(parsedDate.getTime())&&parsedDate.getFullYear()===yearNum&&parsedDate.getMonth()===monthNum-1&&parsedDate.getDate()===dayNum){return parsedDate}}}try{var result=sherlock.parse(inputText);if(result.startDate){return result.startDate}}catch(error){return null}return null};var validateDateRange=function validateDateRange(date){if(!date){return""}if(minDate&&date<minDate){return"Minimum allowed date is "+formatDateWithTimezone(minDate,getTimezone(),false)}if(maxDate&&date>maxDate){return"Maximum allowed date is "+formatDateWithTimezone(maxDate,getTimezone(),false)}return""};var handleInputBlur=function handleInputBlur(){setIsEditing(false);if(onChange){var parsedDate=parseInputDate(inputValue);if(parsedDate){var errorMessage=validateDateRange(parsedDate);setValidationError(errorMessage);if(!errorMessage){onChange(parsedDate)}}else if(inputValue.trim()===""){setValidationError("");onChange(null)}else{setValidationError("");setInputValue(formatDate(value))}}};var handleKeyDown=function handleKeyDown(e){if(e.key==="Enter"){e.preventDefault();handleInputBlur()}else if(e.key==="Escape"){e.preventDefault();setInputValue(formatDate(value));setValidationError("");setIsEditing(false)}};return/*#__PURE__*/_jsxs("div",{className:"relative",children:[/*#__PURE__*/_jsx("input",{value:inputValue,onChange:handleInputChange,onFocus:handleInputFocus,onBlur:handleInputBlur,onKeyDown:handleKeyDown,onClick:handleClick,placeholder:placeholder||label,disabled:disabled,className:inputClasses+" "+(disabled?disabledClasses:enabledClasses)+" "+(isOpen?"ring-2 ring-blue-500":""),title:showTime?"Enter date and time":"Enter date"}),/*#__PURE__*/_jsx("div",{className:"absolute right-3 top-7 transform -translate-y-1/2 flex items-center gap-1",children:/*#__PURE__*/_jsx(Calendar,{size:16,className:"text-gray-400 cursor-pointer",onClick:handleClick})}),validationError&&/*#__PURE__*/_jsx("div",{className:"absolute top-full left-0 text-xs text-red-600 px-2 mb-2 z-10",children:validationError})]})};export function DatePicker(_ref2){var _ref2$className=_ref2.className,className=_ref2$className===void 0?"":_ref2$className,_ref2$disabled=_ref2.disabled,disabled=_ref2$disabled===void 0?false:_ref2$disabled,_ref2$enableTime=_ref2.enableTime,enableTime=_ref2$enableTime===void 0?false:_ref2$enableTime,_ref2$isClearable=_ref2.isClearable,isClearable=_ref2$isClearable===void 0?true:_ref2$isClearable,maxDate=_ref2.maxDate,minDate=_ref2.minDate,onChange=_ref2.onChange,_ref2$value=_ref2.value,value=_ref2$value===void 0?null:_ref2$value,open=_ref2.open,onClickOutside=_ref2.onClickOutside,_ref2$showTimeSelect=_ref2.showTimeSelect,showTimeSelect=_ref2$showTimeSelect===void 0?false:_ref2$showTimeSelect,_ref2$timeFormat=_ref2.timeFormat,timeFormat=_ref2$timeFormat===void 0?"HH:mm":_ref2$timeFormat,_ref2$timeIntervals=_ref2.timeIntervals,timeIntervals=_ref2$timeIntervals===void 0?15:_ref2$timeIntervals,_ref2$inline=_ref2.inline,inline=_ref2$inline===void 0?true:_ref2$inline;var dateFormat=showTimeSelect||enableTime?"yyyy-MM-dd HH:mm":"yyyy-MM-dd";var date=typeof value==="string"&&value?new Date(value):value;var shouldShowTime=showTimeSelect||enableTime;var datePickerProps={selected:date,minDate:minDate,maxDate:maxDate,disabled:disabled,isClearable:isClearable,onChange:onChange,dateFormat:dateFormat,showTimeSelect:shouldShowTime,timeFormat:timeFormat,timeIntervals:timeIntervals,timeCaption:"Time",portalId:"date-picker-portal",popperClassName:"date-picker-popper !z-[9999]",popperPlacement:"bottom-end",inline:inline,open:open,onClickOutside:onClickOutside,className:classnames(className,inputClasses)};return/*#__PURE__*/_jsx("div",{className:"relative inline-block "+className,children:/*#__PURE__*/_jsx("div",{className:"absolute z-[9999] mt-1 border rounded-md shadow-lg bg-white",children:/*#__PURE__*/_jsx(ReactDatePicker,_extends({},datePickerProps))})})}export function renderDateFilter(_ref3){var _convertFromStoredDat,_convertFromStoredDat2,_convertFromStoredDat3,_convertFromStoredDat4,_convertFromStoredDat5,_convertFromStoredDat6,_convertFromStoredDat7,_convertFromStoredDat8;var gjsModel=_ref3.gjsModel,performInteraction=_ref3.performInteraction;var wrapperRef=useRef(null);var buttonRef=useRef(null);var startDatePickerRef=useRef(null);var endDatePickerRef=useRef(null);var dropdownRef=useRef(null);var _useState4=useState(_extends({},gjsModel.get("componentProps"))),componentData=_useState4[0],setComponentData=_useState4[1];var _useState5=useState(_extends({},gjsModel.get("attributes"))),attributes=_useState5[0],setAttributes=_useState5[1];var _useState6=useState(false),isApplying=_useState6[0],setIsApplying=_useState6[1];var _useState7=useState(false),isDropdownOpen=_useState7[0],setIsDropdownOpen=_useState7[1];var _useState8=useState(false),isStartDateOpen=_useState8[0],setIsStartDateOpen=_useState8[1];var _useState9=useState(false),isEndDateOpen=_useState9[0],setIsEndDateOpen=_useState9[1];var _useState10=useState({left:"auto",right:"0"}),dropdownPosition=_useState10[0],setDropdownPosition=_useState10[1];var _componentData$classN=componentData.className,className=_componentData$classN===void 0?"":_componentData$classN,_componentData$affect=componentData.affectedComponents,affectedComponents=_componentData$affect===void 0?[]:_componentData$affect,_componentData$startL=componentData.startLabel,startLabel=_componentData$startL===void 0?"Start date":_componentData$startL,_componentData$endLab=componentData.endLabel,endLabel=_componentData$endLab===void 0?"End date":_componentData$endLab,_componentData$isClea=componentData.isClearable,isClearable=_componentData$isClea===void 0?true:_componentData$isClea,_componentData$dateFo=componentData.dateFormat,dateFormat=_componentData$dateFo===void 0?"yyyy-MM-dd":_componentData$dateFo,minDate=componentData.minDate,maxDate=componentData.maxDate,_componentData$showTi=componentData.showTimeSelect,showTimeSelect=_componentData$showTi===void 0?true:_componentData$showTi,_componentData$timeFo=componentData.timeFormat,timeFormat=_componentData$timeFo===void 0?"HH:mm":_componentData$timeFo,_componentData$timeIn=componentData.timeIntervals,timeIntervals=_componentData$timeIn===void 0?15:_componentData$timeIn,value=componentData.value,defaultValue=componentData["default"];var _getDefaultDates=getDefaultDates(),defaultStartDate=_getDefaultDates.defaultStartDate,defaultEndDate=_getDefaultDates.defaultEndDate;var globalMin=minDate?parseRelativeDate(minDate):undefined;var globalMax=maxDate?parseRelativeDate(maxDate):undefined;var getInitialStartDate=function getInitialStartDate(){if(value!=null&&value.start){return new Date(value.start)}if(defaultValue!=null&&defaultValue.start){return parseRelativeDate(defaultValue.start)}return defaultStartDate};var getInitialEndDate=function getInitialEndDate(){if(value!=null&&value.end){return new Date(value.end)}if(defaultValue!=null&&defaultValue.end){return parseRelativeDate(defaultValue.end)}return defaultEndDate};var _useState11=useState(getInitialStartDate()),startDate=_useState11[0],setStartDate=_useState11[1];var _useState12=useState(getInitialEndDate()),endDate=_useState12[0],setEndDate=_useState12[1];var _useState13=useState(null),tempStartDate=_useState13[0],setTempStartDate=_useState13[1];var _useState14=useState(null),tempEndDate=_useState14[0],setTempEndDate=_useState14[1];var isBusy=attributes.interactionApiInProgress||isApplying;var getMaxStartDate=function getMaxStartDate(){return globalMax||tempEndDate};var getMinEndDate=function getMinEndDate(){return globalMin||tempStartDate};var closeAllPickers=function closeAllPickers(){setIsStartDateOpen(false);setIsEndDateOpen(false)};var closeDropdown=function closeDropdown(){setIsDropdownOpen(false);closeAllPickers()};var toggleDropdown=function toggleDropdown(){if(!isDropdownOpen){closeAllPickers()}setIsDropdownOpen(!isDropdownOpen)};var handleStartDateClick=function handleStartDateClick(){if(!isApplying&&!isBusy){setIsEndDateOpen(false);setIsStartDateOpen(!isStartDateOpen)}};var handleEndDateClick=function handleEndDateClick(){if(!isApplying&&!isBusy){setIsStartDateOpen(false);setIsEndDateOpen(!isEndDateOpen)}};useEffect(function(){var _wrapperRef$current$o,_wrapperRef$current;var doc=(_wrapperRef$current$o=(_wrapperRef$current=wrapperRef.current)==null?void 0:_wrapperRef$current.ownerDocument)!=null?_wrapperRef$current$o:document;function handleOutsideClick(e){if(isDropdownOpen&&wrapperRef.current&&!wrapperRef.current.contains(e.target)){closeDropdown()}}function handleEscape(e){if(e.key==="Escape"){closeDropdown()}}doc.addEventListener("pointerdown",handleOutsideClick);doc.addEventListener("keydown",handleEscape);return function(){doc.removeEventListener("pointerdown",handleOutsideClick);doc.removeEventListener("keydown",handleEscape)}},[isDropdownOpen]);// Add click event listeners to detect time selector clicks
6
6
  useEffect(function(){var handleTimeClick=function handleTimeClick(event,isStartPicker){var target=event.target;// Check if the click was on time-related elements
7
7
  var isTimeClick=target.closest(".react-datepicker__time-container")||target.closest(".react-datepicker__time-list")||target.closest(".react-datepicker__time-list-item")||target.classList.contains("react-datepicker__time-list-item");if(isTimeClick&&showTimeSelect){// Close the picker after a small delay to allow the time selection to complete
8
8
  setTimeout(function(){if(isStartPicker){setIsStartDateOpen(false)}else{setIsEndDateOpen(false)}},100)}};var startPickerElement=startDatePickerRef.current;var endPickerElement=endDatePickerRef.current;if(isStartDateOpen&&startPickerElement){var handleStartTimeClick=function handleStartTimeClick(e){return handleTimeClick(e,true)};startPickerElement.addEventListener("click",handleStartTimeClick);return function(){startPickerElement.removeEventListener("click",handleStartTimeClick)}}if(isEndDateOpen&&endPickerElement){var handleEndTimeClick=function handleEndTimeClick(e){return handleTimeClick(e,false)};endPickerElement.addEventListener("click",handleEndTimeClick);return function(){endPickerElement.removeEventListener("click",handleEndTimeClick)}}// Always return undefined if no cleanup is needed
@@ -1 +1 @@
1
- {"version":3,"file":"date-filter.js","names":["useEffect","useRef","useState","Calendar","Loader2Icon","X","ReactDatePicker","zonedTimeToUtc","utcToZonedTime","classnames","getAffectedComponentsWithLoader","Button","sherlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TIMEZONE","getTimezone","window","localStorage","getItem","formatDateWithTimezone","date","timezone","showTime","formatOptions","_extends","day","month","year","hour","minute","hour12","timeZone","toLocaleString","convertToTargetTimezone","targetTimezone","convertFromStoredDate","inputClasses","disabledClasses","enabledClasses","buttonClasses","closeButtonClasses","dropdownClasses","parseRelativeDate","dateString","Date","result","parse","startDate","getDefaultDates","now","oneYearAgo","setFullYear","getFullYear","oneYearFromNow","defaultStartDate","getMonth","getDate","defaultEndDate","DateInput","_ref","label","value","onClick","disabled","placeholder","isOpen","_ref$showTime","onChange","minDate","maxDate","_useState","inputValue","setInputValue","_useState2","isEditing","setIsEditing","_useState3","validationError","setValidationError","formatDate","handleClick","e","preventDefault","stopPropagation","handleInputChange","target","handleInputFocus","parseInputDate","inputText","trim","commonFormats","_i","_commonFormats","length","format","match","hours","minutes","source","startsWith","_match$","_match$2","_match$3","_match$4","yearNum","parseInt","monthNum","dayNum","hoursNum","minutesNum","parsedDate","isNaN","getTime","error","validateDateRange","handleInputBlur","errorMessage","handleKeyDown","key","className","children","onFocus","onBlur","onKeyDown","title","size","DatePicker","_ref2","_ref2$className","_ref2$disabled","_ref2$enableTime","enableTime","_ref2$isClearable","isClearable","_ref2$value","open","onClickOutside","_ref2$showTimeSelect","showTimeSelect","_ref2$timeFormat","timeFormat","_ref2$timeIntervals","timeIntervals","_ref2$inline","inline","dateFormat","shouldShowTime","datePickerProps","selected","timeCaption","portalId","popperClassName","popperPlacement","renderDateFilter","_ref3","_convertFromStoredDat","_convertFromStoredDat2","_convertFromStoredDat3","_convertFromStoredDat4","_convertFromStoredDat5","_convertFromStoredDat6","_convertFromStoredDat7","_convertFromStoredDat8","gjsModel","performInteraction","wrapperRef","buttonRef","startDatePickerRef","endDatePickerRef","dropdownRef","_useState4","get","componentData","setComponentData","_useState5","attributes","setAttributes","_useState6","isApplying","setIsApplying","_useState7","isDropdownOpen","setIsDropdownOpen","_useState8","isStartDateOpen","setIsStartDateOpen","_useState9","isEndDateOpen","setIsEndDateOpen","_useState0","left","right","dropdownPosition","setDropdownPosition","_componentData$classN","_componentData$affect","affectedComponents","_componentData$startL","startLabel","_componentData$endLab","endLabel","_componentData$isClea","_componentData$dateFo","_componentData$showTi","_componentData$timeFo","_componentData$timeIn","defaultValue","_getDefaultDates","globalMin","undefined","globalMax","getInitialStartDate","start","getInitialEndDate","end","_useState1","setStartDate","_useState10","endDate","setEndDate","_useState11","tempStartDate","setTempStartDate","_useState12","tempEndDate","setTempEndDate","isBusy","interactionApiInProgress","getMaxStartDate","getMinEndDate","closeAllPickers","closeDropdown","toggleDropdown","handleStartDateClick","handleEndDateClick","_wrapperRef$current$o","_wrapperRef$current","doc","current","ownerDocument","document","handleOutsideClick","contains","handleEscape","addEventListener","removeEventListener","handleTimeClick","event","isStartPicker","isTimeClick","closest","classList","setTimeout","startPickerElement","endPickerElement","handleStartTimeClick","handleEndTimeClick","handleStartDateChange","adjustedDate","handleEndDateChange","handleApply","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","dateValues","id","wrap","_callee$","_context","prev","next","toISOString","set","interactionType","concat","finish","stop","apply","arguments","_document$getElementB","buttonRect","getBoundingClientRect","dropdownWidth","iframeViewportWidth","documentElement","clientWidth","iframeBodyWidth","getElementById","spaceToRight","spaceToLeft","shiftLeft","updateComponentData","_newData$value","_componentData$value","_newData$value2","_componentData$value2","newData","updateAttributes","on","off","ref","style","variant"],"sources":["../../../../src/shadcn/components/ui/date-filter.tsx"],"sourcesContent":["/* eslint-disable func-style */\n/* eslint-disable camelcase */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useRef, useState } from 'react';\nimport { Calendar, Loader2Icon, X } from 'lucide-react';\nimport ReactDatePicker from 'react-datepicker';\nimport { zonedTimeToUtc, utcToZonedTime } from 'date-fns-tz';\nimport classnames from 'classnames';\n\nimport { getAffectedComponentsWithLoader } from '../../../helpers';\nimport { Button } from './button';\nimport sherlock from 'sherlockjs';\n\nexport type DatePickerProps = {\n className?: string;\n dateFormat?: string;\n disabled?: boolean;\n enableTime?: boolean;\n isInputEditable?: boolean;\n isClearable?: boolean;\n label?: string;\n maxDate?: Date | undefined;\n minDate?: Date | undefined;\n onChange(date: Date | null): void;\n value: Date | null;\n open?: boolean;\n onClickOutside?: () => void;\n showTimeSelect?: boolean;\n timeFormat?: string;\n timeIntervals?: number;\n inline?: boolean;\n};\n\ntype DateFilterProps = {\n gjsModel: any;\n performInteraction: (payload: Record<string, any>) => Promise<void>;\n};\n\nconst TIMEZONE = 'TIMEZONE';\n\nfunction getTimezone() {\n return window.localStorage.getItem(TIMEZONE) || 'UTC';\n}\n\nconst formatDateWithTimezone = (date: Date | null, timezone: string, showTime = false): string => {\n if (!date) {\n return '';\n }\n\n const formatOptions: Intl.DateTimeFormatOptions = {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n ...(showTime && {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n }),\n timeZone: timezone,\n };\n\n return date.toLocaleString('en-GB', formatOptions);\n};\n\nconst convertToTargetTimezone = (date: Date | null): Date | null => {\n if (!date) {return null;}\n \n const targetTimezone = getTimezone();\n\n return zonedTimeToUtc(date, targetTimezone);\n};\n\nconst convertFromStoredDate = (date: Date | null): Date | null => {\n if (!date) {return null;}\n \n const targetTimezone = getTimezone();\n \n return utcToZonedTime(date, targetTimezone);\n};\n\nconst inputClasses =\n 'w-full px-3 py-2 border border-gray-300 rounded-md mb-1 focus:outline-none focus:ring-2 focus:ring-blue-500';\nconst disabledClasses = 'opacity-60 cursor-not-allowed bg-gray-50';\nconst enabledClasses = 'cursor-pointer';\n\nconst buttonClasses =\n 'flex items-center gap-2 px-3 py-2 border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 transition-colors';\nconst closeButtonClasses =\n 'p-1 rounded-md hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500';\n\nconst dropdownClasses =\n 'absolute top-full mt-1 bg-white rounded-lg shadow-lg border border-gray-200 p-4 w-[380px] z-[9999]';\n\nconst parseRelativeDate = (dateString: string | Date | null): Date | null => {\n if (!dateString) {\n return null;\n }\n\n if (dateString instanceof Date) {\n return dateString;\n }\n\n const result = sherlock.parse(dateString as string);\n\n if (result.startDate) {\n return result.startDate;\n }\n\n return null;\n};\n\nconst getDefaultDates = () => {\n const now = new Date();\n const oneYearAgo = new Date(now);\n oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1);\n const oneYearFromNow = new Date(now);\n oneYearFromNow.setFullYear(oneYearFromNow.getFullYear() + 1);\n\n return {\n defaultStartDate: new Date(\n oneYearAgo.getFullYear(),\n oneYearAgo.getMonth(),\n oneYearAgo.getDate(),\n 0,\n 0,\n 0,\n ),\n defaultEndDate: new Date(\n oneYearFromNow.getFullYear(),\n oneYearFromNow.getMonth(),\n oneYearFromNow.getDate(),\n 23,\n 59,\n 59,\n ),\n };\n};\n\nconst DateInput = ({\n label,\n value,\n onClick,\n disabled,\n placeholder,\n isOpen,\n showTime = false,\n onChange,\n minDate,\n maxDate,\n}: {\n label: string;\n value: Date | null;\n onClick: () => void;\n disabled?: boolean;\n placeholder?: string;\n isOpen?: boolean;\n showTime?: boolean;\n onChange?: (date: Date | null) => void;\n minDate?: Date | null;\n maxDate?: Date | null;\n}) => {\n const [inputValue, setInputValue] = useState('');\n const [isEditing, setIsEditing] = useState(false);\n const [validationError, setValidationError] = useState<string>('');\n\n const formatDate = (date: Date | null) => {\n const timezone = getTimezone();\n\n return formatDateWithTimezone(date, timezone, showTime);\n };\n\n useEffect(() => {\n if (!isEditing) {\n setInputValue(formatDate(value));\n }\n }, [value, showTime, isEditing]);\n\n const handleClick = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (!disabled) {\n onClick();\n }\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value);\n };\n\n const handleInputFocus = () => {\n setIsEditing(true);\n setValidationError('');\n };\n\n const parseInputDate = (inputText: string): Date | null => {\n if (!inputText.trim()) {\n return null;\n }\n\n const commonFormats = [\n // DD/MM/YYYY formats\n /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n // DD-MM-YYYY formats\n /^(\\d{1,2})-(\\d{1,2})-(\\d{4})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n // YYYY-MM-DD formats\n /^(\\d{4})-(\\d{1,2})-(\\d{1,2})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n // YYYY/MM/DD formats\n /^(\\d{4})\\/(\\d{1,2})\\/(\\d{1,2})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n ];\n\n for (const format of commonFormats) {\n const match = inputText.match(format);\n\n if (match) {\n let day: string; let month: string; let year: string; let hours = '0'; let minutes = '0';\n \n if (format.source.startsWith('^(\\\\d{4})')) {\n [, year, month, day, hours = '0', minutes = '0'] = match;\n } else {\n [, day, month, year, hours = '0', minutes = '0'] = match;\n }\n\n const yearNum = parseInt(year, 10);\n const monthNum = parseInt(month, 10);\n const dayNum = parseInt(day, 10);\n const hoursNum = parseInt(hours, 10);\n const minutesNum = parseInt(minutes, 10);\n\n const parsedDate = new Date(\n yearNum,\n monthNum - 1,\n dayNum,\n hoursNum,\n minutesNum\n );\n\n if (\n !isNaN(parsedDate.getTime()) &&\n parsedDate.getFullYear() === yearNum &&\n parsedDate.getMonth() === monthNum - 1 &&\n parsedDate.getDate() === dayNum\n ) {\n return parsedDate;\n }\n }\n }\n\n try {\n const result = sherlock.parse(inputText);\n\n if (result.startDate) {\n return result.startDate;\n }\n } catch (error) {\n\n return null;\n }\n\n return null;\n };\n\n const validateDateRange = (date: Date | null): string => {\n if (!date) {\n return '';\n }\n\n if (minDate && date < minDate) {\n return `Minimum allowed date is ${formatDateWithTimezone(minDate, getTimezone(), false)}`;\n }\n\n if (maxDate && date > maxDate) {\n return `Maximum allowed date is ${formatDateWithTimezone(maxDate, getTimezone(), false)}`;\n }\n\n return '';\n };\n\n const handleInputBlur = () => {\n setIsEditing(false);\n \n if (onChange) {\n const parsedDate = parseInputDate(inputValue);\n \n if (parsedDate) {\n const errorMessage = validateDateRange(parsedDate);\n setValidationError(errorMessage);\n \n if (!errorMessage) {\n onChange(parsedDate);\n }\n } else if (inputValue.trim() === '') {\n setValidationError('');\n onChange(null);\n } else {\n setValidationError('');\n setInputValue(formatDate(value));\n }\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleInputBlur();\n } else if (e.key === 'Escape') {\n e.preventDefault();\n setInputValue(formatDate(value));\n setValidationError('');\n setIsEditing(false);\n }\n };\n\n return (\n <div className=\"relative\">\n <input\n value={inputValue}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyDown={handleKeyDown}\n onClick={handleClick}\n placeholder={placeholder || label}\n disabled={disabled}\n className={`${inputClasses} ${disabled ? disabledClasses : enabledClasses} ${\n isOpen ? 'ring-2 ring-blue-500' : ''\n }`}\n title={showTime ? \n \"Enter date and time\" : \n \"Enter date\"\n }\n />\n <div className=\"absolute right-3 top-7 transform -translate-y-1/2 flex items-center gap-1\">\n <Calendar size={16} className=\"text-gray-400 cursor-pointer\" onClick={handleClick} />\n </div>\n {validationError && (\n <div className=\"absolute top-full left-0 text-xs text-red-600 px-2 mb-2 z-10\">\n {validationError}\n </div>\n )}\n </div>\n );\n};\n\nexport function DatePicker({\n className = '',\n disabled = false,\n enableTime = false,\n isClearable = true,\n maxDate,\n minDate,\n onChange,\n value = null,\n open,\n onClickOutside,\n showTimeSelect = false,\n timeFormat = 'HH:mm',\n timeIntervals = 15,\n inline = true,\n}: DatePickerProps) {\n const dateFormat = showTimeSelect || enableTime ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';\n\n const date = typeof value === 'string' && value ? new Date(value) : value;\n\n const shouldShowTime = showTimeSelect || enableTime;\n\n const datePickerProps = {\n selected: date,\n minDate,\n maxDate,\n disabled,\n isClearable,\n onChange,\n dateFormat,\n showTimeSelect: shouldShowTime,\n timeFormat,\n timeIntervals,\n timeCaption: 'Time',\n portalId: 'date-picker-portal',\n popperClassName: 'date-picker-popper !z-[9999]',\n popperPlacement: 'bottom-end',\n inline,\n open,\n onClickOutside,\n className: classnames(className, inputClasses),\n } as any;\n\n return (\n <div className={`relative inline-block ${className}`}>\n {\n <div className=\"absolute z-[9999] mt-1 border rounded-md shadow-lg bg-white\">\n <ReactDatePicker {...datePickerProps} />\n </div>\n }\n </div>\n );\n}\n\nexport function renderDateFilter({ gjsModel, performInteraction }: DateFilterProps) {\n const wrapperRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const startDatePickerRef = useRef<HTMLDivElement>(null);\n const endDatePickerRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const [componentData, setComponentData] = useState({ ...gjsModel.get('componentProps') });\n const [attributes, setAttributes] = useState({ ...gjsModel.get('attributes') });\n const [isApplying, setIsApplying] = useState(false);\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [isStartDateOpen, setIsStartDateOpen] = useState(false);\n const [isEndDateOpen, setIsEndDateOpen] = useState(false);\n const [dropdownPosition, setDropdownPosition] = useState({ left: 'auto', right: '0' });\n\n const {\n className = '',\n affectedComponents = [],\n startLabel = 'Start date',\n endLabel = 'End date',\n isClearable = true,\n dateFormat = 'yyyy-MM-dd',\n minDate,\n maxDate,\n showTimeSelect = true,\n timeFormat = 'HH:mm',\n timeIntervals = 15,\n value,\n default: defaultValue,\n } = componentData;\n\n const { defaultStartDate, defaultEndDate } = getDefaultDates();\n\n const globalMin = minDate ? parseRelativeDate(minDate) : undefined;\n const globalMax = maxDate ? parseRelativeDate(maxDate) : undefined;\n\n const getInitialStartDate = (): Date | null => {\n if (value?.start) {\n return new Date(value.start);\n }\n\n if (defaultValue?.start) {\n return parseRelativeDate(defaultValue.start);\n }\n\n return defaultStartDate;\n };\n\n const getInitialEndDate = (): Date | null => {\n if (value?.end) {\n return new Date(value.end);\n }\n\n if (defaultValue?.end) {\n return parseRelativeDate(defaultValue.end);\n }\n\n return defaultEndDate;\n };\n\n const [startDate, setStartDate] = useState<Date | null>(getInitialStartDate());\n const [endDate, setEndDate] = useState<Date | null>(getInitialEndDate());\n const [tempStartDate, setTempStartDate] = useState<Date | null>(null);\n const [tempEndDate, setTempEndDate] = useState<Date | null>(null);\n\n const isBusy = attributes.interactionApiInProgress || isApplying;\n\n const getMaxStartDate = () => {\n return globalMax || tempEndDate;\n };\n\n const getMinEndDate = () => {\n return globalMin || tempStartDate;\n };\n\n const closeAllPickers = () => {\n setIsStartDateOpen(false);\n setIsEndDateOpen(false);\n };\n\n const closeDropdown = () => {\n setIsDropdownOpen(false);\n closeAllPickers();\n };\n\n const toggleDropdown = () => {\n if (!isDropdownOpen) {\n closeAllPickers();\n }\n\n setIsDropdownOpen(!isDropdownOpen);\n };\n\n const handleStartDateClick = () => {\n if (!isApplying && !isBusy) {\n setIsEndDateOpen(false);\n setIsStartDateOpen(!isStartDateOpen);\n }\n };\n\n const handleEndDateClick = () => {\n if (!isApplying && !isBusy) {\n setIsStartDateOpen(false);\n setIsEndDateOpen(!isEndDateOpen);\n }\n };\n\n useEffect(() => {\n const doc = wrapperRef.current?.ownerDocument ?? document;\n\n function handleOutsideClick(e: PointerEvent) {\n if (isDropdownOpen && wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n closeDropdown();\n }\n }\n\n function handleEscape(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n closeDropdown();\n }\n }\n\n doc.addEventListener('pointerdown', handleOutsideClick);\n doc.addEventListener('keydown', handleEscape);\n\n return () => {\n doc.removeEventListener('pointerdown', handleOutsideClick);\n doc.removeEventListener('keydown', handleEscape);\n };\n }, [isDropdownOpen]);\n\n // Add click event listeners to detect time selector clicks\n useEffect(() => {\n const handleTimeClick = (event: MouseEvent, isStartPicker: boolean) => {\n const target = event.target as HTMLElement;\n \n // Check if the click was on time-related elements\n const isTimeClick = target.closest('.react-datepicker__time-container') ||\n target.closest('.react-datepicker__time-list') ||\n target.closest('.react-datepicker__time-list-item') ||\n target.classList.contains('react-datepicker__time-list-item');\n\n if (isTimeClick && showTimeSelect) {\n // Close the picker after a small delay to allow the time selection to complete\n setTimeout(() => {\n if (isStartPicker) {\n setIsStartDateOpen(false);\n } else {\n setIsEndDateOpen(false);\n }\n }, 100);\n }\n };\n\n const startPickerElement = startDatePickerRef.current;\n const endPickerElement = endDatePickerRef.current;\n\n if (isStartDateOpen && startPickerElement) {\n const handleStartTimeClick = (e: MouseEvent) => handleTimeClick(e, true);\n startPickerElement.addEventListener('click', handleStartTimeClick);\n \n return () => {\n startPickerElement.removeEventListener('click', handleStartTimeClick);\n };\n }\n\n if (isEndDateOpen && endPickerElement) {\n const handleEndTimeClick = (e: MouseEvent) => handleTimeClick(e, false);\n endPickerElement.addEventListener('click', handleEndTimeClick);\n \n return () => {\n endPickerElement.removeEventListener('click', handleEndTimeClick);\n };\n }\n\n // Always return undefined if no cleanup is needed\n return undefined;\n }, [isStartDateOpen, isEndDateOpen, showTimeSelect]);\n\n const handleStartDateChange = (date: Date | null) => {\n const adjustedDate = convertToTargetTimezone(date);\n setTempStartDate(adjustedDate);\n\n if (!showTimeSelect) {\n setIsStartDateOpen(false);\n }\n };\n\n const handleEndDateChange = (date: Date | null) => {\n const adjustedDate = convertToTargetTimezone(date);\n setTempEndDate(adjustedDate);\n\n if (!showTimeSelect) {\n setIsEndDateOpen(false);\n }\n };\n\n const handleApply = async () => {\n setIsApplying(true);\n\n try {\n const dateValues = {\n start: tempStartDate?.toISOString() || null,\n end: tempEndDate?.toISOString() || null,\n };\n\n gjsModel.set('componentProps', {\n ...gjsModel.get('componentProps'),\n value: dateValues,\n });\n\n const id = gjsModel.get('id');\n\n setStartDate(tempStartDate);\n setEndDate(tempEndDate);\n\n await performInteraction({\n interactionType: 'dateFilter',\n id,\n affectedComponents: getAffectedComponentsWithLoader([id, ...affectedComponents], true),\n });\n\n closeDropdown();\n } finally {\n setIsApplying(false);\n }\n };\n\n useEffect(() => {\n if (isDropdownOpen) {\n setTempStartDate(startDate);\n setTempEndDate(endDate);\n } else {\n closeAllPickers();\n }\n }, [isDropdownOpen, startDate, endDate]);\n\n useEffect(() => {\n if (!isDropdownOpen || !buttonRef.current) {\n return;\n }\n\n const buttonRect = buttonRef.current.getBoundingClientRect();\n const dropdownWidth = 380;\n const iframeViewportWidth = document.documentElement.clientWidth;\n const iframeBodyWidth =\n document.getElementById('dashboard-root')?.clientWidth || iframeViewportWidth;\n\n const spaceToRight = iframeBodyWidth - buttonRect.right;\n const spaceToLeft = buttonRect.left;\n\n if (spaceToLeft >= dropdownWidth) {\n setDropdownPosition({ left: 'auto', right: '0px' });\n } else if (spaceToRight < dropdownWidth && spaceToLeft < dropdownWidth) {\n const shiftLeft = dropdownWidth - spaceToRight + 16;\n setDropdownPosition({ left: `-${shiftLeft}px`, right: 'auto' });\n } else if (spaceToRight >= dropdownWidth) {\n setDropdownPosition({ left: '0px', right: 'auto' });\n }\n }, [isDropdownOpen]);\n\n useEffect(() => {\n const updateComponentData = () => {\n const newData = { ...gjsModel.get('componentProps') };\n setComponentData(newData);\n\n if (newData.value?.start && newData.value.start !== componentData.value?.start) {\n setStartDate(new Date(newData.value.start));\n }\n\n if (newData.value?.end && newData.value.end !== componentData.value?.end) {\n setEndDate(new Date(newData.value.end));\n }\n };\n\n const updateAttributes = () => {\n setAttributes({ ...gjsModel.get('attributes') });\n };\n\n gjsModel.on('change:componentProps', updateComponentData);\n gjsModel.on('change:attributes', updateAttributes);\n\n return () => {\n gjsModel.off('change:componentProps', updateComponentData);\n gjsModel.off('change:attributes', updateAttributes);\n };\n }, [gjsModel, componentData.value]);\n\n return (\n <div ref={wrapperRef} className={`relative ${className}`}>\n <button\n ref={buttonRef}\n onClick={toggleDropdown}\n disabled={isBusy}\n className={`${buttonClasses} ${isBusy ? disabledClasses : enabledClasses}`}\n title=\"Open Date & Time Filter\"\n >\n <div className=\"flex items-center gap-1\">\n <Calendar size={16} className=\"text-gray-600\" />\n </div>\n {isBusy && <Loader2Icon size={14} className=\"animate-spin text-blue-500\" />}\n </button>\n\n {isDropdownOpen && (\n <div ref={dropdownRef} className={dropdownClasses} style={dropdownPosition}>\n <div className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <h3 className=\"text-sm font-medium text-gray-900\">Select date & time range</h3>\n <button onClick={closeDropdown} className={closeButtonClasses}>\n <X size={14} className=\"text-gray-400\" />\n </button>\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium text-gray-700\">{startLabel}</label>\n <div className=\"relative\">\n <DateInput\n label={startLabel}\n value={tempStartDate}\n onClick={handleStartDateClick}\n disabled={isApplying}\n placeholder=\"Select start date\"\n isOpen={isStartDateOpen}\n showTime={showTimeSelect}\n onChange={handleStartDateChange}\n minDate={globalMin ? (convertFromStoredDate(globalMin) ?? undefined) : undefined}\n maxDate={getMaxStartDate() ? (convertFromStoredDate(getMaxStartDate()) ?? undefined) : undefined}\n />\n </div>\n\n {isStartDateOpen && (\n <div ref={startDatePickerRef} className=\"mt-2 p-2\">\n <ReactDatePicker\n selected={convertFromStoredDate(tempStartDate)}\n onChange={handleStartDateChange}\n minDate={globalMin ? (convertFromStoredDate(globalMin) ?? undefined) : undefined}\n maxDate={getMaxStartDate() ? (convertFromStoredDate(getMaxStartDate()) ?? undefined) : undefined}\n showTimeSelect={showTimeSelect}\n timeFormat={timeFormat}\n timeIntervals={timeIntervals}\n timeCaption=\"Time\"\n dateFormat={showTimeSelect ? 'dd/MM/yyyy HH:mm' : dateFormat}\n inline={true}\n isClearable={isClearable}\n disabled={isApplying}\n />\n </div>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium text-gray-700\">{endLabel}</label>\n <div className=\"relative\">\n <DateInput\n label={endLabel}\n value={tempEndDate}\n onClick={handleEndDateClick}\n disabled={isApplying}\n placeholder=\"Select end date\"\n isOpen={isEndDateOpen}\n showTime={showTimeSelect}\n onChange={handleEndDateChange}\n minDate={getMinEndDate() ? (convertFromStoredDate(getMinEndDate()) ?? undefined) : undefined}\n maxDate={globalMax ? (convertFromStoredDate(globalMax) ?? undefined) : undefined}\n />\n </div>\n\n {isEndDateOpen && (\n <div ref={endDatePickerRef} className=\"mt-2 p-2\">\n <ReactDatePicker\n selected={convertFromStoredDate(tempEndDate)}\n onChange={handleEndDateChange}\n minDate={getMinEndDate() ? (convertFromStoredDate(getMinEndDate()) ?? undefined) : undefined}\n maxDate={globalMax ? (convertFromStoredDate(globalMax) ?? undefined) : undefined}\n showTimeSelect={showTimeSelect}\n timeFormat={timeFormat}\n timeIntervals={timeIntervals}\n timeCaption=\"Time\"\n dateFormat={showTimeSelect ? 'dd/MM/yyyy HH:mm' : dateFormat}\n inline={true}\n isClearable={isClearable}\n disabled={isApplying}\n />\n </div>\n )}\n </div>\n\n <div className=\"flex gap-2 pt-2\">\n <Button\n variant=\"outline\"\n onClick={closeDropdown}\n disabled={isApplying}\n className=\"flex-1 h-8 text-xs bg-[#EAECFB] border border-[#2A44D4] text-[#263DBF] hover:bg-[#EAECFB] hover:text-[#263DBF]\"\n size=\"sm\"\n >\n Cancel\n </Button>\n <Button\n onClick={handleApply}\n disabled={isApplying}\n className=\"flex-1 h-8 text-xs bg-[#2A44D4] text-white hover:bg-[#2A44D4] hover:text-white\"\n size=\"sm\"\n >\n {isApplying ? (\n <>\n <Loader2Icon size={12} className=\"animate-spin mr-1\" />\n </>\n ) : (\n 'Apply'\n )}\n </Button>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"date-filter.js","names":["useEffect","useRef","useState","Calendar","Loader2Icon","X","ReactDatePicker","zonedTimeToUtc","utcToZonedTime","classnames","getAffectedComponentsWithLoader","Button","sherlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TIMEZONE","getTimezone","window","localStorage","getItem","formatDateWithTimezone","date","timezone","showTime","formatOptions","_extends","day","month","year","hour","minute","hour12","timeZone","toLocaleString","convertToTargetTimezone","targetTimezone","convertFromStoredDate","inputClasses","disabledClasses","enabledClasses","buttonClasses","closeButtonClasses","dropdownClasses","parseRelativeDate","dateString","Date","result","parse","startDate","getDefaultDates","now","oneYearAgo","setFullYear","getFullYear","oneYearFromNow","defaultStartDate","getMonth","getDate","defaultEndDate","DateInput","_ref","label","value","onClick","disabled","placeholder","isOpen","_ref$showTime","onChange","minDate","maxDate","_useState","inputValue","setInputValue","_useState2","isEditing","setIsEditing","_useState3","validationError","setValidationError","formatDate","handleClick","e","preventDefault","stopPropagation","handleInputChange","target","handleInputFocus","parseInputDate","inputText","trim","commonFormats","_i","_commonFormats","length","format","match","hours","minutes","source","startsWith","_match$","_match$2","_match$3","_match$4","yearNum","parseInt","monthNum","dayNum","hoursNum","minutesNum","parsedDate","isNaN","getTime","error","validateDateRange","handleInputBlur","errorMessage","handleKeyDown","key","className","children","onFocus","onBlur","onKeyDown","title","size","DatePicker","_ref2","_ref2$className","_ref2$disabled","_ref2$enableTime","enableTime","_ref2$isClearable","isClearable","_ref2$value","open","onClickOutside","_ref2$showTimeSelect","showTimeSelect","_ref2$timeFormat","timeFormat","_ref2$timeIntervals","timeIntervals","_ref2$inline","inline","dateFormat","shouldShowTime","datePickerProps","selected","timeCaption","portalId","popperClassName","popperPlacement","renderDateFilter","_ref3","_convertFromStoredDat","_convertFromStoredDat2","_convertFromStoredDat3","_convertFromStoredDat4","_convertFromStoredDat5","_convertFromStoredDat6","_convertFromStoredDat7","_convertFromStoredDat8","gjsModel","performInteraction","wrapperRef","buttonRef","startDatePickerRef","endDatePickerRef","dropdownRef","_useState4","get","componentData","setComponentData","_useState5","attributes","setAttributes","_useState6","isApplying","setIsApplying","_useState7","isDropdownOpen","setIsDropdownOpen","_useState8","isStartDateOpen","setIsStartDateOpen","_useState9","isEndDateOpen","setIsEndDateOpen","_useState10","left","right","dropdownPosition","setDropdownPosition","_componentData$classN","_componentData$affect","affectedComponents","_componentData$startL","startLabel","_componentData$endLab","endLabel","_componentData$isClea","_componentData$dateFo","_componentData$showTi","_componentData$timeFo","_componentData$timeIn","defaultValue","_getDefaultDates","globalMin","undefined","globalMax","getInitialStartDate","start","getInitialEndDate","end","_useState11","setStartDate","_useState12","endDate","setEndDate","_useState13","tempStartDate","setTempStartDate","_useState14","tempEndDate","setTempEndDate","isBusy","interactionApiInProgress","getMaxStartDate","getMinEndDate","closeAllPickers","closeDropdown","toggleDropdown","handleStartDateClick","handleEndDateClick","_wrapperRef$current$o","_wrapperRef$current","doc","current","ownerDocument","document","handleOutsideClick","contains","handleEscape","addEventListener","removeEventListener","handleTimeClick","event","isStartPicker","isTimeClick","closest","classList","setTimeout","startPickerElement","endPickerElement","handleStartTimeClick","handleEndTimeClick","handleStartDateChange","adjustedDate","handleEndDateChange","handleApply","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","dateValues","id","wrap","_callee$","_context","prev","next","toISOString","set","interactionType","concat","finish","stop","apply","arguments","_document$getElementB","buttonRect","getBoundingClientRect","dropdownWidth","iframeViewportWidth","documentElement","clientWidth","iframeBodyWidth","getElementById","spaceToRight","spaceToLeft","shiftLeft","updateComponentData","_newData$value","_componentData$value","_newData$value2","_componentData$value2","newData","updateAttributes","on","off","ref","style","variant"],"sources":["../../../../src/shadcn/components/ui/date-filter.tsx"],"sourcesContent":["/* eslint-disable func-style */\n/* eslint-disable camelcase */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useRef, useState } from 'react';\nimport { Calendar, Loader2Icon, X } from 'lucide-react';\nimport ReactDatePicker from 'react-datepicker';\nimport { zonedTimeToUtc, utcToZonedTime } from 'date-fns-tz';\nimport classnames from 'classnames';\n\nimport { getAffectedComponentsWithLoader } from '../../../helpers';\nimport { Button } from './button';\nimport sherlock from 'sherlockjs';\n\nexport type DatePickerProps = {\n className?: string;\n dateFormat?: string;\n disabled?: boolean;\n enableTime?: boolean;\n isInputEditable?: boolean;\n isClearable?: boolean;\n label?: string;\n maxDate?: Date | undefined;\n minDate?: Date | undefined;\n onChange(date: Date | null): void;\n value: Date | null;\n open?: boolean;\n onClickOutside?: () => void;\n showTimeSelect?: boolean;\n timeFormat?: string;\n timeIntervals?: number;\n inline?: boolean;\n};\n\ntype DateFilterProps = {\n gjsModel: any;\n performInteraction: (payload: Record<string, any>) => Promise<void>;\n};\n\nconst TIMEZONE = 'TIMEZONE';\n\nfunction getTimezone() {\n return window.localStorage.getItem(TIMEZONE) || 'UTC';\n}\n\nconst formatDateWithTimezone = (date: Date | null, timezone: string, showTime = false): string => {\n if (!date) {\n return '';\n }\n\n const formatOptions: Intl.DateTimeFormatOptions = {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n ...(showTime && {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n }),\n timeZone: timezone,\n };\n\n return date.toLocaleString('en-GB', formatOptions);\n};\n\nconst convertToTargetTimezone = (date: Date | null): Date | null => {\n if (!date) {return null;}\n \n const targetTimezone = getTimezone();\n\n return zonedTimeToUtc(date, targetTimezone);\n};\n\nconst convertFromStoredDate = (date: Date | null): Date | null => {\n if (!date) {return null;}\n \n const targetTimezone = getTimezone();\n \n return utcToZonedTime(date, targetTimezone);\n};\n\nconst inputClasses =\n 'w-full px-3 py-2 border border-gray-300 rounded-md mb-1 focus:outline-none focus:ring-2 focus:ring-blue-500';\nconst disabledClasses = 'opacity-60 cursor-not-allowed bg-gray-50';\nconst enabledClasses = 'cursor-pointer';\n\nconst buttonClasses =\n 'flex items-center gap-2 px-3 py-2 border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 transition-colors';\nconst closeButtonClasses =\n 'p-1 rounded-md hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500';\n\nconst dropdownClasses =\n 'absolute top-full mt-1 bg-white rounded-lg shadow-lg border border-gray-200 p-4 w-[380px] z-[9999]';\n\nconst parseRelativeDate = (dateString: string | Date | null): Date | null => {\n if (!dateString) {\n return null;\n }\n\n if (dateString instanceof Date) {\n return dateString;\n }\n\n const result = sherlock.parse(dateString as string);\n\n if (result.startDate) {\n return result.startDate;\n }\n\n return null;\n};\n\nconst getDefaultDates = () => {\n const now = new Date();\n const oneYearAgo = new Date(now);\n oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1);\n const oneYearFromNow = new Date(now);\n oneYearFromNow.setFullYear(oneYearFromNow.getFullYear() + 1);\n\n return {\n defaultStartDate: new Date(\n oneYearAgo.getFullYear(),\n oneYearAgo.getMonth(),\n oneYearAgo.getDate(),\n 0,\n 0,\n 0,\n ),\n defaultEndDate: new Date(\n oneYearFromNow.getFullYear(),\n oneYearFromNow.getMonth(),\n oneYearFromNow.getDate(),\n 23,\n 59,\n 59,\n ),\n };\n};\n\nconst DateInput = ({\n label,\n value,\n onClick,\n disabled,\n placeholder,\n isOpen,\n showTime = false,\n onChange,\n minDate,\n maxDate,\n}: {\n label: string;\n value: Date | null;\n onClick: () => void;\n disabled?: boolean;\n placeholder?: string;\n isOpen?: boolean;\n showTime?: boolean;\n onChange?: (date: Date | null) => void;\n minDate?: Date | null;\n maxDate?: Date | null;\n}) => {\n const [inputValue, setInputValue] = useState('');\n const [isEditing, setIsEditing] = useState(false);\n const [validationError, setValidationError] = useState<string>('');\n\n const formatDate = (date: Date | null) => {\n const timezone = getTimezone();\n\n return formatDateWithTimezone(date, timezone, showTime);\n };\n\n useEffect(() => {\n if (!isEditing) {\n setInputValue(formatDate(value));\n }\n }, [value, showTime, isEditing]);\n\n const handleClick = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (!disabled) {\n onClick();\n }\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value);\n };\n\n const handleInputFocus = () => {\n setIsEditing(true);\n setValidationError('');\n };\n\n const parseInputDate = (inputText: string): Date | null => {\n if (!inputText.trim()) {\n return null;\n }\n\n const commonFormats = [\n // DD/MM/YYYY formats\n /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n // DD-MM-YYYY formats\n /^(\\d{1,2})-(\\d{1,2})-(\\d{4})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n // YYYY-MM-DD formats\n /^(\\d{4})-(\\d{1,2})-(\\d{1,2})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n // YYYY/MM/DD formats\n /^(\\d{4})\\/(\\d{1,2})\\/(\\d{1,2})(?:\\s*,?\\s*(\\d{1,2}):(\\d{2}))?$/,\n ];\n\n for (const format of commonFormats) {\n const match = inputText.match(format);\n\n if (match) {\n let day: string; let month: string; let year: string; let hours = '0'; let minutes = '0';\n \n if (format.source.startsWith('^(\\\\d{4})')) {\n [, year, month, day, hours = '0', minutes = '0'] = match;\n } else {\n [, day, month, year, hours = '0', minutes = '0'] = match;\n }\n\n const yearNum = parseInt(year, 10);\n const monthNum = parseInt(month, 10);\n const dayNum = parseInt(day, 10);\n const hoursNum = parseInt(hours, 10);\n const minutesNum = parseInt(minutes, 10);\n\n const parsedDate = new Date(\n yearNum,\n monthNum - 1,\n dayNum,\n hoursNum,\n minutesNum\n );\n\n if (\n !isNaN(parsedDate.getTime()) &&\n parsedDate.getFullYear() === yearNum &&\n parsedDate.getMonth() === monthNum - 1 &&\n parsedDate.getDate() === dayNum\n ) {\n return parsedDate;\n }\n }\n }\n\n try {\n const result = sherlock.parse(inputText);\n\n if (result.startDate) {\n return result.startDate;\n }\n } catch (error) {\n\n return null;\n }\n\n return null;\n };\n\n const validateDateRange = (date: Date | null): string => {\n if (!date) {\n return '';\n }\n\n if (minDate && date < minDate) {\n return `Minimum allowed date is ${formatDateWithTimezone(minDate, getTimezone(), false)}`;\n }\n\n if (maxDate && date > maxDate) {\n return `Maximum allowed date is ${formatDateWithTimezone(maxDate, getTimezone(), false)}`;\n }\n\n return '';\n };\n\n const handleInputBlur = () => {\n setIsEditing(false);\n \n if (onChange) {\n const parsedDate = parseInputDate(inputValue);\n \n if (parsedDate) {\n const errorMessage = validateDateRange(parsedDate);\n setValidationError(errorMessage);\n \n if (!errorMessage) {\n onChange(parsedDate);\n }\n } else if (inputValue.trim() === '') {\n setValidationError('');\n onChange(null);\n } else {\n setValidationError('');\n setInputValue(formatDate(value));\n }\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleInputBlur();\n } else if (e.key === 'Escape') {\n e.preventDefault();\n setInputValue(formatDate(value));\n setValidationError('');\n setIsEditing(false);\n }\n };\n\n return (\n <div className=\"relative\">\n <input\n value={inputValue}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyDown={handleKeyDown}\n onClick={handleClick}\n placeholder={placeholder || label}\n disabled={disabled}\n className={`${inputClasses} ${disabled ? disabledClasses : enabledClasses} ${\n isOpen ? 'ring-2 ring-blue-500' : ''\n }`}\n title={showTime ? \n \"Enter date and time\" : \n \"Enter date\"\n }\n />\n <div className=\"absolute right-3 top-7 transform -translate-y-1/2 flex items-center gap-1\">\n <Calendar size={16} className=\"text-gray-400 cursor-pointer\" onClick={handleClick} />\n </div>\n {validationError && (\n <div className=\"absolute top-full left-0 text-xs text-red-600 px-2 mb-2 z-10\">\n {validationError}\n </div>\n )}\n </div>\n );\n};\n\nexport function DatePicker({\n className = '',\n disabled = false,\n enableTime = false,\n isClearable = true,\n maxDate,\n minDate,\n onChange,\n value = null,\n open,\n onClickOutside,\n showTimeSelect = false,\n timeFormat = 'HH:mm',\n timeIntervals = 15,\n inline = true,\n}: DatePickerProps) {\n const dateFormat = showTimeSelect || enableTime ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';\n\n const date = typeof value === 'string' && value ? new Date(value) : value;\n\n const shouldShowTime = showTimeSelect || enableTime;\n\n const datePickerProps = {\n selected: date,\n minDate,\n maxDate,\n disabled,\n isClearable,\n onChange,\n dateFormat,\n showTimeSelect: shouldShowTime,\n timeFormat,\n timeIntervals,\n timeCaption: 'Time',\n portalId: 'date-picker-portal',\n popperClassName: 'date-picker-popper !z-[9999]',\n popperPlacement: 'bottom-end',\n inline,\n open,\n onClickOutside,\n className: classnames(className, inputClasses),\n } as any;\n\n return (\n <div className={`relative inline-block ${className}`}>\n {\n <div className=\"absolute z-[9999] mt-1 border rounded-md shadow-lg bg-white\">\n <ReactDatePicker {...datePickerProps} />\n </div>\n }\n </div>\n );\n}\n\nexport function renderDateFilter({ gjsModel, performInteraction }: DateFilterProps) {\n const wrapperRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const startDatePickerRef = useRef<HTMLDivElement>(null);\n const endDatePickerRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const [componentData, setComponentData] = useState({ ...gjsModel.get('componentProps') });\n const [attributes, setAttributes] = useState({ ...gjsModel.get('attributes') });\n const [isApplying, setIsApplying] = useState(false);\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [isStartDateOpen, setIsStartDateOpen] = useState(false);\n const [isEndDateOpen, setIsEndDateOpen] = useState(false);\n const [dropdownPosition, setDropdownPosition] = useState({ left: 'auto', right: '0' });\n\n const {\n className = '',\n affectedComponents = [],\n startLabel = 'Start date',\n endLabel = 'End date',\n isClearable = true,\n dateFormat = 'yyyy-MM-dd',\n minDate,\n maxDate,\n showTimeSelect = true,\n timeFormat = 'HH:mm',\n timeIntervals = 15,\n value,\n default: defaultValue,\n } = componentData;\n\n const { defaultStartDate, defaultEndDate } = getDefaultDates();\n\n const globalMin = minDate ? parseRelativeDate(minDate) : undefined;\n const globalMax = maxDate ? parseRelativeDate(maxDate) : undefined;\n\n const getInitialStartDate = (): Date | null => {\n if (value?.start) {\n return new Date(value.start);\n }\n\n if (defaultValue?.start) {\n return parseRelativeDate(defaultValue.start);\n }\n\n return defaultStartDate;\n };\n\n const getInitialEndDate = (): Date | null => {\n if (value?.end) {\n return new Date(value.end);\n }\n\n if (defaultValue?.end) {\n return parseRelativeDate(defaultValue.end);\n }\n\n return defaultEndDate;\n };\n\n const [startDate, setStartDate] = useState<Date | null>(getInitialStartDate());\n const [endDate, setEndDate] = useState<Date | null>(getInitialEndDate());\n const [tempStartDate, setTempStartDate] = useState<Date | null>(null);\n const [tempEndDate, setTempEndDate] = useState<Date | null>(null);\n\n const isBusy = attributes.interactionApiInProgress || isApplying;\n\n const getMaxStartDate = () => {\n return globalMax || tempEndDate;\n };\n\n const getMinEndDate = () => {\n return globalMin || tempStartDate;\n };\n\n const closeAllPickers = () => {\n setIsStartDateOpen(false);\n setIsEndDateOpen(false);\n };\n\n const closeDropdown = () => {\n setIsDropdownOpen(false);\n closeAllPickers();\n };\n\n const toggleDropdown = () => {\n if (!isDropdownOpen) {\n closeAllPickers();\n }\n\n setIsDropdownOpen(!isDropdownOpen);\n };\n\n const handleStartDateClick = () => {\n if (!isApplying && !isBusy) {\n setIsEndDateOpen(false);\n setIsStartDateOpen(!isStartDateOpen);\n }\n };\n\n const handleEndDateClick = () => {\n if (!isApplying && !isBusy) {\n setIsStartDateOpen(false);\n setIsEndDateOpen(!isEndDateOpen);\n }\n };\n\n useEffect(() => {\n const doc = wrapperRef.current?.ownerDocument ?? document;\n\n function handleOutsideClick(e: PointerEvent) {\n if (isDropdownOpen && wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n closeDropdown();\n }\n }\n\n function handleEscape(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n closeDropdown();\n }\n }\n\n doc.addEventListener('pointerdown', handleOutsideClick);\n doc.addEventListener('keydown', handleEscape);\n\n return () => {\n doc.removeEventListener('pointerdown', handleOutsideClick);\n doc.removeEventListener('keydown', handleEscape);\n };\n }, [isDropdownOpen]);\n\n // Add click event listeners to detect time selector clicks\n useEffect(() => {\n const handleTimeClick = (event: MouseEvent, isStartPicker: boolean) => {\n const target = event.target as HTMLElement;\n \n // Check if the click was on time-related elements\n const isTimeClick = target.closest('.react-datepicker__time-container') ||\n target.closest('.react-datepicker__time-list') ||\n target.closest('.react-datepicker__time-list-item') ||\n target.classList.contains('react-datepicker__time-list-item');\n\n if (isTimeClick && showTimeSelect) {\n // Close the picker after a small delay to allow the time selection to complete\n setTimeout(() => {\n if (isStartPicker) {\n setIsStartDateOpen(false);\n } else {\n setIsEndDateOpen(false);\n }\n }, 100);\n }\n };\n\n const startPickerElement = startDatePickerRef.current;\n const endPickerElement = endDatePickerRef.current;\n\n if (isStartDateOpen && startPickerElement) {\n const handleStartTimeClick = (e: MouseEvent) => handleTimeClick(e, true);\n startPickerElement.addEventListener('click', handleStartTimeClick);\n \n return () => {\n startPickerElement.removeEventListener('click', handleStartTimeClick);\n };\n }\n\n if (isEndDateOpen && endPickerElement) {\n const handleEndTimeClick = (e: MouseEvent) => handleTimeClick(e, false);\n endPickerElement.addEventListener('click', handleEndTimeClick);\n \n return () => {\n endPickerElement.removeEventListener('click', handleEndTimeClick);\n };\n }\n\n // Always return undefined if no cleanup is needed\n return undefined;\n }, [isStartDateOpen, isEndDateOpen, showTimeSelect]);\n\n const handleStartDateChange = (date: Date | null) => {\n const adjustedDate = convertToTargetTimezone(date);\n setTempStartDate(adjustedDate);\n\n if (!showTimeSelect) {\n setIsStartDateOpen(false);\n }\n };\n\n const handleEndDateChange = (date: Date | null) => {\n const adjustedDate = convertToTargetTimezone(date);\n setTempEndDate(adjustedDate);\n\n if (!showTimeSelect) {\n setIsEndDateOpen(false);\n }\n };\n\n const handleApply = async () => {\n setIsApplying(true);\n\n try {\n const dateValues = {\n start: tempStartDate?.toISOString() || null,\n end: tempEndDate?.toISOString() || null,\n };\n\n gjsModel.set('componentProps', {\n ...gjsModel.get('componentProps'),\n value: dateValues,\n });\n\n const id = gjsModel.get('id');\n\n setStartDate(tempStartDate);\n setEndDate(tempEndDate);\n\n await performInteraction({\n interactionType: 'dateFilter',\n id,\n affectedComponents: getAffectedComponentsWithLoader([id, ...affectedComponents], true),\n });\n\n closeDropdown();\n } finally {\n setIsApplying(false);\n }\n };\n\n useEffect(() => {\n if (isDropdownOpen) {\n setTempStartDate(startDate);\n setTempEndDate(endDate);\n } else {\n closeAllPickers();\n }\n }, [isDropdownOpen, startDate, endDate]);\n\n useEffect(() => {\n if (!isDropdownOpen || !buttonRef.current) {\n return;\n }\n\n const buttonRect = buttonRef.current.getBoundingClientRect();\n const dropdownWidth = 380;\n const iframeViewportWidth = document.documentElement.clientWidth;\n const iframeBodyWidth =\n document.getElementById('dashboard-root')?.clientWidth || iframeViewportWidth;\n\n const spaceToRight = iframeBodyWidth - buttonRect.right;\n const spaceToLeft = buttonRect.left;\n\n if (spaceToLeft >= dropdownWidth) {\n setDropdownPosition({ left: 'auto', right: '0px' });\n } else if (spaceToRight < dropdownWidth && spaceToLeft < dropdownWidth) {\n const shiftLeft = dropdownWidth - spaceToRight + 16;\n setDropdownPosition({ left: `-${shiftLeft}px`, right: 'auto' });\n } else if (spaceToRight >= dropdownWidth) {\n setDropdownPosition({ left: '0px', right: 'auto' });\n }\n }, [isDropdownOpen]);\n\n useEffect(() => {\n const updateComponentData = () => {\n const newData = { ...gjsModel.get('componentProps') };\n setComponentData(newData);\n\n if (newData.value?.start && newData.value.start !== componentData.value?.start) {\n setStartDate(new Date(newData.value.start));\n }\n\n if (newData.value?.end && newData.value.end !== componentData.value?.end) {\n setEndDate(new Date(newData.value.end));\n }\n };\n\n const updateAttributes = () => {\n setAttributes({ ...gjsModel.get('attributes') });\n };\n\n gjsModel.on('change:componentProps', updateComponentData);\n gjsModel.on('change:attributes', updateAttributes);\n\n return () => {\n gjsModel.off('change:componentProps', updateComponentData);\n gjsModel.off('change:attributes', updateAttributes);\n };\n }, [gjsModel, componentData.value]);\n\n return (\n <div ref={wrapperRef} className={`relative ${className}`}>\n <button\n ref={buttonRef}\n onClick={toggleDropdown}\n disabled={isBusy}\n className={`${buttonClasses} ${isBusy ? disabledClasses : enabledClasses}`}\n title=\"Open Date & Time Filter\"\n >\n <div className=\"flex items-center gap-1\">\n <Calendar size={16} className=\"text-gray-600\" />\n </div>\n {isBusy && <Loader2Icon size={14} className=\"animate-spin text-blue-500\" />}\n </button>\n\n {isDropdownOpen && (\n <div ref={dropdownRef} className={dropdownClasses} style={dropdownPosition}>\n <div className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <h3 className=\"text-sm font-medium text-gray-900\">Select date & time range</h3>\n <button onClick={closeDropdown} className={closeButtonClasses}>\n <X size={14} className=\"text-gray-400\" />\n </button>\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium text-gray-700\">{startLabel}</label>\n <div className=\"relative\">\n <DateInput\n label={startLabel}\n value={tempStartDate}\n onClick={handleStartDateClick}\n disabled={isApplying}\n placeholder=\"Select start date\"\n isOpen={isStartDateOpen}\n showTime={showTimeSelect}\n onChange={handleStartDateChange}\n minDate={globalMin ? (convertFromStoredDate(globalMin) ?? undefined) : undefined}\n maxDate={getMaxStartDate() ? (convertFromStoredDate(getMaxStartDate()) ?? undefined) : undefined}\n />\n </div>\n\n {isStartDateOpen && (\n <div ref={startDatePickerRef} className=\"mt-2 p-2\">\n <ReactDatePicker\n selected={convertFromStoredDate(tempStartDate)}\n onChange={handleStartDateChange}\n minDate={globalMin ? (convertFromStoredDate(globalMin) ?? undefined) : undefined}\n maxDate={getMaxStartDate() ? (convertFromStoredDate(getMaxStartDate()) ?? undefined) : undefined}\n showTimeSelect={showTimeSelect}\n timeFormat={timeFormat}\n timeIntervals={timeIntervals}\n timeCaption=\"Time\"\n dateFormat={showTimeSelect ? 'dd/MM/yyyy HH:mm' : dateFormat}\n inline={true}\n isClearable={isClearable}\n disabled={isApplying}\n />\n </div>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium text-gray-700\">{endLabel}</label>\n <div className=\"relative\">\n <DateInput\n label={endLabel}\n value={tempEndDate}\n onClick={handleEndDateClick}\n disabled={isApplying}\n placeholder=\"Select end date\"\n isOpen={isEndDateOpen}\n showTime={showTimeSelect}\n onChange={handleEndDateChange}\n minDate={getMinEndDate() ? (convertFromStoredDate(getMinEndDate()) ?? undefined) : undefined}\n maxDate={globalMax ? (convertFromStoredDate(globalMax) ?? undefined) : undefined}\n />\n </div>\n\n {isEndDateOpen && (\n <div ref={endDatePickerRef} className=\"mt-2 p-2\">\n <ReactDatePicker\n selected={convertFromStoredDate(tempEndDate)}\n onChange={handleEndDateChange}\n minDate={getMinEndDate() ? (convertFromStoredDate(getMinEndDate()) ?? undefined) : undefined}\n maxDate={globalMax ? (convertFromStoredDate(globalMax) ?? undefined) : undefined}\n showTimeSelect={showTimeSelect}\n timeFormat={timeFormat}\n timeIntervals={timeIntervals}\n timeCaption=\"Time\"\n dateFormat={showTimeSelect ? 'dd/MM/yyyy HH:mm' : dateFormat}\n inline={true}\n isClearable={isClearable}\n disabled={isApplying}\n />\n </div>\n )}\n </div>\n\n <div className=\"flex gap-2 pt-2\">\n <Button\n variant=\"outline\"\n onClick={closeDropdown}\n disabled={isApplying}\n className=\"flex-1 h-8 text-xs bg-[#EAECFB] border border-[#2A44D4] text-[#263DBF] hover:bg-[#EAECFB] hover:text-[#263DBF]\"\n size=\"sm\"\n >\n Cancel\n </Button>\n <Button\n onClick={handleApply}\n disabled={isApplying}\n className=\"flex-1 h-8 text-xs bg-[#2A44D4] text-white hover:bg-[#2A44D4] hover:text-white\"\n size=\"sm\"\n >\n {isApplying ? (\n <>\n <Loader2Icon size={12} className=\"animate-spin mr-1\" />\n </>\n ) : (\n 'Apply'\n )}\n </Button>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import styled from"styled-components";export var ErrorContainer=styled.div.withConfig({displayName:"error-container__ErrorContainer",componentId:"sc-18iouq5-0"})(["position:relative;width:100%;height:100%;border:",";border-radius:6px;overflow:hidden;animation:",";@keyframes errorShake{0%,100%{transform:translateX(0);}25%{transform:translateX(-2px);}75%{transform:translateX(2px);}}"],function(_ref){var hasError=_ref.hasError;return hasError?"2px solid #ef4444":"none"},function(_ref2){var hasError=_ref2.hasError;return hasError?"errorShake 0.5s ease-in-out":"none"});export var ErrorBanner=styled.div.withConfig({displayName:"error-container__ErrorBanner",componentId:"sc-18iouq5-1"})(["background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);color:white;display:flex;align-items:center;gap:8px;font-weight:500;position:",";top:",";left:",";right:",";z-index:",";transform:",";transform-origin:top left;max-width:",";border-radius:",";box-shadow:",";padding:",";font-size:",";"],function(_ref3){var size=_ref3.size;return size==="small"?"absolute":"relative"},function(_ref4){var size=_ref4.size;return size==="small"?"4px":"auto"},function(_ref5){var size=_ref5.size;return size==="small"?"4px":"auto"},function(_ref6){var size=_ref6.size;return size==="small"?"4px":"auto"},function(_ref7){var size=_ref7.size;return size==="small"?10:"auto"},function(_ref8){var size=_ref8.size;return size==="small"?"scale(0.8)":"none"},function(_ref9){var size=_ref9.size;return size==="small"?"90%":"100%"},function(_ref0){var size=_ref0.size;return size==="small"?"4px":"0"},function(_ref1){var size=_ref1.size;return size==="small"?"0 2px 4px rgba(0, 0, 0, 0.2)":"none"},function(_ref10){var size=_ref10.size;switch(size){case"small":return"4px 8px";case"medium":return"6px 10px";case"large":return"8px 12px";default:return"6px 10px"}},function(_ref11){var size=_ref11.size;switch(size){case"small":return"10px";case"medium":return"11px";case"large":return"12px";default:return"11px"}});export var ErrorIcon=styled.div.withConfig({displayName:"error-container__ErrorIcon",componentId:"sc-18iouq5-2"})(["font-size:",";flex-shrink:0;"],function(_ref12){var size=_ref12.size;switch(size){case"small":return"12px";case"medium":return"13px";case"large":return"14px";default:return"13px"}});export var ErrorContent=styled.div.withConfig({displayName:"error-container__ErrorContent",componentId:"sc-18iouq5-3"})(["flex:1;min-width:0;"]);export var ErrorMessage=styled.div.withConfig({displayName:"error-container__ErrorMessage",componentId:"sc-18iouq5-4"})(["font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:",";"],function(_ref13){var size=_ref13.size;return size==="small"?"0":"1px"});export var ErrorType=styled.div.withConfig({displayName:"error-container__ErrorType",componentId:"sc-18iouq5-5"})(["opacity:0.9;font-size:",";text-transform:uppercase;letter-spacing:",";"],function(_ref14){var size=_ref14.size;switch(size){case"small":return"9px";case"medium":return"10px";case"large":return"11px";default:return"10px"}},function(_ref15){var size=_ref15.size;return size==="small"?"0.2px":"0.3px"});export var ComponentContent=styled.div.withConfig({displayName:"error-container__ComponentContent",componentId:"sc-18iouq5-6"})(["flex:1;background:",";padding:",";padding-top:",";min-height:",";display:flex;flex-direction:column;"],function(_ref16){var hasError=_ref16.hasError;return hasError?"rgba(239, 68, 68, 0.05)":"transparent"},function(_ref17){var hasError=_ref17.hasError,size=_ref17.size;if(!hasError){return"0"}switch(size){case"small":return"4px";case"medium":return"6px";case"large":return"8px";default:return"6px"}},function(_ref18){var hasError=_ref18.hasError,size=_ref18.size;if(!hasError){return"0"}return size==="small"?"20px":"8px"},function(_ref19){var hasError=_ref19.hasError,size=_ref19.size;return hasError&&size==="small"?"60px":"auto"});
1
+ import styled from"styled-components";export var ErrorContainer=styled.div.withConfig({displayName:"error-container__ErrorContainer",componentId:"sc-18iouq5-0"})(["position:relative;width:100%;height:100%;border:",";border-radius:6px;overflow:hidden;animation:",";@keyframes errorShake{0%,100%{transform:translateX(0);}25%{transform:translateX(-2px);}75%{transform:translateX(2px);}}"],function(_ref){var hasError=_ref.hasError;return hasError?"2px solid #ef4444":"none"},function(_ref2){var hasError=_ref2.hasError;return hasError?"errorShake 0.5s ease-in-out":"none"});export var ErrorBanner=styled.div.withConfig({displayName:"error-container__ErrorBanner",componentId:"sc-18iouq5-1"})(["background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);color:white;display:flex;align-items:center;gap:8px;font-weight:500;position:",";top:",";left:",";right:",";z-index:",";transform:",";transform-origin:top left;max-width:",";border-radius:",";box-shadow:",";padding:",";font-size:",";"],function(_ref3){var size=_ref3.size;return size==="small"?"absolute":"relative"},function(_ref4){var size=_ref4.size;return size==="small"?"4px":"auto"},function(_ref5){var size=_ref5.size;return size==="small"?"4px":"auto"},function(_ref6){var size=_ref6.size;return size==="small"?"4px":"auto"},function(_ref7){var size=_ref7.size;return size==="small"?10:"auto"},function(_ref8){var size=_ref8.size;return size==="small"?"scale(0.8)":"none"},function(_ref9){var size=_ref9.size;return size==="small"?"90%":"100%"},function(_ref10){var size=_ref10.size;return size==="small"?"4px":"0"},function(_ref11){var size=_ref11.size;return size==="small"?"0 2px 4px rgba(0, 0, 0, 0.2)":"none"},function(_ref12){var size=_ref12.size;switch(size){case"small":return"4px 8px";case"medium":return"6px 10px";case"large":return"8px 12px";default:return"6px 10px"}},function(_ref13){var size=_ref13.size;switch(size){case"small":return"10px";case"medium":return"11px";case"large":return"12px";default:return"11px"}});export var ErrorIcon=styled.div.withConfig({displayName:"error-container__ErrorIcon",componentId:"sc-18iouq5-2"})(["font-size:",";flex-shrink:0;"],function(_ref14){var size=_ref14.size;switch(size){case"small":return"12px";case"medium":return"13px";case"large":return"14px";default:return"13px"}});export var ErrorContent=styled.div.withConfig({displayName:"error-container__ErrorContent",componentId:"sc-18iouq5-3"})(["flex:1;min-width:0;"]);export var ErrorMessage=styled.div.withConfig({displayName:"error-container__ErrorMessage",componentId:"sc-18iouq5-4"})(["font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:",";"],function(_ref15){var size=_ref15.size;return size==="small"?"0":"1px"});export var ErrorType=styled.div.withConfig({displayName:"error-container__ErrorType",componentId:"sc-18iouq5-5"})(["opacity:0.9;font-size:",";text-transform:uppercase;letter-spacing:",";"],function(_ref16){var size=_ref16.size;switch(size){case"small":return"9px";case"medium":return"10px";case"large":return"11px";default:return"10px"}},function(_ref17){var size=_ref17.size;return size==="small"?"0.2px":"0.3px"});export var ComponentContent=styled.div.withConfig({displayName:"error-container__ComponentContent",componentId:"sc-18iouq5-6"})(["flex:1;background:",";padding:",";padding-top:",";min-height:",";display:flex;flex-direction:column;"],function(_ref18){var hasError=_ref18.hasError;return hasError?"rgba(239, 68, 68, 0.05)":"transparent"},function(_ref19){var hasError=_ref19.hasError,size=_ref19.size;if(!hasError){return"0"}switch(size){case"small":return"4px";case"medium":return"6px";case"large":return"8px";default:return"6px"}},function(_ref20){var hasError=_ref20.hasError,size=_ref20.size;if(!hasError){return"0"}return size==="small"?"20px":"8px"},function(_ref21){var hasError=_ref21.hasError,size=_ref21.size;return hasError&&size==="small"?"60px":"auto"});
2
2
  //# sourceMappingURL=error-container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-container.js","names":["styled","ErrorContainer","div","withConfig","displayName","componentId","_ref","hasError","_ref2","ErrorBanner","_ref3","size","_ref4","_ref5","_ref6","_ref7","_ref8","_ref9","_ref0","_ref1","_ref10","_ref11","ErrorIcon","_ref12","ErrorContent","ErrorMessage","_ref13","ErrorType","_ref14","_ref15","ComponentContent","_ref16","_ref17","_ref18","_ref19"],"sources":["../../../../src/shadcn/components/ui/error-container.tsx"],"sourcesContent":["import styled from 'styled-components';\n\ntype Size = 'small' | 'medium' | 'large';\n\nexport const ErrorContainer = styled.div<{ hasError: boolean }>`\n position: relative;\n width: 100%;\n height: 100%;\n border: ${({ hasError }) => (hasError ? '2px solid #ef4444' : 'none')};\n border-radius: 6px;\n overflow: hidden;\n animation: ${({ hasError }) => (hasError ? 'errorShake 0.5s ease-in-out' : 'none')};\n\n @keyframes errorShake {\n 0%, 100% { transform: translateX(0); }\n 25% { transform: translateX(-2px); }\n 75% { transform: translateX(2px); }\n }\n`;\n\nexport const ErrorBanner = styled.div<{ size: Size }>`\n background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);\n color: white;\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n position: ${({ size }) => (size === 'small' ? 'absolute' : 'relative')};\n top: ${({ size }) => (size === 'small' ? '4px' : 'auto')};\n left: ${({ size }) => (size === 'small' ? '4px' : 'auto')};\n right: ${({ size }) => (size === 'small' ? '4px' : 'auto')};\n z-index: ${({ size }) => (size === 'small' ? 10 : 'auto')};\n transform: ${({ size }) => (size === 'small' ? 'scale(0.8)' : 'none')};\n transform-origin: top left;\n max-width: ${({ size }) => (size === 'small' ? '90%' : '100%')};\n border-radius: ${({ size }) => (size === 'small' ? '4px' : '0')};\n box-shadow: ${({ size }) =>\n size === 'small' ? '0 2px 4px rgba(0, 0, 0, 0.2)' : 'none'};\n\n padding: ${({ size }) => {\n switch (size) {\n case 'small': return '4px 8px';\n case 'medium': return '6px 10px';\n case 'large': return '8px 12px';\n default: return '6px 10px';\n }\n }};\n\n font-size: ${({ size }) => {\n switch (size) {\n case 'small': return '10px';\n case 'medium': return '11px';\n case 'large': return '12px';\n default: return '11px';\n }\n }};\n`;\n\nexport const ErrorIcon = styled.div<{ size: Size }>`\n font-size: ${({ size }) => {\n switch (size) {\n case 'small': return '12px';\n case 'medium': return '13px';\n case 'large': return '14px';\n default: return '13px';\n }\n }};\n flex-shrink: 0;\n`;\n\nexport const ErrorContent = styled.div`\n flex: 1;\n min-width: 0;\n`;\n\nexport const ErrorMessage = styled.div<{ size: Size }>`\n font-weight: 600;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: ${({ size }) => (size === 'small' ? '0' : '1px')};\n`;\n\nexport const ErrorType = styled.div<{ size: Size }>`\n opacity: 0.9;\n font-size: ${({ size }) => {\n switch (size) {\n case 'small': return '9px';\n case 'medium': return '10px';\n case 'large': return '11px';\n default: return '10px';\n }\n }};\n text-transform: uppercase;\n letter-spacing: ${({ size }) => (size === 'small' ? '0.2px' : '0.3px')};\n`;\n\nexport const ComponentContent = styled.div<{ hasError: boolean; size: Size }>`\n flex: 1;\n background: ${({ hasError }) =>\n hasError ? 'rgba(239, 68, 68, 0.05)' : 'transparent'};\n\n padding: ${({ hasError, size }) => {\n if (!hasError) {return '0';}\n\n switch (size) {\n case 'small': return '4px';\n case 'medium': return '6px';\n case 'large': return '8px';\n default: return '6px';\n }\n }};\n\n padding-top: ${({ hasError, size }) => {\n if (!hasError) {return '0';}\n\n return size === 'small' ? '20px' : '8px';\n }};\n\n min-height: ${({ hasError, size }) =>\n hasError && size === 'small' ? '60px' : 'auto'};\n\n display: flex;\n flex-direction: column;\n`;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"error-container.js","names":["styled","ErrorContainer","div","withConfig","displayName","componentId","_ref","hasError","_ref2","ErrorBanner","_ref3","size","_ref4","_ref5","_ref6","_ref7","_ref8","_ref9","_ref10","_ref11","_ref12","_ref13","ErrorIcon","_ref14","ErrorContent","ErrorMessage","_ref15","ErrorType","_ref16","_ref17","ComponentContent","_ref18","_ref19","_ref20","_ref21"],"sources":["../../../../src/shadcn/components/ui/error-container.tsx"],"sourcesContent":["import styled from 'styled-components';\n\ntype Size = 'small' | 'medium' | 'large';\n\nexport const ErrorContainer = styled.div<{ hasError: boolean }>`\n position: relative;\n width: 100%;\n height: 100%;\n border: ${({ hasError }) => (hasError ? '2px solid #ef4444' : 'none')};\n border-radius: 6px;\n overflow: hidden;\n animation: ${({ hasError }) => (hasError ? 'errorShake 0.5s ease-in-out' : 'none')};\n\n @keyframes errorShake {\n 0%, 100% { transform: translateX(0); }\n 25% { transform: translateX(-2px); }\n 75% { transform: translateX(2px); }\n }\n`;\n\nexport const ErrorBanner = styled.div<{ size: Size }>`\n background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);\n color: white;\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n position: ${({ size }) => (size === 'small' ? 'absolute' : 'relative')};\n top: ${({ size }) => (size === 'small' ? '4px' : 'auto')};\n left: ${({ size }) => (size === 'small' ? '4px' : 'auto')};\n right: ${({ size }) => (size === 'small' ? '4px' : 'auto')};\n z-index: ${({ size }) => (size === 'small' ? 10 : 'auto')};\n transform: ${({ size }) => (size === 'small' ? 'scale(0.8)' : 'none')};\n transform-origin: top left;\n max-width: ${({ size }) => (size === 'small' ? '90%' : '100%')};\n border-radius: ${({ size }) => (size === 'small' ? '4px' : '0')};\n box-shadow: ${({ size }) =>\n size === 'small' ? '0 2px 4px rgba(0, 0, 0, 0.2)' : 'none'};\n\n padding: ${({ size }) => {\n switch (size) {\n case 'small': return '4px 8px';\n case 'medium': return '6px 10px';\n case 'large': return '8px 12px';\n default: return '6px 10px';\n }\n }};\n\n font-size: ${({ size }) => {\n switch (size) {\n case 'small': return '10px';\n case 'medium': return '11px';\n case 'large': return '12px';\n default: return '11px';\n }\n }};\n`;\n\nexport const ErrorIcon = styled.div<{ size: Size }>`\n font-size: ${({ size }) => {\n switch (size) {\n case 'small': return '12px';\n case 'medium': return '13px';\n case 'large': return '14px';\n default: return '13px';\n }\n }};\n flex-shrink: 0;\n`;\n\nexport const ErrorContent = styled.div`\n flex: 1;\n min-width: 0;\n`;\n\nexport const ErrorMessage = styled.div<{ size: Size }>`\n font-weight: 600;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: ${({ size }) => (size === 'small' ? '0' : '1px')};\n`;\n\nexport const ErrorType = styled.div<{ size: Size }>`\n opacity: 0.9;\n font-size: ${({ size }) => {\n switch (size) {\n case 'small': return '9px';\n case 'medium': return '10px';\n case 'large': return '11px';\n default: return '10px';\n }\n }};\n text-transform: uppercase;\n letter-spacing: ${({ size }) => (size === 'small' ? '0.2px' : '0.3px')};\n`;\n\nexport const ComponentContent = styled.div<{ hasError: boolean; size: Size }>`\n flex: 1;\n background: ${({ hasError }) =>\n hasError ? 'rgba(239, 68, 68, 0.05)' : 'transparent'};\n\n padding: ${({ hasError, size }) => {\n if (!hasError) {return '0';}\n\n switch (size) {\n case 'small': return '4px';\n case 'medium': return '6px';\n case 'large': return '8px';\n default: return '6px';\n }\n }};\n\n padding-top: ${({ hasError, size }) => {\n if (!hasError) {return '0';}\n\n return size === 'small' ? '20px' : '8px';\n }};\n\n min-height: ${({ hasError, size }) =>\n hasError && size === 'small' ? '60px' : 'auto'};\n\n display: flex;\n flex-direction: column;\n`;\n"],"mappings":"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","ignoreList":[]}