@peak-ai/canvas 1.3.17-rc.0 → 1.3.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@peak-ai/canvas",
3
3
  "author": "squad-builder-experience",
4
4
  "license": "UNLICENSED",
5
- "version": "1.3.17-rc.0",
5
+ "version": "1.3.17",
6
6
  "description": "",
7
7
  "dependencies": {
8
8
  "@peak-ai/ais-components": "6.41.0",
@@ -1,7 +1,10 @@
1
- import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["gjsModel"],_excluded2=["isEditable","gjsModel"],_excluded3=["isEditable","gjsModel"],_excluded4=["gjsModel","performInteraction"],_excluded5=["gjsModel"];import _regeneratorRuntime from"@babel/runtime/regenerator";function _createForOfIteratorHelperLoose(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(t)return(t=t.call(r)).next.bind(t);if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var o=0;return function(){return o>=r.length?{done:!0}:{done:!1,value:r[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}/* eslint-disable func-style *//* eslint-disable @typescript-eslint/no-empty-function *//* eslint-disable func-names *//* eslint-disable @typescript-eslint/no-explicit-any */import chroma from"chroma-js";import React,{useEffect,useState,useRef,Fragment}from"react";import{theme}from"@peak-ai/ais-components/theme";import Markdown from"markdown-to-jsx";import{PieChart,Pie,BarChart,Bar,LineChart,Line,XAxis,YAxis,ResponsiveContainer,CartesianGrid,Legend}from"recharts";import{TooltipButton}from"../../shadcn/components/ui/button";import{Card,CardHeader,CardTitle,CardDescription,CardContent,CardFooter}from"../../shadcn/components/ui/card";import{ChartContainer,ChartTooltip,ChartTooltipContent}from"../../shadcn/components/ui/chart";import{renderFilter}from"../../shadcn/components/ui/filter";import{Pagination,PaginationContent,renderPaginationArrows}from"../../shadcn/components/ui/pagination";import{ScrollArea,ScrollBar}from"../../shadcn/components/ui/scroll-area";import{renderSearch}from"../../shadcn/components/ui/search";import{TableLoader,ChartLoader,CardLoader}from"../../shadcn/components/ui/skeleton";import{Table,TableHeader,TableRow,TableHead,TableHeadSortable,TableBody,TableCell}from"../../shadcn/components/ui/table";import{Tabs,TabsList,TabsTrigger,TabsContent}from"../../shadcn/components/ui/tabs";import{cn}from"../../shadcn/utils";import{getAffectedComponentsWithLoader}from"../../helpers";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var baseColors=[[theme.colors.Blue_100,theme.colors.Blue_30],[theme.colors.Purpley_100,theme.colors.Purpley_30],[theme.colors.Light_Bluish_Green,"#06601b"],[theme.colors.Wild_Strawberry,"#4d001c"]];var renderNoDataFallback=function renderNoDataFallback(){return/*#__PURE__*/_jsxs("div",{className:"flex flex-col items-center justify-center py-16 px-6 text-center",children:[/*#__PURE__*/_jsx("div",{className:"mb-4 rounded-full bg-gray-100 p-3",children:/*#__PURE__*/_jsxs("svg",{className:"w-8 h-8 text-gray-400",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:[/*#__PURE__*/_jsx("circle",{cx:"11",cy:"11",r:"7",strokeWidth:"2"}),/*#__PURE__*/_jsx("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65",strokeWidth:"2",strokeLinecap:"round"})]})}),/*#__PURE__*/_jsx("h3",{className:"text-lg font-medium text-gray-900",children:"No Results"}),/*#__PURE__*/_jsx("p",{className:"mt-2 text-sm text-gray-500 max-w-md",children:"No results were returned for this query. If you expected results to be returned, ensure any filters are configured properly and the datasource contains data for the selected time range."})]})};function getNColors(n){var colors=[];for(var _iterator=_createForOfIteratorHelperLoose(baseColors),_step;!(_step=_iterator()).done;){var baseColor=_step.value;// eslint-disable-next-line import/no-named-as-default-member
1
+ import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["gjsModel"],_excluded2=["isEditable","gjsModel"],_excluded3=["isEditable","gjsModel"],_excluded4=["gjsModel","performInteraction"],_excluded5=["gjsModel"];import _regeneratorRuntime from"@babel/runtime/regenerator";function _createForOfIteratorHelperLoose(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(t)return(t=t.call(r)).next.bind(t);if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var o=0;return function(){return o>=r.length?{done:!0}:{done:!1,value:r[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}/* eslint-disable func-style *//* eslint-disable @typescript-eslint/no-empty-function *//* eslint-disable func-names *//* eslint-disable @typescript-eslint/no-explicit-any */import chroma from"chroma-js";import React,{useEffect,useState,useRef,Fragment}from"react";import{theme}from"@peak-ai/ais-components/theme";import Markdown from"markdown-to-jsx";import{PieChart,Pie,BarChart,Bar,LineChart,Line,XAxis,YAxis,ResponsiveContainer,CartesianGrid,Legend// @ts-ignore
2
+ }from"recharts/lib";// @ts-ignore
3
+ import*as domutil from"recharts/lib/util/DOMUtils";// Monkey-patching the getOffset function to use iframe's window instead of global one
4
+ // REMEMBER TO UDPATE THIS WHEN recharts IS UPGRADED
5
+ domutil.getOffset=function(el){var html=el.ownerDocument.documentElement;var box={top:0,left:0};if(typeof el.getBoundingClientRect!=="undefined"){box=el.getBoundingClientRect()}var iframe=document.querySelector(".gjs-frame");var iframeWindow=iframe==null?void 0:iframe.contentWindow;return{top:box.top+iframeWindow.pageYOffset-html.clientTop,left:box.left+iframeWindow.pageXOffset-html.clientLeft}};import{TooltipButton}from"../../shadcn/components/ui/button";import{Card,CardHeader,CardTitle,CardDescription,CardContent,CardFooter}from"../../shadcn/components/ui/card";import{ChartContainer,ChartTooltip,ChartTooltipContent}from"../../shadcn/components/ui/chart";import{renderFilter}from"../../shadcn/components/ui/filter";import{Pagination,PaginationContent,renderPaginationArrows}from"../../shadcn/components/ui/pagination";import{ScrollArea,ScrollBar}from"../../shadcn/components/ui/scroll-area";import{renderSearch}from"../../shadcn/components/ui/search";import{TableLoader,ChartLoader,CardLoader}from"../../shadcn/components/ui/skeleton";import{Table,TableHeader,TableRow,TableHead,TableHeadSortable,TableBody,TableCell}from"../../shadcn/components/ui/table";import{Tabs,TabsList,TabsTrigger,TabsContent}from"../../shadcn/components/ui/tabs";import{cn}from"../../shadcn/utils";import{getAffectedComponentsWithLoader}from"../../helpers";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var baseColors=[[theme.colors.Blue_100,theme.colors.Blue_30],[theme.colors.Purpley_100,theme.colors.Purpley_30],[theme.colors.Light_Bluish_Green,"#06601b"],[theme.colors.Wild_Strawberry,"#4d001c"]];function getNColors(n){var colors=[];for(var _iterator=_createForOfIteratorHelperLoose(baseColors),_step;!(_step=_iterator()).done;){var baseColor=_step.value;// eslint-disable-next-line import/no-named-as-default-member
2
6
  colors.push(chroma.scale(baseColor).mode("lab").colors(n))}function getOneColor(existing){var color=null;do{var base=colors[Math.floor(Math.random()*colors.length)];var selectedColorIndex=Math.floor(Math.random()*base.length);color=base[selectedColorIndex]}while(existing.includes(color));return color}var selectedColors=[];for(var i=0;i<n;i++){selectedColors.push(getOneColor(selectedColors))}return selectedColors}/* TODO: Loader remains */export function renderActionCard(props){var gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded);var _useState=useState(_extends({},props)),allData=_useState[0],setAllData=_useState[1];var _allData$headerConten=allData.headerContent,headerContent=_allData$headerConten===void 0?"Default Action Card Title":_allData$headerConten,icon=allData.icon,_allData$bodyContent=allData.bodyContent,bodyContent=_allData$bodyContent===void 0?"Default body content. Click to edit.":_allData$bodyContent;var _useState2=useState({interactionApiInProgress:false}),setAttributes=_useState2[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var defaultClasses="bg-white text-black p-4 rounded-lg shadow border flex flex-col h-full";return/*#__PURE__*/_jsx(Card,_extends({className:defaultClasses,isEditable:false,contentEditable:false},rest,{children:/*#__PURE__*/_jsx(CardContent,{className:"p-0",isEditable:false,contentEditable:false,children:/*#__PURE__*/_jsx("div",{className:"px-4 py-3",children:/*#__PURE__*/_jsxs("div",{className:"flex items-start",children:[/*#__PURE__*/_jsx("span",{className:"text-5xl mr-2","aria-hidden":"true",children:icon}),/*#__PURE__*/_jsxs("div",{className:"flex-1",children:[/*#__PURE__*/_jsx("div",{className:"text-xl font-semibold",children:headerContent}),/*#__PURE__*/_jsx("div",{className:"text-base leading-relaxed mt-1",children:bodyContent})]})]})})})}))}export function renderCard(props){var _props$isEditable=props.isEditable,isEditable=_props$isEditable===void 0?false:_props$isEditable,gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded2);var _useState3=useState(_extends({},props)),allData=_useState3[0],setAllData=_useState3[1];var headerContent=allData.headerContent,headerDescription=allData.headerDescription,bodyContent=allData.bodyContent,footerContent=allData.footerContent,footerClass=allData.footerClass,footerIcon=allData.footerIcon,contentMetadata=allData.contentMetadata,contentMetadataClass=allData.contentMetadataClass,className=allData.className;var _useState4=useState({interactionApiInProgress:false}),attributes=_useState4[0],setAttributes=_useState4[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var defaultClasses="bg-white text-black p-4 rounded-lg shadow border flex flex-col h-full";var defaultFooterClasses="text-sm";var defaultContentMetadataClasses="text-xs";var mergedCardClassName=className?cn(defaultClasses,className):defaultClasses;var mergedFooterClassName=footerClass?cn(defaultFooterClasses,footerClass):defaultFooterClasses;var mergedContentMetadataClassName=contentMetadataClass?cn(defaultContentMetadataClasses,contentMetadataClass):defaultContentMetadataClasses;function getCardContent(){if(attributes.interactionApiInProgress){return/*#__PURE__*/_jsx(CardContent,{children:/*#__PURE__*/_jsx(CardLoader,{})})}return/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"headerContent",contentEditable:isEditable,className:"text-lg",children:headerContent}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"headerDescription",contentEditable:isEditable,className:"text-sm",children:headerDescription})]}),/*#__PURE__*/_jsxs(CardContent,{"data-slot":"bodyContent",contentEditable:false,className:"flex-grow",children:[/*#__PURE__*/_jsx("div",{className:"text-3xl font-semibold truncate",children:bodyContent}),contentMetadata&&/*#__PURE__*/_jsx("div",{className:mergedContentMetadataClassName,style:{color:"#2A44D4"},children:contentMetadata})]}),/*#__PURE__*/_jsxs(CardFooter,{"data-slot":"footerContent",contentEditable:isEditable,className:cn(mergedFooterClassName),children:[footerIcon&&/*#__PURE__*/_jsx("span",{className:"mr-2","aria-hidden":"true",children:footerIcon}),footerContent]})]})}return/*#__PURE__*/_jsx(Card,_extends({},rest,{className:mergedCardClassName,children:getCardContent()}))}function renderChartComponent(chartType,data,config){switch(chartType){case"pie":return/*#__PURE__*/_jsxs(PieChart,{children:[data.length>=20&&/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{hideLabel:true})}),/*#__PURE__*/_jsx(Pie,{data:data,dataKey:config.dataKey,nameKey:config.nameKey,innerRadius:60,strokeWidth:10,label:data.length<20?function(_ref){var name=_ref.name,percent=_ref.percent;return name+": "+(percent*100).toFixed(0)+"%"}:undefined,labelLine:false})]});case"bar":config.dataKeys=config.dataKeys||[];return/*#__PURE__*/_jsxs(BarChart,_extends({data:data},config.chartUi,{children:[/*#__PURE__*/_jsx(CartesianGrid,{vertical:false}),/*#__PURE__*/_jsx(XAxis,{dataKey:config.xAxis}),/*#__PURE__*/_jsx(YAxis,{}),/*#__PURE__*/_jsx(Legend,{align:"left",wrapperStyle:{marginLeft:20}}),config.dataKeys.map(function(_ref2){var key=_ref2.key,name=_ref2.name,color=_ref2.color;return/*#__PURE__*/_jsx(Bar,{dataKey:key,fill:color!=null?color:"#4caf50",name:name,radius:2},key)}),/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{indicator:"dashed"})})]}));case"line":config.dataKeys=config.dataKeys||[];return/*#__PURE__*/_jsxs(LineChart,{data:data,children:[/*#__PURE__*/_jsx(CartesianGrid,{vertical:false}),/*#__PURE__*/_jsx(XAxis,{dataKey:config.xAxis}),/*#__PURE__*/_jsx(YAxis,{}),/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{indicator:"dashed"})}),config.dataKeys.map(function(_ref3){var key=_ref3.key,name=_ref3.name,color=_ref3.color;return/*#__PURE__*/_jsx(Line,{type:"monotone",dataKey:key,stroke:color!=null?color:"#4caf50",name:name},key)}),/*#__PURE__*/_jsx(Legend,{align:"left"})]});default:return/*#__PURE__*/_jsxs(PieChart,{children:[data.length>=20&&/*#__PURE__*/_jsx(ChartTooltip,{cursor:false,content:/*#__PURE__*/_jsx(ChartTooltipContent,{hideLabel:true})}),/*#__PURE__*/_jsx(Pie,{data:data,dataKey:config.dataKey,nameKey:config.nameKey,innerRadius:60,strokeWidth:10,label:data.length<20?function(_ref4){var name=_ref4.name,percent=_ref4.percent;return name+": "+(percent*100).toFixed(0)+"%"}:undefined,labelLine:false})]})}}export function renderChart(props){var _props$isEditable2=props.isEditable,isEditable=_props$isEditable2===void 0?false:_props$isEditable2,gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded3);var _useState5=useState(_extends({},props)),allData=_useState5[0],setAllData=_useState5[1];var _useState6=useState({interactionApiInProgress:false}),attributes=_useState6[0],setAttributes=_useState6[1];var containerRef=useRef(null);var _useState7=useState(0),containerWidth=_useState7[0],setContainerWidth=_useState7[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);useEffect(function(){var updateContainerWidth=function updateContainerWidth(){if(containerRef.current){setContainerWidth(containerRef.current.offsetWidth)}};updateContainerWidth();window.addEventListener("resize",updateContainerWidth);return function(){return window.removeEventListener("resize",updateContainerWidth)}},[]);var _allData$config=allData.config,config=_allData$config===void 0?{}:_allData$config,_allData$chartType=allData.chartType,chartType=_allData$chartType===void 0?"pie":_allData$chartType,_allData$chartData=allData.chartData,chartData=_allData$chartData===void 0?[]:_allData$chartData,className=allData.className,_allData$title=allData.title,title=_allData$title===void 0?"Title":_allData$title,_allData$subTitle=allData.subTitle,subTitle=_allData$subTitle===void 0?"Subtitle":_allData$subTitle;var defaultClasses="aspect-auto h-[250px] w-full";var mergedClasses=className?cn(defaultClasses,className):defaultClasses;if(chartType==="pie"){var colors=getNColors(chartData.length);for(var i=0;i<chartData.length;i++){var data=chartData[i];if(!data.fill){data.fill=colors[i]}}}else if(!config.color){config.color=baseColors[Math.floor(Math.random()*baseColors.length)]}var width=undefined;var totalDataPoints=0;// Helper function to get responsive config
3
7
  var getResponsiveConfig=function getResponsiveConfig(){if(chartType==="bar"&&totalDataPoints>15&&containerWidth>0&&width&&width<=containerWidth){// If chart fits in container, use responsive behavior
4
8
  return _extends({},config,{chartUi:{}})}return config};if(chartType==="bar"){totalDataPoints=chartData.length*config.dataKeys.length;if(totalDataPoints>15){width=totalDataPoints*20+config.dataKeys.length*8*chartData.length+chartData.length*15;config.chartUi={barCategoryGap:"10%",width:width}}else{config.chartUi={}}}var chartUi=attributes.interactionApiInProgress?/*#__PURE__*/_jsx(ChartLoader,{}):/*#__PURE__*/_jsx(React.Fragment,{children:chartType==="bar"&&totalDataPoints>15&&config.chartUi&&width&&(containerWidth===0||width>containerWidth)?/*#__PURE__*/_jsx("div",{className:"w-full",children:/*#__PURE__*/_jsxs(ScrollArea,{className:"w-full",children:[/*#__PURE__*/_jsx("div",{style:{minWidth:width+"px",width:"max-content"},children:/*#__PURE__*/_jsx(ResponsiveContainer,{width:width,height:250,children:/*#__PURE__*/_jsx(ChartContainer,_extends({},rest,{config:config,className:mergedClasses,children:renderChartComponent(chartType,chartData,config)}))})}),/*#__PURE__*/_jsx(ScrollBar,{orientation:"horizontal"})]})}):/*#__PURE__*/_jsx(ResponsiveContainer,{width:"100%",height:250,children:/*#__PURE__*/_jsx(ChartContainer,_extends({},rest,{config:getResponsiveConfig(),className:mergedClasses,children:renderChartComponent(chartType,chartData,getResponsiveConfig())}))})});return/*#__PURE__*/_jsxs(Card,{className:"shadow border mt-2 mb-2",children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"title",contentEditable:isEditable,className:"text-2xl",children:title}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"subTitle",contentEditable:isEditable,className:"text-sm",children:subTitle})]}),/*#__PURE__*/_jsx(CardContent,{ref:containerRef,"data-slot":"bodyContent",contentEditable:false,className:"px-6",children:chartUi})]})}// Creating this separate component to manage loading state easily!
