@peak-ai/canvas 1.5.1 → 1.5.2-rc.10
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/constants/index.d.ts +2 -0
- package/constants/index.js +1 -1
- package/constants/index.js.map +1 -1
- package/package.json +15 -14
- package/plugins/helpers/button-form.d.ts +12 -0
- package/plugins/helpers/button-form.js +2 -0
- package/plugins/helpers/button-form.js.map +1 -0
- package/plugins/helpers/data-table.d.ts +3 -1
- package/plugins/helpers/data-table.js +14 -1
- package/plugins/helpers/data-table.js.map +1 -1
- package/plugins/helpers/render-components.js +4 -4
- package/plugins/helpers/render-components.js.map +1 -1
- package/shadcn/components/ui/dialog.d.ts +17 -0
- package/shadcn/components/ui/dialog.js +2 -0
- package/shadcn/components/ui/dialog.js.map +1 -0
- package/shadcn/components/ui/field.d.ts +25 -0
- package/shadcn/components/ui/field.js +2 -0
- package/shadcn/components/ui/field.js.map +1 -0
package/constants/index.d.ts
CHANGED
|
@@ -2,3 +2,5 @@ export declare const TypesToRegister: {
|
|
|
2
2
|
tagName: string;
|
|
3
3
|
type: string;
|
|
4
4
|
}[];
|
|
5
|
+
export declare const SEMANTIC_CHIP_STYLES_MAP: Record<string, string>;
|
|
6
|
+
export declare const RANDOM_CHIP_COLOR_PALETTE: readonly ["bg-blue-50 text-blue-900 shadow-sm", "bg-purple-50 text-purple-900 shadow-sm", "bg-pink-50 text-pink-900 shadow-sm", "bg-cyan-50 text-cyan-900 shadow-sm", "bg-teal-50 text-teal-900 shadow-sm", "bg-orange-50 text-orange-900 shadow-sm", "bg-amber-50 text-amber-900 shadow-sm", "bg-lime-50 text-lime-900 shadow-sm", "bg-emerald-50 text-emerald-900 shadow-sm", "bg-fuchsia-50 text-fuchsia-900 shadow-sm"];
|
package/constants/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export var TypesToRegister=[{tagName:"div",type:"div"},{tagName:"h1",type:"heading"},{tagName:"p",type:"text"},{tagName:"div",type:"container"},{tagName:"div",type:"grid"},{tagName:"table",type:"table"},{tagName:"thead",type:"thead"},{tagName:"tbody",type:"tbody"},{tagName:"tr",type:"tr"},{tagName:"th",type:"th"},{tagName:"td",type:"td"},{tagName:"button",type:"button"},{tagName:"section",type:"section"},{tagName:"a",type:"link"},{tagName:"form",type:"form"},{tagName:"input",type:"input"},{tagName:"textarea",type:"textarea"},{tagName:"select",type:"select"},{tagName:"ul",type:"ul"},{tagName:"ol",type:"ol"},{tagName:"li",type:"li"},{tagName:"header",type:"header"},{tagName:"footer",type:"footer"}];
|
|
1
|
+
export var TypesToRegister=[{tagName:"div",type:"div"},{tagName:"h1",type:"heading"},{tagName:"p",type:"text"},{tagName:"div",type:"container"},{tagName:"div",type:"grid"},{tagName:"table",type:"table"},{tagName:"thead",type:"thead"},{tagName:"tbody",type:"tbody"},{tagName:"tr",type:"tr"},{tagName:"th",type:"th"},{tagName:"td",type:"td"},{tagName:"button",type:"button"},{tagName:"section",type:"section"},{tagName:"a",type:"link"},{tagName:"form",type:"form"},{tagName:"input",type:"input"},{tagName:"textarea",type:"textarea"},{tagName:"select",type:"select"},{tagName:"ul",type:"ul"},{tagName:"ol",type:"ol"},{tagName:"li",type:"li"},{tagName:"header",type:"header"},{tagName:"footer",type:"footer"}];var SEMANTIC_CHIP_STYLES_GROUPED={"bg-green-50 text-green-900 shadow-sm":["optimal","success","active","available","completed","healthy","approved","passed","on target","on track","optimized","won"],"bg-red-50 text-red-900 shadow-sm":["declined","cancelled","canceled","understocked","critical","failed","inactive","unavailable","rejected","error","out of stock","outofstock"],"bg-yellow-50 text-yellow-900 shadow-sm":["pending","warning","in progress","inprogress","under review","underreview","low stock","lowstock","on hold","onhold","overstocked","original","lost"],"bg-blue-50 text-blue-900 shadow-sm":["on track","ontrack","scheduled","draft","info","queued"]};export var SEMANTIC_CHIP_STYLES_MAP=Object.fromEntries(Object.entries(SEMANTIC_CHIP_STYLES_GROUPED).flatMap(function(_ref){var style=_ref[0],keys=_ref[1];return keys.map(function(key){return[key,style]})}));export var RANDOM_CHIP_COLOR_PALETTE=["bg-blue-50 text-blue-900 shadow-sm","bg-purple-50 text-purple-900 shadow-sm","bg-pink-50 text-pink-900 shadow-sm","bg-cyan-50 text-cyan-900 shadow-sm","bg-teal-50 text-teal-900 shadow-sm","bg-orange-50 text-orange-900 shadow-sm","bg-amber-50 text-amber-900 shadow-sm","bg-lime-50 text-lime-900 shadow-sm","bg-emerald-50 text-emerald-900 shadow-sm","bg-fuchsia-50 text-fuchsia-900 shadow-sm"];
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/constants/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["TypesToRegister","tagName","type"],"sources":["../../src/constants/index.ts"],"sourcesContent":["export const TypesToRegister = [\n { tagName: 'div', type: 'div' },\n { tagName: 'h1', type: 'heading' },\n { tagName: 'p', type: 'text' },\n { tagName: 'div', type: 'container' },\n { tagName: 'div', type: 'grid' },\n { tagName: 'table', type: 'table' },\n { tagName: 'thead', type: 'thead' },\n { tagName: 'tbody', type: 'tbody' },\n { tagName: 'tr', type: 'tr' },\n { tagName: 'th', type: 'th' },\n { tagName: 'td', type: 'td' },\n { tagName: 'button', type: 'button' },\n { tagName: 'section', type: 'section' },\n { tagName: 'a', type: 'link' },\n { tagName: 'form', type: 'form' },\n { tagName: 'input', type: 'input' },\n { tagName: 'textarea', type: 'textarea' },\n { tagName: 'select', type: 'select' },\n { tagName: 'ul', type: 'ul' },\n { tagName: 'ol', type: 'ol' },\n { tagName: 'li', type: 'li' },\n { tagName: 'header', type: 'header' },\n { tagName: 'footer', type: 'footer' },\n];\n"],"mappings":"AAAA,MAAO,IAAM,CAAAA,eAAe,CAAG,CAC7B,CAAEC,OAAO,CAAE,KAAK,CAAEC,IAAI,CAAE,KAAM,CAAC,CAC/B,CAAED,OAAO,CAAE,IAAI,CAAEC,IAAI,CAAE,SAAU,CAAC,CAClC,CAAED,OAAO,CAAE,GAAG,CAAEC,IAAI,CAAE,MAAO,CAAC,CAC9B,CAAED,OAAO,CAAE,KAAK,CAAEC,IAAI,CAAE,WAAY,CAAC,CACrC,CAAED,OAAO,CAAE,KAAK,CAAEC,IAAI,CAAE,MAAO,CAAC,CAChC,CAAED,OAAO,CAAE,OAAO,CAAEC,IAAI,CAAE,OAAQ,CAAC,CACnC,CAAED,OAAO,CAAE,OAAO,CAAEC,IAAI,CAAE,OAAQ,CAAC,CACnC,CAAED,OAAO,CAAE,OAAO,CAAEC,IAAI,CAAE,OAAQ,CAAC,CACnC,CAAED,OAAO,CAAE,IAAI,CAAEC,IAAI,CAAE,IAAK,CAAC,CAC7B,CAAED,OAAO,CAAE,IAAI,CAAEC,IAAI,CAAE,IAAK,CAAC,CAC7B,CAAED,OAAO,CAAE,IAAI,CAAEC,IAAI,CAAE,IAAK,CAAC,CAC7B,CAAED,OAAO,CAAE,QAAQ,CAAEC,IAAI,CAAE,QAAS,CAAC,CACrC,CAAED,OAAO,CAAE,SAAS,CAAEC,IAAI,CAAE,SAAU,CAAC,CACvC,CAAED,OAAO,CAAE,GAAG,CAAEC,IAAI,CAAE,MAAO,CAAC,CAC9B,CAAED,OAAO,CAAE,MAAM,CAAEC,IAAI,CAAE,MAAO,CAAC,CACjC,CAAED,OAAO,CAAE,OAAO,CAAEC,IAAI,CAAE,OAAQ,CAAC,CACnC,CAAED,OAAO,CAAE,UAAU,CAAEC,IAAI,CAAE,UAAW,CAAC,CACzC,CAAED,OAAO,CAAE,QAAQ,CAAEC,IAAI,CAAE,QAAS,CAAC,CACrC,CAAED,OAAO,CAAE,IAAI,CAAEC,IAAI,CAAE,IAAK,CAAC,CAC7B,CAAED,OAAO,CAAE,IAAI,CAAEC,IAAI,CAAE,IAAK,CAAC,CAC7B,CAAED,OAAO,CAAE,IAAI,CAAEC,IAAI,CAAE,IAAK,CAAC,CAC7B,CAAED,OAAO,CAAE,QAAQ,CAAEC,IAAI,CAAE,QAAS,CAAC,CACrC,CAAED,OAAO,CAAE,QAAQ,CAAEC,IAAI,CAAE,QAAS,CAAC,CACtC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["TypesToRegister","tagName","type","SEMANTIC_CHIP_STYLES_GROUPED","SEMANTIC_CHIP_STYLES_MAP","Object","fromEntries","entries","flatMap","_ref","style","keys","map","key","RANDOM_CHIP_COLOR_PALETTE"],"sources":["../../src/constants/index.ts"],"sourcesContent":["export const TypesToRegister = [\n { tagName: 'div', type: 'div' },\n { tagName: 'h1', type: 'heading' },\n { tagName: 'p', type: 'text' },\n { tagName: 'div', type: 'container' },\n { tagName: 'div', type: 'grid' },\n { tagName: 'table', type: 'table' },\n { tagName: 'thead', type: 'thead' },\n { tagName: 'tbody', type: 'tbody' },\n { tagName: 'tr', type: 'tr' },\n { tagName: 'th', type: 'th' },\n { tagName: 'td', type: 'td' },\n { tagName: 'button', type: 'button' },\n { tagName: 'section', type: 'section' },\n { tagName: 'a', type: 'link' },\n { tagName: 'form', type: 'form' },\n { tagName: 'input', type: 'input' },\n { tagName: 'textarea', type: 'textarea' },\n { tagName: 'select', type: 'select' },\n { tagName: 'ul', type: 'ul' },\n { tagName: 'ol', type: 'ol' },\n { tagName: 'li', type: 'li' },\n { tagName: 'header', type: 'header' },\n { tagName: 'footer', type: 'footer' },\n];\n\nconst SEMANTIC_CHIP_STYLES_GROUPED: Record<string, string[]> = {\n 'bg-green-50 text-green-900 shadow-sm': [\n 'optimal',\n 'success',\n 'active',\n 'available',\n 'completed',\n 'healthy',\n 'approved',\n 'passed',\n 'on target',\n 'on track',\n 'optimized',\n 'won'\n ],\n\n 'bg-red-50 text-red-900 shadow-sm': [\n 'declined',\n 'cancelled',\n 'canceled',\n 'understocked',\n 'critical',\n 'failed',\n 'inactive',\n 'unavailable',\n 'rejected',\n 'error',\n 'out of stock',\n 'outofstock',\n ],\n\n 'bg-yellow-50 text-yellow-900 shadow-sm': [\n 'pending',\n 'warning',\n 'in progress',\n 'inprogress',\n 'under review',\n 'underreview',\n 'low stock',\n 'lowstock',\n 'on hold',\n 'onhold',\n 'overstocked',\n 'original',\n 'lost',\n ],\n\n 'bg-blue-50 text-blue-900 shadow-sm': [\n 'on track',\n 'ontrack',\n 'scheduled',\n 'draft',\n 'info',\n 'queued',\n ],\n};\n\nexport const SEMANTIC_CHIP_STYLES_MAP: Record<string, string> = Object.fromEntries(\n Object.entries(SEMANTIC_CHIP_STYLES_GROUPED).flatMap(([style, keys]) =>\n keys.map(key => [key, style])\n )\n);\n\nexport const RANDOM_CHIP_COLOR_PALETTE = [\n 'bg-blue-50 text-blue-900 shadow-sm',\n 'bg-purple-50 text-purple-900 shadow-sm',\n 'bg-pink-50 text-pink-900 shadow-sm',\n 'bg-cyan-50 text-cyan-900 shadow-sm',\n 'bg-teal-50 text-teal-900 shadow-sm',\n 'bg-orange-50 text-orange-900 shadow-sm',\n 'bg-amber-50 text-amber-900 shadow-sm',\n 'bg-lime-50 text-lime-900 shadow-sm',\n 'bg-emerald-50 text-emerald-900 shadow-sm',\n 'bg-fuchsia-50 text-fuchsia-900 shadow-sm',\n] as const;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
"name": "@peak-ai/canvas",
|
|
3
3
|
"author": "squad-builder-experience",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
|
-
"version": "1.5.
|
|
5
|
+
"version": "1.5.2-rc.10",
|
|
6
6
|
"description": "",
|
|
7
7
|
"dependencies": {
|
|
8
|
+
"@base-ui/react": "1.1.0",
|
|
8
9
|
"@emotion/react": "^11.11.4",
|
|
9
10
|
"@emotion/styled": "^11.11.5",
|
|
10
11
|
"@mui/icons-material": "^5.15.18",
|
|
@@ -20,12 +21,21 @@
|
|
|
20
21
|
"@radix-ui/react-tooltip": "^1.2.7",
|
|
21
22
|
"@tailwindcss/cli": "^4.1.3",
|
|
22
23
|
"@types/chroma-js": "^3.1.1",
|
|
23
|
-
"@types/react-datepicker": "^7.0.0",
|
|
24
24
|
"@types/d3-force": "^3.0.0",
|
|
25
|
+
"@types/react-datepicker": "^7.0.0",
|
|
26
|
+
"@visx/axis": "^3.8.0",
|
|
27
|
+
"@visx/event": "^3.8.0",
|
|
28
|
+
"@visx/grid": "^3.8.0",
|
|
29
|
+
"@visx/group": "^3.8.0",
|
|
30
|
+
"@visx/scale": "^3.8.0",
|
|
31
|
+
"@visx/shape": "^3.8.0",
|
|
32
|
+
"@visx/tooltip": "^3.8.0",
|
|
25
33
|
"chroma-js": "^3.1.2",
|
|
26
34
|
"class-variance-authority": "^0.7.1",
|
|
27
35
|
"clsx": "^2.1.1",
|
|
36
|
+
"d3-force": "^3.0.0",
|
|
28
37
|
"date-fns": "^4.1.0",
|
|
38
|
+
"date-fns-tz": "^2.0.0",
|
|
29
39
|
"grapesjs": "0.22.6",
|
|
30
40
|
"grapesjs-tailwind": "1.0.7",
|
|
31
41
|
"lodash": "^4.17.21",
|
|
@@ -38,23 +48,14 @@
|
|
|
38
48
|
"react-dom": "^17.0.2",
|
|
39
49
|
"react-plotly.js": "^2.6.0",
|
|
40
50
|
"react-resizable-panels": "^2.1.9",
|
|
51
|
+
"sherlockjs": "^1.4.2",
|
|
41
52
|
"styled-components": "^5.0.0",
|
|
53
|
+
"sugar": "^2.0.6",
|
|
42
54
|
"tailwind-merge": "^3.2.0",
|
|
43
55
|
"tailwindcss": "^4.1.3",
|
|
44
56
|
"tailwindcss-animate": "^1.0.7",
|
|
45
57
|
"tslib": "^2.7.0",
|
|
46
|
-
"tw-animate-css": "^1.2.5"
|
|
47
|
-
"sherlockjs": "^1.4.2",
|
|
48
|
-
"sugar": "^2.0.6",
|
|
49
|
-
"date-fns-tz": "^2.0.0",
|
|
50
|
-
"@visx/group": "^3.8.0",
|
|
51
|
-
"@visx/scale": "^3.8.0",
|
|
52
|
-
"@visx/shape": "^3.8.0",
|
|
53
|
-
"@visx/axis": "^3.8.0",
|
|
54
|
-
"@visx/grid": "^3.8.0",
|
|
55
|
-
"@visx/tooltip": "^3.8.0",
|
|
56
|
-
"@visx/event": "^3.8.0",
|
|
57
|
-
"d3-force": "^3.0.0"
|
|
58
|
+
"tw-animate-css": "^1.2.5"
|
|
58
59
|
},
|
|
59
60
|
"peerDependencies": {
|
|
60
61
|
"react": "^17.0.2",
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function useButtonForm(config: {
|
|
2
|
+
formMapper?: Record<string, any>[];
|
|
3
|
+
onSubmit: (formData: any) => Promise<void>;
|
|
4
|
+
isSubmitting?: boolean;
|
|
5
|
+
formTitle?: string;
|
|
6
|
+
formDescription?: string;
|
|
7
|
+
formButtonText?: string;
|
|
8
|
+
}): {
|
|
9
|
+
openForm: () => boolean;
|
|
10
|
+
FormDialog: import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
hasForm: boolean | undefined;
|
|
12
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _extends from"@babel/runtime/helpers/extends";import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _regeneratorRuntime from"@babel/runtime/regenerator";import{useState}from"react";import{Dialog,DialogContent,DialogDescription,DialogFooter,DialogHeader,DialogTitle}from"../../shadcn/components/ui/dialog";import{Field,FieldDescription,FieldGroup,FieldLabel}from"../../shadcn/components/ui/field";import{Input}from"../../shadcn/components/ui/input";import{TooltipButton}from"../../shadcn/components/ui/button";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function useButtonForm(config){var formMapper=config.formMapper,onSubmit=config.onSubmit,_config$isSubmitting=config.isSubmitting,isSubmitting=_config$isSubmitting===void 0?false:_config$isSubmitting,_config$formTitle=config.formTitle,formTitle=_config$formTitle===void 0?"Input form":_config$formTitle,_config$formDescripti=config.formDescription,formDescription=_config$formDescripti===void 0?"Please fill in the necessary details.":_config$formDescripti,_config$formButtonTex=config.formButtonText,formButtonText=_config$formButtonTex===void 0?"Submit":_config$formButtonTex;var _useState=useState(false),isFormOpen=_useState[0],setIsFormOpen=_useState[1];var _useState2=useState({}),formData=_useState2[0],setFormData=_useState2[1];var _useState3=useState({}),formErrors=_useState3[0],setFormErrors=_useState3[1];var hasForm=formMapper&&Object.keys(formMapper).length>0;function validateForm(){var errors={};if(formMapper){Object.entries(formMapper).forEach(function(_ref){var fieldName=_ref[0],fieldConfig=_ref[1];if(fieldConfig.required&&!formData[fieldName]){errors[fieldName]=(fieldConfig.label||fieldName)+" is required."}})}setFormErrors(errors);return Object.keys(errors).length===0}function handleFormSubmit(_x){return _handleFormSubmit.apply(this,arguments)}function _handleFormSubmit(){_handleFormSubmit=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(e){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:e.preventDefault();if(validateForm()){_context.next=3;break}return _context.abrupt("return");case 3:console.log("submitting form data: ",formData);setIsFormOpen(false);_context.next=7;return onSubmit(formData);case 7:setFormData({});setFormErrors({});case 9:case"end":return _context.stop()}},_callee)}));return _handleFormSubmit.apply(this,arguments)}function openForm(){if(hasForm){setIsFormOpen(true);return true}return false}function updateFormData(name,value){setFormData(function(prevData){var _extends2;return _extends({},prevData,(_extends2={},_extends2[name]=value,_extends2))})}var FormDialog=hasForm?/*#__PURE__*/_jsx(Dialog,{open:isFormOpen,onOpenChange:setIsFormOpen,children:/*#__PURE__*/_jsxs(DialogContent,{children:[/*#__PURE__*/_jsxs(DialogHeader,{children:[/*#__PURE__*/_jsx(DialogTitle,{children:formTitle}),/*#__PURE__*/_jsx(DialogDescription,{children:formDescription})]}),/*#__PURE__*/_jsxs("form",{onSubmit:handleFormSubmit,children:[/*#__PURE__*/_jsx(FieldGroup,{children:Object.entries(formMapper).map(function(_ref2){var fieldName=_ref2[0],fieldConfig=_ref2[1];return/*#__PURE__*/_jsxs(Field,{children:[/*#__PURE__*/_jsxs(FieldLabel,{htmlFor:fieldName,children:[fieldConfig.label||fieldName,fieldConfig.required&&/*#__PURE__*/_jsx("span",{className:"text-red-500 ml-1",children:"*"})]}),fieldConfig.description&&/*#__PURE__*/_jsx(FieldDescription,{children:fieldConfig.description}),fieldConfig.type==="text"&&/*#__PURE__*/_jsx(Input,{id:fieldName,name:fieldName,type:fieldConfig.type||"text",placeholder:fieldConfig.placeholder||"",required:fieldConfig.required||false,value:formData[fieldName]||"",onChange:function onChange(e){return updateFormData(fieldName,e.target.value)}})]},fieldName)})}),/*#__PURE__*/_jsxs(DialogFooter,{className:"mt-6",children:[/*#__PURE__*/_jsx(TooltipButton,{type:"button",variant:"outline",onClick:function onClick(){return setIsFormOpen(false)},text:"Cancel",isEditable:false,interact:function interact(){return setIsFormOpen(false)},attributes:{}}),/*#__PURE__*/_jsx(TooltipButton,{type:"submit",variant:"primary",text:formButtonText,isEditable:false,interact:function interact(){},attributes:{disabled:isSubmitting}})]})]})]})}):null;return{openForm:openForm,FormDialog:FormDialog,hasForm:hasForm}}
|
|
2
|
+
//# sourceMappingURL=button-form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-form.js","names":["useState","Dialog","DialogContent","DialogDescription","DialogFooter","DialogHeader","DialogTitle","Field","FieldDescription","FieldGroup","FieldLabel","Input","TooltipButton","jsx","_jsx","jsxs","_jsxs","useButtonForm","config","formMapper","onSubmit","_config$isSubmitting","isSubmitting","_config$formTitle","formTitle","_config$formDescripti","formDescription","_config$formButtonTex","formButtonText","_useState","isFormOpen","setIsFormOpen","_useState2","formData","setFormData","_useState3","formErrors","setFormErrors","hasForm","Object","keys","length","validateForm","errors","entries","forEach","_ref","fieldName","fieldConfig","required","label","handleFormSubmit","_x","_handleFormSubmit","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","e","wrap","_callee$","_context","prev","next","preventDefault","abrupt","console","log","stop","openForm","updateFormData","name","value","prevData","_extends2","_extends","FormDialog","open","onOpenChange","children","map","_ref2","htmlFor","className","description","type","id","placeholder","onChange","target","variant","onClick","text","isEditable","interact","attributes","disabled"],"sources":["../../../src/plugins/helpers/button-form.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from \"../../shadcn/components/ui/dialog\";\nimport { Field, FieldDescription, FieldGroup, FieldLabel } from \"../../shadcn/components/ui/field\";\nimport { Input } from \"../../shadcn/components/ui/input\";\nimport { TooltipButton } from \"../../shadcn/components/ui/button\";\nimport { set } from \"lodash\";\n\nexport function useButtonForm(config: {\n formMapper?: Record<string, any>[];\n onSubmit: (formData: any) => Promise<void>;\n isSubmitting?: boolean;\n formTitle?: string;\n formDescription?: string;\n formButtonText?: string;\n}) {\n const { formMapper, onSubmit, isSubmitting = false, formTitle = \"Input form\", formDescription = \"Please fill in the necessary details.\", formButtonText = \"Submit\" } = config;\n const [isFormOpen, setIsFormOpen] = useState(false);\n const [formData, setFormData] = useState<Record<string, any>>({});\n const [formErrors, setFormErrors] = useState<Record<string, string>>({});\n\n const hasForm = formMapper && Object.keys(formMapper).length > 0;\n\n function validateForm(): boolean {\n const errors: Record<string, string> = {};\n if (formMapper) {\n Object.entries(formMapper).forEach(([fieldName, fieldConfig]) => {\n if (fieldConfig.required && !formData[fieldName]) {\n errors[fieldName] = `${fieldConfig.label || fieldName} is required.`;\n }\n });\n }\n setFormErrors(errors);\n return Object.keys(errors).length === 0;\n }\n\n async function handleFormSubmit(e: React.FormEvent) {\n e.preventDefault();\n\n if (!validateForm()) {\n return;\n }\n\n console.log('submitting form data: ', formData);\n\n setIsFormOpen(false);\n await onSubmit(formData);\n setFormData({});\n setFormErrors({});\n }\n\n function openForm() {\n if (hasForm) {\n setIsFormOpen(true);\n return true;\n }\n return false;\n }\n\n function updateFormData(name: string, value: any) {\n setFormData(prevData => ({\n ...prevData,\n [name]: value,\n }));\n }\n\n const FormDialog = hasForm ? (\n <Dialog open={isFormOpen} onOpenChange={setIsFormOpen}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>{formTitle}</DialogTitle>\n <DialogDescription>{formDescription}</DialogDescription>\n </DialogHeader>\n\n <form onSubmit={handleFormSubmit}>\n <FieldGroup>\n {Object.entries(formMapper!).map(([fieldName, fieldConfig]) => (\n <Field key={fieldName}>\n <FieldLabel htmlFor={fieldName}>\n {fieldConfig.label || fieldName}\n {fieldConfig.required && <span className=\"text-red-500 ml-1\">*</span>}\n </FieldLabel>\n {fieldConfig.description && (\n <FieldDescription>{fieldConfig.description}</FieldDescription>\n )}\n {fieldConfig.type === \"text\" && (\n <Input\n id={fieldName}\n name={fieldName}\n type={fieldConfig.type || \"text\"}\n placeholder={fieldConfig.placeholder || \"\"}\n required={fieldConfig.required || false}\n value={formData[fieldName] || \"\"}\n onChange={(e) => updateFormData(fieldName, e.target.value)}\n />\n\n )}\n </Field>\n ))}\n </FieldGroup>\n <DialogFooter className=\"mt-6\">\n <TooltipButton\n type=\"button\"\n variant=\"outline\"\n onClick={() => setIsFormOpen(false)}\n text=\"Cancel\"\n isEditable={false}\n interact={() => setIsFormOpen(false)}\n attributes={{}}\n />\n <TooltipButton\n type=\"submit\"\n variant=\"primary\"\n text={formButtonText}\n isEditable={false}\n interact={() => {}}\n attributes={{ disabled: isSubmitting }}\n />\n </DialogFooter>\n </form>\n </DialogContent>\n </Dialog>\n ) : null;\n\n return {\n openForm,\n FormDialog,\n hasForm,\n }\n}"],"mappings":"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","ignoreList":[]}
|
|
@@ -30,6 +30,8 @@ export type DataTableProps = {
|
|
|
30
30
|
otherProps?: Record<string, any>;
|
|
31
31
|
height?: string | number;
|
|
32
32
|
decimalPrecision?: number;
|
|
33
|
+
columnWithChipClass?: Record<string, 'useMap' | 'useRandom'>;
|
|
34
|
+
chipStylesMapping?: Record<string, Record<string, string>>;
|
|
33
35
|
};
|
|
34
|
-
export declare function DataTable({ data, headerMapper, className, actions, isEditable, pagination, isLoading, onRowAction, onPageChange, onSort, sortConfig, otherProps, height, decimalPrecision, }: DataTableProps): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
export declare function DataTable({ data, headerMapper, className, actions, isEditable, pagination, isLoading, onRowAction, onPageChange, onSort, sortConfig, otherProps, height, decimalPrecision, columnWithChipClass, chipStylesMapping, }: DataTableProps): import("react/jsx-runtime").JSX.Element;
|
|
35
37
|
export {};
|
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
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{TableButton}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{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";/**
|
|
2
|
+
* Normalizes a value to a consistent string key for color mapping.
|
|
3
|
+
* Handles all value types: null/undefined, numbers, booleans, objects, arrays, dates.
|
|
4
|
+
* Ensures consistent color assignment for all variations of the same logical value.
|
|
5
|
+
*/function normalizeValue(value){// Handle null/undefined
|
|
6
|
+
if(value===null||value===undefined){return""}var str=String(value);return str.trim().toLowerCase()}function getChipMode(columnWithChipClass,columnKey){if(!(columnKey in columnWithChipClass)){return undefined}var mode=columnWithChipClass[columnKey];if(mode!=="useMap"&&mode!=="useRandom"){return"useRandom"}return mode}/**
|
|
7
|
+
* Generates a stable hash based on unique value sets per column.
|
|
8
|
+
* This hash is order-independent - it only changes when the set of unique values changes,
|
|
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(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=_useState3[0],setPageNumber=_useState3[1];var _useState4=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=_useState4[0],setPageSize=_useState4[1];var _useState5=useState(Math.ceil(((pagination==null?void 0:pagination.totalCount)||0)/pageSize)||1),totalPages=_useState5[0],setTotalPages=_useState5[1];var _useState6=useState({}),chipColorMap=_useState6[0],setChipColorMap=_useState6[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
|
+
var availableKeys=Object.keys(data[0]||{});var newColorMap={};// Process each column that uses random chips
|
|
12
|
+
Object.keys(columnWithChipClass).forEach(function(columnKey){// Validate column key exists in data
|
|
13
|
+
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 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(_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 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 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,disabled:isLoading},action.id)})})}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)})})]})]})]})}
|
|
2
15
|
//# sourceMappingURL=data-table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.js","names":["useEffect","useState","Fragment","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","TableHeadSortable","TableLoader","ScrollArea","ScrollBar","Pagination","PaginationContent","renderPaginationArrows","TableButton","cn","renderNoDataFallback","formatValue","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$actions","actions","_ref$isEditable","isEditable","pagination","_ref$isLoading","isLoading","onRowAction","onPageChange","onSort","sortConfig","_ref$otherProps","otherProps","height","_ref$decimalPrecision","decimalPrecision","length","children","style","minHeight","_useState","activeSortColumn","setActiveSortColumn","_useState2","sortDirections","setSortDirections","_useState3","Number","values","pageNumber","initialPage","setPageNumber","_useState4","pageSize","initialPageSize","setPageSize","_useState5","Math","ceil","totalCount","totalPages","setTotalPages","_ref4","_pagination$values$pa3","_pagination$values3","_ref5","_pagination$values$pa4","_pagination$values4","first","Object","keys","sortColumn","sortDirection","originalKeys","filter","key","headers","map","push","rows","datum","handlePageChange","_x","_x2","_handlePageChange","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","newPage","newSize","wrap","_callee$","_context","prev","next","stop","handleSortClick","column","direction","_extends2","_extends","renderActions","rowIndex","rowActions","action","onClick","id","variant","text","tooltipContent","disabled","defaultClasses","mergedClasses","renderTableComponent","head","idx","isActionColumn","originalKey","contentEditable","isActive","sortable","row","rIdx","cell","cIdx","undefined","orientation","htmlFor","value","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 } 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';\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 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) => 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};\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}: 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\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 ?? 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 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={() => onRowAction?.(rowIndex, action.id)}\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 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 <TableCell\n key={cIdx}\n data-slot={`cell-${rIdx}-${cIdx}`}\n className=\"p-2 align-middle whitespace-nowrap\"\n contentEditable={false}\n >\n {formatValue(cell, decimalPrecision)}\n </TableCell>\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 </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","TableButton","cn","renderNoDataFallback","formatValue","SEMANTIC_CHIP_STYLES_MAP","RANDOM_CHIP_COLOR_PALETTE","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","Number","values","pageNumber","initialPage","setPageNumber","_useState4","pageSize","initialPageSize","setPageSize","_useState5","Math","ceil","totalCount","totalPages","setTotalPages","_useState6","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","originalKeys","filter","key","headers","map","push","rows","datum","handlePageChange","_x","_x2","_handlePageChange","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","newPage","newSize","wrap","_callee$","_context","prev","next","stop","handleSortClick","column","direction","_extends2","renderActions","rowIndex","rowActions","action","onClick","id","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';\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 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) => 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\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 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={() => onRowAction?.(rowIndex, action.id)}\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 </Fragment>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|