@peak-ai/canvas 1.5.5 → 1.5.6-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@peak-ai/canvas",
|
|
3
3
|
"author": "squad-builder-experience",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
|
-
"version": "1.5.
|
|
5
|
+
"version": "1.5.6-rc.0",
|
|
6
6
|
"description": "",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@emotion/react": "^11.11.4",
|
|
@@ -70,4 +70,4 @@
|
|
|
70
70
|
"types": "index.d.ts",
|
|
71
71
|
"module": "index.js",
|
|
72
72
|
"sideEffects": false
|
|
73
|
-
}
|
|
73
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
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 */import{useEffect,useState,Fragment,useMemo,useRef}from"react";import{Table,TableHeader,TableRow,TableHead,TableBody,TableCell,TableHeadSortable}from"../../shadcn/components/ui/table";import{TableLoader}from"../../shadcn/components/ui/skeleton";import{ScrollArea,ScrollBar}from"../../shadcn/components/ui/scroll-area";import{Pagination,PaginationContent,renderPaginationArrows}from"../../shadcn/components/ui/pagination";import{
|
|
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 */import{useEffect,useState,Fragment,useMemo,useRef}from"react";import{Table,TableHeader,TableRow,TableHead,TableBody,TableCell,TableHeadSortable}from"../../shadcn/components/ui/table";import{TableLoader}from"../../shadcn/components/ui/skeleton";import{ScrollArea,ScrollBar}from"../../shadcn/components/ui/scroll-area";import{Pagination,PaginationContent,renderPaginationArrows}from"../../shadcn/components/ui/pagination";import{Button}from"../../shadcn/components/ui/button";import{cn}from"../../shadcn/utils";import{renderNoDataFallback}from"./extra";import{formatValue}from"../../helpers";import{SEMANTIC_CHIP_STYLES_MAP,RANDOM_CHIP_COLOR_PALETTE}from"../../constants";import{MoreVertical}from"lucide-react";import{useButtonForm}from"./button-form";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";/**
|
|
2
2
|
* Normalizes a value to a consistent string key for color mapping.
|
|
3
3
|
* Handles all value types: null/undefined, numbers, booleans, objects, arrays, dates.
|
|
4
4
|
* Ensures consistent color assignment for all variations of the same logical value.
|
|
@@ -7,9 +7,10 @@ if(value===null||value===undefined){return""}var str=String(value);return str.tr
|
|
|
7
7
|
* Generates a stable hash based on unique value sets per column.
|
|
8
8
|
* This hash is order-independent - it only changes when the set of unique values changes,
|
|
9
9
|
* not when rows are reordered (e.g., during sorting).
|
|
10
|
-
*/function getUniqueValuesHash(data,columnWithChipClass){if(!Array.isArray(data)||data.length===0){return""}var availableKeys=Object.keys(data[0]||{});var hashParts={};Object.keys(columnWithChipClass).forEach(function(columnKey){if(!availableKeys.includes(columnKey)){return}var chipMode=getChipMode(columnWithChipClass,columnKey);if(chipMode==="useRandom"){var uniqueNormalizedValues=new Set;data.forEach(function(row){var value=row[columnKey];var normalizedKey=normalizeValue(value);if(normalizedKey){uniqueNormalizedValues.add(normalizedKey)}});var sortedUniqueValues=Array.from(uniqueNormalizedValues).sort();hashParts[columnKey]=sortedUniqueValues}});return JSON.stringify(hashParts)}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$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$isLoading=_ref.isLoading,isLoading=_ref$isLoading===void 0?false:_ref$isLoading,onRowAction=_ref.onRowAction,onPageChange=_ref.onPageChange,onSort=_ref.onSort,sortConfig=_ref.sortConfig,_ref$otherProps=_ref.otherProps,otherProps=_ref$otherProps===void 0?{}:_ref$otherProps,height=_ref.height,_ref$decimalPrecision=_ref.decimalPrecision,decimalPrecision=_ref$decimalPrecision===void 0?2:_ref$decimalPrecision,_ref$columnWithChipCl=_ref.columnWithChipClass,columnWithChipClass=_ref$columnWithChipCl===void 0?{}:_ref$columnWithChipCl,_ref$chipStylesMappin=_ref.chipStylesMapping,chipStylesMapping=_ref$chipStylesMappin===void 0?{}:_ref$chipStylesMappin;if(!data||data.length===0){return/*#__PURE__*/_jsx(Fragment,{children:/*#__PURE__*/_jsx("div",{className:"flex flex-col overflow-hidden",children:/*#__PURE__*/_jsx("div",{"data-slot":"table-container",className:"aspect-auto w-full",style:{height:"auto",minHeight:"180px"},children:isLoading?/*#__PURE__*/_jsx(TableLoader,{}):renderNoDataFallback()})})})}var _useState=useState(null),activeSortColumn=_useState[0],setActiveSortColumn=_useState[1];var _useState2=useState({}),sortDirections=_useState2[0],setSortDirections=_useState2[1];var _useState3=useState(null),activeRowIndex=_useState3[0],setActiveRowIndex=_useState3[1];var _useState4=useState(null),activeAction=_useState4[0],setActiveAction=_useState4[1];var _useState5=useState(false),isFormSubmitting=_useState5[0],setIsFormSubmitting=_useState5[1];var _useState6=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=_useState6[0],setPageNumber=_useState6[1];var _useState7=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=_useState7[0],setPageSize=_useState7[1];var _useState8=useState(Math.ceil(((pagination==null?void 0:pagination.totalCount)||0)/pageSize)||1),totalPages=_useState8[0],setTotalPages=_useState8[1];var _useState9=useState({}),chipColorMap=_useState9[0],setChipColorMap=_useState9[1]
|
|
10
|
+
*/function getUniqueValuesHash(data,columnWithChipClass){if(!Array.isArray(data)||data.length===0){return""}var availableKeys=Object.keys(data[0]||{});var hashParts={};Object.keys(columnWithChipClass).forEach(function(columnKey){if(!availableKeys.includes(columnKey)){return}var chipMode=getChipMode(columnWithChipClass,columnKey);if(chipMode==="useRandom"){var uniqueNormalizedValues=new Set;data.forEach(function(row){var value=row[columnKey];var normalizedKey=normalizeValue(value);if(normalizedKey){uniqueNormalizedValues.add(normalizedKey)}});var sortedUniqueValues=Array.from(uniqueNormalizedValues).sort();hashParts[columnKey]=sortedUniqueValues}});return JSON.stringify(hashParts)}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$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$isLoading=_ref.isLoading,isLoading=_ref$isLoading===void 0?false:_ref$isLoading,onRowAction=_ref.onRowAction,onPageChange=_ref.onPageChange,onSort=_ref.onSort,sortConfig=_ref.sortConfig,_ref$otherProps=_ref.otherProps,otherProps=_ref$otherProps===void 0?{}:_ref$otherProps,height=_ref.height,_ref$decimalPrecision=_ref.decimalPrecision,decimalPrecision=_ref$decimalPrecision===void 0?2:_ref$decimalPrecision,_ref$columnWithChipCl=_ref.columnWithChipClass,columnWithChipClass=_ref$columnWithChipCl===void 0?{}:_ref$columnWithChipCl,_ref$chipStylesMappin=_ref.chipStylesMapping,chipStylesMapping=_ref$chipStylesMappin===void 0?{}:_ref$chipStylesMappin;if(!data||data.length===0){return/*#__PURE__*/_jsx(Fragment,{children:/*#__PURE__*/_jsx("div",{className:"flex flex-col overflow-hidden",children:/*#__PURE__*/_jsx("div",{"data-slot":"table-container",className:"aspect-auto w-full",style:{height:"auto",minHeight:"180px"},children:isLoading?/*#__PURE__*/_jsx(TableLoader,{}):renderNoDataFallback()})})})}var _useState=useState(null),activeSortColumn=_useState[0],setActiveSortColumn=_useState[1];var _useState2=useState({}),sortDirections=_useState2[0],setSortDirections=_useState2[1];var _useState3=useState(null),activeRowIndex=_useState3[0],setActiveRowIndex=_useState3[1];var _useState4=useState(null),activeAction=_useState4[0],setActiveAction=_useState4[1];var _useState5=useState(false),isFormSubmitting=_useState5[0],setIsFormSubmitting=_useState5[1];var _useState6=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=_useState6[0],setPageNumber=_useState6[1];var _useState7=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=_useState7[0],setPageSize=_useState7[1];var _useState8=useState(Math.ceil(((pagination==null?void 0:pagination.totalCount)||0)/pageSize)||1),totalPages=_useState8[0],setTotalPages=_useState8[1];var _useState9=useState({}),chipColorMap=_useState9[0],setChipColorMap=_useState9[1];// Track which dropdown is currently open (by row index)
|
|
11
|
+
var _useState10=useState(null),openDropdownIndex=_useState10[0],setOpenDropdownIndex=_useState10[1];var prevDataHashRef=useRef("");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:25))},[pagination]);useEffect(function(){setTotalPages(Math.ceil(((pagination==null?void 0:pagination.totalCount)||0)/pageSize)||1)},[pagination==null?void 0:pagination.totalCount,pageSize]);useEffect(function(){if(sortConfig){setSortDirections(sortConfig);var first=Object.keys(sortConfig)[0];if(first){setActiveSortColumn(first)}}},[sortConfig]);useEffect(function(){if(sortConfig!=null&&sortConfig.sortColumn||sortConfig!=null&&sortConfig.sortDirection){sortConfig.sortColumn=null;sortConfig.sortDirection=null}setActiveSortColumn(null);setSortDirections({})},[]);var computedColorMap=useMemo(function(){if(!Array.isArray(data)||data.length===0){return{}}// Get available column keys from first row
|
|
11
12
|
var availableKeys=Object.keys(data[0]||{});var newColorMap={};// Process each column that uses random chips
|
|
12
13
|
Object.keys(columnWithChipClass).forEach(function(columnKey){// Validate column key exists in data
|
|
13
14
|
if(!availableKeys.includes(columnKey)){return}var chipMode=getChipMode(columnWithChipClass,columnKey);if(chipMode==="useRandom"){if(!newColorMap[columnKey]){newColorMap[columnKey]={}}var uniqueNormalizedValues=new Set;data.forEach(function(row){var value=row[columnKey];var normalizedKey=normalizeValue(value);if(normalizedKey){uniqueNormalizedValues.add(normalizedKey)}});var sortedUniqueValues=Array.from(uniqueNormalizedValues).sort();sortedUniqueValues.forEach(function(normalizedKey,index){if(!newColorMap[columnKey][normalizedKey]){var colorIndex=index%RANDOM_CHIP_COLOR_PALETTE.length;newColorMap[columnKey][normalizedKey]=RANDOM_CHIP_COLOR_PALETTE[colorIndex]}})}});return newColorMap},[data,columnWithChipClass]);useEffect(function(){var uniqueValuesHash=getUniqueValuesHash(data,columnWithChipClass);// Only update if the set of unique values actually changed
|
|
14
|
-
if(uniqueValuesHash!==prevDataHashRef.current){prevDataHashRef.current=uniqueValuesHash;setChipColorMap(function(prevMap){var merged=_extends({},prevMap);Object.keys(computedColorMap).forEach(function(columnKey){merged[columnKey]=_extends({},computedColorMap[columnKey],merged[columnKey])});return merged})}},[computedColorMap,data,columnWithChipClass]);useEffect(function(){setChipColorMap(function(prevMap){var cleaned=_extends({},prevMap);var hasChanges=false;Object.keys(cleaned).forEach(function(columnKey){var chipMode=getChipMode(columnWithChipClass,columnKey);if(!chipMode){delete cleaned[columnKey];hasChanges=true}});return hasChanges?cleaned:prevMap})},[columnWithChipClass]);var _useButtonForm=useButtonForm({formMapper:activeAction==null?void 0:activeAction.action.formMapper,formTitle:activeAction==null?void 0:activeAction.action.formTitle,formDescription:activeAction==null?void 0:activeAction.action.formDescription,formButtonText:activeAction==null?void 0:activeAction.action.formButtonText,isSubmitting:isFormSubmitting||isLoading,onClose:function onClose(){setActiveRowIndex(null);setActiveAction(null)},onSubmit:function(){var _onSubmit=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(formData){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(!(activeRowIndex!==null&&activeAction)){_context.next=10;break}setIsFormSubmitting(true);_context.prev=2;_context.next=5;return onRowAction==null?void 0:onRowAction(activeRowIndex,activeAction.id,formData);case 5:_context.prev=5;setIsFormSubmitting(false);return _context.finish(5);case 8:setActiveAction(null);setActiveRowIndex(null);case 10:case"end":return _context.stop()}},_callee,null,[[2,,5,8]])}));function onSubmit(_x){return _onSubmit.apply(this,arguments)}return onSubmit}()}),FormDialog=_useButtonForm.FormDialog,openForm=_useButtonForm.openForm;function handleButtonClick(rowIndex,action){if(action.action.formMapper&&Object.keys(action.action.formMapper).length>0){setActiveRowIndex(rowIndex);setActiveAction(action)}else{onRowAction==null||onRowAction(rowIndex,action.id)}}useEffect(function(){if(activeAction!=null&&activeAction.action.formMapper&&Object.keys(activeAction.action.formMapper).length>0){openForm()}},[activeAction]);var originalKeys=Object.keys(data[0]||{}).filter(function(key){return key in headerMapper});var headers=originalKeys.map(function(key){return headerMapper[key]});if(actions.length>0){headers.push("")}var rows=data.map(function(datum){return originalKeys.map(function(key){return datum[key]})});function handlePageChange(_x2,_x3){return _handlePageChange.apply(this,arguments)}function _handlePageChange(){_handlePageChange=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(newPage,newSize){return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.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 _context2.stop()}},_callee2)}));return _handlePageChange.apply(this,arguments)}function handleSortClick(column,direction){setActiveSortColumn(direction?column:null);setSortDirections(function(prev){var _extends2;return _extends({},prev,(_extends2={},_extends2[column]=direction,_extends2))});onSort==null||onSort(column,direction)}function
|
|
15
|
+
if(uniqueValuesHash!==prevDataHashRef.current){prevDataHashRef.current=uniqueValuesHash;setChipColorMap(function(prevMap){var merged=_extends({},prevMap);Object.keys(computedColorMap).forEach(function(columnKey){merged[columnKey]=_extends({},computedColorMap[columnKey],merged[columnKey])});return merged})}},[computedColorMap,data,columnWithChipClass]);useEffect(function(){setChipColorMap(function(prevMap){var cleaned=_extends({},prevMap);var hasChanges=false;Object.keys(cleaned).forEach(function(columnKey){var chipMode=getChipMode(columnWithChipClass,columnKey);if(!chipMode){delete cleaned[columnKey];hasChanges=true}});return hasChanges?cleaned:prevMap})},[columnWithChipClass]);var _useButtonForm=useButtonForm({formMapper:activeAction==null?void 0:activeAction.action.formMapper,formTitle:activeAction==null?void 0:activeAction.action.formTitle,formDescription:activeAction==null?void 0:activeAction.action.formDescription,formButtonText:activeAction==null?void 0:activeAction.action.formButtonText,isSubmitting:isFormSubmitting||isLoading,onClose:function onClose(){setActiveRowIndex(null);setActiveAction(null)},onSubmit:function(){var _onSubmit=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(formData){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(!(activeRowIndex!==null&&activeAction)){_context.next=10;break}setIsFormSubmitting(true);_context.prev=2;_context.next=5;return onRowAction==null?void 0:onRowAction(activeRowIndex,activeAction.id,formData);case 5:_context.prev=5;setIsFormSubmitting(false);return _context.finish(5);case 8:setActiveAction(null);setActiveRowIndex(null);case 10:case"end":return _context.stop()}},_callee,null,[[2,,5,8]])}));function onSubmit(_x){return _onSubmit.apply(this,arguments)}return onSubmit}()}),FormDialog=_useButtonForm.FormDialog,openForm=_useButtonForm.openForm;function handleButtonClick(rowIndex,action){if(action.action.formMapper&&Object.keys(action.action.formMapper).length>0){setActiveRowIndex(rowIndex);setActiveAction(action)}else{onRowAction==null||onRowAction(rowIndex,action.id)}}useEffect(function(){if(activeAction!=null&&activeAction.action.formMapper&&Object.keys(activeAction.action.formMapper).length>0){openForm()}},[activeAction]);var originalKeys=Object.keys(data[0]||{}).filter(function(key){return key in headerMapper});var headers=originalKeys.map(function(key){return headerMapper[key]});if(actions.length>0){headers.push("")}var rows=data.map(function(datum){return originalKeys.map(function(key){return datum[key]})});function handlePageChange(_x2,_x3){return _handlePageChange.apply(this,arguments)}function _handlePageChange(){_handlePageChange=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(newPage,newSize){return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.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 _context2.stop()}},_callee2)}));return _handlePageChange.apply(this,arguments)}function handleSortClick(column,direction){setActiveSortColumn(direction?column:null);setSortDirections(function(prev){var _extends2;return _extends({},prev,(_extends2={},_extends2[column]=direction,_extends2))});onSort==null||onSort(column,direction)}function ActionsDropdown(_ref6){var rowIndex=_ref6.rowIndex,rowActions=_ref6.rowActions;var isOpen=openDropdownIndex===rowIndex;function handleActionClick(actionId){setOpenDropdownIndex(null);onRowAction==null||onRowAction(rowIndex,actionId)}function toggleDropdown(){setOpenDropdownIndex(isOpen?null:rowIndex)}return/*#__PURE__*/_jsxs(_Fragment,{children:[isOpen&&/*#__PURE__*/_jsx("div",{className:"fixed inset-0 z-40",onClick:function onClick(){return setOpenDropdownIndex(null)},style:{background:"transparent"}}),/*#__PURE__*/_jsxs("div",{className:"relative",children:[/*#__PURE__*/_jsx(Button,{variant:"ghost",size:"icon",onClick:function onClick(e){e.stopPropagation();toggleDropdown()},disabled:isLoading,className:"h-8 w-8 relative z-50",children:/*#__PURE__*/_jsx(MoreVertical,{className:"h-4 w-4"})}),isOpen&&/*#__PURE__*/_jsx("div",{className:"absolute right-full top-0 mr-2 w-48 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 z-50",children:/*#__PURE__*/_jsx("div",{className:"py-1",role:"menu",children:rowActions.map(function(action){return/*#__PURE__*/_jsx("button",{onClick:function onClick(){return handleActionClick(action.id)},className:cn("block w-full text-left px-4 py-2 text-sm hover:bg-accent transition-colors",action.className),disabled:isLoading,role:"menuitem",children:action.text},action.id)})})})]})]})}function renderActions(rowIndex,rowActions){if(!actions.length){return null}return/*#__PURE__*/_jsx(TableCell,{className:"sticky right-0 bg-white overflow-visible",children:/*#__PURE__*/_jsx(ActionsDropdown,{rowIndex:rowIndex,rowActions:rowActions})})}var defaultClasses="aspect-auto w-full";var mergedClasses=className?cn(defaultClasses,className):defaultClasses;function getRandomColorForValue(columnKey,value){var _chipColorMap$columnK;var normalizedKey=normalizeValue(value);if((_chipColorMap$columnK=chipColorMap[columnKey])!=null&&_chipColorMap$columnK[normalizedKey]){return chipColorMap[columnKey][normalizedKey]}return"bg-gray-50 text-gray-900 shadow-sm"}function renderChip(columnKey,value){var chipMode=getChipMode(columnWithChipClass,columnKey);var formattedValue=formatValue(value,decimalPrecision);if(!chipMode){return/*#__PURE__*/_jsx(_Fragment,{children:formattedValue})}var chipClassName="";if(chipMode==="useMap"){var _chipStylesMapping$co;var valueStr=String(value);chipClassName=(_chipStylesMapping$co=chipStylesMapping[columnKey])==null?void 0:_chipStylesMapping$co[valueStr];if(!chipClassName){var valueLower=valueStr.toLowerCase().trim();chipClassName=SEMANTIC_CHIP_STYLES_MAP[valueLower]}if(!chipClassName){chipClassName="bg-gray-50 text-gray-900 shadow-sm"}}else if(chipMode==="useRandom"){chipClassName=getRandomColorForValue(columnKey,value)}return/*#__PURE__*/_jsx("span",{className:cn("inline-flex items-center rounded-md px-2 py-1 text-xs font-medium ring-1 ring-inset ring-gray-500/10",chipClassName),children:formattedValue})}function renderTableComponent(){if(isLoading||!data||data.length===0){return/*#__PURE__*/_jsx(TableLoader,{})}return/*#__PURE__*/_jsxs(Table,_extends({},otherProps,{className:"caption-bottom text-sm relative "+mergedClasses,"data-slot":"table",children:[/*#__PURE__*/_jsx(TableHeader,{"data-slot":"table-header",className:"sticky top-0 z-2",children:/*#__PURE__*/_jsx(TableRow,{children:headers.map(function(head,idx){var isActionColumn=actions.length>0&&idx===headers.length-1;var originalKey=originalKeys[idx];if(isActionColumn){return/*#__PURE__*/_jsx(TableHead,{"data-slot":"table-header-"+idx,contentEditable:isEditable,className:"sticky right-0 bg-slate-100",children:head},idx)}return/*#__PURE__*/_jsx(TableHeadSortable,{"data-slot":"table-header-"+idx,sortDirection:sortDirections[originalKey]||"asc",isActive:activeSortColumn===originalKey,onSort:function onSort(direction){return handleSortClick(originalKey,direction)},sortable:!isLoading,isEditable:isEditable,children:head},idx)})})}),/*#__PURE__*/_jsx(TableBody,{"data-slot":"table-body",children:rows.map(function(row,rIdx){return/*#__PURE__*/_jsxs(TableRow,{"data-slot":"row-"+rIdx,className:"hover:bg-muted/50 border-b transition-colors",children:[row.map(function(cell,cIdx){var columnKey=originalKeys[cIdx];var chipMode=columnKey?getChipMode(columnWithChipClass,columnKey):undefined;var shouldRenderChip=!!chipMode;return/*#__PURE__*/_jsx(TableCell,{"data-slot":"cell-"+rIdx+"-"+cIdx,className:"p-2 align-middle whitespace-nowrap",contentEditable:false,children:shouldRenderChip?renderChip(columnKey,cell):formatValue(cell,decimalPrecision)},cIdx)}),renderActions(rIdx,actions)]},rIdx)})})]}))}return/*#__PURE__*/_jsxs(Fragment,{children:[/*#__PURE__*/_jsx("div",{className:"flex flex-col h-full overflow-hidden",children:/*#__PURE__*/_jsxs(ScrollArea,_extends({"data-slot":"table-container",className:mergedClasses},height!==undefined&&{style:{height:height}},{children:[renderTableComponent(),/*#__PURE__*/_jsx(ScrollBar,{orientation:"horizontal"})]}))}),pagination&&pagination.totalCount>0&&/*#__PURE__*/_jsxs("div",{className:"flex-shrink-0 flex items-center justify-between mt-2 w-full overflow-x-auto border-t pt-2",children:[/*#__PURE__*/_jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[/*#__PURE__*/_jsx("label",{htmlFor:"page-size-select",className:"text-sm whitespace-nowrap",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:isLoading,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 ml-1.5",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 flex-shrink-0",children:renderPaginationArrows(pageNumber,totalPages,isLoading,handlePageChange)})})]})]}),FormDialog]})}
|
|
15
16
|
//# sourceMappingURL=data-table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.js","names":["useEffect","useState","Fragment","useMemo","useRef","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","TableHeadSortable","TableLoader","ScrollArea","ScrollBar","Pagination","PaginationContent","renderPaginationArrows","TableButton","cn","renderNoDataFallback","formatValue","SEMANTIC_CHIP_STYLES_MAP","RANDOM_CHIP_COLOR_PALETTE","useButtonForm","jsx","_jsx","_Fragment","jsxs","_jsxs","normalizeValue","value","undefined","str","String","trim","toLowerCase","getChipMode","columnWithChipClass","columnKey","mode","getUniqueValuesHash","data","Array","isArray","length","availableKeys","Object","keys","hashParts","forEach","includes","chipMode","uniqueNormalizedValues","Set","row","normalizedKey","add","sortedUniqueValues","from","sort","JSON","stringify","DataTable","_ref","_ref2","_pagination$values$pa","_pagination$values","_ref3","_pagination$values$pa2","_pagination$values2","_ref$data","_ref$headerMapper","headerMapper","_ref$className","className","_ref$actions","actions","_ref$isEditable","isEditable","pagination","_ref$isLoading","isLoading","onRowAction","onPageChange","onSort","sortConfig","_ref$otherProps","otherProps","height","_ref$decimalPrecision","decimalPrecision","_ref$columnWithChipCl","_ref$chipStylesMappin","chipStylesMapping","children","style","minHeight","_useState","activeSortColumn","setActiveSortColumn","_useState2","sortDirections","setSortDirections","_useState3","activeRowIndex","setActiveRowIndex","_useState4","activeAction","setActiveAction","_useState5","isFormSubmitting","setIsFormSubmitting","_useState6","Number","values","pageNumber","initialPage","setPageNumber","_useState7","pageSize","initialPageSize","setPageSize","_useState8","Math","ceil","totalCount","totalPages","setTotalPages","_useState9","chipColorMap","setChipColorMap","prevDataHashRef","_ref4","_pagination$values$pa3","_pagination$values3","_ref5","_pagination$values$pa4","_pagination$values4","first","sortColumn","sortDirection","computedColorMap","newColorMap","index","colorIndex","uniqueValuesHash","current","prevMap","merged","_extends","cleaned","hasChanges","_useButtonForm","formMapper","action","formTitle","formDescription","formButtonText","isSubmitting","onClose","onSubmit","_onSubmit","_asyncToGenerator","_regeneratorRuntime","mark","_callee","formData","wrap","_callee$","_context","prev","next","id","finish","stop","_x","apply","arguments","FormDialog","openForm","handleButtonClick","rowIndex","originalKeys","filter","key","headers","map","push","rows","datum","handlePageChange","_x2","_x3","_handlePageChange","_callee2","newPage","newSize","_callee2$","_context2","handleSortClick","column","direction","_extends2","renderActions","rowActions","onClick","variant","text","tooltipContent","disabled","defaultClasses","mergedClasses","getRandomColorForValue","_chipColorMap$columnK","renderChip","formattedValue","chipClassName","_chipStylesMapping$co","valueStr","valueLower","renderTableComponent","head","idx","isActionColumn","originalKey","contentEditable","isActive","sortable","rIdx","cell","cIdx","shouldRenderChip","orientation","htmlFor","onChange","e","target","pageSizeOptions","size","min"],"sources":["../../../src/plugins/helpers/data-table.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useState, Fragment, useMemo, useRef } from 'react';\nimport {\n Table,\n TableHeader,\n TableRow,\n TableHead,\n TableBody,\n TableCell,\n TableHeadSortable,\n SortDirection,\n} from '../../shadcn/components/ui/table';\nimport { TableLoader } from '../../shadcn/components/ui/skeleton';\nimport { ScrollArea, ScrollBar } from '../../shadcn/components/ui/scroll-area';\nimport {\n Pagination,\n PaginationContent,\n renderPaginationArrows,\n} from '../../shadcn/components/ui/pagination';\nimport { TableButton } from '../../shadcn/components/ui/button';\nimport { cn } from '../../shadcn/utils';\nimport { renderNoDataFallback } from './extra';\nimport { formatValue } from '../../helpers';\nimport { SEMANTIC_CHIP_STYLES_MAP, RANDOM_CHIP_COLOR_PALETTE } from '../../constants';\nimport { useButtonForm } from './button-form';\n\ntype RowAction = {\n id: string;\n text: string;\n variant?: string;\n tooltipContent?: string;\n className?: string;\n action: any;\n};\n\nexport type DataTableProps = {\n data: Record<string, any>[];\n headerMapper?: Record<string, string>;\n className?: 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 isLoading?: boolean;\n onRowAction?: (rowIndex: number, actionId: string, formData?: Record<string, any>) => void;\n onPageChange?: (pageNumber: number, pageSize: number) => void;\n onSort?: (column: string, direction: SortDirection) => void;\n sortConfig?: Record<string, SortDirection>;\n otherProps?: Record<string, any>;\n height?: string | number;\n decimalPrecision?: number;\n columnWithChipClass?: Record<string, 'useMap' | 'useRandom'>;\n chipStylesMapping?: Record<string, Record<string, string>>;\n};\n\n/**\n * Normalizes a value to a consistent string key for color mapping.\n * Handles all value types: null/undefined, numbers, booleans, objects, arrays, dates.\n * Ensures consistent color assignment for all variations of the same logical value.\n */\nfunction normalizeValue(value: any): string {\n // Handle null/undefined\n if (value === null || value === undefined) {\n return '';\n }\n\n const str = String(value);\n \n return str.trim().toLowerCase();\n}\n\nfunction getChipMode(\n columnWithChipClass: Record<string, 'useMap' | 'useRandom'>,\n columnKey: string\n): 'useMap' | 'useRandom' | undefined {\n if (!(columnKey in columnWithChipClass)) {\n return undefined;\n }\n \n const mode = columnWithChipClass[columnKey];\n\n if (mode !== 'useMap' && mode !== 'useRandom') {\n return 'useRandom';\n }\n \n return mode;\n}\n\n/**\n * Generates a stable hash based on unique value sets per column.\n * This hash is order-independent - it only changes when the set of unique values changes,\n * not when rows are reordered (e.g., during sorting).\n */\nfunction getUniqueValuesHash(\n data: Record<string, any>[],\n columnWithChipClass: Record<string, 'useMap' | 'useRandom'>\n): string {\n if (!Array.isArray(data) || data.length === 0) {\n return '';\n }\n\n const availableKeys = Object.keys(data[0] || {});\n const hashParts: Record<string, string[]> = {};\n\n Object.keys(columnWithChipClass).forEach((columnKey) => {\n if (!availableKeys.includes(columnKey)) {\n return;\n }\n\n const chipMode = getChipMode(columnWithChipClass, columnKey);\n if (chipMode === 'useRandom') {\n const uniqueNormalizedValues = new Set<string>();\n data.forEach((row) => {\n const value = row[columnKey];\n const normalizedKey = normalizeValue(value);\n\n if (normalizedKey) {\n uniqueNormalizedValues.add(normalizedKey);\n }\n });\n const sortedUniqueValues = Array.from(uniqueNormalizedValues).sort();\n hashParts[columnKey] = sortedUniqueValues;\n }\n });\n\n return JSON.stringify(hashParts);\n}\n\nexport function DataTable({\n data = [],\n headerMapper = {},\n className = '',\n actions = [],\n isEditable = false,\n pagination,\n isLoading = false,\n onRowAction,\n onPageChange,\n onSort,\n sortConfig,\n otherProps = {},\n height,\n decimalPrecision = 2,\n columnWithChipClass = {},\n chipStylesMapping = {},\n}: DataTableProps) {\n\n if (!data || data.length === 0) {\n return (\n <Fragment>\n <div className=\"flex flex-col overflow-hidden\">\n <div\n data-slot=\"table-container\"\n className=\"aspect-auto w-full\"\n style={{ height: 'auto', minHeight: '180px' }}\n >\n {isLoading ? <TableLoader /> : renderNoDataFallback()}\n </div>\n </div>\n </Fragment>\n );\n }\n\n const [activeSortColumn, setActiveSortColumn] = useState<string | null>(null);\n const [sortDirections, setSortDirections] = useState<Record<string, SortDirection>>({});\n const [activeRowIndex, setActiveRowIndex] = useState<number | null>(null);\n const [activeAction, setActiveAction] = useState<RowAction | null>(null);\n const [isFormSubmitting, setIsFormSubmitting] = useState(false);\n\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 const [chipColorMap, setChipColorMap] = useState<Record<string, Record<string, string>>>({});\n\n const prevDataHashRef = useRef<string>('');\n\n useEffect(() => {\n setPageNumber(Number(pagination?.values?.pageNumber ?? pagination?.initialPage ?? 1));\n setPageSize(Number(pagination?.values?.pageSize ?? pagination?.initialPageSize ?? 25));\n }, [pagination]);\n\n useEffect(() => {\n setTotalPages(Math.ceil((pagination?.totalCount || 0) / pageSize) || 1);\n }, [pagination?.totalCount, pageSize]);\n\n useEffect(() => {\n if (sortConfig) {\n setSortDirections(sortConfig);\n const first = Object.keys(sortConfig)[0];\n\n if (first) {\n setActiveSortColumn(first);\n }\n }\n }, [sortConfig]);\n\n useEffect(() => {\n if (sortConfig?.sortColumn || sortConfig?.sortDirection) {\n sortConfig.sortColumn = null;\n sortConfig.sortDirection = null;\n }\n \n setActiveSortColumn(null);\n setSortDirections({});\n }, []);\n\n const computedColorMap = useMemo(() => {\n if (!Array.isArray(data) || data.length === 0) {\n return {};\n }\n\n // Get available column keys from first row\n const availableKeys = Object.keys(data[0] || {});\n \n const newColorMap: Record<string, Record<string, string>> = {};\n\n // Process each column that uses random chips\n Object.keys(columnWithChipClass).forEach((columnKey) => {\n // Validate column key exists in data\n if (!availableKeys.includes(columnKey)) {\n return;\n }\n\n const chipMode = getChipMode(columnWithChipClass, columnKey);\n if (chipMode === 'useRandom') {\n if (!newColorMap[columnKey]) {\n newColorMap[columnKey] = {};\n }\n\n const uniqueNormalizedValues = new Set<string>();\n data.forEach((row) => {\n const value = row[columnKey];\n const normalizedKey = normalizeValue(value);\n\n if (normalizedKey) {\n uniqueNormalizedValues.add(normalizedKey);\n }\n });\n\n const sortedUniqueValues = Array.from(uniqueNormalizedValues).sort();\n\n sortedUniqueValues.forEach((normalizedKey, index) => {\n if (!newColorMap[columnKey][normalizedKey]) {\n const colorIndex = index % RANDOM_CHIP_COLOR_PALETTE.length;\n newColorMap[columnKey][normalizedKey] = RANDOM_CHIP_COLOR_PALETTE[colorIndex];\n }\n });\n }\n });\n\n return newColorMap;\n }, [data, columnWithChipClass]);\n\n useEffect(() => {\n const uniqueValuesHash = getUniqueValuesHash(data, columnWithChipClass);\n \n // Only update if the set of unique values actually changed\n if (uniqueValuesHash !== prevDataHashRef.current) {\n prevDataHashRef.current = uniqueValuesHash;\n \n setChipColorMap((prevMap) => {\n const merged = { ...prevMap };\n Object.keys(computedColorMap).forEach((columnKey) => {\n merged[columnKey] = { ...computedColorMap[columnKey], ...merged[columnKey] };\n });\n return merged;\n });\n }\n }, [computedColorMap, data, columnWithChipClass]);\n\n useEffect(() => {\n setChipColorMap((prevMap) => {\n const cleaned = { ...prevMap };\n let hasChanges = false;\n\n Object.keys(cleaned).forEach((columnKey) => {\n const chipMode = getChipMode(columnWithChipClass, columnKey);\n if (!chipMode) {\n delete cleaned[columnKey];\n hasChanges = true;\n }\n });\n \n return hasChanges ? cleaned : prevMap;\n });\n }, [columnWithChipClass]);\n\n const { FormDialog, openForm } = useButtonForm({\n formMapper: activeAction?.action.formMapper,\n formTitle: activeAction?.action.formTitle,\n formDescription: activeAction?.action.formDescription,\n formButtonText: activeAction?.action.formButtonText,\n isSubmitting: isFormSubmitting || isLoading,\n onClose: () => {\n setActiveRowIndex(null);\n setActiveAction(null);\n },\n onSubmit: async (formData) => {\n if (activeRowIndex !== null && activeAction) {\n setIsFormSubmitting(true);\n try {\n await onRowAction?.(activeRowIndex, activeAction.id, formData);\n } finally {\n setIsFormSubmitting(false);\n }\n\n setActiveAction(null);\n setActiveRowIndex(null);\n }\n },\n });\n\n function handleButtonClick(rowIndex: number, action: RowAction) {\n if (action.action.formMapper && Object.keys(action.action.formMapper).length > 0) {\n setActiveRowIndex(rowIndex);\n setActiveAction(action);\n } else {\n onRowAction?.(rowIndex, action.id);\n }\n}\n\n useEffect(() => {\n if (activeAction?.action.formMapper && Object.keys(activeAction.action.formMapper).length > 0) {\n openForm();\n }\n }, [activeAction]); \n\n\n const originalKeys = Object.keys(data[0] || {}).filter((key) => key in headerMapper);\n const headers = originalKeys.map((key) => headerMapper[key]);\n\n if (actions.length > 0) {\n headers.push('');\n }\n\n const rows = data.map((datum: any) => originalKeys.map((key) => datum[key]));\n\n async function handlePageChange(newPage = pageNumber, newSize = pageSize) {\n setPageNumber(newPage);\n setPageSize(newSize);\n onPageChange?.(newPage, newSize);\n }\n\n function handleSortClick(column: string, direction: SortDirection) {\n setActiveSortColumn(direction ? column : null);\n setSortDirections((prev) => ({\n ...prev,\n [column]: direction,\n }));\n onSort?.(column, direction);\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={() => handleButtonClick(rowIndex, action)}\n variant={action.variant}\n text={action.text}\n tooltipContent={action.tooltipContent}\n disabled={isLoading}\n />\n ))}\n </TableCell>\n );\n }\n\n const defaultClasses = `aspect-auto w-full`;\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n function getRandomColorForValue(columnKey: string, value: any): string {\n const normalizedKey = normalizeValue(value);\n\n if (chipColorMap[columnKey]?.[normalizedKey]) {\n return chipColorMap[columnKey][normalizedKey];\n }\n \n return 'bg-gray-50 text-gray-900 shadow-sm';\n }\n\n function renderChip(columnKey: string, value: any) {\n const chipMode = getChipMode(columnWithChipClass, columnKey);\n const formattedValue = formatValue(value, decimalPrecision);\n \n if (!chipMode) {\n return <>{formattedValue}</>;\n }\n\n let chipClassName = '';\n \n if (chipMode === 'useMap') {\n const valueStr = String(value);\n chipClassName = chipStylesMapping[columnKey]?.[valueStr];\n \n if (!chipClassName) {\n const valueLower = valueStr.toLowerCase().trim();\n chipClassName = SEMANTIC_CHIP_STYLES_MAP[valueLower];\n }\n\n if (!chipClassName) {\n chipClassName = 'bg-gray-50 text-gray-900 shadow-sm';\n }\n } else if (chipMode === 'useRandom') {\n chipClassName = getRandomColorForValue(columnKey, value);\n }\n\n return (\n <span\n className={cn(\n 'inline-flex items-center rounded-md px-2 py-1 text-xs font-medium ring-1 ring-inset ring-gray-500/10',\n chipClassName\n )}\n >\n {formattedValue}\n </span>\n );\n }\n\n function renderTableComponent() {\n if (isLoading || (!data || data.length === 0)) {\n return <TableLoader />;\n }\n\n return (\n <Table\n {...otherProps}\n className={`caption-bottom text-sm relative ${mergedClasses}`}\n data-slot=\"table\"\n >\n <TableHeader data-slot=\"table-header\" className=\"sticky top-0 z-2\">\n <TableRow>\n {headers.map((head: string, idx: number) => {\n const isActionColumn = actions.length > 0 && idx === headers.length - 1;\n const originalKey = originalKeys[idx];\n\n if (isActionColumn) {\n return (\n <TableHead\n key={idx}\n data-slot={`table-header-${idx}`}\n contentEditable={isEditable}\n className=\"sticky right-0 bg-slate-100\"\n >\n {head}\n </TableHead>\n );\n }\n\n return (\n <TableHeadSortable\n key={idx}\n data-slot={`table-header-${idx}`}\n sortDirection={sortDirections[originalKey] || 'asc'}\n isActive={activeSortColumn === originalKey}\n onSort={(direction) => handleSortClick(originalKey, direction)}\n sortable={!isLoading}\n isEditable={isEditable}\n >\n {head}\n </TableHeadSortable>\n );\n })}\n </TableRow>\n </TableHeader>\n <TableBody data-slot=\"table-body\">\n {rows.map((row: any[], rIdx: number) => (\n <TableRow\n key={rIdx}\n data-slot={`row-${rIdx}`}\n className=\"hover:bg-muted/50 border-b transition-colors\"\n >\n {row.map((cell: string, cIdx: number) => {\n const columnKey = originalKeys[cIdx];\n const chipMode = columnKey ? getChipMode(columnWithChipClass, columnKey) : undefined;\n const shouldRenderChip = !!chipMode;\n \n return (\n <TableCell\n key={cIdx}\n data-slot={`cell-${rIdx}-${cIdx}`}\n className=\"p-2 align-middle whitespace-nowrap\"\n contentEditable={false}\n >\n {shouldRenderChip ? renderChip(columnKey, cell) : formatValue(cell, decimalPrecision)}\n </TableCell>\n );\n })}\n {renderActions(rIdx, actions)}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n );\n }\n\n return (\n <Fragment>\n <div className=\"flex flex-col h-full overflow-hidden\">\n <ScrollArea\n data-slot=\"table-container\"\n className={mergedClasses}\n {...(height !== undefined && { style: { height } })}\n >\n {renderTableComponent()}\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n </div>\n {pagination && pagination.totalCount > 0 && (\n <div className=\"flex-shrink-0 flex items-center justify-between mt-2 w-full overflow-x-auto border-t pt-2\">\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n <label htmlFor=\"page-size-select\" className=\"text-sm whitespace-nowrap\">\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={isLoading}\n >\n {pagination.pageSizeOptions.map((size: number) => (\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 ml-1.5\">\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 flex-shrink-0\">\n {renderPaginationArrows(pageNumber, totalPages, isLoading, handlePageChange)}\n </PaginationContent>\n </Pagination>\n </div>\n </div>\n )}\n {FormDialog}\n </Fragment>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"data-table.js","names":["useEffect","useState","Fragment","useMemo","useRef","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","TableHeadSortable","TableLoader","ScrollArea","ScrollBar","Pagination","PaginationContent","renderPaginationArrows","Button","cn","renderNoDataFallback","formatValue","SEMANTIC_CHIP_STYLES_MAP","RANDOM_CHIP_COLOR_PALETTE","MoreVertical","useButtonForm","jsx","_jsx","jsxs","_jsxs","_Fragment","normalizeValue","value","undefined","str","String","trim","toLowerCase","getChipMode","columnWithChipClass","columnKey","mode","getUniqueValuesHash","data","Array","isArray","length","availableKeys","Object","keys","hashParts","forEach","includes","chipMode","uniqueNormalizedValues","Set","row","normalizedKey","add","sortedUniqueValues","from","sort","JSON","stringify","DataTable","_ref","_ref2","_pagination$values$pa","_pagination$values","_ref3","_pagination$values$pa2","_pagination$values2","_ref$data","_ref$headerMapper","headerMapper","_ref$className","className","_ref$actions","actions","_ref$isEditable","isEditable","pagination","_ref$isLoading","isLoading","onRowAction","onPageChange","onSort","sortConfig","_ref$otherProps","otherProps","height","_ref$decimalPrecision","decimalPrecision","_ref$columnWithChipCl","_ref$chipStylesMappin","chipStylesMapping","children","style","minHeight","_useState","activeSortColumn","setActiveSortColumn","_useState2","sortDirections","setSortDirections","_useState3","activeRowIndex","setActiveRowIndex","_useState4","activeAction","setActiveAction","_useState5","isFormSubmitting","setIsFormSubmitting","_useState6","Number","values","pageNumber","initialPage","setPageNumber","_useState7","pageSize","initialPageSize","setPageSize","_useState8","Math","ceil","totalCount","totalPages","setTotalPages","_useState9","chipColorMap","setChipColorMap","_useState10","openDropdownIndex","setOpenDropdownIndex","prevDataHashRef","_ref4","_pagination$values$pa3","_pagination$values3","_ref5","_pagination$values$pa4","_pagination$values4","first","sortColumn","sortDirection","computedColorMap","newColorMap","index","colorIndex","uniqueValuesHash","current","prevMap","merged","_extends","cleaned","hasChanges","_useButtonForm","formMapper","action","formTitle","formDescription","formButtonText","isSubmitting","onClose","onSubmit","_onSubmit","_asyncToGenerator","_regeneratorRuntime","mark","_callee","formData","wrap","_callee$","_context","prev","next","id","finish","stop","_x","apply","arguments","FormDialog","openForm","handleButtonClick","rowIndex","originalKeys","filter","key","headers","map","push","rows","datum","handlePageChange","_x2","_x3","_handlePageChange","_callee2","newPage","newSize","_callee2$","_context2","handleSortClick","column","direction","_extends2","ActionsDropdown","_ref6","rowActions","isOpen","handleActionClick","actionId","toggleDropdown","onClick","background","variant","size","e","stopPropagation","disabled","role","text","renderActions","defaultClasses","mergedClasses","getRandomColorForValue","_chipColorMap$columnK","renderChip","formattedValue","chipClassName","_chipStylesMapping$co","valueStr","valueLower","renderTableComponent","head","idx","isActionColumn","originalKey","contentEditable","isActive","sortable","rIdx","cell","cIdx","shouldRenderChip","orientation","htmlFor","onChange","target","pageSizeOptions","min"],"sources":["../../../src/plugins/helpers/data-table.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useState, Fragment, useMemo, useRef } from 'react';\nimport {\n Table,\n TableHeader,\n TableRow,\n TableHead,\n TableBody,\n TableCell,\n TableHeadSortable,\n SortDirection,\n} from '../../shadcn/components/ui/table';\nimport { TableLoader } from '../../shadcn/components/ui/skeleton';\nimport { ScrollArea, ScrollBar } from '../../shadcn/components/ui/scroll-area';\nimport {\n Pagination,\n PaginationContent,\n renderPaginationArrows,\n} from '../../shadcn/components/ui/pagination';\nimport { Button } from '../../shadcn/components/ui/button';\nimport { cn } from '../../shadcn/utils';\nimport { renderNoDataFallback } from './extra';\nimport { formatValue } from '../../helpers';\nimport { SEMANTIC_CHIP_STYLES_MAP, RANDOM_CHIP_COLOR_PALETTE } from '../../constants';\nimport { MoreVertical } from 'lucide-react';\nimport { useButtonForm } from './button-form';\n\ntype RowAction = {\n id: string;\n text: string;\n variant?: string;\n tooltipContent?: string;\n className?: string;\n action: any;\n};\n\nexport type DataTableProps = {\n data: Record<string, any>[];\n headerMapper?: Record<string, string>;\n className?: 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 isLoading?: boolean;\n onRowAction?: (rowIndex: number, actionId: string, formData?: Record<string, any>) => void;\n onPageChange?: (pageNumber: number, pageSize: number) => void;\n onSort?: (column: string, direction: SortDirection) => void;\n sortConfig?: Record<string, SortDirection>;\n otherProps?: Record<string, any>;\n height?: string | number;\n decimalPrecision?: number;\n columnWithChipClass?: Record<string, 'useMap' | 'useRandom'>;\n chipStylesMapping?: Record<string, Record<string, string>>;\n};\n\n/**\n * Normalizes a value to a consistent string key for color mapping.\n * Handles all value types: null/undefined, numbers, booleans, objects, arrays, dates.\n * Ensures consistent color assignment for all variations of the same logical value.\n */\nfunction normalizeValue(value: any): string {\n // Handle null/undefined\n if (value === null || value === undefined) {\n return '';\n }\n\n const str = String(value);\n \n return str.trim().toLowerCase();\n}\n\nfunction getChipMode(\n columnWithChipClass: Record<string, 'useMap' | 'useRandom'>,\n columnKey: string\n): 'useMap' | 'useRandom' | undefined {\n if (!(columnKey in columnWithChipClass)) {\n return undefined;\n }\n \n const mode = columnWithChipClass[columnKey];\n\n if (mode !== 'useMap' && mode !== 'useRandom') {\n return 'useRandom';\n }\n \n return mode;\n}\n\n/**\n * Generates a stable hash based on unique value sets per column.\n * This hash is order-independent - it only changes when the set of unique values changes,\n * not when rows are reordered (e.g., during sorting).\n */\nfunction getUniqueValuesHash(\n data: Record<string, any>[],\n columnWithChipClass: Record<string, 'useMap' | 'useRandom'>\n): string {\n if (!Array.isArray(data) || data.length === 0) {\n return '';\n }\n\n const availableKeys = Object.keys(data[0] || {});\n const hashParts: Record<string, string[]> = {};\n\n Object.keys(columnWithChipClass).forEach((columnKey) => {\n if (!availableKeys.includes(columnKey)) {\n return;\n }\n\n const chipMode = getChipMode(columnWithChipClass, columnKey);\n if (chipMode === 'useRandom') {\n const uniqueNormalizedValues = new Set<string>();\n data.forEach((row) => {\n const value = row[columnKey];\n const normalizedKey = normalizeValue(value);\n\n if (normalizedKey) {\n uniqueNormalizedValues.add(normalizedKey);\n }\n });\n const sortedUniqueValues = Array.from(uniqueNormalizedValues).sort();\n hashParts[columnKey] = sortedUniqueValues;\n }\n });\n\n return JSON.stringify(hashParts);\n}\n\nexport function DataTable({\n data = [],\n headerMapper = {},\n className = '',\n actions = [],\n isEditable = false,\n pagination,\n isLoading = false,\n onRowAction,\n onPageChange,\n onSort,\n sortConfig,\n otherProps = {},\n height,\n decimalPrecision = 2,\n columnWithChipClass = {},\n chipStylesMapping = {},\n}: DataTableProps) {\n\n if (!data || data.length === 0) {\n return (\n <Fragment>\n <div className=\"flex flex-col overflow-hidden\">\n <div\n data-slot=\"table-container\"\n className=\"aspect-auto w-full\"\n style={{ height: 'auto', minHeight: '180px' }}\n >\n {isLoading ? <TableLoader /> : renderNoDataFallback()}\n </div>\n </div>\n </Fragment>\n );\n }\n\n const [activeSortColumn, setActiveSortColumn] = useState<string | null>(null);\n const [sortDirections, setSortDirections] = useState<Record<string, SortDirection>>({});\n const [activeRowIndex, setActiveRowIndex] = useState<number | null>(null);\n const [activeAction, setActiveAction] = useState<RowAction | null>(null);\n const [isFormSubmitting, setIsFormSubmitting] = useState(false);\n\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 const [chipColorMap, setChipColorMap] = useState<Record<string, Record<string, string>>>({});\n\n // Track which dropdown is currently open (by row index)\n const [openDropdownIndex, setOpenDropdownIndex] = useState<number | null>(null);\n\n const prevDataHashRef = useRef<string>('');\n\n useEffect(() => {\n setPageNumber(Number(pagination?.values?.pageNumber ?? pagination?.initialPage ?? 1));\n setPageSize(Number(pagination?.values?.pageSize ?? pagination?.initialPageSize ?? 25));\n }, [pagination]);\n\n useEffect(() => {\n setTotalPages(Math.ceil((pagination?.totalCount || 0) / pageSize) || 1);\n }, [pagination?.totalCount, pageSize]);\n\n useEffect(() => {\n if (sortConfig) {\n setSortDirections(sortConfig);\n const first = Object.keys(sortConfig)[0];\n\n if (first) {\n setActiveSortColumn(first);\n }\n }\n }, [sortConfig]);\n\n useEffect(() => {\n if (sortConfig?.sortColumn || sortConfig?.sortDirection) {\n sortConfig.sortColumn = null;\n sortConfig.sortDirection = null;\n }\n \n setActiveSortColumn(null);\n setSortDirections({});\n }, []);\n\n const computedColorMap = useMemo(() => {\n if (!Array.isArray(data) || data.length === 0) {\n return {};\n }\n\n // Get available column keys from first row\n const availableKeys = Object.keys(data[0] || {});\n \n const newColorMap: Record<string, Record<string, string>> = {};\n\n // Process each column that uses random chips\n Object.keys(columnWithChipClass).forEach((columnKey) => {\n // Validate column key exists in data\n if (!availableKeys.includes(columnKey)) {\n return;\n }\n\n const chipMode = getChipMode(columnWithChipClass, columnKey);\n if (chipMode === 'useRandom') {\n if (!newColorMap[columnKey]) {\n newColorMap[columnKey] = {};\n }\n\n const uniqueNormalizedValues = new Set<string>();\n data.forEach((row) => {\n const value = row[columnKey];\n const normalizedKey = normalizeValue(value);\n\n if (normalizedKey) {\n uniqueNormalizedValues.add(normalizedKey);\n }\n });\n\n const sortedUniqueValues = Array.from(uniqueNormalizedValues).sort();\n\n sortedUniqueValues.forEach((normalizedKey, index) => {\n if (!newColorMap[columnKey][normalizedKey]) {\n const colorIndex = index % RANDOM_CHIP_COLOR_PALETTE.length;\n newColorMap[columnKey][normalizedKey] = RANDOM_CHIP_COLOR_PALETTE[colorIndex];\n }\n });\n }\n });\n\n return newColorMap;\n }, [data, columnWithChipClass]);\n\n useEffect(() => {\n const uniqueValuesHash = getUniqueValuesHash(data, columnWithChipClass);\n \n // Only update if the set of unique values actually changed\n if (uniqueValuesHash !== prevDataHashRef.current) {\n prevDataHashRef.current = uniqueValuesHash;\n \n setChipColorMap((prevMap) => {\n const merged = { ...prevMap };\n Object.keys(computedColorMap).forEach((columnKey) => {\n merged[columnKey] = { ...computedColorMap[columnKey], ...merged[columnKey] };\n });\n return merged;\n });\n }\n }, [computedColorMap, data, columnWithChipClass]);\n\n useEffect(() => {\n setChipColorMap((prevMap) => {\n const cleaned = { ...prevMap };\n let hasChanges = false;\n\n Object.keys(cleaned).forEach((columnKey) => {\n const chipMode = getChipMode(columnWithChipClass, columnKey);\n if (!chipMode) {\n delete cleaned[columnKey];\n hasChanges = true;\n }\n });\n \n return hasChanges ? cleaned : prevMap;\n });\n }, [columnWithChipClass]);\n\n const { FormDialog, openForm } = useButtonForm({\n formMapper: activeAction?.action.formMapper,\n formTitle: activeAction?.action.formTitle,\n formDescription: activeAction?.action.formDescription,\n formButtonText: activeAction?.action.formButtonText,\n isSubmitting: isFormSubmitting || isLoading,\n onClose: () => {\n setActiveRowIndex(null);\n setActiveAction(null);\n },\n onSubmit: async (formData) => {\n if (activeRowIndex !== null && activeAction) {\n setIsFormSubmitting(true);\n try {\n await onRowAction?.(activeRowIndex, activeAction.id, formData);\n } finally {\n setIsFormSubmitting(false);\n }\n\n setActiveAction(null);\n setActiveRowIndex(null);\n }\n },\n });\n\n function handleButtonClick(rowIndex: number, action: RowAction) {\n if (action.action.formMapper && Object.keys(action.action.formMapper).length > 0) {\n setActiveRowIndex(rowIndex);\n setActiveAction(action);\n } else {\n onRowAction?.(rowIndex, action.id);\n }\n}\n\n useEffect(() => {\n if (activeAction?.action.formMapper && Object.keys(activeAction.action.formMapper).length > 0) {\n openForm();\n }\n }, [activeAction]); \n\n\n const originalKeys = Object.keys(data[0] || {}).filter((key) => key in headerMapper);\n const headers = originalKeys.map((key) => headerMapper[key]);\n\n if (actions.length > 0) {\n headers.push('');\n }\n\n const rows = data.map((datum: any) => originalKeys.map((key) => datum[key]));\n\n async function handlePageChange(newPage = pageNumber, newSize = pageSize) {\n setPageNumber(newPage);\n setPageSize(newSize);\n onPageChange?.(newPage, newSize);\n }\n\n function handleSortClick(column: string, direction: SortDirection) {\n setActiveSortColumn(direction ? column : null);\n setSortDirections((prev) => ({\n ...prev,\n [column]: direction,\n }));\n onSort?.(column, direction);\n }\n\n function ActionsDropdown({ rowIndex, rowActions }: { rowIndex: number; rowActions: RowAction[] }) {\n const isOpen = openDropdownIndex === rowIndex;\n\n function handleActionClick(actionId: string) {\n setOpenDropdownIndex(null);\n onRowAction?.(rowIndex, actionId);\n }\n\n function toggleDropdown() {\n setOpenDropdownIndex(isOpen ? null : rowIndex);\n }\n\n return (\n <>\n {isOpen && (\n <div\n className=\"fixed inset-0 z-40\"\n onClick={() => setOpenDropdownIndex(null)}\n style={{ background: 'transparent' }}\n />\n )}\n <div className=\"relative\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={(e) => {\n e.stopPropagation();\n toggleDropdown();\n }}\n disabled={isLoading}\n className=\"h-8 w-8 relative z-50\"\n >\n <MoreVertical className=\"h-4 w-4\" />\n </Button>\n {isOpen && (\n <div className=\"absolute right-full top-0 mr-2 w-48 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 z-50\">\n <div className=\"py-1\" role=\"menu\">\n {rowActions.map((action) => (\n <button\n key={action.id}\n onClick={() => handleActionClick(action.id)}\n className={cn(\n 'block w-full text-left px-4 py-2 text-sm hover:bg-accent transition-colors',\n action.className\n )}\n disabled={isLoading}\n role=\"menuitem\"\n >\n {action.text}\n </button>\n ))}\n </div>\n </div>\n )}\n </div>\n </>\n );\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 overflow-visible\">\n <ActionsDropdown rowIndex={rowIndex} rowActions={rowActions} />\n </TableCell>\n );\n }\n\n const defaultClasses = `aspect-auto w-full`;\n const mergedClasses = className ? cn(defaultClasses, className) : defaultClasses;\n\n function getRandomColorForValue(columnKey: string, value: any): string {\n const normalizedKey = normalizeValue(value);\n\n if (chipColorMap[columnKey]?.[normalizedKey]) {\n return chipColorMap[columnKey][normalizedKey];\n }\n \n return 'bg-gray-50 text-gray-900 shadow-sm';\n }\n\n function renderChip(columnKey: string, value: any) {\n const chipMode = getChipMode(columnWithChipClass, columnKey);\n const formattedValue = formatValue(value, decimalPrecision);\n \n if (!chipMode) {\n return <>{formattedValue}</>;\n }\n\n let chipClassName = '';\n \n if (chipMode === 'useMap') {\n const valueStr = String(value);\n chipClassName = chipStylesMapping[columnKey]?.[valueStr];\n \n if (!chipClassName) {\n const valueLower = valueStr.toLowerCase().trim();\n chipClassName = SEMANTIC_CHIP_STYLES_MAP[valueLower];\n }\n\n if (!chipClassName) {\n chipClassName = 'bg-gray-50 text-gray-900 shadow-sm';\n }\n } else if (chipMode === 'useRandom') {\n chipClassName = getRandomColorForValue(columnKey, value);\n }\n\n return (\n <span\n className={cn(\n 'inline-flex items-center rounded-md px-2 py-1 text-xs font-medium ring-1 ring-inset ring-gray-500/10',\n chipClassName\n )}\n >\n {formattedValue}\n </span>\n );\n }\n\n function renderTableComponent() {\n if (isLoading || (!data || data.length === 0)) {\n return <TableLoader />;\n }\n\n return (\n <Table\n {...otherProps}\n className={`caption-bottom text-sm relative ${mergedClasses}`}\n data-slot=\"table\"\n >\n <TableHeader data-slot=\"table-header\" className=\"sticky top-0 z-2\">\n <TableRow>\n {headers.map((head: string, idx: number) => {\n const isActionColumn = actions.length > 0 && idx === headers.length - 1;\n const originalKey = originalKeys[idx];\n\n if (isActionColumn) {\n return (\n <TableHead\n key={idx}\n data-slot={`table-header-${idx}`}\n contentEditable={isEditable}\n className=\"sticky right-0 bg-slate-100\"\n >\n {head}\n </TableHead>\n );\n }\n\n return (\n <TableHeadSortable\n key={idx}\n data-slot={`table-header-${idx}`}\n sortDirection={sortDirections[originalKey] || 'asc'}\n isActive={activeSortColumn === originalKey}\n onSort={(direction) => handleSortClick(originalKey, direction)}\n sortable={!isLoading}\n isEditable={isEditable}\n >\n {head}\n </TableHeadSortable>\n );\n })}\n </TableRow>\n </TableHeader>\n <TableBody data-slot=\"table-body\">\n {rows.map((row: any[], rIdx: number) => (\n <TableRow\n key={rIdx}\n data-slot={`row-${rIdx}`}\n className=\"hover:bg-muted/50 border-b transition-colors\"\n >\n {row.map((cell: string, cIdx: number) => {\n const columnKey = originalKeys[cIdx];\n const chipMode = columnKey ? getChipMode(columnWithChipClass, columnKey) : undefined;\n const shouldRenderChip = !!chipMode;\n \n return (\n <TableCell\n key={cIdx}\n data-slot={`cell-${rIdx}-${cIdx}`}\n className=\"p-2 align-middle whitespace-nowrap\"\n contentEditable={false}\n >\n {shouldRenderChip ? renderChip(columnKey, cell) : formatValue(cell, decimalPrecision)}\n </TableCell>\n );\n })}\n {renderActions(rIdx, actions)}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n );\n }\n\n return (\n <Fragment>\n <div className=\"flex flex-col h-full overflow-hidden\">\n <ScrollArea\n data-slot=\"table-container\"\n className={mergedClasses}\n {...(height !== undefined && { style: { height } })}\n >\n {renderTableComponent()}\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n </div>\n {pagination && pagination.totalCount > 0 && (\n <div className=\"flex-shrink-0 flex items-center justify-between mt-2 w-full overflow-x-auto border-t pt-2\">\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n <label htmlFor=\"page-size-select\" className=\"text-sm whitespace-nowrap\">\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={isLoading}\n >\n {pagination.pageSizeOptions.map((size: number) => (\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 ml-1.5\">\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 flex-shrink-0\">\n {renderPaginationArrows(pageNumber, totalPages, isLoading, handlePageChange)}\n </PaginationContent>\n </Pagination>\n </div>\n </div>\n )}\n {FormDialog}\n </Fragment>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|