@peak-ai/canvas 1.4.37-rc.2 → 1.4.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"render-components.js","names":["chroma","React","useEffect","useState","useMemo","useRef","renderNoDataFallback","CircleAlert","TrendingDown","TrendingUp","ShoppingCart","ChartBarBig","Tag","MapPin","StyledInfoButton","filterPlaceholders","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","renderSearch","CardLoader","ChartLoader","MarkdownLoader","Tabs","TabsContent","TabsList","TabsTrigger","cn","getAffectedComponentsWithLoader","DataTable","ComponentWrapper","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","Equalizer","Style","Place","getIconFromString","iconString","lowerIconString","toLowerCase","matchingKey","Object","keys","find","key","getNColors","n","safeBaseColors","Array","isArray","_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","initialData","_useState","allData","setAllData","_allData$headerConten","headerContent","icon","_allData$bodyContent","bodyContent","_useState2","_extends","get","attributes","setAttributes","handlePropsChange","newComponentProps","filteredProps","prevData","on","off","defaultClasses","className","style","backgroundColor","isEditable","contentEditable","children","error","isMissing","renderCard","_attributes$isEditabl","_attributes$error","_attributes$isMissing","_props$performInterac","performInteraction","Promise","resolve","_excluded2","_useState3","headerDescription","footerContent","footerClass","footerIcon","contentMetadata","contentMetadataClass","dataClassName","dataError","dataIsMissing","toSafeText","JSON","stringify","safeHeaderContent","safeHeaderDescription","safeBodyContent","safeFooterContent","safeContentMetadata","_useState4","footerHasContent","setFooterHasContent","_useState5","defaultFooterClasses","defaultContentMetadataClasses","mergedCardClassName","mergedFooterClassName","mergedContentMetadataClassName","hasError","Boolean","hasMissing","isLoading","interactionApiInProgress","loading","footerIconText","String","getCardContent","showEmpty","handleFooterInput","event","target","content","textContent","hasContent","trim","currentProps","set","isEmptied","Fragment","onInput","componentId","position","isVisible","componentProps","renderChartComponent","chartType","data","config","safeData","cursor","hideLabel","dataKey","nameKey","innerRadius","strokeWidth","label","_ref","name","percent","toFixed","undefined","labelLine","dataKeys","barDataKeys","chartUi","barGap","vertical","xAxis","align","wrapperStyle","marginLeft","map","_ref2","fill","radius","indicator","safeDataKeysLine","_ref3","type","stroke","_ref4","renderChart","_attributes$isEditabl2","_props$performInterac2","_excluded3","_useState6","_useState7","containerRef","_useState8","containerWidth","setContainerWidth","handleAttributesChange","newAttributes","updateContainerWidth","current","offsetWidth","resizeObserver","ResizeObserver","entries","_iterator2","_step2","entry","contentRect","width","timeoutId","setTimeout","observe","window","addEventListener","clearTimeout","disconnect","removeEventListener","_allData$config","_allData$chartType","_allData$chartData","chartData","_allData$title","title","_allData$subTitle","subTitle","mergedClasses","safeChartData","forEach","totalDataPoints","safeDataKeys","max","getScrollableWidth","scrollWidth","shouldScroll","ChartWrapper","_ref5","minWidth","height","ref","renderTable","_attributes$isEditabl3","_props$performInterac3","_excluded4","_useState9","cardRef","_useState10","rawData","_allData$headerMapper","headerMapper","rawHeaderMapper","_allData$title2","_allData$subTitle2","_allData$actions","actions","pagination","cleaned","id","fromEntries","filter","_ref6","sortConfig","_gjsModel$get","_ref8","_ref7","sortColumn","sortDirection","_useState11","viewportWidth","setViewportWidth","_useState12","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","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","_ref9","_callee2$","_context2","handleSort","_x5","_x6","_handleSort","_callee3","column","direction","_callee3$","_context3","onSort","otherProps","tableActions","firstRowData","renderTab","tabsWidth","safeTabs","tabs","showFallback","defaultValue","tab","fontFamily","fontWeight","fontSize","lineHeight","letterSpacing","disabled","renderMarkdown","_attributes$isEditabl4","_excluded5","_useState13","_useState14","_useState15","isEditing","setIsEditing","_useState16","isEditingHeading","setIsEditingHeading","editRef","headingEditRef","startEditing","setupEditor","startEditingHeading","setupHeadingEditor","innerHTML","summaryText","focus","summaryHeading","saveChanges","innerText","saveHeadingChanges","markdownStyles","ul","h1","h2","h3","h4","h5","h6","minHeight","options","overrides","onBlur","suppressContentEditableWarning","onClick","whiteSpace","wordWrap","renderButton","_attributes$isEditabl5","_props$performInterac4","_useState17","_useState18","text","_allData$variant","variant","_allData$size","size","tooltipContent","interact","concat","renderActionCardWithWrapper","componentType","renderButtonWithWrapper","renderCardWithWrapper","renderChartWithWrapper","renderFilterWithWrapper","renderMarkdownWithWrapper","renderSearchWithWrapper","renderTableWithWrapper","renderTabWithWrapper","renderActions","_props$isEditable","action","index","description","renderActionsWithWrapper","getRenderers","ActionCard","Actions","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, useMemo, JSX, useRef } from 'react';\nimport { renderNoDataFallback } from './extra';\nimport {\n CircleAlert,\n TrendingDown,\n TrendingUp,\n ShoppingCart,\n ChartBarBig,\n Tag,\n MapPin,\n} from 'lucide-react';\nimport { StyledInfoButton } from './styled-info-button';\nimport { filterPlaceholders } from '../../helpers/filter-placeholder';\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 {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from '../../shadcn/components/ui/chart';\nimport { renderFilter } from '../../shadcn/components/ui/filter';\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 { ComponentWrapper } 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 = (\n el: HTMLElement,\n): {\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\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 const safeBaseColors = Array.isArray(baseColors) ? baseColors : [];\n\n for (const baseColor of safeBaseColors) {\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 // Memoize filtered props to avoid re-filtering on every render\n const initialData = useMemo(() => filterPlaceholders(props), []);\n const [allData, setAllData] = useState(initialData);\n\n const {\n headerContent = 'Default action card title',\n icon,\n bodyContent = 'Default body content. Click to edit.',\n } = allData;\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n useEffect(() => {\n const handlePropsChange = () => {\n const newComponentProps = gjsModel.get('componentProps');\n const filteredProps = filterPlaceholders(newComponentProps);\n\n setAllData((prevData: any) => ({\n ...prevData,\n ...filteredProps,\n }));\n };\n\n gjsModel.on('change:componentProps', handlePropsChange);\n\n return () => {\n gjsModel.off('change:componentProps', handlePropsChange);\n };\n }, [gjsModel]);\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} relative`}\n style={{ backgroundColor: '#f9f9fe' }}\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 {attributes.error ||\n allData.error ||\n attributes.isMissing ||\n allData.isMissing ||\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 {\n gjsModel,\n performInteraction = () => Promise.resolve({}),\n ...rest\n } = props;\n\n // Memoize filtered props to avoid re-filtering on every render\n const initialData = useMemo(() => filterPlaceholders(props), []);\n const [allData, setAllData] = useState(initialData);\n\n const {\n headerContent,\n headerDescription,\n bodyContent,\n footerContent,\n footerClass,\n footerIcon,\n contentMetadata,\n contentMetadataClass,\n className: dataClassName,\n error: dataError,\n isMissing: dataIsMissing,\n } = allData;\n\n function toSafeText(value: unknown): string {\n if (!value) {\n return '';\n }\n\n return typeof value === 'string' ? value : JSON.stringify(value);\n }\n\n const safeHeaderContent = toSafeText(headerContent);\n const safeHeaderDescription = toSafeText(headerDescription);\n const safeBodyContent = toSafeText(bodyContent);\n const safeFooterContent = toSafeText(footerContent);\n const safeContentMetadata = toSafeText(contentMetadata);\n\n const [footerHasContent, setFooterHasContent] = useState(safeFooterContent?.length > 0);\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n const isEditable = attributes.isEditable ?? false;\n\n useEffect(() => {\n const handlePropsChange = () => {\n const newComponentProps = gjsModel.get('componentProps');\n const filteredProps = filterPlaceholders(newComponentProps);\n\n setAllData((prevData: any) => ({\n ...prevData,\n ...filteredProps,\n }));\n };\n\n gjsModel.on('change:componentProps', handlePropsChange);\n\n return () => {\n gjsModel.off('change:componentProps', handlePropsChange);\n };\n }, [gjsModel]);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n useEffect(() => {\n setFooterHasContent(safeFooterContent?.length > 0);\n }, [safeFooterContent]);\n\n const defaultClasses =\n 'bg-white text-black p-4 rounded-lg border flex flex-col h-full shadow-none';\n const defaultFooterClasses = footerHasContent\n ? 'text-sm bg-pink-50 text-pink-900 shadow-sm'\n : 'text-sm';\n const defaultContentMetadataClasses = 'text-xs';\n\n const mergedCardClassName = dataClassName ? cn(defaultClasses, dataClassName) : defaultClasses;\n const mergedFooterClassName = footerClass\n ? cn(defaultFooterClasses, footerClass)\n : defaultFooterClasses;\n const mergedContentMetadataClassName = contentMetadataClass\n ? cn(defaultContentMetadataClasses, contentMetadataClass)\n : defaultContentMetadataClasses;\n\n const hasError = Boolean(attributes?.error ?? dataError);\n const hasMissing = Boolean(attributes?.isMissing ?? dataIsMissing);\n const isLoading = Boolean(\n (attributes?.interactionApiInProgress || attributes?.loading) && !hasError && !hasMissing,\n );\n\n const footerIconText =\n typeof footerIcon === 'string'\n ? footerIcon\n : footerIcon && typeof footerIcon === 'object' && 'icon' in (footerIcon as any)\n ? String((footerIcon as any).icon)\n : '';\n\n function getCardContent() {\n if (isLoading) {\n return (\n <CardContent>\n <CardLoader />\n </CardContent>\n );\n }\n\n const showEmpty = hasError || hasMissing || !safeBodyContent;\n\n function handleFooterInput(event: React.FormEvent<HTMLDivElement>) {\n const target = event.target as HTMLDivElement;\n const content = target.textContent || '';\n const hasContent = content.trim().length > 0;\n\n setFooterHasContent(hasContent);\n\n if (!hasContent) {\n const currentProps = gjsModel.get('componentProps');\n gjsModel.set('componentProps', {\n ...currentProps,\n footerContent: null,\n footerIcon: null,\n footerClass: null,\n isEmptied: true,\n });\n }\n }\n\n return (\n <React.Fragment>\n <CardHeader>\n <div className=\"flex items-start justify-between\">\n <div className=\"flex-1\">\n <CardTitle data-slot=\"headerContent\" contentEditable={isEditable} className=\"text-lg\">\n {safeHeaderContent}\n </CardTitle>\n <CardDescription\n data-slot=\"headerDescription\"\n contentEditable={isEditable}\n className=\"text-sm\"\n >\n {safeHeaderDescription}\n </CardDescription>\n </div>\n </div>\n </CardHeader>\n\n {showEmpty ? (\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\">{safeBodyContent}</div>\n {safeContentMetadata && (\n <div className={mergedContentMetadataClassName} style={{ color: '#2A44D4' }}>\n {safeContentMetadata}\n </div>\n )}\n </CardContent>\n )}\n\n <CardFooter\n data-slot=\"footerContent\"\n contentEditable={isEditable}\n className={mergedFooterClassName}\n onInput={handleFooterInput}\n >\n {(footerIconText || '').trim() ? (\n <span className=\"mr-2\" aria-hidden=\"true\">\n {footerIconText}\n </span>\n ) : null}\n {safeFooterContent || ''}\n </CardFooter>\n </React.Fragment>\n );\n }\n\n return (\n <Card {...rest} isEditable={false} className={`${mergedCardClassName} relative`}>\n {getCardContent()}\n <StyledInfoButton\n componentId={gjsModel.get('id')}\n performInteraction={performInteraction}\n position=\"top-right\"\n isVisible={isEditable}\n componentProps={allData}\n />\n </Card>\n );\n}\n\nfunction renderChartComponent(chartType: string, data: any, config: any): JSX.Element {\n const safeData = Array.isArray(data) ? data : [];\n\n if (safeData.length === 0) {\n return renderNoDataFallback();\n }\n\n switch (chartType) {\n case 'pie':\n return (\n <PieChart>\n {safeData.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={safeData}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n safeData.length < 20\n ? ({ name, percent }: { name: string; percent: number }) =>\n `${name}: ${(percent * 100).toFixed(0)}%`\n : undefined\n }\n labelLine={false}\n />\n </PieChart>\n );\n\n case 'bar': {\n config.dataKeys = config.dataKeys || [];\n\n const barDataKeys = Array.isArray(config.dataKeys) ? config.dataKeys : [];\n\n return (\n <BarChart data={safeData} {...config.chartUi} {...(barDataKeys.length > 1 && { barGap: 0 })}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <Legend align=\"left\" wrapperStyle={{ marginLeft: 20 }} />\n {barDataKeys.map(({ key, name, color }: { key: string; name: string; color: string }) => {\n return <Bar dataKey={key} fill={color ?? '#4caf50'} name={name} key={key} radius={2} />;\n })}\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n </BarChart>\n );\n }\n\n case 'line': {\n config.dataKeys = config.dataKeys || [];\n const safeDataKeysLine = Array.isArray(config.dataKeys) ? config.dataKeys : [];\n\n return (\n <LineChart data={safeData} {...config.chartUi}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n {safeDataKeysLine.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 }\n\n default:\n return (\n <PieChart>\n {safeData.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={safeData}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n safeData.length < 20\n ? ({ name, percent }: { name: string; percent: number }) =>\n `${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 {\n gjsModel,\n performInteraction = () => Promise.resolve({}),\n ...rest\n } = props;\n\n // Memoize filtered props to avoid re-filtering on every render\n const initialData = useMemo(() => filterPlaceholders(props), []);\n const [allData, setAllData] = useState(initialData);\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n const isEditable = attributes.isEditable ?? false;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const [containerWidth, setContainerWidth] = useState<number>(0);\n\n useEffect(() => {\n const handlePropsChange = () => {\n const newComponentProps = gjsModel.get('componentProps');\n const filteredProps = filterPlaceholders(newComponentProps);\n\n setAllData((prevData: any) => ({\n ...prevData, // Preserve existing data (including __sql_query_params)\n ...filteredProps,\n }));\n };\n\n gjsModel.on('change:componentProps', handlePropsChange);\n\n return () => {\n gjsModel.off('change:componentProps', handlePropsChange);\n };\n }, [gjsModel]);\n\n useEffect(() => {\n const handleAttributesChange = () => {\n const newAttributes = gjsModel.get('attributes');\n setAttributes({\n ...newAttributes,\n });\n };\n\n gjsModel.on('change:attributes', handleAttributesChange);\n\n return () => {\n gjsModel.off('change:attributes', handleAttributesChange);\n };\n }, [gjsModel]);\n\n useEffect(() => {\n const updateContainerWidth = () => {\n if (containerRef.current) {\n setContainerWidth(containerRef.current.offsetWidth || 0);\n }\n };\n\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n setContainerWidth(entry.contentRect.width || 0);\n }\n });\n\n updateContainerWidth();\n\n const timeoutId = setTimeout(updateContainerWidth, 50);\n\n if (containerRef.current) {\n resizeObserver.observe(containerRef.current);\n }\n\n window.addEventListener('resize', updateContainerWidth);\n\n return () => {\n clearTimeout(timeoutId);\n resizeObserver.disconnect();\n window.removeEventListener('resize', updateContainerWidth);\n };\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 safeChartData = Array.isArray(chartData) ? chartData : [];\n const colors = getNColors(safeChartData.length);\n safeChartData.forEach((data, i) => {\n if (!data.fill) {\n data.fill = colors[i];\n }\n });\n } else if (!config.color) {\n const safeBaseColors = Array.isArray(baseColors) ? baseColors : [];\n\n if (safeBaseColors.length > 0) {\n config.color = safeBaseColors[Math.floor(Math.random() * safeBaseColors.length)];\n }\n }\n\n let totalDataPoints = 0;\n\n if (chartType === 'bar' || chartType === 'line') {\n const safeChartData = Array.isArray(chartData) ? chartData : [];\n const safeDataKeys = Array.isArray(config.dataKeys) ? config.dataKeys : [];\n totalDataPoints =\n chartType === 'bar'\n ? safeChartData.length * Math.max(1, safeDataKeys.length)\n : safeChartData.length;\n }\n\n const getScrollableWidth = () => {\n if (chartType === 'line') {\n return totalDataPoints * 20;\n }\n\n if (chartType === 'bar') {\n return (\n totalDataPoints * 20 +\n (Array.isArray(config.dataKeys) ? config.dataKeys.length : 0) *\n 8 *\n (Array.isArray(chartData) ? chartData.length : 0) +\n (Array.isArray(chartData) ? chartData.length : 0) * 15\n );\n }\n\n return 800;\n };\n\n const scrollWidth = getScrollableWidth();\n const shouldScroll =\n (chartType === 'bar' || chartType === 'line') &&\n totalDataPoints > 15 &&\n scrollWidth > containerWidth;\n\n const hasError = attributes.error || allData.error;\n const hasMissing = attributes.isMissing || allData.isMissing;\n const isLoading =\n (attributes.interactionApiInProgress || attributes.loading) && !hasError && !hasMissing;\n\n const ChartWrapper = ({ children }: { children: React.ReactNode }) => {\n if (shouldScroll) {\n return (\n <div className=\"w-full h-[250px] overflow-x-auto\">\n <div style={{ minWidth: `${scrollWidth}px`, height: '250px' }}>{children}</div>\n </div>\n );\n }\n\n return <div className=\"w-full h-[250px]\">{children}</div>;\n };\n\n const chartUi = isLoading ? (\n <ChartLoader />\n ) : hasError || hasMissing || !chartData ? (\n renderNoDataFallback()\n ) : (\n <ChartWrapper>\n <ResponsiveContainer width=\"100%\" height={250}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\n </ChartContainer>\n </ResponsiveContainer>\n </ChartWrapper>\n );\n\n return (\n <Card className=\"shadow border mt-2 mb-2 relative\">\n <CardHeader>\n <div className=\"flex items-start justify-between\">\n <div className=\"flex-1\">\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 </div>\n </div>\n </CardHeader>\n <CardContent ref={containerRef} data-slot=\"bodyContent\" className=\"px-6\">\n {chartUi}\n </CardContent>\n <StyledInfoButton\n componentId={gjsModel.get('id')}\n performInteraction={performInteraction}\n position=\"top-right\"\n isVisible={isEditable}\n componentProps={allData}\n />\n </Card>\n );\n}\n\nexport function renderTable(props: any): JSX.Element {\n const { gjsModel, performInteraction = () => {}, ...rest } = props;\n\n // Memoize filtered props to avoid re-filtering on every render\n const initialData = useMemo(() => filterPlaceholders(props), []);\n const [allData, setAllData] = useState(initialData);\n\n const cardRef = useRef<HTMLDivElement>(null);\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n const isEditable = attributes.isEditable ?? false;\n\n const {\n data: rawData,\n headerMapper: rawHeaderMapper = {},\n className,\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(Object.entries(cleaned).filter(([key]) => dataKeys.includes(key)));\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(\n `[data-table-id=\"${tableId}\"]`,\n ) as HTMLElement;\n\n if (tableElement) {\n const headerElement = tableElement.querySelector(\n '[data-slot=\"card-header\"]',\n ) 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 =\n 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(\n `[data-table-id=\"${tableId}\"]`,\n ) as HTMLElement;\n\n if (!tableElement && window.parent !== window) {\n tableElement = window.parent.document.querySelector(\n `[data-table-id=\"${tableId}\"]`,\n ) 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, Array.isArray(data) ? data.length : 0);\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 const handlePropsChange = () => {\n const newComponentProps = gjsModel.get('componentProps');\n const filteredProps = filterPlaceholders(newComponentProps);\n\n setAllData((prevData: any) => ({\n ...prevData, // Preserve existing data (including __sql_query_params)\n ...filteredProps,\n }));\n };\n\n gjsModel.on('change:componentProps', handlePropsChange);\n\n return () => {\n gjsModel.off('change:componentProps', handlePropsChange);\n };\n }, [gjsModel]);\n\n useEffect(() => {\n const handleAttributesChange = () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n };\n\n gjsModel.on('change:attributes', handleAttributesChange);\n\n return () => {\n gjsModel.off('change:attributes', handleAttributesChange);\n };\n }, [gjsModel]);\n\n const parsedData = (() => {\n if (\n typeof data === 'object' &&\n data !== null &&\n !Array.isArray(data) &&\n (data as any).name === '__peak_placeholder'\n ) {\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 relative flex flex-col h-fit overflow-hidden\"\n data-component-type=\"table\"\n data-table-id={gjsModel.get('id')}\n >\n <CardHeader>\n <div className=\"flex items-start justify-between\">\n <div className=\"flex-1\">\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 </div>\n </div>\n </CardHeader>\n <CardContent\n data-slot=\"bodyContent\"\n contentEditable={false}\n className=\"flex-1 flex flex-col overflow-hidden\"\n >\n {attributes.error || allData.error || attributes.isMissing || allData.isMissing ? (\n renderNoDataFallback()\n ) : (\n <DataTable\n data={parsedData}\n headerMapper={headerMapper}\n className={className}\n isEditable={isEditable}\n actions={actions}\n pagination={pagination}\n isLoading={attributes.interactionApiInProgress || attributes.loading}\n onRowAction={onRowAction}\n onPageChange={onPageChange}\n onSort={handleSort}\n sortConfig={sortConfig}\n otherProps={rest}\n height={scrollAreaHeight}\n />\n )}\n </CardContent>\n <StyledInfoButton\n componentId={gjsModel.get('id')}\n performInteraction={performInteraction}\n position=\"top-right\"\n tableActions={actions}\n firstRowData={Array.isArray(data) && data.length > 0 ? data[0] : {}}\n isVisible={isEditable}\n componentProps={allData}\n />\n </Card>\n );\n}\n\nexport function renderTab(props: any): JSX.Element {\n let tabsWidth = 157;\n const safeTabs = Array.isArray(props.tabs) ? props.tabs : [];\n const showFallback = safeTabs.length === 0;\n\n if (safeTabs.length > 4) {\n tabsWidth = 157;\n }\n\n const defaultValue = props.defaultValue || (safeTabs.length > 0 ? safeTabs[0] : undefined);\n\n return (\n <Tabs defaultValue={defaultValue}>\n <div className=\"text-center mb-4\">\n <TabsList className=\"bg-[#F9F9FE] border border-[#D4D5DE] p-1 rounded-lg h-auto\">\n {safeTabs.length > 0 ? (\n safeTabs.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 ) : (\n <TabsTrigger\n value=\"no-data\"\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 disabled\n >\n No tabs\n </TabsTrigger>\n )}\n </TabsList>\n </div>\n {showFallback ? (\n <TabsContent\n value={defaultValue || 'no-data'}\n className=\"tabs-content\"\n data-fallback=\"true\"\n >\n {renderNoDataFallback()}\n </TabsContent>\n ) : (\n safeTabs.map((tab: string) => (\n <TabsContent value={tab} className=\"tabs-content\" key={tab} />\n ))\n )}\n </Tabs>\n );\n}\n\nexport function renderMarkdown(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n // Memoize filtered props to avoid re-filtering on every render\n const initialData = useMemo(() => filterPlaceholders(props), []);\n const [allData, setAllData] = useState(initialData);\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n const isEditable = attributes.isEditable ?? false;\n\n useEffect(() => {\n const handlePropsChange = () => {\n const newComponentProps = gjsModel.get('componentProps');\n const filteredProps = filterPlaceholders(newComponentProps);\n\n setAllData((prevData: any) => ({\n ...prevData, // Preserve existing data (including __sql_query_params)\n ...filteredProps,\n }));\n };\n\n gjsModel.on('change:componentProps', handlePropsChange);\n\n return () => {\n gjsModel.off('change:componentProps', handlePropsChange);\n };\n }, [gjsModel]);\n\n useEffect(() => {\n const handleAttributesChange = () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n };\n\n gjsModel.on('change:attributes', handleAttributesChange);\n\n return () => {\n gjsModel.off('change:attributes', handleAttributesChange);\n };\n }, [gjsModel]);\n\n const [isEditing, setIsEditing] = useState(false);\n const [isEditingHeading, setIsEditingHeading] = useState(false);\n const editRef = useRef<HTMLDivElement>(null);\n const headingEditRef = useRef<HTMLDivElement>(null);\n\n const startEditing = () => {\n setIsEditing(true);\n setTimeout(() => {\n setupEditor();\n }, 0);\n };\n\n const startEditingHeading = () => {\n setIsEditingHeading(true);\n setTimeout(() => {\n setupHeadingEditor();\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 const setupHeadingEditor = () => {\n if (!headingEditRef.current) {\n return;\n }\n\n const editor = headingEditRef.current;\n editor.innerHTML = '';\n editor.textContent = allData.summaryHeading || 'Insights';\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 saveHeadingChanges = () => {\n if (!headingEditRef.current) {\n return;\n }\n\n const content = headingEditRef.current.innerText || 'Insights';\n setAllData((prev: Record<string, any>) => ({\n ...prev,\n summaryHeading: content,\n }));\n setIsEditingHeading(false);\n headingEditRef.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 const hasError = attributes.error || allData.error;\n const hasMissing = attributes.isMissing || allData.isMissing;\n const isLoading =\n (attributes.loading && !hasError && !hasMissing) || attributes.interactionApiInProgress;\n\n if (isLoading) {\n return <MarkdownLoader />;\n }\n\n if (hasError || hasMissing) {\n return (\n <div className=\"px-[1em] relative\" {...rest}>\n <h3 className=\"text-xl font-semibold text-left\">{allData.summaryHeading || 'Insights'}</h3>\n <div\n className=\"w-full py-8 flex flex-col items-center justify-center px-6 text-center\"\n style={{ minHeight: '180px' }}\n >\n <CircleAlert className=\"w-12 h-12 text-gray-400 mb-2\" />\n <h3 className=\"text-lg font-medium text-gray-900\">No data available</h3>\n <p className=\"mt-2 text-sm text-gray-500 max-w-md\">\n Check your filters or try a different time range.\n </p>\n </div>\n <StyledInfoButton\n componentId={gjsModel.get('id')}\n performInteraction={props.performInteraction}\n position=\"top-right\"\n isVisible={isEditable}\n componentProps={allData}\n />\n </div>\n );\n }\n\n if (!isEditable) {\n return (\n <div className=\"px-[1em] relative\" {...rest}>\n <h3 className=\"text-xl font-semibold text-left\">{allData.summaryHeading || 'Insights'}</h3>\n <div data-slot=\"summaryText\">\n <Markdown options={{ overrides: markdownStyles }}>{allData.summaryText}</Markdown>\n </div>\n <StyledInfoButton\n componentId={gjsModel.get('id')}\n performInteraction={props.performInteraction}\n position=\"top-right\"\n isVisible={isEditable}\n componentProps={allData}\n />\n </div>\n );\n }\n\n return (\n <div className=\"p-[1em] relative\" {...rest}>\n {isEditingHeading ? (\n <div\n ref={headingEditRef}\n contentEditable\n onBlur={saveHeadingChanges}\n data-slot=\"summaryHeading\"\n className=\"text-xl font-semibold text-left\"\n suppressContentEditableWarning={true}\n />\n ) : (\n <h3\n className=\"text-xl font-semibold text-left\"\n onClick={startEditingHeading}\n data-slot=\"summaryHeading\"\n >\n {allData.summaryHeading || 'Insights'}\n </h3>\n )}\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 <StyledInfoButton\n componentId={gjsModel.get('id')}\n performInteraction={props.performInteraction}\n position=\"top-right\"\n isVisible={isEditable}\n componentProps={allData}\n />\n </div>\n );\n}\n\nexport function renderButton(props: any): JSX.Element {\n const { gjsModel, performInteraction = () => {} } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n const isEditable = attributes.isEditable ?? false;\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 renderActionCardWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'ActionCard' }}>\n {renderActionCard(props)}\n </ComponentWrapper>\n);\n\nconst renderButtonWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Button' }}>\n {renderButton(props)}\n </ComponentWrapper>\n);\n\nconst renderCardWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Card' }}>\n {renderCard(props)}\n </ComponentWrapper>\n);\n\nconst renderChartWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Chart' }}>\n {renderChart(props)}\n </ComponentWrapper>\n);\n\nconst renderFilterWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Filter' }}>\n {renderFilter(props)}\n </ComponentWrapper>\n);\n\nconst renderMarkdownWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Markdown' }}>\n {renderMarkdown(props)}\n </ComponentWrapper>\n);\n\nconst renderSearchWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Search' }}>\n {renderSearch(props)}\n </ComponentWrapper>\n);\n\nconst renderTableWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Table' }}>\n {renderTable(props)}\n </ComponentWrapper>\n);\n\nconst renderTabWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Tabs' }}>\n {renderTab(props)}\n </ComponentWrapper>\n);\n\nfunction renderActions(props: any): JSX.Element {\n const { actions, isEditable = false, gjsModel } = props;\n\n if (actions === null) {\n return <div />;\n }\n\n if (!Array.isArray(actions) || actions.length === 0) {\n return (\n <div className=\"bg-white text-black p-4 rounded-lg border flex flex-col h-full shadow-none relative\">\n <CardLoader />\n </div>\n );\n }\n\n return (\n <div className=\"dashboard-cards flex flex-wrap gap-4\">\n {actions.map((action: any, index: number) => {\n const { icon, title, description } = action;\n\n return (\n <div key={index} className=\"flex-1 min-w-[200px]\">\n {renderActionCard({\n icon,\n headerContent: title,\n bodyContent: description,\n isEditable,\n gjsModel,\n })}\n </div>\n );\n })}\n </div>\n );\n}\n\nconst renderActionsWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Actions' }}>\n {renderActions(props)}\n </ComponentWrapper>\n);\n\nexport function getRenderers(): Record<string, (props: any) => JSX.Element> {\n return {\n ActionCard: renderActionCardWithWrapper,\n Actions: renderActionsWithWrapper,\n Button: renderButtonWithWrapper,\n Card: renderCardWithWrapper,\n Chart: renderChartWithWrapper,\n Filter: renderFilterWithWrapper,\n Markdown: renderMarkdownWithWrapper,\n Search: renderSearchWithWrapper,\n Table: renderTableWithWrapper,\n Tabs: renderTabWithWrapper,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"render-components.js","names":["chroma","React","useEffect","useState","useMemo","useRef","renderNoDataFallback","CircleAlert","TrendingDown","TrendingUp","ShoppingCart","ChartBarBig","Tag","MapPin","StyledInfoButton","filterPlaceholders","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","renderSearch","CardLoader","ChartLoader","MarkdownLoader","Tabs","TabsContent","TabsList","TabsTrigger","cn","getAffectedComponentsWithLoader","DataTable","ComponentWrapper","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","Equalizer","Style","Place","getIconFromString","iconString","lowerIconString","toLowerCase","matchingKey","Object","keys","find","key","getNColors","n","safeBaseColors","Array","isArray","_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","initialData","_useState","allData","setAllData","_allData$headerConten","headerContent","icon","_allData$bodyContent","bodyContent","_useState2","_extends","get","attributes","setAttributes","handlePropsChange","newComponentProps","filteredProps","prevData","on","off","defaultClasses","className","style","backgroundColor","isEditable","contentEditable","children","error","isMissing","renderCard","_attributes$isEditabl","_attributes$error","_attributes$isMissing","_props$performInterac","performInteraction","Promise","resolve","_excluded2","_useState3","headerDescription","footerContent","footerClass","footerIcon","contentMetadata","contentMetadataClass","dataClassName","dataError","dataIsMissing","toSafeText","undefined","JSON","stringify","safeHeaderContent","safeHeaderDescription","safeBodyContent","safeFooterContent","safeContentMetadata","_useState4","footerHasContent","setFooterHasContent","_useState5","defaultFooterClasses","defaultContentMetadataClasses","mergedCardClassName","mergedFooterClassName","mergedContentMetadataClassName","hasError","Boolean","hasMissing","isLoading","interactionApiInProgress","loading","footerIconText","String","getCardContent","showEmpty","handleFooterInput","event","target","content","textContent","hasContent","trim","currentProps","set","isEmptied","Fragment","onInput","componentId","position","isVisible","componentProps","renderChartComponent","chartType","data","config","safeData","cursor","hideLabel","dataKey","nameKey","innerRadius","strokeWidth","label","_ref","name","percent","toFixed","labelLine","dataKeys","barDataKeys","chartUi","barGap","vertical","xAxis","align","wrapperStyle","marginLeft","map","_ref2","fill","radius","indicator","safeDataKeysLine","_ref3","type","stroke","_ref4","renderChart","_attributes$isEditabl2","_props$performInterac2","_excluded3","_useState6","_useState7","containerRef","_useState8","containerWidth","setContainerWidth","handleAttributesChange","newAttributes","updateContainerWidth","current","offsetWidth","resizeObserver","ResizeObserver","entries","_iterator2","_step2","entry","contentRect","width","timeoutId","setTimeout","observe","window","addEventListener","clearTimeout","disconnect","removeEventListener","_allData$config","_allData$chartType","_allData$chartData","chartData","_allData$title","title","_allData$subTitle","subTitle","mergedClasses","safeChartData","forEach","totalDataPoints","safeDataKeys","max","getScrollableWidth","scrollWidth","shouldScroll","ChartWrapper","_ref5","minWidth","height","ref","renderTable","_attributes$isEditabl3","_props$performInterac3","_excluded4","_useState9","cardRef","_useState10","rawData","_allData$headerMapper","headerMapper","rawHeaderMapper","_allData$title2","_allData$subTitle2","_allData$actions","actions","pagination","cleaned","id","fromEntries","filter","_ref6","sortConfig","_gjsModel$get","_ref8","_ref7","sortColumn","sortDirection","_useState11","viewportWidth","setViewportWidth","_useState12","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","parsedData","datum","newData","onRowAction","_x","_x2","_onRowAction","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","rowIndex","actionId","wrap","_context","prev","next","interactionType","payload","row","affectedComponents","stop","onPageChange","_x3","_x4","_onPageChange","_callee2","pageNumber","pageSize","_gjsModel$get2","_ref9","_context2","handleSort","_x5","_x6","_handleSort","_callee3","column","direction","_context3","onSort","otherProps","tableActions","firstRowData","renderTab","tabsWidth","safeTabs","tabs","showFallback","defaultValue","tab","fontFamily","fontWeight","fontSize","lineHeight","letterSpacing","disabled","renderMarkdown","_attributes$isEditabl4","_excluded5","_useState13","_useState14","_useState15","isEditing","setIsEditing","_useState16","isEditingHeading","setIsEditingHeading","editRef","headingEditRef","startEditing","setupEditor","startEditingHeading","setupHeadingEditor","innerHTML","summaryText","focus","summaryHeading","saveChanges","innerText","saveHeadingChanges","markdownStyles","ul","h1","h2","h3","h4","h5","h6","minHeight","options","overrides","onBlur","suppressContentEditableWarning","onClick","whiteSpace","wordWrap","renderButton","_attributes$isEditabl5","_props$performInterac4","_useState17","_useState18","text","_allData$variant","variant","_allData$size","size","tooltipContent","interact","concat","renderActionCardWithWrapper","componentType","renderButtonWithWrapper","renderCardWithWrapper","renderChartWithWrapper","renderFilterWithWrapper","renderMarkdownWithWrapper","renderSearchWithWrapper","renderTableWithWrapper","renderTabWithWrapper","renderActions","_props$isEditable","action","index","description","renderActionsWithWrapper","getRenderers","ActionCard","Actions","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, useMemo, JSX, useRef } from 'react';\nimport { renderNoDataFallback } from './extra';\nimport {\n CircleAlert,\n TrendingDown,\n TrendingUp,\n ShoppingCart,\n ChartBarBig,\n Tag,\n MapPin,\n} from 'lucide-react';\nimport { StyledInfoButton } from './styled-info-button';\nimport { filterPlaceholders } from '../../helpers/filter-placeholder';\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 {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from '../../shadcn/components/ui/chart';\nimport { renderFilter } from '../../shadcn/components/ui/filter';\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 { ComponentWrapper } 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 = (\n el: HTMLElement,\n): {\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\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 const safeBaseColors = Array.isArray(baseColors) ? baseColors : [];\n\n for (const baseColor of safeBaseColors) {\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 // Memoize filtered props to avoid re-filtering on every render\n const initialData = useMemo(() => filterPlaceholders(props), []);\n const [allData, setAllData] = useState(initialData);\n\n const {\n headerContent = 'Default action card title',\n icon,\n bodyContent = 'Default body content. Click to edit.',\n } = allData;\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n useEffect(() => {\n const handlePropsChange = () => {\n const newComponentProps = gjsModel.get('componentProps');\n const filteredProps = filterPlaceholders(newComponentProps);\n\n setAllData((prevData: any) => ({\n ...prevData,\n ...filteredProps,\n }));\n };\n\n gjsModel.on('change:componentProps', handlePropsChange);\n\n return () => {\n gjsModel.off('change:componentProps', handlePropsChange);\n };\n }, [gjsModel]);\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} relative`}\n style={{ backgroundColor: '#f9f9fe' }}\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 {attributes.error ||\n allData.error ||\n attributes.isMissing ||\n allData.isMissing ||\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 {\n gjsModel,\n performInteraction = () => Promise.resolve({}),\n ...rest\n } = props;\n\n // Memoize filtered props to avoid re-filtering on every render\n const initialData = useMemo(() => filterPlaceholders(props), []);\n const [allData, setAllData] = useState(initialData);\n\n const {\n headerContent,\n headerDescription,\n bodyContent,\n footerContent,\n footerClass,\n footerIcon,\n contentMetadata,\n contentMetadataClass,\n className: dataClassName,\n error: dataError,\n isMissing: dataIsMissing,\n } = allData;\n\n function toSafeText(value: unknown): string {\n if (value === null || value === undefined) {\n return '';\n }\n\n return typeof value === 'string' ? value : JSON.stringify(value);\n }\n\n const safeHeaderContent = toSafeText(headerContent);\n const safeHeaderDescription = toSafeText(headerDescription);\n const safeBodyContent = toSafeText(bodyContent);\n const safeFooterContent = toSafeText(footerContent);\n const safeContentMetadata = toSafeText(contentMetadata);\n\n const [footerHasContent, setFooterHasContent] = useState(safeFooterContent?.length > 0);\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n const isEditable = attributes.isEditable ?? false;\n\n useEffect(() => {\n const handlePropsChange = () => {\n const newComponentProps = gjsModel.get('componentProps');\n const filteredProps = filterPlaceholders(newComponentProps);\n\n setAllData((prevData: any) => ({\n ...prevData,\n ...filteredProps,\n }));\n };\n\n gjsModel.on('change:componentProps', handlePropsChange);\n\n return () => {\n gjsModel.off('change:componentProps', handlePropsChange);\n };\n }, [gjsModel]);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n useEffect(() => {\n setFooterHasContent(safeFooterContent?.length > 0);\n }, [safeFooterContent]);\n\n const defaultClasses =\n 'bg-white text-black p-4 rounded-lg border flex flex-col h-full shadow-none';\n const defaultFooterClasses = footerHasContent\n ? 'text-sm bg-pink-50 text-pink-900 shadow-sm'\n : 'text-sm';\n const defaultContentMetadataClasses = 'text-xs';\n\n const mergedCardClassName = dataClassName ? cn(defaultClasses, dataClassName) : defaultClasses;\n const mergedFooterClassName = footerClass\n ? cn(defaultFooterClasses, footerClass)\n : defaultFooterClasses;\n const mergedContentMetadataClassName = contentMetadataClass\n ? cn(defaultContentMetadataClasses, contentMetadataClass)\n : defaultContentMetadataClasses;\n\n const hasError = Boolean(attributes?.error ?? dataError);\n const hasMissing = Boolean(attributes?.isMissing ?? dataIsMissing);\n const isLoading = Boolean(\n (attributes?.interactionApiInProgress || attributes?.loading) && !hasError && !hasMissing,\n );\n\n const footerIconText =\n typeof footerIcon === 'string'\n ? footerIcon\n : footerIcon && typeof footerIcon === 'object' && 'icon' in (footerIcon as any)\n ? String((footerIcon as any).icon)\n : '';\n\n function getCardContent() {\n if (isLoading) {\n return (\n <CardContent>\n <CardLoader />\n </CardContent>\n );\n }\n\n const showEmpty = hasError || hasMissing || !safeBodyContent;\n\n function handleFooterInput(event: React.FormEvent<HTMLDivElement>) {\n const target = event.target as HTMLDivElement;\n const content = target.textContent || '';\n const hasContent = content.trim().length > 0;\n\n setFooterHasContent(hasContent);\n\n if (!hasContent) {\n const currentProps = gjsModel.get('componentProps');\n gjsModel.set('componentProps', {\n ...currentProps,\n footerContent: null,\n footerIcon: null,\n footerClass: null,\n isEmptied: true,\n });\n }\n }\n\n return (\n <React.Fragment>\n <CardHeader>\n <div className=\"flex items-start justify-between\">\n <div className=\"flex-1\">\n <CardTitle data-slot=\"headerContent\" contentEditable={isEditable} className=\"text-lg\">\n {safeHeaderContent}\n </CardTitle>\n <CardDescription\n data-slot=\"headerDescription\"\n contentEditable={isEditable}\n className=\"text-sm\"\n >\n {safeHeaderDescription}\n </CardDescription>\n </div>\n </div>\n </CardHeader>\n\n {showEmpty ? (\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\">{safeBodyContent}</div>\n {safeContentMetadata && (\n <div className={mergedContentMetadataClassName} style={{ color: '#2A44D4' }}>\n {safeContentMetadata}\n </div>\n )}\n </CardContent>\n )}\n\n <CardFooter\n data-slot=\"footerContent\"\n contentEditable={isEditable}\n className={mergedFooterClassName}\n onInput={handleFooterInput}\n >\n {(footerIconText || '').trim() ? (\n <span className=\"mr-2\" aria-hidden=\"true\">\n {footerIconText}\n </span>\n ) : null}\n {safeFooterContent || ''}\n </CardFooter>\n </React.Fragment>\n );\n }\n\n return (\n <Card {...rest} isEditable={false} className={`${mergedCardClassName} relative`}>\n {getCardContent()}\n <StyledInfoButton\n componentId={gjsModel.get('id')}\n performInteraction={performInteraction}\n position=\"top-right\"\n isVisible={isEditable}\n componentProps={allData}\n />\n </Card>\n );\n}\n\nfunction renderChartComponent(chartType: string, data: any, config: any): JSX.Element {\n const safeData = Array.isArray(data) ? data : [];\n\n if (safeData.length === 0) {\n return renderNoDataFallback();\n }\n\n switch (chartType) {\n case 'pie':\n return (\n <PieChart>\n {safeData.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={safeData}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n safeData.length < 20\n ? ({ name, percent }: { name: string; percent: number }) =>\n `${name}: ${(percent * 100).toFixed(0)}%`\n : undefined\n }\n labelLine={false}\n />\n </PieChart>\n );\n\n case 'bar': {\n config.dataKeys = config.dataKeys || [];\n\n const barDataKeys = Array.isArray(config.dataKeys) ? config.dataKeys : [];\n\n return (\n <BarChart data={safeData} {...config.chartUi} {...(barDataKeys.length > 1 && { barGap: 0 })}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <Legend align=\"left\" wrapperStyle={{ marginLeft: 20 }} />\n {barDataKeys.map(({ key, name, color }: { key: string; name: string; color: string }) => {\n return <Bar dataKey={key} fill={color ?? '#4caf50'} name={name} key={key} radius={2} />;\n })}\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n </BarChart>\n );\n }\n\n case 'line': {\n config.dataKeys = config.dataKeys || [];\n const safeDataKeysLine = Array.isArray(config.dataKeys) ? config.dataKeys : [];\n\n return (\n <LineChart data={safeData} {...config.chartUi}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n {safeDataKeysLine.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 }\n\n default:\n return (\n <PieChart>\n {safeData.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={safeData}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n safeData.length < 20\n ? ({ name, percent }: { name: string; percent: number }) =>\n `${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 {\n gjsModel,\n performInteraction = () => Promise.resolve({}),\n ...rest\n } = props;\n\n // Memoize filtered props to avoid re-filtering on every render\n const initialData = useMemo(() => filterPlaceholders(props), []);\n const [allData, setAllData] = useState(initialData);\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n const isEditable = attributes.isEditable ?? false;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const [containerWidth, setContainerWidth] = useState<number>(0);\n\n useEffect(() => {\n const handlePropsChange = () => {\n const newComponentProps = gjsModel.get('componentProps');\n const filteredProps = filterPlaceholders(newComponentProps);\n\n setAllData((prevData: any) => ({\n ...prevData, // Preserve existing data (including __sql_query_params)\n ...filteredProps,\n }));\n };\n\n gjsModel.on('change:componentProps', handlePropsChange);\n\n return () => {\n gjsModel.off('change:componentProps', handlePropsChange);\n };\n }, [gjsModel]);\n\n useEffect(() => {\n const handleAttributesChange = () => {\n const newAttributes = gjsModel.get('attributes');\n setAttributes({\n ...newAttributes,\n });\n };\n\n gjsModel.on('change:attributes', handleAttributesChange);\n\n return () => {\n gjsModel.off('change:attributes', handleAttributesChange);\n };\n }, [gjsModel]);\n\n useEffect(() => {\n const updateContainerWidth = () => {\n if (containerRef.current) {\n setContainerWidth(containerRef.current.offsetWidth || 0);\n }\n };\n\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n setContainerWidth(entry.contentRect.width || 0);\n }\n });\n\n updateContainerWidth();\n\n const timeoutId = setTimeout(updateContainerWidth, 50);\n\n if (containerRef.current) {\n resizeObserver.observe(containerRef.current);\n }\n\n window.addEventListener('resize', updateContainerWidth);\n\n return () => {\n clearTimeout(timeoutId);\n resizeObserver.disconnect();\n window.removeEventListener('resize', updateContainerWidth);\n };\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 safeChartData = Array.isArray(chartData) ? chartData : [];\n const colors = getNColors(safeChartData.length);\n safeChartData.forEach((data, i) => {\n if (!data.fill) {\n data.fill = colors[i];\n }\n });\n } else if (!config.color) {\n const safeBaseColors = Array.isArray(baseColors) ? baseColors : [];\n\n if (safeBaseColors.length > 0) {\n config.color = safeBaseColors[Math.floor(Math.random() * safeBaseColors.length)];\n }\n }\n\n let totalDataPoints = 0;\n\n if (chartType === 'bar' || chartType === 'line') {\n const safeChartData = Array.isArray(chartData) ? chartData : [];\n const safeDataKeys = Array.isArray(config.dataKeys) ? config.dataKeys : [];\n totalDataPoints =\n chartType === 'bar'\n ? safeChartData.length * Math.max(1, safeDataKeys.length)\n : safeChartData.length;\n }\n\n const getScrollableWidth = () => {\n if (chartType === 'line') {\n return totalDataPoints * 20;\n }\n\n if (chartType === 'bar') {\n return (\n totalDataPoints * 20 +\n (Array.isArray(config.dataKeys) ? config.dataKeys.length : 0) *\n 8 *\n (Array.isArray(chartData) ? chartData.length : 0) +\n (Array.isArray(chartData) ? chartData.length : 0) * 15\n );\n }\n\n return 800;\n };\n\n const scrollWidth = getScrollableWidth();\n const shouldScroll =\n (chartType === 'bar' || chartType === 'line') &&\n totalDataPoints > 15 &&\n scrollWidth > containerWidth;\n\n const hasError = attributes.error || allData.error;\n const hasMissing = attributes.isMissing || allData.isMissing;\n const isLoading =\n (attributes.interactionApiInProgress || attributes.loading) && !hasError && !hasMissing;\n\n const ChartWrapper = ({ children }: { children: React.ReactNode }) => {\n if (shouldScroll) {\n return (\n <div className=\"w-full h-[250px] overflow-x-auto\">\n <div style={{ minWidth: `${scrollWidth}px`, height: '250px' }}>{children}</div>\n </div>\n );\n }\n\n return <div className=\"w-full h-[250px]\">{children}</div>;\n };\n\n const chartUi = isLoading ? (\n <ChartLoader />\n ) : hasError || hasMissing || !chartData ? (\n renderNoDataFallback()\n ) : (\n <ChartWrapper>\n <ResponsiveContainer width=\"100%\" height={250}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\n </ChartContainer>\n </ResponsiveContainer>\n </ChartWrapper>\n );\n\n return (\n <Card className=\"shadow border mt-2 mb-2 relative\">\n <CardHeader>\n <div className=\"flex items-start justify-between\">\n <div className=\"flex-1\">\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 </div>\n </div>\n </CardHeader>\n <CardContent ref={containerRef} data-slot=\"bodyContent\" className=\"px-6\">\n {chartUi}\n </CardContent>\n <StyledInfoButton\n componentId={gjsModel.get('id')}\n performInteraction={performInteraction}\n position=\"top-right\"\n isVisible={isEditable}\n componentProps={allData}\n />\n </Card>\n );\n}\n\nexport function renderTable(props: any): JSX.Element {\n const { gjsModel, performInteraction = () => {}, ...rest } = props;\n\n // Memoize filtered props to avoid re-filtering on every render\n const initialData = useMemo(() => filterPlaceholders(props), []);\n const [allData, setAllData] = useState(initialData);\n\n const cardRef = useRef<HTMLDivElement>(null);\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n const isEditable = attributes.isEditable ?? false;\n\n const {\n data: rawData,\n headerMapper: rawHeaderMapper = {},\n className,\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(Object.entries(cleaned).filter(([key]) => dataKeys.includes(key)));\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(\n `[data-table-id=\"${tableId}\"]`,\n ) as HTMLElement;\n\n if (tableElement) {\n const headerElement = tableElement.querySelector(\n '[data-slot=\"card-header\"]',\n ) 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 =\n 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(\n `[data-table-id=\"${tableId}\"]`,\n ) as HTMLElement;\n\n if (!tableElement && window.parent !== window) {\n tableElement = window.parent.document.querySelector(\n `[data-table-id=\"${tableId}\"]`,\n ) 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, Array.isArray(data) ? data.length : 0);\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 const handlePropsChange = () => {\n const newComponentProps = gjsModel.get('componentProps');\n const filteredProps = filterPlaceholders(newComponentProps);\n\n setAllData((prevData: any) => ({\n ...prevData, // Preserve existing data (including __sql_query_params)\n ...filteredProps,\n }));\n };\n\n gjsModel.on('change:componentProps', handlePropsChange);\n\n return () => {\n gjsModel.off('change:componentProps', handlePropsChange);\n };\n }, [gjsModel]);\n\n useEffect(() => {\n const handleAttributesChange = () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n };\n\n gjsModel.on('change:attributes', handleAttributesChange);\n\n return () => {\n gjsModel.off('change:attributes', handleAttributesChange);\n };\n }, [gjsModel]);\n\n const parsedData = (() => {\n if (\n typeof data === 'object' &&\n data !== null &&\n !Array.isArray(data) &&\n (data as any).name === '__peak_placeholder'\n ) {\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 relative flex flex-col h-fit overflow-hidden\"\n data-component-type=\"table\"\n data-table-id={gjsModel.get('id')}\n >\n <CardHeader>\n <div className=\"flex items-start justify-between\">\n <div className=\"flex-1\">\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 </div>\n </div>\n </CardHeader>\n <CardContent\n data-slot=\"bodyContent\"\n contentEditable={false}\n className=\"flex-1 flex flex-col overflow-hidden\"\n >\n {attributes.error || allData.error || attributes.isMissing || allData.isMissing ? (\n renderNoDataFallback()\n ) : (\n <DataTable\n data={parsedData}\n headerMapper={headerMapper}\n className={className}\n isEditable={isEditable}\n actions={actions}\n pagination={pagination}\n isLoading={attributes.interactionApiInProgress || attributes.loading}\n onRowAction={onRowAction}\n onPageChange={onPageChange}\n onSort={handleSort}\n sortConfig={sortConfig}\n otherProps={rest}\n height={scrollAreaHeight}\n />\n )}\n </CardContent>\n <StyledInfoButton\n componentId={gjsModel.get('id')}\n performInteraction={performInteraction}\n position=\"top-right\"\n tableActions={actions}\n firstRowData={Array.isArray(data) && data.length > 0 ? data[0] : {}}\n isVisible={isEditable}\n componentProps={allData}\n />\n </Card>\n );\n}\n\nexport function renderTab(props: any): JSX.Element {\n let tabsWidth = 157;\n const safeTabs = Array.isArray(props.tabs) ? props.tabs : [];\n const showFallback = safeTabs.length === 0;\n\n if (safeTabs.length > 4) {\n tabsWidth = 157;\n }\n\n const defaultValue = props.defaultValue || (safeTabs.length > 0 ? safeTabs[0] : undefined);\n\n return (\n <Tabs defaultValue={defaultValue}>\n <div className=\"text-center mb-4\">\n <TabsList className=\"bg-[#F9F9FE] border border-[#D4D5DE] p-1 rounded-lg h-auto\">\n {safeTabs.length > 0 ? (\n safeTabs.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 ) : (\n <TabsTrigger\n value=\"no-data\"\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 disabled\n >\n No tabs\n </TabsTrigger>\n )}\n </TabsList>\n </div>\n {showFallback ? (\n <TabsContent\n value={defaultValue || 'no-data'}\n className=\"tabs-content\"\n data-fallback=\"true\"\n >\n {renderNoDataFallback()}\n </TabsContent>\n ) : (\n safeTabs.map((tab: string) => (\n <TabsContent value={tab} className=\"tabs-content\" key={tab} />\n ))\n )}\n </Tabs>\n );\n}\n\nexport function renderMarkdown(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n // Memoize filtered props to avoid re-filtering on every render\n const initialData = useMemo(() => filterPlaceholders(props), []);\n const [allData, setAllData] = useState(initialData);\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n const isEditable = attributes.isEditable ?? false;\n\n useEffect(() => {\n const handlePropsChange = () => {\n const newComponentProps = gjsModel.get('componentProps');\n const filteredProps = filterPlaceholders(newComponentProps);\n\n setAllData((prevData: any) => ({\n ...prevData, // Preserve existing data (including __sql_query_params)\n ...filteredProps,\n }));\n };\n\n gjsModel.on('change:componentProps', handlePropsChange);\n\n return () => {\n gjsModel.off('change:componentProps', handlePropsChange);\n };\n }, [gjsModel]);\n\n useEffect(() => {\n const handleAttributesChange = () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n };\n\n gjsModel.on('change:attributes', handleAttributesChange);\n\n return () => {\n gjsModel.off('change:attributes', handleAttributesChange);\n };\n }, [gjsModel]);\n\n const [isEditing, setIsEditing] = useState(false);\n const [isEditingHeading, setIsEditingHeading] = useState(false);\n const editRef = useRef<HTMLDivElement>(null);\n const headingEditRef = useRef<HTMLDivElement>(null);\n\n const startEditing = () => {\n setIsEditing(true);\n setTimeout(() => {\n setupEditor();\n }, 0);\n };\n\n const startEditingHeading = () => {\n setIsEditingHeading(true);\n setTimeout(() => {\n setupHeadingEditor();\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 const setupHeadingEditor = () => {\n if (!headingEditRef.current) {\n return;\n }\n\n const editor = headingEditRef.current;\n editor.innerHTML = '';\n editor.textContent = allData.summaryHeading || 'Insights';\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 saveHeadingChanges = () => {\n if (!headingEditRef.current) {\n return;\n }\n\n const content = headingEditRef.current.innerText || 'Insights';\n setAllData((prev: Record<string, any>) => ({\n ...prev,\n summaryHeading: content,\n }));\n setIsEditingHeading(false);\n headingEditRef.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 const hasError = attributes.error || allData.error;\n const hasMissing = attributes.isMissing || allData.isMissing;\n const isLoading =\n (attributes.loading && !hasError && !hasMissing) || attributes.interactionApiInProgress;\n\n if (isLoading) {\n return <MarkdownLoader />;\n }\n\n if (hasError || hasMissing) {\n return (\n <div className=\"px-[1em] relative\" {...rest}>\n <h3 className=\"text-xl font-semibold text-left\">{allData.summaryHeading || 'Insights'}</h3>\n <div\n className=\"w-full py-8 flex flex-col items-center justify-center px-6 text-center\"\n style={{ minHeight: '180px' }}\n >\n <CircleAlert className=\"w-12 h-12 text-gray-400 mb-2\" />\n <h3 className=\"text-lg font-medium text-gray-900\">No data available</h3>\n <p className=\"mt-2 text-sm text-gray-500 max-w-md\">\n Check your filters or try a different time range.\n </p>\n </div>\n <StyledInfoButton\n componentId={gjsModel.get('id')}\n performInteraction={props.performInteraction}\n position=\"top-right\"\n isVisible={isEditable}\n componentProps={allData}\n />\n </div>\n );\n }\n\n if (!isEditable) {\n return (\n <div className=\"px-[1em] relative\" {...rest}>\n <h3 className=\"text-xl font-semibold text-left\">{allData.summaryHeading || 'Insights'}</h3>\n <div data-slot=\"summaryText\">\n <Markdown options={{ overrides: markdownStyles }}>{allData.summaryText}</Markdown>\n </div>\n <StyledInfoButton\n componentId={gjsModel.get('id')}\n performInteraction={props.performInteraction}\n position=\"top-right\"\n isVisible={isEditable}\n componentProps={allData}\n />\n </div>\n );\n }\n\n return (\n <div className=\"p-[1em] relative\" {...rest}>\n {isEditingHeading ? (\n <div\n ref={headingEditRef}\n contentEditable\n onBlur={saveHeadingChanges}\n data-slot=\"summaryHeading\"\n className=\"text-xl font-semibold text-left\"\n suppressContentEditableWarning={true}\n />\n ) : (\n <h3\n className=\"text-xl font-semibold text-left\"\n onClick={startEditingHeading}\n data-slot=\"summaryHeading\"\n >\n {allData.summaryHeading || 'Insights'}\n </h3>\n )}\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 <StyledInfoButton\n componentId={gjsModel.get('id')}\n performInteraction={props.performInteraction}\n position=\"top-right\"\n isVisible={isEditable}\n componentProps={allData}\n />\n </div>\n );\n}\n\nexport function renderButton(props: any): JSX.Element {\n const { gjsModel, performInteraction = () => {} } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n const isEditable = attributes.isEditable ?? false;\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 renderActionCardWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'ActionCard' }}>\n {renderActionCard(props)}\n </ComponentWrapper>\n);\n\nconst renderButtonWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Button' }}>\n {renderButton(props)}\n </ComponentWrapper>\n);\n\nconst renderCardWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Card' }}>\n {renderCard(props)}\n </ComponentWrapper>\n);\n\nconst renderChartWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Chart' }}>\n {renderChart(props)}\n </ComponentWrapper>\n);\n\nconst renderFilterWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Filter' }}>\n {renderFilter(props)}\n </ComponentWrapper>\n);\n\nconst renderMarkdownWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Markdown' }}>\n {renderMarkdown(props)}\n </ComponentWrapper>\n);\n\nconst renderSearchWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Search' }}>\n {renderSearch(props)}\n </ComponentWrapper>\n);\n\nconst renderTableWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Table' }}>\n {renderTable(props)}\n </ComponentWrapper>\n);\n\nconst renderTabWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Tabs' }}>\n {renderTab(props)}\n </ComponentWrapper>\n);\n\nfunction renderActions(props: any): JSX.Element {\n const { actions, isEditable = false, gjsModel } = props;\n\n if (actions === null) {\n return <div />;\n }\n\n if (!Array.isArray(actions) || actions.length === 0) {\n return (\n <div className=\"bg-white text-black p-4 rounded-lg border flex flex-col h-full shadow-none relative\">\n <CardLoader />\n </div>\n );\n }\n\n return (\n <div className=\"dashboard-cards flex flex-wrap gap-4\">\n {actions.map((action: any, index: number) => {\n const { icon, title, description } = action;\n\n return (\n <div key={index} className=\"flex-1 min-w-[200px]\">\n {renderActionCard({\n icon,\n headerContent: title,\n bodyContent: description,\n isEditable,\n gjsModel,\n })}\n </div>\n );\n })}\n </div>\n );\n}\n\nconst renderActionsWithWrapper = (props: any) => (\n <ComponentWrapper componentProps={{ ...props, componentType: 'Actions' }}>\n {renderActions(props)}\n </ComponentWrapper>\n);\n\nexport function getRenderers(): Record<string, (props: any) => JSX.Element> {\n return {\n ActionCard: renderActionCardWithWrapper,\n Actions: renderActionsWithWrapper,\n Button: renderButtonWithWrapper,\n Card: renderCardWithWrapper,\n Chart: renderChartWithWrapper,\n Filter: renderFilterWithWrapper,\n Markdown: renderMarkdownWithWrapper,\n Search: renderSearchWithWrapper,\n Table: renderTableWithWrapper,\n Tabs: renderTabWithWrapper,\n };\n}\n"],"mappings":"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","ignoreList":[]}