5
- function TableButton(props){var _useState8=useState(false),loading=_useState8[0],setLoading=_useState8[1];function onClick(){return _onClick.apply(this,arguments)}function _onClick(){_onClick=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:setLoading(true);_context.next=3;return props.onClick();case 3:setLoading(false);case 4:case"end":return _context.stop()}},_callee)}));return _onClick.apply(this,arguments)}var defaultClasses="mr-2";var mergedClasses=props.className?cn(defaultClasses,props.className):defaultClasses;return/*#__PURE__*/_jsx(TooltipButton,{className:mergedClasses,isEditable:false,interact:onClick,attributes:{interactionApiInProgress:loading,isDisabled:props.isDisabled},variant:props.variant,size:"sm",text:props.text,tooltipContent:props.tooltipContent})}export function renderTable(props){var _pagination$values$pa,_pagination$values,_pagination$values$pa2,_pagination$values2;var gjsModel=props.gjsModel,_props$performInterac=props.performInteraction,performInteraction=_props$performInterac===void 0?function(){}:_props$performInterac,rest=_objectWithoutPropertiesLoose(props,_excluded4);var _useState9=useState(_extends({},props)),allData=_useState9[0],setAllData=_useState9[1];var _allData$data=allData.data,data=_allData$data===void 0?[]:_allData$data,_allData$headerMapper=allData.headerMapper,headerMapper=_allData$headerMapper===void 0?{}:_allData$headerMapper,className=allData.className,_allData$isEditable=allData.isEditable,isEditable=_allData$isEditable===void 0?false:_allData$isEditable,_allData$title2=allData.title,title=_allData$title2===void 0?"Title":_allData$title2,_allData$subTitle2=allData.subTitle,subTitle=_allData$subTitle2===void 0?"Subtitle":_allData$subTitle2,_allData$actions=allData.actions,actions=_allData$actions===void 0?[]:_allData$actions,_allData$sortConfig=allData.sortConfig,sortConfig=_allData$sortConfig===void 0?{}:_allData$sortConfig,pagination=allData.pagination;var _useState10=useState({interactionApiInProgress:false}),attributes=_useState10[0],setAttributes=_useState10[1];var _useState11=useState(null),activeSortColumn=_useState11[0],setActiveSortColumn=_useState11[1];var _useState12=useState({}),sortDirections=_useState12[0],setSortDirections=_useState12[1];var _useState13=useState(Number((_pagination$values$pa=pagination==null||(_pagination$values=pagination.values)==null?void 0:_pagination$values.pageNumber)!=null?_pagination$values$pa:pagination==null?void 0:pagination.initialPage)),pageNumber=_useState13[0],setPageNumber=_useState13[1];var _useState14=useState(Number((_pagination$values$pa2=pagination==null||(_pagination$values2=pagination.values)==null?void 0:_pagination$values2.pageSize)!=null?_pagination$values$pa2:pagination==null?void 0:pagination.initialPageSize)),pageSize=_useState14[0],setPageSize=_useState14[1];var totalCount=pagination==null?void 0:pagination.totalCount;var _useState15=useState(Math.ceil(totalCount/pageSize)||1),totalPages=_useState15[0],setTotalPages=_useState15[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);useEffect(function(){var componentData=gjsModel.get("componentProps");var sortColumn=componentData==null?void 0:componentData.sortColumn;var sortDirection=componentData==null?void 0:componentData.sortDirection;if(sortColumn&&sortDirection){setActiveSortColumn(sortColumn);setSortDirections(function(prev){var _extends2;return _extends({},prev,(_extends2={},_extends2[sortColumn]=sortDirection,_extends2))})}else{setActiveSortColumn(null);setSortDirections({})}},[allData]);useEffect(function(){if(sortConfig&&Object.keys(sortConfig).length>0){setSortDirections(sortConfig);var firstSortedColumn=Object.keys(sortConfig)[0];if(firstSortedColumn){setActiveSortColumn(firstSortedColumn)}}},[sortConfig]);var parsedData=data.map(function(datum){var newData=_extends({},datum);delete newData.id;return newData});var handleSort=/*#__PURE__*/function(){var _ref5=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(column,direction){var _currentProps,_id,currentProps,id;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(!(direction===null)){_context2.next=9;break}setActiveSortColumn(null);setSortDirections(function(prev){var _extends3;return _extends({},prev,(_extends3={},_extends3[column]=null,_extends3))});_currentProps=gjsModel.get("componentProps");gjsModel.set("componentProps",_extends({},_currentProps,{sortColumn:null,sortDirection:null}));_id=gjsModel.get("id");_context2.next=8;return performInteraction({id:_id,interactionType:"tableSort",payload:{sortColumn:null,sortDirection:null,tableId:_id},affectedComponents:getAffectedComponentsWithLoader([_id],true)});case 8:return _context2.abrupt("return");case 9:setActiveSortColumn(column);setSortDirections(function(prev){var _extends4;return _extends({},prev,(_extends4={},_extends4[column]=direction,_extends4))});currentProps=gjsModel.get("componentProps");gjsModel.set("componentProps",_extends({},currentProps,{sortColumn:column,sortDirection:direction}));id=gjsModel.get("id");_context2.next=16;return performInteraction({id:id,interactionType:"tableSort",payload:{sortColumn:column,sortDirection:direction,tableId:id},affectedComponents:getAffectedComponentsWithLoader([id],true)});case 16:case"end":return _context2.stop()}},_callee2)}));return function handleSort(_x,_x2){return _ref5.apply(this,arguments)}}();function takeRowAction(_x3,_x4){return _takeRowAction.apply(this,arguments)}function _takeRowAction(){_takeRowAction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(rowIndex,actionId){var id;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:id=gjsModel.get("id");_context3.next=3;return performInteraction({id:actionId,interactionType:"tableButton",payload:{row:data[rowIndex],tableId:id},affectedComponents:[]});case 3:case"end":return _context3.stop()}},_callee3)}));return _takeRowAction.apply(this,arguments)}var originalKeys=Object.keys(parsedData[0]||{}).filter(function(key){return key in headerMapper});var headers=originalKeys.map(function(key){return headerMapper[key]});if(actions.length>0){headers.push("");originalKeys.push("")}var rows=parsedData.map(function(datum){return originalKeys.map(function(key){return datum[key]})});var defaultClasses="aspect-auto h-[250px] w-full";var mergedClasses=className?cn(defaultClasses,className):defaultClasses;function renderActions(rowIndex,rowActions){if(!actions.length){return null}return/*#__PURE__*/_jsx(TableCell,{className:"sticky right-0 bg-white",children:rowActions.map(function(action){return/*#__PURE__*/_jsx(TableButton,{className:action.className,isEditable:isEditable,onClick:function onClick(){return takeRowAction(rowIndex,action.id)},variant:action.variant,text:action.text,tooltipContent:action.tooltipContent},action.id)})})}// eslint-disable-next-line no-nested-ternary
6
- var renderTableComponent=attributes.interactionApiInProgress?/*#__PURE__*/_jsx(TableLoader,{}):data.length===0?renderNoDataFallback():/*#__PURE__*/_jsxs(Table,_extends({},rest,{className:"caption-bottom text-sm relative "+mergedClasses,"data-slot":"table",children:[/*#__PURE__*/_jsx(TableHeader,{"data-slot":"table-header",className:"sticky top-0 z-2",children:/*#__PURE__*/_jsx(TableRow,{children:headers.map(function(head,idx){var isActionColumn=actions.length>0&&idx===headers.length-1;var originalKey=originalKeys[idx];if(isActionColumn){return/*#__PURE__*/_jsx(TableHead,{"data-slot":"table-header-"+idx,contentEditable:isEditable,className:"sticky right-0 bg-slate-100",children:head},idx)}return/*#__PURE__*/_jsx(TableHeadSortable,{"data-slot":"table-header-"+idx,sortDirection:sortDirections[originalKey]||"asc",isActive:activeSortColumn===originalKey,onSort:function onSort(direction){return handleSort(originalKey,direction)},sortable:true,isEditable:isEditable,children:head},idx)})})}),/*#__PURE__*/_jsx(TableBody,{"data-slot":"table-body",children:rows.map(function(row,rIdx){return/*#__PURE__*/_jsxs(TableRow,{"data-slot":"row-"+rIdx,className:"hover:bg-muted/50 border-b transition-colors",children:[row.map(function(cell,cIdx){return/*#__PURE__*/_jsx(TableCell,{"data-slot":"cell-"+rIdx+"-"+cIdx,className:"p-2 align-middle whitespace-nowrap",contentEditable:false,children:cell},cIdx)}),renderActions(rIdx,actions)]},rIdx)})})]}));useEffect(function(){var _pagination$values$pa3,_pagination$values3,_pagination$values$pa4,_pagination$values4;setPageNumber(Number((_pagination$values$pa3=pagination==null||(_pagination$values3=pagination.values)==null?void 0:_pagination$values3.pageNumber)!=null?_pagination$values$pa3:pagination==null?void 0:pagination.initialPage));setPageSize(Number((_pagination$values$pa4=pagination==null||(_pagination$values4=pagination.values)==null?void 0:_pagination$values4.pageSize)!=null?_pagination$values$pa4:pagination==null?void 0:pagination.initialPageSize))},[pagination]);useEffect(function(){setTotalPages(Math.ceil(totalCount/pageSize)||1)},[totalCount,pageSize]);var pageSizeOptions=pagination==null?void 0:pagination.pageSizeOptions;function handlePageChange(_x5,_x6){return _handlePageChange.apply(this,arguments)}function _handlePageChange(){_handlePageChange=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(newPage,newSize){var id,prevPage,prevSize,componentData,currentSortColumn,currentSortDirection;return _regeneratorRuntime.wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:if(newPage===void 0){newPage=pageNumber}if(newSize===void 0){newSize=pageSize}id=gjsModel.get("id");prevPage=pageNumber;prevSize=pageSize;setPageNumber(newPage);setPageSize(newSize);componentData=gjsModel.get("componentProps");currentSortColumn=componentData==null?void 0:componentData.sortColumn;currentSortDirection=componentData==null?void 0:componentData.sortDirection;_context4.prev=10;_context4.next=13;return performInteraction({id:id,interactionType:"pagination",payload:_extends({pageNumber:newPage,pageSize:newSize},currentSortColumn&&currentSortDirection&&{sortColumn:currentSortColumn,sortDirection:currentSortDirection}),affectedComponents:getAffectedComponentsWithLoader([id],true)});case 13:_context4.next=19;break;case 15:_context4.prev=15;_context4.t0=_context4["catch"](10);setPageNumber(prevPage);setPageSize(prevSize);case 19:case"end":return _context4.stop()}},_callee4,null,[[10,15]])}));return _handlePageChange.apply(this,arguments)}var tableData=/*#__PURE__*/_jsxs(Fragment,{children:[/*#__PURE__*/_jsxs(ScrollArea,{"data-slot":"table-container",className:mergedClasses,children:[renderTableComponent,/*#__PURE__*/_jsx(ScrollBar,{orientation:"horizontal"})]}),totalCount>=0&&data.length>0&&/*#__PURE__*/_jsxs("div",{className:"flex items-center justify-between mt-4 w-full",children:[/*#__PURE__*/_jsxs("div",{className:"flex items-center gap-2",children:[/*#__PURE__*/_jsx("label",{htmlFor:"page-size-select",className:"text-sm",children:"Rows per page:"}),/*#__PURE__*/_jsx("select",{id:"page-size-select",value:pageSize,onChange:function onChange(e){return handlePageChange(1,Number(e.target.value))},className:"border rounded px-2 py-1 text-sm cursor-pointer",disabled:attributes.interactionApiInProgress,children:pageSizeOptions.map(function(size){return/*#__PURE__*/_jsx("option",{value:size,children:size},size)})})]}),/*#__PURE__*/_jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[/*#__PURE__*/_jsxs("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:[(pageNumber-1)*pageSize+1,"\u2013",Math.min(pageNumber*pageSize,totalCount)," of"," ",totalCount]}),/*#__PURE__*/_jsx(Pagination,{children:/*#__PURE__*/_jsx(PaginationContent,{className:"gap-0.2",children:renderPaginationArrows(pageNumber,totalPages,attributes.interactionApiInProgress,handlePageChange)})})]})]})]});return/*#__PURE__*/_jsxs(Card,{className:"shadow border",children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"title",contentEditable:isEditable,className:"text-2xl",children:title}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"subTitle",contentEditable:isEditable,className:"text-sm",children:subTitle})]}),/*#__PURE__*/_jsx(CardContent,{"data-slot":"bodyContent",contentEditable:false,children:tableData})]})}export function renderTab(props){var tabsWidth=200;if(props.tabs.length>4){tabsWidth=150}return/*#__PURE__*/_jsxs(Tabs,{defaultValue:props.defaultValue,children:[/*#__PURE__*/_jsx("div",{className:"text-center mb-4",children:/*#__PURE__*/_jsx(TabsList,{className:"bg-gray-300",children:props.tabs.map(function(tab){return/*#__PURE__*/_jsx(TabsTrigger,{value:tab,className:"text-md w-["+tabsWidth+"px]",children:tab},tab)})})}),props.tabs.map(function(tab){return/*#__PURE__*/_jsx(TabsContent,{value:tab,className:"tabs-content"},tab)})]})}export function renderMarkdown(props){var gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded5);var _useState16=useState(_extends({},props)),allData=_useState16[0],setAllData=_useState16[1];var _useState17=useState({interactionApiInProgress:false}),setAttributes=_useState17[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var _useState18=useState(false),isEditing=_useState18[0],setIsEditing=_useState18[1];var editRef=useRef(null);var startEditing=function startEditing(){setIsEditing(true);setTimeout(function(){setupEditor()},0)};var setupEditor=function setupEditor(){if(!editRef.current){return}var editor=editRef.current;editor.innerHTML="";editor.textContent=allData.summaryText;editor.focus()};var saveChanges=function saveChanges(){if(!editRef.current){return}var content=editRef.current.innerText||"";setAllData(function(prev){return _extends({},prev,{summaryText:content})});setIsEditing(false);editRef.current.innerHTML=""};var markdownStyles={ul:{props:{className:"list-disc"}},h1:{props:{className:"text-4xl font-bold leading-[4rem]"}},h2:{props:{className:"text-3xl font-bold leading-[3rem]"}},h3:{props:{className:"text-2xl font-bold leading-[2rem]"}},h4:{props:{className:"text-xl font-bold leading-[2.5rem]"}},h5:{props:{className:"text-lg font-bold leading-[2.5rem]"}},h6:{props:{className:"text-base font-bold leading-[2rem]"}}};if(!allData.isEditable){return/*#__PURE__*/_jsx("div",_extends({className:"px-[1em]"},rest,{children:/*#__PURE__*/_jsx("div",{"data-slot":"summaryText",children:/*#__PURE__*/_jsx(Markdown,{options:{overrides:markdownStyles},children:allData.summaryText})})}))}return/*#__PURE__*/_jsx("div",_extends({className:"p-[1em]"},rest,{children:isEditing?/*#__PURE__*/_jsx("div",{ref:editRef,contentEditable:true,onBlur:saveChanges,"data-slot":"summaryText",className:"p-2 min-h-[100px] whitespace-pre-wrap",suppressContentEditableWarning:true,style:{whiteSpace:"pre-wrap",wordWrap:"break-word"}}):/*#__PURE__*/_jsx("div",{onClick:startEditing,"data-slot":"summaryText",style:{whiteSpace:"pre-wrap",wordWrap:"break-word"},children:/*#__PURE__*/_jsx(Markdown,{options:{overrides:markdownStyles},children:allData.summaryText})})}))}export function renderButton(props){var _props$isEditable3=props.isEditable,isEditable=_props$isEditable3===void 0?false:_props$isEditable3,gjsModel=props.gjsModel,_props$performInterac2=props.performInteraction,performInteraction=_props$performInterac2===void 0?function(){}:_props$performInterac2;var _useState19=useState(_extends({},props)),allData=_useState19[0],setAllData=_useState19[1];var _useState20=useState({interactionApiInProgress:false}),attributes=_useState20[0],setAttributes=_useState20[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var text=allData.text,className=allData.className,payload=allData.payload,_allData$variant=allData.variant,variant=_allData$variant===void 0?"default":_allData$variant,_allData$size=allData.size,size=_allData$size===void 0?"sm":_allData$size,affectedComponents=allData.affectedComponents,tooltipContent=allData.tooltipContent;function interact(){var id=gjsModel.get("id");performInteraction({id:id,interactionType:"button",affectedComponents:getAffectedComponentsWithLoader([id].concat(affectedComponents),true),payload:payload})}return/*#__PURE__*/_jsx(TooltipButton,{className:className,isEditable:isEditable,interact:interact,attributes:attributes,variant:variant,size:size,text:text,tooltipContent:tooltipContent})}export function getRenderers(){return{ActionCard:renderActionCard,Button:renderButton,Card:renderCard,Chart:renderChart,Filter:renderFilter,Markdown:renderMarkdown,Search:renderSearch,Table:renderTable,Tabs:renderTab}}
9
+ function TableButton(props){var _useState8=useState(false),loading=_useState8[0],setLoading=_useState8[1];function onClick(){return _onClick.apply(this,arguments)}function _onClick(){_onClick=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:setLoading(true);_context.next=3;return props.onClick();case 3:setLoading(false);case 4:case"end":return _context.stop()}},_callee)}));return _onClick.apply(this,arguments)}var defaultClasses="mr-2";var mergedClasses=props.className?cn(defaultClasses,props.className):defaultClasses;return/*#__PURE__*/_jsx(TooltipButton,{className:mergedClasses,isEditable:false,interact:onClick,attributes:{interactionApiInProgress:loading,isDisabled:props.isDisabled},variant:props.variant,size:"sm",text:props.text,tooltipContent:props.tooltipContent})}export function renderTable(props){var _pagination$values$pa,_pagination$values,_pagination$values$pa2,_pagination$values2;var gjsModel=props.gjsModel,_props$performInterac=props.performInteraction,performInteraction=_props$performInterac===void 0?function(){}:_props$performInterac,rest=_objectWithoutPropertiesLoose(props,_excluded4);var _useState9=useState(_extends({},props)),allData=_useState9[0],setAllData=_useState9[1];var _allData$data=allData.data,data=_allData$data===void 0?[]:_allData$data,_allData$headerMapper=allData.headerMapper,headerMapper=_allData$headerMapper===void 0?{}:_allData$headerMapper,className=allData.className,_allData$isEditable=allData.isEditable,isEditable=_allData$isEditable===void 0?false:_allData$isEditable,_allData$title2=allData.title,title=_allData$title2===void 0?"Title":_allData$title2,_allData$subTitle2=allData.subTitle,subTitle=_allData$subTitle2===void 0?"Subtitle":_allData$subTitle2,_allData$actions=allData.actions,actions=_allData$actions===void 0?[]:_allData$actions,_allData$sortConfig=allData.sortConfig,sortConfig=_allData$sortConfig===void 0?{}:_allData$sortConfig,pagination=allData.pagination;var _useState10=useState({interactionApiInProgress:false}),attributes=_useState10[0],setAttributes=_useState10[1];var _useState11=useState(null),activeSortColumn=_useState11[0],setActiveSortColumn=_useState11[1];var _useState12=useState({}),sortDirections=_useState12[0],setSortDirections=_useState12[1];var _useState13=useState(Number((_pagination$values$pa=pagination==null||(_pagination$values=pagination.values)==null?void 0:_pagination$values.pageNumber)!=null?_pagination$values$pa:pagination==null?void 0:pagination.initialPage)),pageNumber=_useState13[0],setPageNumber=_useState13[1];var _useState14=useState(Number((_pagination$values$pa2=pagination==null||(_pagination$values2=pagination.values)==null?void 0:_pagination$values2.pageSize)!=null?_pagination$values$pa2:pagination==null?void 0:pagination.initialPageSize)),pageSize=_useState14[0],setPageSize=_useState14[1];var totalCount=pagination==null?void 0:pagination.totalCount;var _useState15=useState(Math.ceil(totalCount/pageSize)||1),totalPages=_useState15[0],setTotalPages=_useState15[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);useEffect(function(){var componentData=gjsModel.get("componentProps");var sortColumn=componentData==null?void 0:componentData.sortColumn;var sortDirection=componentData==null?void 0:componentData.sortDirection;if(sortColumn&&sortDirection){setActiveSortColumn(sortColumn);setSortDirections(function(prev){var _extends2;return _extends({},prev,(_extends2={},_extends2[sortColumn]=sortDirection,_extends2))})}else{setActiveSortColumn(null);setSortDirections({})}},[allData]);useEffect(function(){if(sortConfig&&Object.keys(sortConfig).length>0){setSortDirections(sortConfig);var firstSortedColumn=Object.keys(sortConfig)[0];if(firstSortedColumn){setActiveSortColumn(firstSortedColumn)}}},[sortConfig]);var parsedData=data.map(function(datum){var newData=_extends({},datum);delete newData.id;return newData});var handleSort=/*#__PURE__*/function(){var _ref5=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(column,direction){var _currentProps,_id,currentProps,id;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(!(direction===null)){_context2.next=9;break}setActiveSortColumn(null);setSortDirections(function(prev){var _extends3;return _extends({},prev,(_extends3={},_extends3[column]=null,_extends3))});_currentProps=gjsModel.get("componentProps");gjsModel.set("componentProps",_extends({},_currentProps,{sortColumn:null,sortDirection:null}));_id=gjsModel.get("id");_context2.next=8;return performInteraction({id:_id,interactionType:"tableSort",payload:{sortColumn:null,sortDirection:null,tableId:_id},affectedComponents:getAffectedComponentsWithLoader([_id],true)});case 8:return _context2.abrupt("return");case 9:setActiveSortColumn(column);setSortDirections(function(prev){var _extends4;return _extends({},prev,(_extends4={},_extends4[column]=direction,_extends4))});currentProps=gjsModel.get("componentProps");gjsModel.set("componentProps",_extends({},currentProps,{sortColumn:column,sortDirection:direction}));id=gjsModel.get("id");_context2.next=16;return performInteraction({id:id,interactionType:"tableSort",payload:{sortColumn:column,sortDirection:direction,tableId:id},affectedComponents:getAffectedComponentsWithLoader([id],true)});case 16:case"end":return _context2.stop()}},_callee2)}));return function handleSort(_x,_x2){return _ref5.apply(this,arguments)}}();function takeRowAction(_x3,_x4){return _takeRowAction.apply(this,arguments)}function _takeRowAction(){_takeRowAction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(rowIndex,actionId){var id;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:id=gjsModel.get("id");_context3.next=3;return performInteraction({id:actionId,interactionType:"tableButton",payload:{row:data[rowIndex],tableId:id},affectedComponents:[]});case 3:case"end":return _context3.stop()}},_callee3)}));return _takeRowAction.apply(this,arguments)}var originalKeys=Object.keys(parsedData[0]||{}).filter(function(key){return key in headerMapper});var headers=originalKeys.map(function(key){return headerMapper[key]});if(actions.length>0){headers.push("");originalKeys.push("")}var rows=parsedData.map(function(datum){return originalKeys.map(function(key){return datum[key]})});var defaultClasses="aspect-auto h-[250px] w-full";var mergedClasses=className?cn(defaultClasses,className):defaultClasses;function renderActions(rowIndex,rowActions){if(!actions.length){return null}return/*#__PURE__*/_jsx(TableCell,{className:"sticky right-0 bg-white",children:rowActions.map(function(action){return/*#__PURE__*/_jsx(TableButton,{className:action.className,isEditable:isEditable,onClick:function onClick(){return takeRowAction(rowIndex,action.id)},variant:action.variant,text:action.text,tooltipContent:action.tooltipContent},action.id)})})}var renderTableComponent=attributes.interactionApiInProgress?/*#__PURE__*/_jsx(TableLoader,{}):/*#__PURE__*/_jsxs(Table,_extends({},rest,{className:"caption-bottom text-sm relative "+mergedClasses,"data-slot":"table",children:[/*#__PURE__*/_jsx(TableHeader,{"data-slot":"table-header",className:"sticky top-0 z-2",children:/*#__PURE__*/_jsx(TableRow,{children:headers.map(function(head,idx){var isActionColumn=actions.length>0&&idx===headers.length-1;var originalKey=originalKeys[idx];if(isActionColumn){return/*#__PURE__*/_jsx(TableHead,{"data-slot":"table-header-"+idx,contentEditable:isEditable,className:"sticky right-0 bg-slate-100",children:head},idx)}return/*#__PURE__*/_jsx(TableHeadSortable,{"data-slot":"table-header-"+idx,sortDirection:sortDirections[originalKey]||"asc",isActive:activeSortColumn===originalKey,onSort:function onSort(direction){return handleSort(originalKey,direction)},sortable:true,isEditable:isEditable,children:head},idx)})})}),/*#__PURE__*/_jsx(TableBody,{"data-slot":"table-body",children:rows.map(function(row,rIdx){return/*#__PURE__*/_jsxs(TableRow,{"data-slot":"row-"+rIdx,className:"hover:bg-muted/50 border-b transition-colors",children:[row.map(function(cell,cIdx){return/*#__PURE__*/_jsx(TableCell,{"data-slot":"cell-"+rIdx+"-"+cIdx,className:"p-2 align-middle whitespace-nowrap",contentEditable:false,children:cell},cIdx)}),renderActions(rIdx,actions)]},rIdx)})})]}));useEffect(function(){var _pagination$values$pa3,_pagination$values3,_pagination$values$pa4,_pagination$values4;setPageNumber(Number((_pagination$values$pa3=pagination==null||(_pagination$values3=pagination.values)==null?void 0:_pagination$values3.pageNumber)!=null?_pagination$values$pa3:pagination==null?void 0:pagination.initialPage));setPageSize(Number((_pagination$values$pa4=pagination==null||(_pagination$values4=pagination.values)==null?void 0:_pagination$values4.pageSize)!=null?_pagination$values$pa4:pagination==null?void 0:pagination.initialPageSize))},[pagination]);useEffect(function(){setTotalPages(Math.ceil(totalCount/pageSize)||1)},[totalCount,pageSize]);var pageSizeOptions=pagination==null?void 0:pagination.pageSizeOptions;function handlePageChange(_x5,_x6){return _handlePageChange.apply(this,arguments)}function _handlePageChange(){_handlePageChange=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(newPage,newSize){var id,prevPage,prevSize,componentData,currentSortColumn,currentSortDirection;return _regeneratorRuntime.wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:if(newPage===void 0){newPage=pageNumber}if(newSize===void 0){newSize=pageSize}id=gjsModel.get("id");prevPage=pageNumber;prevSize=pageSize;setPageNumber(newPage);setPageSize(newSize);componentData=gjsModel.get("componentProps");currentSortColumn=componentData==null?void 0:componentData.sortColumn;currentSortDirection=componentData==null?void 0:componentData.sortDirection;_context4.prev=10;_context4.next=13;return performInteraction({id:id,interactionType:"pagination",payload:_extends({pageNumber:newPage,pageSize:newSize},currentSortColumn&&currentSortDirection&&{sortColumn:currentSortColumn,sortDirection:currentSortDirection}),affectedComponents:getAffectedComponentsWithLoader([id],true)});case 13:_context4.next=19;break;case 15:_context4.prev=15;_context4.t0=_context4["catch"](10);setPageNumber(prevPage);setPageSize(prevSize);case 19:case"end":return _context4.stop()}},_callee4,null,[[10,15]])}));return _handlePageChange.apply(this,arguments)}var tableData=/*#__PURE__*/_jsxs(Fragment,{children:[/*#__PURE__*/_jsxs(ScrollArea,{"data-slot":"table-container",className:mergedClasses,children:[renderTableComponent,/*#__PURE__*/_jsx(ScrollBar,{orientation:"horizontal"})]}),totalCount>=0&&/*#__PURE__*/_jsxs("div",{className:"flex items-center justify-between mt-4 w-full",children:[/*#__PURE__*/_jsxs("div",{className:"flex items-center gap-2",children:[/*#__PURE__*/_jsx("label",{htmlFor:"page-size-select",className:"text-sm",children:"Rows per page:"}),/*#__PURE__*/_jsx("select",{id:"page-size-select",value:pageSize,onChange:function onChange(e){return handlePageChange(1,Number(e.target.value))},className:"border rounded px-2 py-1 text-sm cursor-pointer",disabled:attributes.interactionApiInProgress,children:pageSizeOptions.map(function(size){return/*#__PURE__*/_jsx("option",{value:size,children:size},size)})})]}),/*#__PURE__*/_jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[/*#__PURE__*/_jsxs("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:[(pageNumber-1)*pageSize+1,"\u2013",Math.min(pageNumber*pageSize,totalCount)," of"," ",totalCount]}),/*#__PURE__*/_jsx(Pagination,{children:/*#__PURE__*/_jsx(PaginationContent,{className:"gap-0.2",children:renderPaginationArrows(pageNumber,totalPages,attributes.interactionApiInProgress,handlePageChange)})})]})]})]});return/*#__PURE__*/_jsxs(Card,{className:"shadow border",children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"title",contentEditable:isEditable,className:"text-2xl",children:title}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"subTitle",contentEditable:isEditable,className:"text-sm",children:subTitle})]}),/*#__PURE__*/_jsx(CardContent,{"data-slot":"bodyContent",contentEditable:false,children:tableData})]})}export function renderTab(props){var tabsWidth=200;if(props.tabs.length>4){tabsWidth=150}return/*#__PURE__*/_jsxs(Tabs,{defaultValue:props.defaultValue,children:[/*#__PURE__*/_jsx("div",{className:"text-center mb-4",children:/*#__PURE__*/_jsx(TabsList,{className:"bg-gray-300",children:props.tabs.map(function(tab){return/*#__PURE__*/_jsx(TabsTrigger,{value:tab,className:"text-md w-["+tabsWidth+"px]",children:tab},tab)})})}),props.tabs.map(function(tab){return/*#__PURE__*/_jsx(TabsContent,{value:tab,className:"tabs-content"},tab)})]})}export function renderMarkdown(props){var gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded5);var _useState16=useState(_extends({},props)),allData=_useState16[0],setAllData=_useState16[1];var _useState17=useState({interactionApiInProgress:false}),setAttributes=_useState17[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var _useState18=useState(false),isEditing=_useState18[0],setIsEditing=_useState18[1];var editRef=useRef(null);var startEditing=function startEditing(){setIsEditing(true);setTimeout(function(){setupEditor()},0)};var setupEditor=function setupEditor(){if(!editRef.current){return}var editor=editRef.current;editor.innerHTML="";editor.textContent=allData.summaryText;editor.focus()};var saveChanges=function saveChanges(){if(!editRef.current){return}var content=editRef.current.innerText||"";setAllData(function(prev){return _extends({},prev,{summaryText:content})});setIsEditing(false);editRef.current.innerHTML=""};var markdownStyles={ul:{props:{className:"list-disc"}},h1:{props:{className:"text-4xl font-bold leading-[4rem]"}},h2:{props:{className:"text-3xl font-bold leading-[3rem]"}},h3:{props:{className:"text-2xl font-bold leading-[2rem]"}},h4:{props:{className:"text-xl font-bold leading-[2.5rem]"}},h5:{props:{className:"text-lg font-bold leading-[2.5rem]"}},h6:{props:{className:"text-base font-bold leading-[2rem]"}}};if(!allData.isEditable){return/*#__PURE__*/_jsx("div",_extends({className:"px-[1em]"},rest,{children:/*#__PURE__*/_jsx("div",{"data-slot":"summaryText",children:/*#__PURE__*/_jsx(Markdown,{options:{overrides:markdownStyles},children:allData.summaryText})})}))}return/*#__PURE__*/_jsx("div",_extends({className:"p-[1em]"},rest,{children:isEditing?/*#__PURE__*/_jsx("div",{ref:editRef,contentEditable:true,onBlur:saveChanges,"data-slot":"summaryText",className:"p-2 min-h-[100px] whitespace-pre-wrap",suppressContentEditableWarning:true,style:{whiteSpace:"pre-wrap",wordWrap:"break-word"}}):/*#__PURE__*/_jsx("div",{onClick:startEditing,"data-slot":"summaryText",style:{whiteSpace:"pre-wrap",wordWrap:"break-word"},children:/*#__PURE__*/_jsx(Markdown,{options:{overrides:markdownStyles},children:allData.summaryText})})}))}export function renderButton(props){var _props$isEditable3=props.isEditable,isEditable=_props$isEditable3===void 0?false:_props$isEditable3,gjsModel=props.gjsModel,_props$performInterac2=props.performInteraction,performInteraction=_props$performInterac2===void 0?function(){}:_props$performInterac2;var _useState19=useState(_extends({},props)),allData=_useState19[0],setAllData=_useState19[1];var _useState20=useState({interactionApiInProgress:false}),attributes=_useState20[0],setAttributes=_useState20[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var text=allData.text,className=allData.className,payload=allData.payload,_allData$variant=allData.variant,variant=_allData$variant===void 0?"default":_allData$variant,_allData$size=allData.size,size=_allData$size===void 0?"sm":_allData$size,affectedComponents=allData.affectedComponents,tooltipContent=allData.tooltipContent;function interact(){var id=gjsModel.get("id");performInteraction({id:id,interactionType:"button",affectedComponents:getAffectedComponentsWithLoader([id].concat(affectedComponents),true),payload:payload})}return/*#__PURE__*/_jsx(TooltipButton,{className:className,isEditable:isEditable,interact:interact,attributes:attributes,variant:variant,size:size,text:text,tooltipContent:tooltipContent})}export function getRenderers(){return{ActionCard:renderActionCard,Button:renderButton,Card:renderCard,Chart:renderChart,Filter:renderFilter,Markdown:renderMarkdown,Search:renderSearch,Table:renderTable,Tabs:renderTab}}
7
10
  //# sourceMappingURL=render-components.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-components.js","names":["chroma","React","useEffect","useState","useRef","Fragment","theme","Markdown","PieChart","Pie","BarChart","Bar","LineChart","Line","XAxis","YAxis","ResponsiveContainer","CartesianGrid","Legend","TooltipButton","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","ChartContainer","ChartTooltip","ChartTooltipContent","renderFilter","Pagination","PaginationContent","renderPaginationArrows","ScrollArea","ScrollBar","renderSearch","TableLoader","ChartLoader","CardLoader","Table","TableHeader","TableRow","TableHead","TableHeadSortable","TableBody","TableCell","Tabs","TabsList","TabsTrigger","TabsContent","cn","getAffectedComponentsWithLoader","jsx","_jsx","jsxs","_jsxs","baseColors","colors","Blue_100","Blue_30","Purpley_100","Purpley_30","Light_Bluish_Green","Wild_Strawberry","renderNoDataFallback","className","children","viewBox","fill","stroke","cx","cy","r","strokeWidth","x1","y1","x2","y2","strokeLinecap","getNColors","n","_iterator","_createForOfIteratorHelperLoose","_step","done","baseColor","value","push","scale","mode","getOneColor","existing","color","base","Math","floor","random","length","selectedColorIndex","includes","selectedColors","i","renderActionCard","props","gjsModel","rest","_objectWithoutPropertiesLoose","_excluded","_useState","_extends","allData","setAllData","_allData$headerConten","headerContent","icon","_allData$bodyContent","bodyContent","_useState2","interactionApiInProgress","setAttributes","on","get","defaultClasses","isEditable","contentEditable","renderCard","_props$isEditable","_excluded2","_useState3","headerDescription","footerContent","footerClass","footerIcon","contentMetadata","contentMetadataClass","_useState4","attributes","defaultFooterClasses","defaultContentMetadataClasses","mergedCardClassName","mergedFooterClassName","mergedContentMetadataClassName","getCardContent","style","renderChartComponent","chartType","data","config","cursor","content","hideLabel","dataKey","nameKey","innerRadius","label","_ref","name","percent","toFixed","undefined","labelLine","dataKeys","chartUi","vertical","xAxis","align","wrapperStyle","marginLeft","map","_ref2","key","radius","indicator","_ref3","type","_ref4","renderChart","_props$isEditable2","_excluded3","_useState5","_useState6","containerRef","_useState7","containerWidth","setContainerWidth","updateContainerWidth","current","offsetWidth","window","addEventListener","removeEventListener","_allData$config","_allData$chartType","_allData$chartData","chartData","_allData$title","title","_allData$subTitle","subTitle","mergedClasses","width","totalDataPoints","getResponsiveConfig","barCategoryGap","minWidth","height","orientation","ref","TableButton","_useState8","loading","setLoading","onClick","_onClick","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stop","interact","isDisabled","variant","size","text","tooltipContent","renderTable","_pagination$values$pa","_pagination$values","_pagination$values$pa2","_pagination$values2","_props$performInterac","performInteraction","_excluded4","_useState9","_allData$data","_allData$headerMapper","headerMapper","_allData$isEditable","_allData$title2","_allData$subTitle2","_allData$actions","actions","_allData$sortConfig","sortConfig","pagination","_useState10","_useState11","activeSortColumn","setActiveSortColumn","_useState12","sortDirections","setSortDirections","_useState13","Number","values","pageNumber","initialPage","setPageNumber","_useState14","pageSize","initialPageSize","setPageSize","totalCount","_useState15","ceil","totalPages","setTotalPages","componentData","sortColumn","sortDirection","_extends2","Object","keys","firstSortedColumn","parsedData","datum","newData","id","handleSort","_ref5","_callee2","column","direction","_currentProps","_id","currentProps","_callee2$","_context2","_extends3","set","interactionType","payload","tableId","affectedComponents","abrupt","_extends4","_x","_x2","takeRowAction","_x3","_x4","_takeRowAction","_callee3","rowIndex","actionId","_callee3$","_context3","row","originalKeys","filter","headers","rows","renderActions","rowActions","action","renderTableComponent","head","idx","isActionColumn","originalKey","isActive","onSort","sortable","rIdx","cell","cIdx","_pagination$values$pa3","_pagination$values3","_pagination$values$pa4","_pagination$values4","pageSizeOptions","handlePageChange","_x5","_x6","_handlePageChange","_callee4","newPage","newSize","prevPage","prevSize","currentSortColumn","currentSortDirection","_callee4$","_context4","t0","tableData","htmlFor","onChange","e","target","disabled","min","renderTab","tabsWidth","tabs","defaultValue","tab","renderMarkdown","_excluded5","_useState16","_useState17","_useState18","isEditing","setIsEditing","editRef","startEditing","setTimeout","setupEditor","editor","innerHTML","textContent","summaryText","focus","saveChanges","innerText","markdownStyles","ul","h1","h2","h3","h4","h5","h6","options","overrides","onBlur","suppressContentEditableWarning","whiteSpace","wordWrap","renderButton","_props$isEditable3","_props$performInterac2","_useState19","_useState20","_allData$variant","_allData$size","concat","getRenderers","ActionCard","Button","Chart","Filter","Search"],"sources":["../../../src/plugins/helpers/render-components.tsx"],"sourcesContent":["/* eslint-disable func-style */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable func-names */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport chroma from 'chroma-js';\nimport React, { useEffect, useState, JSX, useRef, Fragment } from 'react';\n\nimport { theme } from '@peak-ai/ais-components/theme';\n\nimport Markdown from 'markdown-to-jsx';\n\nimport {\n PieChart,\n Pie,\n BarChart,\n Bar,\n LineChart,\n Line,\n XAxis,\n YAxis,\n ResponsiveContainer,\n CartesianGrid,\n Legend,\n} from 'recharts';\n\nimport { TooltipButton } from '../../shadcn/components/ui/button';\nimport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\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 {\n Pagination,\n PaginationContent,\n renderPaginationArrows,\n} from '../../shadcn/components/ui/pagination';\nimport { ScrollArea, ScrollBar } from '../../shadcn/components/ui/scroll-area';\nimport { renderSearch } from '../../shadcn/components/ui/search';\nimport { TableLoader, ChartLoader, CardLoader } from '../../shadcn/components/ui/skeleton';\nimport {\n Table,\n TableHeader,\n TableRow,\n TableHead,\n TableHeadSortable,\n TableBody,\n TableCell,\n SortDirection,\n} from '../../shadcn/components/ui/table';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../../shadcn/components/ui/tabs';\n\nimport { cn } from '../../shadcn/utils';\nimport { getAffectedComponentsWithLoader } from '../../helpers';\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 renderNoDataFallback = () => (\n <div className=\"flex flex-col items-center justify-center py-16 px-6 text-center\">\n <div className=\"mb-4 rounded-full bg-gray-100 p-3\">\n <svg\n className=\"w-8 h-8 text-gray-400\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"7\" strokeWidth=\"2\"></circle>\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" strokeWidth=\"2\" strokeLinecap=\"round\"></line>\n </svg>\n </div>\n <h3 className=\"text-lg font-medium text-gray-900\">No Results</h3>\n <p className=\"mt-2 text-sm text-gray-500 max-w-md\">\n No results were returned for this query. If you expected results to be returned, ensure any filters are configured properly and the datasource contains data for the selected time range.\n </p>\n </div>\n);\n\nfunction getNColors(n: number) {\n const colors: Array<string[]> = [];\n\n for (const baseColor of baseColors) {\n // eslint-disable-next-line import/no-named-as-default-member\n colors.push(chroma.scale(baseColor).mode('lab').colors(n));\n }\n\n function getOneColor(existing: Array<string>) {\n let color: null | string = null;\n\n do {\n const base = colors[Math.floor(Math.random() * colors.length)];\n const selectedColorIndex = Math.floor(Math.random() * base.length);\n color = base[selectedColorIndex];\n } while (existing.includes(color));\n\n return color as string;\n }\n\n const selectedColors: Array<string> = [];\n\n for (let i = 0; i < n; i++) {\n selectedColors.push(getOneColor(selectedColors));\n }\n\n return selectedColors;\n}\n\n/* TODO: Loader remains */\nexport function renderActionCard(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n headerContent = 'Default Action Card Title',\n icon,\n bodyContent = 'Default body content. Click to edit.',\n } = allData;\n\n const [, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const defaultClasses = 'bg-white text-black p-4 rounded-lg shadow border flex flex-col h-full';\n\n return (\n <Card className={defaultClasses} isEditable={false} contentEditable={false} {...rest}>\n <CardContent className=\"p-0\" isEditable={false} contentEditable={false}>\n <div className=\"px-4 py-3\">\n <div className=\"flex items-start\">\n <span className=\"text-5xl mr-2\" aria-hidden=\"true\">\n {icon}\n </span>\n <div className=\"flex-1\">\n <div className=\"text-xl font-semibold\">{headerContent}</div>\n <div className=\"text-base leading-relaxed mt-1\">{bodyContent}</div>\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n );\n}\n\nexport function renderCard(props: any): JSX.Element {\n const { isEditable = false, gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n headerContent,\n headerDescription,\n bodyContent,\n footerContent,\n footerClass,\n footerIcon,\n contentMetadata,\n contentMetadataClass,\n className,\n } = allData;\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const defaultClasses = 'bg-white text-black p-4 rounded-lg shadow border flex flex-col h-full';\n const defaultFooterClasses = 'text-sm';\n const defaultContentMetadataClasses = 'text-xs';\n const mergedCardClassName = className ? cn(defaultClasses, className) : defaultClasses;\n const mergedFooterClassName = footerClass\n ? cn(defaultFooterClasses, footerClass)\n : defaultFooterClasses;\n const mergedContentMetadataClassName = contentMetadataClass\n ? cn(defaultContentMetadataClasses, contentMetadataClass)\n : defaultContentMetadataClasses;\n\n function getCardContent() {\n if (attributes.interactionApiInProgress) {\n return (\n <CardContent>\n <CardLoader />\n </CardContent>\n );\n }\n\n return (\n <React.Fragment>\n <CardHeader>\n <CardTitle data-slot=\"headerContent\" contentEditable={isEditable} className=\"text-lg\">\n {headerContent}\n </CardTitle>\n <CardDescription\n data-slot=\"headerDescription\"\n contentEditable={isEditable}\n className=\"text-sm\"\n >\n {headerDescription}\n </CardDescription>\n </CardHeader>\n\n <CardContent data-slot=\"bodyContent\" contentEditable={false} className=\"flex-grow\">\n <div className=\"text-3xl font-semibold truncate\">{bodyContent}</div>\n {contentMetadata && (\n <div className={mergedContentMetadataClassName} style={{ color: '#2A44D4' }}>\n {contentMetadata}\n </div>\n )}\n </CardContent>\n\n <CardFooter\n data-slot=\"footerContent\"\n contentEditable={isEditable}\n className={cn(mergedFooterClassName)}\n >\n {footerIcon && (\n <span className=\"mr-2\" aria-hidden=\"true\">\n {footerIcon}\n </span>\n )}\n {footerContent}\n </CardFooter>\n </React.Fragment>\n );\n }\n\n return (\n <Card {...rest} className={mergedCardClassName}>\n {getCardContent()}\n </Card>\n );\n}\n\nfunction renderChartComponent(chartType: string, data: any, config: any): JSX.Element {\n switch (chartType) {\n case 'pie':\n return (\n <PieChart>\n {data.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={data}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n data.length < 20\n ? ({ name, percent }) => `${name}: ${(percent * 100).toFixed(0)}%`\n : undefined\n }\n labelLine={false}\n />\n </PieChart>\n );\n case 'bar':\n config.dataKeys = config.dataKeys || [];\n\n return (\n <BarChart data={data} {...config.chartUi}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <Legend align=\"left\" wrapperStyle={{ marginLeft: 20 }} />\n {config.dataKeys.map(\n ({ key, name, color }: { key: string; name: string; color: string }) => {\n return (\n <Bar dataKey={key} fill={color ?? '#4caf50'} name={name} key={key} radius={2} />\n );\n },\n )}\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n </BarChart>\n );\n case 'line':\n config.dataKeys = config.dataKeys || [];\n\n return (\n <LineChart data={data}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n {config.dataKeys.map(\n ({ key, name, color }: { key: string; name: string; color: string }) => {\n return (\n <Line\n type=\"monotone\"\n dataKey={key}\n stroke={color ?? '#4caf50'}\n name={name}\n key={key}\n />\n );\n },\n )}\n <Legend align=\"left\" />\n </LineChart>\n );\n default:\n return (\n <PieChart>\n {data.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={data}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n data.length < 20\n ? ({ name, percent }) => `${name}: ${(percent * 100).toFixed(0)}%`\n : undefined\n }\n labelLine={false}\n />\n </PieChart>\n );\n }\n}\n\nexport function renderChart(props: any): JSX.Element {\n const { isEditable = false, gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n const containerRef = useRef<HTMLDivElement>(null);\n const [containerWidth, setContainerWidth] = useState<number>(0);\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n useEffect(() => {\n const updateContainerWidth = () => {\n if (containerRef.current) {\n setContainerWidth(containerRef.current.offsetWidth);\n }\n };\n\n updateContainerWidth();\n window.addEventListener('resize', updateContainerWidth);\n \n return () => window.removeEventListener('resize', updateContainerWidth);\n }, []);\n\n const {\n config = {},\n chartType = 'pie',\n chartData = [],\n className,\n title = 'Title',\n subTitle = 'Subtitle',\n } = allData;\n\n const defaultClasses = 'aspect-auto h-[250px] w-full';\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n if (chartType === 'pie') {\n const colors = getNColors(chartData.length);\n\n for (let i = 0; i < chartData.length; i++) {\n const data = chartData[i];\n\n if (!data.fill) {\n data.fill = colors[i];\n }\n }\n } else if (!config.color) {\n config.color = baseColors[Math.floor(Math.random() * baseColors.length)];\n }\n\n let width: number | undefined = undefined;\n let totalDataPoints = 0;\n\n // Helper function to get responsive config\n const getResponsiveConfig = () => {\n if (chartType === 'bar' && totalDataPoints > 15 && containerWidth > 0 && width && width <= containerWidth) {\n // If chart fits in container, use responsive behavior\n return { ...config, chartUi: {} };\n }\n \n return config;\n };\n\n if (chartType === 'bar') {\n totalDataPoints = chartData.length * config.dataKeys.length;\n \n if (totalDataPoints > 15) {\n width =\n totalDataPoints * 20 +\n config.dataKeys.length * 8 * chartData.length +\n chartData.length * 15;\n config.chartUi = {\n barCategoryGap: '10%',\n width,\n };\n } else {\n config.chartUi = {};\n }\n }\n\n const chartUi = attributes.interactionApiInProgress ? (\n <ChartLoader />\n ) : (\n <React.Fragment>\n {chartType === 'bar' && totalDataPoints > 15 && config.chartUi && width && (containerWidth === 0 || width > containerWidth) ? (\n <div className=\"w-full\">\n <ScrollArea className=\"w-full\">\n <div style={{ minWidth: `${width}px`, width: 'max-content' }}>\n <ResponsiveContainer width={width} height={250}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\n </ChartContainer>\n </ResponsiveContainer>\n </div>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n </div>\n ) : (\n <ResponsiveContainer width=\"100%\" height={250}>\n <ChartContainer {...rest} config={getResponsiveConfig()} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, getResponsiveConfig())}\n </ChartContainer>\n </ResponsiveContainer>\n )}\n </React.Fragment>\n );\n\n return (\n <Card className=\"shadow border mt-2 mb-2\">\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent ref={containerRef} data-slot=\"bodyContent\" contentEditable={false} className=\"px-6\">\n {chartUi}\n </CardContent>\n </Card>\n );\n}\n\n// Creating this separate component to manage loading state easily!\nfunction TableButton(props: any) {\n const [loading, setLoading] = useState(false);\n\n async function onClick() {\n setLoading(true);\n await props.onClick();\n setLoading(false);\n }\n\n const defaultClasses = 'mr-2';\n const mergedClasses = props.className ? cn(defaultClasses, props.className) : defaultClasses;\n\n return (\n <TooltipButton\n className={mergedClasses}\n isEditable={false}\n interact={onClick}\n attributes={{\n interactionApiInProgress: loading,\n isDisabled: props.isDisabled,\n }}\n variant={props.variant}\n size=\"sm\"\n text={props.text}\n tooltipContent={props.tooltipContent}\n />\n );\n}\n\nexport function renderTable(props: any): JSX.Element {\n const { gjsModel, performInteraction = () => {}, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n data = [],\n headerMapper = {},\n className,\n isEditable = false,\n title = 'Title',\n subTitle = 'Subtitle',\n actions = [],\n sortConfig = {},\n pagination,\n } = allData;\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n const [activeSortColumn, setActiveSortColumn] = useState<string | null>(null);\n const [sortDirections, setSortDirections] = useState<Record<string, SortDirection>>({});\n\n const [pageNumber, setPageNumber] = useState(\n Number(pagination?.values?.pageNumber ?? pagination?.initialPage),\n );\n\n const [pageSize, setPageSize] = useState(\n Number(pagination?.values?.pageSize ?? pagination?.initialPageSize),\n );\n\n const totalCount = pagination?.totalCount;\n\n const [totalPages, setTotalPages] = useState(Math.ceil(totalCount / pageSize) || 1);\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n useEffect(() => {\n const componentData = gjsModel.get('componentProps');\n \n const sortColumn = componentData?.sortColumn;\n const sortDirection = componentData?.sortDirection;\n \n if (sortColumn && sortDirection) {\n setActiveSortColumn(sortColumn);\n setSortDirections(prev => ({ ...prev, [sortColumn]: sortDirection }));\n } else {\n setActiveSortColumn(null);\n setSortDirections({});\n }\n }, [allData]);\n\n useEffect(() => {\n if (sortConfig && Object.keys(sortConfig).length > 0) {\n setSortDirections(sortConfig);\n\n const firstSortedColumn = Object.keys(sortConfig)[0];\n\n if (firstSortedColumn) {\n setActiveSortColumn(firstSortedColumn);\n }\n }\n }, [sortConfig]);\n\n const parsedData = data.map((datum: any) => {\n const newData = {\n ...datum,\n };\n\n delete newData.id;\n\n return newData;\n });\n\n const handleSort = async (column: string, direction: SortDirection) => {\n if (direction === null) {\n setActiveSortColumn(null);\n setSortDirections(prev => ({ ...prev, [column]: null }));\n \n const currentProps = gjsModel.get('componentProps');\n gjsModel.set('componentProps', {\n ...currentProps,\n sortColumn: null,\n sortDirection: null,\n });\n\n const id = gjsModel.get('id');\n await performInteraction({\n id,\n interactionType: 'tableSort',\n payload: {\n sortColumn: null,\n sortDirection: null,\n tableId: id\n },\n affectedComponents: getAffectedComponentsWithLoader([id], true),\n });\n \n return;\n }\n\n setActiveSortColumn(column);\n setSortDirections(prev => ({ ...prev, [column]: direction }));\n \n const currentProps = gjsModel.get('componentProps');\n gjsModel.set('componentProps', {\n ...currentProps,\n sortColumn: column,\n sortDirection: direction,\n });\n \n const id = gjsModel.get('id');\n \n await performInteraction({\n id,\n interactionType: 'tableSort',\n payload: {\n sortColumn: column,\n sortDirection: direction,\n tableId: id\n },\n affectedComponents: getAffectedComponentsWithLoader([id], true),\n });\n };\n\n async function takeRowAction(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 const originalKeys = Object.keys(parsedData[0] || {}).filter((key) => key in headerMapper);\n const headers = originalKeys.map((key) => headerMapper[key]);\n\n if (actions.length > 0) {\n headers.push('');\n originalKeys.push('');\n }\n\n const rows = parsedData.map((datum: any) => originalKeys.map((key) => datum[key]));\n\n const defaultClasses = 'aspect-auto h-[250px] w-full';\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n function renderActions(rowIndex: number, rowActions: Array<Record<string, any>>) {\n if (!actions.length) {\n return null;\n }\n\n return (\n <TableCell className=\"sticky right-0 bg-white\">\n {rowActions.map((action) => {\n return (\n <TableButton\n className={action.className}\n isEditable={isEditable}\n onClick={() => takeRowAction(rowIndex, action.id)}\n variant={action.variant}\n key={action.id}\n text={action.text}\n tooltipContent={action.tooltipContent}\n />\n );\n })}\n </TableCell>\n );\n }\n\n // eslint-disable-next-line no-nested-ternary\n const renderTableComponent = attributes.interactionApiInProgress ? (\n <TableLoader />\n ) : data.length === 0 ? (\n renderNoDataFallback()\n ) : (\n <Table\n {...rest}\n className={`caption-bottom text-sm relative ${mergedClasses}`}\n data-slot=\"table\"\n >\n <TableHeader data-slot=\"table-header\" className=\"sticky top-0 z-2\">\n <TableRow>\n {headers.map((head: string, idx: number) => {\n const isActionColumn = actions.length > 0 && idx === headers.length - 1;\n const originalKey = originalKeys[idx];\n \n if (isActionColumn) {\n return (\n <TableHead\n key={idx}\n data-slot={`table-header-${idx}`}\n contentEditable={isEditable}\n className=\"sticky right-0 bg-slate-100\"\n >\n {head}\n </TableHead>\n );\n }\n\n return (\n <TableHeadSortable\n key={idx}\n data-slot={`table-header-${idx}`}\n sortDirection={sortDirections[originalKey] || 'asc'}\n isActive={activeSortColumn === originalKey}\n onSort={(direction) => handleSort(originalKey, direction)}\n sortable={true}\n isEditable={isEditable}\n >\n {head}\n </TableHeadSortable>\n );\n })}\n </TableRow>\n </TableHeader>\n <TableBody data-slot=\"table-body\">\n {rows.map((row: any[], rIdx: number) => (\n <TableRow\n key={rIdx}\n data-slot={`row-${rIdx}`}\n className=\"hover:bg-muted/50 border-b transition-colors\"\n >\n {row.map((cell: string, cIdx: number) => (\n <TableCell\n key={cIdx}\n data-slot={`cell-${rIdx}-${cIdx}`}\n className=\"p-2 align-middle whitespace-nowrap\"\n contentEditable={false}\n >\n {cell}\n </TableCell>\n ))}\n {renderActions(rIdx, actions)}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n );\n\n useEffect(() => {\n setPageNumber(Number(pagination?.values?.pageNumber ?? pagination?.initialPage));\n setPageSize(Number(pagination?.values?.pageSize ?? pagination?.initialPageSize));\n }, [pagination]);\n\n useEffect(() => {\n setTotalPages(Math.ceil(totalCount / pageSize) || 1);\n }, [totalCount, pageSize]);\n\n const pageSizeOptions = pagination?.pageSizeOptions;\n\n async function handlePageChange(newPage = pageNumber, newSize = pageSize) {\n const id = gjsModel.get('id');\n const prevPage = pageNumber;\n const prevSize = pageSize;\n setPageNumber(newPage);\n setPageSize(newSize);\n\n const componentData = gjsModel.get('componentProps');\n const currentSortColumn = componentData?.sortColumn;\n const currentSortDirection = componentData?.sortDirection;\n\n try {\n await performInteraction({\n id,\n interactionType: 'pagination',\n payload: {\n pageNumber: newPage,\n pageSize: newSize,\n ...(currentSortColumn && currentSortDirection && {\n sortColumn: currentSortColumn,\n sortDirection: currentSortDirection,\n }),\n },\n affectedComponents: getAffectedComponentsWithLoader([id], true),\n });\n } catch (error) {\n setPageNumber(prevPage);\n setPageSize(prevSize);\n }\n }\n\n const tableData = (\n <Fragment>\n <ScrollArea data-slot=\"table-container\" className={mergedClasses}>\n {renderTableComponent}\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n {(totalCount >= 0) && data.length > 0 && (\n <div className=\"flex items-center justify-between mt-4 w-full\">\n <div className=\"flex items-center gap-2\">\n <label htmlFor=\"page-size-select\" className=\"text-sm\">\n Rows per page:\n </label>\n <select\n id=\"page-size-select\"\n value={pageSize}\n onChange={(e) => handlePageChange(1, Number(e.target.value))}\n className=\"border rounded px-2 py-1 text-sm cursor-pointer\"\n disabled={attributes.interactionApiInProgress}\n >\n {pageSizeOptions.map((size: any) => (\n <option key={size} value={size}>\n {size}\n </option>\n ))}\n </select>\n </div>\n <div className=\"flex items-center gap-1 flex-shrink-0\">\n <span className=\"text-xs text-muted-foreground whitespace-nowrap\">\n {(pageNumber - 1) * pageSize + 1}–{Math.min(pageNumber * pageSize, totalCount)} of{' '}\n {totalCount}\n </span>\n <Pagination>\n <PaginationContent className=\"gap-0.2\">\n {renderPaginationArrows(\n pageNumber,\n totalPages,\n attributes.interactionApiInProgress,\n handlePageChange,\n )}\n </PaginationContent>\n </Pagination>\n </div>\n </div>\n )}\n </Fragment>\n );\n\n return (\n <Card className=\"shadow border\">\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent data-slot=\"bodyContent\" contentEditable={false}>\n {tableData}\n </CardContent>\n </Card>\n );\n}\n\nexport function renderTab(props: any): JSX.Element {\n let tabsWidth = 200;\n\n if (props.tabs.length > 4) {\n tabsWidth = 150;\n }\n\n return (\n <Tabs defaultValue={props.defaultValue}>\n <div className=\"text-center mb-4\">\n <TabsList className=\"bg-gray-300\">\n {props.tabs.map((tab: string) => (\n <TabsTrigger value={tab} key={tab} className={`text-md w-[${tabsWidth}px]`}>\n {tab}\n </TabsTrigger>\n ))}\n </TabsList>\n </div>\n {props.tabs.map((tab: string) => (\n <TabsContent value={tab} className=\"tabs-content\" key={tab} />\n ))}\n </Tabs>\n );\n}\n\nexport function renderMarkdown(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const [isEditing, setIsEditing] = useState(false);\n const editRef = useRef<HTMLDivElement>(null);\n\n const startEditing = () => {\n setIsEditing(true);\n setTimeout(() => {\n setupEditor();\n }, 0);\n };\n\n const setupEditor = () => {\n if (!editRef.current) {\n return;\n }\n\n const editor = editRef.current;\n editor.innerHTML = '';\n editor.textContent = allData.summaryText;\n editor.focus();\n };\n\n const saveChanges = () => {\n if (!editRef.current) {\n return;\n }\n\n const content = editRef.current.innerText || '';\n setAllData((prev: Record<string, any>) => ({\n ...prev,\n summaryText: content,\n }));\n setIsEditing(false);\n editRef.current.innerHTML = '';\n };\n\n const markdownStyles = {\n ul: { props: { className: 'list-disc' } },\n h1: { props: { className: 'text-4xl font-bold leading-[4rem]' } },\n h2: { props: { className: 'text-3xl font-bold leading-[3rem]' } },\n h3: { props: { className: 'text-2xl font-bold leading-[2rem]' } },\n h4: { props: { className: 'text-xl font-bold leading-[2.5rem]' } },\n h5: { props: { className: 'text-lg font-bold leading-[2.5rem]' } },\n h6: { props: { className: 'text-base font-bold leading-[2rem]' } },\n };\n\n if (!allData.isEditable) {\n return (\n <div className=\"px-[1em]\" {...rest}>\n <div data-slot=\"summaryText\">\n <Markdown options={{ overrides: markdownStyles }}>{allData.summaryText}</Markdown>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"p-[1em]\" {...rest}>\n {isEditing ? (\n <div\n ref={editRef}\n contentEditable\n onBlur={saveChanges}\n data-slot=\"summaryText\"\n className=\"p-2 min-h-[100px] whitespace-pre-wrap\"\n suppressContentEditableWarning={true}\n style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n }}\n />\n ) : (\n <div\n onClick={startEditing}\n data-slot=\"summaryText\"\n style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n }}\n >\n <Markdown options={{ overrides: markdownStyles }}>{allData.summaryText}</Markdown>\n </div>\n )}\n </div>\n );\n}\n\nexport function renderButton(props: any): JSX.Element {\n const { isEditable = false, gjsModel, performInteraction = () => {} } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\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\nexport function getRenderers(): Record<string, (props: any) => JSX.Element> {\n return {\n ActionCard: renderActionCard,\n Button: renderButton,\n Card: renderCard,\n Chart: renderChart,\n Filter: renderFilter,\n Markdown: renderMarkdown,\n Search: renderSearch,\n Table: renderTable,\n Tabs: renderTab,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"render-components.js","names":["chroma","React","useEffect","useState","useRef","Fragment","theme","Markdown","PieChart","Pie","BarChart","Bar","LineChart","Line","XAxis","YAxis","ResponsiveContainer","CartesianGrid","Legend","domutil","getOffset","el","html","ownerDocument","documentElement","box","top","left","getBoundingClientRect","iframe","document","querySelector","iframeWindow","contentWindow","pageYOffset","clientTop","pageXOffset","clientLeft","TooltipButton","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","ChartContainer","ChartTooltip","ChartTooltipContent","renderFilter","Pagination","PaginationContent","renderPaginationArrows","ScrollArea","ScrollBar","renderSearch","TableLoader","ChartLoader","CardLoader","Table","TableHeader","TableRow","TableHead","TableHeadSortable","TableBody","TableCell","Tabs","TabsList","TabsTrigger","TabsContent","cn","getAffectedComponentsWithLoader","jsx","_jsx","jsxs","_jsxs","baseColors","colors","Blue_100","Blue_30","Purpley_100","Purpley_30","Light_Bluish_Green","Wild_Strawberry","getNColors","n","_iterator","_createForOfIteratorHelperLoose","_step","done","baseColor","value","push","scale","mode","getOneColor","existing","color","base","Math","floor","random","length","selectedColorIndex","includes","selectedColors","i","renderActionCard","props","gjsModel","rest","_objectWithoutPropertiesLoose","_excluded","_useState","_extends","allData","setAllData","_allData$headerConten","headerContent","icon","_allData$bodyContent","bodyContent","_useState2","interactionApiInProgress","setAttributes","on","get","defaultClasses","className","isEditable","contentEditable","children","renderCard","_props$isEditable","_excluded2","_useState3","headerDescription","footerContent","footerClass","footerIcon","contentMetadata","contentMetadataClass","_useState4","attributes","defaultFooterClasses","defaultContentMetadataClasses","mergedCardClassName","mergedFooterClassName","mergedContentMetadataClassName","getCardContent","style","renderChartComponent","chartType","data","config","cursor","content","hideLabel","dataKey","nameKey","innerRadius","strokeWidth","label","_ref","name","percent","toFixed","undefined","labelLine","dataKeys","chartUi","vertical","xAxis","align","wrapperStyle","marginLeft","map","_ref2","key","fill","radius","indicator","_ref3","type","stroke","_ref4","renderChart","_props$isEditable2","_excluded3","_useState5","_useState6","containerRef","_useState7","containerWidth","setContainerWidth","updateContainerWidth","current","offsetWidth","window","addEventListener","removeEventListener","_allData$config","_allData$chartType","_allData$chartData","chartData","_allData$title","title","_allData$subTitle","subTitle","mergedClasses","width","totalDataPoints","getResponsiveConfig","barCategoryGap","minWidth","height","orientation","ref","TableButton","_useState8","loading","setLoading","onClick","_onClick","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stop","interact","isDisabled","variant","size","text","tooltipContent","renderTable","_pagination$values$pa","_pagination$values","_pagination$values$pa2","_pagination$values2","_props$performInterac","performInteraction","_excluded4","_useState9","_allData$data","_allData$headerMapper","headerMapper","_allData$isEditable","_allData$title2","_allData$subTitle2","_allData$actions","actions","_allData$sortConfig","sortConfig","pagination","_useState10","_useState11","activeSortColumn","setActiveSortColumn","_useState12","sortDirections","setSortDirections","_useState13","Number","values","pageNumber","initialPage","setPageNumber","_useState14","pageSize","initialPageSize","setPageSize","totalCount","_useState15","ceil","totalPages","setTotalPages","componentData","sortColumn","sortDirection","_extends2","Object","keys","firstSortedColumn","parsedData","datum","newData","id","handleSort","_ref5","_callee2","column","direction","_currentProps","_id","currentProps","_callee2$","_context2","_extends3","set","interactionType","payload","tableId","affectedComponents","abrupt","_extends4","_x","_x2","takeRowAction","_x3","_x4","_takeRowAction","_callee3","rowIndex","actionId","_callee3$","_context3","row","originalKeys","filter","headers","rows","renderActions","rowActions","action","renderTableComponent","head","idx","isActionColumn","originalKey","isActive","onSort","sortable","rIdx","cell","cIdx","_pagination$values$pa3","_pagination$values3","_pagination$values$pa4","_pagination$values4","pageSizeOptions","handlePageChange","_x5","_x6","_handlePageChange","_callee4","newPage","newSize","prevPage","prevSize","currentSortColumn","currentSortDirection","_callee4$","_context4","t0","tableData","htmlFor","onChange","e","target","disabled","min","renderTab","tabsWidth","tabs","defaultValue","tab","renderMarkdown","_excluded5","_useState16","_useState17","_useState18","isEditing","setIsEditing","editRef","startEditing","setTimeout","setupEditor","editor","innerHTML","textContent","summaryText","focus","saveChanges","innerText","markdownStyles","ul","h1","h2","h3","h4","h5","h6","options","overrides","onBlur","suppressContentEditableWarning","whiteSpace","wordWrap","renderButton","_props$isEditable3","_props$performInterac2","_useState19","_useState20","_allData$variant","_allData$size","concat","getRenderers","ActionCard","Button","Chart","Filter","Search"],"sources":["../../../src/plugins/helpers/render-components.tsx"],"sourcesContent":["/* eslint-disable func-style */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable func-names */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport chroma from 'chroma-js';\nimport React, { useEffect, useState, JSX, useRef, Fragment } from 'react';\n\nimport { theme } from '@peak-ai/ais-components/theme';\n\nimport Markdown from 'markdown-to-jsx';\n\nimport {\n PieChart,\n Pie,\n BarChart,\n Bar,\n LineChart,\n Line,\n XAxis,\n YAxis,\n ResponsiveContainer,\n CartesianGrid,\n Legend,\n // @ts-ignore\n} from 'recharts/lib';\n\n// @ts-ignore\nimport * as domutil from 'recharts/lib/util/DOMUtils';\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\ndomutil.getOffset = (el: HTMLElement): {\n top: number;\n left: number;\n} => {\n const html = el.ownerDocument.documentElement;\n let box = { top: 0, left: 0 };\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n const iframe = document.querySelector('.gjs-frame');\n const iframeWindow = (iframe as any)?.contentWindow;\n\n return {\n top: box.top + iframeWindow.pageYOffset - html.clientTop,\n left: box.left + iframeWindow.pageXOffset - html.clientLeft,\n };\n};\n\nimport { TooltipButton } from '../../shadcn/components/ui/button';\nimport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\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 { renderDateFilter } from '../../shadcn/components/ui/date-filter';\nimport {\n Pagination,\n PaginationContent,\n renderPaginationArrows,\n} from '../../shadcn/components/ui/pagination';\nimport { ScrollArea, ScrollBar } from '../../shadcn/components/ui/scroll-area';\nimport { renderSearch } from '../../shadcn/components/ui/search';\nimport { TableLoader, ChartLoader, CardLoader } from '../../shadcn/components/ui/skeleton';\nimport {\n Table,\n TableHeader,\n TableRow,\n TableHead,\n TableHeadSortable,\n TableBody,\n TableCell,\n SortDirection,\n} from '../../shadcn/components/ui/table';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../../shadcn/components/ui/tabs';\n\nimport { cn } from '../../shadcn/utils';\nimport { getAffectedComponentsWithLoader } from '../../helpers';\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\nfunction getNColors(n: number) {\n const colors: Array<string[]> = [];\n\n for (const baseColor of baseColors) {\n // eslint-disable-next-line import/no-named-as-default-member\n colors.push(chroma.scale(baseColor).mode('lab').colors(n));\n }\n\n function getOneColor(existing: Array<string>) {\n let color: null | string = null;\n\n do {\n const base = colors[Math.floor(Math.random() * colors.length)];\n const selectedColorIndex = Math.floor(Math.random() * base.length);\n color = base[selectedColorIndex];\n } while (existing.includes(color));\n\n return color as string;\n }\n\n const selectedColors: Array<string> = [];\n\n for (let i = 0; i < n; i++) {\n selectedColors.push(getOneColor(selectedColors));\n }\n\n return selectedColors;\n}\n\n/* TODO: Loader remains */\nexport function renderActionCard(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n headerContent = 'Default Action Card Title',\n icon,\n bodyContent = 'Default body content. Click to edit.',\n } = allData;\n\n const [, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const defaultClasses = 'bg-white text-black p-4 rounded-lg shadow border flex flex-col h-full';\n\n return (\n <Card className={defaultClasses} isEditable={false} contentEditable={false} {...rest}>\n <CardContent className=\"p-0\" isEditable={false} contentEditable={false}>\n <div className=\"px-4 py-3\">\n <div className=\"flex items-start\">\n <span className=\"text-5xl mr-2\" aria-hidden=\"true\">\n {icon}\n </span>\n <div className=\"flex-1\">\n <div className=\"text-xl font-semibold\">{headerContent}</div>\n <div className=\"text-base leading-relaxed mt-1\">{bodyContent}</div>\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n );\n}\n\nexport function renderCard(props: any): JSX.Element {\n const { isEditable = false, gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n headerContent,\n headerDescription,\n bodyContent,\n footerContent,\n footerClass,\n footerIcon,\n contentMetadata,\n contentMetadataClass,\n className,\n } = allData;\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const defaultClasses = 'bg-white text-black p-4 rounded-lg shadow border flex flex-col h-full';\n const defaultFooterClasses = 'text-sm';\n const defaultContentMetadataClasses = 'text-xs';\n const mergedCardClassName = className ? cn(defaultClasses, className) : defaultClasses;\n const mergedFooterClassName = footerClass\n ? cn(defaultFooterClasses, footerClass)\n : defaultFooterClasses;\n const mergedContentMetadataClassName = contentMetadataClass\n ? cn(defaultContentMetadataClasses, contentMetadataClass)\n : defaultContentMetadataClasses;\n\n function getCardContent() {\n if (attributes.interactionApiInProgress) {\n return (\n <CardContent>\n <CardLoader />\n </CardContent>\n );\n }\n\n return (\n <React.Fragment>\n <CardHeader>\n <CardTitle data-slot=\"headerContent\" contentEditable={isEditable} className=\"text-lg\">\n {headerContent}\n </CardTitle>\n <CardDescription\n data-slot=\"headerDescription\"\n contentEditable={isEditable}\n className=\"text-sm\"\n >\n {headerDescription}\n </CardDescription>\n </CardHeader>\n\n <CardContent data-slot=\"bodyContent\" contentEditable={false} className=\"flex-grow\">\n <div className=\"text-3xl font-semibold truncate\">{bodyContent}</div>\n {contentMetadata && (\n <div className={mergedContentMetadataClassName} style={{ color: '#2A44D4' }}>\n {contentMetadata}\n </div>\n )}\n </CardContent>\n\n <CardFooter\n data-slot=\"footerContent\"\n contentEditable={isEditable}\n className={cn(mergedFooterClassName)}\n >\n {footerIcon && (\n <span className=\"mr-2\" aria-hidden=\"true\">\n {footerIcon}\n </span>\n )}\n {footerContent}\n </CardFooter>\n </React.Fragment>\n );\n }\n\n return (\n <Card {...rest} className={mergedCardClassName}>\n {getCardContent()}\n </Card>\n );\n}\n\nfunction renderChartComponent(chartType: string, data: any, config: any): JSX.Element {\n switch (chartType) {\n case 'pie':\n return (\n <PieChart>\n {data.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={data}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n data.length < 20\n ? ({ name, percent }: { name: string; percent: number; }) => `${name}: ${(percent * 100).toFixed(0)}%`\n : undefined\n }\n labelLine={false}\n />\n </PieChart>\n );\n case 'bar':\n config.dataKeys = config.dataKeys || [];\n\n return (\n <BarChart data={data} {...config.chartUi}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <Legend align=\"left\" wrapperStyle={{ marginLeft: 20 }} />\n {config.dataKeys.map(\n ({ key, name, color }: { key: string; name: string; color: string }) => {\n return (\n <Bar dataKey={key} fill={color ?? '#4caf50'} name={name} key={key} radius={2} />\n );\n },\n )}\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n </BarChart>\n );\n case 'line':\n config.dataKeys = config.dataKeys || [];\n\n return (\n <LineChart data={data}>\n <CartesianGrid vertical={false} />\n <XAxis dataKey={config.xAxis} />\n <YAxis />\n <ChartTooltip cursor={false} content={<ChartTooltipContent indicator=\"dashed\" />} />\n {config.dataKeys.map(\n ({ key, name, color }: { key: string; name: string; color: string }) => {\n return (\n <Line\n type=\"monotone\"\n dataKey={key}\n stroke={color ?? '#4caf50'}\n name={name}\n key={key}\n />\n );\n },\n )}\n <Legend align=\"left\" />\n </LineChart>\n );\n default:\n return (\n <PieChart>\n {data.length >= 20 && (\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n )}\n <Pie\n data={data}\n dataKey={config.dataKey}\n nameKey={config.nameKey}\n innerRadius={60}\n strokeWidth={10}\n label={\n data.length < 20\n ? ({ name, percent }: { name: string; percent: number; }) => `${name}: ${(percent * 100).toFixed(0)}%`\n : undefined\n }\n labelLine={false}\n />\n </PieChart>\n );\n }\n}\n\nexport function renderChart(props: any): JSX.Element {\n const { isEditable = false, gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n const containerRef = useRef<HTMLDivElement>(null);\n const [containerWidth, setContainerWidth] = useState<number>(0);\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n useEffect(() => {\n const updateContainerWidth = () => {\n if (containerRef.current) {\n setContainerWidth(containerRef.current.offsetWidth);\n }\n };\n\n updateContainerWidth();\n window.addEventListener('resize', updateContainerWidth);\n \n return () => window.removeEventListener('resize', updateContainerWidth);\n }, []);\n\n const {\n config = {},\n chartType = 'pie',\n chartData = [],\n className,\n title = 'Title',\n subTitle = 'Subtitle',\n } = allData;\n\n const defaultClasses = 'aspect-auto h-[250px] w-full';\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n if (chartType === 'pie') {\n const colors = getNColors(chartData.length);\n\n for (let i = 0; i < chartData.length; i++) {\n const data = chartData[i];\n\n if (!data.fill) {\n data.fill = colors[i];\n }\n }\n } else if (!config.color) {\n config.color = baseColors[Math.floor(Math.random() * baseColors.length)];\n }\n\n let width: number | undefined = undefined;\n let totalDataPoints = 0;\n\n // Helper function to get responsive config\n const getResponsiveConfig = () => {\n if (chartType === 'bar' && totalDataPoints > 15 && containerWidth > 0 && width && width <= containerWidth) {\n // If chart fits in container, use responsive behavior\n return { ...config, chartUi: {} };\n }\n \n return config;\n };\n\n if (chartType === 'bar') {\n totalDataPoints = chartData.length * config.dataKeys.length;\n \n if (totalDataPoints > 15) {\n width =\n totalDataPoints * 20 +\n config.dataKeys.length * 8 * chartData.length +\n chartData.length * 15;\n config.chartUi = {\n barCategoryGap: '10%',\n width,\n };\n } else {\n config.chartUi = {};\n }\n }\n\n const chartUi = attributes.interactionApiInProgress ? (\n <ChartLoader />\n ) : (\n <React.Fragment>\n {chartType === 'bar' && totalDataPoints > 15 && config.chartUi && width && (containerWidth === 0 || width > containerWidth) ? (\n <div className=\"w-full\">\n <ScrollArea className=\"w-full\">\n <div style={{ minWidth: `${width}px`, width: 'max-content' }}>\n <ResponsiveContainer width={width} height={250}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\n </ChartContainer>\n </ResponsiveContainer>\n </div>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n </div>\n ) : (\n <ResponsiveContainer width=\"100%\" height={250}>\n <ChartContainer {...rest} config={getResponsiveConfig()} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, getResponsiveConfig())}\n </ChartContainer>\n </ResponsiveContainer>\n )}\n </React.Fragment>\n );\n\n return (\n <Card className=\"shadow border mt-2 mb-2\">\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent ref={containerRef} data-slot=\"bodyContent\" contentEditable={false} className=\"px-6\">\n {chartUi}\n </CardContent>\n </Card>\n );\n}\n\n// Creating this separate component to manage loading state easily!\nfunction TableButton(props: any) {\n const [loading, setLoading] = useState(false);\n\n async function onClick() {\n setLoading(true);\n await props.onClick();\n setLoading(false);\n }\n\n const defaultClasses = 'mr-2';\n const mergedClasses = props.className ? cn(defaultClasses, props.className) : defaultClasses;\n\n return (\n <TooltipButton\n className={mergedClasses}\n isEditable={false}\n interact={onClick}\n attributes={{\n interactionApiInProgress: loading,\n isDisabled: props.isDisabled,\n }}\n variant={props.variant}\n size=\"sm\"\n text={props.text}\n tooltipContent={props.tooltipContent}\n />\n );\n}\n\nexport function renderTable(props: any): JSX.Element {\n const { gjsModel, performInteraction = () => {}, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n data = [],\n headerMapper = {},\n className,\n isEditable = false,\n title = 'Title',\n subTitle = 'Subtitle',\n actions = [],\n sortConfig = {},\n pagination,\n } = allData;\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n const [activeSortColumn, setActiveSortColumn] = useState<string | null>(null);\n const [sortDirections, setSortDirections] = useState<Record<string, SortDirection>>({});\n\n const [pageNumber, setPageNumber] = useState(\n Number(pagination?.values?.pageNumber ?? pagination?.initialPage),\n );\n\n const [pageSize, setPageSize] = useState(\n Number(pagination?.values?.pageSize ?? pagination?.initialPageSize),\n );\n\n const totalCount = pagination?.totalCount;\n\n const [totalPages, setTotalPages] = useState(Math.ceil(totalCount / pageSize) || 1);\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n useEffect(() => {\n const componentData = gjsModel.get('componentProps');\n \n const sortColumn = componentData?.sortColumn;\n const sortDirection = componentData?.sortDirection;\n \n if (sortColumn && sortDirection) {\n setActiveSortColumn(sortColumn);\n setSortDirections(prev => ({ ...prev, [sortColumn]: sortDirection }));\n } else {\n setActiveSortColumn(null);\n setSortDirections({});\n }\n }, [allData]);\n\n useEffect(() => {\n if (sortConfig && Object.keys(sortConfig).length > 0) {\n setSortDirections(sortConfig);\n\n const firstSortedColumn = Object.keys(sortConfig)[0];\n\n if (firstSortedColumn) {\n setActiveSortColumn(firstSortedColumn);\n }\n }\n }, [sortConfig]);\n\n const parsedData = data.map((datum: any) => {\n const newData = {\n ...datum,\n };\n\n delete newData.id;\n\n return newData;\n });\n\n const handleSort = async (column: string, direction: SortDirection) => {\n if (direction === null) {\n setActiveSortColumn(null);\n setSortDirections(prev => ({ ...prev, [column]: null }));\n \n const currentProps = gjsModel.get('componentProps');\n gjsModel.set('componentProps', {\n ...currentProps,\n sortColumn: null,\n sortDirection: null,\n });\n\n const id = gjsModel.get('id');\n await performInteraction({\n id,\n interactionType: 'tableSort',\n payload: {\n sortColumn: null,\n sortDirection: null,\n tableId: id\n },\n affectedComponents: getAffectedComponentsWithLoader([id], true),\n });\n \n return;\n }\n\n setActiveSortColumn(column);\n setSortDirections(prev => ({ ...prev, [column]: direction }));\n \n const currentProps = gjsModel.get('componentProps');\n gjsModel.set('componentProps', {\n ...currentProps,\n sortColumn: column,\n sortDirection: direction,\n });\n \n const id = gjsModel.get('id');\n \n await performInteraction({\n id,\n interactionType: 'tableSort',\n payload: {\n sortColumn: column,\n sortDirection: direction,\n tableId: id\n },\n affectedComponents: getAffectedComponentsWithLoader([id], true),\n });\n };\n\n async function takeRowAction(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 const originalKeys = Object.keys(parsedData[0] || {}).filter((key) => key in headerMapper);\n const headers = originalKeys.map((key) => headerMapper[key]);\n\n if (actions.length > 0) {\n headers.push('');\n originalKeys.push('');\n }\n\n const rows = parsedData.map((datum: any) => originalKeys.map((key) => datum[key]));\n\n const defaultClasses = 'aspect-auto h-[250px] w-full';\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n function renderActions(rowIndex: number, rowActions: Array<Record<string, any>>) {\n if (!actions.length) {\n return null;\n }\n\n return (\n <TableCell className=\"sticky right-0 bg-white\">\n {rowActions.map((action) => {\n return (\n <TableButton\n className={action.className}\n isEditable={isEditable}\n onClick={() => takeRowAction(rowIndex, action.id)}\n variant={action.variant}\n key={action.id}\n text={action.text}\n tooltipContent={action.tooltipContent}\n />\n );\n })}\n </TableCell>\n );\n }\n\n const renderTableComponent = attributes.interactionApiInProgress ? (\n <TableLoader />\n ) : (\n <Table\n {...rest}\n className={`caption-bottom text-sm relative ${mergedClasses}`}\n data-slot=\"table\"\n >\n <TableHeader data-slot=\"table-header\" className=\"sticky top-0 z-2\">\n <TableRow>\n {headers.map((head: string, idx: number) => {\n const isActionColumn = actions.length > 0 && idx === headers.length - 1;\n const originalKey = originalKeys[idx];\n \n if (isActionColumn) {\n return (\n <TableHead\n key={idx}\n data-slot={`table-header-${idx}`}\n contentEditable={isEditable}\n className=\"sticky right-0 bg-slate-100\"\n >\n {head}\n </TableHead>\n );\n }\n\n return (\n <TableHeadSortable\n key={idx}\n data-slot={`table-header-${idx}`}\n sortDirection={sortDirections[originalKey] || 'asc'}\n isActive={activeSortColumn === originalKey}\n onSort={(direction) => handleSort(originalKey, direction)}\n sortable={true}\n isEditable={isEditable}\n >\n {head}\n </TableHeadSortable>\n );\n })}\n </TableRow>\n </TableHeader>\n <TableBody data-slot=\"table-body\">\n {rows.map((row: any[], rIdx: number) => (\n <TableRow\n key={rIdx}\n data-slot={`row-${rIdx}`}\n className=\"hover:bg-muted/50 border-b transition-colors\"\n >\n {row.map((cell: string, cIdx: number) => (\n <TableCell\n key={cIdx}\n data-slot={`cell-${rIdx}-${cIdx}`}\n className=\"p-2 align-middle whitespace-nowrap\"\n contentEditable={false}\n >\n {cell}\n </TableCell>\n ))}\n {renderActions(rIdx, actions)}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n );\n\n useEffect(() => {\n setPageNumber(Number(pagination?.values?.pageNumber ?? pagination?.initialPage));\n setPageSize(Number(pagination?.values?.pageSize ?? pagination?.initialPageSize));\n }, [pagination]);\n\n useEffect(() => {\n setTotalPages(Math.ceil(totalCount / pageSize) || 1);\n }, [totalCount, pageSize]);\n\n const pageSizeOptions = pagination?.pageSizeOptions;\n\n async function handlePageChange(newPage = pageNumber, newSize = pageSize) {\n const id = gjsModel.get('id');\n const prevPage = pageNumber;\n const prevSize = pageSize;\n setPageNumber(newPage);\n setPageSize(newSize);\n\n const componentData = gjsModel.get('componentProps');\n const currentSortColumn = componentData?.sortColumn;\n const currentSortDirection = componentData?.sortDirection;\n\n try {\n await performInteraction({\n id,\n interactionType: 'pagination',\n payload: {\n pageNumber: newPage,\n pageSize: newSize,\n ...(currentSortColumn && currentSortDirection && {\n sortColumn: currentSortColumn,\n sortDirection: currentSortDirection,\n }),\n },\n affectedComponents: getAffectedComponentsWithLoader([id], true),\n });\n } catch (error) {\n setPageNumber(prevPage);\n setPageSize(prevSize);\n }\n }\n\n const tableData = (\n <Fragment>\n <ScrollArea data-slot=\"table-container\" className={mergedClasses}>\n {renderTableComponent}\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n {(totalCount >= 0) && (\n <div className=\"flex items-center justify-between mt-4 w-full\">\n <div className=\"flex items-center gap-2\">\n <label htmlFor=\"page-size-select\" className=\"text-sm\">\n Rows per page:\n </label>\n <select\n id=\"page-size-select\"\n value={pageSize}\n onChange={(e) => handlePageChange(1, Number(e.target.value))}\n className=\"border rounded px-2 py-1 text-sm cursor-pointer\"\n disabled={attributes.interactionApiInProgress}\n >\n {pageSizeOptions.map((size: any) => (\n <option key={size} value={size}>\n {size}\n </option>\n ))}\n </select>\n </div>\n <div className=\"flex items-center gap-1 flex-shrink-0\">\n <span className=\"text-xs text-muted-foreground whitespace-nowrap\">\n {(pageNumber - 1) * pageSize + 1}–{Math.min(pageNumber * pageSize, totalCount)} of{' '}\n {totalCount}\n </span>\n <Pagination>\n <PaginationContent className=\"gap-0.2\">\n {renderPaginationArrows(\n pageNumber,\n totalPages,\n attributes.interactionApiInProgress,\n handlePageChange,\n )}\n </PaginationContent>\n </Pagination>\n </div>\n </div>\n )}\n </Fragment>\n );\n\n return (\n <Card className=\"shadow border\">\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent data-slot=\"bodyContent\" contentEditable={false}>\n {tableData}\n </CardContent>\n </Card>\n );\n}\n\nexport function renderTab(props: any): JSX.Element {\n let tabsWidth = 200;\n\n if (props.tabs.length > 4) {\n tabsWidth = 150;\n }\n\n return (\n <Tabs defaultValue={props.defaultValue}>\n <div className=\"text-center mb-4\">\n <TabsList className=\"bg-gray-300\">\n {props.tabs.map((tab: string) => (\n <TabsTrigger value={tab} key={tab} className={`text-md w-[${tabsWidth}px]`}>\n {tab}\n </TabsTrigger>\n ))}\n </TabsList>\n </div>\n {props.tabs.map((tab: string) => (\n <TabsContent value={tab} className=\"tabs-content\" key={tab} />\n ))}\n </Tabs>\n );\n}\n\nexport function renderMarkdown(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const [isEditing, setIsEditing] = useState(false);\n const editRef = useRef<HTMLDivElement>(null);\n\n const startEditing = () => {\n setIsEditing(true);\n setTimeout(() => {\n setupEditor();\n }, 0);\n };\n\n const setupEditor = () => {\n if (!editRef.current) {\n return;\n }\n\n const editor = editRef.current;\n editor.innerHTML = '';\n editor.textContent = allData.summaryText;\n editor.focus();\n };\n\n const saveChanges = () => {\n if (!editRef.current) {\n return;\n }\n\n const content = editRef.current.innerText || '';\n setAllData((prev: Record<string, any>) => ({\n ...prev,\n summaryText: content,\n }));\n setIsEditing(false);\n editRef.current.innerHTML = '';\n };\n\n const markdownStyles = {\n ul: { props: { className: 'list-disc' } },\n h1: { props: { className: 'text-4xl font-bold leading-[4rem]' } },\n h2: { props: { className: 'text-3xl font-bold leading-[3rem]' } },\n h3: { props: { className: 'text-2xl font-bold leading-[2rem]' } },\n h4: { props: { className: 'text-xl font-bold leading-[2.5rem]' } },\n h5: { props: { className: 'text-lg font-bold leading-[2.5rem]' } },\n h6: { props: { className: 'text-base font-bold leading-[2rem]' } },\n };\n\n if (!allData.isEditable) {\n return (\n <div className=\"px-[1em]\" {...rest}>\n <div data-slot=\"summaryText\">\n <Markdown options={{ overrides: markdownStyles }}>{allData.summaryText}</Markdown>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"p-[1em]\" {...rest}>\n {isEditing ? (\n <div\n ref={editRef}\n contentEditable\n onBlur={saveChanges}\n data-slot=\"summaryText\"\n className=\"p-2 min-h-[100px] whitespace-pre-wrap\"\n suppressContentEditableWarning={true}\n style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n }}\n />\n ) : (\n <div\n onClick={startEditing}\n data-slot=\"summaryText\"\n style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n }}\n >\n <Markdown options={{ overrides: markdownStyles }}>{allData.summaryText}</Markdown>\n </div>\n )}\n </div>\n );\n}\n\nexport function renderButton(props: any): JSX.Element {\n const { isEditable = false, gjsModel, performInteraction = () => {} } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\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\nexport function getRenderers(): Record<string, (props: any) => JSX.Element> {\n return {\n ActionCard: renderActionCard,\n Button: renderButton,\n Card: renderCard,\n Chart: renderChart,\n Filter: renderFilter,\n Markdown: renderMarkdown,\n Search: renderSearch,\n Table: renderTable,\n Tabs: renderTab,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["id","className","children","config","isEditable"];import*as React from"react";import*as RechartsPrimitive from"recharts";import{cn}from"../../utils";// Format: { THEME_NAME: CSS_SELECTOR }
2
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var THEMES={light:"",dark:".dark"};var ChartContext=/*#__PURE__*/React.createContext(null);function useChart(){var context=React.useContext(ChartContext);if(!context){throw new Error("useChart must be used within a <ChartContainer />")}return context}function ChartContainer(_ref){var id=_ref.id,className=_ref.className,children=_ref.children,config=_ref.config,isEditable=_ref.isEditable,props=_objectWithoutPropertiesLoose(_ref,_excluded);var uniqueId=id||"id-"+Math.random().toString(36).substring(2,9);var chartId="chart-"+uniqueId;return/*#__PURE__*/_jsx(ChartContext.Provider,{value:{config:config},children:/*#__PURE__*/_jsxs("div",_extends({"data-slot":"chart","data-chart":chartId,className:cn("[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",className),contentEditable:isEditable},props,{children:[/*#__PURE__*/_jsx(ChartStyle,{id:chartId,config:config}),/*#__PURE__*/_jsx(RechartsPrimitive.ResponsiveContainer,{children:children})]}))})}function ChartStyle(_ref2){var id=_ref2.id,config=_ref2.config;var colorConfig=Object.entries(config).filter(function(_ref3){var conf=_ref3[1];return conf.theme||conf.color});if(!colorConfig.length){return null}return/*#__PURE__*/_jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(THEMES).map(function(_ref4){var theme=_ref4[0],prefix=_ref4[1];return"\n"+prefix+" [data-chart="+id+"] {\n"+colorConfig.map(function(_ref5){var _itemConfig$theme;var key=_ref5[0],itemConfig=_ref5[1];var color=((_itemConfig$theme=itemConfig.theme)==null?void 0:_itemConfig$theme[theme])||itemConfig.color;return color?" --color-"+key+": "+color+";":null}).join("\n")+"\n}\n"}).join("\n")}})}var ChartTooltip=RechartsPrimitive.Tooltip;function ChartTooltipContent(_ref6){var active=_ref6.active,payload=_ref6.payload,className=_ref6.className,_ref6$indicator=_ref6.indicator,indicator=_ref6$indicator===void 0?"dot":_ref6$indicator,_ref6$hideLabel=_ref6.hideLabel,hideLabel=_ref6$hideLabel===void 0?false:_ref6$hideLabel,_ref6$hideIndicator=_ref6.hideIndicator,hideIndicator=_ref6$hideIndicator===void 0?false:_ref6$hideIndicator,label=_ref6.label,labelFormatter=_ref6.labelFormatter,labelClassName=_ref6.labelClassName,formatter=_ref6.formatter,color=_ref6.color,nameKey=_ref6.nameKey,labelKey=_ref6.labelKey;var _useChart=useChart(),config=_useChart.config;var tooltipLabel=React.useMemo(function(){var _config;if(hideLabel||!(payload!=null&&payload.length)){return null}var item=payload[0];var key=""+(labelKey||(item==null?void 0:item.dataKey)||(item==null?void 0:item.name)||"value");var itemConfig=getPayloadConfigFromPayload(config,item,key);var value=!labelKey&&typeof label==="string"?((_config=config[label])==null?void 0:_config.label)||label:itemConfig==null?void 0:itemConfig.label;if(labelFormatter){return/*#__PURE__*/_jsx("div",{className:cn("font-medium",labelClassName),children:labelFormatter(value,payload)})}if(!value){return null}return/*#__PURE__*/_jsx("div",{className:cn("font-medium",labelClassName),children:value})},[label,labelFormatter,payload,hideLabel,labelClassName,config,labelKey]);if(!active||!(payload!=null&&payload.length)){return null}var nestLabel=payload.length===1&&indicator!=="dot";return/*#__PURE__*/_jsxs("div",{className:cn("border-border/50 bg-white grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",className),children:[!nestLabel?tooltipLabel:null,/*#__PURE__*/_jsx("div",{className:"grid gap-1.5",children:payload.map(function(item,index){var key=""+(nameKey||item.name||item.dataKey||"value");var itemConfig=getPayloadConfigFromPayload(config,item,key);var indicatorColor=color||item.payload.fill||item.color;return/*#__PURE__*/_jsx("div",{className:cn("[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",indicator==="dot"&&"items-center"),children:formatter&&(item==null?void 0:item.value)!==undefined&&item.name?formatter(item.value,item.name,item,index,item.payload):/*#__PURE__*/_jsxs(React.Fragment,{children:[itemConfig!=null&&itemConfig.icon?/*#__PURE__*/_jsx(itemConfig.icon,{}):!hideIndicator&&/*#__PURE__*/_jsx("div",{className:cn("shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",{"h-2.5 w-2.5":indicator==="dot","w-1":indicator==="line","w-0 border-[1.5px] border-dashed bg-transparent":indicator==="dashed","my-0.5":nestLabel&&indicator==="dashed"}),style:{"--color-bg":indicatorColor,"--color-border":indicatorColor}}),/*#__PURE__*/_jsxs("div",{className:cn("flex flex-1 justify-between leading-none",nestLabel?"items-end":"items-center"),children:[/*#__PURE__*/_jsxs("div",{className:"grid gap-1.5",children:[nestLabel?tooltipLabel:null,/*#__PURE__*/_jsx("span",{className:"text-muted-foreground",children:(itemConfig==null?void 0:itemConfig.label)||item.name})]}),item.value&&/*#__PURE__*/_jsx("span",{className:"text-foreground font-mono font-medium tabular-nums",children:item.value.toLocaleString()})]})]})},item.dataKey+"-"+index)})})]})}var ChartLegend=RechartsPrimitive.Legend;function ChartLegendContent(_ref7){var className=_ref7.className,_ref7$hideIcon=_ref7.hideIcon,hideIcon=_ref7$hideIcon===void 0?false:_ref7$hideIcon,payload=_ref7.payload,_ref7$verticalAlign=_ref7.verticalAlign,verticalAlign=_ref7$verticalAlign===void 0?"bottom":_ref7$verticalAlign,nameKey=_ref7.nameKey;var _useChart2=useChart(),config=_useChart2.config;if(!(payload!=null&&payload.length)){return null}return/*#__PURE__*/_jsx("div",{className:cn("flex items-center justify-center gap-4",verticalAlign==="top"?"pb-3":"pt-3",className),children:payload.map(function(item,index){var key=""+(nameKey||"value");var itemConfig=getPayloadConfigFromPayload(config,item,key);return/*#__PURE__*/_jsxs("div",{className:cn("[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"),children:[itemConfig!=null&&itemConfig.icon&&!hideIcon?/*#__PURE__*/_jsx(itemConfig.icon,{}):/*#__PURE__*/_jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:item.color}}),itemConfig==null?void 0:itemConfig.label]},item.value+"-"+index)})})}// Helper to extract item config from a payload.
2
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var THEMES={light:"",dark:".dark"};var ChartContext=/*#__PURE__*/React.createContext(null);function useChart(){var context=React.useContext(ChartContext);if(!context){throw new Error("useChart must be used within a <ChartContainer />")}return context}function ChartContainer(_ref){var id=_ref.id,className=_ref.className,children=_ref.children,config=_ref.config,isEditable=_ref.isEditable,props=_objectWithoutPropertiesLoose(_ref,_excluded);var uniqueId=id||"id-"+Math.random().toString(36).substring(2,9);var chartId="chart-"+uniqueId;return/*#__PURE__*/_jsx(ChartContext.Provider,{value:{config:config},children:/*#__PURE__*/_jsxs("div",_extends({"data-slot":"chart","data-chart":chartId,className:cn("[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",className),contentEditable:isEditable},props,{children:[/*#__PURE__*/_jsx(ChartStyle,{id:chartId,config:config}),/*#__PURE__*/_jsx(RechartsPrimitive.ResponsiveContainer,{children:children})]}))})}function ChartStyle(_ref2){var id=_ref2.id,config=_ref2.config;var colorConfig=Object.entries(config).filter(function(_ref3){var conf=_ref3[1];return conf.theme||conf.color});if(!colorConfig.length){return null}return/*#__PURE__*/_jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(THEMES).map(function(_ref4){var theme=_ref4[0],prefix=_ref4[1];return"\n"+prefix+" [data-chart="+id+"] {\n"+colorConfig.map(function(_ref5){var _itemConfig$theme;var key=_ref5[0],itemConfig=_ref5[1];var color=((_itemConfig$theme=itemConfig.theme)==null?void 0:_itemConfig$theme[theme])||itemConfig.color;return color?" --color-"+key+": "+color+";":null}).join("\n")+"\n}\n"}).join("\n")}})}var ChartTooltip=RechartsPrimitive.Tooltip;function ChartTooltipContent(_ref6){var active=_ref6.active,payload=_ref6.payload,className=_ref6.className,_ref6$indicator=_ref6.indicator,indicator=_ref6$indicator===void 0?"dot":_ref6$indicator,_ref6$hideLabel=_ref6.hideLabel,hideLabel=_ref6$hideLabel===void 0?false:_ref6$hideLabel,_ref6$hideIndicator=_ref6.hideIndicator,hideIndicator=_ref6$hideIndicator===void 0?false:_ref6$hideIndicator,label=_ref6.label,labelFormatter=_ref6.labelFormatter,labelClassName=_ref6.labelClassName,formatter=_ref6.formatter,color=_ref6.color,nameKey=_ref6.nameKey,labelKey=_ref6.labelKey;var _useChart=useChart(),config=_useChart.config;var tooltipLabel=React.useMemo(function(){var _config;if(hideLabel||!(payload!=null&&payload.length)){return null}var item=payload[0];var key=""+(labelKey||(item==null?void 0:item.dataKey)||(item==null?void 0:item.name)||"value");var itemConfig=getPayloadConfigFromPayload(config,item,key);var value=!labelKey&&typeof label==="string"?((_config=config[label])==null?void 0:_config.label)||label:itemConfig==null?void 0:itemConfig.label;if(labelFormatter){return/*#__PURE__*/_jsx("div",{className:cn("font-medium",labelClassName),children:labelFormatter(value,payload)})}if(!value){return null}return/*#__PURE__*/_jsx("div",{className:cn("font-medium",labelClassName),children:value})},[label,labelFormatter,payload,hideLabel,labelClassName,config,labelKey]);if(!active||!(payload!=null&&payload.length)){return null}var nestLabel=payload.length===1&&indicator!=="dot";return/*#__PURE__*/_jsxs("div",{className:cn("border-border/50 bg-white grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",className),children:[!nestLabel?tooltipLabel:null,/*#__PURE__*/_jsx("div",{className:"grid gap-1.5",children:payload.map(function(item,index){var key=""+(nameKey||item.name||item.dataKey||"value");var itemConfig=getPayloadConfigFromPayload(config,item,key);var indicatorColor=color||item.payload.fill||item.color;return/*#__PURE__*/_jsx("div",{className:cn("[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",indicator==="dot"&&"items-center"),children:formatter&&(item==null?void 0:item.value)!==undefined&&item.name?formatter(item.value,item.name,item,index,item.payload):/*#__PURE__*/_jsxs(React.Fragment,{children:[itemConfig!=null&&itemConfig.icon?/*#__PURE__*/_jsx(itemConfig.icon,{}):!hideIndicator&&/*#__PURE__*/_jsx("div",{className:cn("shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",{"h-2.5 w-2.5":indicator==="dot","w-1":indicator==="line","w-0 border-[1.5px] border-dashed bg-transparent":indicator==="dashed","my-0.5":nestLabel&&indicator==="dashed"}),style:{"--color-bg":indicatorColor,"--color-border":indicatorColor}}),/*#__PURE__*/_jsxs("div",{className:cn("flex flex-1 justify-between leading-none",nestLabel?"items-end":"items-center"),children:[/*#__PURE__*/_jsxs("div",{className:"grid gap-1.5",children:[nestLabel?tooltipLabel:null,/*#__PURE__*/_jsx("span",{className:"text-muted-foreground mr-2",children:(itemConfig==null?void 0:itemConfig.label)||item.name})]}),item.value&&/*#__PURE__*/_jsx("span",{className:"text-foreground font-mono font-medium tabular-nums",children:item.value.toLocaleString()})]})]})},item.dataKey+"-"+index)})})]})}var ChartLegend=RechartsPrimitive.Legend;function ChartLegendContent(_ref7){var className=_ref7.className,_ref7$hideIcon=_ref7.hideIcon,hideIcon=_ref7$hideIcon===void 0?false:_ref7$hideIcon,payload=_ref7.payload,_ref7$verticalAlign=_ref7.verticalAlign,verticalAlign=_ref7$verticalAlign===void 0?"bottom":_ref7$verticalAlign,nameKey=_ref7.nameKey;var _useChart2=useChart(),config=_useChart2.config;if(!(payload!=null&&payload.length)){return null}return/*#__PURE__*/_jsx("div",{className:cn("flex items-center justify-center gap-4",verticalAlign==="top"?"pb-3":"pt-3",className),children:payload.map(function(item,index){var key=""+(nameKey||"value");var itemConfig=getPayloadConfigFromPayload(config,item,key);return/*#__PURE__*/_jsxs("div",{className:cn("[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"),children:[itemConfig!=null&&itemConfig.icon&&!hideIcon?/*#__PURE__*/_jsx(itemConfig.icon,{}):/*#__PURE__*/_jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:item.color}}),itemConfig==null?void 0:itemConfig.label]},item.value+"-"+index)})})}// Helper to extract item config from a payload.
3
3
  function getPayloadConfigFromPayload(config,payload,key){if(typeof payload!=="object"||payload===null){return undefined}var payloadPayload="payload"in payload&&typeof payload.payload==="object"&&payload.payload!==null?payload.payload:undefined;var configLabelKey=key;if(key in payload&&typeof payload[key]==="string"){configLabelKey=payload[key]}else if(payloadPayload&&key in payloadPayload&&typeof payloadPayload[key]==="string"){configLabelKey=payloadPayload[key]}return configLabelKey in config?config[configLabelKey]:config[key]}export{ChartContainer,ChartTooltip,ChartTooltipContent,ChartLegend,ChartLegendContent,ChartStyle};
