@peak-ai/canvas 1.4.34-rc.0 → 1.4.34-rc.2

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$error","_attributes$isMissing","_props$isEditable","_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","defaultFooterClasses","defaultContentMetadataClasses","mergedCardClassName","mergedFooterClassName","mergedContentMetadataClassName","hasError","Boolean","hasMissing","isLoading","interactionApiInProgress","loading","footerIconText","String","getCardContent","showEmpty","Fragment","trim","componentId","position","isVisible","componentProps","renderChartComponent","chartType","data","config","safeData","cursor","content","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","_props$isEditable2","_props$performInterac2","_excluded3","_useState5","_useState6","containerRef","_useState7","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","_props$isEditable3","_props$performInterac3","_excluded4","_useState8","cardRef","_useState9","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","_useState10","viewportWidth","setViewportWidth","_useState11","scrollAreaHeight","setScrollAreaHeight","calculateTableHeight","tableWidth","rowCount","_gjsModel$collection","widthRatio","baseTableHeight","targetScrollAreaHeight","headerHeight","rowHeight","calculatedHeight","min","tableId","editor","em","collection","canvasDocument","Canvas","getDocument","tableElement","headerElement","offsetHeight","actualHeaderHeight","standardHeaderHeight","heightDifference","updateViewportWidth","iframeDocument","dashboardRoot","getElementById","effectiveViewportWidth","clientWidth","updateTableWidthAndApplyCSS","_gjsModel$collection2","parent","tableActualWidth","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","currentProps","_callee3$","_context3","set","onSort","otherProps","tableActions","firstRowData","renderTab","tabsWidth","safeTabs","tabs","showFallback","defaultValue","tab","fontFamily","fontWeight","fontSize","lineHeight","letterSpacing","disabled","renderMarkdown","_props$isEditable4","_excluded5","_useState12","_useState13","_useState14","isEditing","setIsEditing","_useState15","isEditingHeading","setIsEditingHeading","editRef","headingEditRef","startEditing","setupEditor","startEditingHeading","setupHeadingEditor","innerHTML","textContent","summaryText","focus","summaryHeading","saveChanges","innerText","saveHeadingChanges","markdownStyles","ul","h1","h2","h3","h4","h5","h6","minHeight","options","overrides","onBlur","suppressContentEditableWarning","onClick","whiteSpace","wordWrap","renderButton","_props$isEditable5","_props$performInterac4","_useState16","_useState17","text","_allData$variant","variant","_allData$size","size","tooltipContent","interact","concat","renderActionCardWithWrapper","componentType","renderButtonWithWrapper","renderCardWithWrapper","renderChartWithWrapper","renderFilterWithWrapper","renderMarkdownWithWrapper","renderSearchWithWrapper","renderTableWithWrapper","renderTabWithWrapper","renderActions","_props$isEditable6","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 isEditable = false,\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) {\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 [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 =\n 'bg-white text-black p-4 rounded-lg border flex flex-col h-full shadow-none';\n const defaultFooterClasses = safeFooterContent\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 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={cn(mergedFooterClassName)}\n >\n {(footerIconText || '').trim() && (\n <span className=\"mr-2\" aria-hidden=\"true\">\n {footerIconText}\n </span>\n )}\n {safeFooterContent || ''}\n </CardFooter>\n </React.Fragment>\n );\n }\n\n return (\n <Card {...rest} 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 isEditable = false,\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\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 { isEditable = false, 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\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 { isEditable = false, 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\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 (!allData.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 { isEditable = false, gjsModel, performInteraction = () => {} } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const {\n text,\n className,\n payload,\n variant = 'default',\n size = 'sm',\n affectedComponents,\n tooltipContent,\n } = allData;\n\n function interact() {\n const id = gjsModel.get('id');\n performInteraction({\n id,\n interactionType: 'button',\n affectedComponents: getAffectedComponentsWithLoader([id, ...affectedComponents], true),\n payload,\n });\n }\n\n return (\n <TooltipButton\n className={className}\n isEditable={isEditable}\n interact={interact}\n attributes={attributes}\n variant={variant}\n size={size}\n text={text}\n tooltipContent={tooltipContent}\n />\n );\n}\n\nconst 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","Scatter","ScatterChart","XAxis","YAxis","Cell","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$error","_attributes$isMissing","_props$isEditable","_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","defaultFooterClasses","defaultContentMetadataClasses","mergedCardClassName","mergedFooterClassName","mergedContentMetadataClassName","hasError","Boolean","hasMissing","isLoading","interactionApiInProgress","loading","footerIconText","String","getCardContent","showEmpty","Fragment","trim","componentId","position","isVisible","componentProps","transformDataForScatter","data","xAxis","yAxis","dataKeys","scatterData","filter","item","undefined","map","_result","result","Number","forEach","_ref","binDataForHistogram","valueKey","bins","values","val","isNaN","min","apply","max","binWidth","binsArray","fill","binLabels","binStart","binEnd","toFixed","binIndex","label","index","bin","frequency","transformDataForBeeswarm","groupBy","grouped","group","groups","sort","groupIndex","jitterRadius","valueIndex","angle","PI","radius","jitterX","cos","x","y","renderChartComponent","chartType","config","safeData","cursor","content","hideLabel","dataKey","nameKey","innerRadius","strokeWidth","_ref2","name","percent","labelLine","barDataKeys","chartUi","barGap","vertical","align","wrapperStyle","marginLeft","_ref3","indicator","safeDataKeysLine","_ref4","type","stroke","safeDataKeys","_ref5","domain","strokeDasharray","_ref6","binnedData","textAnchor","height","entry","_config$dataKeys$","_config$dataKeys$2","swarmData","from","Set","ticks","_","tickFormatter","round","offset","_ref7","active","payload","pointData","_ref8","renderChart","_props$isEditable2","_props$performInterac2","_excluded3","_useState5","_useState6","containerRef","_useState7","containerWidth","setContainerWidth","handleAttributesChange","newAttributes","updateContainerWidth","current","offsetWidth","resizeObserver","ResizeObserver","entries","_iterator2","_step2","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","totalDataPoints","getScrollableWidth","scrollWidth","shouldScroll","ChartWrapper","_ref9","minWidth","ref","renderTable","_props$isEditable3","_props$performInterac3","_excluded4","_useState8","cardRef","_useState9","rawData","_allData$headerMapper","headerMapper","rawHeaderMapper","_allData$title2","_allData$subTitle2","_allData$actions","actions","pagination","cleaned","id","fromEntries","_ref10","sortConfig","_gjsModel$get","_ref12","_ref11","sortColumn","sortDirection","_useState10","viewportWidth","setViewportWidth","_useState11","scrollAreaHeight","setScrollAreaHeight","calculateTableHeight","tableWidth","rowCount","_gjsModel$collection","widthRatio","baseTableHeight","targetScrollAreaHeight","headerHeight","rowHeight","calculatedHeight","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","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","rowIndex","actionId","wrap","_callee$","_context","prev","next","interactionType","row","affectedComponents","stop","onPageChange","_x3","_x4","_onPageChange","_callee2","pageNumber","pageSize","_gjsModel$get2","_ref13","_callee2$","_context2","handleSort","_x5","_x6","_handleSort","_callee3","column","direction","currentProps","_callee3$","_context3","set","onSort","otherProps","tableActions","firstRowData","renderTab","tabsWidth","safeTabs","tabs","showFallback","defaultValue","tab","fontFamily","fontWeight","fontSize","lineHeight","letterSpacing","disabled","renderMarkdown","_props$isEditable4","_excluded5","_useState12","_useState13","_useState14","isEditing","setIsEditing","_useState15","isEditingHeading","setIsEditingHeading","editRef","headingEditRef","startEditing","setupEditor","startEditingHeading","setupHeadingEditor","innerHTML","textContent","summaryText","focus","summaryHeading","saveChanges","innerText","saveHeadingChanges","markdownStyles","ul","h1","h2","h3","h4","h5","h6","minHeight","options","overrides","onBlur","suppressContentEditableWarning","onClick","whiteSpace","wordWrap","renderButton","_props$isEditable5","_props$performInterac4","_useState16","_useState17","text","_allData$variant","variant","_allData$size","size","tooltipContent","interact","concat","renderActionCardWithWrapper","componentType","renderButtonWithWrapper","renderCardWithWrapper","renderChartWithWrapper","renderFilterWithWrapper","renderMarkdownWithWrapper","renderSearchWithWrapper","renderTableWithWrapper","renderTabWithWrapper","renderActions","_props$isEditable6","action","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 Scatter,\n ScatterChart,\n XAxis,\n YAxis,\n Cell,\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 isEditable = false,\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) {\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 [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 =\n 'bg-white text-black p-4 rounded-lg border flex flex-col h-full shadow-none';\n const defaultFooterClasses = safeFooterContent\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 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={cn(mergedFooterClassName)}\n >\n {(footerIconText || '').trim() && (\n <span className=\"mr-2\" aria-hidden=\"true\">\n {footerIconText}\n </span>\n )}\n {safeFooterContent || ''}\n </CardFooter>\n </React.Fragment>\n );\n }\n\n return (\n <Card {...rest} 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\n// Helper function to transform data for scatter plot (Recharts format)\nfunction transformDataForScatter(data: any[], xAxis: string, yAxis: string, dataKeys: any[]): any[] {\n if (!data || data.length === 0) {\n return [];\n }\n \n // Recharts ScatterChart expects array of objects with x and y properties\n const scatterData = data\n .filter((item) => item[xAxis] !== null && item[xAxis] !== undefined && item[yAxis] !== null && item[yAxis] !== undefined)\n .map((item) => {\n const result: any = {\n [xAxis]: Number(item[xAxis]),\n [yAxis]: Number(item[yAxis]),\n };\n \n // Add any additional dataKeys as separate properties\n if (dataKeys && dataKeys.length > 0) {\n dataKeys.forEach(({ key }: { key: string }) => {\n if (item[key] !== null && item[key] !== undefined) {\n result[key] = Number(item[key]);\n }\n });\n }\n \n return result;\n });\n \n return scatterData;\n}\n\n// Helper function to bin data for histogram\nfunction binDataForHistogram(data: any[], valueKey: string, bins = 10): any[] {\n if (!data || data.length === 0) {\n return [];\n }\n \n const values = data\n .map((item) => Number(item[valueKey]))\n .filter((val) => !isNaN(val));\n \n if (values.length === 0) {\n return [];\n }\n \n const min = Math.min(...values);\n const max = Math.max(...values);\n const binWidth = (max - min) / bins;\n \n const binsArray: number[] = new Array(bins).fill(0);\n const binLabels: string[] = [];\n \n for (let i = 0; i < bins; i++) {\n const binStart = min + i * binWidth;\n const binEnd = binStart + binWidth;\n binLabels.push(`${binStart.toFixed(1)}-${binEnd.toFixed(1)}`);\n }\n \n values.forEach((value) => {\n let binIndex = Math.floor((value - min) / binWidth);\n\n if (binIndex >= bins) {\n binIndex = bins - 1;\n }\n\n if (binIndex < 0) {\n binIndex = 0;\n }\n\n binsArray[binIndex] += 1;\n });\n \n return binLabels.map((label, index) => ({\n bin: label,\n frequency: binsArray[index],\n }));\n}\n\n// Helper function to transform data for beeswarm plot (Recharts ScatterChart format)\n// Beeswarm uses x-axis for groups and y-axis for values, with jitter on x-axis\nfunction transformDataForBeeswarm(data: any[], groupBy: string, valueKey: string): any[] {\n if (!data || data.length === 0) {\n return [];\n }\n \n // Group data by groupBy field\n const grouped: { [key: string]: number[] } = {};\n \n data.forEach((item) => {\n if (item[groupBy] !== null && item[groupBy] !== undefined && item[valueKey] !== null && item[valueKey] !== undefined) {\n const group = String(item[groupBy]);\n const value = Number(item[valueKey]);\n \n if (!grouped[group]) {\n grouped[group] = [];\n }\n\n grouped[group].push(value);\n }\n });\n\n const groups = Object.keys(grouped).sort();\n const result: any[] = [];\n \n // Create scatter points with jitter on x-axis\n groups.forEach((group, groupIndex) => {\n const values = grouped[group];\n const jitterRadius = 0.3; // Jitter radius for positioning points\n \n values.forEach((value, valueIndex) => {\n // Calculate jitter position within the group\n const angle = (valueIndex / values.length) * 2 * Math.PI;\n const radius = (valueIndex % 10) / 10 * jitterRadius; // Distribute points in a circle\n const jitterX = groupIndex + radius * Math.cos(angle);\n \n result.push({\n group: group,\n groupIndex: groupIndex,\n value: value,\n x: jitterX,\n y: value,\n });\n });\n });\n \n return result;\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 case 'scatter': {\n config.dataKeys = config.dataKeys || [];\n const safeDataKeys = Array.isArray(config.dataKeys) ? config.dataKeys : [];\n const scatterData = transformDataForScatter(safeData, config.xAxis, config.yAxis, safeDataKeys);\n \n if (scatterData.length === 0) {\n return renderNoDataFallback();\n }\n\n const colors = safeDataKeys.length > 0 \n ? safeDataKeys.map(({ color }: { color: string }) => color ?? '#2A44D4')\n : ['#2A44D4'];\n \n return (\n <ScatterChart data={scatterData} {...config.chartUi}>\n <CartesianGrid vertical={false} />\n <XAxis \n type=\"number\" \n dataKey={config.xAxis} \n name={config.xAxis || 'X Axis'}\n domain={['auto', 'auto']}\n />\n <YAxis \n type=\"number\" \n dataKey={config.yAxis} \n name={config.yAxis || 'Y Axis'}\n domain={['auto', 'auto']}\n />\n <ChartTooltip cursor={{ strokeDasharray: '3 3' }} content={<ChartTooltipContent />} />\n {safeDataKeys.length > 0 ? (\n safeDataKeys.map(({ key, name, color }: { key: string; name: string; color: string }, index: number) => (\n <Scatter\n key={key}\n name={name || key}\n dataKey={key || config.yAxis}\n fill={color ?? colors[index % colors.length]}\n />\n ))\n ) : (\n <Scatter\n name=\"Data\"\n dataKey={config.yAxis}\n fill={colors[0]}\n />\n )}\n <Legend align=\"left\" />\n </ScatterChart>\n );\n }\n\n case 'histogram': {\n config.dataKeys = config.dataKeys || [];\n const safeDataKeys = Array.isArray(config.dataKeys) ? config.dataKeys : [];\n const valueKey = safeDataKeys.length > 0 ? safeDataKeys[0].key : config.xAxis;\n const bins = config.bins || 10;\n const binnedData = binDataForHistogram(safeData, valueKey, bins);\n \n if (binnedData.length === 0) {\n return renderNoDataFallback();\n }\n\n const color = safeDataKeys.length > 0 ? safeDataKeys[0].color : '#2A44D4';\n \n return (\n <BarChart data={binnedData} {...config.chartUi}>\n <CartesianGrid vertical={false} />\n <XAxis \n dataKey=\"bin\" \n angle={-45}\n textAnchor=\"end\"\n height={80}\n />\n <YAxis />\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n <Bar dataKey=\"frequency\" fill={color} radius={2}>\n {binnedData.map((entry, index) => (\n <Cell key={`cell-${index}`} fill={color} />\n ))}\n </Bar>\n <Legend align=\"left\" />\n </BarChart>\n );\n }\n\n case 'beeswarm': {\n const groupBy = config.groupBy || config.xAxis;\n const valueKey = config.valueKey || (config.dataKeys && config.dataKeys[0]?.key) || 'value';\n const swarmData = transformDataForBeeswarm(safeData, groupBy, valueKey);\n \n if (swarmData.length === 0) {\n return renderNoDataFallback();\n }\n\n // Get unique groups for x-axis labels\n const groups = Array.from(new Set(swarmData.map((item: any) => item.group))).sort();\n const color = config.dataKeys && config.dataKeys[0]?.color ? config.dataKeys[0].color : '#2A44D4';\n \n return (\n <ScatterChart data={swarmData} {...config.chartUi}>\n <CartesianGrid vertical={false} />\n <XAxis \n type=\"number\"\n dataKey=\"x\"\n domain={[-0.5, groups.length - 0.5]}\n ticks={groups.map((_, index) => index)}\n tickFormatter={(value) => {\n const groupIndex = Math.round(value);\n\n return groups[groupIndex] || '';\n }}\n label={{ value: groupBy || 'Group', position: 'insideBottom', offset: -5 }}\n />\n <YAxis \n type=\"number\"\n dataKey=\"y\"\n name={valueKey || 'Value'}\n label={{ value: valueKey || 'Value', angle: -90, position: 'insideLeft' }}\n />\n <ChartTooltip \n cursor={{ strokeDasharray: '3 3' }} \n content={({ active, payload }) => {\n if (active && payload && payload.length) {\n const pointData = payload[0].payload;\n\n return (\n <div className=\"bg-white p-2 border rounded shadow\">\n <p>{`${groupBy}: ${pointData.group}`}</p>\n <p>{`${valueKey}: ${pointData.value}`}</p>\n </div>\n );\n }\n\n return null;\n }}\n />\n <Scatter\n name=\"Beeswarm\"\n dataKey=\"y\"\n fill={color}\n />\n </ScatterChart>\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 isEditable = false,\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\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' || chartType === 'scatter' || chartType === 'histogram' || chartType === 'beeswarm') {\n const safeChartData = Array.isArray(chartData) ? chartData : [];\n const safeDataKeys = Array.isArray(config.dataKeys) ? config.dataKeys : [];\n\n if (chartType === 'bar') {\n totalDataPoints = safeChartData.length * Math.max(1, safeDataKeys.length);\n } else if (chartType === 'line') {\n totalDataPoints = safeChartData.length;\n } else if (chartType === 'scatter' || chartType === 'histogram' || chartType === 'beeswarm') {\n totalDataPoints = safeChartData.length;\n }\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 // Scatter, histogram, and beeswarm charts typically don't need horizontal scrolling\n // but we'll set a reasonable default width\n if (chartType === 'scatter' || chartType === 'histogram' || chartType === 'beeswarm') {\n return 800;\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 { isEditable = false, 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\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 { isEditable = false, 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\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 (!allData.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 { isEditable = false, gjsModel, performInteraction = () => {} } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n ...gjsModel.get('attributes'),\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const {\n text,\n className,\n payload,\n variant = 'default',\n size = 'sm',\n affectedComponents,\n tooltipContent,\n } = allData;\n\n function interact() {\n const id = gjsModel.get('id');\n performInteraction({\n id,\n interactionType: 'button',\n affectedComponents: getAffectedComponentsWithLoader([id, ...affectedComponents], true),\n payload,\n });\n }\n\n return (\n <TooltipButton\n className={className}\n isEditable={isEditable}\n interact={interact}\n attributes={attributes}\n variant={variant}\n size={size}\n text={text}\n tooltipContent={tooltipContent}\n />\n );\n}\n\nconst 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":[]}