@peak-ai/canvas 1.3.6-rc.13 → 1.3.6-rc.18
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
|
@@ -1,5 +1,5 @@
|
|
|
1
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"]];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
2
|
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];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 _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;if(chartType==="bar"){var totalDataPoints=chartData.length*config.dataKeys.length;config.chartUi={};if(totalDataPoints>15){width=totalDataPoints*15+config.dataKeys.length*3*chartData.length+chartData.length*10;config.chartUi={barSize:15,barGap:3,barCategoryGap:0.5,width:width}}}var chartUi=attributes.interactionApiInProgress?/*#__PURE__*/_jsx(ChartLoader,{}):/*#__PURE__*/_jsx(React.Fragment,{children:chartType==="bar"&&config.chartUi?/*#__PURE__*/_jsx(ResponsiveContainer,{width:"95%",height:250,children:/*#__PURE__*/_jsxs(ScrollArea,{children:[/*#__PURE__*/_jsx("div",{className:width?"min-w-["+width+"px] w-full":"w-full",children:/*#__PURE__*/_jsx(ChartContainer,_extends({},rest,{config:config,className:mergedClasses,children:renderChartComponent(chartType,chartData,config)}))}),/*#__PURE__*/_jsx(ScrollBar,{orientation:"horizontal"})]})}):/*#__PURE__*/_jsx(ResponsiveContainer,{width:"95%",height:250,children:/*#__PURE__*/_jsx(ChartContainer,_extends({},rest,{config:config,className:mergedClasses,children:renderChartComponent(chartType,chartData,config)}))})});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,{"data-slot":"bodyContent",contentEditable:false,className:"px-6",children:chartUi})]})}// Creating this separate component to manage loading state easily!
|
|
3
|
-
function TableButton(props){var _useState7=useState(false),loading=_useState7[0],setLoading=_useState7[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 _useState8=useState(_extends({},props)),allData=_useState8[0],setAllData=_useState8[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 _useState9=useState({interactionApiInProgress:false}),attributes=_useState9[0],setAttributes=_useState9[1];var _useState10=useState(null),activeSortColumn=_useState10[0],setActiveSortColumn=_useState10[1];var _useState11=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=_useState11[0],setPageNumber=_useState11[1];var _useState12=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=_useState12[0],setPageSize=_useState12[1];var totalCount=pagination==null?void 0:pagination.totalCount;var _useState13=useState(Math.ceil(totalCount/pageSize)||1),totalPages=_useState13[0],setTotalPages=_useState13[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var 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 id;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(!(direction===null)){_context2.next=3;break}setActiveSortColumn(null);return _context2.abrupt("return");case 3:setActiveSortColumn(column);id=gjsModel.get("id");_context2.next=7;return performInteraction({id:id,interactionType:"tableSort",payload:{sortColumn:column,sortDirection:direction,tableId:id},affectedComponents:getAffectedComponentsWithLoader([id],true)});case 7: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 headers=Object.keys(parsedData[0]||{}).map(function(header){return headerMapper[header]||header});var originalKeys=Object.keys(parsedData[0]||{});if(actions.length>0){headers.push("");originalKeys.push("")}var rows=parsedData.map(function(datum){return Object.values(datum)});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:sortConfig[originalKey]||"asc",isActive:activeSortColumn===originalKey,onSort:function onSort(direction){return handleSort(originalKey,direction)},sortable:!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;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);_context4.prev=7;_context4.next=10;return performInteraction({id:id,interactionType:"pagination",payload:{pageNumber:newPage,pageSize:newSize},affectedComponents:getAffectedComponentsWithLoader([id],true)});case 10:_context4.next=16;break;case 12:_context4.prev=12;_context4.t0=_context4["catch"](7);setPageNumber(prevPage);setPageSize(prevSize);case 16:case"end":return _context4.stop()}},_callee4,null,[[7,12]])}));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&&/*#__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 _useState14=useState(_extends({},props)),allData=_useState14[0],setAllData=_useState14[1];var _useState15=useState({interactionApiInProgress:false}),setAttributes=_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")))})},[]);var _useState16=useState(false),isEditing=_useState16[0],setIsEditing=_useState16[1];var editRef=useRef(null);var startEditing=function startEditing(){setIsEditing(true);setTimeout(function(){setupEditor()},0)};var setupEditor=function setupEditor(){if(!editRef.current){return}var editor=editRef.current;editor.innerHTML="";editor.textContent=allData.summaryText;editor.focus()};// Save changes and exit editing mode
|
|
4
|
-
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
|
|
3
|
+
function TableButton(props){var _useState7=useState(false),loading=_useState7[0],setLoading=_useState7[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 _useState8=useState(_extends({},props)),allData=_useState8[0],setAllData=_useState8[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 _useState9=useState({interactionApiInProgress:false}),attributes=_useState9[0],setAttributes=_useState9[1];var _useState10=useState(null),activeSortColumn=_useState10[0],setActiveSortColumn=_useState10[1];var _useState11=useState({}),sortDirections=_useState11[0],setSortDirections=_useState11[1];var _useState12=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=_useState12[0],setPageNumber=_useState12[1];var _useState13=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=_useState13[0],setPageSize=_useState13[1];var totalCount=pagination==null?void 0:pagination.totalCount;var _useState14=useState(Math.ceil(totalCount/pageSize)||1),totalPages=_useState14[0],setTotalPages=_useState14[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);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 id;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(!(direction===null)){_context2.next=4;break}setActiveSortColumn(null);setSortDirections(function(prev){var _extends2;return _extends({},prev,(_extends2={},_extends2[column]=null,_extends2))});return _context2.abrupt("return");case 4:setActiveSortColumn(column);setSortDirections(function(prev){var _extends3;return _extends({},prev,(_extends3={},_extends3[column]=direction,_extends3))});id=gjsModel.get("id");_context2.next=9;return performInteraction({id:id,interactionType:"tableSort",payload:{sortColumn:column,sortDirection:direction,tableId:id},affectedComponents:getAffectedComponentsWithLoader([id],true)});case 9: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 headers=Object.keys(parsedData[0]||{}).map(function(header){return headerMapper[header]||header});var originalKeys=Object.keys(parsedData[0]||{});if(actions.length>0){headers.push("");originalKeys.push("")}var rows=parsedData.map(function(datum){return Object.values(datum)});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:!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;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);_context4.prev=7;_context4.next=10;return performInteraction({id:id,interactionType:"pagination",payload:{pageNumber:newPage,pageSize:newSize},affectedComponents:getAffectedComponentsWithLoader([id],true)});case 10:_context4.next=16;break;case 12:_context4.prev=12;_context4.t0=_context4["catch"](7);setPageNumber(prevPage);setPageSize(prevSize);case 16:case"end":return _context4.stop()}},_callee4,null,[[7,12]])}));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&&/*#__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 _useState15=useState(_extends({},props)),allData=_useState15[0],setAllData=_useState15[1];var _useState16=useState({interactionApiInProgress:false}),setAttributes=_useState16[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);var _useState17=useState(false),isEditing=_useState17[0],setIsEditing=_useState17[1];var editRef=useRef(null);var startEditing=function startEditing(){setIsEditing(true);setTimeout(function(){setupEditor()},0)};var setupEditor=function setupEditor(){if(!editRef.current){return}var editor=editRef.current;editor.innerHTML="";editor.textContent=allData.summaryText;editor.focus()};// Save changes and exit editing mode
|
|
4
|
+
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 _useState18=useState(_extends({},props)),allData=_useState18[0],setAllData=_useState18[1];var _useState19=useState({interactionApiInProgress:false}),attributes=_useState19[0],setAttributes=_useState19[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}}
|
|
5
5
|
//# 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","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","_allData$config","_allData$chartType","_allData$chartData","chartData","_allData$title","title","_allData$subTitle","subTitle","mergedClasses","width","totalDataPoints","barSize","barGap","barCategoryGap","height","orientation","TableButton","_useState7","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","_useState8","_allData$data","_allData$headerMapper","headerMapper","_allData$isEditable","_allData$title2","_allData$subTitle2","_allData$actions","actions","_allData$sortConfig","sortConfig","pagination","_useState9","_useState10","activeSortColumn","setActiveSortColumn","_useState11","Number","values","pageNumber","initialPage","setPageNumber","_useState12","pageSize","initialPageSize","setPageSize","totalCount","_useState13","ceil","totalPages","setTotalPages","parsedData","datum","newData","id","handleSort","_ref5","_callee2","column","direction","_callee2$","_context2","abrupt","interactionType","payload","sortColumn","sortDirection","tableId","affectedComponents","_x","_x2","takeRowAction","_x3","_x4","_takeRowAction","_callee3","rowIndex","actionId","_callee3$","_context3","row","headers","Object","keys","header","originalKeys","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","_callee4$","_context4","t0","tableData","htmlFor","onChange","e","target","disabled","min","renderTab","tabsWidth","tabs","defaultValue","tab","renderMarkdown","_excluded5","_useState14","_useState15","_useState16","isEditing","setIsEditing","editRef","startEditing","setTimeout","setupEditor","current","editor","innerHTML","textContent","summaryText","focus","saveChanges","innerText","markdownStyles","ul","h1","h2","h3","h4","h5","h6","options","overrides","ref","onBlur","suppressContentEditableWarning","whiteSpace","wordWrap","renderButton","_props$isEditable3","_props$performInterac2","_useState17","_useState18","_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\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 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 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\n if (chartType === 'bar') {\n const totalDataPoints = chartData.length * config.dataKeys.length;\n config.chartUi = {};\n\n if (totalDataPoints > 15) {\n width =\n totalDataPoints * 15 +\n config.dataKeys.length * 3 * chartData.length +\n chartData.length * 10;\n config.chartUi = {\n barSize: 15,\n barGap: 3,\n barCategoryGap: 0.5,\n width,\n };\n }\n }\n\n const chartUi = attributes.interactionApiInProgress ? (\n <ChartLoader />\n ) : (\n <React.Fragment>\n {chartType === 'bar' && config.chartUi ? (\n <ResponsiveContainer width=\"95%\" height={250}>\n <ScrollArea>\n <div className={width ? `min-w-[${width}px] w-full` : 'w-full'}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\n </ChartContainer>\n </div>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n </ResponsiveContainer>\n ) : (\n <ResponsiveContainer width=\"95%\" height={250}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\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 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\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 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\n return;\n }\n\n setActiveSortColumn(column);\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 headers = Object.keys(parsedData[0] || {}).map((header) => headerMapper[header] || header);\n const originalKeys = Object.keys(parsedData[0] || {});\n\n if (actions.length > 0) {\n headers.push('');\n originalKeys.push('');\n }\n\n const rows = parsedData.map((datum: any) => Object.values(datum));\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={sortConfig[originalKey] || 'asc'}\n isActive={activeSortColumn === originalKey}\n onSort={(direction) => handleSort(originalKey, direction)}\n sortable={!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 try {\n await performInteraction({\n id,\n interactionType: 'pagination',\n payload: {\n pageNumber: newPage,\n pageSize: newSize,\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 && (\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 // Save changes and exit editing mode\n const saveChanges = () => {\n if (!editRef.current) {\n return;\n }\n\n const content = editRef.current.innerText || '';\n setAllData((prev: Record<string, any>) => ({\n ...prev,\n summaryText: content,\n }));\n setIsEditing(false);\n editRef.current.innerHTML = '';\n };\n\n const markdownStyles = {\n ul: { props: { className: 'list-disc' } },\n h1: { props: { className: 'text-4xl font-bold leading-[4rem]' } },\n h2: { props: { className: 'text-3xl font-bold leading-[3rem]' } },\n h3: { props: { className: 'text-2xl font-bold leading-[2rem]' } },\n h4: { props: { className: 'text-xl font-bold leading-[2.5rem]' } },\n h5: { props: { className: 'text-lg font-bold leading-[2.5rem]' } },\n h6: { props: { className: 'text-base font-bold leading-[2rem]' } },\n };\n\n if (!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","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","_allData$config","_allData$chartType","_allData$chartData","chartData","_allData$title","title","_allData$subTitle","subTitle","mergedClasses","width","totalDataPoints","barSize","barGap","barCategoryGap","height","orientation","TableButton","_useState7","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","_useState8","_allData$data","_allData$headerMapper","headerMapper","_allData$isEditable","_allData$title2","_allData$subTitle2","_allData$actions","actions","_allData$sortConfig","sortConfig","pagination","_useState9","_useState10","activeSortColumn","setActiveSortColumn","_useState11","sortDirections","setSortDirections","_useState12","Number","values","pageNumber","initialPage","setPageNumber","_useState13","pageSize","initialPageSize","setPageSize","totalCount","_useState14","ceil","totalPages","setTotalPages","Object","keys","firstSortedColumn","parsedData","datum","newData","id","handleSort","_ref5","_callee2","column","direction","_callee2$","_context2","_extends2","abrupt","_extends3","interactionType","payload","sortColumn","sortDirection","tableId","affectedComponents","_x","_x2","takeRowAction","_x3","_x4","_takeRowAction","_callee3","rowIndex","actionId","_callee3$","_context3","row","headers","header","originalKeys","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","_callee4$","_context4","t0","tableData","htmlFor","onChange","e","target","disabled","min","renderTab","tabsWidth","tabs","defaultValue","tab","renderMarkdown","_excluded5","_useState15","_useState16","_useState17","isEditing","setIsEditing","editRef","startEditing","setTimeout","setupEditor","current","editor","innerHTML","textContent","summaryText","focus","saveChanges","innerText","markdownStyles","ul","h1","h2","h3","h4","h5","h6","options","overrides","ref","onBlur","suppressContentEditableWarning","whiteSpace","wordWrap","renderButton","_props$isEditable3","_props$performInterac2","_useState18","_useState19","_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\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 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 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\n if (chartType === 'bar') {\n const totalDataPoints = chartData.length * config.dataKeys.length;\n config.chartUi = {};\n\n if (totalDataPoints > 15) {\n width =\n totalDataPoints * 15 +\n config.dataKeys.length * 3 * chartData.length +\n chartData.length * 10;\n config.chartUi = {\n barSize: 15,\n barGap: 3,\n barCategoryGap: 0.5,\n width,\n };\n }\n }\n\n const chartUi = attributes.interactionApiInProgress ? (\n <ChartLoader />\n ) : (\n <React.Fragment>\n {chartType === 'bar' && config.chartUi ? (\n <ResponsiveContainer width=\"95%\" height={250}>\n <ScrollArea>\n <div className={width ? `min-w-[${width}px] w-full` : 'w-full'}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\n </ChartContainer>\n </div>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n </ResponsiveContainer>\n ) : (\n <ResponsiveContainer width=\"95%\" height={250}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\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 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 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 return;\n }\n\n setActiveSortColumn(column);\n setSortDirections(prev => ({ ...prev, [column]: direction }));\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 headers = Object.keys(parsedData[0] || {}).map((header) => headerMapper[header] || header);\n const originalKeys = Object.keys(parsedData[0] || {});\n\n if (actions.length > 0) {\n headers.push('');\n originalKeys.push('');\n }\n\n const rows = parsedData.map((datum: any) => Object.values(datum));\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={!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 try {\n await performInteraction({\n id,\n interactionType: 'pagination',\n payload: {\n pageNumber: newPage,\n pageSize: newSize,\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 && (\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 // Save changes and exit editing mode\n const saveChanges = () => {\n if (!editRef.current) {\n return;\n }\n\n const content = editRef.current.innerText || '';\n setAllData((prev: Record<string, any>) => ({\n ...prev,\n summaryText: content,\n }));\n setIsEditing(false);\n editRef.current.innerHTML = '';\n };\n\n const markdownStyles = {\n ul: { props: { className: 'list-disc' } },\n h1: { props: { className: 'text-4xl font-bold leading-[4rem]' } },\n h2: { props: { className: 'text-3xl font-bold leading-[3rem]' } },\n h3: { props: { className: 'text-2xl font-bold leading-[2rem]' } },\n h4: { props: { className: 'text-xl font-bold leading-[2.5rem]' } },\n h5: { props: { className: 'text-lg font-bold leading-[2.5rem]' } },\n h6: { props: { className: 'text-base font-bold leading-[2rem]' } },\n };\n\n if (!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,2 @@
|
|
|
1
|
-
import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["className"],_excluded2=["className"],_excluded3=["className"],_excluded4=["className"],_excluded5=["className"],_excluded6=["className"],_excluded7=["className","children","sortDirection","onSort","sortable","isActive"],_excluded8=["className"],_excluded9=["className"];import*as React from"react";import{ArrowUp,ArrowDown}from"lucide-react";import{cn}from"../../utils";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";function Table(_ref){var className=_ref.className,props=_objectWithoutPropertiesLoose(_ref,_excluded);return/*#__PURE__*/_jsx("table",_extends({"data-slot":"table",className:cn("w-[640px] caption-bottom text-sm",className)},props))}function TableHeader(_ref2){var className=_ref2.className,props=_objectWithoutPropertiesLoose(_ref2,_excluded2);return/*#__PURE__*/_jsx("thead",_extends({"data-slot":"table-header",className:cn("[&_tr]:border-b font-bold bg-slate-100",className)},props))}function TableBody(_ref3){var className=_ref3.className,props=_objectWithoutPropertiesLoose(_ref3,_excluded3);return/*#__PURE__*/_jsx("tbody",_extends({"data-slot":"table-body",className:cn("[&_tr:last-child]:border-0",className)},props))}function TableFooter(_ref4){var className=_ref4.className,props=_objectWithoutPropertiesLoose(_ref4,_excluded4);return/*#__PURE__*/_jsx("tfoot",_extends({"data-slot":"table-footer",className:cn("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",className)},props))}function TableRow(_ref5){var className=_ref5.className,props=_objectWithoutPropertiesLoose(_ref5,_excluded5);return/*#__PURE__*/_jsx("tr",_extends({"data-slot":"table-row",className:cn("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",className)},props))}function TableHead(_ref6){var className=_ref6.className,props=_objectWithoutPropertiesLoose(_ref6,_excluded6);return/*#__PURE__*/_jsx("th",_extends({"data-slot":"table-head",className:cn("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",className)},props))}function TableHeadSortable(_ref7){var className=_ref7.className,children=_ref7.children,_ref7$sortDirection=_ref7.sortDirection,sortDirection=_ref7$sortDirection===void 0?"asc":_ref7$sortDirection,onSort=_ref7.onSort,_ref7$sortable=_ref7.sortable,sortable=_ref7$sortable===void 0?true:_ref7$sortable,_ref7$isActive=_ref7.isActive,isActive=_ref7$isActive===void 0?false:_ref7$isActive,props=_objectWithoutPropertiesLoose(_ref7,_excluded7);var _React$useState=React.useState(
|
|
2
|
-
React.useEffect(function(){setCurrentDirection(sortDirection||"asc")},[sortDirection]);function getSortIcon(){if(!sortable){return null}// Show arrow only when active (clicked) or when hovering
|
|
3
|
-
if(!isActive&&!isHovered){return null}if(currentDirection==="asc"){return/*#__PURE__*/_jsx(ArrowDown,{className:"h-4 w-4"})}return/*#__PURE__*/_jsx(ArrowUp,{className:"h-4 w-4"})}function handleClick(){if(!sortable){return}var newDirection=currentDirection==="asc"?"desc":"asc";setCurrentDirection(newDirection);if(onSort){onSort(newDirection)}}return/*#__PURE__*/_jsx("th",_extends({"data-slot":"table-head",className:cn("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",sortable&&"cursor-pointer hover:bg-muted/50 select-none",className),onClick:handleClick,onMouseEnter:function onMouseEnter(){return setIsHovered(true)},onMouseLeave:function onMouseLeave(){return setIsHovered(false)}},props,{children:/*#__PURE__*/_jsxs("div",{className:"flex items-center",children:[/*#__PURE__*/_jsx("span",{children:children}),sortable&&/*#__PURE__*/_jsx("div",{className:"ml-1 flex-shrink-0",children:getSortIcon()})]})}))}function TableCell(_ref8){var className=_ref8.className,props=_objectWithoutPropertiesLoose(_ref8,_excluded8);return/*#__PURE__*/_jsx("td",_extends({"data-slot":"table-cell",className:cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",className)},props))}function TableCaption(_ref9){var className=_ref9.className,props=_objectWithoutPropertiesLoose(_ref9,_excluded9);return/*#__PURE__*/_jsx("caption",_extends({"data-slot":"table-caption",className:cn("text-muted-foreground mt-4 text-sm",className)},props))}export{Table,TableHeader,TableBody,TableFooter,TableHead,TableHeadSortable,TableRow,TableCell,TableCaption};
|
|
1
|
+
import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["className"],_excluded2=["className"],_excluded3=["className"],_excluded4=["className"],_excluded5=["className"],_excluded6=["className"],_excluded7=["className","children","sortDirection","onSort","sortable","isActive"],_excluded8=["className"],_excluded9=["className"];import*as React from"react";import{ArrowUp,ArrowDown}from"lucide-react";import{cn}from"../../utils";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";function Table(_ref){var className=_ref.className,props=_objectWithoutPropertiesLoose(_ref,_excluded);return/*#__PURE__*/_jsx("table",_extends({"data-slot":"table",className:cn("w-[640px] caption-bottom text-sm",className)},props))}function TableHeader(_ref2){var className=_ref2.className,props=_objectWithoutPropertiesLoose(_ref2,_excluded2);return/*#__PURE__*/_jsx("thead",_extends({"data-slot":"table-header",className:cn("[&_tr]:border-b font-bold bg-slate-100",className)},props))}function TableBody(_ref3){var className=_ref3.className,props=_objectWithoutPropertiesLoose(_ref3,_excluded3);return/*#__PURE__*/_jsx("tbody",_extends({"data-slot":"table-body",className:cn("[&_tr:last-child]:border-0",className)},props))}function TableFooter(_ref4){var className=_ref4.className,props=_objectWithoutPropertiesLoose(_ref4,_excluded4);return/*#__PURE__*/_jsx("tfoot",_extends({"data-slot":"table-footer",className:cn("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",className)},props))}function TableRow(_ref5){var className=_ref5.className,props=_objectWithoutPropertiesLoose(_ref5,_excluded5);return/*#__PURE__*/_jsx("tr",_extends({"data-slot":"table-row",className:cn("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",className)},props))}function TableHead(_ref6){var className=_ref6.className,props=_objectWithoutPropertiesLoose(_ref6,_excluded6);return/*#__PURE__*/_jsx("th",_extends({"data-slot":"table-head",className:cn("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",className)},props))}function TableHeadSortable(_ref7){var className=_ref7.className,children=_ref7.children,_ref7$sortDirection=_ref7.sortDirection,sortDirection=_ref7$sortDirection===void 0?"asc":_ref7$sortDirection,onSort=_ref7.onSort,_ref7$sortable=_ref7.sortable,sortable=_ref7$sortable===void 0?true:_ref7$sortable,_ref7$isActive=_ref7.isActive,isActive=_ref7$isActive===void 0?false:_ref7$isActive,props=_objectWithoutPropertiesLoose(_ref7,_excluded7);var _React$useState=React.useState(false),isHovered=_React$useState[0],setIsHovered=_React$useState[1];function getSortIcon(){if(!sortable){return null}if(!isActive&&!isHovered){return null}if(sortDirection==="asc"){return/*#__PURE__*/_jsx(ArrowUp,{className:"h-4 w-4"})}if(sortDirection==="desc"){return/*#__PURE__*/_jsx(ArrowDown,{className:"h-4 w-4"})}return/*#__PURE__*/_jsx(ArrowUp,{className:"h-4 w-4"})}function handleClick(){if(!sortable){return}var newDirection="asc";if(sortDirection==="asc"){newDirection="desc"}else if(sortDirection==="desc"){newDirection="asc"}if(onSort){onSort(newDirection)}}return/*#__PURE__*/_jsx("th",_extends({"data-slot":"table-head",className:cn("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",sortable&&"cursor-pointer hover:bg-muted/50 select-none",className),onClick:handleClick,onMouseEnter:function onMouseEnter(){return setIsHovered(true)},onMouseLeave:function onMouseLeave(){return setIsHovered(false)}},props,{children:/*#__PURE__*/_jsxs("div",{className:"flex items-center",children:[/*#__PURE__*/_jsx("span",{children:children}),sortable&&/*#__PURE__*/_jsx("div",{className:"ml-1 flex-shrink-0",children:getSortIcon()})]})}))}function TableCell(_ref8){var className=_ref8.className,props=_objectWithoutPropertiesLoose(_ref8,_excluded8);return/*#__PURE__*/_jsx("td",_extends({"data-slot":"table-cell",className:cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",className)},props))}function TableCaption(_ref9){var className=_ref9.className,props=_objectWithoutPropertiesLoose(_ref9,_excluded9);return/*#__PURE__*/_jsx("caption",_extends({"data-slot":"table-caption",className:cn("text-muted-foreground mt-4 text-sm",className)},props))}export{Table,TableHeader,TableBody,TableFooter,TableHead,TableHeadSortable,TableRow,TableCell,TableCaption};
|
|
4
2
|
//# sourceMappingURL=table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","names":["React","ArrowUp","ArrowDown","cn","jsx","_jsx","jsxs","_jsxs","Table","_ref","className","props","_objectWithoutPropertiesLoose","_excluded","_extends","TableHeader","_ref2","_excluded2","TableBody","_ref3","_excluded3","TableFooter","_ref4","_excluded4","TableRow","_ref5","_excluded5","TableHead","_ref6","_excluded6","TableHeadSortable","_ref7","children","_ref7$sortDirection","sortDirection","onSort","_ref7$sortable","sortable","_ref7$isActive","isActive","_excluded7","_React$useState","useState","
|
|
1
|
+
{"version":3,"file":"table.js","names":["React","ArrowUp","ArrowDown","cn","jsx","_jsx","jsxs","_jsxs","Table","_ref","className","props","_objectWithoutPropertiesLoose","_excluded","_extends","TableHeader","_ref2","_excluded2","TableBody","_ref3","_excluded3","TableFooter","_ref4","_excluded4","TableRow","_ref5","_excluded5","TableHead","_ref6","_excluded6","TableHeadSortable","_ref7","children","_ref7$sortDirection","sortDirection","onSort","_ref7$sortable","sortable","_ref7$isActive","isActive","_excluded7","_React$useState","useState","isHovered","setIsHovered","getSortIcon","handleClick","newDirection","onClick","onMouseEnter","onMouseLeave","TableCell","_ref8","_excluded8","TableCaption","_ref9","_excluded9"],"sources":["../../../../src/shadcn/components/ui/table.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ArrowUp, ArrowDown } from 'lucide-react';\n\nimport { cn } from '../../utils';\n\nfunction Table({ className, ...props }: React.ComponentProps<'table'>) {\n return (\n <table\n data-slot=\"table\"\n className={cn('w-[640px] caption-bottom text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn('[&_tr]:border-b font-bold bg-slate-100', className)}\n {...props}\n />\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn('bg-muted/50 border-t font-medium [&>tr]:last:border-b-0', className)}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<'tr'>) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<'th'>) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n 'text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport type SortDirection = 'asc' | 'desc' | null;\n\ntype TableHeadSortableProps = React.ComponentProps<'th'> & {\n sortDirection?: SortDirection;\n onSort?: (direction: SortDirection) => void;\n sortable?: boolean;\n isActive?: boolean;\n};\n\nfunction TableHeadSortable({ \n className, \n children, \n sortDirection = 'asc', \n onSort, \n sortable = true,\n isActive = false,\n ...props \n}: TableHeadSortableProps) {\n const [isHovered, setIsHovered] = React.useState(false);\n\n function getSortIcon() {\n if (!sortable) {\n return null;\n }\n \n if (!isActive && !isHovered) {\n return null;\n }\n \n if (sortDirection === 'asc') {\n return <ArrowUp className=\"h-4 w-4\" />;\n }\n \n if (sortDirection === 'desc') {\n return <ArrowDown className=\"h-4 w-4\" />;\n }\n \n return <ArrowUp className=\"h-4 w-4\" />;\n }\n\n function handleClick() {\n if (!sortable) {\n return;\n }\n \n let newDirection: SortDirection = 'asc';\n\n if (sortDirection === 'asc') {\n newDirection = 'desc';\n } else if (sortDirection === 'desc') {\n newDirection = 'asc';\n }\n \n if (onSort) {\n onSort(newDirection);\n }\n }\n\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n 'text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n sortable && 'cursor-pointer hover:bg-muted/50 select-none',\n className,\n )}\n onClick={handleClick}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n {...props}\n >\n <div className=\"flex items-center\">\n <span>{children}</span>\n {sortable && (\n <div className=\"ml-1 flex-shrink-0\">\n {getSortIcon()}\n </div>\n )}\n </div>\n </th>\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<'td'>) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n 'p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({ className, ...props }: React.ComponentProps<'caption'>) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn('text-muted-foreground mt-4 text-sm', className)}\n {...props}\n />\n );\n}\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableHeadSortable, TableRow, TableCell, TableCaption };\n"],"mappings":"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","ignoreList":[]}
|