@peak-ai/canvas 1.3.10 → 1.3.11-rc.1

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/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { default as GrapejsCanvas } from './GrapesjsCanvas';
2
2
  export * from './index.styles';
3
3
  export { getUpdatedUiJson } from './helpers/merge-json';
4
+ export { renderTable } from './plugins/helpers/render-components';
package/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{default as GrapejsCanvas}from"./GrapesjsCanvas";export*from"./index.styles";export{getUpdatedUiJson}from"./helpers/merge-json";
1
+ export{default as GrapejsCanvas}from"./GrapesjsCanvas";export*from"./index.styles";export{getUpdatedUiJson}from"./helpers/merge-json";export{renderTable}from"./plugins/helpers/render-components";
2
2
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","GrapejsCanvas","getUpdatedUiJson"],"sources":["../src/index.ts"],"sourcesContent":["export { default as GrapejsCanvas } from './GrapesjsCanvas';\nexport * from './index.styles';\nexport { getUpdatedUiJson } from './helpers/merge-json';\n"],"mappings":"AAAA,OAASA,OAAO,GAAI,CAAAC,aAAa,KAAQ,kBAAkB,CAC3D,WAAc,gBAAgB,CAC9B,OAASC,gBAAgB,KAAQ,sBAAsB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["default","GrapejsCanvas","getUpdatedUiJson","renderTable"],"sources":["../src/index.ts"],"sourcesContent":["export { default as GrapejsCanvas } from './GrapesjsCanvas';\nexport * from './index.styles';\nexport { getUpdatedUiJson } from './helpers/merge-json';\nexport { renderTable } from './plugins/helpers/render-components';\n"],"mappings":"AAAA,OAASA,OAAO,GAAI,CAAAC,aAAa,KAAQ,kBAAkB,CAC3D,WAAc,gBAAgB,CAC9B,OAASC,gBAAgB,KAAQ,sBAAsB,CACvD,OAASC,WAAW,KAAQ,qCAAqC","ignoreList":[]}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@peak-ai/canvas",
3
3
  "author": "squad-builder-experience",
4
4
  "license": "UNLICENSED",
5
- "version": "1.3.10",
5
+ "version": "1.3.11-rc.1",
6
6
  "description": "",
7
7
  "dependencies": {
8
8
  "@peak-ai/ais-components": "6.41.0",
@@ -2,6 +2,7 @@ import { JSX } from 'react';
2
2
  export declare function renderActionCard(props: any): JSX.Element;
3
3
  export declare function renderCard(props: any): JSX.Element;
4
4
  export declare function renderChart(props: any): JSX.Element;
5
+ export declare function TableButton(props: any): import("react/jsx-runtime").JSX.Element;
5
6
  export declare function renderTable(props: any): JSX.Element;
6
7
  export declare function renderTab(props: any): JSX.Element;
7
8
  export declare function renderMarkdown(props: any): JSX.Element;
@@ -1,7 +1,8 @@
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,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
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}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{ScrollArea,ScrollBar}from"../../shadcn/components/ui/scroll-area";import{renderSearch}from"../../shadcn/components/ui/search";import{ChartLoader,CardLoader}from"../../shadcn/components/ui/skeleton";import{Tabs,TabsList,TabsTrigger,TabsContent}from"../../shadcn/components/ui/tabs";import{cn}from"../../shadcn/utils";import{getAffectedComponentsWithLoader}from"../../helpers";import{DataTable}from"../../shadcn/components/ui/data-table";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];var containerRef=useRef(null);var _useState7=useState(0),containerWidth=_useState7[0],setContainerWidth=_useState7[1];useEffect(function(){gjsModel.on("change:componentProps",function(){setAllData(_extends({},gjsModel.get("componentProps")))})},[]);useEffect(function(){gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);useEffect(function(){var updateContainerWidth=function updateContainerWidth(){if(containerRef.current){setContainerWidth(containerRef.current.offsetWidth)}};updateContainerWidth();window.addEventListener("resize",updateContainerWidth);return function(){return window.removeEventListener("resize",updateContainerWidth)}},[]);var _allData$config=allData.config,config=_allData$config===void 0?{}:_allData$config,_allData$chartType=allData.chartType,chartType=_allData$chartType===void 0?"pie":_allData$chartType,_allData$chartData=allData.chartData,chartData=_allData$chartData===void 0?[]:_allData$chartData,className=allData.className,_allData$title=allData.title,title=_allData$title===void 0?"Title":_allData$title,_allData$subTitle=allData.subTitle,subTitle=_allData$subTitle===void 0?"Subtitle":_allData$subTitle;var defaultClasses="aspect-auto h-[250px] w-full";var mergedClasses=className?cn(defaultClasses,className):defaultClasses;if(chartType==="pie"){var colors=getNColors(chartData.length);for(var i=0;i<chartData.length;i++){var data=chartData[i];if(!data.fill){data.fill=colors[i]}}}else if(!config.color){config.color=baseColors[Math.floor(Math.random()*baseColors.length)]}var width=undefined;var totalDataPoints=0;// Helper function to get responsive config
3
3
  var getResponsiveConfig=function getResponsiveConfig(){if(chartType==="bar"&&totalDataPoints>15&&containerWidth>0&&width&&width<=containerWidth){// If chart fits in container, use responsive behavior
4
4
  return _extends({},config,{chartUi:{}})}return config};if(chartType==="bar"){totalDataPoints=chartData.length*config.dataKeys.length;if(totalDataPoints>15){width=totalDataPoints*20+config.dataKeys.length*8*chartData.length+chartData.length*15;config.chartUi={barCategoryGap:"10%",width:width}}else{config.chartUi={}}}var chartUi=attributes.interactionApiInProgress?/*#__PURE__*/_jsx(ChartLoader,{}):/*#__PURE__*/_jsx(React.Fragment,{children:chartType==="bar"&&totalDataPoints>15&&config.chartUi&&width&&(containerWidth===0||width>containerWidth)?/*#__PURE__*/_jsx("div",{className:"w-full",children:/*#__PURE__*/_jsxs(ScrollArea,{className:"w-full",children:[/*#__PURE__*/_jsx("div",{style:{minWidth:width+"px",width:"max-content"},children:/*#__PURE__*/_jsx(ResponsiveContainer,{width:width,height:250,children:/*#__PURE__*/_jsx(ChartContainer,_extends({},rest,{config:config,className:mergedClasses,children:renderChartComponent(chartType,chartData,config)}))})}),/*#__PURE__*/_jsx(ScrollBar,{orientation:"horizontal"})]})}):/*#__PURE__*/_jsx(ResponsiveContainer,{width:"100%",height:250,children:/*#__PURE__*/_jsx(ChartContainer,_extends({},rest,{config:getResponsiveConfig(),className:mergedClasses,children:renderChartComponent(chartType,chartData,getResponsiveConfig())}))})});return/*#__PURE__*/_jsxs(Card,{className:"shadow border mt-2 mb-2",children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"title",contentEditable:isEditable,className:"text-2xl",children:title}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"subTitle",contentEditable:isEditable,className:"text-sm",children:subTitle})]}),/*#__PURE__*/_jsx(CardContent,{ref:containerRef,"data-slot":"bodyContent",contentEditable:false,className:"px-6",children:chartUi})]})}// Creating this separate component to manage loading state easily!
