@peak-ai/canvas 1.6.12 → 1.6.13-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- export var DATE_FILTER={TABS:{RELATIVE:"Relative",ABSOLUTE:"Absolute"},RELATIVE_UNITS:[{key:"minutes",label:"minutes ago"},{key:"hours",label:"hours ago"},{key:"days",label:"days ago"},{key:"weeks",label:"weeks ago"},{key:"months",label:"months ago"},{key:"years",label:"years ago"}]};
1
+ export var DATE_FILTER={TABS:{RELATIVE:"Relative",ABSOLUTE:"Absolute"},RELATIVE_UNITS:[{key:"hours",label:"hours ago"},{key:"days",label:"days ago"},{key:"weeks",label:"weeks ago"},{key:"months",label:"months ago"},{key:"years",label:"years ago"}]};
2
2
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["DATE_FILTER","TABS","RELATIVE","ABSOLUTE","RELATIVE_UNITS","key","label"],"sources":["../../src/helpers/constants.ts"],"sourcesContent":["export const DATE_FILTER = {\n TABS: {\n RELATIVE: 'Relative',\n ABSOLUTE: 'Absolute',\n },\n RELATIVE_UNITS: [\n { key: 'minutes', label: 'minutes ago' },\n { key: 'hours', label: 'hours ago' },\n { key: 'days', label: 'days ago' },\n { key: 'weeks', label: 'weeks ago' },\n { key: 'months', label: 'months ago' },\n { key: 'years', label: 'years ago' },\n ]\n}\n"],"mappings":"AAAA,MAAO,IAAM,CAAAA,WAAW,CAAG,CACvBC,IAAI,CAAE,CACFC,QAAQ,CAAE,UAAU,CACpBC,QAAQ,CAAE,UACd,CAAC,CACDC,cAAc,CAAE,CACZ,CAAEC,GAAG,CAAE,SAAS,CAAEC,KAAK,CAAE,aAAc,CAAC,CACxC,CAAED,GAAG,CAAE,OAAO,CAAEC,KAAK,CAAE,WAAY,CAAC,CACpC,CAAED,GAAG,CAAE,MAAM,CAAEC,KAAK,CAAE,UAAW,CAAC,CAClC,CAAED,GAAG,CAAE,OAAO,CAAEC,KAAK,CAAE,WAAY,CAAC,CACpC,CAAED,GAAG,CAAE,QAAQ,CAAEC,KAAK,CAAE,YAAa,CAAC,CACtC,CAAED,GAAG,CAAE,OAAO,CAAEC,KAAK,CAAE,WAAY,CAAC,CAE5C,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","names":["DATE_FILTER","TABS","RELATIVE","ABSOLUTE","RELATIVE_UNITS","key","label"],"sources":["../../src/helpers/constants.ts"],"sourcesContent":["export const DATE_FILTER = {\n TABS: {\n RELATIVE: 'Relative',\n ABSOLUTE: 'Absolute',\n },\n RELATIVE_UNITS: [\n { key: 'hours', label: 'hours ago' },\n { key: 'days', label: 'days ago' },\n { key: 'weeks', label: 'weeks ago' },\n { key: 'months', label: 'months ago' },\n { key: 'years', label: 'years ago' },\n ]\n}\n"],"mappings":"AAAA,MAAO,IAAM,CAAAA,WAAW,CAAG,CACvBC,IAAI,CAAE,CACFC,QAAQ,CAAE,UAAU,CACpBC,QAAQ,CAAE,UACd,CAAC,CACDC,cAAc,CAAE,CACZ,CAAEC,GAAG,CAAE,OAAO,CAAEC,KAAK,CAAE,WAAY,CAAC,CACpC,CAAED,GAAG,CAAE,MAAM,CAAEC,KAAK,CAAE,UAAW,CAAC,CAClC,CAAED,GAAG,CAAE,OAAO,CAAEC,KAAK,CAAE,WAAY,CAAC,CACpC,CAAED,GAAG,CAAE,QAAQ,CAAEC,KAAK,CAAE,YAAa,CAAC,CACtC,CAAED,GAAG,CAAE,OAAO,CAAEC,KAAK,CAAE,WAAY,CAAC,CAE5C,CAAC","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import _extends from"@babel/runtime/helpers/extends";/* eslint-disable @typescript-eslint/no-explicit-any */function isPlaceholder(obj){return typeof obj==="object"&&obj!==null&&obj.name==="__peak_placeholder"}function extractPlaceholders(json,mapping,parentId){if(parentId===void 0){parentId=undefined}var updatedParentId=parentId;if(json===null){return}else if(Array.isArray(json)){json.forEach(function(item){return extractPlaceholders(item,mapping,updatedParentId)});return}else if(typeof json==="object"){if(json.id){updatedParentId=json.id}for(var _i=0,_Object$entries=Object.entries(json);_i<_Object$entries.length;_i++){var _Object$entries$_i=_Object$entries[_i],key=_Object$entries$_i[0],value=_Object$entries$_i[1];if(isPlaceholder(value)){if(updatedParentId){mapping[updatedParentId]=mapping[updatedParentId]||{};mapping[updatedParentId][key]=value}}else if(typeof value==="object"){extractPlaceholders(value,mapping,updatedParentId)}}}}function containsPlaceholder(obj,key){var value=obj==null?void 0:obj[key];return value!==null&&value!==""}function replacePlaceholders(json,mapping){if(json===null){return json}if(Array.isArray(json)){return json.map(function(item){return replacePlaceholders(item,mapping)})}if(typeof json==="object"){var _newJson$componentNam,_newJson$componentNam2,_newJson$componentNam3,_newJson$componentPro,_newJson$componentNam4,_newJson$componentPro2,_newJson$componentPro3;var newJson=_extends({},json);if(newJson.id&&mapping[newJson.id]){var hasFooterContent=containsPlaceholder(newJson,"footerContent");var hasFooterIcon=containsPlaceholder(newJson,"footerIcon");var hasFooterClass=containsPlaceholder(newJson,"footerClass");for(var _i2=0,_Object$entries2=Object.entries(mapping[newJson.id]);_i2<_Object$entries2.length;_i2++){var _Object$entries2$_i=_Object$entries2[_i2],key=_Object$entries2$_i[0],placeholderValue=_Object$entries2$_i[1];if(key in newJson){if(key==="footerContent"&&(!hasFooterContent||newJson.isEmptied)||key==="footerIcon"&&(!hasFooterIcon||newJson.isEmptied)||key==="footerClass"&&(!hasFooterClass||newJson.isEmptied)){continue}newJson[key]=placeholderValue}}}if(((_newJson$componentNam=newJson.componentName)==null?void 0:_newJson$componentNam.toLowerCase())==="filter"||((_newJson$componentNam2=newJson.componentName)==null?void 0:_newJson$componentNam2.toLowerCase())==="unifiedfilter"){newJson.componentProps=_extends({},newJson.componentProps,{value:null})}if(((_newJson$componentNam3=newJson.componentName)==null?void 0:_newJson$componentNam3.toLowerCase())==="search"&&(_newJson$componentPro=newJson.componentProps)!=null&&_newJson$componentPro.searchText){newJson.componentProps=_extends({},newJson.componentProps,{searchText:null})}if(((_newJson$componentNam4=newJson.componentName)==null?void 0:_newJson$componentNam4.toLowerCase())==="table"&&((_newJson$componentPro2=newJson.componentProps)!=null&&_newJson$componentPro2.sortColumn||(_newJson$componentPro3=newJson.componentProps)!=null&&_newJson$componentPro3.sortDirection)){newJson.componentProps=_extends({},newJson.componentProps,{sortColumn:null,sortDirection:null})}for(var _i3=0,_Object$entries3=Object.entries(newJson);_i3<_Object$entries3.length;_i3++){var _Object$entries3$_i=_Object$entries3[_i3],_key=_Object$entries3$_i[0],value=_Object$entries3$_i[1];newJson[_key]=replacePlaceholders(value,mapping)}return newJson}return json}export function getUpdatedUiJson(uiJson,finalJson,currentPageId){var placeholderMapping={};extractPlaceholders(uiJson,placeholderMapping);var cloneJson=JSON.parse(JSON.stringify(finalJson));if(uiJson.isMultiPage&&currentPageId&&uiJson.pages&&Array.isArray(uiJson.pages)){var pageIndex=uiJson.pages.findIndex(function(p){return p.id===currentPageId});if(pageIndex>=0&&cloneJson.pages&&cloneJson.pages.length>0){var _cloneJson$pages$page,_cloneJson$pages$;var updatedPages=[].concat(uiJson.pages);var sourceFrames=((_cloneJson$pages$page=cloneJson.pages[pageIndex])==null?void 0:_cloneJson$pages$page.frames)||((_cloneJson$pages$=cloneJson.pages[0])==null?void 0:_cloneJson$pages$.frames)||updatedPages[pageIndex].frames;updatedPages[pageIndex]=_extends({},updatedPages[pageIndex],{frames:sourceFrames});var multiPageJson={assets:uiJson.assets||[],dataSources:uiJson.dataSources||[],isMultiPage:uiJson.isMultiPage,pages:updatedPages,styles:uiJson.styles||[],symbols:uiJson.symbols||[]};var _newFinalJson=replacePlaceholders(multiPageJson,placeholderMapping);return _newFinalJson}}var newFinalJson=replacePlaceholders(cloneJson,placeholderMapping);return _extends({},newFinalJson,{assets:uiJson.assets||newFinalJson.assets||[],dataSources:uiJson.dataSources||newFinalJson.dataSources||[],isMultiPage:uiJson.isMultiPage,styles:uiJson.styles||[],symbols:uiJson.symbols||newFinalJson.symbols||[]})}
1
+ import _extends from"@babel/runtime/helpers/extends";/* eslint-disable @typescript-eslint/no-explicit-any */function isPlaceholder(obj){return typeof obj==="object"&&obj!==null&&obj.name==="__peak_placeholder"}function extractPlaceholders(json,mapping,parentId){if(parentId===void 0){parentId=undefined}var updatedParentId=parentId;if(json===null){return}else if(Array.isArray(json)){json.forEach(function(item){return extractPlaceholders(item,mapping,updatedParentId)});return}else if(typeof json==="object"){if(json.id){updatedParentId=json.id}for(var _i=0,_Object$entries=Object.entries(json);_i<_Object$entries.length;_i++){var _Object$entries$_i=_Object$entries[_i],key=_Object$entries$_i[0],value=_Object$entries$_i[1];if(isPlaceholder(value)){if(updatedParentId){mapping[updatedParentId]=mapping[updatedParentId]||{};mapping[updatedParentId][key]=value}}else if(typeof value==="object"){extractPlaceholders(value,mapping,updatedParentId)}}}}function containsPlaceholder(obj,key){var value=obj==null?void 0:obj[key];return value!==null&&value!==""}function replacePlaceholders(json,mapping){if(json===null){return json}if(Array.isArray(json)){return json.map(function(item){return replacePlaceholders(item,mapping)})}if(typeof json==="object"){var _newJson$componentNam,_newJson$componentNam2,_newJson$componentNam3,_newJson$componentPro,_newJson$componentNam4,_newJson$componentPro2,_newJson$componentPro3;var newJson=_extends({},json);if(newJson.id&&mapping[newJson.id]){var hasFooterContent=containsPlaceholder(newJson,"footerContent");var hasFooterIcon=containsPlaceholder(newJson,"footerIcon");var hasFooterClass=containsPlaceholder(newJson,"footerClass");for(var _i2=0,_Object$entries2=Object.entries(mapping[newJson.id]);_i2<_Object$entries2.length;_i2++){var _Object$entries2$_i=_Object$entries2[_i2],key=_Object$entries2$_i[0],placeholderValue=_Object$entries2$_i[1];if(key in newJson){if(key==="footerContent"&&(!hasFooterContent||newJson.isEmptied)&&placeholderValue===null||key==="footerIcon"&&(!hasFooterIcon||newJson.isEmptied)&&placeholderValue===null||key==="footerClass"&&(!hasFooterClass||newJson.isEmptied)&&placeholderValue===null){continue}newJson[key]=placeholderValue}}}if(((_newJson$componentNam=newJson.componentName)==null?void 0:_newJson$componentNam.toLowerCase())==="filter"||((_newJson$componentNam2=newJson.componentName)==null?void 0:_newJson$componentNam2.toLowerCase())==="unifiedfilter"){newJson.componentProps=_extends({},newJson.componentProps,{value:null})}if(((_newJson$componentNam3=newJson.componentName)==null?void 0:_newJson$componentNam3.toLowerCase())==="search"&&(_newJson$componentPro=newJson.componentProps)!=null&&_newJson$componentPro.searchText){newJson.componentProps=_extends({},newJson.componentProps,{searchText:null})}if(((_newJson$componentNam4=newJson.componentName)==null?void 0:_newJson$componentNam4.toLowerCase())==="table"&&((_newJson$componentPro2=newJson.componentProps)!=null&&_newJson$componentPro2.sortColumn||(_newJson$componentPro3=newJson.componentProps)!=null&&_newJson$componentPro3.sortDirection)){newJson.componentProps=_extends({},newJson.componentProps,{sortColumn:null,sortDirection:null})}for(var _i3=0,_Object$entries3=Object.entries(newJson);_i3<_Object$entries3.length;_i3++){var _Object$entries3$_i=_Object$entries3[_i3],_key=_Object$entries3$_i[0],value=_Object$entries3$_i[1];newJson[_key]=replacePlaceholders(value,mapping)}return newJson}return json}export function getUpdatedUiJson(uiJson,finalJson,currentPageId){var placeholderMapping={};extractPlaceholders(uiJson,placeholderMapping);var cloneJson=JSON.parse(JSON.stringify(finalJson));if(uiJson.isMultiPage&&currentPageId&&uiJson.pages&&Array.isArray(uiJson.pages)){var pageIndex=uiJson.pages.findIndex(function(p){return p.id===currentPageId});if(pageIndex>=0&&cloneJson.pages&&cloneJson.pages.length>0){var _cloneJson$pages$page,_cloneJson$pages$;var updatedPages=[].concat(uiJson.pages);var sourceFrames=((_cloneJson$pages$page=cloneJson.pages[pageIndex])==null?void 0:_cloneJson$pages$page.frames)||((_cloneJson$pages$=cloneJson.pages[0])==null?void 0:_cloneJson$pages$.frames)||updatedPages[pageIndex].frames;updatedPages[pageIndex]=_extends({},updatedPages[pageIndex],{frames:sourceFrames});var multiPageJson={assets:uiJson.assets||[],dataSources:uiJson.dataSources||[],isMultiPage:uiJson.isMultiPage,pages:updatedPages,styles:uiJson.styles||[],symbols:uiJson.symbols||[]};var _newFinalJson=replacePlaceholders(multiPageJson,placeholderMapping);return _newFinalJson}}var newFinalJson=replacePlaceholders(cloneJson,placeholderMapping);return _extends({},newFinalJson,{assets:uiJson.assets||newFinalJson.assets||[],dataSources:uiJson.dataSources||newFinalJson.dataSources||[],isMultiPage:uiJson.isMultiPage,styles:uiJson.styles||[],symbols:uiJson.symbols||newFinalJson.symbols||[]})}
2
2
  //# sourceMappingURL=merge-json.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge-json.js","names":["isPlaceholder","obj","name","extractPlaceholders","json","mapping","parentId","undefined","updatedParentId","Array","isArray","forEach","item","id","_i","_Object$entries","Object","entries","length","_Object$entries$_i","key","value","containsPlaceholder","replacePlaceholders","map","_newJson$componentNam","_newJson$componentNam2","_newJson$componentNam3","_newJson$componentPro","_newJson$componentNam4","_newJson$componentPro2","_newJson$componentPro3","newJson","_extends","hasFooterContent","hasFooterIcon","hasFooterClass","_i2","_Object$entries2","_Object$entries2$_i","placeholderValue","isEmptied","componentName","toLowerCase","componentProps","searchText","sortColumn","sortDirection","_i3","_Object$entries3","_Object$entries3$_i","getUpdatedUiJson","uiJson","finalJson","currentPageId","placeholderMapping","cloneJson","JSON","parse","stringify","isMultiPage","pages","pageIndex","findIndex","p","_cloneJson$pages$page","_cloneJson$pages$","updatedPages","concat","sourceFrames","frames","multiPageJson","assets","dataSources","styles","symbols","newFinalJson"],"sources":["../../src/helpers/merge-json.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction isPlaceholder(obj: Record<string, any>) {\n return typeof obj === 'object' && obj !== null && obj.name === '__peak_placeholder';\n}\n\nfunction extractPlaceholders(\n json: Record<string, any>,\n mapping: Record<string, any>,\n parentId: string | undefined = undefined,\n) {\n let updatedParentId = parentId;\n\n if (json === null) {\n return;\n } else if (Array.isArray(json)) {\n json.forEach((item) => extractPlaceholders(item, mapping, updatedParentId));\n\n return;\n } else if (typeof json === 'object') {\n if (json.id) {\n updatedParentId = json.id;\n }\n\n for (const [key, value] of Object.entries(json)) {\n if (isPlaceholder(value)) {\n if (updatedParentId) {\n mapping[updatedParentId] = mapping[updatedParentId] || {};\n mapping[updatedParentId][key] = value;\n }\n } else if (typeof value === 'object') {\n extractPlaceholders(value, mapping, updatedParentId);\n }\n }\n }\n}\n\nfunction containsPlaceholder(obj: Record<string, any>, key: string) {\n const value = obj?.[key];\n\n return value !== null && value !== '';\n}\n\nfunction replacePlaceholders(\n json: Record<string, any>,\n mapping: Record<string, any>,\n): Record<string, any> {\n if (json === null) {\n return json;\n }\n\n if (Array.isArray(json)) {\n return json.map((item) => replacePlaceholders(item, mapping));\n }\n\n if (typeof json === 'object') {\n const newJson = { ...json };\n\n if (newJson.id && mapping[newJson.id]) {\n const hasFooterContent = containsPlaceholder(newJson, 'footerContent');\n const hasFooterIcon = containsPlaceholder(newJson, 'footerIcon');\n const hasFooterClass = containsPlaceholder(newJson, 'footerClass');\n\n for (const [key, placeholderValue] of Object.entries(mapping[newJson.id])) {\n if (key in newJson) {\n if (\n (key === 'footerContent' && (!hasFooterContent || newJson.isEmptied)) ||\n (key === 'footerIcon' && (!hasFooterIcon || newJson.isEmptied)) ||\n (key === 'footerClass' && (!hasFooterClass || newJson.isEmptied))\n ) {\n continue;\n }\n\n newJson[key] = placeholderValue;\n }\n }\n }\n\n if (\n newJson.componentName?.toLowerCase() === 'filter' ||\n newJson.componentName?.toLowerCase() === 'unifiedfilter'\n ) {\n newJson.componentProps = {\n ...newJson.componentProps,\n value: null,\n };\n }\n\n if (newJson.componentName?.toLowerCase() === 'search' && newJson.componentProps?.searchText) {\n newJson.componentProps = {\n ...newJson.componentProps,\n searchText: null,\n };\n }\n\n if (\n newJson.componentName?.toLowerCase() === 'table' &&\n (newJson.componentProps?.sortColumn || newJson.componentProps?.sortDirection)\n ) {\n newJson.componentProps = {\n ...newJson.componentProps,\n sortColumn: null,\n sortDirection: null,\n };\n }\n\n for (const [key, value] of Object.entries(newJson)) {\n newJson[key] = replacePlaceholders(value, mapping);\n }\n\n return newJson;\n }\n\n return json;\n}\n\nexport function getUpdatedUiJson(\n uiJson: Record<string, any>,\n finalJson: Record<string, any>,\n currentPageId?: string,\n) {\n const placeholderMapping = {};\n extractPlaceholders(uiJson, placeholderMapping);\n\n const cloneJson = JSON.parse(JSON.stringify(finalJson));\n\n if (uiJson.isMultiPage && currentPageId && uiJson.pages && Array.isArray(uiJson.pages)) {\n const pageIndex = uiJson.pages.findIndex((p: any) => p.id === currentPageId);\n\n if (pageIndex >= 0 && cloneJson.pages && cloneJson.pages.length > 0) {\n const updatedPages = [...uiJson.pages];\n const sourceFrames =\n cloneJson.pages[pageIndex]?.frames ||\n cloneJson.pages[0]?.frames ||\n updatedPages[pageIndex].frames;\n updatedPages[pageIndex] = {\n ...updatedPages[pageIndex],\n frames: sourceFrames,\n };\n\n const multiPageJson = {\n assets: uiJson.assets || [],\n dataSources: uiJson.dataSources || [],\n isMultiPage: uiJson.isMultiPage,\n pages: updatedPages,\n styles: uiJson.styles || [],\n symbols: uiJson.symbols || [],\n };\n\n const newFinalJson = replacePlaceholders(multiPageJson, placeholderMapping);\n\n return newFinalJson;\n }\n }\n\n const newFinalJson = replacePlaceholders(cloneJson, placeholderMapping);\n\n return {\n ...newFinalJson,\n assets: uiJson.assets || newFinalJson.assets || [],\n dataSources: uiJson.dataSources || newFinalJson.dataSources || [],\n isMultiPage: uiJson.isMultiPage,\n styles: uiJson.styles || [],\n symbols: uiJson.symbols || newFinalJson.symbols || [],\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"merge-json.js","names":["isPlaceholder","obj","name","extractPlaceholders","json","mapping","parentId","undefined","updatedParentId","Array","isArray","forEach","item","id","_i","_Object$entries","Object","entries","length","_Object$entries$_i","key","value","containsPlaceholder","replacePlaceholders","map","_newJson$componentNam","_newJson$componentNam2","_newJson$componentNam3","_newJson$componentPro","_newJson$componentNam4","_newJson$componentPro2","_newJson$componentPro3","newJson","_extends","hasFooterContent","hasFooterIcon","hasFooterClass","_i2","_Object$entries2","_Object$entries2$_i","placeholderValue","isEmptied","componentName","toLowerCase","componentProps","searchText","sortColumn","sortDirection","_i3","_Object$entries3","_Object$entries3$_i","getUpdatedUiJson","uiJson","finalJson","currentPageId","placeholderMapping","cloneJson","JSON","parse","stringify","isMultiPage","pages","pageIndex","findIndex","p","_cloneJson$pages$page","_cloneJson$pages$","updatedPages","concat","sourceFrames","frames","multiPageJson","assets","dataSources","styles","symbols","newFinalJson"],"sources":["../../src/helpers/merge-json.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction isPlaceholder(obj: Record<string, any>) {\n return typeof obj === 'object' && obj !== null && obj.name === '__peak_placeholder';\n}\n\nfunction extractPlaceholders(\n json: Record<string, any>,\n mapping: Record<string, any>,\n parentId: string | undefined = undefined,\n) {\n let updatedParentId = parentId;\n\n if (json === null) {\n return;\n } else if (Array.isArray(json)) {\n json.forEach((item) => extractPlaceholders(item, mapping, updatedParentId));\n\n return;\n } else if (typeof json === 'object') {\n if (json.id) {\n updatedParentId = json.id;\n }\n\n for (const [key, value] of Object.entries(json)) {\n if (isPlaceholder(value)) {\n if (updatedParentId) {\n mapping[updatedParentId] = mapping[updatedParentId] || {};\n mapping[updatedParentId][key] = value;\n }\n } else if (typeof value === 'object') {\n extractPlaceholders(value, mapping, updatedParentId);\n }\n }\n }\n}\n\nfunction containsPlaceholder(obj: Record<string, any>, key: string) {\n const value = obj?.[key];\n\n return value !== null && value !== '';\n}\n\nfunction replacePlaceholders(\n json: Record<string, any>,\n mapping: Record<string, any>,\n): Record<string, any> {\n if (json === null) {\n return json;\n }\n\n if (Array.isArray(json)) {\n return json.map((item) => replacePlaceholders(item, mapping));\n }\n\n if (typeof json === 'object') {\n const newJson = { ...json };\n\n if (newJson.id && mapping[newJson.id]) {\n const hasFooterContent = containsPlaceholder(newJson, 'footerContent');\n const hasFooterIcon = containsPlaceholder(newJson, 'footerIcon');\n const hasFooterClass = containsPlaceholder(newJson, 'footerClass');\n\n for (const [key, placeholderValue] of Object.entries(mapping[newJson.id])) {\n if (key in newJson) {\n if (\n (key === 'footerContent' && (!hasFooterContent || newJson.isEmptied) && placeholderValue === null) ||\n (key === 'footerIcon' && (!hasFooterIcon || newJson.isEmptied) && placeholderValue === null) ||\n (key === 'footerClass' && (!hasFooterClass || newJson.isEmptied) && placeholderValue === null)\n ) {\n continue;\n }\n\n newJson[key] = placeholderValue;\n }\n }\n }\n\n if (\n newJson.componentName?.toLowerCase() === 'filter' ||\n newJson.componentName?.toLowerCase() === 'unifiedfilter'\n ) {\n newJson.componentProps = {\n ...newJson.componentProps,\n value: null,\n };\n }\n\n if (newJson.componentName?.toLowerCase() === 'search' && newJson.componentProps?.searchText) {\n newJson.componentProps = {\n ...newJson.componentProps,\n searchText: null,\n };\n }\n\n if (\n newJson.componentName?.toLowerCase() === 'table' &&\n (newJson.componentProps?.sortColumn || newJson.componentProps?.sortDirection)\n ) {\n newJson.componentProps = {\n ...newJson.componentProps,\n sortColumn: null,\n sortDirection: null,\n };\n }\n\n for (const [key, value] of Object.entries(newJson)) {\n newJson[key] = replacePlaceholders(value, mapping);\n }\n\n return newJson;\n }\n\n return json;\n}\n\nexport function getUpdatedUiJson(\n uiJson: Record<string, any>,\n finalJson: Record<string, any>,\n currentPageId?: string,\n) {\n const placeholderMapping = {};\n extractPlaceholders(uiJson, placeholderMapping);\n\n const cloneJson = JSON.parse(JSON.stringify(finalJson));\n\n if (uiJson.isMultiPage && currentPageId && uiJson.pages && Array.isArray(uiJson.pages)) {\n const pageIndex = uiJson.pages.findIndex((p: any) => p.id === currentPageId);\n\n if (pageIndex >= 0 && cloneJson.pages && cloneJson.pages.length > 0) {\n const updatedPages = [...uiJson.pages];\n const sourceFrames =\n cloneJson.pages[pageIndex]?.frames ||\n cloneJson.pages[0]?.frames ||\n updatedPages[pageIndex].frames;\n updatedPages[pageIndex] = {\n ...updatedPages[pageIndex],\n frames: sourceFrames,\n };\n\n const multiPageJson = {\n assets: uiJson.assets || [],\n dataSources: uiJson.dataSources || [],\n isMultiPage: uiJson.isMultiPage,\n pages: updatedPages,\n styles: uiJson.styles || [],\n symbols: uiJson.symbols || [],\n };\n\n const newFinalJson = replacePlaceholders(multiPageJson, placeholderMapping);\n\n return newFinalJson;\n }\n }\n\n const newFinalJson = replacePlaceholders(cloneJson, placeholderMapping);\n\n return {\n ...newFinalJson,\n assets: uiJson.assets || newFinalJson.assets || [],\n dataSources: uiJson.dataSources || newFinalJson.dataSources || [],\n isMultiPage: uiJson.isMultiPage,\n styles: uiJson.styles || [],\n symbols: uiJson.symbols || newFinalJson.symbols || [],\n };\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@peak-ai/canvas",