4
4
  //# sourceMappingURL=chart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chart.js","names":["React","RechartsPrimitive","cn","jsx","_jsx","jsxs","_jsxs","THEMES","light","dark","ChartContext","createContext","useChart","context","useContext","Error","ChartContainer","_ref","id","className","children","config","isEditable","props","_objectWithoutPropertiesLoose","_excluded","uniqueId","Math","random","toString","substring","chartId","Provider","value","_extends","contentEditable","ChartStyle","ResponsiveContainer","_ref2","colorConfig","Object","entries","filter","_ref3","conf","theme","color","length","dangerouslySetInnerHTML","__html","map","_ref4","prefix","_ref5","_itemConfig$theme","key","itemConfig","join","ChartTooltip","Tooltip","ChartTooltipContent","_ref6","active","payload","_ref6$indicator","indicator","_ref6$hideLabel","hideLabel","_ref6$hideIndicator","hideIndicator","label","labelFormatter","labelClassName","formatter","nameKey","labelKey","_useChart","tooltipLabel","useMemo","_config","item","dataKey","name","getPayloadConfigFromPayload","nestLabel","index","indicatorColor","fill","undefined","Fragment","icon","style","toLocaleString","ChartLegend","Legend","ChartLegendContent","_ref7","_ref7$hideIcon","hideIcon","_ref7$verticalAlign","verticalAlign","_useChart2","backgroundColor","payloadPayload","configLabelKey"],"sources":["../../../../src/shadcn/components/ui/chart.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport { cn } from '../../utils';\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: '', dark: '.dark' } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />');\n }\n\n return context;\n}\n\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n isEditable,\n ...props\n}: React.ComponentProps<'div'> & {\n config: ChartConfig;\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\n isEditable?: boolean;\n}) {\n const uniqueId = id || `id-${Math.random().toString(36).substring(2, 9)}`;\n const chartId = `chart-${uniqueId}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n \"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className,\n )}\n contentEditable={isEditable}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n}\n\nfunction ChartStyle({ id, config }: { id: string; config: ChartConfig }) {\n const colorConfig = Object.entries(config).filter(([, conf]) => conf.theme || conf.color);\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || itemConfig.color;\n\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join('\\n')}\n}\n`,\n )\n .join('\\n'),\n }}\n />\n );\n}\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = 'dot',\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<'div'> & {\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: 'line' | 'dot' | 'dashed';\n nameKey?: string;\n labelKey?: string;\n }) {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === 'string'\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn('font-medium', labelClassName)}>{value}</div>;\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== 'dot';\n\n return (\n <div\n className={cn(\n 'border-border/50 bg-white grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl',\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={`${item.dataKey}-${index}`}\n className={cn(\n '[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5',\n indicator === 'dot' && 'items-center',\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <React.Fragment>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n 'shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)',\n {\n 'h-2.5 w-2.5': indicator === 'dot',\n 'w-1': indicator === 'line',\n 'w-0 border-[1.5px] border-dashed bg-transparent':\n indicator === 'dashed',\n 'my-0.5': nestLabel && indicator === 'dashed',\n },\n )}\n style={\n {\n '--color-bg': indicatorColor,\n '--color-border': indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n 'flex flex-1 justify-between leading-none',\n nestLabel ? 'items-end' : 'items-center',\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"text-foreground font-mono font-medium tabular-nums\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </React.Fragment>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = 'bottom',\n nameKey,\n}: React.ComponentProps<'div'> &\n Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> & {\n hideIcon?: boolean;\n nameKey?: string;\n }) {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n className={cn(\n 'flex items-center justify-center gap-4',\n verticalAlign === 'top' ? 'pb-3' : 'pt-3',\n className,\n )}\n >\n {payload.map((item, index) => {\n const key = `${nameKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={`${item.value}-${index}`}\n className={cn(\n '[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3',\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== 'object' || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n 'payload' in payload && typeof payload.payload === 'object' && payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (key in payload && typeof payload[key as keyof typeof payload] === 'string') {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === 'string'\n ) {\n configLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string;\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config];\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"chart.js","names":["React","RechartsPrimitive","cn","jsx","_jsx","jsxs","_jsxs","THEMES","light","dark","ChartContext","createContext","useChart","context","useContext","Error","ChartContainer","_ref","id","className","children","config","isEditable","props","_objectWithoutPropertiesLoose","_excluded","uniqueId","Math","random","toString","substring","chartId","Provider","value","_extends","contentEditable","ChartStyle","ResponsiveContainer","_ref2","colorConfig","Object","entries","filter","_ref3","conf","theme","color","length","dangerouslySetInnerHTML","__html","map","_ref4","prefix","_ref5","_itemConfig$theme","key","itemConfig","join","ChartTooltip","Tooltip","ChartTooltipContent","_ref6","active","payload","_ref6$indicator","indicator","_ref6$hideLabel","hideLabel","_ref6$hideIndicator","hideIndicator","label","labelFormatter","labelClassName","formatter","nameKey","labelKey","_useChart","tooltipLabel","useMemo","_config","item","dataKey","name","getPayloadConfigFromPayload","nestLabel","index","indicatorColor","fill","undefined","Fragment","icon","style","toLocaleString","ChartLegend","Legend","ChartLegendContent","_ref7","_ref7$hideIcon","hideIcon","_ref7$verticalAlign","verticalAlign","_useChart2","backgroundColor","payloadPayload","configLabelKey"],"sources":["../../../../src/shadcn/components/ui/chart.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport { cn } from '../../utils';\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: '', dark: '.dark' } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />');\n }\n\n return context;\n}\n\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n isEditable,\n ...props\n}: React.ComponentProps<'div'> & {\n config: ChartConfig;\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\n isEditable?: boolean;\n}) {\n const uniqueId = id || `id-${Math.random().toString(36).substring(2, 9)}`;\n const chartId = `chart-${uniqueId}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n \"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className,\n )}\n contentEditable={isEditable}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n}\n\nfunction ChartStyle({ id, config }: { id: string; config: ChartConfig }) {\n const colorConfig = Object.entries(config).filter(([, conf]) => conf.theme || conf.color);\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || itemConfig.color;\n\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join('\\n')}\n}\n`,\n )\n .join('\\n'),\n }}\n />\n );\n}\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = 'dot',\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<'div'> & {\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: 'line' | 'dot' | 'dashed';\n nameKey?: string;\n labelKey?: string;\n }) {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === 'string'\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn('font-medium', labelClassName)}>{value}</div>;\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== 'dot';\n\n return (\n <div\n className={cn(\n 'border-border/50 bg-white grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl',\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={`${item.dataKey}-${index}`}\n className={cn(\n '[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5',\n indicator === 'dot' && 'items-center',\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <React.Fragment>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n 'shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)',\n {\n 'h-2.5 w-2.5': indicator === 'dot',\n 'w-1': indicator === 'line',\n 'w-0 border-[1.5px] border-dashed bg-transparent':\n indicator === 'dashed',\n 'my-0.5': nestLabel && indicator === 'dashed',\n },\n )}\n style={\n {\n '--color-bg': indicatorColor,\n '--color-border': indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n 'flex flex-1 justify-between leading-none',\n nestLabel ? 'items-end' : 'items-center',\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground mr-2\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"text-foreground font-mono font-medium tabular-nums\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </React.Fragment>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = 'bottom',\n nameKey,\n}: React.ComponentProps<'div'> &\n Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> & {\n hideIcon?: boolean;\n nameKey?: string;\n }) {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n className={cn(\n 'flex items-center justify-center gap-4',\n verticalAlign === 'top' ? 'pb-3' : 'pt-3',\n className,\n )}\n >\n {payload.map((item, index) => {\n const key = `${nameKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={`${item.value}-${index}`}\n className={cn(\n '[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3',\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== 'object' || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n 'payload' in payload && typeof payload.payload === 'object' && payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (key in payload && typeof payload[key as keyof typeof payload] === 'string') {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === 'string'\n ) {\n configLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string;\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config];\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n};\n"],"mappings":"sNAAA,MAAO,GAAK,CAAAA,KAAK,KAAM,OAAO,CAC9B,MAAO,GAAK,CAAAC,iBAAiB,KAAM,UAAU,CAE7C,OAASC,EAAE,KAAQ,aAAa,CAEhC;AAAA,OAAAC,GAAA,IAAAC,IAAA,CAAAC,IAAA,IAAAC,KAAA,yBACA,GAAM,CAAAC,MAAM,CAAG,CAAEC,KAAK,CAAE,EAAE,CAAEC,IAAI,CAAE,OAAQ,CAAU,CAgBpD,GAAM,CAAAC,YAAY,cAAGV,KAAK,CAACW,aAAa,CAA2B,IAAI,CAAC,CAExE,QAAS,CAAAC,QAAQA,CAAA,CAAG,CAClB,GAAM,CAAAC,OAAO,CAAGb,KAAK,CAACc,UAAU,CAACJ,YAAY,CAAC,CAE9C,GAAI,CAACG,OAAO,CAAE,CACZ,KAAM,IAAI,CAAAE,KAAK,CAAC,mDAAmD,CACrE,CAEA,MAAO,CAAAF,OACT,CAEA,QAAS,CAAAG,cAAcA,CAAAC,IAAA,CAWpB,IAVD,CAAAC,EAAE,CAAAD,IAAA,CAAFC,EAAE,CACFC,SAAS,CAAAF,IAAA,CAATE,SAAS,CACTC,QAAQ,CAAAH,IAAA,CAARG,QAAQ,CACRC,MAAM,CAAAJ,IAAA,CAANI,MAAM,CACNC,UAAU,CAAAL,IAAA,CAAVK,UAAU,CACPC,KAAK,CAAAC,6BAAA,CAAAP,IAAA,CAAAQ,SAAA,EAMR,GAAM,CAAAC,QAAQ,CAAGR,EAAE,QAAUS,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,SAAS,CAAC,CAAC,CAAE,CAAC,CAAG,CACzE,GAAM,CAAAC,OAAO,UAAYL,QAAU,CAEnC,mBACEtB,IAAA,CAACM,YAAY,CAACsB,QAAQ,EAACC,KAAK,CAAE,CAAEZ,MAAM,CAANA,MAAO,CAAE,CAAAD,QAAA,cACvCd,KAAA,OAAA4B,QAAA,EACE,YAAU,OAAO,CACjB,aAAYH,OAAQ,CACpBZ,SAAS,CAAEjB,EAAE,CACX,6pBAA6pB,CAC7pBiB,SACF,CAAE,CACFgB,eAAe,CAAEb,UAAW,EACxBC,KAAK,EAAAH,QAAA,eAEThB,IAAA,CAACgC,UAAU,EAAClB,EAAE,CAAEa,OAAQ,CAACV,MAAM,CAAEA,MAAO,CAAE,CAAC,cAC3CjB,IAAA,CAACH,iBAAiB,CAACoC,mBAAmB,EAAAjB,QAAA,CAAEA,QAAQ,CAAwC,CAAC,GACtF,CAAC,CACe,CAE3B,CAEA,QAAS,CAAAgB,UAAUA,CAAAE,KAAA,CAAsD,IAAnD,CAAApB,EAAE,CAAAoB,KAAA,CAAFpB,EAAE,CAAEG,MAAM,CAAAiB,KAAA,CAANjB,MAAM,CAC9B,GAAM,CAAAkB,WAAW,CAAGC,MAAM,CAACC,OAAO,CAACpB,MAAM,CAAC,CAACqB,MAAM,CAAC,SAAAC,KAAA,KAAI,CAAAC,IAAI,CAAAD,KAAA,UAAM,CAAAC,IAAI,CAACC,KAAK,EAAID,IAAI,CAACE,KAAK,EAAC,CAEzF,GAAI,CAACP,WAAW,CAACQ,MAAM,CAAE,CACvB,MAAO,KACT,CAEA,mBACE3C,IAAA,UACE4C,uBAAuB,CAAE,CACvBC,MAAM,CAAET,MAAM,CAACC,OAAO,CAAClC,MAAM,CAAC,CAC3B2C,GAAG,CACF,SAAAC,KAAA,KAAE,CAAAN,KAAK,CAAAM,KAAA,IAAEC,MAAM,CAAAD,KAAA,eACzBC,MAAM,iBAAgBlC,EAAE,SACxBqB,WAAW,CACVW,GAAG,CAAC,SAAAG,KAAA,CAAuB,KAAAC,iBAAA,IAArB,CAAAC,GAAG,CAAAF,KAAA,IAAEG,UAAU,CAAAH,KAAA,IACpB,GAAM,CAAAP,KAAK,CAAG,EAAAQ,iBAAA,CAAAE,UAAU,CAACX,KAAK,eAAhBS,iBAAA,CAAmBT,KAAK,CAAkC,GAAIW,UAAU,CAACV,KAAK,CAE5F,MAAO,CAAAA,KAAK,cAAgBS,GAAG,MAAKT,KAAK,KAAM,IACjD,CAAC,CAAC,CACDW,IAAI,CAAC,IAAI,CAAC,SAGH,CAAC,CACAA,IAAI,CAAC,IAAI,CACd,CAAE,CACH,CAEL,CAEA,GAAM,CAAAC,YAAY,CAAGzD,iBAAiB,CAAC0D,OAAO,CAE9C,QAAS,CAAAC,mBAAmBA,CAAAC,KAAA,CAqBvB,IApBH,CAAAC,MAAM,CAAAD,KAAA,CAANC,MAAM,CACNC,OAAO,CAAAF,KAAA,CAAPE,OAAO,CACP5C,SAAS,CAAA0C,KAAA,CAAT1C,SAAS,CAAA6C,eAAA,CAAAH,KAAA,CACTI,SAAS,CAATA,SAAS,CAAAD,eAAA,UAAG,KAAK,CAAAA,eAAA,CAAAE,eAAA,CAAAL,KAAA,CACjBM,SAAS,CAATA,SAAS,CAAAD,eAAA,UAAG,KAAK,CAAAA,eAAA,CAAAE,mBAAA,CAAAP,KAAA,CACjBQ,aAAa,CAAbA,aAAa,CAAAD,mBAAA,UAAG,KAAK,CAAAA,mBAAA,CACrBE,KAAK,CAAAT,KAAA,CAALS,KAAK,CACLC,cAAc,CAAAV,KAAA,CAAdU,cAAc,CACdC,cAAc,CAAAX,KAAA,CAAdW,cAAc,CACdC,SAAS,CAAAZ,KAAA,CAATY,SAAS,CACT3B,KAAK,CAAAe,KAAA,CAALf,KAAK,CACL4B,OAAO,CAAAb,KAAA,CAAPa,OAAO,CACPC,QAAQ,CAAAd,KAAA,CAARc,QAAQ,CASR,IAAAC,SAAA,CAAmBhE,QAAQ,CAAC,CAAC,CAArBS,MAAM,CAAAuD,SAAA,CAANvD,MAAM,CAEd,GAAM,CAAAwD,YAAY,CAAG7E,KAAK,CAAC8E,OAAO,CAAC,UAAM,KAAAC,OAAA,CACvC,GAAIZ,SAAS,EAAI,EAACJ,OAAO,QAAPA,OAAO,CAAEhB,MAAM,EAAE,CACjC,MAAO,KACT,CAEA,GAAO,CAAAiC,IAAI,CAAIjB,OAAO,IACtB,GAAM,CAAAR,GAAG,KAAMoB,QAAQ,GAAIK,IAAI,cAAJA,IAAI,CAAEC,OAAO,IAAID,IAAI,cAAJA,IAAI,CAAEE,IAAI,GAAI,OAAO,CAAE,CACnE,GAAM,CAAA1B,UAAU,CAAG2B,2BAA2B,CAAC9D,MAAM,CAAE2D,IAAI,CAAEzB,GAAG,CAAC,CACjE,GAAM,CAAAtB,KAAK,CACT,CAAC0C,QAAQ,EAAI,MAAO,CAAAL,KAAK,GAAK,QAAQ,CAClC,EAAAS,OAAA,CAAA1D,MAAM,CAACiD,KAAK,CAAwB,eAApCS,OAAA,CAAsCT,KAAK,GAAIA,KAAK,CACpDd,UAAU,cAAVA,UAAU,CAAEc,KAAK,CAEvB,GAAIC,cAAc,CAAE,CAClB,mBACEnE,IAAA,QAAKe,SAAS,CAAEjB,EAAE,CAAC,aAAa,CAAEsE,cAAc,CAAE,CAAApD,QAAA,CAAEmD,cAAc,CAACtC,KAAK,CAAE8B,OAAO,CAAC,CAAM,CAE5F,CAEA,GAAI,CAAC9B,KAAK,CAAE,CACV,MAAO,KACT,CAEA,mBAAO7B,IAAA,QAAKe,SAAS,CAAEjB,EAAE,CAAC,aAAa,CAAEsE,cAAc,CAAE,CAAApD,QAAA,CAAEa,KAAK,CAAM,CACxE,CAAC,CAAE,CAACqC,KAAK,CAAEC,cAAc,CAAER,OAAO,CAAEI,SAAS,CAAEK,cAAc,CAAEnD,MAAM,CAAEsD,QAAQ,CAAC,CAAC,CAEjF,GAAI,CAACb,MAAM,EAAI,EAACC,OAAO,QAAPA,OAAO,CAAEhB,MAAM,EAAE,CAC/B,MAAO,KACT,CAEA,GAAM,CAAAqC,SAAS,CAAGrB,OAAO,CAAChB,MAAM,GAAK,CAAC,EAAIkB,SAAS,GAAK,KAAK,CAE7D,mBACE3D,KAAA,QACEa,SAAS,CAAEjB,EAAE,CACX,mHAAmH,CACnHiB,SACF,CAAE,CAAAC,QAAA,EAED,CAACgE,SAAS,CAAGP,YAAY,CAAG,IAAI,cACjCzE,IAAA,QAAKe,SAAS,CAAC,cAAc,CAAAC,QAAA,CAC1B2C,OAAO,CAACb,GAAG,CAAC,SAAC8B,IAAI,CAAEK,KAAK,CAAK,CAC5B,GAAM,CAAA9B,GAAG,KAAMmB,OAAO,EAAIM,IAAI,CAACE,IAAI,EAAIF,IAAI,CAACC,OAAO,EAAI,OAAO,CAAE,CAChE,GAAM,CAAAzB,UAAU,CAAG2B,2BAA2B,CAAC9D,MAAM,CAAE2D,IAAI,CAAEzB,GAAG,CAAC,CACjE,GAAM,CAAA+B,cAAc,CAAGxC,KAAK,EAAIkC,IAAI,CAACjB,OAAO,CAACwB,IAAI,EAAIP,IAAI,CAAClC,KAAK,CAE/D,mBACE1C,IAAA,QAEEe,SAAS,CAAEjB,EAAE,CACX,qGAAqG,CACrG+D,SAAS,GAAK,KAAK,EAAI,cACzB,CAAE,CAAA7C,QAAA,CAEDqD,SAAS,EAAI,CAAAO,IAAI,cAAJA,IAAI,CAAE/C,KAAK,IAAKuD,SAAS,EAAIR,IAAI,CAACE,IAAI,CAClDT,SAAS,CAACO,IAAI,CAAC/C,KAAK,CAAE+C,IAAI,CAACE,IAAI,CAAEF,IAAI,CAAEK,KAAK,CAAEL,IAAI,CAACjB,OAAO,CAAC,cAE3DzD,KAAA,CAACN,KAAK,CAACyF,QAAQ,EAAArE,QAAA,EACZoC,UAAU,QAAVA,UAAU,CAAEkC,IAAI,cACftF,IAAA,CAACoD,UAAU,CAACkC,IAAI,GAAE,CAAC,CAEnB,CAACrB,aAAa,eACZjE,IAAA,QACEe,SAAS,CAAEjB,EAAE,CACX,gEAAgE,CAChE,CACE,aAAa,CAAE+D,SAAS,GAAK,KAAK,CAClC,KAAK,CAAEA,SAAS,GAAK,MAAM,CAC3B,iDAAiD,CAC/CA,SAAS,GAAK,QAAQ,CACxB,QAAQ,CAAEmB,SAAS,EAAInB,SAAS,GAAK,QACvC,CACF,CAAE,CACF0B,KAAK,CACH,CACE,YAAY,CAAEL,cAAc,CAC5B,gBAAgB,CAAEA,cACpB,CACD,CACF,CAEJ,cACDhF,KAAA,QACEa,SAAS,CAAEjB,EAAE,CACX,0CAA0C,CAC1CkF,SAAS,CAAG,WAAW,CAAG,cAC5B,CAAE,CAAAhE,QAAA,eAEFd,KAAA,QAAKa,SAAS,CAAC,cAAc,CAAAC,QAAA,EAC1BgE,SAAS,CAAGP,YAAY,CAAG,IAAI,cAChCzE,IAAA,SAAMe,SAAS,CAAC,4BAA4B,CAAAC,QAAA,CACzC,CAAAoC,UAAU,cAAVA,UAAU,CAAEc,KAAK,GAAIU,IAAI,CAACE,IAAI,CAC3B,CAAC,EACJ,CAAC,CACLF,IAAI,CAAC/C,KAAK,eACT7B,IAAA,SAAMe,SAAS,CAAC,oDAAoD,CAAAC,QAAA,CACjE4D,IAAI,CAAC/C,KAAK,CAAC2D,cAAc,CAAC,CAAC,CACxB,CACP,EACE,CAAC,EACQ,CACjB,EArDOZ,IAAI,CAACC,OAAO,KAAII,KAsDrB,CAET,CAAC,CAAC,CACC,CAAC,EACH,CAET,CAEA,GAAM,CAAAQ,WAAW,CAAG5F,iBAAiB,CAAC6F,MAAM,CAE5C,QAAS,CAAAC,kBAAkBA,CAAAC,KAAA,CAUtB,IATH,CAAA7E,SAAS,CAAA6E,KAAA,CAAT7E,SAAS,CAAA8E,cAAA,CAAAD,KAAA,CACTE,QAAQ,CAARA,QAAQ,CAAAD,cAAA,UAAG,KAAK,CAAAA,cAAA,CAChBlC,OAAO,CAAAiC,KAAA,CAAPjC,OAAO,CAAAoC,mBAAA,CAAAH,KAAA,CACPI,aAAa,CAAbA,aAAa,CAAAD,mBAAA,UAAG,QAAQ,CAAAA,mBAAA,CACxBzB,OAAO,CAAAsB,KAAA,CAAPtB,OAAO,CAMP,IAAA2B,UAAA,CAAmBzF,QAAQ,CAAC,CAAC,CAArBS,MAAM,CAAAgF,UAAA,CAANhF,MAAM,CAEd,GAAI,EAAC0C,OAAO,QAAPA,OAAO,CAAEhB,MAAM,EAAE,CACpB,MAAO,KACT,CAEA,mBACE3C,IAAA,QACEe,SAAS,CAAEjB,EAAE,CACX,wCAAwC,CACxCkG,aAAa,GAAK,KAAK,CAAG,MAAM,CAAG,MAAM,CACzCjF,SACF,CAAE,CAAAC,QAAA,CAED2C,OAAO,CAACb,GAAG,CAAC,SAAC8B,IAAI,CAAEK,KAAK,CAAK,CAC5B,GAAM,CAAA9B,GAAG,KAAMmB,OAAO,EAAI,OAAO,CAAE,CACnC,GAAM,CAAAlB,UAAU,CAAG2B,2BAA2B,CAAC9D,MAAM,CAAE2D,IAAI,CAAEzB,GAAG,CAAC,CAEjE,mBACEjD,KAAA,QAEEa,SAAS,CAAEjB,EAAE,CACX,iFACF,CAAE,CAAAkB,QAAA,EAEDoC,UAAU,QAAVA,UAAU,CAAEkC,IAAI,EAAI,CAACQ,QAAQ,cAC5B9F,IAAA,CAACoD,UAAU,CAACkC,IAAI,GAAE,CAAC,cAEnBtF,IAAA,QACEe,SAAS,CAAC,gCAAgC,CAC1CwE,KAAK,CAAE,CACLW,eAAe,CAAEtB,IAAI,CAAClC,KACxB,CAAE,CACH,CACF,CACAU,UAAU,cAAVA,UAAU,CAAEc,KAAK,GAfVU,IAAI,CAAC/C,KAAK,KAAIoD,KAgBnB,CAET,CAAC,CAAC,CACC,CAET,CAEA;AACA,QAAS,CAAAF,2BAA2BA,CAAC9D,MAAmB,CAAE0C,OAAgB,CAAER,GAAW,CAAE,CACvF,GAAI,MAAO,CAAAQ,OAAO,GAAK,QAAQ,EAAIA,OAAO,GAAK,IAAI,CAAE,CACnD,MAAO,CAAAyB,SACT,CAEA,GAAM,CAAAe,cAAc,CAClB,SAAS,EAAI,CAAAxC,OAAO,EAAI,MAAO,CAAAA,OAAO,CAACA,OAAO,GAAK,QAAQ,EAAIA,OAAO,CAACA,OAAO,GAAK,IAAI,CACnFA,OAAO,CAACA,OAAO,CACfyB,SAAS,CAEf,GAAI,CAAAgB,cAAsB,CAAGjD,GAAG,CAEhC,GAAIA,GAAG,GAAI,CAAAQ,OAAO,EAAI,MAAO,CAAAA,OAAO,CAACR,GAAG,CAAyB,GAAK,QAAQ,CAAE,CAC9EiD,cAAc,CAAGzC,OAAO,CAACR,GAAG,CAC9B,CAAC,IAAM,IACLgD,cAAc,EACdhD,GAAG,GAAI,CAAAgD,cAAc,EACrB,MAAO,CAAAA,cAAc,CAAChD,GAAG,CAAgC,GAAK,QAAQ,CACtE,CACAiD,cAAc,CAAGD,cAAc,CAAChD,GAAG,CACrC,CAEA,MAAO,CAAAiD,cAAc,GAAI,CAAAnF,MAAM,CAAGA,MAAM,CAACmF,cAAc,CAAC,CAAGnF,MAAM,CAACkC,GAAG,CACvE,CAEA,OACEvC,cAAc,CACd0C,YAAY,CACZE,mBAAmB,CACnBiC,WAAW,CACXE,kBAAkB,CAClB3D,UAAU","ignoreList":[]}