5
- function TableButton(props){var _useState8=useState(false),loading=_useState8[0],setLoading=_useState8[1];function onClick(){return _onClick.apply(this,arguments)}function _onClick(){_onClick=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:setLoading(true);_context.next=3;return props.onClick();case 3:setLoading(false);case 4:case"end":return _context.stop()}},_callee)}));return _onClick.apply(this,arguments)}var defaultClasses="mr-2";var mergedClasses=props.className?cn(defaultClasses,props.className):defaultClasses;return/*#__PURE__*/_jsx(TooltipButton,{className:mergedClasses,isEditable:false,interact:onClick,attributes:{interactionApiInProgress:loading,isDisabled:props.isDisabled},variant:props.variant,size:"sm",text:props.text,tooltipContent:props.tooltipContent})}export function renderTable(props){var _pagination$values$pa,_pagination$values,_pagination$values$pa2,_pagination$values2;var gjsModel=props.gjsModel,_props$performInterac=props.performInteraction,performInteraction=_props$performInterac===void 0?function(){}:_props$performInterac,rest=_objectWithoutPropertiesLoose(props,_excluded4);var _useState9=useState(_extends({},props)),allData=_useState9[0],setAllData=_useState9[1];var _allData$data=allData.data,data=_allData$data===void 0?[]:_allData$data,_allData$headerMapper=allData.headerMapper,headerMapper=_allData$headerMapper===void 0?{}:_allData$headerMapper,className=allData.className,_allData$isEditable=allData.isEditable,isEditable=_allData$isEditable===void 0?false:_allData$isEditable,_allData$title2=allData.title,title=_allData$title2===void 0?"Title":_allData$title2,_allData$subTitle2=allData.subTitle,subTitle=_allData$subTitle2===void 0?"Subtitle":_allData$subTitle2,_allData$actions=allData.actions,actions=_allData$actions===void 0?[]:_allData$actions,pagination=allData.pagination;var _useState10=useState({interactionApiInProgress:false}),attributes=_useState10[0],setAttributes=_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});function takeRowAction(_x,_x2){return _takeRowAction.apply(this,arguments)}function _takeRowAction(){_takeRowAction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(rowIndex,actionId){var id;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:id=gjsModel.get("id");_context2.next=3;return performInteraction({id:actionId,interactionType:"tableButton",payload:{row:data[rowIndex],tableId:id},affectedComponents:[]});case 3:case"end":return _context2.stop()}},_callee2)}));return _takeRowAction.apply(this,arguments)}var headers=Object.keys(parsedData[0]||{}).map(function(header){return headerMapper[header]||header});if(actions.length>0){headers.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){return/*#__PURE__*/_jsx(TableHead,{"data-slot":"table-header-"+idx,contentEditable:isEditable,className:actions.length>0&&idx===headers.length-1?"sticky right-0 bg-slate-100":"",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(_x3,_x4){return _handlePageChange.apply(this,arguments)}function _handlePageChange(){_handlePageChange=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(newPage,newSize){var id,prevPage,prevSize;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.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);_context3.prev=7;_context3.next=10;return performInteraction({id:id,interactionType:"pagination",payload:{pageNumber:newPage,pageSize:newSize},affectedComponents:getAffectedComponentsWithLoader([id],true)});case 10:_context3.next=16;break;case 12:_context3.prev=12;_context3.t0=_context3["catch"](7);setPageNumber(prevPage);setPageSize(prevSize);case 16:case"end":return _context3.stop()}},_callee3,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>=0&&/*#__PURE__*/_jsxs("div",{className:"flex items-center justify-between mt-4 w-full",children:[/*#__PURE__*/_jsxs("div",{className:"flex items-center gap-2",children:[/*#__PURE__*/_jsx("label",{htmlFor:"page-size-select",className:"text-sm",children:"Rows per page:"}),/*#__PURE__*/_jsx("select",{id:"page-size-select",value:pageSize,onChange:function onChange(e){return handlePageChange(1,Number(e.target.value))},className:"border rounded px-2 py-1 text-sm cursor-pointer",disabled:attributes.interactionApiInProgress,children:pageSizeOptions.map(function(size){return/*#__PURE__*/_jsx("option",{value:size,children:size},size)})})]}),/*#__PURE__*/_jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[/*#__PURE__*/_jsxs("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:[(pageNumber-1)*pageSize+1,"\u2013",Math.min(pageNumber*pageSize,totalCount)," of"," ",totalCount]}),/*#__PURE__*/_jsx(Pagination,{children:/*#__PURE__*/_jsx(PaginationContent,{className:"gap-0.2",children:renderPaginationArrows(pageNumber,totalPages,attributes.interactionApiInProgress,handlePageChange)})})]})]})]});return/*#__PURE__*/_jsxs(Card,{className:"shadow border",children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{"data-slot":"title",contentEditable:isEditable,className:"text-2xl",children:title}),/*#__PURE__*/_jsx(CardDescription,{"data-slot":"subTitle",contentEditable:isEditable,className:"text-sm",children:subTitle})]}),/*#__PURE__*/_jsx(CardContent,{"data-slot":"bodyContent",contentEditable:false,children:tableData})]})}export function renderTab(props){var tabsWidth=200;if(props.tabs.length>4){tabsWidth=150}return/*#__PURE__*/_jsxs(Tabs,{defaultValue:props.defaultValue,children:[/*#__PURE__*/_jsx("div",{className:"text-center mb-4",children:/*#__PURE__*/_jsx(TabsList,{className:"bg-gray-300",children:props.tabs.map(function(tab){return/*#__PURE__*/_jsx(TabsTrigger,{value:tab,className:"text-md w-["+tabsWidth+"px]",children:tab},tab)})})}),props.tabs.map(function(tab){return/*#__PURE__*/_jsx(TabsContent,{value:tab,className:"tabs-content"},tab)})]})}export function renderMarkdown(props){var gjsModel=props.gjsModel,rest=_objectWithoutPropertiesLoose(props,_excluded5);var _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
6
- 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 _useState17=useState(_extends({},props)),allData=_useState17[0],setAllData=_useState17[1];var _useState18=useState({interactionApiInProgress:false}),attributes=_useState18[0],setAttributes=_useState18[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
+ export function TableButton(props){var _useState8=useState(false),loading=_useState8[0],setLoading=_useState8[1];function onClick(){return _onClick.apply(this,arguments)}function _onClick(){_onClick=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:setLoading(true);_context.next=3;return props.onClick();case 3:setLoading(false);case 4:case"end":return _context.stop()}},_callee)}));return _onClick.apply(this,arguments)}var defaultClasses="mr-2";var mergedClasses=props.className?cn(defaultClasses,props.className):defaultClasses;return/*#__PURE__*/_jsx(TooltipButton,{className:mergedClasses,isEditable:false,interact:onClick,attributes:{interactionApiInProgress:loading,isDisabled:props.isDisabled},variant:props.variant,size:"sm",text:props.text,tooltipContent:props.tooltipContent})}export function renderTable(props){var gjsModel=props.gjsModel,_props$performInterac=props.performInteraction,performInteraction=_props$performInterac===void 0?function(){}:_props$performInterac,rest=_objectWithoutPropertiesLoose(props,_excluded4);var _useState9=useState(_extends({},props)),state=_useState9[0],setState=_useState9[1];var _useState10=useState({interactionApiInProgress:false}),attributes=_useState10[0],setAttributes=_useState10[1];var _state$data=state.data,data=_state$data===void 0?[]:_state$data,headerMapper=state.headerMapper,className=state.className,isEditable=state.isEditable,title=state.title,subTitle=state.subTitle,actions=state.actions,pagination=state.pagination;useEffect(function(){gjsModel.on("change:componentProps",function(){setState(_extends({},gjsModel.get("componentProps")))});gjsModel.on("change:attributes",function(){setAttributes(_extends({},gjsModel.get("attributes")))})},[]);function onRowAction(rowIndex,actionId){var id=gjsModel.get("id");performInteraction({id:actionId,interactionType:"tableButton",payload:{row:data[rowIndex],tableId:id},affectedComponents:[]})}function onPageChange(pageNumber,pageSize){var id=gjsModel.get("id");performInteraction({id:id,interactionType:"pagination",payload:{pageNumber:pageNumber,pageSize:pageSize},affectedComponents:[]// add loading if needed
6
+ })}return/*#__PURE__*/_jsx(DataTable,_extends({data:data,headerMapper:headerMapper,className:className,isEditable:isEditable,title:title,subTitle:subTitle,actions:actions,pagination:pagination,loading:attributes.interactionApiInProgress,onRowAction:onRowAction,onPageChange:onPageChange},rest))}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 _useState11=useState(_extends({},props)),allData=_useState11[0],setAllData=_useState11[1];var _useState12=useState({interactionApiInProgress:false}),setAttributes=_useState12[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 _useState13=useState(false),isEditing=_useState13[0],setIsEditing=_useState13[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
7
+ 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 _useState14=useState(_extends({},props)),allData=_useState14[0],setAllData=_useState14[1];var _useState15=useState({interactionApiInProgress:false}),attributes=_useState15[0],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 text=allData.text,className=allData.className,payload=allData.payload,_allData$variant=allData.variant,variant=_allData$variant===void 0?"default":_allData$variant,_allData$size=allData.size,size=_allData$size===void 0?"sm":_allData$size,affectedComponents=allData.affectedComponents,tooltipContent=allData.tooltipContent;function interact(){var id=gjsModel.get("id");performInteraction({id:id,interactionType:"button",affectedComponents:getAffectedComponentsWithLoader([id].concat(affectedComponents),true),payload:payload})}return/*#__PURE__*/_jsx(TooltipButton,{className:className,isEditable:isEditable,interact:interact,attributes:attributes,variant:variant,size:size,text:text,tooltipContent:tooltipContent})}export function getRenderers(){return{ActionCard:renderActionCard,Button:renderButton,Card:renderCard,Chart:renderChart,Filter:renderFilter,Markdown:renderMarkdown,Search:renderSearch,Table:renderTable,Tabs:renderTab}}
7
8
  //# 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","TableBody","TableCell","Tabs","TabsList","TabsTrigger","TabsContent","cn","getAffectedComponentsWithLoader","jsx","_jsx","jsxs","_jsxs","baseColors","colors","Blue_100","Blue_30","Purpley_100","Purpley_30","Light_Bluish_Green","Wild_Strawberry","getNColors","n","_iterator","_createForOfIteratorHelperLoose","_step","done","baseColor","value","push","scale","mode","getOneColor","existing","color","base","Math","floor","random","length","selectedColorIndex","includes","selectedColors","i","renderActionCard","props","gjsModel","rest","_objectWithoutPropertiesLoose","_excluded","_useState","_extends","allData","setAllData","_allData$headerConten","headerContent","icon","_allData$bodyContent","bodyContent","_useState2","interactionApiInProgress","setAttributes","on","get","defaultClasses","className","isEditable","contentEditable","children","renderCard","_props$isEditable","_excluded2","_useState3","headerDescription","footerContent","footerClass","footerIcon","contentMetadata","contentMetadataClass","_useState4","attributes","defaultFooterClasses","defaultContentMetadataClasses","mergedCardClassName","mergedFooterClassName","mergedContentMetadataClassName","getCardContent","style","renderChartComponent","chartType","data","config","cursor","content","hideLabel","dataKey","nameKey","innerRadius","strokeWidth","label","_ref","name","percent","toFixed","undefined","labelLine","dataKeys","chartUi","vertical","xAxis","align","wrapperStyle","marginLeft","map","_ref2","key","fill","radius","indicator","_ref3","type","stroke","_ref4","renderChart","_props$isEditable2","_excluded3","_useState5","_useState6","containerRef","_useState7","containerWidth","setContainerWidth","updateContainerWidth","current","offsetWidth","window","addEventListener","removeEventListener","_allData$config","_allData$chartType","_allData$chartData","chartData","_allData$title","title","_allData$subTitle","subTitle","mergedClasses","width","totalDataPoints","getResponsiveConfig","barCategoryGap","minWidth","height","orientation","ref","TableButton","_useState8","loading","setLoading","onClick","_onClick","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stop","interact","isDisabled","variant","size","text","tooltipContent","renderTable","_pagination$values$pa","_pagination$values","_pagination$values$pa2","_pagination$values2","_props$performInterac","performInteraction","_excluded4","_useState9","_allData$data","_allData$headerMapper","headerMapper","_allData$isEditable","_allData$title2","_allData$subTitle2","_allData$actions","actions","pagination","_useState10","_useState11","Number","values","pageNumber","initialPage","setPageNumber","_useState12","pageSize","initialPageSize","setPageSize","totalCount","_useState13","ceil","totalPages","setTotalPages","parsedData","datum","newData","id","takeRowAction","_x","_x2","_takeRowAction","_callee2","rowIndex","actionId","_callee2$","_context2","interactionType","payload","row","tableId","affectedComponents","headers","Object","keys","header","rows","renderActions","rowActions","action","renderTableComponent","head","idx","rIdx","cell","cIdx","_pagination$values$pa3","_pagination$values3","_pagination$values$pa4","_pagination$values4","pageSizeOptions","handlePageChange","_x3","_x4","_handlePageChange","_callee3","newPage","newSize","prevPage","prevSize","_callee3$","_context3","t0","tableData","htmlFor","onChange","e","target","disabled","min","renderTab","tabsWidth","tabs","defaultValue","tab","renderMarkdown","_excluded5","_useState14","_useState15","_useState16","isEditing","setIsEditing","editRef","startEditing","setTimeout","setupEditor","editor","innerHTML","textContent","summaryText","focus","saveChanges","innerText","markdownStyles","ul","h1","h2","h3","h4","h5","h6","options","overrides","onBlur","suppressContentEditableWarning","whiteSpace","wordWrap","renderButton","_props$isEditable3","_props$performInterac2","_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 TableBody,\n TableCell,\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 const containerRef = useRef<HTMLDivElement>(null);\n const [containerWidth, setContainerWidth] = useState<number>(0);\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n useEffect(() => {\n const updateContainerWidth = () => {\n if (containerRef.current) {\n setContainerWidth(containerRef.current.offsetWidth);\n }\n };\n\n updateContainerWidth();\n window.addEventListener('resize', updateContainerWidth);\n \n return () => window.removeEventListener('resize', updateContainerWidth);\n }, []);\n\n const {\n config = {},\n chartType = 'pie',\n chartData = [],\n className,\n title = 'Title',\n subTitle = 'Subtitle',\n } = allData;\n\n const defaultClasses = 'aspect-auto h-[250px] w-full';\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n if (chartType === 'pie') {\n const colors = getNColors(chartData.length);\n\n for (let i = 0; i < chartData.length; i++) {\n const data = chartData[i];\n\n if (!data.fill) {\n data.fill = colors[i];\n }\n }\n } else if (!config.color) {\n config.color = baseColors[Math.floor(Math.random() * baseColors.length)];\n }\n\n let width: number | undefined = undefined;\n let totalDataPoints = 0;\n\n // Helper function to get responsive config\n const getResponsiveConfig = () => {\n if (chartType === 'bar' && totalDataPoints > 15 && containerWidth > 0 && width && width <= containerWidth) {\n // If chart fits in container, use responsive behavior\n return { ...config, chartUi: {} };\n }\n \n return config;\n };\n\n if (chartType === 'bar') {\n totalDataPoints = chartData.length * config.dataKeys.length;\n \n if (totalDataPoints > 15) {\n width =\n totalDataPoints * 20 +\n config.dataKeys.length * 8 * chartData.length +\n chartData.length * 15;\n config.chartUi = {\n barCategoryGap: '10%',\n width,\n };\n } else {\n config.chartUi = {};\n }\n }\n\n const chartUi = attributes.interactionApiInProgress ? (\n <ChartLoader />\n ) : (\n <React.Fragment>\n {chartType === 'bar' && totalDataPoints > 15 && config.chartUi && width && (containerWidth === 0 || width > containerWidth) ? (\n <div className=\"w-full\">\n <ScrollArea className=\"w-full\">\n <div style={{ minWidth: `${width}px`, width: 'max-content' }}>\n <ResponsiveContainer width={width} height={250}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\n </ChartContainer>\n </ResponsiveContainer>\n </div>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n </div>\n ) : (\n <ResponsiveContainer width=\"100%\" height={250}>\n <ChartContainer {...rest} config={getResponsiveConfig()} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, getResponsiveConfig())}\n </ChartContainer>\n </ResponsiveContainer>\n )}\n </React.Fragment>\n );\n\n return (\n <Card className=\"shadow border mt-2 mb-2\">\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent ref={containerRef} data-slot=\"bodyContent\" contentEditable={false} className=\"px-6\">\n {chartUi}\n </CardContent>\n </Card>\n );\n}\n\n// Creating this separate component to manage loading state easily!\nfunction TableButton(props: any) {\n const [loading, setLoading] = useState(false);\n\n async function onClick() {\n setLoading(true);\n await props.onClick();\n setLoading(false);\n }\n\n const defaultClasses = 'mr-2';\n const mergedClasses = props.className ? cn(defaultClasses, props.className) : defaultClasses;\n\n return (\n <TooltipButton\n className={mergedClasses}\n isEditable={false}\n interact={onClick}\n attributes={{\n interactionApiInProgress: loading,\n isDisabled: props.isDisabled,\n }}\n variant={props.variant}\n size=\"sm\"\n text={props.text}\n tooltipContent={props.tooltipContent}\n />\n );\n}\n\nexport function renderTable(props: any): JSX.Element {\n const { gjsModel, performInteraction = () => {}, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const {\n data = [],\n headerMapper = {},\n className,\n isEditable = false,\n title = 'Title',\n subTitle = 'Subtitle',\n actions = [],\n pagination,\n } = allData;\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\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 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\n if (actions.length > 0) {\n headers.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 <TableHead\n key={idx}\n data-slot={`table-header-${idx}`}\n contentEditable={isEditable}\n className={\n actions.length > 0 && idx === headers.length - 1\n ? 'sticky right-0 bg-slate-100'\n : ''\n }\n >\n {head}\n </TableHead>\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 >= 0) && (\n <div className=\"flex items-center justify-between mt-4 w-full\">\n <div className=\"flex items-center gap-2\">\n <label htmlFor=\"page-size-select\" className=\"text-sm\">\n Rows per page:\n </label>\n <select\n id=\"page-size-select\"\n value={pageSize}\n onChange={(e) => handlePageChange(1, Number(e.target.value))}\n className=\"border rounded px-2 py-1 text-sm cursor-pointer\"\n disabled={attributes.interactionApiInProgress}\n >\n {pageSizeOptions.map((size: any) => (\n <option key={size} value={size}>\n {size}\n </option>\n ))}\n </select>\n </div>\n <div className=\"flex items-center gap-1 flex-shrink-0\">\n <span className=\"text-xs text-muted-foreground whitespace-nowrap\">\n {(pageNumber - 1) * pageSize + 1}–{Math.min(pageNumber * pageSize, totalCount)} of{' '}\n {totalCount}\n </span>\n <Pagination>\n <PaginationContent className=\"gap-0.2\">\n {renderPaginationArrows(\n pageNumber,\n totalPages,\n attributes.interactionApiInProgress,\n handlePageChange,\n )}\n </PaginationContent>\n </Pagination>\n </div>\n </div>\n )}\n </Fragment>\n );\n\n return (\n <Card className=\"shadow border\">\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent data-slot=\"bodyContent\" contentEditable={false}>\n {tableData}\n </CardContent>\n </Card>\n );\n}\n\nexport function renderTab(props: any): JSX.Element {\n let tabsWidth = 200;\n\n if (props.tabs.length > 4) {\n tabsWidth = 150;\n }\n\n return (\n <Tabs defaultValue={props.defaultValue}>\n <div className=\"text-center mb-4\">\n <TabsList className=\"bg-gray-300\">\n {props.tabs.map((tab: string) => (\n <TabsTrigger value={tab} key={tab} className={`text-md w-[${tabsWidth}px]`}>\n {tab}\n </TabsTrigger>\n ))}\n </TabsList>\n </div>\n {props.tabs.map((tab: string) => (\n <TabsContent value={tab} className=\"tabs-content\" key={tab} />\n ))}\n </Tabs>\n );\n}\n\nexport function renderMarkdown(props: any): JSX.Element {\n const { gjsModel, ...rest } = props;\n\n const [allData, setAllData] = useState({\n ...props,\n });\n\n const [, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n const [isEditing, setIsEditing] = useState(false);\n const editRef = useRef<HTMLDivElement>(null);\n\n const startEditing = () => {\n setIsEditing(true);\n setTimeout(() => {\n setupEditor();\n }, 0);\n };\n\n const setupEditor = () => {\n if (!editRef.current) {\n return;\n }\n\n const editor = editRef.current;\n editor.innerHTML = '';\n editor.textContent = allData.summaryText;\n editor.focus();\n };\n\n // 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","theme","Markdown","PieChart","Pie","BarChart","Bar","LineChart","Line","XAxis","YAxis","ResponsiveContainer","CartesianGrid","Legend","TooltipButton","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","ChartContainer","ChartTooltip","ChartTooltipContent","renderFilter","ScrollArea","ScrollBar","renderSearch","ChartLoader","CardLoader","Tabs","TabsList","TabsTrigger","TabsContent","cn","getAffectedComponentsWithLoader","DataTable","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","Fragment","style","renderChartComponent","chartType","data","config","cursor","content","hideLabel","dataKey","nameKey","innerRadius","strokeWidth","label","_ref","name","percent","toFixed","undefined","labelLine","dataKeys","chartUi","vertical","xAxis","align","wrapperStyle","marginLeft","map","_ref2","key","fill","radius","indicator","_ref3","type","stroke","_ref4","renderChart","_props$isEditable2","_excluded3","_useState5","_useState6","containerRef","_useState7","containerWidth","setContainerWidth","updateContainerWidth","current","offsetWidth","window","addEventListener","removeEventListener","_allData$config","_allData$chartType","_allData$chartData","chartData","_allData$title","title","_allData$subTitle","subTitle","mergedClasses","width","totalDataPoints","getResponsiveConfig","barCategoryGap","minWidth","height","orientation","ref","TableButton","_useState8","loading","setLoading","onClick","_onClick","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stop","interact","isDisabled","variant","size","text","tooltipContent","renderTable","_props$performInterac","performInteraction","_excluded4","_useState9","state","setState","_useState10","_state$data","headerMapper","actions","pagination","onRowAction","rowIndex","actionId","id","interactionType","payload","row","tableId","affectedComponents","onPageChange","pageNumber","pageSize","renderTab","tabsWidth","tabs","defaultValue","tab","renderMarkdown","_excluded5","_useState11","_useState12","_useState13","isEditing","setIsEditing","editRef","startEditing","setTimeout","setupEditor","editor","innerHTML","textContent","summaryText","focus","saveChanges","innerText","markdownStyles","ul","h1","h2","h3","h4","h5","h6","options","overrides","onBlur","suppressContentEditableWarning","whiteSpace","wordWrap","renderButton","_props$isEditable3","_props$performInterac2","_useState14","_useState15","_allData$variant","_allData$size","concat","getRenderers","ActionCard","Button","Chart","Filter","Search","Table"],"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 } 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 { ScrollArea, ScrollBar } from '../../shadcn/components/ui/scroll-area';\nimport { renderSearch } from '../../shadcn/components/ui/search';\nimport { ChartLoader, CardLoader } from '../../shadcn/components/ui/skeleton';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../../shadcn/components/ui/tabs';\n\nimport { cn } from '../../shadcn/utils';\nimport { getAffectedComponentsWithLoader } from '../../helpers';\nimport { DataTable } from '../../shadcn/components/ui/data-table';\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 const containerRef = useRef<HTMLDivElement>(null);\n const [containerWidth, setContainerWidth] = useState<number>(0);\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n });\n }, []);\n\n useEffect(() => {\n gjsModel.on('change:attributes', () => {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n });\n }, []);\n\n useEffect(() => {\n const updateContainerWidth = () => {\n if (containerRef.current) {\n setContainerWidth(containerRef.current.offsetWidth);\n }\n };\n\n updateContainerWidth();\n window.addEventListener('resize', updateContainerWidth);\n\n return () => window.removeEventListener('resize', updateContainerWidth);\n }, []);\n\n const {\n config = {},\n chartType = 'pie',\n chartData = [],\n className,\n title = 'Title',\n subTitle = 'Subtitle',\n } = allData;\n\n const defaultClasses = 'aspect-auto h-[250px] w-full';\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n if (chartType === 'pie') {\n const colors = getNColors(chartData.length);\n\n for (let i = 0; i < chartData.length; i++) {\n const data = chartData[i];\n\n if (!data.fill) {\n data.fill = colors[i];\n }\n }\n } else if (!config.color) {\n config.color = baseColors[Math.floor(Math.random() * baseColors.length)];\n }\n\n let width: number | undefined = undefined;\n let totalDataPoints = 0;\n\n // Helper function to get responsive config\n const getResponsiveConfig = () => {\n if (\n chartType === 'bar' &&\n totalDataPoints > 15 &&\n containerWidth > 0 &&\n width &&\n width <= containerWidth\n ) {\n // If chart fits in container, use responsive behavior\n return { ...config, chartUi: {} };\n }\n\n return config;\n };\n\n if (chartType === 'bar') {\n totalDataPoints = chartData.length * config.dataKeys.length;\n\n if (totalDataPoints > 15) {\n width =\n totalDataPoints * 20 +\n config.dataKeys.length * 8 * chartData.length +\n chartData.length * 15;\n config.chartUi = {\n barCategoryGap: '10%',\n width,\n };\n } else {\n config.chartUi = {};\n }\n }\n\n const chartUi = attributes.interactionApiInProgress ? (\n <ChartLoader />\n ) : (\n <React.Fragment>\n {chartType === 'bar' &&\n totalDataPoints > 15 &&\n config.chartUi &&\n width &&\n (containerWidth === 0 || width > containerWidth) ? (\n <div className=\"w-full\">\n <ScrollArea className=\"w-full\">\n <div style={{ minWidth: `${width}px`, width: 'max-content' }}>\n <ResponsiveContainer width={width} height={250}>\n <ChartContainer {...rest} config={config} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, config)}\n </ChartContainer>\n </ResponsiveContainer>\n </div>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n </div>\n ) : (\n <ResponsiveContainer width=\"100%\" height={250}>\n <ChartContainer {...rest} config={getResponsiveConfig()} className={mergedClasses}>\n {renderChartComponent(chartType, chartData, getResponsiveConfig())}\n </ChartContainer>\n </ResponsiveContainer>\n )}\n </React.Fragment>\n );\n\n return (\n <Card className=\"shadow border mt-2 mb-2\">\n <CardHeader>\n <CardTitle data-slot=\"title\" contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription data-slot=\"subTitle\" contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent\n ref={containerRef}\n data-slot=\"bodyContent\"\n contentEditable={false}\n className=\"px-6\"\n >\n {chartUi}\n </CardContent>\n </Card>\n );\n}\n\n// Creating this separate component to manage loading state easily!\nexport function 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 [state, setState] = useState({ ...props });\n const [attributes, setAttributes] = useState({ interactionApiInProgress: false });\n\n const {\n data = [],\n headerMapper,\n className,\n isEditable,\n title,\n subTitle,\n actions,\n pagination,\n } = state;\n\n useEffect(() => {\n gjsModel.on('change:componentProps', () => {\n setState({ ...gjsModel.get('componentProps') });\n });\n gjsModel.on('change:attributes', () => {\n setAttributes({ ...gjsModel.get('attributes') });\n });\n }, []);\n\n function onRowAction(rowIndex: number, actionId: string) {\n const id = gjsModel.get('id');\n performInteraction({\n id: actionId,\n interactionType: 'tableButton',\n payload: {\n row: data[rowIndex],\n tableId: id,\n },\n affectedComponents: [],\n });\n }\n\n function onPageChange(pageNumber: number, pageSize: number) {\n const id = gjsModel.get('id');\n performInteraction({\n id,\n interactionType: 'pagination',\n payload: { pageNumber, pageSize },\n affectedComponents: [], // add loading if needed\n });\n }\n\n return (\n <DataTable\n data={data}\n headerMapper={headerMapper}\n className={className}\n isEditable={isEditable}\n title={title}\n subTitle={subTitle}\n actions={actions}\n pagination={pagination}\n loading={attributes.interactionApiInProgress}\n onRowAction={onRowAction}\n onPageChange={onPageChange}\n {...rest}\n />\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":[]}
@@ -0,0 +1,51 @@
1
+ /// <reference types="react" />
2
+ export declare function useGrapesJSModel(gjsModel: any, initialProps: any): {
3
+ allData: any;
4
+ setAllData: import("react").Dispatch<any>;
5
+ attributes: {
6
+ interactionApiInProgress: boolean;
7
+ };
8
+ setAttributes: import("react").Dispatch<import("react").SetStateAction<{
9
+ interactionApiInProgress: boolean;
10
+ }>>;
11
+ };
12
+ export declare function usePagination(pagination: any, totalCount: number, performInteraction?: (params: any) => Promise<void>, gjsModel?: any): {
13
+ pageNumber: number;
14
+ pageSize: number;
15
+ totalPages: number;
16
+ setPageNumber: import("react").Dispatch<import("react").SetStateAction<number>>;
17
+ setPageSize: import("react").Dispatch<import("react").SetStateAction<number>>;
18
+ handlePageChange: (newPage?: number, newSize?: number) => Promise<void>;
19
+ };
20
+ export declare function useTableActions(gjsModel: any, performInteraction?: (params: any) => Promise<void>): {
21
+ takeRowAction: (rowIndex: number, actionId: string, data: any[]) => Promise<void>;
22
+ };
23
+ export declare function processTableData(data: any[], headerMapper?: Record<string, string>): {
24
+ parsedData: any[];
25
+ headers: string[];
26
+ rows: unknown[][];
27
+ };
28
+ export declare function createStandaloneTableProps({ data, headerMapper, title, subTitle, pagination, actions, className, isEditable, }: {
29
+ data: any[];
30
+ headerMapper?: Record<string, string>;
31
+ title?: string;
32
+ subTitle?: string;
33
+ pagination?: any;
34
+ actions?: any[];
35
+ className?: string;
36
+ isEditable?: boolean;
37
+ }): {
38
+ isGrapesJSApplicable: boolean;
39
+ data: any[];
40
+ headerMapper: Record<string, string>;
41
+ title: string;
42
+ subTitle: string;
43
+ pagination: any;
44
+ actions: any[];
45
+ className: string;
46
+ isEditable: boolean;
47
+ };
48
+ export declare const grapesJSTableHelpers: {
49
+ useGrapesJSModel: typeof useGrapesJSModel;
50
+ useTableActions: typeof useTableActions;
51
+ };
@@ -0,0 +1,10 @@
1
+ import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _extends from"@babel/runtime/helpers/extends";import _regeneratorRuntime from"@babel/runtime/regenerator";/* eslint-disable @typescript-eslint/no-explicit-any *//* eslint-disable func-style *//* eslint-disable consistent-return */import{useState,useEffect}from"react";export function useGrapesJSModel(gjsModel,initialProps){var _useState=useState(_extends({},initialProps)),allData=_useState[0],setAllData=_useState[1];var _useState2=useState({interactionApiInProgress:false}),attributes=_useState2[0],setAttributes=_useState2[1];useEffect(function(){if(!gjsModel){return}function handlePropsChange(){setAllData(_extends({},gjsModel.get("componentProps")))}function handleAttributesChange(){setAttributes(_extends({},gjsModel.get("attributes")))}gjsModel.on("change:componentProps",handlePropsChange);gjsModel.on("change:attributes",handleAttributesChange);function cleanup(){gjsModel.off("change:componentProps",handlePropsChange);gjsModel.off("change:attributes",handleAttributesChange)}return cleanup},[gjsModel]);return{allData:allData,setAllData:setAllData,attributes:attributes,setAttributes:setAttributes}}/**
2
+ * Hook for managing pagination state
3
+ */export function usePagination(pagination,totalCount,performInteraction,gjsModel){var _ref,_pagination$values$pa,_pagination$values,_ref2,_pagination$values$pa2,_pagination$values2;var _useState3=useState(Number((_ref=(_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)!=null?_ref:1)),pageNumber=_useState3[0],setPageNumber=_useState3[1];var _useState4=useState(Number((_ref2=(_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)!=null?_ref2:10)),pageSize=_useState4[0],setPageSize=_useState4[1];var _useState5=useState(Math.ceil(totalCount/pageSize)||1),totalPages=_useState5[0],setTotalPages=_useState5[1];useEffect(function(){var _ref3,_pagination$values$pa3,_pagination$values3,_ref4,_pagination$values$pa4,_pagination$values4;setPageNumber(Number((_ref3=(_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)!=null?_ref3:1));setPageSize(Number((_ref4=(_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)!=null?_ref4:10))},[pagination]);useEffect(function(){setTotalPages(Math.ceil(totalCount/pageSize)||1)},[totalCount,pageSize]);function handlePageChange(_x,_x2){return _handlePageChange.apply(this,arguments)}function _handlePageChange(){_handlePageChange=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(newPage,newSize){var id,prevPage,prevSize;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(newPage===void 0){newPage=pageNumber}if(newSize===void 0){newSize=pageSize}if(!(!performInteraction||!gjsModel)){_context.next=6;break}setPageNumber(newPage);setPageSize(newSize);return _context.abrupt("return");case 6:id=gjsModel.get("id");prevPage=pageNumber;prevSize=pageSize;setPageNumber(newPage);setPageSize(newSize);_context.prev=11;_context.next=14;return performInteraction({id:id,interactionType:"pagination",payload:{pageNumber:newPage,pageSize:newSize},affectedComponents:[]});case 14:_context.next=20;break;case 16:_context.prev=16;_context.t0=_context["catch"](11);setPageNumber(prevPage);setPageSize(prevSize);case 20:case"end":return _context.stop()}},_callee,null,[[11,16]])}));return _handlePageChange.apply(this,arguments)}return{pageNumber:pageNumber,pageSize:pageSize,totalPages:totalPages,setPageNumber:setPageNumber,setPageSize:setPageSize,handlePageChange:handlePageChange}}/**
4
+ * Hook for managing table actions with GrapesJS
5
+ */export function useTableActions(gjsModel,performInteraction){function takeRowAction(_x3,_x4,_x5){return _takeRowAction.apply(this,arguments)}function _takeRowAction(){_takeRowAction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(rowIndex,actionId,data){var id;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(!(!performInteraction||!gjsModel)){_context2.next=2;break}return _context2.abrupt("return");case 2:id=gjsModel.get("id");_context2.next=5;return performInteraction({id:actionId,interactionType:"tableButton",payload:{row:data[rowIndex],tableId:id},affectedComponents:[]});case 5:case"end":return _context2.stop()}},_callee2)}));return _takeRowAction.apply(this,arguments)}return{takeRowAction:takeRowAction}}/**
6
+ * Utility function to process table data
7
+ */export function processTableData(data,headerMapper){if(headerMapper===void 0){headerMapper={}}var parsedData=data.map(function(datum){var newData=_extends({},datum);delete newData.id;return newData});var headers=Object.keys(parsedData[0]||{}).map(function(header){return headerMapper[header]||header});var rows=parsedData.map(function(datum){return Object.values(datum)});return{parsedData:parsedData,headers:headers,rows:rows}}/**
8
+ * Create table props for standalone usage (without GrapesJS)
9
+ */export function createStandaloneTableProps(_ref5){var data=_ref5.data,_ref5$headerMapper=_ref5.headerMapper,headerMapper=_ref5$headerMapper===void 0?{}:_ref5$headerMapper,_ref5$title=_ref5.title,title=_ref5$title===void 0?"Table":_ref5$title,_ref5$subTitle=_ref5.subTitle,subTitle=_ref5$subTitle===void 0?"":_ref5$subTitle,_ref5$pagination=_ref5.pagination,pagination=_ref5$pagination===void 0?null:_ref5$pagination,_ref5$actions=_ref5.actions,actions=_ref5$actions===void 0?[]:_ref5$actions,_ref5$className=_ref5.className,className=_ref5$className===void 0?"":_ref5$className,_ref5$isEditable=_ref5.isEditable,isEditable=_ref5$isEditable===void 0?false:_ref5$isEditable;return{isGrapesJSApplicable:false,data:data,headerMapper:headerMapper,title:title,subTitle:subTitle,pagination:pagination,actions:actions,className:className,isEditable:isEditable}}export var grapesJSTableHelpers={useGrapesJSModel:useGrapesJSModel,useTableActions:useTableActions};
10
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","names":["useState","useEffect","useGrapesJSModel","gjsModel","initialProps","_useState","_extends","allData","setAllData","_useState2","interactionApiInProgress","attributes","setAttributes","handlePropsChange","get","handleAttributesChange","on","cleanup","off","usePagination","pagination","totalCount","performInteraction","_ref","_pagination$values$pa","_pagination$values","_ref2","_pagination$values$pa2","_pagination$values2","_useState3","Number","values","pageNumber","initialPage","setPageNumber","_useState4","pageSize","initialPageSize","setPageSize","_useState5","Math","ceil","totalPages","setTotalPages","_ref3","_pagination$values$pa3","_pagination$values3","_ref4","_pagination$values$pa4","_pagination$values4","handlePageChange","_x","_x2","_handlePageChange","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","newPage","newSize","id","prevPage","prevSize","wrap","_callee$","_context","prev","next","abrupt","interactionType","payload","affectedComponents","t0","stop","useTableActions","takeRowAction","_x3","_x4","_x5","_takeRowAction","_callee2","rowIndex","actionId","data","_callee2$","_context2","row","tableId","processTableData","headerMapper","parsedData","map","datum","newData","headers","Object","keys","header","rows","createStandaloneTableProps","_ref5","_ref5$headerMapper","_ref5$title","title","_ref5$subTitle","subTitle","_ref5$pagination","_ref5$actions","actions","_ref5$className","className","_ref5$isEditable","isEditable","isGrapesJSApplicable","grapesJSTableHelpers"],"sources":["../../../src/plugins/helpers/table.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable func-style */\n/* eslint-disable consistent-return */\nimport { useState, useEffect } from 'react';\n\nexport function useGrapesJSModel(gjsModel: any, initialProps: any) {\n const [allData, setAllData] = useState({\n ...initialProps,\n });\n\n const [attributes, setAttributes] = useState({\n interactionApiInProgress: false,\n });\n\n useEffect(() => {\n if (!gjsModel) {\n return;\n }\n\n function handlePropsChange() {\n setAllData({\n ...gjsModel.get('componentProps'),\n });\n }\n\n function handleAttributesChange() {\n setAttributes({\n ...gjsModel.get('attributes'),\n });\n }\n\n gjsModel.on('change:componentProps', handlePropsChange);\n gjsModel.on('change:attributes', handleAttributesChange);\n\n function cleanup() {\n gjsModel.off('change:componentProps', handlePropsChange);\n gjsModel.off('change:attributes', handleAttributesChange);\n }\n\n return cleanup;\n }, [gjsModel]);\n\n return { allData, setAllData, attributes, setAttributes };\n}\n\n/**\n * Hook for managing pagination state\n */\nexport function usePagination(\n pagination: any,\n totalCount: number,\n performInteraction?: (params: any) => Promise<void>,\n gjsModel?: any\n) {\n const [pageNumber, setPageNumber] = useState(\n Number(pagination?.values?.pageNumber ?? pagination?.initialPage ?? 1)\n );\n\n const [pageSize, setPageSize] = useState(\n Number(pagination?.values?.pageSize ?? pagination?.initialPageSize ?? 10)\n );\n\n const [totalPages, setTotalPages] = useState(Math.ceil(totalCount / pageSize) || 1);\n\n useEffect(() => {\n setPageNumber(Number(pagination?.values?.pageNumber ?? pagination?.initialPage ?? 1));\n setPageSize(Number(pagination?.values?.pageSize ?? pagination?.initialPageSize ?? 10));\n }, [pagination]);\n\n useEffect(() => {\n setTotalPages(Math.ceil(totalCount / pageSize) || 1);\n }, [totalCount, pageSize]);\n\n async function handlePageChange(newPage = pageNumber, newSize = pageSize) {\n if (!performInteraction || !gjsModel) {\n setPageNumber(newPage);\n setPageSize(newSize);\n\n return;\n }\n\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: [],\n });\n } catch (error) {\n setPageNumber(prevPage);\n setPageSize(prevSize);\n }\n }\n\n return {\n pageNumber,\n pageSize,\n totalPages,\n setPageNumber,\n setPageSize,\n handlePageChange,\n };\n}\n\n/**\n * Hook for managing table actions with GrapesJS\n */\nexport function useTableActions(\n gjsModel: any,\n performInteraction?: (params: any) => Promise<void>\n) {\n async function takeRowAction(rowIndex: number, actionId: string, data: any[]) {\n if (!performInteraction || !gjsModel) {\n return;\n }\n\n const id = gjsModel.get('id');\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 return { takeRowAction };\n}\n\n/**\n * Utility function to process table data\n */\nexport function processTableData(data: any[], headerMapper: Record<string, string> = {}) {\n const parsedData = data.map((datum: any) => {\n const newData = { ...datum };\n delete newData.id;\n\n return newData;\n });\n\n const headers = Object.keys(parsedData[0] || {}).map(\n (header) => headerMapper[header] || header\n );\n\n const rows = parsedData.map((datum: any) => Object.values(datum));\n\n return { parsedData, headers, rows };\n}\n\n/**\n * Create table props for standalone usage (without GrapesJS)\n */\nexport function createStandaloneTableProps({\n data,\n headerMapper = {},\n title = 'Table',\n subTitle = '',\n pagination = null,\n actions = [],\n className = '',\n isEditable = false,\n}: {\n data: any[];\n headerMapper?: Record<string, string>;\n title?: string;\n subTitle?: string;\n pagination?: any;\n actions?: any[];\n className?: string;\n isEditable?: boolean;\n}) {\n return {\n isGrapesJSApplicable: false,\n data,\n headerMapper,\n title,\n subTitle,\n pagination,\n actions,\n className,\n isEditable,\n };\n}\n\nexport const grapesJSTableHelpers = {\n useGrapesJSModel,\n useTableActions,\n};\n"],"mappings":"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","ignoreList":[]}
@@ -8,4 +8,5 @@ declare function Button({ className, variant, size, asChild, ...props }: React.C
8
8
  asChild?: boolean;
9
9
  }): import("react/jsx-runtime").JSX.Element;