3
3
  "author": "squad-builder-experience",
4
4
  "license": "UNLICENSED",
5
- "version": "1.6.12",
5
+ "version": "1.6.13-rc.1",
6
6
  "description": "",
7
7
  "dependencies": {
8
8
  "@emotion/react": "^11.11.4",
@@ -34,7 +34,6 @@ export type DataTableProps = {
34
34
  decimalPrecision?: number;
35
35
  columnWithChipClass?: Record<string, 'useMap' | 'useRandom'>;
36
36
  chipStylesMapping?: Record<string, Record<string, string>>;
37
- columnTooltips?: Record<string, Record<string, string>>;
38
37
  navigateToPage?: (pageId: string, rowContext?: Record<string, any>) => void;
39
38
  isBulkSelectionEnabled?: boolean;
40
39
  selectedIndices?: number[];
@@ -42,5 +41,5 @@ export type DataTableProps = {
42
41
  title?: string;
43
42
  onDownload?: (limit: number) => Promise<void>;
44
43
  };
45
- export declare function DataTable({ data, headerMapper, className, actions, isEditable, pagination, isLoading, onRowAction, onPageChange, onSort, sortConfig, sortable: sortableGlobal, otherProps, height, decimalPrecision, columnWithChipClass, chipStylesMapping, columnTooltips, navigateToPage, isBulkSelectionEnabled, selectedIndices, setSelectedIndices, title, onDownload, }: DataTableProps): import("react/jsx-runtime").JSX.Element;
44
+ export declare function DataTable({ data, headerMapper, className, actions, isEditable, pagination, isLoading, onRowAction, onPageChange, onSort, sortConfig, sortable: sortableGlobal, otherProps, height, decimalPrecision, columnWithChipClass, chipStylesMapping, navigateToPage, isBulkSelectionEnabled, selectedIndices, setSelectedIndices, title, onDownload, }: DataTableProps): import("react/jsx-runtime").JSX.Element;
46
45
  export {};
@@ -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{Button}from"../../shadcn/components/ui/button";import{cn}from"../../shadcn/utils";import{renderNoDataFallback}from"./extra";import{formatValue}from"../../helpers";import{Tooltip,TooltipTrigger,TooltipContent,TooltipProvider}from"../../shadcn/components/ui/tooltip";import{SEMANTIC_CHIP_STYLES_MAP,RANDOM_CHIP_COLOR_PALETTE}from"../../constants";import{Checkbox}from"../../shadcn/components/ui/checkbox";import{MoreVertical,Loader2}from"lucide-react";import{useButtonForm}from"./button-form";import{DownloadButton}from"./download-data-button";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";function resolveRowContext(rowContext,row){if(!rowContext||Object.keys(rowContext).length===0){return undefined}var resolved={};for(var _i=0,_Object$entries=Object.entries(rowContext);_i<_Object$entries.length;_i++){var _Object$entries$_i=_Object$entries[_i],key=_Object$entries$_i[0],ref=_Object$entries$_i[1];if(typeof ref==="string"&&ref.startsWith("@")){var _row$fieldName;var fieldName=ref.includes(".")?ref.split(".").slice(1).join("."):ref.slice(1);resolved[key]=(_row$fieldName=row[fieldName])!=null?_row$fieldName:row[ref.slice(1)]}else{resolved[key]=ref}}return resolved}/**
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{Checkbox}from"../../shadcn/components/ui/checkbox";import{MoreVertical,Loader2}from"lucide-react";import{useButtonForm}from"./button-form";import{DownloadButton}from"./download-data-button";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";function resolveRowContext(rowContext,row){if(!rowContext||Object.keys(rowContext).length===0){return undefined}var resolved={};for(var _i=0,_Object$entries=Object.entries(rowContext);_i<_Object$entries.length;_i++){var _Object$entries$_i=_Object$entries[_i],key=_Object$entries$_i[0],ref=_Object$entries$_i[1];if(typeof ref==="string"&&ref.startsWith("@")){var _row$fieldName;var fieldName=ref.includes(".")?ref.split(".").slice(1).join("."):ref.slice(1);resolved[key]=(_row$fieldName=row[fieldName])!=null?_row$fieldName:row[ref.slice(1)]}else{resolved[key]=ref}}return resolved}/**
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,10 +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,_pagination$totalCoun;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$sortable=_ref.sortable,sortableGlobal=_ref$sortable===void 0?true:_ref$sortable,_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,_ref$columnTooltips=_ref.columnTooltips,columnTooltips=_ref$columnTooltips===void 0?{}:_ref$columnTooltips,navigateToPage=_ref.navigateToPage,_ref$isBulkSelectionE=_ref.isBulkSelectionEnabled,isBulkSelectionEnabled=_ref$isBulkSelectionE===void 0?false:_ref$isBulkSelectionE,_ref$selectedIndices=_ref.selectedIndices,selectedIndices=_ref$selectedIndices===void 0?[]:_ref$selectedIndices,setSelectedIndices=_ref.setSelectedIndices,title=_ref.title,onDownload=_ref.onDownload;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(null),loadingActionKey=_useState6[0],setLoadingActionKey=_useState6[1];var _useState7=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=_useState7[0],setPageNumber=_useState7[1];var _useState8=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=_useState8[0],setPageSize=_useState8[1];var _useState9=useState(Math.ceil(((pagination==null?void 0:pagination.totalCount)||0)/pageSize)||1),totalPages=_useState9[0],setTotalPages=_useState9[1];var _useState10=useState({}),chipColorMap=_useState10[0],setChipColorMap=_useState10[1];var _useState11=useState(null),openDropdownIndex=_useState11[0],setOpenDropdownIndex=_useState11[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
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,_pagination$totalCoun;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$sortable=_ref.sortable,sortableGlobal=_ref$sortable===void 0?true:_ref$sortable,_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,navigateToPage=_ref.navigateToPage,_ref$isBulkSelectionE=_ref.isBulkSelectionEnabled,isBulkSelectionEnabled=_ref$isBulkSelectionE===void 0?false:_ref$isBulkSelectionE,_ref$selectedIndices=_ref.selectedIndices,selectedIndices=_ref$selectedIndices===void 0?[]:_ref$selectedIndices,setSelectedIndices=_ref.setSelectedIndices,title=_ref.title,onDownload=_ref.onDownload;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(null),loadingActionKey=_useState6[0],setLoadingActionKey=_useState6[1];var _useState7=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=_useState7[0],setPageNumber=_useState7[1];var _useState8=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=_useState8[0],setPageSize=_useState8[1];var _useState9=useState(Math.ceil(((pagination==null?void 0:pagination.totalCount)||0)/pageSize)||1),totalPages=_useState9[0],setTotalPages=_useState9[1];var _useState10=useState({}),chipColorMap=_useState10[0],setChipColorMap=_useState10[1];var _useState11=useState(null),openDropdownIndex=_useState11[0],setOpenDropdownIndex=_useState11[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
11
  var availableKeys=Object.keys(data[0]||{});var newColorMap={};// Process each column that uses random chips
12
12
  Object.keys(columnWithChipClass).forEach(function(columnKey){// Validate column key exists in data
13
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
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.action==="navigateToPage"&&action.action.targetPageId){var rowContext=resolveRowContext(action.action.rowContext,data[rowIndex]);navigateToPage==null||navigateToPage(action.action.targetPageId,rowContext);return}if(action.action.type==="navigation"){var onClick=action.action.onClick;if((onClick==null?void 0:onClick.action)==="navigateToPage"&&onClick.targetPageId){var _rowContext=resolveRowContext(action.action.rowContext,data[rowIndex]);navigateToPage==null||navigateToPage(onClick.targetPageId,_rowContext);return}}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 _callee3(newPage,newSize){return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:if(newPage===void 0){newPage=pageNumber}if(newSize===void 0){newSize=pageSize}setPageNumber(newPage);setPageSize(newSize);onPageChange==null||onPageChange(newPage,newSize);case 5:case"end":return _context3.stop()}},_callee3)}));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 handleCheckboxClick(rowIndex){if(setSelectedIndices){if(selectedIndices.includes(rowIndex)){setSelectedIndices(selectedIndices.filter(function(idx){return idx!==rowIndex}))}else{setSelectedIndices([].concat(selectedIndices,[rowIndex]))}}}function ActionsDropdown(_ref6){var rowIndex=_ref6.rowIndex,rowActions=_ref6.rowActions;var isOpen=openDropdownIndex===rowIndex;var totalRows=rows.length;var isNearBottom=rowIndex>=totalRows-3;function handleActionClick(_x4){return _handleActionClick.apply(this,arguments)}function _handleActionClick(){_handleActionClick=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(action){var rowContext,onClick,_rowContext2,actionKey;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(!(action.action.action==="navigateToPage"&&action.action.targetPageId)){_context2.next=5;break}rowContext=resolveRowContext(action.action.rowContext,data[rowIndex]);navigateToPage==null||navigateToPage(action.action.targetPageId,rowContext);setOpenDropdownIndex(null);return _context2.abrupt("return");case 5:if(!(action.action.type==="navigation")){_context2.next=12;break}onClick=action.action.onClick;if(!((onClick==null?void 0:onClick.action)==="navigateToPage"&&onClick.targetPageId)){_context2.next=12;break}_rowContext2=resolveRowContext(action.action.rowContext,data[rowIndex]);navigateToPage==null||navigateToPage(onClick.targetPageId,_rowContext2);setOpenDropdownIndex(null);return _context2.abrupt("return");case 12:// Handle form-based and API actions
15
- actionKey=rowIndex+"-"+action.id;if(!(action.action.formMapper&&Object.keys(action.action.formMapper).length>0)){_context2.next=19;break}setActiveRowIndex(rowIndex);setActiveAction(action);setOpenDropdownIndex(null);_context2.next=27;break;case 19:_context2.prev=19;setLoadingActionKey(actionKey);_context2.next=23;return onRowAction==null?void 0:onRowAction(rowIndex,action.id);case 23:_context2.prev=23;setLoadingActionKey(null);setOpenDropdownIndex(null);return _context2.finish(23);case 27:case"end":return _context2.stop()}},_callee2,null,[[19,,23,27]])}));return _handleActionClick.apply(this,arguments)}function toggleDropdown(){setOpenDropdownIndex(isOpen?null:rowIndex)}function handleBackdropClick(){if(!loadingActionKey){setOpenDropdownIndex(null)}}return/*#__PURE__*/_jsxs(_Fragment,{children:[isOpen&&/*#__PURE__*/_jsx("div",{className:"fixed inset-0 z-40",onClick:handleBackdropClick,style:{background:"transparent",cursor:"default"}}),/*#__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","data-dropdown-button":"true",children:/*#__PURE__*/_jsx(MoreVertical,{className:"h-4 w-4"})}),isOpen&&/*#__PURE__*/_jsx("div",{className:cn("absolute right-full mr-2 w-48 rounded-md shadow-lg bg-white ring-gray-400 ring-opacity-5 z-50",isNearBottom?"bottom-0":"top-0"),children:/*#__PURE__*/_jsx("div",{className:"py-1",role:"menu",children:rowActions.map(function(action){var actionKey=rowIndex+"-"+action.id;var isActionLoading=loadingActionKey===actionKey;return/*#__PURE__*/_jsxs("button",{onClick:function onClick(){return handleActionClick(action)},className:"block w-full text-left px-4 py-2 text-sm hover:bg-accent transition-colors font-semibold disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2 focus:outline-none focus:bg-accent",disabled:isLoading||isActionLoading,role:"menuitem",children:[isActionLoading&&/*#__PURE__*/_jsx(Loader2,{className:"h-3 w-3 animate-spin"}),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__*/_jsxs(TableRow,{children:[isBulkSelectionEnabled&&/*#__PURE__*/_jsx(TableCell,{className:"p-2 w-10",children:/*#__PURE__*/_jsx(Checkbox,{checked:(selectedIndices==null?void 0:selectedIndices.length)===data.length,onCheckedChange:function onCheckedChange(){if(setSelectedIndices){if((selectedIndices==null?void 0:selectedIndices.length)===data.length){setSelectedIndices([])}else{setSelectedIndices(data.map(function(_,idx){return idx}))}}}})}),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:sortableGlobal&&!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:[isBulkSelectionEnabled&&/*#__PURE__*/_jsx(TableCell,{className:"p-2 align-middle",children:/*#__PURE__*/_jsx(Checkbox,{checked:selectedIndices==null?void 0:selectedIndices.includes(rIdx),onCheckedChange:function onCheckedChange(){return handleCheckboxClick(rIdx)}})}),row.map(function(cell,cIdx){var columnKey=originalKeys[cIdx];var chipMode=columnKey?getChipMode(columnWithChipClass,columnKey):undefined;var shouldRenderChip=!!chipMode;var tooltipMap=columnKey?columnTooltips[columnKey]:undefined;var tooltipText=tooltipMap&&cell!=null?String(cell).split(",").map(function(code){return tooltipMap[code.trim()]}).filter(Boolean).join("\n")||undefined:undefined;var cellContent=shouldRenderChip?renderChip(columnKey,cell):formatValue(cell,decimalPrecision);return/*#__PURE__*/_jsx(TableCell,{"data-slot":"cell-"+rIdx+"-"+cIdx,className:"p-2 align-middle whitespace-nowrap",contentEditable:false,children:tooltipText?/*#__PURE__*/_jsx(TooltipProvider,{children:/*#__PURE__*/_jsxs(Tooltip,{children:[/*#__PURE__*/_jsx(TooltipTrigger,{asChild:true,children:/*#__PURE__*/_jsx("span",{className:"underline decoration-dotted cursor-help",children:cellContent})}),/*#__PURE__*/_jsx(TooltipContent,{className:"whitespace-pre-line",children:tooltipText})]})}):cellContent},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$totalCoun=pagination==null?void 0:pagination.totalCount)!=null?_pagination$totalCoun:0)>0||title&&!isEditable&&onDownload)&&/*#__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__*/_jsx("div",{className:"flex items-center gap-2 flex-shrink-0",children:pagination&&pagination.totalCount>0&&/*#__PURE__*/_jsxs(_Fragment,{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||[10,20,50,100]).map(function(size){return/*#__PURE__*/_jsx("option",{value:size,children:size},size)})})]})}),/*#__PURE__*/_jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[title&&!isEditable&&onDownload&&/*#__PURE__*/_jsx(DownloadButton,{component:"table",title:title,onDownload:onDownload,dataCount:typeof(pagination==null?void 0:pagination.totalCount)==="number"?pagination.totalCount:data.length}),pagination&&pagination.totalCount>0&&/*#__PURE__*/_jsxs(_Fragment,{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
+ actionKey=rowIndex+"-"+action.id;if(!(action.action.formMapper&&Object.keys(action.action.formMapper).length>0)){_context2.next=19;break}setActiveRowIndex(rowIndex);setActiveAction(action);setOpenDropdownIndex(null);_context2.next=27;break;case 19:_context2.prev=19;setLoadingActionKey(actionKey);_context2.next=23;return onRowAction==null?void 0:onRowAction(rowIndex,action.id);case 23:_context2.prev=23;setLoadingActionKey(null);setOpenDropdownIndex(null);return _context2.finish(23);case 27:case"end":return _context2.stop()}},_callee2,null,[[19,,23,27]])}));return _handleActionClick.apply(this,arguments)}function toggleDropdown(){setOpenDropdownIndex(isOpen?null:rowIndex)}function handleBackdropClick(){if(!loadingActionKey){setOpenDropdownIndex(null)}}return/*#__PURE__*/_jsxs(_Fragment,{children:[isOpen&&/*#__PURE__*/_jsx("div",{className:"fixed inset-0 z-40",onClick:handleBackdropClick,style:{background:"transparent",cursor:"default"}}),/*#__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","data-dropdown-button":"true",children:/*#__PURE__*/_jsx(MoreVertical,{className:"h-4 w-4"})}),isOpen&&/*#__PURE__*/_jsx("div",{className:cn("absolute right-full mr-2 w-48 rounded-md shadow-lg bg-white ring-gray-400 ring-opacity-5 z-50",isNearBottom?"bottom-0":"top-0"),children:/*#__PURE__*/_jsx("div",{className:"py-1",role:"menu",children:rowActions.map(function(action){var actionKey=rowIndex+"-"+action.id;var isActionLoading=loadingActionKey===actionKey;return/*#__PURE__*/_jsxs("button",{onClick:function onClick(){return handleActionClick(action)},className:"block w-full text-left px-4 py-2 text-sm hover:bg-accent transition-colors font-semibold disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2 focus:outline-none focus:bg-accent",disabled:isLoading||isActionLoading,role:"menuitem",children:[isActionLoading&&/*#__PURE__*/_jsx(Loader2,{className:"h-3 w-3 animate-spin"}),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__*/_jsxs(TableRow,{children:[isBulkSelectionEnabled&&/*#__PURE__*/_jsx(TableCell,{className:"p-2 w-10",children:/*#__PURE__*/_jsx(Checkbox,{checked:(selectedIndices==null?void 0:selectedIndices.length)===data.length,onCheckedChange:function onCheckedChange(){if(setSelectedIndices){if((selectedIndices==null?void 0:selectedIndices.length)===data.length){setSelectedIndices([])}else{setSelectedIndices(data.map(function(_,idx){return idx}))}}}})}),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:sortableGlobal&&!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:[isBulkSelectionEnabled&&/*#__PURE__*/_jsx(TableCell,{className:"p-2 align-middle",children:/*#__PURE__*/_jsx(Checkbox,{checked:selectedIndices==null?void 0:selectedIndices.includes(rIdx),onCheckedChange:function onCheckedChange(){return handleCheckboxClick(rIdx)}})}),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$totalCoun=pagination==null?void 0:pagination.totalCount)!=null?_pagination$totalCoun:0)>0||title&&!isEditable&&onDownload)&&/*#__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__*/_jsx("div",{className:"flex items-center gap-2 flex-shrink-0",children:pagination&&pagination.totalCount>0&&/*#__PURE__*/_jsxs(_Fragment,{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||[10,20,50,100]).map(function(size){return/*#__PURE__*/_jsx("option",{value:size,children:size},size)})})]})}),/*#__PURE__*/_jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[title&&!isEditable&&onDownload&&/*#__PURE__*/_jsx(DownloadButton,{component:"table",title:title,onDownload:onDownload,dataCount:typeof(pagination==null?void 0:pagination.totalCount)==="number"?pagination.totalCount:data.length}),pagination&&pagination.totalCount>0&&/*#__PURE__*/_jsxs(_Fragment,{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]})}
16
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","Button","cn","renderNoDataFallback","formatValue","Tooltip","TooltipTrigger","TooltipContent","TooltipProvider","SEMANTIC_CHIP_STYLES_MAP","RANDOM_CHIP_COLOR_PALETTE","Checkbox","MoreVertical","Loader2","useButtonForm","DownloadButton","jsx","_jsx","jsxs","_jsxs","_Fragment","resolveRowContext","rowContext","row","Object","keys","length","undefined","resolved","_i","_Object$entries","entries","_Object$entries$_i","key","ref","startsWith","_row$fieldName","fieldName","includes","split","slice","join","normalizeValue","value","str","String","trim","toLowerCase","getChipMode","columnWithChipClass","columnKey","mode","getUniqueValuesHash","data","Array","isArray","availableKeys","hashParts","forEach","chipMode","uniqueNormalizedValues","Set","normalizedKey","add","sortedUniqueValues","from","sort","JSON","stringify","DataTable","_ref","_ref2","_pagination$values$pa","_pagination$values","_ref3","_pagination$values$pa2","_pagination$values2","_pagination$totalCoun","_ref$data","_ref$headerMapper","headerMapper","_ref$className","className","_ref$actions","actions","_ref$isEditable","isEditable","pagination","_ref$isLoading","isLoading","onRowAction","onPageChange","onSort","sortConfig","_ref$sortable","sortable","sortableGlobal","_ref$otherProps","otherProps","height","_ref$decimalPrecision","decimalPrecision","_ref$columnWithChipCl","_ref$chipStylesMappin","chipStylesMapping","_ref$columnTooltips","columnTooltips","navigateToPage","_ref$isBulkSelectionE","isBulkSelectionEnabled","_ref$selectedIndices","selectedIndices","setSelectedIndices","title","onDownload","children","style","minHeight","_useState","activeSortColumn","setActiveSortColumn","_useState2","sortDirections","setSortDirections","_useState3","activeRowIndex","setActiveRowIndex","_useState4","activeAction","setActiveAction","_useState5","isFormSubmitting","setIsFormSubmitting","_useState6","loadingActionKey","setLoadingActionKey","_useState7","Number","values","pageNumber","initialPage","setPageNumber","_useState8","pageSize","initialPageSize","setPageSize","_useState9","Math","ceil","totalCount","totalPages","setTotalPages","_useState10","chipColorMap","setChipColorMap","_useState11","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","targetPageId","type","onClick","originalKeys","filter","headers","map","push","rows","datum","handlePageChange","_x2","_x3","_handlePageChange","_callee3","newPage","newSize","_callee3$","_context3","handleSortClick","column","direction","_extends2","handleCheckboxClick","idx","concat","ActionsDropdown","_ref6","rowActions","isOpen","totalRows","isNearBottom","handleActionClick","_x4","_handleActionClick","_callee2","_rowContext2","actionKey","_callee2$","_context2","abrupt","toggleDropdown","handleBackdropClick","background","cursor","variant","size","e","stopPropagation","disabled","role","isActionLoading","text","renderActions","defaultClasses","mergedClasses","getRandomColorForValue","_chipColorMap$columnK","renderChip","formattedValue","chipClassName","_chipStylesMapping$co","valueStr","valueLower","renderTableComponent","checked","onCheckedChange","_","head","isActionColumn","originalKey","contentEditable","isActive","rIdx","cell","cIdx","shouldRenderChip","tooltipMap","tooltipText","code","Boolean","cellContent","asChild","orientation","htmlFor","onChange","target","pageSizeOptions","component","dataCount","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 { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from '../../shadcn/components/ui/tooltip';\nimport { SEMANTIC_CHIP_STYLES_MAP, RANDOM_CHIP_COLOR_PALETTE } from '../../constants';\nimport { Checkbox } from '../../shadcn/components/ui/checkbox';\nimport { MoreVertical, Loader2 } from 'lucide-react';\nimport { useButtonForm } from './button-form';\nimport { DownloadButton } from './download-data-button';\n\nfunction resolveRowContext(\n rowContext: Record<string, string> | undefined,\n row: Record<string, any>,\n): Record<string, any> | undefined {\n if (!rowContext || Object.keys(rowContext).length === 0) {\n return undefined;\n }\n\n const resolved: Record<string, any> = {};\n\n for (const [key, ref] of Object.entries(rowContext)) {\n if (typeof ref === 'string' && ref.startsWith('@')) {\n const fieldName = ref.includes('.') ? ref.split('.').slice(1).join('.') : ref.slice(1);\n resolved[key] = row[fieldName] ?? row[ref.slice(1)];\n } else {\n resolved[key] = ref;\n }\n }\n\n return resolved;\n}\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 sortable?: boolean;\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 columnTooltips?: Record<string, Record<string, string>>;\n navigateToPage?: (pageId: string, rowContext?: Record<string, any>) => void;\n isBulkSelectionEnabled?: boolean;\n selectedIndices?: number[];\n setSelectedIndices?: (indices: number[]) => void;\n title?: string;\n onDownload?: (limit: number) => Promise<void>;\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\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 sortable: sortableGlobal = true,\n otherProps = {},\n height,\n decimalPrecision = 2,\n columnWithChipClass = {},\n chipStylesMapping = {},\n columnTooltips = {},\n navigateToPage,\n isBulkSelectionEnabled = false,\n selectedIndices = [],\n setSelectedIndices,\n title,\n onDownload,\n}: DataTableProps) {\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 const [loadingActionKey, setLoadingActionKey] = useState<string | null>(null);\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 [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\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\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\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\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.action === 'navigateToPage' && action.action.targetPageId) {\n const rowContext = resolveRowContext(action.action.rowContext, data[rowIndex]);\n navigateToPage?.(action.action.targetPageId, rowContext);\n\n return;\n }\n\n if (action.action.type === 'navigation') {\n const onClick = action.action.onClick;\n\n if (onClick?.action === 'navigateToPage' && onClick.targetPageId) {\n const rowContext = resolveRowContext(action.action.rowContext, data[rowIndex]);\n navigateToPage?.(onClick.targetPageId, rowContext);\n\n return;\n }\n }\n\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 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 handleCheckboxClick(rowIndex: number) {\n if (setSelectedIndices) {\n if (selectedIndices.includes(rowIndex)) {\n setSelectedIndices(selectedIndices.filter((idx) => idx !== rowIndex));\n } else {\n setSelectedIndices([...selectedIndices, rowIndex]);\n }\n }\n }\n\n function ActionsDropdown({\n rowIndex,\n rowActions,\n }: {\n rowIndex: number;\n rowActions: RowAction[];\n }) {\n const isOpen = openDropdownIndex === rowIndex;\n\n const totalRows = rows.length;\n const isNearBottom = rowIndex >= totalRows - 3;\n\n async function handleActionClick(action: RowAction) {\n if (action.action.action === 'navigateToPage' && action.action.targetPageId) {\n const rowContext = resolveRowContext(action.action.rowContext, data[rowIndex]);\n navigateToPage?.(action.action.targetPageId, rowContext);\n setOpenDropdownIndex(null);\n\n return;\n }\n\n if (action.action.type === 'navigation') {\n const onClick = action.action.onClick;\n\n if (onClick?.action === 'navigateToPage' && onClick.targetPageId) {\n const rowContext = resolveRowContext(action.action.rowContext, data[rowIndex]);\n navigateToPage?.(onClick.targetPageId, rowContext);\n setOpenDropdownIndex(null);\n\n return;\n }\n }\n\n // Handle form-based and API actions\n const actionKey = `${rowIndex}-${action.id}`;\n\n if (action.action.formMapper && Object.keys(action.action.formMapper).length > 0) {\n setActiveRowIndex(rowIndex);\n setActiveAction(action);\n setOpenDropdownIndex(null);\n } else {\n try {\n setLoadingActionKey(actionKey);\n await onRowAction?.(rowIndex, action.id);\n } finally {\n setLoadingActionKey(null);\n setOpenDropdownIndex(null);\n }\n }\n }\n\n function toggleDropdown() {\n setOpenDropdownIndex(isOpen ? null : rowIndex);\n }\n\n function handleBackdropClick() {\n if (!loadingActionKey) {\n setOpenDropdownIndex(null);\n }\n }\n\n return (\n <>\n {isOpen && (\n <div\n className=\"fixed inset-0 z-40\"\n onClick={handleBackdropClick}\n style={{ background: 'transparent', cursor: 'default' }}\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 data-dropdown-button=\"true\"\n >\n <MoreVertical className=\"h-4 w-4\" />\n </Button>\n {isOpen && (\n <div\n className={cn(\n 'absolute right-full mr-2 w-48 rounded-md shadow-lg bg-white ring-gray-400 ring-opacity-5 z-50',\n isNearBottom ? 'bottom-0' : 'top-0',\n )}\n >\n <div className=\"py-1\" role=\"menu\">\n {rowActions.map((action) => {\n const actionKey = `${rowIndex}-${action.id}`;\n const isActionLoading = loadingActionKey === actionKey;\n\n return (\n <button\n key={action.id}\n onClick={() => handleActionClick(action)}\n className=\"block w-full text-left px-4 py-2 text-sm hover:bg-accent transition-colors font-semibold disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2 focus:outline-none focus:bg-accent\"\n disabled={isLoading || isActionLoading}\n role=\"menuitem\"\n >\n {isActionLoading && <Loader2 className=\"h-3 w-3 animate-spin\" />}\n {action.text}\n </button>\n );\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 {isBulkSelectionEnabled && (\n <TableCell className=\"p-2 w-10\">\n <Checkbox\n checked={selectedIndices?.length === data.length}\n onCheckedChange={() => {\n if (setSelectedIndices) {\n if (selectedIndices?.length === data.length) {\n setSelectedIndices([]);\n } else {\n setSelectedIndices(data.map((_, idx) => idx));\n }\n }\n }}\n />\n </TableCell>\n )}\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={sortableGlobal && !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 {isBulkSelectionEnabled && (\n <TableCell className=\"p-2 align-middle\">\n <Checkbox\n checked={selectedIndices?.includes(rIdx)}\n onCheckedChange={() => handleCheckboxClick(rIdx)}\n />\n </TableCell>\n )}\n {row.map((cell: string, cIdx: number) => {\n const columnKey = originalKeys[cIdx];\n const chipMode = columnKey\n ? getChipMode(columnWithChipClass, columnKey)\n : undefined;\n const shouldRenderChip = !!chipMode;\n const tooltipMap = columnKey ? columnTooltips[columnKey] : undefined;\n const tooltipText =\n tooltipMap && cell != null\n ? String(cell)\n .split(',')\n .map((code) => tooltipMap[code.trim()])\n .filter(Boolean)\n .join('\\n') || undefined\n : undefined;\n\n const cellContent = shouldRenderChip\n ? renderChip(columnKey, cell)\n : formatValue(cell, decimalPrecision);\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 {tooltipText ? (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"underline decoration-dotted cursor-help\">{cellContent}</span>\n </TooltipTrigger>\n <TooltipContent className=\"whitespace-pre-line\">{tooltipText}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n ) : cellContent}\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?.totalCount ?? 0) > 0 || (title && !isEditable && onDownload)) && (\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 {pagination && pagination.totalCount > 0 && (\n <>\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 || [10, 20, 50, 100]).map((size: number) => (\n <option key={size} value={size}>\n {size}\n </option>\n ))}\n </select>\n </>\n )}\n </div>\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n {title && !isEditable && onDownload && (\n <DownloadButton\n component=\"table\"\n title={title}\n onDownload={onDownload}\n dataCount={typeof pagination?.totalCount === 'number' ? pagination.totalCount : data.length}\n />\n )}\n {pagination && pagination.totalCount > 0 && (\n <>\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 </>\n )}\n </div>\n </div>\n )}\n {FormDialog}\n </Fragment>\n );\n}\n"],"mappings":"wLAAA,uDACA,OAASA,SAAS,CAAEC,QAAQ,CAAEC,QAAQ,CAAEC,OAAO,CAAEC,MAAM,KAAQ,OAAO,CACtE,OACEC,KAAK,CACLC,WAAW,CACXC,QAAQ,CACRC,SAAS,CACTC,SAAS,CACTC,SAAS,CACTC,iBAAiB,KAEZ,kCAAkC,CACzC,OAASC,WAAW,KAAQ,qCAAqC,CACjE,OAASC,UAAU,CAAEC,SAAS,KAAQ,wCAAwC,CAC9E,OACEC,UAAU,CACVC,iBAAiB,CACjBC,sBAAsB,KACjB,uCAAuC,CAC9C,OAASC,MAAM,KAAQ,mCAAmC,CAC1D,OAASC,EAAE,KAAQ,oBAAoB,CACvC,OAASC,oBAAoB,KAAQ,SAAS,CAC9C,OAASC,WAAW,KAAQ,eAAe,CAC3C,OAASC,OAAO,CAAEC,cAAc,CAAEC,cAAc,CAAEC,eAAe,KAAQ,oCAAoC,CAC7G,OAASC,wBAAwB,CAAEC,yBAAyB,KAAQ,iBAAiB,CACrF,OAASC,QAAQ,KAAQ,qCAAqC,CAC9D,OAASC,YAAY,CAAEC,OAAO,KAAQ,cAAc,CACpD,OAASC,aAAa,KAAQ,eAAe,CAC7C,OAASC,cAAc,KAAQ,wBAAwB,CAAC,OAAAC,GAAA,IAAAC,IAAA,CAAAC,IAAA,IAAAC,KAAA,CAAAlC,QAAA,IAAAmC,SAAA,yBAExD,QAAS,CAAAC,iBAAiBA,CACxBC,UAA8C,CAC9CC,GAAwB,CACS,CACjC,GAAI,CAACD,UAAU,EAAIE,MAAM,CAACC,IAAI,CAACH,UAAU,CAAC,CAACI,MAAM,GAAK,CAAC,CAAE,CACvD,MAAO,CAAAC,SACT,CAEA,GAAM,CAAAC,QAA6B,CAAG,CAAC,CAAC,CAExC,QAAAC,EAAA,GAAAC,eAAA,CAAyBN,MAAM,CAACO,OAAO,CAACT,UAAU,CAAC,CAAAO,EAAA,CAAAC,eAAA,CAAAJ,MAAA,CAAAG,EAAA,GAAE,CAAhD,IAAAG,kBAAA,CAAAF,eAAA,CAAAD,EAAA,EAAOI,GAAG,CAAAD,kBAAA,IAAEE,GAAG,CAAAF,kBAAA,IAClB,GAAI,MAAO,CAAAE,GAAG,GAAK,QAAQ,EAAIA,GAAG,CAACC,UAAU,CAAC,GAAG,CAAC,CAAE,KAAAC,cAAA,CAClD,GAAM,CAAAC,SAAS,CAAGH,GAAG,CAACI,QAAQ,CAAC,GAAG,CAAC,CAAGJ,GAAG,CAACK,KAAK,CAAC,GAAG,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,CAAGP,GAAG,CAACM,KAAK,CAAC,CAAC,CAAC,CACtFZ,QAAQ,CAACK,GAAG,CAAC,EAAAG,cAAA,CAAGb,GAAG,CAACc,SAAS,CAAC,QAAAD,cAAA,CAAIb,GAAG,CAACW,GAAG,CAACM,KAAK,CAAC,CAAC,CAAC,CACpD,CAAC,IAAM,CACLZ,QAAQ,CAACK,GAAG,CAAC,CAAGC,GAClB,CACF,CAEA,MAAO,CAAAN,QACT,CA+CA;AACA;AACA;AACA;AACA,GACA,QAAS,CAAAc,cAAcA,CAACC,KAAU,CAAU,CAC1C;AACA,GAAIA,KAAK,GAAK,IAAI,EAAIA,KAAK,GAAKhB,SAAS,CAAE,CACzC,MAAO,EACT,CAEA,GAAM,CAAAiB,GAAG,CAAGC,MAAM,CAACF,KAAK,CAAC,CAEzB,MAAO,CAAAC,GAAG,CAACE,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAChC,CAEA,QAAS,CAAAC,WAAWA,CAClBC,mBAA2D,CAC3DC,SAAiB,CACmB,CACpC,GAAI,EAAEA,SAAS,GAAI,CAAAD,mBAAmB,CAAC,CAAE,CACvC,MAAO,CAAAtB,SACT,CAEA,GAAM,CAAAwB,IAAI,CAAGF,mBAAmB,CAACC,SAAS,CAAC,CAE3C,GAAIC,IAAI,GAAK,QAAQ,EAAIA,IAAI,GAAK,WAAW,CAAE,CAC7C,MAAO,WACT,CAEA,MAAO,CAAAA,IACT,CAEA;AACA;AACA;AACA;AACA,GACA,QAAS,CAAAC,mBAAmBA,CAC1BC,IAA2B,CAC3BJ,mBAA2D,CACnD,CACR,GAAI,CAACK,KAAK,CAACC,OAAO,CAACF,IAAI,CAAC,EAAIA,IAAI,CAAC3B,MAAM,GAAK,CAAC,CAAE,CAC7C,MAAO,EACT,CAEA,GAAM,CAAA8B,aAAa,CAAGhC,MAAM,CAACC,IAAI,CAAC4B,IAAI,CAAC,CAAC,CAAC,EAAI,CAAC,CAAC,CAAC,CAChD,GAAM,CAAAI,SAAmC,CAAG,CAAC,CAAC,CAE9CjC,MAAM,CAACC,IAAI,CAACwB,mBAAmB,CAAC,CAACS,OAAO,CAAC,SAACR,SAAS,CAAK,CACtD,GAAI,CAACM,aAAa,CAAClB,QAAQ,CAACY,SAAS,CAAC,CAAE,CACtC,MACF,CAEA,GAAM,CAAAS,QAAQ,CAAGX,WAAW,CAACC,mBAAmB,CAAEC,SAAS,CAAC,CAE5D,GAAIS,QAAQ,GAAK,WAAW,CAAE,CAC5B,GAAM,CAAAC,sBAAsB,CAAG,GAAI,CAAAC,GAAa,CAChDR,IAAI,CAACK,OAAO,CAAC,SAACnC,GAAG,CAAK,CACpB,GAAM,CAAAoB,KAAK,CAAGpB,GAAG,CAAC2B,SAAS,CAAC,CAC5B,GAAM,CAAAY,aAAa,CAAGpB,cAAc,CAACC,KAAK,CAAC,CAE3C,GAAImB,aAAa,CAAE,CACjBF,sBAAsB,CAACG,GAAG,CAACD,aAAa,CAC1C,CACF,CAAC,CAAC,CACF,GAAM,CAAAE,kBAAkB,CAAGV,KAAK,CAACW,IAAI,CAACL,sBAAsB,CAAC,CAACM,IAAI,CAAC,CAAC,CACpET,SAAS,CAACP,SAAS,CAAC,CAAGc,kBACzB,CACF,CAAC,CAAC,CAEF,MAAO,CAAAG,IAAI,CAACC,SAAS,CAACX,SAAS,CACjC,CAEA,MAAO,SAAS,CAAAY,SAASA,CAAAC,IAAA,CAyBN,KAAAC,KAAA,CAAAC,qBAAA,CAAAC,kBAAA,CAAAC,KAAA,CAAAC,sBAAA,CAAAC,mBAAA,CAAAC,qBAAA,KAAAC,SAAA,CAAAR,IAAA,CAxBjBjB,IAAI,CAAJA,IAAI,CAAAyB,SAAA,UAAG,EAAE,CAAAA,SAAA,CAAAC,iBAAA,CAAAT,IAAA,CACTU,YAAY,CAAZA,YAAY,CAAAD,iBAAA,UAAG,CAAC,CAAC,CAAAA,iBAAA,CAAAE,cAAA,CAAAX,IAAA,CACjBY,SAAS,CAATA,SAAS,CAAAD,cAAA,UAAG,EAAE,CAAAA,cAAA,CAAAE,YAAA,CAAAb,IAAA,CACdc,OAAO,CAAPA,OAAO,CAAAD,YAAA,UAAG,EAAE,CAAAA,YAAA,CAAAE,eAAA,CAAAf,IAAA,CACZgB,UAAU,CAAVA,UAAU,CAAAD,eAAA,UAAG,KAAK,CAAAA,eAAA,CAClBE,UAAU,CAAAjB,IAAA,CAAViB,UAAU,CAAAC,cAAA,CAAAlB,IAAA,CACVmB,SAAS,CAATA,SAAS,CAAAD,cAAA,UAAG,KAAK,CAAAA,cAAA,CACjBE,WAAW,CAAApB,IAAA,CAAXoB,WAAW,CACXC,YAAY,CAAArB,IAAA,CAAZqB,YAAY,CACZC,MAAM,CAAAtB,IAAA,CAANsB,MAAM,CACNC,UAAU,CAAAvB,IAAA,CAAVuB,UAAU,CAAAC,aAAA,CAAAxB,IAAA,CACVyB,QAAQ,CAAEC,cAAc,CAAAF,aAAA,UAAG,IAAI,CAAAA,aAAA,CAAAG,eAAA,CAAA3B,IAAA,CAC/B4B,UAAU,CAAVA,UAAU,CAAAD,eAAA,UAAG,CAAC,CAAC,CAAAA,eAAA,CACfE,MAAM,CAAA7B,IAAA,CAAN6B,MAAM,CAAAC,qBAAA,CAAA9B,IAAA,CACN+B,gBAAgB,CAAhBA,gBAAgB,CAAAD,qBAAA,UAAG,CAAC,CAAAA,qBAAA,CAAAE,qBAAA,CAAAhC,IAAA,CACpBrB,mBAAmB,CAAnBA,mBAAmB,CAAAqD,qBAAA,UAAG,CAAC,CAAC,CAAAA,qBAAA,CAAAC,qBAAA,CAAAjC,IAAA,CACxBkC,iBAAiB,CAAjBA,iBAAiB,CAAAD,qBAAA,UAAG,CAAC,CAAC,CAAAA,qBAAA,CAAAE,mBAAA,CAAAnC,IAAA,CACtBoC,cAAc,CAAdA,cAAc,CAAAD,mBAAA,UAAG,CAAC,CAAC,CAAAA,mBAAA,CACnBE,cAAc,CAAArC,IAAA,CAAdqC,cAAc,CAAAC,qBAAA,CAAAtC,IAAA,CACduC,sBAAsB,CAAtBA,sBAAsB,CAAAD,qBAAA,UAAG,KAAK,CAAAA,qBAAA,CAAAE,oBAAA,CAAAxC,IAAA,CAC9ByC,eAAe,CAAfA,eAAe,CAAAD,oBAAA,UAAG,EAAE,CAAAA,oBAAA,CACpBE,kBAAkB,CAAA1C,IAAA,CAAlB0C,kBAAkB,CAClBC,KAAK,CAAA3C,IAAA,CAAL2C,KAAK,CACLC,UAAU,CAAA5C,IAAA,CAAV4C,UAAU,CAEV,GAAI,CAAC7D,IAAI,EAAIA,IAAI,CAAC3B,MAAM,GAAK,CAAC,CAAE,CAC9B,mBACET,IAAA,CAAChC,QAAQ,EAAAkI,QAAA,cACPlG,IAAA,QAAKiE,SAAS,CAAC,+BAA+B,CAAAiC,QAAA,cAC5ClG,IAAA,QACE,YAAU,iBAAiB,CAC3BiE,SAAS,CAAC,oBAAoB,CAC9BkC,KAAK,CAAE,CAAEjB,MAAM,CAAE,MAAM,CAAEkB,SAAS,CAAE,OAAQ,CAAE,CAAAF,QAAA,CAE7C1B,SAAS,cAAGxE,IAAA,CAACtB,WAAW,GAAE,CAAC,CAAGQ,oBAAoB,CAAC,CAAC,CAClD,CAAC,CACH,CAAC,CACE,CAEd,CAEA,IAAAmH,SAAA,CAAgDtI,QAAQ,CAAgB,IAAI,CAAC,CAAtEuI,gBAAgB,CAAAD,SAAA,IAAEE,mBAAmB,CAAAF,SAAA,IAC5C,IAAAG,UAAA,CAA4CzI,QAAQ,CAAgC,CAAC,CAAC,CAAC,CAAhF0I,cAAc,CAAAD,UAAA,IAAEE,iBAAiB,CAAAF,UAAA,IACxC,IAAAG,UAAA,CAA4C5I,QAAQ,CAAgB,IAAI,CAAC,CAAlE6I,cAAc,CAAAD,UAAA,IAAEE,iBAAiB,CAAAF,UAAA,IACxC,IAAAG,UAAA,CAAwC/I,QAAQ,CAAmB,IAAI,CAAC,CAAjEgJ,YAAY,CAAAD,UAAA,IAAEE,eAAe,CAAAF,UAAA,IACpC,IAAAG,UAAA,CAAgDlJ,QAAQ,CAAC,KAAK,CAAC,CAAxDmJ,gBAAgB,CAAAD,UAAA,IAAEE,mBAAmB,CAAAF,UAAA,IAC5C,IAAAG,UAAA,CAAgDrJ,QAAQ,CAAgB,IAAI,CAAC,CAAtEsJ,gBAAgB,CAAAD,UAAA,IAAEE,mBAAmB,CAAAF,UAAA,IAE5C,IAAAG,UAAA,CAAoCxJ,QAAQ,CAC1CyJ,MAAM,EAAAlE,KAAA,EAAAC,qBAAA,CAACe,UAAU,SAAAd,kBAAA,CAAVc,UAAU,CAAEmD,MAAM,eAAlBjE,kBAAA,CAAoBkE,UAAU,QAAAnE,qBAAA,CAAIe,UAAU,cAAVA,UAAU,CAAEqD,WAAW,QAAArE,KAAA,CAAI,CAAC,CACvE,CAAC,CAFMoE,UAAU,CAAAH,UAAA,IAAEK,aAAa,CAAAL,UAAA,IAGhC,IAAAM,UAAA,CAAgC9J,QAAQ,CACtCyJ,MAAM,EAAA/D,KAAA,EAAAC,sBAAA,CAACY,UAAU,SAAAX,mBAAA,CAAVW,UAAU,CAAEmD,MAAM,eAAlB9D,mBAAA,CAAoBmE,QAAQ,QAAApE,sBAAA,CAAIY,UAAU,cAAVA,UAAU,CAAEyD,eAAe,QAAAtE,KAAA,CAAI,EAAE,CAC1E,CAAC,CAFMqE,QAAQ,CAAAD,UAAA,IAAEG,WAAW,CAAAH,UAAA,IAG5B,IAAAI,UAAA,CAAoClK,QAAQ,CAC1CmK,IAAI,CAACC,IAAI,CAAC,CAAC,CAAA7D,UAAU,cAAVA,UAAU,CAAE8D,UAAU,GAAI,CAAC,EAAIN,QAAQ,CAAC,EAAI,CACzD,CAAC,CAFMO,UAAU,CAAAJ,UAAA,IAAEK,aAAa,CAAAL,UAAA,IAIhC,IAAAM,WAAA,CAAwCxK,QAAQ,CAAyC,CAAC,CAAC,CAAC,CAArFyK,YAAY,CAAAD,WAAA,IAAEE,eAAe,CAAAF,WAAA,IAEpC,IAAAG,WAAA,CAAkD3K,QAAQ,CAAgB,IAAI,CAAC,CAAxE4K,iBAAiB,CAAAD,WAAA,IAAEE,oBAAoB,CAAAF,WAAA,IAE9C,GAAM,CAAAG,eAAe,CAAG3K,MAAM,CAAS,EAAE,CAAC,CAE1CJ,SAAS,CAAC,UAAM,KAAAgL,KAAA,CAAAC,sBAAA,CAAAC,mBAAA,CAAAC,KAAA,CAAAC,sBAAA,CAAAC,mBAAA,CACdvB,aAAa,CAACJ,MAAM,EAAAsB,KAAA,EAAAC,sBAAA,CAACzE,UAAU,SAAA0E,mBAAA,CAAV1E,UAAU,CAAEmD,MAAM,eAAlBuB,mBAAA,CAAoBtB,UAAU,QAAAqB,sBAAA,CAAIzE,UAAU,cAAVA,UAAU,CAAEqD,WAAW,QAAAmB,KAAA,CAAI,CAAC,CAAC,CAAC,CACrFd,WAAW,CAACR,MAAM,EAAAyB,KAAA,EAAAC,sBAAA,CAAC5E,UAAU,SAAA6E,mBAAA,CAAV7E,UAAU,CAAEmD,MAAM,eAAlB0B,mBAAA,CAAoBrB,QAAQ,QAAAoB,sBAAA,CAAI5E,UAAU,cAAVA,UAAU,CAAEyD,eAAe,QAAAkB,KAAA,CAAI,EAAE,CAAC,CACvF,CAAC,CAAE,CAAC3E,UAAU,CAAC,CAAC,CAEhBxG,SAAS,CAAC,UAAM,CACdwK,aAAa,CAACJ,IAAI,CAACC,IAAI,CAAC,CAAC,CAAA7D,UAAU,cAAVA,UAAU,CAAE8D,UAAU,GAAI,CAAC,EAAIN,QAAQ,CAAC,EAAI,CAAC,CACxE,CAAC,CAAE,CAACxD,UAAU,cAAVA,UAAU,CAAE8D,UAAU,CAAEN,QAAQ,CAAC,CAAC,CAEtChK,SAAS,CAAC,UAAM,CACd,GAAI8G,UAAU,CAAE,CACd8B,iBAAiB,CAAC9B,UAAU,CAAC,CAC7B,GAAM,CAAAwE,KAAK,CAAG7I,MAAM,CAACC,IAAI,CAACoE,UAAU,CAAC,CAAC,CAAC,CAAC,CAExC,GAAIwE,KAAK,CAAE,CACT7C,mBAAmB,CAAC6C,KAAK,CAC3B,CACF,CACF,CAAC,CAAE,CAACxE,UAAU,CAAC,CAAC,CAEhB9G,SAAS,CAAC,UAAM,CACd,GAAI8G,UAAU,QAAVA,UAAU,CAAEyE,UAAU,EAAIzE,UAAU,QAAVA,UAAU,CAAE0E,aAAa,CAAE,CACvD1E,UAAU,CAACyE,UAAU,CAAG,IAAI,CAC5BzE,UAAU,CAAC0E,aAAa,CAAG,IAC7B,CAEA/C,mBAAmB,CAAC,IAAI,CAAC,CACzBG,iBAAiB,CAAC,CAAC,CAAC,CACtB,CAAC,CAAE,EAAE,CAAC,CAEN,GAAM,CAAA6C,gBAAgB,CAAGtL,OAAO,CAAC,UAAM,CACrC,GAAI,CAACoE,KAAK,CAACC,OAAO,CAACF,IAAI,CAAC,EAAIA,IAAI,CAAC3B,MAAM,GAAK,CAAC,CAAE,CAC7C,MAAO,CAAC,CACV,CAEA;AACA,GAAM,CAAA8B,aAAa,CAAGhC,MAAM,CAACC,IAAI,CAAC4B,IAAI,CAAC,CAAC,CAAC,EAAI,CAAC,CAAC,CAAC,CAEhD,GAAM,CAAAoH,WAAmD,CAAG,CAAC,CAAC,CAE9D;AACAjJ,MAAM,CAACC,IAAI,CAACwB,mBAAmB,CAAC,CAACS,OAAO,CAAC,SAACR,SAAS,CAAK,CACtD;AACA,GAAI,CAACM,aAAa,CAAClB,QAAQ,CAACY,SAAS,CAAC,CAAE,CACtC,MACF,CAEA,GAAM,CAAAS,QAAQ,CAAGX,WAAW,CAACC,mBAAmB,CAAEC,SAAS,CAAC,CAE5D,GAAIS,QAAQ,GAAK,WAAW,CAAE,CAC5B,GAAI,CAAC8G,WAAW,CAACvH,SAAS,CAAC,CAAE,CAC3BuH,WAAW,CAACvH,SAAS,CAAC,CAAG,CAAC,CAC5B,CAEA,GAAM,CAAAU,sBAAsB,CAAG,GAAI,CAAAC,GAAa,CAChDR,IAAI,CAACK,OAAO,CAAC,SAACnC,GAAG,CAAK,CACpB,GAAM,CAAAoB,KAAK,CAAGpB,GAAG,CAAC2B,SAAS,CAAC,CAC5B,GAAM,CAAAY,aAAa,CAAGpB,cAAc,CAACC,KAAK,CAAC,CAE3C,GAAImB,aAAa,CAAE,CACjBF,sBAAsB,CAACG,GAAG,CAACD,aAAa,CAC1C,CACF,CAAC,CAAC,CAEF,GAAM,CAAAE,kBAAkB,CAAGV,KAAK,CAACW,IAAI,CAACL,sBAAsB,CAAC,CAACM,IAAI,CAAC,CAAC,CAEpEF,kBAAkB,CAACN,OAAO,CAAC,SAACI,aAAa,CAAE4G,KAAK,CAAK,CACnD,GAAI,CAACD,WAAW,CAACvH,SAAS,CAAC,CAACY,aAAa,CAAC,CAAE,CAC1C,GAAM,CAAA6G,UAAU,CAAGD,KAAK,CAAGhK,yBAAyB,CAACgB,MAAM,CAC3D+I,WAAW,CAACvH,SAAS,CAAC,CAACY,aAAa,CAAC,CAAGpD,yBAAyB,CAACiK,UAAU,CAC9E,CACF,CAAC,CACH,CACF,CAAC,CAAC,CAEF,MAAO,CAAAF,WACT,CAAC,CAAE,CAACpH,IAAI,CAAEJ,mBAAmB,CAAC,CAAC,CAE/BlE,SAAS,CAAC,UAAM,CACd,GAAM,CAAA6L,gBAAgB,CAAGxH,mBAAmB,CAACC,IAAI,CAAEJ,mBAAmB,CAAC,CAEvE;AACA,GAAI2H,gBAAgB,GAAKd,eAAe,CAACe,OAAO,CAAE,CAChDf,eAAe,CAACe,OAAO,CAAGD,gBAAgB,CAE1ClB,eAAe,CAAC,SAACoB,OAAO,CAAK,CAC3B,GAAM,CAAAC,MAAM,CAAAC,QAAA,IAAQF,OAAO,CAAE,CAC7BtJ,MAAM,CAACC,IAAI,CAAC+I,gBAAgB,CAAC,CAAC9G,OAAO,CAAC,SAACR,SAAS,CAAK,CACnD6H,MAAM,CAAC7H,SAAS,CAAC,CAAA8H,QAAA,IAAQR,gBAAgB,CAACtH,SAAS,CAAC,CAAK6H,MAAM,CAAC7H,SAAS,CAAC,CAC5E,CAAC,CAAC,CAEF,MAAO,CAAA6H,MACT,CAAC,CACH,CACF,CAAC,CAAE,CAACP,gBAAgB,CAAEnH,IAAI,CAAEJ,mBAAmB,CAAC,CAAC,CAEjDlE,SAAS,CAAC,UAAM,CACd2K,eAAe,CAAC,SAACoB,OAAO,CAAK,CAC3B,GAAM,CAAAG,OAAO,CAAAD,QAAA,IAAQF,OAAO,CAAE,CAC9B,GAAI,CAAAI,UAAU,CAAG,KAAK,CAEtB1J,MAAM,CAACC,IAAI,CAACwJ,OAAO,CAAC,CAACvH,OAAO,CAAC,SAACR,SAAS,CAAK,CAC1C,GAAM,CAAAS,QAAQ,CAAGX,WAAW,CAACC,mBAAmB,CAAEC,SAAS,CAAC,CAE5D,GAAI,CAACS,QAAQ,CAAE,CACb,MAAO,CAAAsH,OAAO,CAAC/H,SAAS,CAAC,CACzBgI,UAAU,CAAG,IACf,CACF,CAAC,CAAC,CAEF,MAAO,CAAAA,UAAU,CAAGD,OAAO,CAAGH,OAChC,CAAC,CACH,CAAC,CAAE,CAAC7H,mBAAmB,CAAC,CAAC,CAEzB,IAAAkI,cAAA,CAAiCrK,aAAa,CAAC,CAC7CsK,UAAU,CAAEpD,YAAY,cAAZA,YAAY,CAAEqD,MAAM,CAACD,UAAU,CAC3CE,SAAS,CAAEtD,YAAY,cAAZA,YAAY,CAAEqD,MAAM,CAACC,SAAS,CACzCC,eAAe,CAAEvD,YAAY,cAAZA,YAAY,CAAEqD,MAAM,CAACE,eAAe,CACrDC,cAAc,CAAExD,YAAY,cAAZA,YAAY,CAAEqD,MAAM,CAACG,cAAc,CACnDC,YAAY,CAAEtD,gBAAgB,EAAI1C,SAAS,CAC3CiG,OAAO,CAAE,QAAT,CAAAA,OAAOA,CAAA,CAAQ,CACb5D,iBAAiB,CAAC,IAAI,CAAC,CACvBG,eAAe,CAAC,IAAI,CACtB,CAAC,CACD0D,QAAQ,gBAAAC,SAAA,CAAAC,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAE,SAAAC,QAAOC,QAAQ,SAAAH,mBAAA,CAAAI,IAAA,UAAAC,SAAAC,QAAA,iBAAAA,QAAA,CAAAC,IAAA,CAAAD,QAAA,CAAAE,IAAA,cACnBzE,cAAc,GAAK,IAAI,EAAIG,YAAY,GAAAoE,QAAA,CAAAE,IAAA,UACzClE,mBAAmB,CAAC,IAAI,CAAC,CAACgE,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA,SAGlB,CAAA5G,WAAW,cAAXA,WAAW,CAAGmC,cAAc,CAAEG,YAAY,CAACuE,EAAE,CAAEN,QAAQ,CAAC,QAAAG,QAAA,CAAAC,IAAA,GAE9DjE,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAAgE,QAAA,CAAAI,MAAA,WAG7BvE,eAAe,CAAC,IAAI,CAAC,CACrBH,iBAAiB,CAAC,IAAI,CAAC,CAAC,yBAAAsE,QAAA,CAAAK,IAAA,KAAAT,OAAA,kBAE3B,WAbD,CAAAL,QAAQA,CAAAe,EAAA,SAAAd,SAAA,CAAAe,KAAA,MAAAC,SAAA,QAAR,CAAAjB,QAAQ,GAcV,CAAC,CAAC,CAxBMkB,UAAU,CAAA1B,cAAA,CAAV0B,UAAU,CAAEC,QAAQ,CAAA3B,cAAA,CAAR2B,QAAQ,CA0B5B,QAAS,CAAAC,iBAAiBA,CAACC,QAAgB,CAAE3B,MAAiB,CAAE,CAC9D,GAAIA,MAAM,CAACA,MAAM,CAACA,MAAM,GAAK,gBAAgB,EAAIA,MAAM,CAACA,MAAM,CAAC4B,YAAY,CAAE,CAC3E,GAAM,CAAA3L,UAAU,CAAGD,iBAAiB,CAACgK,MAAM,CAACA,MAAM,CAAC/J,UAAU,CAAE+B,IAAI,CAAC2J,QAAQ,CAAC,CAAC,CAC9ErG,cAAc,QAAdA,cAAc,CAAG0E,MAAM,CAACA,MAAM,CAAC4B,YAAY,CAAE3L,UAAU,CAAC,CAExD,MACF,CAEA,GAAI+J,MAAM,CAACA,MAAM,CAAC6B,IAAI,GAAK,YAAY,CAAE,CACvC,GAAM,CAAAC,OAAO,CAAG9B,MAAM,CAACA,MAAM,CAAC8B,OAAO,CAErC,GAAI,CAAAA,OAAO,cAAPA,OAAO,CAAE9B,MAAM,IAAK,gBAAgB,EAAI8B,OAAO,CAACF,YAAY,CAAE,CAChE,GAAM,CAAA3L,WAAU,CAAGD,iBAAiB,CAACgK,MAAM,CAACA,MAAM,CAAC/J,UAAU,CAAE+B,IAAI,CAAC2J,QAAQ,CAAC,CAAC,CAC9ErG,cAAc,QAAdA,cAAc,CAAGwG,OAAO,CAACF,YAAY,CAAE3L,WAAU,CAAC,CAElD,MACF,CACF,CAEA,GAAI+J,MAAM,CAACA,MAAM,CAACD,UAAU,EAAI5J,MAAM,CAACC,IAAI,CAAC4J,MAAM,CAACA,MAAM,CAACD,UAAU,CAAC,CAAC1J,MAAM,CAAG,CAAC,CAAE,CAChFoG,iBAAiB,CAACkF,QAAQ,CAAC,CAC3B/E,eAAe,CAACoD,MAAM,CACxB,CAAC,IAAM,CACL3F,WAAW,QAAXA,WAAW,CAAGsH,QAAQ,CAAE3B,MAAM,CAACkB,EAAE,CACnC,CACF,CAEAxN,SAAS,CAAC,UAAM,CACd,GAAIiJ,YAAY,QAAZA,YAAY,CAAEqD,MAAM,CAACD,UAAU,EAAI5J,MAAM,CAACC,IAAI,CAACuG,YAAY,CAACqD,MAAM,CAACD,UAAU,CAAC,CAAC1J,MAAM,CAAG,CAAC,CAAE,CAC7FoL,QAAQ,CAAC,CACX,CACF,CAAC,CAAE,CAAC9E,YAAY,CAAC,CAAC,CAElB,GAAM,CAAAoF,YAAY,CAAG5L,MAAM,CAACC,IAAI,CAAC4B,IAAI,CAAC,CAAC,CAAC,EAAI,CAAC,CAAC,CAAC,CAACgK,MAAM,CAAC,SAACpL,GAAG,QAAK,CAAAA,GAAG,GAAI,CAAA+C,YAAY,EAAC,CACpF,GAAM,CAAAsI,OAAO,CAAGF,YAAY,CAACG,GAAG,CAAC,SAACtL,GAAG,QAAK,CAAA+C,YAAY,CAAC/C,GAAG,CAAC,EAAC,CAE5D,GAAImD,OAAO,CAAC1D,MAAM,CAAG,CAAC,CAAE,CACtB4L,OAAO,CAACE,IAAI,CAAC,EAAE,CACjB,CAEA,GAAM,CAAAC,IAAI,CAAGpK,IAAI,CAACkK,GAAG,CAAC,SAACG,KAAU,QAAK,CAAAN,YAAY,CAACG,GAAG,CAAC,SAACtL,GAAG,QAAK,CAAAyL,KAAK,CAACzL,GAAG,CAAC,EAAC,EAAC,CAAC,QAE9D,CAAA0L,gBAAgBA,CAAAC,GAAA,CAAAC,GAAA,SAAAC,iBAAA,CAAAnB,KAAA,MAAAC,SAAA,WAAAkB,kBAAA,EAAAA,iBAAA,CAAAjC,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAA/B,SAAAgC,SAAgCC,OAAO,CAAeC,OAAO,SAAAnC,mBAAA,CAAAI,IAAA,UAAAgC,UAAAC,SAAA,iBAAAA,SAAA,CAAA9B,IAAA,CAAA8B,SAAA,CAAA7B,IAAA,YAA7B0B,OAAO,WAAPA,OAAO,CAAGrF,UAAU,IAAEsF,OAAO,WAAPA,OAAO,CAAGlF,QAAQ,CACtEF,aAAa,CAACmF,OAAO,CAAC,CACtB/E,WAAW,CAACgF,OAAO,CAAC,CACpBtI,YAAY,QAAZA,YAAY,CAAGqI,OAAO,CAAEC,OAAO,CAAC,CAAC,wBAAAE,SAAA,CAAA1B,IAAA,KAAAsB,QAAA,EAClC,UAAAD,iBAAA,CAAAnB,KAAA,MAAAC,SAAA,EAED,QAAS,CAAAwB,eAAeA,CAACC,MAAc,CAAEC,SAAwB,CAAE,CACjE9G,mBAAmB,CAAC8G,SAAS,CAAGD,MAAM,CAAG,IAAI,CAAC,CAC9C1G,iBAAiB,CAAC,SAAC0E,IAAI,MAAAkC,SAAA,QAAAvD,QAAA,IAClBqB,IAAI,EAAAkC,SAAA,IAAAA,SAAA,CACNF,MAAM,EAAGC,SAAS,CAAAC,SAAA,GACnB,CAAC,CACH3I,MAAM,QAANA,MAAM,CAAGyI,MAAM,CAAEC,SAAS,CAC5B,CAEA,QAAS,CAAAE,mBAAmBA,CAACxB,QAAgB,CAAE,CAC7C,GAAIhG,kBAAkB,CAAE,CACtB,GAAID,eAAe,CAACzE,QAAQ,CAAC0K,QAAQ,CAAC,CAAE,CACtChG,kBAAkB,CAACD,eAAe,CAACsG,MAAM,CAAC,SAACoB,GAAG,QAAK,CAAAA,GAAG,GAAKzB,QAAQ,EAAC,CACtE,CAAC,IAAM,CACLhG,kBAAkB,IAAA0H,MAAA,CAAK3H,eAAe,EAAEiG,QAAQ,EAAC,CACnD,CACF,CACF,CAEA,QAAS,CAAA2B,eAAeA,CAAAC,KAAA,CAMrB,IALD,CAAA5B,QAAQ,CAAA4B,KAAA,CAAR5B,QAAQ,CACR6B,UAAU,CAAAD,KAAA,CAAVC,UAAU,CAKV,GAAM,CAAAC,MAAM,CAAGlF,iBAAiB,GAAKoD,QAAQ,CAE7C,GAAM,CAAA+B,SAAS,CAAGtB,IAAI,CAAC/L,MAAM,CAC7B,GAAM,CAAAsN,YAAY,CAAGhC,QAAQ,EAAI+B,SAAS,CAAG,CAAC,CAAC,QAEhC,CAAAE,iBAAiBA,CAAAC,GAAA,SAAAC,kBAAA,CAAAxC,KAAA,MAAAC,SAAA,WAAAuC,mBAAA,EAAAA,kBAAA,CAAAtD,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAhC,SAAAqD,SAAiC/D,MAAiB,MAAA/J,UAAA,CAAA6L,OAAA,CAAAkC,YAAA,CAAAC,SAAA,QAAAxD,mBAAA,CAAAI,IAAA,UAAAqD,UAAAC,SAAA,iBAAAA,SAAA,CAAAnD,IAAA,CAAAmD,SAAA,CAAAlD,IAAA,cAC5CjB,MAAM,CAACA,MAAM,CAACA,MAAM,GAAK,gBAAgB,EAAIA,MAAM,CAACA,MAAM,CAAC4B,YAAY,GAAAuC,SAAA,CAAAlD,IAAA,SACnEhL,UAAU,CAAGD,iBAAiB,CAACgK,MAAM,CAACA,MAAM,CAAC/J,UAAU,CAAE+B,IAAI,CAAC2J,QAAQ,CAAC,CAAC,CAC9ErG,cAAc,QAAdA,cAAc,CAAG0E,MAAM,CAACA,MAAM,CAAC4B,YAAY,CAAE3L,UAAU,CAAC,CACxDuI,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAA2F,SAAA,CAAAC,MAAA,uBAKzBpE,MAAM,CAACA,MAAM,CAAC6B,IAAI,GAAK,YAAY,GAAAsC,SAAA,CAAAlD,IAAA,UAC/Ba,OAAO,CAAG9B,MAAM,CAACA,MAAM,CAAC8B,OAAO,MAEjC,CAAAA,OAAO,cAAPA,OAAO,CAAE9B,MAAM,IAAK,gBAAgB,EAAI8B,OAAO,CAACF,YAAY,GAAAuC,SAAA,CAAAlD,IAAA,UACxDhL,YAAU,CAAGD,iBAAiB,CAACgK,MAAM,CAACA,MAAM,CAAC/J,UAAU,CAAE+B,IAAI,CAAC2J,QAAQ,CAAC,CAAC,CAC9ErG,cAAc,QAAdA,cAAc,CAAGwG,OAAO,CAACF,YAAY,CAAE3L,YAAU,CAAC,CAClDuI,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAA2F,SAAA,CAAAC,MAAA,mBAM/B;AACMH,SAAS,CAAMtC,QAAQ,KAAI3B,MAAM,CAACkB,EAAE,MAEtClB,MAAM,CAACA,MAAM,CAACD,UAAU,EAAI5J,MAAM,CAACC,IAAI,CAAC4J,MAAM,CAACA,MAAM,CAACD,UAAU,CAAC,CAAC1J,MAAM,CAAG,CAAC,GAAA8N,SAAA,CAAAlD,IAAA,UAC9ExE,iBAAiB,CAACkF,QAAQ,CAAC,CAC3B/E,eAAe,CAACoD,MAAM,CAAC,CACvBxB,oBAAoB,CAAC,IAAI,CAAC,CAAC2F,SAAA,CAAAlD,IAAA,kBAAAkD,SAAA,CAAAnD,IAAA,IAGzB9D,mBAAmB,CAAC+G,SAAS,CAAC,CAACE,SAAA,CAAAlD,IAAA,UACzB,CAAA5G,WAAW,cAAXA,WAAW,CAAGsH,QAAQ,CAAE3B,MAAM,CAACkB,EAAE,CAAC,SAAAiD,SAAA,CAAAnD,IAAA,IAExC9D,mBAAmB,CAAC,IAAI,CAAC,CACzBsB,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAA2F,SAAA,CAAAhD,MAAA,8BAAAgD,SAAA,CAAA/C,IAAA,KAAA2C,QAAA,qBAGhC,UAAAD,kBAAA,CAAAxC,KAAA,MAAAC,SAAA,EAED,QAAS,CAAA8C,cAAcA,CAAA,CAAG,CACxB7F,oBAAoB,CAACiF,MAAM,CAAG,IAAI,CAAG9B,QAAQ,CAC/C,CAEA,QAAS,CAAA2C,mBAAmBA,CAAA,CAAG,CAC7B,GAAI,CAACrH,gBAAgB,CAAE,CACrBuB,oBAAoB,CAAC,IAAI,CAC3B,CACF,CAEA,mBACE1I,KAAA,CAAAC,SAAA,EAAA+F,QAAA,EACG2H,MAAM,eACL7N,IAAA,QACEiE,SAAS,CAAC,oBAAoB,CAC9BiI,OAAO,CAAEwC,mBAAoB,CAC7BvI,KAAK,CAAE,CAAEwI,UAAU,CAAE,aAAa,CAAEC,MAAM,CAAE,SAAU,CAAE,CACzD,CACF,cACD1O,KAAA,QAAK+D,SAAS,CAAC,UAAU,CAAAiC,QAAA,eACvBlG,IAAA,CAAChB,MAAM,EACL6P,OAAO,CAAC,OAAO,CACfC,IAAI,CAAC,MAAM,CACX5C,OAAO,CAAE,QAAT,CAAAA,OAAOA,CAAG6C,CAAC,CAAK,CACdA,CAAC,CAACC,eAAe,CAAC,CAAC,CACnBP,cAAc,CAAC,CACjB,CAAE,CACFQ,QAAQ,CAAEzK,SAAU,CACpBP,SAAS,CAAC,uBAAuB,CACjC,uBAAqB,MAAM,CAAAiC,QAAA,cAE3BlG,IAAA,CAACL,YAAY,EAACsE,SAAS,CAAC,SAAS,CAAE,CAAC,CAC9B,CAAC,CACR4J,MAAM,eACL7N,IAAA,QACEiE,SAAS,CAAEhF,EAAE,CACX,gGAAgG,CAChG8O,YAAY,CAAG,UAAU,CAAG,OAC9B,CAAE,CAAA7H,QAAA,cAEFlG,IAAA,QAAKiE,SAAS,CAAC,MAAM,CAACiL,IAAI,CAAC,MAAM,CAAAhJ,QAAA,CAC9B0H,UAAU,CAACtB,GAAG,CAAC,SAAClC,MAAM,CAAK,CAC1B,GAAM,CAAAiE,SAAS,CAAMtC,QAAQ,KAAI3B,MAAM,CAACkB,EAAI,CAC5C,GAAM,CAAA6D,eAAe,CAAG9H,gBAAgB,GAAKgH,SAAS,CAEtD,mBACEnO,KAAA,WAEEgM,OAAO,CAAE,QAAT,CAAAA,OAAOA,CAAA,QAAQ,CAAA8B,iBAAiB,CAAC5D,MAAM,CAAC,CAAC,CACzCnG,SAAS,CAAC,qMAAqM,CAC/MgL,QAAQ,CAAEzK,SAAS,EAAI2K,eAAgB,CACvCD,IAAI,CAAC,UAAU,CAAAhJ,QAAA,EAEdiJ,eAAe,eAAInP,IAAA,CAACJ,OAAO,EAACqE,SAAS,CAAC,sBAAsB,CAAE,CAAC,CAC/DmG,MAAM,CAACgF,IAAI,GAPPhF,MAAM,CAACkB,EAQN,CAEZ,CAAC,CAAC,CACC,CAAC,CACH,CACN,EACE,CAAC,EACN,CAEN,CAEA,QAAS,CAAA+D,aAAaA,CAACtD,QAAgB,CAAE6B,UAAuB,CAAE,CAChE,GAAI,CAACzJ,OAAO,CAAC1D,MAAM,CAAE,CACnB,MAAO,KACT,CAEA,mBACET,IAAA,CAACxB,SAAS,EAACyF,SAAS,CAAC,0CAA0C,CAAAiC,QAAA,cAC7DlG,IAAA,CAAC0N,eAAe,EAAC3B,QAAQ,CAAEA,QAAS,CAAC6B,UAAU,CAAEA,UAAW,CAAE,CAAC,CACtD,CAEf,CAEA,GAAM,CAAA0B,cAAc,qBAAuB,CAC3C,GAAM,CAAAC,aAAa,CAAGtL,SAAS,CAAGhF,EAAE,CAACqQ,cAAc,CAAErL,SAAS,CAAC,CAAGqL,cAAc,CAEhF,QAAS,CAAAE,sBAAsBA,CAACvN,SAAiB,CAAEP,KAAU,CAAU,KAAA+N,qBAAA,CACrE,GAAM,CAAA5M,aAAa,CAAGpB,cAAc,CAACC,KAAK,CAAC,CAE3C,IAAA+N,qBAAA,CAAIjH,YAAY,CAACvG,SAAS,CAAC,SAAvBwN,qBAAA,CAA0B5M,aAAa,CAAC,CAAE,CAC5C,MAAO,CAAA2F,YAAY,CAACvG,SAAS,CAAC,CAACY,aAAa,CAC9C,CAEA,MAAO,oCACT,CAEA,QAAS,CAAA6M,UAAUA,CAACzN,SAAiB,CAAEP,KAAU,CAAE,CACjD,GAAM,CAAAgB,QAAQ,CAAGX,WAAW,CAACC,mBAAmB,CAAEC,SAAS,CAAC,CAC5D,GAAM,CAAA0N,cAAc,CAAGxQ,WAAW,CAACuC,KAAK,CAAE0D,gBAAgB,CAAC,CAE3D,GAAI,CAAC1C,QAAQ,CAAE,CACb,mBAAO1C,IAAA,CAAAG,SAAA,EAAA+F,QAAA,CAAGyJ,cAAc,CAAG,CAC7B,CAEA,GAAI,CAAAC,aAAa,CAAG,EAAE,CAEtB,GAAIlN,QAAQ,GAAK,QAAQ,CAAE,KAAAmN,qBAAA,CACzB,GAAM,CAAAC,QAAQ,CAAGlO,MAAM,CAACF,KAAK,CAAC,CAC9BkO,aAAa,EAAAC,qBAAA,CAAGtK,iBAAiB,CAACtD,SAAS,CAAC,eAA5B4N,qBAAA,CAA+BC,QAAQ,CAAC,CAExD,GAAI,CAACF,aAAa,CAAE,CAClB,GAAM,CAAAG,UAAU,CAAGD,QAAQ,CAAChO,WAAW,CAAC,CAAC,CAACD,IAAI,CAAC,CAAC,CAChD+N,aAAa,CAAGpQ,wBAAwB,CAACuQ,UAAU,CACrD,CAEA,GAAI,CAACH,aAAa,CAAE,CAClBA,aAAa,CAAG,oCAClB,CACF,CAAC,IAAM,IAAIlN,QAAQ,GAAK,WAAW,CAAE,CACnCkN,aAAa,CAAGJ,sBAAsB,CAACvN,SAAS,CAAEP,KAAK,CACzD,CAEA,mBACE1B,IAAA,SACEiE,SAAS,CAAEhF,EAAE,CACX,sGAAsG,CACtG2Q,aACF,CAAE,CAAA1J,QAAA,CAEDyJ,cAAc,CACX,CAEV,CAEA,QAAS,CAAAK,oBAAoBA,CAAA,CAAG,CAC9B,GAAIxL,SAAS,EAAI,CAACpC,IAAI,EAAIA,IAAI,CAAC3B,MAAM,GAAK,CAAC,CAAE,CAC3C,mBAAOT,IAAA,CAACtB,WAAW,GAAE,CACvB,CAEA,mBACEwB,KAAA,CAAC/B,KAAK,CAAA4L,QAAA,IACA9E,UAAU,EACdhB,SAAS,oCAAqCsL,aAAgB,CAC9D,YAAU,OAAO,CAAArJ,QAAA,eAEjBlG,IAAA,CAAC5B,WAAW,EAAC,YAAU,cAAc,CAAC6F,SAAS,CAAC,kBAAkB,CAAAiC,QAAA,cAChEhG,KAAA,CAAC7B,QAAQ,EAAA6H,QAAA,EACNN,sBAAsB,eACrB5F,IAAA,CAACxB,SAAS,EAACyF,SAAS,CAAC,UAAU,CAAAiC,QAAA,cAC7BlG,IAAA,CAACN,QAAQ,EACPuQ,OAAO,CAAE,CAAAnK,eAAe,cAAfA,eAAe,CAAErF,MAAM,IAAK2B,IAAI,CAAC3B,MAAO,CACjDyP,eAAe,CAAE,QAAjB,CAAAA,eAAeA,CAAA,CAAQ,CACrB,GAAInK,kBAAkB,CAAE,CACtB,GAAI,CAAAD,eAAe,cAAfA,eAAe,CAAErF,MAAM,IAAK2B,IAAI,CAAC3B,MAAM,CAAE,CAC3CsF,kBAAkB,CAAC,EAAE,CACvB,CAAC,IAAM,CACLA,kBAAkB,CAAC3D,IAAI,CAACkK,GAAG,CAAC,SAAC6D,CAAC,CAAE3C,GAAG,QAAK,CAAAA,GAAG,EAAC,CAC9C,CACF,CACF,CAAE,CACH,CAAC,CACO,CACZ,CACAnB,OAAO,CAACC,GAAG,CAAC,SAAC8D,IAAY,CAAE5C,GAAW,CAAK,CAC1C,GAAM,CAAA6C,cAAc,CAAGlM,OAAO,CAAC1D,MAAM,CAAG,CAAC,EAAI+M,GAAG,GAAKnB,OAAO,CAAC5L,MAAM,CAAG,CAAC,CACvE,GAAM,CAAA6P,WAAW,CAAGnE,YAAY,CAACqB,GAAG,CAAC,CAErC,GAAI6C,cAAc,CAAE,CAClB,mBACErQ,IAAA,CAAC1B,SAAS,EAER,4BAA2BkP,GAAM,CACjC+C,eAAe,CAAElM,UAAW,CAC5BJ,SAAS,CAAC,6BAA6B,CAAAiC,QAAA,CAEtCkK,IAAI,EALA5C,GAMI,CAEf,CAEA,mBACExN,IAAA,CAACvB,iBAAiB,EAEhB,4BAA2B+O,GAAM,CACjClE,aAAa,CAAE7C,cAAc,CAAC6J,WAAW,CAAC,EAAI,KAAM,CACpDE,QAAQ,CAAElK,gBAAgB,GAAKgK,WAAY,CAC3C3L,MAAM,CAAE,QAAR,CAAAA,MAAMA,CAAG0I,SAAS,QAAK,CAAAF,eAAe,CAACmD,WAAW,CAAEjD,SAAS,CAAC,CAAC,CAC/DvI,QAAQ,CAAEC,cAAc,EAAI,CAACP,SAAU,CACvCH,UAAU,CAAEA,UAAW,CAAA6B,QAAA,CAEtBkK,IAAI,EARA5C,GASY,CAEvB,CAAC,CAAC,EACM,CAAC,CACA,CAAC,cACdxN,IAAA,CAACzB,SAAS,EAAC,YAAU,YAAY,CAAA2H,QAAA,CAC9BsG,IAAI,CAACF,GAAG,CAAC,SAAChM,GAAU,CAAEmQ,IAAY,qBACjCvQ,KAAA,CAAC7B,QAAQ,EAEP,mBAAkBoS,IAAO,CACzBxM,SAAS,CAAC,8CAA8C,CAAAiC,QAAA,EAEvDN,sBAAsB,eACrB5F,IAAA,CAACxB,SAAS,EAACyF,SAAS,CAAC,kBAAkB,CAAAiC,QAAA,cACrClG,IAAA,CAACN,QAAQ,EACPuQ,OAAO,CAAEnK,eAAe,cAAfA,eAAe,CAAEzE,QAAQ,CAACoP,IAAI,CAAE,CACzCP,eAAe,CAAE,QAAjB,CAAAA,eAAeA,CAAA,QAAQ,CAAA3C,mBAAmB,CAACkD,IAAI,CAAC,CAAC,CAClD,CAAC,CACO,CACZ,CACAnQ,GAAG,CAACgM,GAAG,CAAC,SAACoE,IAAY,CAAEC,IAAY,CAAK,CACvC,GAAM,CAAA1O,SAAS,CAAGkK,YAAY,CAACwE,IAAI,CAAC,CACpC,GAAM,CAAAjO,QAAQ,CAAGT,SAAS,CACtBF,WAAW,CAACC,mBAAmB,CAAEC,SAAS,CAAC,CAC3CvB,SAAS,CACb,GAAM,CAAAkQ,gBAAgB,CAAG,CAAC,CAAClO,QAAQ,CACnC,GAAM,CAAAmO,UAAU,CAAG5O,SAAS,CAAGwD,cAAc,CAACxD,SAAS,CAAC,CAAGvB,SAAS,CACpE,GAAM,CAAAoQ,WAAW,CACfD,UAAU,EAAIH,IAAI,EAAI,IAAI,CACtB9O,MAAM,CAAC8O,IAAI,CAAC,CACTpP,KAAK,CAAC,GAAG,CAAC,CACVgL,GAAG,CAAC,SAACyE,IAAI,QAAK,CAAAF,UAAU,CAACE,IAAI,CAAClP,IAAI,CAAC,CAAC,CAAC,EAAC,CACtCuK,MAAM,CAAC4E,OAAO,CAAC,CACfxP,IAAI,CAAC,IAAI,CAAC,EAAId,SAAS,CAC1BA,SAAS,CAEf,GAAM,CAAAuQ,WAAW,CAAGL,gBAAgB,CAChClB,UAAU,CAACzN,SAAS,CAAEyO,IAAI,CAAC,CAC3BvR,WAAW,CAACuR,IAAI,CAAEtL,gBAAgB,CAAC,CAEvC,mBACEpF,IAAA,CAACxB,SAAS,EAER,oBAAmBiS,IAAI,KAAIE,IAAO,CAClC1M,SAAS,CAAC,oCAAoC,CAC9CsM,eAAe,CAAE,KAAM,CAAArK,QAAA,CAEtB4K,WAAW,cACV9Q,IAAA,CAACT,eAAe,EAAA2G,QAAA,cACdhG,KAAA,CAACd,OAAO,EAAA8G,QAAA,eACNlG,IAAA,CAACX,cAAc,EAAC6R,OAAO,MAAAhL,QAAA,cACrBlG,IAAA,SAAMiE,SAAS,CAAC,yCAAyC,CAAAiC,QAAA,CAAE+K,WAAW,CAAO,CAAC,CAChE,CAAC,cACjBjR,IAAA,CAACV,cAAc,EAAC2E,SAAS,CAAC,qBAAqB,CAAAiC,QAAA,CAAE4K,WAAW,CAAiB,CAAC,EACvE,CAAC,CACK,CAAC,CAChBG,WAAW,EAdVN,IAeI,CAEf,CAAC,CAAC,CACDtB,aAAa,CAACoB,IAAI,CAAEtM,OAAO,CAAC,GApDxBsM,IAqDG,CAAC,CACZ,CAAC,CACO,CAAC,GACP,CAEX,CAEA,mBACEvQ,KAAA,CAAClC,QAAQ,EAAAkI,QAAA,eACPlG,IAAA,QAAKiE,SAAS,CAAC,sCAAsC,CAAAiC,QAAA,cACnDhG,KAAA,CAACvB,UAAU,CAAAoL,QAAA,EACT,YAAU,iBAAiB,CAC3B9F,SAAS,CAAEsL,aAAc,EACpBrK,MAAM,GAAKxE,SAAS,EAAI,CAAEyF,KAAK,CAAE,CAAEjB,MAAM,CAANA,MAAO,CAAE,CAAC,EAAAgB,QAAA,EAEjD8J,oBAAoB,CAAC,CAAC,cACvBhQ,IAAA,CAACpB,SAAS,EAACuS,WAAW,CAAC,YAAY,CAAE,CAAC,GAC5B,CAAC,CACV,CAAC,CACL,CAAC,EAAAvN,qBAAA,CAACU,UAAU,cAAVA,UAAU,CAAE8D,UAAU,QAAAxE,qBAAA,CAAI,CAAC,EAAI,CAAC,EAAKoC,KAAK,EAAI,CAAC3B,UAAU,EAAI4B,UAAW,gBACzE/F,KAAA,QAAK+D,SAAS,CAAC,2FAA2F,CAAAiC,QAAA,eACxGlG,IAAA,QAAKiE,SAAS,CAAC,uCAAuC,CAAAiC,QAAA,CACnD5B,UAAU,EAAIA,UAAU,CAAC8D,UAAU,CAAG,CAAC,eACtClI,KAAA,CAAAC,SAAA,EAAA+F,QAAA,eACElG,IAAA,UAAOoR,OAAO,CAAC,kBAAkB,CAACnN,SAAS,CAAC,2BAA2B,CAAAiC,QAAA,CAAC,gBAExE,CAAO,CAAC,cACRlG,IAAA,WACEsL,EAAE,CAAC,kBAAkB,CACrB5J,KAAK,CAAEoG,QAAS,CAChBuJ,QAAQ,CAAE,QAAV,CAAAA,QAAQA,CAAGtC,CAAC,QAAK,CAAArC,gBAAgB,CAAC,CAAC,CAAElF,MAAM,CAACuH,CAAC,CAACuC,MAAM,CAAC5P,KAAK,CAAC,CAAC,CAAC,CAC7DuC,SAAS,CAAC,iDAAiD,CAC3DgL,QAAQ,CAAEzK,SAAU,CAAA0B,QAAA,CAEnB,CAAC5B,UAAU,CAACiN,eAAe,EAAI,CAAC,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,GAAG,CAAC,EAAEjF,GAAG,CAAC,SAACwC,IAAY,qBAClE9O,IAAA,WAAmB0B,KAAK,CAAEoN,IAAK,CAAA5I,QAAA,CAC5B4I,IAAI,EADMA,IAEL,CAAC,CACV,CAAC,CACI,CAAC,EACT,CACH,CACE,CAAC,cACN5O,KAAA,QAAK+D,SAAS,CAAC,uCAAuC,CAAAiC,QAAA,EACnDF,KAAK,EAAI,CAAC3B,UAAU,EAAI4B,UAAU,eACjCjG,IAAA,CAACF,cAAc,EACb0R,SAAS,CAAC,OAAO,CACjBxL,KAAK,CAAEA,KAAM,CACbC,UAAU,CAAEA,UAAW,CACvBwL,SAAS,CAAE,OAAOnN,UAAU,cAAVA,UAAU,CAAE8D,UAAU,IAAK,QAAQ,CAAG9D,UAAU,CAAC8D,UAAU,CAAGhG,IAAI,CAAC3B,MAAO,CAC7F,CACF,CACA6D,UAAU,EAAIA,UAAU,CAAC8D,UAAU,CAAG,CAAC,eACtClI,KAAA,CAAAC,SAAA,EAAA+F,QAAA,eACEhG,KAAA,SAAM+D,SAAS,CAAC,wDAAwD,CAAAiC,QAAA,EACrE,CAACwB,UAAU,CAAG,CAAC,EAAII,QAAQ,CAAG,CAAC,CAAC,QACjC,CAACI,IAAI,CAACwJ,GAAG,CAAChK,UAAU,CAAGI,QAAQ,CAAExD,UAAU,CAAC8D,UAAU,CAAC,CAAC,MAAI,CAAC9D,UAAU,CAAC8D,UAAU,EAC9E,CAAC,cACPpI,IAAA,CAACnB,UAAU,EAAAqH,QAAA,cACTlG,IAAA,CAAClB,iBAAiB,EAACmF,SAAS,CAAC,uBAAuB,CAAAiC,QAAA,CACjDnH,sBAAsB,CAAC2I,UAAU,CAAEW,UAAU,CAAE7D,SAAS,CAAEkI,gBAAgB,CAAC,CAC3D,CAAC,CACV,CAAC,EACb,CACH,EACE,CAAC,EACH,CACN,CACAd,UAAU,EACH,CAEd","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","Checkbox","MoreVertical","Loader2","useButtonForm","DownloadButton","jsx","_jsx","jsxs","_jsxs","_Fragment","resolveRowContext","rowContext","row","Object","keys","length","undefined","resolved","_i","_Object$entries","entries","_Object$entries$_i","key","ref","startsWith","_row$fieldName","fieldName","includes","split","slice","join","normalizeValue","value","str","String","trim","toLowerCase","getChipMode","columnWithChipClass","columnKey","mode","getUniqueValuesHash","data","Array","isArray","availableKeys","hashParts","forEach","chipMode","uniqueNormalizedValues","Set","normalizedKey","add","sortedUniqueValues","from","sort","JSON","stringify","DataTable","_ref","_ref2","_pagination$values$pa","_pagination$values","_ref3","_pagination$values$pa2","_pagination$values2","_pagination$totalCoun","_ref$data","_ref$headerMapper","headerMapper","_ref$className","className","_ref$actions","actions","_ref$isEditable","isEditable","pagination","_ref$isLoading","isLoading","onRowAction","onPageChange","onSort","sortConfig","_ref$sortable","sortable","sortableGlobal","_ref$otherProps","otherProps","height","_ref$decimalPrecision","decimalPrecision","_ref$columnWithChipCl","_ref$chipStylesMappin","chipStylesMapping","navigateToPage","_ref$isBulkSelectionE","isBulkSelectionEnabled","_ref$selectedIndices","selectedIndices","setSelectedIndices","title","onDownload","children","style","minHeight","_useState","activeSortColumn","setActiveSortColumn","_useState2","sortDirections","setSortDirections","_useState3","activeRowIndex","setActiveRowIndex","_useState4","activeAction","setActiveAction","_useState5","isFormSubmitting","setIsFormSubmitting","_useState6","loadingActionKey","setLoadingActionKey","_useState7","Number","values","pageNumber","initialPage","setPageNumber","_useState8","pageSize","initialPageSize","setPageSize","_useState9","Math","ceil","totalCount","totalPages","setTotalPages","_useState10","chipColorMap","setChipColorMap","_useState11","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","targetPageId","type","onClick","originalKeys","filter","headers","map","push","rows","datum","handlePageChange","_x2","_x3","_handlePageChange","_callee3","newPage","newSize","_callee3$","_context3","handleSortClick","column","direction","_extends2","handleCheckboxClick","idx","concat","ActionsDropdown","_ref6","rowActions","isOpen","totalRows","isNearBottom","handleActionClick","_x4","_handleActionClick","_callee2","_rowContext2","actionKey","_callee2$","_context2","abrupt","toggleDropdown","handleBackdropClick","background","cursor","variant","size","e","stopPropagation","disabled","role","isActionLoading","text","renderActions","defaultClasses","mergedClasses","getRandomColorForValue","_chipColorMap$columnK","renderChip","formattedValue","chipClassName","_chipStylesMapping$co","valueStr","valueLower","renderTableComponent","checked","onCheckedChange","_","head","isActionColumn","originalKey","contentEditable","isActive","rIdx","cell","cIdx","shouldRenderChip","orientation","htmlFor","onChange","target","pageSizeOptions","component","dataCount","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 { Checkbox } from '../../shadcn/components/ui/checkbox';\nimport { MoreVertical, Loader2 } from 'lucide-react';\nimport { useButtonForm } from './button-form';\nimport { DownloadButton } from './download-data-button';\n\nfunction resolveRowContext(\n rowContext: Record<string, string> | undefined,\n row: Record<string, any>,\n): Record<string, any> | undefined {\n if (!rowContext || Object.keys(rowContext).length === 0) {\n return undefined;\n }\n\n const resolved: Record<string, any> = {};\n\n for (const [key, ref] of Object.entries(rowContext)) {\n if (typeof ref === 'string' && ref.startsWith('@')) {\n const fieldName = ref.includes('.') ? ref.split('.').slice(1).join('.') : ref.slice(1);\n resolved[key] = row[fieldName] ?? row[ref.slice(1)];\n } else {\n resolved[key] = ref;\n }\n }\n\n return resolved;\n}\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 sortable?: boolean;\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 navigateToPage?: (pageId: string, rowContext?: Record<string, any>) => void;\n isBulkSelectionEnabled?: boolean;\n selectedIndices?: number[];\n setSelectedIndices?: (indices: number[]) => void;\n title?: string;\n onDownload?: (limit: number) => Promise<void>;\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\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 sortable: sortableGlobal = true,\n otherProps = {},\n height,\n decimalPrecision = 2,\n columnWithChipClass = {},\n chipStylesMapping = {},\n navigateToPage,\n isBulkSelectionEnabled = false,\n selectedIndices = [],\n setSelectedIndices,\n title,\n onDownload,\n}: DataTableProps) {\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 const [loadingActionKey, setLoadingActionKey] = useState<string | null>(null);\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 [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\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\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\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\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.action === 'navigateToPage' && action.action.targetPageId) {\n const rowContext = resolveRowContext(action.action.rowContext, data[rowIndex]);\n navigateToPage?.(action.action.targetPageId, rowContext);\n\n return;\n }\n\n if (action.action.type === 'navigation') {\n const onClick = action.action.onClick;\n\n if (onClick?.action === 'navigateToPage' && onClick.targetPageId) {\n const rowContext = resolveRowContext(action.action.rowContext, data[rowIndex]);\n navigateToPage?.(onClick.targetPageId, rowContext);\n\n return;\n }\n }\n\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 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 handleCheckboxClick(rowIndex: number) {\n if (setSelectedIndices) {\n if (selectedIndices.includes(rowIndex)) {\n setSelectedIndices(selectedIndices.filter((idx) => idx !== rowIndex));\n } else {\n setSelectedIndices([...selectedIndices, rowIndex]);\n }\n }\n }\n\n function ActionsDropdown({\n rowIndex,\n rowActions,\n }: {\n rowIndex: number;\n rowActions: RowAction[];\n }) {\n const isOpen = openDropdownIndex === rowIndex;\n\n const totalRows = rows.length;\n const isNearBottom = rowIndex >= totalRows - 3;\n\n async function handleActionClick(action: RowAction) {\n if (action.action.action === 'navigateToPage' && action.action.targetPageId) {\n const rowContext = resolveRowContext(action.action.rowContext, data[rowIndex]);\n navigateToPage?.(action.action.targetPageId, rowContext);\n setOpenDropdownIndex(null);\n\n return;\n }\n\n if (action.action.type === 'navigation') {\n const onClick = action.action.onClick;\n\n if (onClick?.action === 'navigateToPage' && onClick.targetPageId) {\n const rowContext = resolveRowContext(action.action.rowContext, data[rowIndex]);\n navigateToPage?.(onClick.targetPageId, rowContext);\n setOpenDropdownIndex(null);\n\n return;\n }\n }\n\n // Handle form-based and API actions\n const actionKey = `${rowIndex}-${action.id}`;\n\n if (action.action.formMapper && Object.keys(action.action.formMapper).length > 0) {\n setActiveRowIndex(rowIndex);\n setActiveAction(action);\n setOpenDropdownIndex(null);\n } else {\n try {\n setLoadingActionKey(actionKey);\n await onRowAction?.(rowIndex, action.id);\n } finally {\n setLoadingActionKey(null);\n setOpenDropdownIndex(null);\n }\n }\n }\n\n function toggleDropdown() {\n setOpenDropdownIndex(isOpen ? null : rowIndex);\n }\n\n function handleBackdropClick() {\n if (!loadingActionKey) {\n setOpenDropdownIndex(null);\n }\n }\n\n return (\n <>\n {isOpen && (\n <div\n className=\"fixed inset-0 z-40\"\n onClick={handleBackdropClick}\n style={{ background: 'transparent', cursor: 'default' }}\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 data-dropdown-button=\"true\"\n >\n <MoreVertical className=\"h-4 w-4\" />\n </Button>\n {isOpen && (\n <div\n className={cn(\n 'absolute right-full mr-2 w-48 rounded-md shadow-lg bg-white ring-gray-400 ring-opacity-5 z-50',\n isNearBottom ? 'bottom-0' : 'top-0',\n )}\n >\n <div className=\"py-1\" role=\"menu\">\n {rowActions.map((action) => {\n const actionKey = `${rowIndex}-${action.id}`;\n const isActionLoading = loadingActionKey === actionKey;\n\n return (\n <button\n key={action.id}\n onClick={() => handleActionClick(action)}\n className=\"block w-full text-left px-4 py-2 text-sm hover:bg-accent transition-colors font-semibold disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2 focus:outline-none focus:bg-accent\"\n disabled={isLoading || isActionLoading}\n role=\"menuitem\"\n >\n {isActionLoading && <Loader2 className=\"h-3 w-3 animate-spin\" />}\n {action.text}\n </button>\n );\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 {isBulkSelectionEnabled && (\n <TableCell className=\"p-2 w-10\">\n <Checkbox\n checked={selectedIndices?.length === data.length}\n onCheckedChange={() => {\n if (setSelectedIndices) {\n if (selectedIndices?.length === data.length) {\n setSelectedIndices([]);\n } else {\n setSelectedIndices(data.map((_, idx) => idx));\n }\n }\n }}\n />\n </TableCell>\n )}\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={sortableGlobal && !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 {isBulkSelectionEnabled && (\n <TableCell className=\"p-2 align-middle\">\n <Checkbox\n checked={selectedIndices?.includes(rIdx)}\n onCheckedChange={() => handleCheckboxClick(rIdx)}\n />\n </TableCell>\n )}\n {row.map((cell: string, cIdx: number) => {\n const columnKey = originalKeys[cIdx];\n const chipMode = columnKey\n ? getChipMode(columnWithChipClass, columnKey)\n : 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\n ? renderChip(columnKey, cell)\n : 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?.totalCount ?? 0) > 0 || (title && !isEditable && onDownload)) && (\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 {pagination && pagination.totalCount > 0 && (\n <>\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 || [10, 20, 50, 100]).map((size: number) => (\n <option key={size} value={size}>\n {size}\n </option>\n ))}\n </select>\n </>\n )}\n </div>\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n {title && !isEditable && onDownload && (\n <DownloadButton\n component=\"table\"\n title={title}\n onDownload={onDownload}\n dataCount={typeof pagination?.totalCount === 'number' ? pagination.totalCount : data.length}\n />\n )}\n {pagination && pagination.totalCount > 0 && (\n <>\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 </>\n )}\n </div>\n </div>\n )}\n {FormDialog}\n </Fragment>\n );\n}\n"],"mappings":"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","ignoreList":[]}