10
10
  declare function TooltipButton(props: any): import("react/jsx-runtime").JSX.Element;
11
- export { Button, buttonVariants, TooltipButton };
11
+ declare function TableButton(props: any): import("react/jsx-runtime").JSX.Element;
12
+ export { Button, buttonVariants, TooltipButton, TableButton };
@@ -1,3 +1,3 @@
1
- import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["className","variant","size","asChild"];/* eslint-disable @typescript-eslint/no-explicit-any */import*as React from"react";import{Slot}from"@radix-ui/react-slot";import{cva}from"class-variance-authority";import{cn}from"../../utils";import{Loader2Icon}from"lucide-react";import{TooltipContent,Tooltip,TooltipTrigger}from"./tooltip";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var buttonVariants=cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{"default":"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{"default":"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function Button(_ref){var className=_ref.className,variant=_ref.variant,size=_ref.size,_ref$asChild=_ref.asChild,asChild=_ref$asChild===void 0?false:_ref$asChild,props=_objectWithoutPropertiesLoose(_ref,_excluded);var Comp=asChild?Slot:"button";return/*#__PURE__*/_jsx(Comp,_extends({"data-slot":"button",className:cn(buttonVariants({variant:variant,size:size,className:className}))},props))}function TooltipButton(props){var className=props.className,isEditable=props.isEditable,interact=props.interact,attributes=props.attributes,variant=props.variant,size=props.size,text=props.text,tooltipContent=props.tooltipContent;var buttonContent=/*#__PURE__*/_jsx(Button,{className:className,onClick:!isEditable?interact:function(){// no-op
2
- },disabled:attributes.interactionApiInProgress||attributes.disabled,variant:variant,size:size,contentEditable:isEditable,asChild:isEditable,children:attributes.interactionApiInProgress?/*#__PURE__*/_jsx(Loader2Icon,{className:"animate-spin"}):/*#__PURE__*/_jsx("div",{"data-slot":"text",children:text})});if(tooltipContent){return/*#__PURE__*/_jsxs(Tooltip,{children:[/*#__PURE__*/_jsx(TooltipTrigger,{asChild:true,children:/*#__PURE__*/_jsx("div",{className:"inline-block",children:buttonContent})}),/*#__PURE__*/_jsx(TooltipContent,{className:"max-w-[200px] w-auto whitespace-normal break-all",children:tooltipContent})]})}return buttonContent}export{Button,buttonVariants,TooltipButton};
1
+ import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _extends from"@babel/runtime/helpers/extends";import _objectWithoutPropertiesLoose from"@babel/runtime/helpers/objectWithoutPropertiesLoose";var _excluded=["className","variant","size","asChild"];import _regeneratorRuntime from"@babel/runtime/regenerator";/* eslint-disable @typescript-eslint/no-explicit-any */import*as React from"react";import{Slot}from"@radix-ui/react-slot";import{cva}from"class-variance-authority";import{cn}from"../../utils";import{Loader2Icon}from"lucide-react";import{TooltipContent,Tooltip,TooltipTrigger}from"./tooltip";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var buttonVariants=cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{"default":"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{"default":"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function Button(_ref){var className=_ref.className,variant=_ref.variant,size=_ref.size,_ref$asChild=_ref.asChild,asChild=_ref$asChild===void 0?false:_ref$asChild,props=_objectWithoutPropertiesLoose(_ref,_excluded);var Comp=asChild?Slot:"button";return/*#__PURE__*/_jsx(Comp,_extends({"data-slot":"button",className:cn(buttonVariants({variant:variant,size:size,className:className}))},props))}function TooltipButton(props){var className=props.className,isEditable=props.isEditable,interact=props.interact,attributes=props.attributes,variant=props.variant,size=props.size,text=props.text,tooltipContent=props.tooltipContent;var buttonContent=/*#__PURE__*/_jsx(Button,{className:className,onClick:!isEditable?interact:function(){// no-op
2
+ },disabled:attributes.interactionApiInProgress||attributes.disabled,variant:variant,size:size,contentEditable:isEditable,asChild:isEditable,children:attributes.interactionApiInProgress?/*#__PURE__*/_jsx(Loader2Icon,{className:"animate-spin"}):/*#__PURE__*/_jsx("div",{"data-slot":"text",children:text})});if(tooltipContent){return/*#__PURE__*/_jsxs(Tooltip,{children:[/*#__PURE__*/_jsx(TooltipTrigger,{asChild:true,children:/*#__PURE__*/_jsx("div",{className:"inline-block",children:buttonContent})}),/*#__PURE__*/_jsx(TooltipContent,{className:"max-w-[200px] w-auto whitespace-normal break-all",children:tooltipContent})]})}return buttonContent}function TableButton(props){var _React$useState=React.useState(false),loading=_React$useState[0],setLoading=_React$useState[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{Button,buttonVariants,TooltipButton,TableButton};
3
3
  //# sourceMappingURL=button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":["React","Slot","cva","cn","Loader2Icon","TooltipContent","Tooltip","TooltipTrigger","jsx","_jsx","jsxs","_jsxs","buttonVariants","variants","variant","destructive","outline","secondary","ghost","link","size","sm","lg","icon","defaultVariants","Button","_ref","className","_ref$asChild","asChild","props","_objectWithoutPropertiesLoose","_excluded","Comp","_extends","TooltipButton","isEditable","interact","attributes","text","tooltipContent","buttonContent","onClick","disabled","interactionApiInProgress","contentEditable","children"],"sources":["../../../../src/shadcn/components/ui/button.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../utils';\nimport { Loader2Icon } from 'lucide-react';\nimport { TooltipContent, Tooltip, TooltipTrigger } from './tooltip';\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nfunction TooltipButton(props: any) {\n const { className, isEditable, interact, attributes, variant, size, text, tooltipContent } =\n props;\n\n const buttonContent = (\n <Button\n className={className}\n onClick={\n !isEditable\n ? interact\n : () => {\n // no-op\n }\n }\n disabled={attributes.interactionApiInProgress || attributes.disabled}\n variant={variant}\n size={size}\n contentEditable={isEditable}\n asChild={isEditable}\n >\n {attributes.interactionApiInProgress ? (\n <Loader2Icon className=\"animate-spin\" />\n ) : (\n <div data-slot=\"text\">{text}</div>\n )}\n </Button>\n );\n\n if (tooltipContent) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"inline-block\">{buttonContent}</div>\n </TooltipTrigger>\n <TooltipContent className=\"max-w-[200px] w-auto whitespace-normal break-all\">\n {tooltipContent}\n </TooltipContent>\n </Tooltip>\n );\n }\n\n return buttonContent;\n}\n\nexport { Button, buttonVariants, TooltipButton };\n"],"mappings":"2MAAA,uDACA,MAAO,GAAK,CAAAA,KAAK,KAAM,OAAO,CAC9B,OAASC,IAAI,KAAQ,sBAAsB,CAC3C,OAASC,GAAG,KAA2B,0BAA0B,CAEjE,OAASC,EAAE,KAAQ,aAAa,CAChC,OAASC,WAAW,KAAQ,cAAc,CAC1C,OAASC,cAAc,CAAEC,OAAO,CAAEC,cAAc,KAAQ,WAAW,CAAC,OAAAC,GAAA,IAAAC,IAAA,CAAAC,IAAA,IAAAC,KAAA,yBAEpE,GAAM,CAAAC,cAAc,CAAGV,GAAG,CACxB,6bAA6b,CAC7b,CACEW,QAAQ,CAAE,CACRC,OAAO,CAAE,CACP,UAAS,kEAAkE,CAC3EC,WAAW,CACT,6JAA6J,CAC/JC,OAAO,CACL,uIAAuI,CACzIC,SAAS,CAAE,wEAAwE,CACnFC,KAAK,CAAE,sEAAsE,CAC7EC,IAAI,CAAE,iDACR,CAAC,CACDC,IAAI,CAAE,CACJ,UAAS,+BAA+B,CACxCC,EAAE,CAAE,+CAA+C,CACnDC,EAAE,CAAE,sCAAsC,CAC1CC,IAAI,CAAE,QACR,CACF,CAAC,CACDC,eAAe,CAAE,CACfV,OAAO,CAAE,SAAS,CAClBM,IAAI,CAAE,SACR,CACF,CACF,CAAC,CAED,QAAS,CAAAK,MAAMA,CAAAC,IAAA,CASV,IARH,CAAAC,SAAS,CAAAD,IAAA,CAATC,SAAS,CACTb,OAAO,CAAAY,IAAA,CAAPZ,OAAO,CACPM,IAAI,CAAAM,IAAA,CAAJN,IAAI,CAAAQ,YAAA,CAAAF,IAAA,CACJG,OAAO,CAAPA,OAAO,CAAAD,YAAA,UAAG,KAAK,CAAAA,YAAA,CACZE,KAAK,CAAAC,6BAAA,CAAAL,IAAA,CAAAM,SAAA,EAKR,GAAM,CAAAC,IAAI,CAAGJ,OAAO,CAAG5B,IAAI,CAAG,QAAQ,CAEtC,mBACEQ,IAAA,CAACwB,IAAI,CAAAC,QAAA,EACH,YAAU,QAAQ,CAClBP,SAAS,CAAExB,EAAE,CAACS,cAAc,CAAC,CAAEE,OAAO,CAAPA,OAAO,CAAEM,IAAI,CAAJA,IAAI,CAAEO,SAAS,CAATA,SAAU,CAAC,CAAC,CAAE,EACxDG,KAAK,CACV,CAEL,CAEA,QAAS,CAAAK,aAAaA,CAACL,KAAU,CAAE,CACjC,GAAQ,CAAAH,SAAS,CACfG,KAAK,CADCH,SAAS,CAAES,UAAU,CAC3BN,KAAK,CADYM,UAAU,CAAEC,QAAQ,CACrCP,KAAK,CADwBO,QAAQ,CAAEC,UAAU,CACjDR,KAAK,CADkCQ,UAAU,CAAExB,OAAO,CAC1DgB,KAAK,CAD8ChB,OAAO,CAAEM,IAAI,CAChEU,KAAK,CADuDV,IAAI,CAAEmB,IAAI,CACtET,KAAK,CAD6DS,IAAI,CAAEC,cAAc,CACtFV,KAAK,CADmEU,cAAc,CAGxF,GAAM,CAAAC,aAAa,cACjBhC,IAAA,CAACgB,MAAM,EACLE,SAAS,CAAEA,SAAU,CACrBe,OAAO,CACL,CAACN,UAAU,CACPC,QAAQ,CACR,UAAM,CACJ;AAAA,CAEP,CACDM,QAAQ,CAAEL,UAAU,CAACM,wBAAwB,EAAIN,UAAU,CAACK,QAAS,CACrE7B,OAAO,CAAEA,OAAQ,CACjBM,IAAI,CAAEA,IAAK,CACXyB,eAAe,CAAET,UAAW,CAC5BP,OAAO,CAAEO,UAAW,CAAAU,QAAA,CAEnBR,UAAU,CAACM,wBAAwB,cAClCnC,IAAA,CAACL,WAAW,EAACuB,SAAS,CAAC,cAAc,CAAE,CAAC,cAExClB,IAAA,QAAK,YAAU,MAAM,CAAAqC,QAAA,CAAEP,IAAI,CAAM,CAClC,CACK,CACT,CAED,GAAIC,cAAc,CAAE,CAClB,mBACE7B,KAAA,CAACL,OAAO,EAAAwC,QAAA,eACNrC,IAAA,CAACF,cAAc,EAACsB,OAAO,MAAAiB,QAAA,cACrBrC,IAAA,QAAKkB,SAAS,CAAC,cAAc,CAAAmB,QAAA,CAAEL,aAAa,CAAM,CAAC,CACrC,CAAC,cACjBhC,IAAA,CAACJ,cAAc,EAACsB,SAAS,CAAC,kDAAkD,CAAAmB,QAAA,CACzEN,cAAc,CACD,CAAC,EACV,CAEb,CAEA,MAAO,CAAAC,aACT,CAEA,OAAShB,MAAM,CAAEb,cAAc,CAAEuB,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"button.js","names":["React","Slot","cva","cn","Loader2Icon","TooltipContent","Tooltip","TooltipTrigger","jsx","_jsx","jsxs","_jsxs","buttonVariants","variants","variant","destructive","outline","secondary","ghost","link","size","sm","lg","icon","defaultVariants","Button","_ref","className","_ref$asChild","asChild","props","_objectWithoutPropertiesLoose","_excluded","Comp","_extends","TooltipButton","isEditable","interact","attributes","text","tooltipContent","buttonContent","onClick","disabled","interactionApiInProgress","contentEditable","children","TableButton","_React$useState","useState","loading","setLoading","_onClick","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stop","defaultClasses","mergedClasses","isDisabled"],"sources":["../../../../src/shadcn/components/ui/button.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../utils';\nimport { Loader2Icon } from 'lucide-react';\nimport { TooltipContent, Tooltip, TooltipTrigger } from './tooltip';\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nfunction TooltipButton(props: any) {\n const { className, isEditable, interact, attributes, variant, size, text, tooltipContent } =\n props;\n\n const buttonContent = (\n <Button\n className={className}\n onClick={\n !isEditable\n ? interact\n : () => {\n // no-op\n }\n }\n disabled={attributes.interactionApiInProgress || attributes.disabled}\n variant={variant}\n size={size}\n contentEditable={isEditable}\n asChild={isEditable}\n >\n {attributes.interactionApiInProgress ? (\n <Loader2Icon className=\"animate-spin\" />\n ) : (\n <div data-slot=\"text\">{text}</div>\n )}\n </Button>\n );\n\n if (tooltipContent) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"inline-block\">{buttonContent}</div>\n </TooltipTrigger>\n <TooltipContent className=\"max-w-[200px] w-auto whitespace-normal break-all\">\n {tooltipContent}\n </TooltipContent>\n </Tooltip>\n );\n }\n\n return buttonContent;\n}\n\nfunction TableButton(props: any) {\n const [loading, setLoading] = React.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 { Button, buttonVariants, TooltipButton, TableButton };\n"],"mappings":"8UAAA,uDACA,MAAO,GAAK,CAAAA,KAAK,KAAM,OAAO,CAC9B,OAASC,IAAI,KAAQ,sBAAsB,CAC3C,OAASC,GAAG,KAA2B,0BAA0B,CAEjE,OAASC,EAAE,KAAQ,aAAa,CAChC,OAASC,WAAW,KAAQ,cAAc,CAC1C,OAASC,cAAc,CAAEC,OAAO,CAAEC,cAAc,KAAQ,WAAW,CAAC,OAAAC,GAAA,IAAAC,IAAA,CAAAC,IAAA,IAAAC,KAAA,yBAEpE,GAAM,CAAAC,cAAc,CAAGV,GAAG,CACxB,6bAA6b,CAC7b,CACEW,QAAQ,CAAE,CACRC,OAAO,CAAE,CACP,UAAS,kEAAkE,CAC3EC,WAAW,CACT,6JAA6J,CAC/JC,OAAO,CACL,uIAAuI,CACzIC,SAAS,CAAE,wEAAwE,CACnFC,KAAK,CAAE,sEAAsE,CAC7EC,IAAI,CAAE,iDACR,CAAC,CACDC,IAAI,CAAE,CACJ,UAAS,+BAA+B,CACxCC,EAAE,CAAE,+CAA+C,CACnDC,EAAE,CAAE,sCAAsC,CAC1CC,IAAI,CAAE,QACR,CACF,CAAC,CACDC,eAAe,CAAE,CACfV,OAAO,CAAE,SAAS,CAClBM,IAAI,CAAE,SACR,CACF,CACF,CAAC,CAED,QAAS,CAAAK,MAAMA,CAAAC,IAAA,CASV,IARH,CAAAC,SAAS,CAAAD,IAAA,CAATC,SAAS,CACTb,OAAO,CAAAY,IAAA,CAAPZ,OAAO,CACPM,IAAI,CAAAM,IAAA,CAAJN,IAAI,CAAAQ,YAAA,CAAAF,IAAA,CACJG,OAAO,CAAPA,OAAO,CAAAD,YAAA,UAAG,KAAK,CAAAA,YAAA,CACZE,KAAK,CAAAC,6BAAA,CAAAL,IAAA,CAAAM,SAAA,EAKR,GAAM,CAAAC,IAAI,CAAGJ,OAAO,CAAG5B,IAAI,CAAG,QAAQ,CAEtC,mBACEQ,IAAA,CAACwB,IAAI,CAAAC,QAAA,EACH,YAAU,QAAQ,CAClBP,SAAS,CAAExB,EAAE,CAACS,cAAc,CAAC,CAAEE,OAAO,CAAPA,OAAO,CAAEM,IAAI,CAAJA,IAAI,CAAEO,SAAS,CAATA,SAAU,CAAC,CAAC,CAAE,EACxDG,KAAK,CACV,CAEL,CAEA,QAAS,CAAAK,aAAaA,CAACL,KAAU,CAAE,CACjC,GAAQ,CAAAH,SAAS,CACfG,KAAK,CADCH,SAAS,CAAES,UAAU,CAC3BN,KAAK,CADYM,UAAU,CAAEC,QAAQ,CACrCP,KAAK,CADwBO,QAAQ,CAAEC,UAAU,CACjDR,KAAK,CADkCQ,UAAU,CAAExB,OAAO,CAC1DgB,KAAK,CAD8ChB,OAAO,CAAEM,IAAI,CAChEU,KAAK,CADuDV,IAAI,CAAEmB,IAAI,CACtET,KAAK,CAD6DS,IAAI,CAAEC,cAAc,CACtFV,KAAK,CADmEU,cAAc,CAGxF,GAAM,CAAAC,aAAa,cACjBhC,IAAA,CAACgB,MAAM,EACLE,SAAS,CAAEA,SAAU,CACrBe,OAAO,CACL,CAACN,UAAU,CACPC,QAAQ,CACR,UAAM,CACJ;AAAA,CAEP,CACDM,QAAQ,CAAEL,UAAU,CAACM,wBAAwB,EAAIN,UAAU,CAACK,QAAS,CACrE7B,OAAO,CAAEA,OAAQ,CACjBM,IAAI,CAAEA,IAAK,CACXyB,eAAe,CAAET,UAAW,CAC5BP,OAAO,CAAEO,UAAW,CAAAU,QAAA,CAEnBR,UAAU,CAACM,wBAAwB,cAClCnC,IAAA,CAACL,WAAW,EAACuB,SAAS,CAAC,cAAc,CAAE,CAAC,cAExClB,IAAA,QAAK,YAAU,MAAM,CAAAqC,QAAA,CAAEP,IAAI,CAAM,CAClC,CACK,CACT,CAED,GAAIC,cAAc,CAAE,CAClB,mBACE7B,KAAA,CAACL,OAAO,EAAAwC,QAAA,eACNrC,IAAA,CAACF,cAAc,EAACsB,OAAO,MAAAiB,QAAA,cACrBrC,IAAA,QAAKkB,SAAS,CAAC,cAAc,CAAAmB,QAAA,CAAEL,aAAa,CAAM,CAAC,CACrC,CAAC,cACjBhC,IAAA,CAACJ,cAAc,EAACsB,SAAS,CAAC,kDAAkD,CAAAmB,QAAA,CACzEN,cAAc,CACD,CAAC,EACV,CAEb,CAEA,MAAO,CAAAC,aACT,CAEA,QAAS,CAAAM,WAAWA,CAACjB,KAAU,CAAE,CAC/B,IAAAkB,eAAA,CAA8BhD,KAAK,CAACiD,QAAQ,CAAC,KAAK,CAAC,CAA5CC,OAAO,CAAAF,eAAA,IAAEG,UAAU,CAAAH,eAAA,IAA0B,QAErC,CAAAN,OAAOA,CAAA,SAAAU,QAAA,CAAAC,KAAA,MAAAC,SAAA,WAAAF,SAAA,EAAAA,QAAA,CAAAG,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAtB,SAAAC,QAAA,SAAAF,mBAAA,CAAAG,IAAA,UAAAC,SAAAC,QAAA,iBAAAA,QAAA,CAAAC,IAAA,CAAAD,QAAA,CAAAE,IAAA,SACEZ,UAAU,CAAC,IAAI,CAAC,CAACU,QAAA,CAAAE,IAAA,SACX,CAAAjC,KAAK,CAACY,OAAO,CAAC,CAAC,QACrBS,UAAU,CAAC,KAAK,CAAC,CAAC,wBAAAU,QAAA,CAAAG,IAAA,KAAAN,OAAA,EACnB,UAAAN,QAAA,CAAAC,KAAA,MAAAC,SAAA,EAED,GAAM,CAAAW,cAAc,CAAG,MAAM,CAC7B,GAAM,CAAAC,aAAa,CAAGpC,KAAK,CAACH,SAAS,CAAGxB,EAAE,CAAC8D,cAAc,CAAEnC,KAAK,CAACH,SAAS,CAAC,CAAGsC,cAAc,CAE5F,mBACExD,IAAA,CAAC0B,aAAa,EACZR,SAAS,CAAEuC,aAAc,CACzB9B,UAAU,CAAE,KAAM,CAClBC,QAAQ,CAAEK,OAAQ,CAClBJ,UAAU,CAAE,CACVM,wBAAwB,CAAEM,OAAO,CACjCiB,UAAU,CAAErC,KAAK,CAACqC,UACpB,CAAE,CACFrD,OAAO,CAAEgB,KAAK,CAAChB,OAAQ,CACvBM,IAAI,CAAC,IAAI,CACTmB,IAAI,CAAET,KAAK,CAACS,IAAK,CACjBC,cAAc,CAAEV,KAAK,CAACU,cAAe,CACtC,CAEL,CAEA,OAASf,MAAM,CAAEb,cAAc,CAAEuB,aAAa,CAAEY,WAAW","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ type RowAction = {
2
+ id: string;
3
+ text: string;
4
+ variant?: string;
5
+ tooltipContent?: string;
6
+ className?: string;
7
+ };
8
+ export type DataTableProps = {
9
+ data: Record<string, any>[];
10
+ headerMapper?: Record<string, string>;
11
+ className?: string;
12
+ title?: string;
13
+ subTitle?: string;
14
+ isEditable?: boolean;
15
+ actions?: RowAction[];
16
+ pagination?: {
17
+ values?: {
18
+ pageNumber: number;
19
+ pageSize: number;
20
+ };
21
+ initialPage?: number;
22
+ initialPageSize?: number;
23
+ totalCount: number;
24
+ pageSizeOptions: number[];
25
+ };
26
+ loading?: boolean;
27
+ onRowAction?: (rowIndex: number, actionId: string) => void;
28
+ onPageChange?: (pageNumber: number, pageSize: number) => void;
29
+ };
30
+ export declare function DataTable({ data, headerMapper, className, title, subTitle, actions, isEditable, pagination, loading, onRowAction, onPageChange, }: DataTableProps): import("react/jsx-runtime").JSX.Element;
31
+ export {};
@@ -0,0 +1,2 @@
1
+ import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _objectDestructuringEmpty from"@babel/runtime/helpers/objectDestructuringEmpty";import _extends from"@babel/runtime/helpers/extends";import _regeneratorRuntime from"@babel/runtime/regenerator";/* eslint-disable @typescript-eslint/no-explicit-any */import React,{useEffect,useState}from"react";import{Table,TableHeader,TableRow,TableHead,TableBody,TableCell}from"./table";import{TableLoader}from"./skeleton";import{ScrollArea,ScrollBar}from"./scroll-area";import{Card,CardContent,CardDescription,CardHeader,CardTitle}from"./card";import{Pagination,PaginationContent,renderPaginationArrows}from"./pagination";import{TableButton}from"./button";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function DataTable(_ref){var _ref2,_pagination$values$pa,_pagination$values,_ref3,_pagination$values$pa2,_pagination$values2;var _ref$data=_ref.data,data=_ref$data===void 0?[]:_ref$data,_ref$headerMapper=_ref.headerMapper,headerMapper=_ref$headerMapper===void 0?{}:_ref$headerMapper,_ref$className=_ref.className,className=_ref$className===void 0?"":_ref$className,_ref$title=_ref.title,title=_ref$title===void 0?"Title":_ref$title,_ref$subTitle=_ref.subTitle,subTitle=_ref$subTitle===void 0?"Subtitle":_ref$subTitle,_ref$actions=_ref.actions,actions=_ref$actions===void 0?[]:_ref$actions,_ref$isEditable=_ref.isEditable,isEditable=_ref$isEditable===void 0?false:_ref$isEditable,pagination=_ref.pagination,_ref$loading=_ref.loading,loading=_ref$loading===void 0?false:_ref$loading,onRowAction=_ref.onRowAction,onPageChange=_ref.onPageChange;var _useState=useState(Number((_ref2=(_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)!=null?_ref2:1)),pageNumber=_useState[0],setPageNumber=_useState[1];var _useState2=useState(Number((_ref3=(_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)!=null?_ref3:10)),pageSize=_useState2[0],setPageSize=_useState2[1];var _useState3=useState(Math.ceil(((pagination==null?void 0:pagination.totalCount)||0)/pageSize)||1),totalPages=_useState3[0],setTotalPages=_useState3[1];useEffect(function(){var _ref4,_pagination$values$pa3,_pagination$values3,_ref5,_pagination$values$pa4,_pagination$values4;setPageNumber(Number((_ref4=(_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)!=null?_ref4:1));setPageSize(Number((_ref5=(_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)!=null?_ref5:10))},[pagination]);useEffect(function(){setTotalPages(Math.ceil(((pagination==null?void 0:pagination.totalCount)||0)/pageSize)||1)},[pagination==null?void 0:pagination.totalCount,pageSize]);var headers=Object.keys(data[0]||{}).map(function(header){return headerMapper[header]||header});if(actions.length>0){headers.push("")}var rows=data.map(function(datum){var rest=_extends({},(_objectDestructuringEmpty(datum),datum));return Object.values(rest)});function handlePageChange(_x,_x2){return _handlePageChange.apply(this,arguments)}function _handlePageChange(){_handlePageChange=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(newPage,newSize){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(newPage===void 0){newPage=pageNumber}if(newSize===void 0){newSize=pageSize}setPageNumber(newPage);setPageSize(newSize);onPageChange==null||onPageChange(newPage,newSize);case 5:case"end":return _context.stop()}},_callee)}));return _handlePageChange.apply(this,arguments)}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 onRowAction==null?void 0:onRowAction(rowIndex,action.id)},variant:action.variant,text:action.text,tooltipContent:action.tooltipContent},action.id)})})}return/*#__PURE__*/_jsxs(Card,{className:"shadow border",children:[/*#__PURE__*/_jsxs(CardHeader,{children:[/*#__PURE__*/_jsx(CardTitle,{contentEditable:isEditable,className:"text-2xl",children:title}),/*#__PURE__*/_jsx(CardDescription,{contentEditable:isEditable,className:"text-sm",children:subTitle})]}),/*#__PURE__*/_jsxs(CardContent,{children:[/*#__PURE__*/_jsxs(ScrollArea,{className:className||"aspect-auto h-[250px] w-full",children:[loading?/*#__PURE__*/_jsx(TableLoader,{}):/*#__PURE__*/_jsxs(Table,{className:"caption-bottom text-sm relative",children:[/*#__PURE__*/_jsx(TableHeader,{className:"sticky top-0 z-2",children:/*#__PURE__*/_jsx(TableRow,{children:headers.map(function(head,idx){return/*#__PURE__*/_jsx(TableHead,{contentEditable:isEditable,className:actions.length>0&&idx===headers.length-1?"sticky right-0 bg-slate-100":"",children:head},idx)})})}),/*#__PURE__*/_jsx(TableBody,{children:rows.map(function(row,rIdx){return/*#__PURE__*/_jsxs(TableRow,{className:"hover:bg-muted/50 border-b transition-colors",children:[row.map(function(cell,cIdx){return/*#__PURE__*/_jsx(TableCell,{className:"p-2 align-middle whitespace-nowrap",children:cell},cIdx)}),renderActions(rIdx,actions)]},rIdx)})})]}),/*#__PURE__*/_jsx(ScrollBar,{orientation:"horizontal"})]}),pagination&&pagination.totalCount>=0&&/*#__PURE__*/_jsxs("div",{className:"flex items-center justify-between mt-4 w-full",children:[/*#__PURE__*/_jsxs("div",{className:"flex items-center gap-2",children:[/*#__PURE__*/_jsx("label",{htmlFor:"page-size-select",className:"text-sm",children:"Rows per page:"}),/*#__PURE__*/_jsx("select",{id:"page-size-select",value:pageSize,onChange:function onChange(e){return handlePageChange(1,Number(e.target.value))},className:"border rounded px-2 py-1 text-sm cursor-pointer",disabled:loading,children:pagination.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,pagination.totalCount)," of ",pagination.totalCount]}),/*#__PURE__*/_jsx(Pagination,{children:/*#__PURE__*/_jsx(PaginationContent,{className:"gap-0.2",children:renderPaginationArrows(pageNumber,totalPages,loading,handlePageChange)})})]})]})]})]})}
2
+ //# sourceMappingURL=data-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table.js","names":["React","useEffect","useState","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","TableLoader","ScrollArea","ScrollBar","Card","CardContent","CardDescription","CardHeader","CardTitle","Pagination","PaginationContent","renderPaginationArrows","TableButton","jsx","_jsx","jsxs","_jsxs","DataTable","_ref","_ref2","_pagination$values$pa","_pagination$values","_ref3","_pagination$values$pa2","_pagination$values2","_ref$data","data","_ref$headerMapper","headerMapper","_ref$className","className","_ref$title","title","_ref$subTitle","subTitle","_ref$actions","actions","_ref$isEditable","isEditable","pagination","_ref$loading","loading","onRowAction","onPageChange","_useState","Number","values","pageNumber","initialPage","setPageNumber","_useState2","pageSize","initialPageSize","setPageSize","_useState3","Math","ceil","totalCount","totalPages","setTotalPages","_ref4","_pagination$values$pa3","_pagination$values3","_ref5","_pagination$values$pa4","_pagination$values4","headers","Object","keys","map","header","length","push","rows","datum","rest","_extends","_objectDestructuringEmpty","handlePageChange","_x","_x2","_handlePageChange","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","newPage","newSize","wrap","_callee$","_context","prev","next","stop","renderActions","rowIndex","rowActions","children","action","onClick","id","variant","text","tooltipContent","contentEditable","head","idx","row","rIdx","cell","cIdx","orientation","htmlFor","value","onChange","e","target","disabled","pageSizeOptions","size","min"],"sources":["../../../../src/shadcn/components/ui/data-table.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useState } from 'react';\nimport { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from './table';\nimport { TableLoader } from './skeleton';\nimport { ScrollArea, ScrollBar } from './scroll-area';\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from './card';\nimport { Pagination, PaginationContent, renderPaginationArrows } from './pagination';\nimport { TableButton } from './button';\n\ntype RowAction = {\n id: string;\n text: string;\n variant?: string;\n tooltipContent?: string;\n className?: string;\n};\n\nexport type DataTableProps = {\n data: Record<string, any>[];\n headerMapper?: Record<string, string>;\n className?: string;\n title?: string;\n subTitle?: string;\n isEditable?: boolean;\n actions?: RowAction[];\n pagination?: {\n values?: {\n pageNumber: number;\n pageSize: number;\n };\n initialPage?: number;\n initialPageSize?: number;\n totalCount: number;\n pageSizeOptions: number[];\n };\n loading?: boolean;\n onRowAction?: (rowIndex: number, actionId: string) => void;\n onPageChange?: (pageNumber: number, pageSize: number) => void;\n};\n\nexport function DataTable({\n data = [],\n headerMapper = {},\n className = '',\n title = 'Title',\n subTitle = 'Subtitle',\n actions = [],\n isEditable = false,\n pagination,\n loading = false,\n onRowAction,\n onPageChange,\n}: DataTableProps) {\n const [pageNumber, setPageNumber] = useState(\n Number(pagination?.values?.pageNumber ?? pagination?.initialPage ?? 1),\n );\n const [pageSize, setPageSize] = useState(\n Number(pagination?.values?.pageSize ?? pagination?.initialPageSize ?? 10),\n );\n const [totalPages, setTotalPages] = useState(\n Math.ceil((pagination?.totalCount || 0) / pageSize) || 1,\n );\n\n useEffect(() => {\n setPageNumber(Number(pagination?.values?.pageNumber ?? pagination?.initialPage ?? 1));\n setPageSize(Number(pagination?.values?.pageSize ?? pagination?.initialPageSize ?? 10));\n }, [pagination]);\n\n useEffect(() => {\n setTotalPages(Math.ceil((pagination?.totalCount || 0) / pageSize) || 1);\n }, [pagination?.totalCount, pageSize]);\n\n const headers = Object.keys(data[0] || {}).map((header) => headerMapper[header] || header);\n\n if (actions.length > 0) {\n headers.push('');\n }\n\n const rows = data.map((datum) => {\n const { ...rest } = datum;\n\n return Object.values(rest);\n });\n\n async function handlePageChange(newPage = pageNumber, newSize = pageSize) {\n setPageNumber(newPage);\n setPageSize(newSize);\n onPageChange?.(newPage, newSize);\n }\n\n function renderActions(rowIndex: number, rowActions: RowAction[]) {\n if (!actions.length) {\n return null;\n }\n\n return (\n <TableCell className=\"sticky right-0 bg-white\">\n {rowActions.map((action) => (\n <TableButton\n key={action.id}\n className={action.className}\n isEditable={isEditable}\n onClick={() => onRowAction?.(rowIndex, action.id)}\n variant={action.variant}\n text={action.text}\n tooltipContent={action.tooltipContent}\n />\n ))}\n </TableCell>\n );\n }\n\n return (\n <Card className=\"shadow border\">\n <CardHeader>\n <CardTitle contentEditable={isEditable} className=\"text-2xl\">\n {title}\n </CardTitle>\n <CardDescription contentEditable={isEditable} className=\"text-sm\">\n {subTitle}\n </CardDescription>\n </CardHeader>\n <CardContent>\n <ScrollArea className={className || 'aspect-auto h-[250px] w-full'}>\n {loading ? (\n <TableLoader />\n ) : (\n <Table className=\"caption-bottom text-sm relative\">\n <TableHeader className=\"sticky top-0 z-2\">\n <TableRow>\n {headers.map((head, idx) => (\n <TableHead\n key={idx}\n contentEditable={isEditable}\n className={\n actions.length > 0 && idx === headers.length - 1\n ? 'sticky right-0 bg-slate-100'\n : ''\n }\n >\n {head}\n </TableHead>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody>\n {rows.map((row, rIdx) => (\n <TableRow key={rIdx} className=\"hover:bg-muted/50 border-b transition-colors\">\n {row.map((cell, cIdx) => (\n <TableCell key={cIdx} className=\"p-2 align-middle whitespace-nowrap\">\n {cell}\n </TableCell>\n ))}\n {renderActions(rIdx, actions)}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n )}\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n\n {pagination && pagination.totalCount >= 0 && (\n <div className=\"flex items-center justify-between mt-4 w-full\">\n <div className=\"flex items-center gap-2\">\n <label htmlFor=\"page-size-select\" className=\"text-sm\">\n Rows per page:\n </label>\n <select\n id=\"page-size-select\"\n value={pageSize}\n onChange={(e) => handlePageChange(1, Number(e.target.value))}\n className=\"border rounded px-2 py-1 text-sm cursor-pointer\"\n disabled={loading}\n >\n {pagination.pageSizeOptions.map((size) => (\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}–\n {Math.min(pageNumber * pageSize, pagination.totalCount)} of {pagination.totalCount}\n </span>\n <Pagination>\n <PaginationContent className=\"gap-0.2\">\n {renderPaginationArrows(pageNumber, totalPages, loading, handlePageChange)}\n </PaginationContent>\n </Pagination>\n </div>\n </div>\n )}\n </CardContent>\n </Card>\n );\n}\n"],"mappings":"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","ignoreList":[]}