uangcermat-web-toolkit-v2 0.2.9 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/src/components/Table/Table.type.d.ts +1 -0
- package/build/src/components/Table/TableBase.d.ts +2 -1
- package/build/src/components/Table/TableBase.js +7 -7
- package/build/src/components/Table/TableBase.js.map +1 -1
- package/build/src/components/Table/TableResponsive.js +1 -1
- package/build/src/components/Table/TableResponsive.js.map +1 -1
- package/package.json +1 -1
|
@@ -67,6 +67,7 @@ export interface TableInterface extends TableVariantInterface, TableHooksBaseInt
|
|
|
67
67
|
onSelectedRow?: (data: Array<Record<string, any>>) => void;
|
|
68
68
|
onCheckedRow?: (data: Array<string>) => void;
|
|
69
69
|
initialCheckedRows?: Array<string>;
|
|
70
|
+
totalMaxChecked?: number;
|
|
70
71
|
checkedColor?: string;
|
|
71
72
|
onClickRow?: (rowData: any) => void;
|
|
72
73
|
hiddenColumns?: Array<string>;
|
|
@@ -37,8 +37,9 @@ interface TableHooksInterface extends TableHooksBaseInterface, TableVariantInter
|
|
|
37
37
|
hooks: Hooks<any>;
|
|
38
38
|
rowActions?: ({ rowData, index }: RowActionsInterface) => React.ReactNode;
|
|
39
39
|
checkedColor?: string;
|
|
40
|
+
totalMaxChecked?: number;
|
|
40
41
|
}
|
|
41
|
-
export declare const tableHooks: ({ hooks, actionLabel, isSelectable, hideRowIndex, rowIndexAlign, variant, rowActions, freezedColumn, checkedColor }: TableHooksInterface) => void;
|
|
42
|
+
export declare const tableHooks: ({ hooks, actionLabel, isSelectable, hideRowIndex, rowIndexAlign, variant, rowActions, freezedColumn, checkedColor, totalMaxChecked }: TableHooksInterface) => void;
|
|
42
43
|
export declare const EmptyData: (props: EmptyDataInterface) => import("react/jsx-runtime").JSX.Element;
|
|
43
44
|
export declare const TableLoaderContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
44
45
|
export declare const defaultPropGetter: () => {};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),l=require("react"),r=require("styled-components"),n=require("../../hooks/useCombinedRefs.js");require("../../styles/BorderRadius.js");var o=require("../../styles/Colors.js"),i=require("../../styles/Spacing.js"),s=require("../Checkbox/Checkbox.js"),a=require("../Icon/Icon.js"),d=require("../Text/BaseText.js"),c=require("../Text/Text.js"),u=require("../../../node_modules/tailwind-merge/dist/lib/tw-merge.mjs.js");function x(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var g=x(r);const f={left:"flex-start",center:"center",right:"flex-end"},h={small:{tdMinHeight:"32px",tdMaxHeight:"48px",tdHeight:"48px",tdPadding:"8px",thHeight:"42px",charTotal:40,fontSize:"large"},regular:{tdMinHeight:"30px",tdMaxHeight:"max-content",tdHeight:"56px",tdPadding:"8px",thHeight:"50px",charTotal:77,fontSize:"large"}},p=g.default.div`
|
|
2
2
|
align-items: ${({isBaseline:e})=>e?"baseline":"center"};
|
|
3
3
|
display: flex;
|
|
4
4
|
flex: 1;
|
|
5
5
|
height: ${({countArrayValue:e})=>e?10*e+"px":"100%"};
|
|
6
6
|
justify-content: ${({textAlign:e})=>f[e]||"center"};
|
|
7
|
-
`,m=g.default(
|
|
8
|
-
padding: ${({variant:e})=>
|
|
9
|
-
`,j=
|
|
7
|
+
`,m=g.default(p)``,b=g.default(p)`
|
|
8
|
+
padding: ${({variant:e})=>h[e].tdPadding};
|
|
9
|
+
`,j=l.forwardRef(((r,o)=>{var{onChange:i,indeterminate:a,checked:d,color:c}=r,u=e.__rest(r,["onChange","indeterminate","checked","color"]);const x=l.useRef(),g=n.useCombinedRefs(o,x);return l.useEffect((()=>{g.current.indeterminate=a}),[g,a]),t.jsx(s,Object.assign({},u,{ref:g,checked:d,variant:"small",indeterminate:a,onChange:i,color:c}))}));j.displayName="Checkbox";const v=g.default.div`
|
|
10
10
|
align-items: center;
|
|
11
11
|
display: flex;
|
|
12
12
|
flex-direction: column;
|
|
13
13
|
height: ${e=>`${e.emptyTableHeight}px`||"300px"};
|
|
14
14
|
justify-content: center;
|
|
15
|
-
padding: ${
|
|
16
|
-
`,
|
|
15
|
+
padding: ${i.PaddingType.large};
|
|
16
|
+
`,y=g.default.div`
|
|
17
17
|
display: flex;
|
|
18
18
|
justify-content: center;
|
|
19
|
-
`;exports.CellContainerBaseStyled=
|
|
19
|
+
`;exports.CellContainerBaseStyled=p,exports.CellContainerContentStyled=b,exports.CellContainerHeaderStyled=m,exports.EmptyData=e=>t.jsx(v,Object.assign({},e,{children:e.noRecordComponent?t.jsx(t.Fragment,{children:e.noRecordComponent()}):t.jsxs(t.Fragment,{children:[t.jsx(a,{name:"norecord",size:"extra-large"}),t.jsx("div",Object.assign({style:{marginTop:i.MarginType["extra-small"]}},{children:t.jsx(c.default,{label:e.noRecordLabel||"No records found",fontWeight:"regular",variant:"medium"})}))]})})),exports.SortIcon=({isSorted:e,isSortedDesc:l,iconSortedStyles:r,iconUnsortedStyles:n})=>e?l?t.jsx(a,{name:"chevrondown",className:u.twMerge("fill-tableResponsive-header-textAndIcon-active h-3",r)}):t.jsx(a,{name:"chevronup",className:u.twMerge("fill-tableResponsive-header-textAndIcon-active h-3",r)}):t.jsx(a,{name:"sort",className:u.twMerge("fill-tableResponsive-header-textAndIcon-default h-3",n)}),exports.TableLoaderContainer=y,exports.contentAlignmentMapper=f,exports.defaultPropGetter=()=>({}),exports.getIsExcludedSortable=e=>{if(e.columns)return!1;switch(e.accessor){case"action":case"selectable":return!1;default:return!0}},exports.tableHooks=({hooks:e,actionLabel:l,isSelectable:r,hideRowIndex:n,rowIndexAlign:i,variant:s,rowActions:a,freezedColumn:u,checkedColor:x,totalMaxChecked:g})=>{const f="left";e.visibleColumns.push((e=>{const p=[];if(r){const e={id:"selection",width:48,type:"custom",accessor:"selectable",disableClick:!0,disableSortBy:!0,textAlign:"center",Header:({getToggleAllRowsSelectedProps:e,rows:l})=>{const r=l,n=r.filter((e=>{var t;return!(null===(t=e.original)||void 0===t?void 0:t.disableSelect)})),i=r&&r.length?r.filter((e=>!0===e.isSelected)).length:0;return t.jsx(j,Object.assign({},e(),{indeterminate:!0,checked:!!i||!1,color:x||o.ColorBlue.buttonBlue,onChange:()=>{i>g?n.forEach(((e,t)=>{var l;null===(l=e.toggleRowSelected)||void 0===l||l.call(e,t<g)})):i>0?n.forEach((e=>{var t;return null===(t=e.toggleRowSelected)||void 0===t?void 0:t.call(e,!1)})):n.slice(0,g).forEach((e=>{var t;return null===(t=e.toggleRowSelected)||void 0===t?void 0:t.call(e,!0)}))}}))},Cell:({row:e,checkboxIsDisabled:l,selectedFlatRows:r})=>{const n=l||r.length>=g&&!e.isSelected;return t.jsx(j,Object.assign({},e.getToggleRowSelectedProps(),{color:x||o.ColorBlue.buttonBlue,isDisabled:n}))}};u&&(e.sticky="left"),p.push(e)}if(!n){const e={Header:()=>t.jsx(d.default,{label:"No.",className:"text-[10px] font-normal w-full text-left text-tableResponsive-header-textAndIcon-default"}),id:"index",width:40,disableSortBy:!0,type:"custom",accessor:"index",textAlign:i||f,Cell:({row:e,rows:l,numberAddition:r=0})=>{const n=l.findIndex((t=>t.index===e.index));return t.jsx(d.default,{label:n+1+r,className:"text-xs leading-[14px] font-normal w-full text-left "})}};u&&(e.sticky="left"),p.push(e)}if(a){const e={Header:()=>t.jsx(c.default,{label:null!=l?l:"Action",variant:h[s].fontSize,fontWeight:"semi-bold",textAlign:i||f}),id:"actionRow",width:100,accessor:"action",type:"custom",disableClick:!0,disableSortBy:!0,Cell:({row:e})=>a({rowData:e.original,index:e.index})};u&&(e.sticky="left"),p.push(e)}return[...p,...e]}))},exports.tableSizeMapper=h;
|
|
20
20
|
//# sourceMappingURL=TableBase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableBase.js","sources":["../../../../src/components/Table/TableBase.tsx"],"sourcesContent":["// FIXME NEW : fix hiderowindex not working\nimport React, { ChangeEvent, forwardRef, useEffect, useRef } from 'react';\nimport { Column, HeaderGroup, Hooks } from 'react-table';\nimport styled from 'styled-components';\nimport { twMerge } from 'tailwind-merge';\n\nimport { useCombinedRefs } from '../../hooks/useCombinedRefs';\nimport { ColorBlue, MarginType, PaddingType } from '../../styles/index';\nimport { Checkbox } from '../Checkbox';\nimport { Icon } from '../Icon';\nimport { BaseText, Text, TextAlign, TextVariantType } from '../Text';\nimport {\n EmptyDataInterface,\n RowActionsInterface,\n TableHooksBaseInterface,\n TableVariantInterface,\n TableVariantType\n} from './Table.type';\n\nexport const contentAlignmentMapper = {\n left: 'flex-start',\n center: 'center',\n right: 'flex-end'\n};\n\nexport const tableSizeMapper: Record<\n string,\n {\n tdHeight: string;\n tdMinHeight: string;\n tdMaxHeight: string;\n tdPadding: string;\n thHeight: string;\n charTotal: number;\n fontSize: TextVariantType;\n }\n> = {\n small: {\n tdMinHeight: '32px',\n tdMaxHeight: '48px',\n tdHeight: '48px',\n tdPadding: '8px',\n thHeight: '42px',\n charTotal: 40,\n fontSize: 'large'\n },\n regular: {\n tdMinHeight: '30px',\n tdMaxHeight: 'max-content',\n tdHeight: '56px',\n tdPadding: '8px',\n thHeight: '50px',\n charTotal: 77,\n fontSize: 'large'\n }\n};\n\ninterface CellContainerInterface {\n textAlign?: TextAlign;\n isBaseline?: boolean;\n countArrayValue?: number;\n variant: TableVariantType;\n isColSpan?: boolean;\n}\n\nexport const CellContainerBaseStyled = styled.div`\n align-items: ${({ isBaseline }: CellContainerInterface) => (isBaseline ? 'baseline' : 'center')};\n display: flex;\n flex: 1;\n height: ${({ countArrayValue }: CellContainerInterface) =>\n countArrayValue ? `${countArrayValue * 10}px` : '100%'};\n justify-content: ${({ textAlign }: CellContainerInterface) =>\n contentAlignmentMapper[textAlign] || 'center'};\n`;\n\nexport const CellContainerHeaderStyled = styled(CellContainerBaseStyled)``;\n\nexport const CellContainerContentStyled = styled(CellContainerBaseStyled)`\n padding: ${({ variant }: CellContainerInterface) => tableSizeMapper[variant].tdPadding};\n`;\n\nexport const SortIcon = ({\n isSorted,\n isSortedDesc,\n iconSortedStyles,\n iconUnsortedStyles\n}: {\n isSorted: boolean;\n isSortedDesc: boolean;\n iconSortedStyles?: string;\n iconUnsortedStyles?: string;\n}) => {\n if (!isSorted)\n return (\n <Icon\n name='sort'\n className={twMerge(\n 'fill-tableResponsive-header-textAndIcon-default h-3',\n iconUnsortedStyles\n )}\n />\n );\n\n if (isSortedDesc) {\n return (\n <Icon\n name='chevrondown'\n className={twMerge('fill-tableResponsive-header-textAndIcon-active h-3', iconSortedStyles)}\n />\n );\n } else {\n return (\n <Icon\n name='chevronup'\n className={twMerge('fill-tableResponsive-header-textAndIcon-active h-3', iconSortedStyles)}\n />\n );\n }\n};\n\nexport const getIsExcludedSortable = (column: HeaderGroup) => {\n if (column.columns) return false;\n\n switch (column.accessor) {\n case 'action':\n return false;\n case 'selectable':\n return false;\n default:\n return true;\n }\n};\n\nconst IndeterminateCheckbox = forwardRef(\n (\n {\n onChange,\n indeterminate,\n checked,\n color,\n ...rest\n }: {\n onChange?: (e: ChangeEvent<Element>) => void;\n children?: React.ReactNode;\n indeterminate?: boolean;\n checked?: boolean;\n color?: string;\n },\n ref: React.Ref<HTMLInputElement>\n ) => {\n const defaultRef = useRef();\n const resolvedRef = useCombinedRefs(ref, defaultRef);\n\n useEffect(() => {\n resolvedRef.current.indeterminate = indeterminate;\n }, [resolvedRef, indeterminate]);\n\n return (\n <Checkbox\n {...rest}\n ref={resolvedRef}\n checked={checked}\n variant='small'\n indeterminate={indeterminate}\n onChange={onChange}\n color={color}\n />\n );\n }\n);\nIndeterminateCheckbox.displayName = 'Checkbox';\n\ninterface TableHooksInterface extends TableHooksBaseInterface, TableVariantInterface {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hooks: Hooks<any>;\n rowActions?: ({ rowData, index }: RowActionsInterface) => React.ReactNode;\n checkedColor?: string;\n}\n\nexport const tableHooks = ({\n hooks,\n actionLabel,\n isSelectable,\n hideRowIndex,\n rowIndexAlign,\n variant,\n rowActions,\n freezedColumn,\n checkedColor\n}: TableHooksInterface) => {\n const defaultValue: {\n textAlign: TextAlign;\n } = {\n textAlign: 'left'\n };\n // eslint-disable-next-line sonarjs/cognitive-complexity\n hooks.visibleColumns.push((visibleColumns) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const newColumns: Array<Column<any>> = [];\n\n if (isSelectable) {\n const columnTmp: Column = {\n id: 'selection',\n width: 48,\n type: 'custom',\n accessor: 'selectable',\n disableClick: true,\n disableSortBy: true,\n textAlign: 'center',\n // FIXME: this issue is expected from current react-table lib\n // eslint-disable-next-line react/prop-types,react/display-name\n Header: ({\n // eslint-disable-next-line react/prop-types,react/display-name\n getToggleAllRowsSelectedProps,\n // eslint-disable-next-line react/prop-types,react/display-name\n selectedFlatRows,\n // eslint-disable-next-line react/prop-types,react/display-name\n rows\n }) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const currentRows = rows as Array<Record<any, any>>;\n const changeableRows = currentRows.filter((row) => !row.original?.disableSelect);\n const totalChecked =\n currentRows && currentRows.length\n ? currentRows.filter((row) => row.isSelected === true).length\n : 0;\n\n return (\n <IndeterminateCheckbox\n {...getToggleAllRowsSelectedProps()}\n // indeterminate={totalChecked !== changeableRows.length}\n indeterminate\n checked={!!totalChecked || false}\n color={checkedColor || ColorBlue.buttonBlue}\n onChange={() =>\n changeableRows.forEach((row) => {\n if (row.toggleRowSelected) {\n // eslint-disable-next-line react/prop-types,react/display-name\n row.toggleRowSelected(selectedFlatRows.length > 0 ? false : true);\n }\n })\n }\n />\n );\n },\n // eslint-disable-next-line react/prop-types,react/display-name\n Cell: ({ row, checkboxIsDisabled }) => {\n const checkboxProps = {\n ...(checkboxIsDisabled !== undefined ? { isDisabled: checkboxIsDisabled } : {}),\n // eslint-disable-next-line react/prop-types\n ...row.getToggleRowSelectedProps()\n };\n return (\n <IndeterminateCheckbox\n {...checkboxProps}\n color={checkedColor || ColorBlue.buttonBlue}\n />\n );\n }\n };\n if (freezedColumn) columnTmp.sticky = 'left';\n newColumns.push(columnTmp);\n }\n if (!hideRowIndex) {\n const columnTmp: Column = {\n // eslint-disable-next-line react/display-name\n Header: () => (\n <BaseText\n label={'No.'}\n className='text-[10px] font-normal w-full text-left text-tableResponsive-header-textAndIcon-default'\n />\n ),\n id: 'index',\n width: 40,\n disableSortBy: true,\n type: 'custom',\n accessor: 'index',\n textAlign: rowIndexAlign || defaultValue.textAlign,\n // eslint-disable-next-line react/display-name, react/prop-types\n Cell: ({ row, rows, numberAddition = 0 }) => {\n // eslint-disable-next-line react/prop-types\n const index = rows.findIndex((data) => data.index === row.index);\n return (\n <BaseText\n label={index + 1 + numberAddition}\n className='text-xs leading-[14px] font-normal w-full text-left '\n />\n );\n }\n };\n if (freezedColumn) columnTmp.sticky = 'left';\n newColumns.push(columnTmp);\n }\n if (rowActions) {\n const columnTmp: Column = {\n // eslint-disable-next-line react/display-name\n Header: () => (\n <Text\n label={actionLabel ?? 'Action'}\n variant={tableSizeMapper[variant].fontSize}\n fontWeight='semi-bold'\n textAlign={rowIndexAlign || defaultValue.textAlign}\n />\n ),\n id: 'actionRow',\n width: 100,\n accessor: 'action',\n type: 'custom',\n disableClick: true,\n disableSortBy: true,\n // FIXME NEW : change any to proper type\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Cell: ({ row }) => rowActions({ rowData: row.original, index: row.index }) as any\n };\n if (freezedColumn) columnTmp.sticky = 'left';\n newColumns.push(columnTmp);\n }\n return [...newColumns, ...visibleColumns];\n });\n};\n\nconst EmptyDataStyled = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n height: ${(props: EmptyDataInterface) => `${props.emptyTableHeight}px` || '300px'};\n justify-content: center;\n padding: ${PaddingType.large};\n`;\n\nexport const EmptyData = (props: EmptyDataInterface) => {\n return (\n <EmptyDataStyled {...props}>\n {props.noRecordComponent ? (\n <>{props.noRecordComponent()}</>\n ) : (\n <>\n <Icon name='norecord' size='extra-large' />\n <div style={{ marginTop: MarginType['extra-small'] }}>\n <Text\n label={props.noRecordLabel || 'No records found'}\n fontWeight='regular'\n variant='medium'\n />\n </div>\n </>\n )}\n </EmptyDataStyled>\n );\n};\n\nexport const TableLoaderContainer = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nexport const defaultPropGetter = () => ({});\n"],"names":["contentAlignmentMapper","left","center","right","tableSizeMapper","small","tdMinHeight","tdMaxHeight","tdHeight","tdPadding","thHeight","charTotal","fontSize","regular","CellContainerBaseStyled","styled","div","isBaseline","countArrayValue","textAlign","CellContainerHeaderStyled","CellContainerContentStyled","variant","IndeterminateCheckbox","forwardRef","_a","ref","onChange","indeterminate","checked","color","rest","__rest","defaultRef","useRef","resolvedRef","useCombinedRefs","useEffect","current","_jsx","jsx","Checkbox","Object","assign","displayName","EmptyDataStyled","props","emptyTableHeight","PaddingType","large","TableLoaderContainer","children","noRecordComponent","_Fragment","_jsxs","Icon","name","size","style","marginTop","MarginType","Text","label","noRecordLabel","fontWeight","isSorted","isSortedDesc","iconSortedStyles","iconUnsortedStyles","className","twMerge","column","columns","accessor","hooks","actionLabel","isSelectable","hideRowIndex","rowIndexAlign","rowActions","freezedColumn","checkedColor","defaultValue","visibleColumns","push","newColumns","columnTmp","id","width","type","disableClick","disableSortBy","Header","getToggleAllRowsSelectedProps","selectedFlatRows","rows","currentRows","changeableRows","filter","row","original","disableSelect","totalChecked","length","isSelected","ColorBlue","buttonBlue","forEach","toggleRowSelected","Cell","checkboxIsDisabled","checkboxProps","undefined","isDisabled","getToggleRowSelectedProps","sticky","BaseText","numberAddition","index","findIndex","data","rowData"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableBase.js","sources":["../../../../src/components/Table/TableBase.tsx"],"sourcesContent":["// FIXME NEW : fix hiderowindex not working\nimport React, { ChangeEvent, forwardRef, useEffect, useRef } from 'react';\nimport { Column, HeaderGroup, Hooks } from 'react-table';\nimport styled from 'styled-components';\nimport { twMerge } from 'tailwind-merge';\n\nimport { useCombinedRefs } from '../../hooks/useCombinedRefs';\nimport { ColorBlue, MarginType, PaddingType } from '../../styles/index';\nimport { Checkbox } from '../Checkbox';\nimport { Icon } from '../Icon';\nimport { BaseText, Text, TextAlign, TextVariantType } from '../Text';\nimport {\n EmptyDataInterface,\n RowActionsInterface,\n TableHooksBaseInterface,\n TableVariantInterface,\n TableVariantType\n} from './Table.type';\n\nexport const contentAlignmentMapper = {\n left: 'flex-start',\n center: 'center',\n right: 'flex-end'\n};\n\nexport const tableSizeMapper: Record<\n string,\n {\n tdHeight: string;\n tdMinHeight: string;\n tdMaxHeight: string;\n tdPadding: string;\n thHeight: string;\n charTotal: number;\n fontSize: TextVariantType;\n }\n> = {\n small: {\n tdMinHeight: '32px',\n tdMaxHeight: '48px',\n tdHeight: '48px',\n tdPadding: '8px',\n thHeight: '42px',\n charTotal: 40,\n fontSize: 'large'\n },\n regular: {\n tdMinHeight: '30px',\n tdMaxHeight: 'max-content',\n tdHeight: '56px',\n tdPadding: '8px',\n thHeight: '50px',\n charTotal: 77,\n fontSize: 'large'\n }\n};\n\ninterface CellContainerInterface {\n textAlign?: TextAlign;\n isBaseline?: boolean;\n countArrayValue?: number;\n variant: TableVariantType;\n isColSpan?: boolean;\n}\n\nexport const CellContainerBaseStyled = styled.div`\n align-items: ${({ isBaseline }: CellContainerInterface) => (isBaseline ? 'baseline' : 'center')};\n display: flex;\n flex: 1;\n height: ${({ countArrayValue }: CellContainerInterface) =>\n countArrayValue ? `${countArrayValue * 10}px` : '100%'};\n justify-content: ${({ textAlign }: CellContainerInterface) =>\n contentAlignmentMapper[textAlign] || 'center'};\n`;\n\nexport const CellContainerHeaderStyled = styled(CellContainerBaseStyled)``;\n\nexport const CellContainerContentStyled = styled(CellContainerBaseStyled)`\n padding: ${({ variant }: CellContainerInterface) => tableSizeMapper[variant].tdPadding};\n`;\n\nexport const SortIcon = ({\n isSorted,\n isSortedDesc,\n iconSortedStyles,\n iconUnsortedStyles\n}: {\n isSorted: boolean;\n isSortedDesc: boolean;\n iconSortedStyles?: string;\n iconUnsortedStyles?: string;\n}) => {\n if (!isSorted)\n return (\n <Icon\n name='sort'\n className={twMerge(\n 'fill-tableResponsive-header-textAndIcon-default h-3',\n iconUnsortedStyles\n )}\n />\n );\n\n if (isSortedDesc) {\n return (\n <Icon\n name='chevrondown'\n className={twMerge('fill-tableResponsive-header-textAndIcon-active h-3', iconSortedStyles)}\n />\n );\n } else {\n return (\n <Icon\n name='chevronup'\n className={twMerge('fill-tableResponsive-header-textAndIcon-active h-3', iconSortedStyles)}\n />\n );\n }\n};\n\nexport const getIsExcludedSortable = (column: HeaderGroup) => {\n if (column.columns) return false;\n\n switch (column.accessor) {\n case 'action':\n return false;\n case 'selectable':\n return false;\n default:\n return true;\n }\n};\n\nconst IndeterminateCheckbox = forwardRef(\n (\n {\n onChange,\n indeterminate,\n checked,\n color,\n ...rest\n }: {\n onChange?: (e: ChangeEvent<Element>) => void;\n children?: React.ReactNode;\n indeterminate?: boolean;\n checked?: boolean;\n color?: string;\n isDisabled?: boolean;\n },\n ref: React.Ref<HTMLInputElement>\n ) => {\n const defaultRef = useRef();\n const resolvedRef = useCombinedRefs(ref, defaultRef);\n\n useEffect(() => {\n resolvedRef.current.indeterminate = indeterminate;\n }, [resolvedRef, indeterminate]);\n\n return (\n <Checkbox\n {...rest}\n ref={resolvedRef}\n checked={checked}\n variant='small'\n indeterminate={indeterminate}\n onChange={onChange}\n color={color}\n />\n );\n }\n);\nIndeterminateCheckbox.displayName = 'Checkbox';\n\ninterface TableHooksInterface extends TableHooksBaseInterface, TableVariantInterface {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hooks: Hooks<any>;\n rowActions?: ({ rowData, index }: RowActionsInterface) => React.ReactNode;\n checkedColor?: string;\n totalMaxChecked?: number;\n}\n\nexport const tableHooks = ({\n hooks,\n actionLabel,\n isSelectable,\n hideRowIndex,\n rowIndexAlign,\n variant,\n rowActions,\n freezedColumn,\n checkedColor,\n totalMaxChecked\n}: TableHooksInterface) => {\n const defaultValue: {\n textAlign: TextAlign;\n } = {\n textAlign: 'left'\n };\n // eslint-disable-next-line sonarjs/cognitive-complexity\n hooks.visibleColumns.push((visibleColumns) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const newColumns: Array<Column<any>> = [];\n\n if (isSelectable) {\n const columnTmp: Column = {\n id: 'selection',\n width: 48,\n type: 'custom',\n accessor: 'selectable',\n disableClick: true,\n disableSortBy: true,\n textAlign: 'center',\n // FIXME: this issue is expected from current react-table lib\n // eslint-disable-next-line react/prop-types,react/display-name\n Header: ({ getToggleAllRowsSelectedProps, rows }) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const currentRows = rows as Array<Record<any, any>>;\n const changeableRows = currentRows.filter((row) => !row.original?.disableSelect);\n const totalChecked =\n currentRows && currentRows.length\n ? currentRows.filter((row) => row.isSelected === true).length\n : 0;\n\n return (\n <IndeterminateCheckbox\n {...getToggleAllRowsSelectedProps()}\n // indeterminate={totalChecked !== changeableRows.length}\n indeterminate\n checked={!!totalChecked || false}\n color={checkedColor || ColorBlue.buttonBlue}\n onChange={() => {\n if (totalChecked > totalMaxChecked) {\n changeableRows.forEach((row, index) => {\n row.toggleRowSelected?.(index < totalMaxChecked);\n });\n } else if (totalChecked > 0) {\n changeableRows.forEach((row) => row.toggleRowSelected?.(false));\n } else {\n changeableRows\n .slice(0, totalMaxChecked)\n .forEach((row) => row.toggleRowSelected?.(true));\n }\n }}\n />\n );\n },\n // eslint-disable-next-line react/prop-types,react/display-name\n Cell: ({ row, checkboxIsDisabled, selectedFlatRows }) => {\n const isDisabled =\n // eslint-disable-next-line react/prop-types\n checkboxIsDisabled || (selectedFlatRows.length >= totalMaxChecked && !row.isSelected);\n return (\n <IndeterminateCheckbox\n // eslint-disable-next-line react/prop-types\n {...row.getToggleRowSelectedProps()}\n color={checkedColor || ColorBlue.buttonBlue}\n isDisabled={isDisabled}\n />\n );\n }\n };\n if (freezedColumn) columnTmp.sticky = 'left';\n newColumns.push(columnTmp);\n }\n if (!hideRowIndex) {\n const columnTmp: Column = {\n // eslint-disable-next-line react/display-name\n Header: () => (\n <BaseText\n label={'No.'}\n className='text-[10px] font-normal w-full text-left text-tableResponsive-header-textAndIcon-default'\n />\n ),\n id: 'index',\n width: 40,\n disableSortBy: true,\n type: 'custom',\n accessor: 'index',\n textAlign: rowIndexAlign || defaultValue.textAlign,\n // eslint-disable-next-line react/display-name, react/prop-types\n Cell: ({ row, rows, numberAddition = 0 }) => {\n // eslint-disable-next-line react/prop-types\n const index = rows.findIndex((data) => data.index === row.index);\n return (\n <BaseText\n label={index + 1 + numberAddition}\n className='text-xs leading-[14px] font-normal w-full text-left '\n />\n );\n }\n };\n if (freezedColumn) columnTmp.sticky = 'left';\n newColumns.push(columnTmp);\n }\n if (rowActions) {\n const columnTmp: Column = {\n // eslint-disable-next-line react/display-name\n Header: () => (\n <Text\n label={actionLabel ?? 'Action'}\n variant={tableSizeMapper[variant].fontSize}\n fontWeight='semi-bold'\n textAlign={rowIndexAlign || defaultValue.textAlign}\n />\n ),\n id: 'actionRow',\n width: 100,\n accessor: 'action',\n type: 'custom',\n disableClick: true,\n disableSortBy: true,\n // FIXME NEW : change any to proper type\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Cell: ({ row }) => rowActions({ rowData: row.original, index: row.index }) as any\n };\n if (freezedColumn) columnTmp.sticky = 'left';\n newColumns.push(columnTmp);\n }\n return [...newColumns, ...visibleColumns];\n });\n};\n\nconst EmptyDataStyled = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n height: ${(props: EmptyDataInterface) => `${props.emptyTableHeight}px` || '300px'};\n justify-content: center;\n padding: ${PaddingType.large};\n`;\n\nexport const EmptyData = (props: EmptyDataInterface) => {\n return (\n <EmptyDataStyled {...props}>\n {props.noRecordComponent ? (\n <>{props.noRecordComponent()}</>\n ) : (\n <>\n <Icon name='norecord' size='extra-large' />\n <div style={{ marginTop: MarginType['extra-small'] }}>\n <Text\n label={props.noRecordLabel || 'No records found'}\n fontWeight='regular'\n variant='medium'\n />\n </div>\n </>\n )}\n </EmptyDataStyled>\n );\n};\n\nexport const TableLoaderContainer = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nexport const defaultPropGetter = () => ({});\n"],"names":["contentAlignmentMapper","left","center","right","tableSizeMapper","small","tdMinHeight","tdMaxHeight","tdHeight","tdPadding","thHeight","charTotal","fontSize","regular","CellContainerBaseStyled","styled","div","isBaseline","countArrayValue","textAlign","CellContainerHeaderStyled","CellContainerContentStyled","variant","IndeterminateCheckbox","forwardRef","_a","ref","onChange","indeterminate","checked","color","rest","__rest","defaultRef","useRef","resolvedRef","useCombinedRefs","useEffect","current","_jsx","jsx","Checkbox","Object","assign","displayName","EmptyDataStyled","props","emptyTableHeight","PaddingType","large","TableLoaderContainer","children","noRecordComponent","_Fragment","_jsxs","Icon","name","size","style","marginTop","MarginType","Text","label","noRecordLabel","fontWeight","isSorted","isSortedDesc","iconSortedStyles","iconUnsortedStyles","className","twMerge","column","columns","accessor","hooks","actionLabel","isSelectable","hideRowIndex","rowIndexAlign","rowActions","freezedColumn","checkedColor","totalMaxChecked","defaultValue","visibleColumns","push","newColumns","columnTmp","id","width","type","disableClick","disableSortBy","Header","getToggleAllRowsSelectedProps","rows","currentRows","changeableRows","filter","row","original","disableSelect","totalChecked","length","isSelected","ColorBlue","buttonBlue","forEach","index","toggleRowSelected","call","slice","Cell","checkboxIsDisabled","selectedFlatRows","isDisabled","getToggleRowSelectedProps","sticky","BaseText","numberAddition","findIndex","data","rowData"],"mappings":"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"}
|
|
@@ -140,5 +140,5 @@
|
|
|
140
140
|
line-height: 14px;
|
|
141
141
|
overflow: hidden;
|
|
142
142
|
white-space: normal;
|
|
143
|
-
`,H=l=>{var{getCellProps:s=y.defaultPropGetter,pageIndex:h=C.pageIndex,pageSize:b=C.pageSize,emptyTableHeight:S=200,onClickRow:w,variant:I="regular",isSelectable:H=!1,freezedColumn:R=0,freezeHeader:z=!1,hideRowIndex:N=!1,tableHeight:P=400}=l,q=e.__rest(l,["getCellProps","pageIndex","pageSize","emptyTableHeight","onClickRow","variant","isSelectable","freezedColumn","freezeHeader","hideRowIndex","tableHeight"]);const{onPageChange:L,isHidePagination:D,isHideTable:_,isHideItemShownDropdown:$,isHideShowColumnDropdown:G,totalData:U,totalPage:F,isManualSort:V,itemShownLabel:W,itemShownLabelStyles:J,itemShownDropdown:K,showColumnDropdown:Q,onSort:X,isRefetchData:Y,loadingContainerStyles:Z}=q,ee=y.tableSizeMapper[I].charTotal,te=o.useMemo((()=>q.data),[q.data]),oe=o.useMemo((()=>c({header:q.header,freezedColumn:R})),[R,q.header]),re=o.useMemo((()=>q.sortBy&&V?[q.sortBy]:[]),[q.sortBy,V]),ne=o.useRef(),le=o.useRef(),[ae,se]=o.useState(0),ie=o.useMemo((()=>{let e;return q.header&&(e=q.header.reduce(((e,t)=>e+(t.width||150)),0),q.rowActions&&(e+=100),N||(e+=40),H||(e+=48)),e}),[q.header,N,q.rowActions,H]),[de,ce]=o.useState(D?void 0:Math.ceil(U/b)),[ue,he]=o.useState(0);o.useEffect((()=>{ne.current&&r.default(ne.current)}),[ne]),o.useEffect((()=>{const e=new ResizeObserver((e=>{for(const t of e)se(t.contentRect.width)}));return le.current&&e.observe(le.current),()=>{le.current&&e.unobserve(le.current)}}),[]);const{canNextPage:pe,canPreviousPage:be,getTableProps:ge,getTableBodyProps:xe,gotoPage:me,headerGroups:fe,nextPage:ye,page:ve,pageCount:je,prepareRow:Se,previousPage:we,selectedFlatRows:Ce,setHiddenColumns:ke,state:{pageIndex:Ie,pageSize:Te,sortBy:[Oe]}}=a.reactTableExports.useTable({columns:oe,data:te,manualSortBy:V,manualPagination:!D,pageCount:de,initialState:{sortBy:re,pageIndex:D?C.pageIndex:h,pageSize:b,hiddenColumns:[],selectedRowIds:q.initialCheckedRows?(()=>{const e={},t=q.initialCheckedRows;return t&&t.forEach((t=>{const o=te.findIndex((e=>e.id===t));e[o.toString()]=!0})),e})():{"-1":!0}}},a.reactTableExports.useBlockLayout,a.reactTableExports.useSortBy,a.reactTableExports.usePagination,a.reactTableExports.useRowSelect,j.__exports.useSticky,(e=>y.tableHooks({hooks:e,isSelectable:H,hideRowIndex:N,rowIndexAlign:q.rowIndexAlign,variant:I,actionLabel:q.actionLabel,rowActions:q.rowActions,freezedColumn:R,checkedColor:q.checkedColor}))),Ee=o.useMemo((()=>D?0:Te*Ie),[D,Ie,Te]);i.useDidMountEffect((()=>{"function"==typeof q.onSelectedRow&&H&&q.onSelectedRow(Ce)}),[q.onSelectedRow,Ce]),o.useEffect((()=>{var e;if(Ce){const t=Ce.map((e=>e.original.id));null===(e=q.onCheckedRow)||void 0===e||e.call(q,t)}}),[Ce]),o.useEffect((()=>{q.hiddenColumns&&ke(q.hiddenColumns||[])}),[q.hiddenColumns,ke]),o.useEffect((()=>{"function"==typeof L&&L({pageIndex:Ie,pageSize:Te})}),[Ie,Te]),o.useEffect((()=>{D||ce(Math.ceil(U/Te))}),[Te,U,D]),o.useEffect((()=>{"function"==typeof X&&X({sortBy:Oe})}),[X,Oe]),o.useEffect((()=>{const e=[];ve.forEach((t=>{t.cells.forEach((t=>{Array.isArray(t.value)&&e.push(t.value.length)}))}));const t=e.length>0?Math.max(...e):0;he(t)}),[ve]);const Ae=(!!R||!!z)&&ie>ae,Me=0===te.length,Be=u.getChildrenOnDisplayName(q.children,"ListTabs"),He=u.getChildrenOnDisplayName(q.children,"MidTabs"),Re=u.getChildrenOnDisplayName(q.children,"ItemContent");return t.jsxs("div",Object.assign({className:"flex flex-col w-full h-full"},{children:[t.jsxs("div",Object.assign({ref:ne,className:v.twMerge("flex flex-col w-full bg-accordionTabs-container-background-default mb-3 rounded-lg p-2",q.headerContainerStyles)},{children:[t.jsxs("div",Object.assign({className:"flex flex-row items-center w-full gap-x-1"},{children:[t.jsx("div",Object.assign({className:"flex flex-1"},{children:Be})),He&&t.jsx(t.Fragment,{children:He}),!D&&je>0&&t.jsx("div",{children:t.jsx(m,Object.assign({canPreviousPage:be,canNextPage:pe,totalData:D?te.length:U,pageIndex:Ie,onClickPage:{first:()=>me(0),prev:we,next:ye,last:()=>me(je-1),gotoPage:e=>me(e)},totalPage:F||je,isShowPagination:!0},q.pagination))}),!$&&!!K&&t.jsxs("div",Object.assign({className:"flex flex-row items-center gap-x-2"},{children:[t.jsx(p.default,{label:W||"Item Shown",className:v.twMerge("font-normal text-dark-gumbo",J)}),t.jsx(x,Object.assign({},K))]})),!G&&!!Q&&t.jsx("div",{children:t.jsx(f,Object.assign({},Q))})]})),Re]})),t.jsx("div",Object.assign({className:(_?"hidden":"flex")+" flex-1 relative w-full h-full overflow-auto z-10"},{children:t.jsxs(k,{children:[t.jsx(M,Object.assign({ref:le,$isOverflowAuto:!Ae,$isLoading:q.isLoading,$isEmpty:Me,tableHeight:P,rowEvenColor:q.rowEvenColor,rowOddColor:q.rowOddColor,variant:I,className:v.twMerge("w-full h-full",q.tableContainerStyles)},{children:t.jsxs(A,Object.assign({},ge(),{freezeHeader:z,variant:I,"data-test-id":q.dataTestId,rowOddColor:q.rowOddColor,rowEvenColor:q.rowEvenColor},{children:[Y&&t.jsx("div",Object.assign({className:v.twMerge("absolute top-0 flex flex-1 items-center justify-center w-full h-full bg-light-whiteSolid z-20",Z)},{children:t.jsx(g,{size:"small"})})),t.jsx(O,{headerGroups:fe,variant:I,freezeHeader:z,textSortedStyles:q.textSortedStyles,textUnsortedStyles:q.textUnsortedStyles,iconSortedStyles:q.iconSortedStyles,iconUnsortedStyles:q.iconUnsortedStyles,headerStyles:q.headerStyles,childHeaderStyles:q.childHeaderStyles}),t.jsx(E,Object.assign({},xe(),{children:ve.map(((r,l)=>{Se(r);const a=()=>w&&w(r.original),i=r.getRowProps(),{key:d}=i,c=e.__rest(i,["key"]);return o.createElement("tr",Object.assign({},c,{key:d||l,style:{display:"flex",width:"auto"}}),r.cells.map(((l,i)=>{const d=l.getCellProps(s(l)),{key:c,checkboxIsDisabled:u}=d,h=e.__rest(d,["key","checkboxIsDisabled"]);return o.createElement("td",Object.assign({},h,{key:c||l.row.id,className:v.twMerge(n.default(!!l.column.parent&&"border border-t-0 border-b-0 border-solid border-dark-solitude",r.cells[i+1]&&r.cells[i-1]&&!!r.cells[i+1].column.parent&&!!r.cells[i-1].column.parent&&"border-l-0",r.cells[i+1]&&r.cells[i-1]&&!!r.cells[i+1].column.parent&&!r.cells[i-1].column.parent&&"border-r-0",r.cells[i+1]&&r.cells[i-1]&&!r.cells[i+1].column.parent&&!!r.cells[i-1].column.parent&&"border-l-0",r.cells[i+1]&&r.cells[i-1]&&!!r.cells[i+1].column.parent&&!!r.cells[i-1].column.parent&&r.cells[i-1].column.parent.id!==l.column.parent.id&&"border-r-0",!r.cells[i+1]&&"border-l-0"))}),"custom"===l.column.type?t.jsx(y.CellContainerContentStyled,Object.assign({variant:I,isBaseline:!0,onClick:l.column.disableClick?null:a},{children:l.render("Cell",Object.assign({numberAddition:Ee},"selectable"===l.column.accessor?{checkboxIsDisabled:u}:{}))})):t.jsx(t.Fragment,{children:Array.isArray(l.value)?l.value.map(((e,o)=>t.jsx(y.CellContainerContentStyled,Object.assign({variant:I,isBaseline:!0,countArrayValue:ue,isColSpan:!0,onClick:l.column.disableClick?null:a},{children:t.jsx(B,Object.assign({isEmpty:!e,textAlign:l.column.textAlign||C.textAlign,label:l.column.isCanShowEmptyCell?e:e||"-",variant:"small",ellipsis:!!l.value&&l.value.length>=ee},l.column.textStyle))}),o))):t.jsx(y.CellContainerContentStyled,Object.assign({variant:I,isBaseline:!0,onClick:l.column.disableClick?null:a},{children:t.jsx(B,Object.assign({isEmpty:!l.value,textAlign:l.column.textAlign||C.textAlign,label:l.column.isCanShowEmptyCell?l.value:l.value||"-",variant:"small",ellipsis:!!l.value&&l.value.length>=ee},l.column.textStyle))}))}))})))}))}))]}))})),Me&&!q.isLoading&&t.jsx(T,{children:t.jsx(y.EmptyData,{emptyTableHeight:S,noRecordLabel:q.noRecordLabel,noRecordComponent:q.noRecordComponent})}),q.isLoading&&t.jsx(T,{children:t.jsx(g,{size:"small",color:q.loadingColor?q.loadingColor:d.ColorBlue.yaleBlue,secondaryColor:q.loadingSecondaryColor?q.loadingSecondaryColor:d.ColorBlue.lapisLazuli})})]})}))]}))},R=({children:e})=>{const r=o.Children.toArray(e);return t.jsx("div",Object.assign({className:"flex flex-row w-full"},{children:o.Children.map(r,((e,o)=>{const r=u.getChildrenOnDisplayName(e,"ItemTabs");return t.jsx("div",Object.assign({className:"flex flex-row items-center"},{children:r}),o)}))}))};R.displayName="ListTabs",H.ListTabs=R;const z=({children:e,containerStyles:o})=>t.jsx(t.Fragment,{children:e?t.jsx("div",Object.assign({className:v.twMerge("flex flex-row flex-1",o)},{children:e})):null});z.displayName="MidTabs",H.MidTabs=z;const N=r=>{var{children:l,isActive:a}=r,s=e.__rest(r,["children","isActive"]);const[i,d]=o.useState(!1),[c,u]=o.useState(!1);return t.jsx(t.Fragment,{children:l||t.jsx("div",Object.assign({onMouseDown:()=>u(!0),onMouseUp:()=>u(!1),onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1)},{children:t.jsx(h.default,Object.assign({},s,{leftIconStyles:v.twMerge(n.default("fill-accordionTabs-button-textAndIcon-default",i&&"fill-accordionTabs-button-textAndIcon-hover",(c||a)&&"fill-accordionTabs-button-textAndIcon-active"),s.leftIconStyles),rightIcon:a?"chevronup":s.rightIcon||"chevrondown",rightIconStyles:v.twMerge(n.default("fill-accordionTabs-button-textAndIcon-default",i&&"fill-accordionTabs-button-textAndIcon-hover",(c||a)&&"fill-accordionTabs-button-textAndIcon-active"),s.rightIconStyles),className:v.twMerge(n.default("\n bg-accordionTabs-button-background-default active:bg-accordionTabs-button-background-active hover:bg-accordionTabs-button-background-hover \n border-accordionTabs-button-border-default active:border-accordionTabs-button-border-active hover:border-accordionTabs-button-border-hover \n text-accordionTabs-button-textAndIcon-default active:text-accordionTabs-button-textAndIcon-active hover:text-accordionTabs-button-textAndIcon-hover\n ",a&&"\n bg-accordionTabs-button-background-active hover:bg-accordionTabs-button-background-active \n border-accordionTabs-button-border-active hover:border-accordionTabs-button-border-active \n text-accordionTabs-button-textAndIcon-active hover:text-accordionTabs-button-textAndIcon-active\n "),s.className)}))}))})};N.displayName="ItemTabs",H.ItemTabs=N;const P=({children:e})=>t.jsx(t.Fragment,{children:e});P.displayName="ItemContent",H.ItemContent=P,H.prototype={pageSize:l.propTypesExports.number,emptyTableHeight:l.propTypesExports.number,onClickRow:l.propTypesExports.func,variant:l.propTypesExports.string,isSelectable:l.propTypesExports.bool,freezedColumn:l.propTypesExports.number,freezeHeader:l.propTypesExports.bool,hideRowIndex:l.propTypesExports.bool,tableHeight:l.propTypesExports.number},module.exports=H;
|
|
143
|
+
`,H=l=>{var{getCellProps:s=y.defaultPropGetter,pageIndex:h=C.pageIndex,pageSize:b=C.pageSize,emptyTableHeight:S=200,onClickRow:w,variant:I="regular",isSelectable:H=!1,freezedColumn:R=0,freezeHeader:z=!1,hideRowIndex:N=!1,tableHeight:P=400}=l,q=e.__rest(l,["getCellProps","pageIndex","pageSize","emptyTableHeight","onClickRow","variant","isSelectable","freezedColumn","freezeHeader","hideRowIndex","tableHeight"]);const{onPageChange:L,isHidePagination:D,isHideTable:_,isHideItemShownDropdown:$,isHideShowColumnDropdown:G,totalData:U,totalPage:F,isManualSort:V,itemShownLabel:W,itemShownLabelStyles:J,itemShownDropdown:K,showColumnDropdown:Q,onSort:X,isRefetchData:Y,loadingContainerStyles:Z}=q,ee=y.tableSizeMapper[I].charTotal,te=o.useMemo((()=>q.data),[q.data]),oe=o.useMemo((()=>c({header:q.header,freezedColumn:R})),[R,q.header]),re=o.useMemo((()=>q.sortBy&&V?[q.sortBy]:[]),[q.sortBy,V]),ne=o.useRef(),le=o.useRef(),[ae,se]=o.useState(0),ie=o.useMemo((()=>{let e;return q.header&&(e=q.header.reduce(((e,t)=>e+(t.width||150)),0),q.rowActions&&(e+=100),N||(e+=40),H||(e+=48)),e}),[q.header,N,q.rowActions,H]),[de,ce]=o.useState(D?void 0:Math.ceil(U/b)),[ue,he]=o.useState(0);o.useEffect((()=>{ne.current&&r.default(ne.current)}),[ne]),o.useEffect((()=>{const e=new ResizeObserver((e=>{for(const t of e)se(t.contentRect.width)}));return le.current&&e.observe(le.current),()=>{le.current&&e.unobserve(le.current)}}),[]);const{canNextPage:pe,canPreviousPage:be,getTableProps:ge,getTableBodyProps:xe,gotoPage:me,headerGroups:fe,nextPage:ye,page:ve,pageCount:je,prepareRow:Se,previousPage:we,selectedFlatRows:Ce,setHiddenColumns:ke,state:{pageIndex:Ie,pageSize:Te,sortBy:[Oe]}}=a.reactTableExports.useTable({columns:oe,data:te,manualSortBy:V,manualPagination:!D,pageCount:de,initialState:{sortBy:re,pageIndex:D?C.pageIndex:h,pageSize:b,hiddenColumns:[],selectedRowIds:q.initialCheckedRows?(()=>{const e={},t=q.initialCheckedRows;return t&&t.forEach((t=>{const o=te.findIndex((e=>e.id===t));e[o.toString()]=!0})),e})():{"-1":!0}}},a.reactTableExports.useBlockLayout,a.reactTableExports.useSortBy,a.reactTableExports.usePagination,a.reactTableExports.useRowSelect,j.__exports.useSticky,(e=>y.tableHooks({hooks:e,isSelectable:H,hideRowIndex:N,rowIndexAlign:q.rowIndexAlign,variant:I,actionLabel:q.actionLabel,rowActions:q.rowActions,freezedColumn:R,checkedColor:q.checkedColor,totalMaxChecked:q.totalMaxChecked}))),Ee=o.useMemo((()=>D?0:Te*Ie),[D,Ie,Te]);i.useDidMountEffect((()=>{"function"==typeof q.onSelectedRow&&H&&q.onSelectedRow(Ce)}),[q.onSelectedRow,Ce]),o.useEffect((()=>{var e;if(Ce){const t=Ce.map((e=>e.original.id));null===(e=q.onCheckedRow)||void 0===e||e.call(q,t)}}),[Ce]),o.useEffect((()=>{q.hiddenColumns&&ke(q.hiddenColumns||[])}),[q.hiddenColumns,ke]),o.useEffect((()=>{"function"==typeof L&&L({pageIndex:Ie,pageSize:Te})}),[Ie,Te]),o.useEffect((()=>{D||ce(Math.ceil(U/Te))}),[Te,U,D]),o.useEffect((()=>{"function"==typeof X&&X({sortBy:Oe})}),[X,Oe]),o.useEffect((()=>{const e=[];ve.forEach((t=>{t.cells.forEach((t=>{Array.isArray(t.value)&&e.push(t.value.length)}))}));const t=e.length>0?Math.max(...e):0;he(t)}),[ve]);const Ae=(!!R||!!z)&&ie>ae,Me=0===te.length,Be=u.getChildrenOnDisplayName(q.children,"ListTabs"),He=u.getChildrenOnDisplayName(q.children,"MidTabs"),Re=u.getChildrenOnDisplayName(q.children,"ItemContent");return t.jsxs("div",Object.assign({className:"flex flex-col w-full h-full"},{children:[t.jsxs("div",Object.assign({ref:ne,className:v.twMerge("flex flex-col w-full bg-accordionTabs-container-background-default mb-3 rounded-lg p-2",q.headerContainerStyles)},{children:[t.jsxs("div",Object.assign({className:"flex flex-row items-center w-full gap-x-1"},{children:[t.jsx("div",Object.assign({className:"flex flex-1"},{children:Be})),He&&t.jsx(t.Fragment,{children:He}),!D&&je>0&&t.jsx("div",{children:t.jsx(m,Object.assign({canPreviousPage:be,canNextPage:pe,totalData:D?te.length:U,pageIndex:Ie,onClickPage:{first:()=>me(0),prev:we,next:ye,last:()=>me(je-1),gotoPage:e=>me(e)},totalPage:F||je,isShowPagination:!0},q.pagination))}),!$&&!!K&&t.jsxs("div",Object.assign({className:"flex flex-row items-center gap-x-2"},{children:[t.jsx(p.default,{label:W||"Item Shown",className:v.twMerge("font-normal text-dark-gumbo",J)}),t.jsx(x,Object.assign({},K))]})),!G&&!!Q&&t.jsx("div",{children:t.jsx(f,Object.assign({},Q))})]})),Re]})),t.jsx("div",Object.assign({className:(_?"hidden":"flex")+" flex-1 relative w-full h-full overflow-auto z-10"},{children:t.jsxs(k,{children:[t.jsx(M,Object.assign({ref:le,$isOverflowAuto:!Ae,$isLoading:q.isLoading,$isEmpty:Me,tableHeight:P,rowEvenColor:q.rowEvenColor,rowOddColor:q.rowOddColor,variant:I,className:v.twMerge("w-full h-full",q.tableContainerStyles)},{children:t.jsxs(A,Object.assign({},ge(),{freezeHeader:z,variant:I,"data-test-id":q.dataTestId,rowOddColor:q.rowOddColor,rowEvenColor:q.rowEvenColor},{children:[Y&&t.jsx("div",Object.assign({className:v.twMerge("absolute top-0 flex flex-1 items-center justify-center w-full h-full bg-light-whiteSolid z-20",Z)},{children:t.jsx(g,{size:"small"})})),t.jsx(O,{headerGroups:fe,variant:I,freezeHeader:z,textSortedStyles:q.textSortedStyles,textUnsortedStyles:q.textUnsortedStyles,iconSortedStyles:q.iconSortedStyles,iconUnsortedStyles:q.iconUnsortedStyles,headerStyles:q.headerStyles,childHeaderStyles:q.childHeaderStyles}),t.jsx(E,Object.assign({},xe(),{children:ve.map(((r,l)=>{Se(r);const a=()=>w&&w(r.original),i=r.getRowProps(),{key:d}=i,c=e.__rest(i,["key"]);return o.createElement("tr",Object.assign({},c,{key:d||l,style:{display:"flex",width:"auto"}}),r.cells.map(((l,i)=>{const d=l.getCellProps(s(l)),{key:c,checkboxIsDisabled:u}=d,h=e.__rest(d,["key","checkboxIsDisabled"]);return o.createElement("td",Object.assign({},h,{key:c||l.row.id,className:v.twMerge(n.default(!!l.column.parent&&"border border-t-0 border-b-0 border-solid border-dark-solitude",r.cells[i+1]&&r.cells[i-1]&&!!r.cells[i+1].column.parent&&!!r.cells[i-1].column.parent&&"border-l-0",r.cells[i+1]&&r.cells[i-1]&&!!r.cells[i+1].column.parent&&!r.cells[i-1].column.parent&&"border-r-0",r.cells[i+1]&&r.cells[i-1]&&!r.cells[i+1].column.parent&&!!r.cells[i-1].column.parent&&"border-l-0",r.cells[i+1]&&r.cells[i-1]&&!!r.cells[i+1].column.parent&&!!r.cells[i-1].column.parent&&r.cells[i-1].column.parent.id!==l.column.parent.id&&"border-r-0",!r.cells[i+1]&&"border-l-0"))}),"custom"===l.column.type?t.jsx(y.CellContainerContentStyled,Object.assign({variant:I,isBaseline:!0,onClick:l.column.disableClick?null:a},{children:l.render("Cell",Object.assign({numberAddition:Ee},"selectable"===l.column.accessor?{checkboxIsDisabled:u}:{}))})):t.jsx(t.Fragment,{children:Array.isArray(l.value)?l.value.map(((e,o)=>t.jsx(y.CellContainerContentStyled,Object.assign({variant:I,isBaseline:!0,countArrayValue:ue,isColSpan:!0,onClick:l.column.disableClick?null:a},{children:t.jsx(B,Object.assign({isEmpty:!e,textAlign:l.column.textAlign||C.textAlign,label:l.column.isCanShowEmptyCell?e:e||"-",variant:"small",ellipsis:!!l.value&&l.value.length>=ee},l.column.textStyle))}),o))):t.jsx(y.CellContainerContentStyled,Object.assign({variant:I,isBaseline:!0,onClick:l.column.disableClick?null:a},{children:t.jsx(B,Object.assign({isEmpty:!l.value,textAlign:l.column.textAlign||C.textAlign,label:l.column.isCanShowEmptyCell?l.value:l.value||"-",variant:"small",ellipsis:!!l.value&&l.value.length>=ee},l.column.textStyle))}))}))})))}))}))]}))})),Me&&!q.isLoading&&t.jsx(T,{children:t.jsx(y.EmptyData,{emptyTableHeight:S,noRecordLabel:q.noRecordLabel,noRecordComponent:q.noRecordComponent})}),q.isLoading&&t.jsx(T,{children:t.jsx(g,{size:"small",color:q.loadingColor?q.loadingColor:d.ColorBlue.yaleBlue,secondaryColor:q.loadingSecondaryColor?q.loadingSecondaryColor:d.ColorBlue.lapisLazuli})})]})}))]}))},R=({children:e})=>{const r=o.Children.toArray(e);return t.jsx("div",Object.assign({className:"flex flex-row w-full"},{children:o.Children.map(r,((e,o)=>{const r=u.getChildrenOnDisplayName(e,"ItemTabs");return t.jsx("div",Object.assign({className:"flex flex-row items-center"},{children:r}),o)}))}))};R.displayName="ListTabs",H.ListTabs=R;const z=({children:e,containerStyles:o})=>t.jsx(t.Fragment,{children:e?t.jsx("div",Object.assign({className:v.twMerge("flex flex-row flex-1",o)},{children:e})):null});z.displayName="MidTabs",H.MidTabs=z;const N=r=>{var{children:l,isActive:a}=r,s=e.__rest(r,["children","isActive"]);const[i,d]=o.useState(!1),[c,u]=o.useState(!1);return t.jsx(t.Fragment,{children:l||t.jsx("div",Object.assign({onMouseDown:()=>u(!0),onMouseUp:()=>u(!1),onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1)},{children:t.jsx(h.default,Object.assign({},s,{leftIconStyles:v.twMerge(n.default("fill-accordionTabs-button-textAndIcon-default",i&&"fill-accordionTabs-button-textAndIcon-hover",(c||a)&&"fill-accordionTabs-button-textAndIcon-active"),s.leftIconStyles),rightIcon:a?"chevronup":s.rightIcon||"chevrondown",rightIconStyles:v.twMerge(n.default("fill-accordionTabs-button-textAndIcon-default",i&&"fill-accordionTabs-button-textAndIcon-hover",(c||a)&&"fill-accordionTabs-button-textAndIcon-active"),s.rightIconStyles),className:v.twMerge(n.default("\n bg-accordionTabs-button-background-default active:bg-accordionTabs-button-background-active hover:bg-accordionTabs-button-background-hover \n border-accordionTabs-button-border-default active:border-accordionTabs-button-border-active hover:border-accordionTabs-button-border-hover \n text-accordionTabs-button-textAndIcon-default active:text-accordionTabs-button-textAndIcon-active hover:text-accordionTabs-button-textAndIcon-hover\n ",a&&"\n bg-accordionTabs-button-background-active hover:bg-accordionTabs-button-background-active \n border-accordionTabs-button-border-active hover:border-accordionTabs-button-border-active \n text-accordionTabs-button-textAndIcon-active hover:text-accordionTabs-button-textAndIcon-active\n "),s.className)}))}))})};N.displayName="ItemTabs",H.ItemTabs=N;const P=({children:e})=>t.jsx(t.Fragment,{children:e});P.displayName="ItemContent",H.ItemContent=P,H.prototype={pageSize:l.propTypesExports.number,emptyTableHeight:l.propTypesExports.number,onClickRow:l.propTypesExports.func,variant:l.propTypesExports.string,isSelectable:l.propTypesExports.bool,freezedColumn:l.propTypesExports.number,freezeHeader:l.propTypesExports.bool,hideRowIndex:l.propTypesExports.bool,tableHeight:l.propTypesExports.number},module.exports=H;
|
|
144
144
|
//# sourceMappingURL=TableResponsive.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableResponsive.js","sources":["../../../../src/components/Table/TableResponsive.tsx"],"sourcesContent":["import autoAnimate from '@formkit/auto-animate';\nimport classNames from 'classnames';\nimport * as PropTypes from 'prop-types';\nimport React, { Children, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n HeaderGroup,\n TableCellProps,\n useBlockLayout,\n usePagination,\n useRowSelect,\n useSortBy,\n useTable\n} from 'react-table';\nimport { useSticky } from 'react-table-sticky';\nimport styled, { css } from 'styled-components';\nimport { twMerge } from 'tailwind-merge';\n\nimport { useDidMountEffect } from '../../hooks';\nimport { ColorBlue, ColorLight } from '../../styles/Colors';\nimport freezeColumn from '../../utils/freezeColumn';\nimport { getChildrenOnDisplayName } from '../../utils/getChildrenOnDisplayName';\nimport { BaseButton } from '../Button';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { BaseMenuDropdown } from '../Menu';\nimport { BasePagination } from '../Pagination';\nimport { BaseSwitchPicker } from '../SwitchPicker';\nimport { BaseText, fontFamilyMapper, Text, TextAlign } from '../Text';\nimport { TableHeaderInterface, TableResponsiveInterface, TableVariantInterface } from '.';\nimport { TableStyleInterface } from './Table.type';\nimport {\n CellContainerContentStyled,\n CellContainerHeaderStyled,\n defaultPropGetter,\n EmptyData,\n getIsExcludedSortable,\n SortIcon,\n tableHooks,\n tableSizeMapper\n} from './TableBase';\nimport {\n TableResponsiveContainerStyledProps,\n TableResponsiveItemContentInterface,\n TableResponsiveItemTabsInterface,\n TableResponsiveListTabsInterface,\n TableResponsiveMidTabsInterface\n} from './TableResponsive.type';\n\nconst defaultValue: {\n pageIndex: number;\n pageSize: number;\n textAlign: TextAlign;\n} = {\n pageIndex: 0,\n pageSize: 10,\n textAlign: 'left'\n};\n\nconst TableResponsiveContainerStyled = styled.div`\n bottom: 0;\n display: flex;\n flex-direction: column;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n`;\n\nconst TableHeaderStyled = styled.thead<{ headerGroupsLength?: number }>`\n tr {\n box-shadow: 0px 1px 1px 0px rgb(0 0 0 / 25%);\n clip-path: inset(-10px 0px);\n margin-top: -2px;\n :first-child {\n th {\n display: flex !important;\n }\n }\n z-index: 4;\n }\n th {\n box-sizing: border-box !important;\n min-height: ${({ headerGroupsLength }) => `${headerGroupsLength * 28}px`} !important;\n :last-child {\n border-right: 0;\n flex: 1;\n }\n p {\n letter-spacing: 0px !important;\n line-height: 12px !important;\n width: auto;\n }\n }\n`;\n\nconst TableLoadingAndEmptyContainerStyled = styled.div`\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n width: 100%;\n`;\n\nconst TableHeader = (props: TableHeaderInterface) => {\n const isIdHasPlaceholder = (id: string) => {\n return id.includes('placeholder');\n };\n\n const splitByPlaceholder = (id: string) => {\n return id.split('_placeholder_');\n };\n\n useMemo(() => {\n const hg = props.headerGroups.slice();\n if (hg.length > 1) {\n const dataHg: Array<HeaderGroup> = hg;\n for (let i = 0; i !== dataHg.length; i++) {\n if (dataHg[i].headers.length > 1) {\n for (let j = 0; j < dataHg[i].headers.length; j++) {\n if (isIdHasPlaceholder(dataHg[i].headers[j].id)) {\n const index = splitByPlaceholder(dataHg[i].headers[j].id)[1];\n dataHg[i].headers[j] = dataHg[i + 1].headers[parseInt(index)];\n }\n }\n }\n }\n\n return dataHg;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.headerGroups]);\n\n const { key, ...headerGroupProps } = props.headerGroups[0].getHeaderGroupProps();\n\n return (\n <>\n <TableHeaderStyled headerGroupsLength={props.headerGroups.length}>\n <tr\n {...headerGroupProps}\n key={key}\n style={{\n display: 'flex',\n width: 'auto',\n backgroundColor: ColorLight.whiteSmoke,\n minHeight: 28 * props.headerGroups.length\n }}\n >\n {/* eslint-disable-next-line sonarjs/cognitive-complexity */}\n {props.headerGroups[0].headers.map((column, indexHeaderGroups) => (\n <th\n {...column.getHeaderProps(\n getIsExcludedSortable(column) && column.getSortByToggleProps()\n )}\n className={twMerge(\n classNames(\n 'flex flex-col',\n twMerge('bg-tableResponsive-header-background-colspan', props.headerStyles),\n column.columns &&\n 'border border-t-0 border-b-0 border-solid border-dark-solitude',\n props.headerGroups[0].headers[indexHeaderGroups - 1] &&\n props.headerGroups[0].headers[indexHeaderGroups - 1].columns &&\n 'border-l-0'\n )\n )}\n key={column.id}\n >\n <CellContainerHeaderStyled\n textAlign={column.textAlign || defaultValue.textAlign}\n variant={props.variant}\n style={{ minHeight: !column.columns ? 28 * props.headerGroups.length : 28 }}\n >\n <div className={classNames('flex flex-row items-center p-2')}>\n {typeof column.Header.valueOf() !== 'string' ? (\n column.render('Header')\n ) : (\n <>\n <BaseText\n label={column.Header.toString()}\n className={classNames(\n 'text-[10px] font-normal text-center',\n column.isSorted\n ? twMerge(\n 'text-tableResponsive-header-textAndIcon-active',\n props.textSortedStyles\n )\n : twMerge(\n 'text-tableResponsive-header-textAndIcon-default',\n props.textUnsortedStyles\n )\n )}\n />\n {!column.columns && (\n <span\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n }}\n >\n {!column.disableSortBy && (\n <SortIcon\n isSorted={column.isSorted}\n isSortedDesc={column.isSortedDesc}\n iconSortedStyles={props.iconSortedStyles}\n iconUnsortedStyles={props.iconUnsortedStyles}\n />\n )}\n </span>\n )}\n </>\n )}\n </div>\n </CellContainerHeaderStyled>\n {column.columns && (\n <div\n className={twMerge(\n 'flex flex-row bg-tableResponsive-header-background-underColspan',\n props.childHeaderStyles\n )}\n >\n {column.columns.map((item) => {\n return (\n <CellContainerHeaderStyled\n key={item.Header.toString()}\n textAlign={item.textAlign || defaultValue.textAlign}\n variant={props.variant}\n style={{ minHeight: 28 }}\n >\n <div\n className={classNames('flex flex-row items-center p-2')}\n style={{ minHeight: 28, minWidth: item.width }}\n >\n <BaseText\n label={item.Header.toString()}\n className={classNames(\n 'text-[10px] font-normal text-center',\n column.isSorted\n ? twMerge(\n 'text-tableResponsive-header-textAndIcon-default',\n props.textSortedStyles\n )\n : twMerge(\n 'text-tableResponsive-header-textAndIcon-default',\n props.textUnsortedStyles\n )\n )}\n />\n {!column.columns && (\n <span\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n }}\n >\n {!column.disableSortBy && (\n <SortIcon\n isSorted={column.isSorted}\n isSortedDesc={column.isSortedDesc}\n iconSortedStyles={props.iconSortedStyles}\n iconUnsortedStyles={props.iconUnsortedStyles}\n />\n )}\n </span>\n )}\n </div>\n </CellContainerHeaderStyled>\n );\n })}\n </div>\n )}\n </th>\n ))}\n </tr>\n </TableHeaderStyled>\n </>\n );\n};\n\nconst TableBodyStyled = styled.tbody`\n tr {\n cursor: pointer;\n :hover {\n p {\n font-family: ${fontFamilyMapper['semi-bold']};\n }\n }\n td {\n box-sizing: border-box !important;\n :last-child {\n border-right: 0;\n }\n }\n z-index: 10;\n }\n`;\n\ninterface TableStyledInterface extends TableVariantInterface, TableStyleInterface {\n freezeHeader?: boolean;\n}\n\ninterface CustomCellProps extends TableCellProps {\n checkboxIsDisabled?: boolean;\n}\n\nconst TableStyled = styled.table<TableStyledInterface>`\n border-spacing: 0;\n thead:first-child {\n ${({ freezeHeader }) =>\n freezeHeader && 'position: sticky !important; top: 0 !important; z-index: 35 !important'}\n }\n tbody:first-child {\n ${({ freezeHeader }) => freezeHeader && 'height: (100% - 82px)'}\n }\n width: 100%;\n td {\n max-height: ${({ variant }) => tableSizeMapper[variant].tdMaxHeight};\n min-height: ${({ variant }) => tableSizeMapper[variant].tdMinHeight};\n :last-child {\n border-right: 0;\n flex: 1;\n }\n }\n tr {\n :nth-child(odd) {\n background-color: ${({ rowEvenColor }) => rowEvenColor};\n }\n :nth-child(even) {\n background-color: ${({ rowOddColor }) => rowOddColor};\n }\n :last-child {\n td {\n border-bottom: 0;\n }\n }\n }\n`;\n\nconst TableContainerStyled = styled.div<TableResponsiveContainerStyledProps>`\n overflow: hidden;\n width: 100%;\n\n ${({ $isLoading, $isEmpty }) => {\n if ($isLoading) {\n return css`\n display: flex;\n height: 0px;\n opacity: 0.5;\n overflow: hidden;\n pointer-events: none;\n width: 0px;\n `;\n }\n\n if ($isEmpty) {\n return css`\n display: flex;\n height: 60px;\n width: 100%;\n `;\n }\n\n return css`\n display: flex;\n flex: 1;\n flex-direction: column;\n height: 100%;\n overflow: auto;\n `;\n }}\n\n table {\n tr {\n :last-child {\n td {\n border-bottom: 0;\n }\n }\n :nth-child(odd) {\n td {\n background-color: ${({ rowOddColor }) =>\n rowOddColor || 'var(--tableResponsive-body-background-odd)'};\n }\n }\n :nth-child(even) {\n td {\n background-color: ${({ rowEvenColor }) =>\n rowEvenColor || 'var(--tableResponsive-body-background-even)'};\n }\n }\n }\n\n ${({ $isOverflowAuto }) => {\n if (!$isOverflowAuto) {\n return css`\n [data-sticky-td] {\n box-shadow: 4px 0px 6px -1px rgba(0, 0, 0, 0.16);\n clip-path: inset(-1px -15px -1px 0px);\n }\n `;\n }\n }}\n }\n`;\n\nconst TextStyled = styled(Text)<{ isEmpty: boolean }>`\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n color: ${({ isEmpty, color }) =>\n color\n ? color\n : isEmpty\n ? 'var(--tableResponsive-body-text-notSpecifiedAndNone)'\n : 'var(--tableResponsive-body-text-default)'};\n display: -webkit-inline-box;\n line-height: 14px;\n overflow: hidden;\n white-space: normal;\n`;\n\n// TableResponsive.defaultProps = {\n// pageSize: defaultValue.pageSize,\n// pageIndex: defaultValue.pageIndex,\n// emptyTableHeight: 200,\n// onClickRow: undefined,\n// variant: 'regular',\n// isSelectable: false,\n// freezedColumn: 0,\n// freezeHeader: false,\n// hideRowIndex: false,\n// tableHeight: 400\n// };\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst TableResponsive = ({\n getCellProps = defaultPropGetter,\n pageIndex: tablePageIndex = defaultValue.pageIndex,\n pageSize: tablePageSize = defaultValue.pageSize,\n emptyTableHeight = 200,\n onClickRow = undefined,\n variant = 'regular',\n isSelectable = false,\n freezedColumn = 0,\n freezeHeader = false,\n hideRowIndex = false,\n tableHeight = 400,\n ...props\n}: // eslint-disable-next-line sonarjs/cognitive-complexity\nTableResponsiveInterface) => {\n // FIXME: pindahin logic di component ke custom hooks\n const {\n onPageChange,\n isHidePagination,\n isHideTable,\n isHideItemShownDropdown,\n isHideShowColumnDropdown,\n totalData,\n totalPage,\n isManualSort,\n itemShownLabel,\n itemShownLabelStyles,\n itemShownDropdown,\n showColumnDropdown,\n onSort,\n isRefetchData,\n loadingContainerStyles\n } = props;\n const charTotal = tableSizeMapper[variant].charTotal;\n const data = useMemo(() => props.data, [props.data]);\n const columns = useMemo(\n () => freezeColumn({ header: props.header, freezedColumn: freezedColumn }),\n [freezedColumn, props.header]\n );\n\n const sortBy = useMemo(() => {\n if (props.sortBy && isManualSort) return [props.sortBy];\n return [];\n }, [props.sortBy, isManualSort]);\n\n const parentRef = useRef<HTMLDivElement>();\n const tableRef = useRef<HTMLDivElement>();\n\n const [totalWidthOfContainer, setTotalWidhtOfContainer] = useState<number>(0);\n\n const totalWidthfColumn = useMemo(() => {\n let temp;\n if (props.header) {\n temp = props.header.reduce((e, c) => {\n return e + (c.width || 150);\n }, 0);\n\n if (props.rowActions) {\n temp += 100;\n }\n\n if (!hideRowIndex) {\n temp += 40;\n }\n\n if (!isSelectable) {\n temp += 48;\n }\n }\n return temp;\n }, [props.header, hideRowIndex, props.rowActions, isSelectable]);\n\n const [pageCountState, setPageCountState] = useState(\n !isHidePagination ? Math.ceil(totalData / tablePageSize) : undefined\n );\n const [countCellSpan, setCountCellSpan] = useState<number>(0);\n\n const selectedIdRows = () => {\n const temp: { [key: string]: boolean } = {};\n const rows = props.initialCheckedRows;\n if (rows) {\n rows.forEach((row) => {\n const index = data.findIndex((e: { id: string }) => e.id === row);\n temp[index.toString()] = true;\n });\n }\n return temp;\n };\n\n useEffect(() => {\n if (parentRef.current) {\n autoAnimate(parentRef.current);\n }\n }, [parentRef]);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n setTotalWidhtOfContainer(entry.contentRect.width);\n }\n });\n\n if (tableRef.current) {\n resizeObserver.observe(tableRef.current);\n }\n\n return () => {\n if (tableRef.current) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n resizeObserver.unobserve(tableRef.current);\n }\n };\n }, []);\n\n const {\n canNextPage,\n canPreviousPage,\n getTableProps,\n getTableBodyProps,\n gotoPage,\n headerGroups,\n nextPage,\n page,\n pageCount,\n prepareRow,\n previousPage,\n selectedFlatRows,\n setHiddenColumns,\n state: {\n pageIndex,\n pageSize,\n sortBy: [sortByState]\n }\n } = useTable(\n {\n columns,\n data,\n manualSortBy: isManualSort,\n manualPagination: !isHidePagination,\n pageCount: pageCountState,\n initialState: {\n sortBy,\n pageIndex: !isHidePagination ? tablePageIndex : defaultValue.pageIndex,\n pageSize: tablePageSize,\n hiddenColumns: [],\n selectedRowIds: props.initialCheckedRows ? selectedIdRows() : { '-1': true }\n }\n },\n useBlockLayout,\n useSortBy,\n usePagination,\n useRowSelect,\n useSticky,\n (hooks) =>\n tableHooks({\n hooks,\n isSelectable: isSelectable,\n hideRowIndex: hideRowIndex,\n rowIndexAlign: props.rowIndexAlign,\n variant: variant,\n actionLabel: props.actionLabel,\n rowActions: props.rowActions,\n freezedColumn: freezedColumn,\n checkedColor: props.checkedColor\n })\n );\n\n const indexRowAddition = useMemo(() => {\n if (isHidePagination) return 0;\n return pageSize * pageIndex;\n }, [isHidePagination, pageIndex, pageSize]);\n\n useDidMountEffect(() => {\n if (typeof props.onSelectedRow === 'function' && isSelectable) {\n props.onSelectedRow(selectedFlatRows);\n }\n }, [props.onSelectedRow, selectedFlatRows]);\n\n useEffect(() => {\n if (selectedFlatRows) {\n const temp = selectedFlatRows.map((item) => item.original.id);\n props.onCheckedRow?.(temp);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedFlatRows]);\n\n // FIXME: find better implementation for hidden columns\n useEffect(() => {\n if (props.hiddenColumns) setHiddenColumns(props.hiddenColumns || []);\n }, [props.hiddenColumns, setHiddenColumns]);\n\n useEffect(() => {\n if (typeof onPageChange === 'function') {\n onPageChange({ pageIndex, pageSize });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pageIndex, pageSize]);\n\n useEffect(() => {\n if (!isHidePagination) {\n setPageCountState(Math.ceil(totalData / pageSize));\n }\n }, [pageSize, totalData, isHidePagination]);\n\n useEffect(() => {\n if (typeof onSort === 'function') {\n onSort({ sortBy: sortByState });\n }\n }, [onSort, sortByState]);\n\n useEffect(() => {\n const filterHasArray: Array<number> = [];\n page.forEach((row) => {\n row.cells.forEach((item) => {\n if (Array.isArray(item.value)) {\n filterHasArray.push(item.value.length);\n }\n });\n });\n const countCellData = filterHasArray.length > 0 ? Math.max(...filterHasArray) : 0;\n setCountCellSpan(countCellData);\n }, [page]);\n\n const isOverflowAuto =\n (!!freezedColumn || !!freezeHeader) && totalWidthfColumn > totalWidthOfContainer;\n const isEmpty = data.length === 0;\n\n const listTabs = getChildrenOnDisplayName(props.children, 'ListTabs');\n const midTabs = getChildrenOnDisplayName(props.children, 'MidTabs');\n const itemContent = getChildrenOnDisplayName(props.children, 'ItemContent');\n\n return (\n <div className='flex flex-col w-full h-full'>\n {/* Layout Header */}\n <div\n ref={parentRef}\n className={twMerge(\n 'flex flex-col w-full bg-accordionTabs-container-background-default mb-3 rounded-lg p-2',\n props.headerContainerStyles\n )}\n >\n <div className='flex flex-row items-center w-full gap-x-1'>\n <div className='flex flex-1'>{listTabs}</div>\n {midTabs && <>{midTabs}</>}\n {!isHidePagination && pageCount > 0 && (\n <div>\n <BasePagination\n canPreviousPage={canPreviousPage}\n canNextPage={canNextPage}\n totalData={!isHidePagination ? totalData : data.length}\n pageIndex={pageIndex}\n onClickPage={{\n first: () => gotoPage(0),\n prev: previousPage,\n next: nextPage,\n last: () => gotoPage(pageCount - 1),\n gotoPage: (page) => gotoPage(page)\n }}\n totalPage={totalPage || pageCount}\n isShowPagination={true}\n {...props.pagination}\n />\n </div>\n )}\n\n {!isHideItemShownDropdown && !!itemShownDropdown && (\n <div className='flex flex-row items-center gap-x-2'>\n <BaseText\n label={itemShownLabel || 'Item Shown'}\n className={twMerge('font-normal text-dark-gumbo', itemShownLabelStyles)}\n />\n <BaseMenuDropdown {...itemShownDropdown} />\n </div>\n )}\n\n {!isHideShowColumnDropdown && !!showColumnDropdown && (\n <div>\n <BaseSwitchPicker {...showColumnDropdown} />\n </div>\n )}\n </div>\n\n {itemContent}\n </div>\n\n {/* Layout Content/Body */}\n <div\n className={`${\n isHideTable ? 'hidden' : 'flex'\n } flex-1 relative w-full h-full overflow-auto z-10`}\n >\n <TableResponsiveContainerStyled>\n <TableContainerStyled\n ref={tableRef}\n $isOverflowAuto={!isOverflowAuto}\n $isLoading={props.isLoading}\n $isEmpty={isEmpty}\n tableHeight={tableHeight}\n rowEvenColor={props.rowEvenColor}\n rowOddColor={props.rowOddColor}\n variant={variant}\n className={twMerge('w-full h-full', props.tableContainerStyles)}\n >\n <TableStyled\n {...getTableProps()}\n freezeHeader={freezeHeader}\n variant={variant}\n data-test-id={props.dataTestId}\n rowOddColor={props.rowOddColor}\n rowEvenColor={props.rowEvenColor}\n >\n {isRefetchData && (\n <div\n className={twMerge(\n 'absolute top-0 flex flex-1 items-center justify-center w-full h-full bg-light-whiteSolid z-20',\n loadingContainerStyles\n )}\n >\n <LoadingIndicator size='small' />\n </div>\n )}\n <TableHeader\n headerGroups={headerGroups}\n variant={variant}\n freezeHeader={freezeHeader}\n textSortedStyles={props.textSortedStyles}\n textUnsortedStyles={props.textUnsortedStyles}\n iconSortedStyles={props.iconSortedStyles}\n iconUnsortedStyles={props.iconUnsortedStyles}\n headerStyles={props.headerStyles}\n childHeaderStyles={props.childHeaderStyles}\n />\n <TableBodyStyled {...getTableBodyProps()}>\n {\n // eslint-disable-next-line sonarjs/cognitive-complexity\n page.map((row, i) => {\n prepareRow(row);\n const onClick = () => onClickRow && onClickRow(row.original);\n const { key, ...rowProps } = row.getRowProps();\n\n return (\n <tr\n {...rowProps}\n key={key || i}\n style={{\n display: 'flex',\n width: 'auto'\n }}\n >\n {row.cells.map((cell, indexCell) => {\n const { key, checkboxIsDisabled, ...restCellProps } = cell.getCellProps(\n getCellProps(cell)\n ) as CustomCellProps;\n return (\n <td\n {...restCellProps}\n key={key || cell.row.id}\n className={twMerge(\n classNames(\n !!cell.column.parent &&\n 'border border-t-0 border-b-0 border-solid border-dark-solitude',\n row.cells[indexCell + 1] &&\n row.cells[indexCell - 1] &&\n !!row.cells[indexCell + 1].column.parent &&\n !!row.cells[indexCell - 1].column.parent &&\n 'border-l-0',\n row.cells[indexCell + 1] &&\n row.cells[indexCell - 1] &&\n !!row.cells[indexCell + 1].column.parent &&\n !row.cells[indexCell - 1].column.parent &&\n 'border-r-0',\n row.cells[indexCell + 1] &&\n row.cells[indexCell - 1] &&\n !row.cells[indexCell + 1].column.parent &&\n !!row.cells[indexCell - 1].column.parent &&\n 'border-l-0',\n row.cells[indexCell + 1] &&\n row.cells[indexCell - 1] &&\n !!row.cells[indexCell + 1].column.parent &&\n !!row.cells[indexCell - 1].column.parent &&\n row.cells[indexCell - 1].column.parent.id !==\n cell.column.parent.id &&\n 'border-r-0',\n !row.cells[indexCell + 1] && 'border-l-0'\n )\n )}\n >\n {cell.column.type === 'custom' ? (\n <CellContainerContentStyled\n variant={variant}\n isBaseline\n onClick={cell.column.disableClick ? null : onClick}\n >\n {cell.render('Cell', {\n numberAddition: indexRowAddition,\n ...(cell.column.accessor === 'selectable'\n ? { checkboxIsDisabled }\n : {})\n })}\n </CellContainerContentStyled>\n ) : (\n <>\n {Array.isArray(cell.value) ? (\n cell.value.map((valueCell, index) => (\n <CellContainerContentStyled\n variant={variant}\n key={index}\n isBaseline\n countArrayValue={countCellSpan}\n isColSpan\n onClick={cell.column.disableClick ? null : onClick}\n >\n <TextStyled\n isEmpty={!valueCell}\n textAlign={\n cell.column.textAlign || defaultValue.textAlign\n }\n label={\n cell.column.isCanShowEmptyCell\n ? valueCell\n : valueCell || '-'\n }\n variant='small'\n ellipsis={\n cell.value ? cell.value.length >= charTotal : false\n }\n {...cell.column.textStyle}\n />\n </CellContainerContentStyled>\n ))\n ) : (\n <CellContainerContentStyled\n variant={variant}\n isBaseline\n onClick={cell.column.disableClick ? null : onClick}\n >\n <TextStyled\n isEmpty={!cell.value}\n textAlign={cell.column.textAlign || defaultValue.textAlign}\n label={\n cell.column.isCanShowEmptyCell\n ? cell.value\n : cell.value || '-'\n }\n variant='small'\n ellipsis={\n cell.value ? cell.value.length >= charTotal : false\n }\n {...cell.column.textStyle}\n />\n </CellContainerContentStyled>\n )}\n </>\n )}\n </td>\n );\n })}\n </tr>\n );\n })\n }\n </TableBodyStyled>\n </TableStyled>\n </TableContainerStyled>\n\n {isEmpty && !props.isLoading && (\n <TableLoadingAndEmptyContainerStyled>\n <EmptyData\n emptyTableHeight={emptyTableHeight}\n noRecordLabel={props.noRecordLabel}\n noRecordComponent={props.noRecordComponent}\n />\n </TableLoadingAndEmptyContainerStyled>\n )}\n\n {props.isLoading && (\n <TableLoadingAndEmptyContainerStyled>\n <LoadingIndicator\n size='small'\n color={props.loadingColor ? props.loadingColor : ColorBlue.yaleBlue}\n secondaryColor={\n props.loadingSecondaryColor ? props.loadingSecondaryColor : ColorBlue.lapisLazuli\n }\n />\n </TableLoadingAndEmptyContainerStyled>\n )}\n </TableResponsiveContainerStyled>\n </div>\n </div>\n );\n};\n\nconst ListTabs = ({ children }: TableResponsiveListTabsInterface) => {\n const arrListTabs = Children.toArray(children);\n return (\n <div className='flex flex-row w-full'>\n {Children.map(arrListTabs, (item, index) => {\n const tab = getChildrenOnDisplayName(item, 'ItemTabs');\n return (\n <div key={index} className='flex flex-row items-center'>\n {tab}\n </div>\n );\n })}\n </div>\n );\n};\nListTabs.displayName = 'ListTabs';\nTableResponsive.ListTabs = ListTabs;\n\nconst MidTabs = ({ children, containerStyles }: TableResponsiveMidTabsInterface) => {\n return (\n <>\n {children ? (\n <div className={twMerge('flex flex-row flex-1', containerStyles)}>{children}</div>\n ) : null}\n </>\n );\n};\nMidTabs.displayName = 'MidTabs';\nTableResponsive.MidTabs = MidTabs;\n\nconst ItemTabs = ({ children, isActive, ...props }: TableResponsiveItemTabsInterface) => {\n const [isMouseEnter, setIsMouseEnter] = useState<boolean>(false);\n const [isMouseDown, setIsMouseDown] = useState<boolean>(false);\n\n return (\n <>\n {children ? (\n children\n ) : (\n <div\n onMouseDown={() => setIsMouseDown(true)}\n onMouseUp={() => setIsMouseDown(false)}\n onMouseEnter={() => setIsMouseEnter(true)}\n onMouseLeave={() => setIsMouseEnter(false)}\n >\n <BaseButton\n {...props}\n leftIconStyles={twMerge(\n classNames(\n 'fill-accordionTabs-button-textAndIcon-default',\n isMouseEnter && 'fill-accordionTabs-button-textAndIcon-hover',\n (isMouseDown || isActive) && 'fill-accordionTabs-button-textAndIcon-active'\n ),\n props.leftIconStyles\n )}\n rightIcon={isActive ? 'chevronup' : props.rightIcon || 'chevrondown'}\n rightIconStyles={twMerge(\n classNames(\n 'fill-accordionTabs-button-textAndIcon-default',\n isMouseEnter && 'fill-accordionTabs-button-textAndIcon-hover',\n (isMouseDown || isActive) && 'fill-accordionTabs-button-textAndIcon-active'\n ),\n props.rightIconStyles\n )}\n className={twMerge(\n classNames(\n `\n bg-accordionTabs-button-background-default active:bg-accordionTabs-button-background-active hover:bg-accordionTabs-button-background-hover \n border-accordionTabs-button-border-default active:border-accordionTabs-button-border-active hover:border-accordionTabs-button-border-hover \n text-accordionTabs-button-textAndIcon-default active:text-accordionTabs-button-textAndIcon-active hover:text-accordionTabs-button-textAndIcon-hover\n `,\n isActive &&\n `\n bg-accordionTabs-button-background-active hover:bg-accordionTabs-button-background-active \n border-accordionTabs-button-border-active hover:border-accordionTabs-button-border-active \n text-accordionTabs-button-textAndIcon-active hover:text-accordionTabs-button-textAndIcon-active\n `\n ),\n props.className\n )}\n />\n </div>\n )}\n </>\n );\n};\nItemTabs.displayName = 'ItemTabs';\nTableResponsive.ItemTabs = ItemTabs;\n\nconst ItemContent = ({ children }: TableResponsiveItemContentInterface) => {\n return <>{children}</>;\n};\nItemContent.displayName = 'ItemContent';\nTableResponsive.ItemContent = ItemContent;\n\nTableResponsive.prototype = {\n pageSize: PropTypes.number,\n emptyTableHeight: PropTypes.number,\n onClickRow: PropTypes.func,\n variant: PropTypes.string,\n isSelectable: PropTypes.bool,\n freezedColumn: PropTypes.number,\n freezeHeader: PropTypes.bool,\n hideRowIndex: PropTypes.bool,\n tableHeight: PropTypes.number\n};\n\nexport default TableResponsive;\n"],"names":["defaultValue","pageIndex","pageSize","textAlign","TableResponsiveContainerStyled","styled","div","TableHeaderStyled","thead","headerGroupsLength","TableLoadingAndEmptyContainerStyled","TableHeader","props","splitByPlaceholder","id","split","useMemo","hg","headerGroups","slice","length","dataHg","i","headers","j","includes","index","parseInt","_a","getHeaderGroupProps","key","headerGroupProps","__rest","_jsx","jsx","children","_createElement","style","display","width","backgroundColor","ColorLight","whiteSmoke","minHeight","map","column","indexHeaderGroups","createElement","Object","assign","getHeaderProps","getIsExcludedSortable","getSortByToggleProps","className","twMerge","classNames","headerStyles","columns","CellContainerHeaderStyled","variant","Header","valueOf","render","_jsxs","_Fragment","Fragment","BaseText","label","toString","isSorted","textSortedStyles","textUnsortedStyles","justifyContent","alignItems","disableSortBy","SortIcon","isSortedDesc","iconSortedStyles","iconUnsortedStyles","childHeaderStyles","item","jsxs","minWidth","TableBodyStyled","tbody","fontFamilyMapper","TableStyled","table","freezeHeader","tableSizeMapper","tdMaxHeight","tdMinHeight","rowEvenColor","rowOddColor","TableContainerStyled","$isLoading","$isEmpty","css","$isOverflowAuto","TextStyled","Text","isEmpty","color","TableResponsive","getCellProps","defaultPropGetter","tablePageIndex","tablePageSize","emptyTableHeight","onClickRow","isSelectable","freezedColumn","hideRowIndex","tableHeight","onPageChange","isHidePagination","isHideTable","isHideItemShownDropdown","isHideShowColumnDropdown","totalData","totalPage","isManualSort","itemShownLabel","itemShownLabelStyles","itemShownDropdown","showColumnDropdown","onSort","isRefetchData","loadingContainerStyles","charTotal","data","freezeColumn","header","sortBy","parentRef","useRef","tableRef","totalWidthOfContainer","setTotalWidhtOfContainer","useState","totalWidthfColumn","temp","reduce","e","c","rowActions","pageCountState","setPageCountState","undefined","Math","ceil","countCellSpan","setCountCellSpan","useEffect","current","autoAnimate","resizeObserver","ResizeObserver","entries","entry","contentRect","observe","unobserve","canNextPage","canPreviousPage","getTableProps","getTableBodyProps","gotoPage","nextPage","page","pageCount","prepareRow","previousPage","selectedFlatRows","setHiddenColumns","state","sortByState","useTable","manualSortBy","manualPagination","initialState","hiddenColumns","selectedRowIds","initialCheckedRows","rows","forEach","row","findIndex","selectedIdRows","useBlockLayout","useSortBy","usePagination","reactTableExports","useRowSelect","useSticky","hooks","tableHooks","rowIndexAlign","actionLabel","checkedColor","indexRowAddition","useDidMountEffect","onSelectedRow","original","onCheckedRow","call","filterHasArray","cells","Array","isArray","value","push","countCellData","max","isOverflowAuto","listTabs","getChildrenOnDisplayName","midTabs","itemContent","ref","headerContainerStyles","BasePagination","onClickPage","first","prev","next","last","isShowPagination","pagination","BaseMenuDropdown","BaseSwitchPicker","isLoading","tableContainerStyles","dataTestId","LoadingIndicator","size","onClick","getRowProps","rowProps","cell","indexCell","checkboxIsDisabled","restCellProps","parent","type","CellContainerContentStyled","isBaseline","disableClick","numberAddition","accessor","valueCell","countArrayValue","isColSpan","isCanShowEmptyCell","ellipsis","textStyle","EmptyData","noRecordLabel","noRecordComponent","loadingColor","ColorBlue","yaleBlue","secondaryColor","loadingSecondaryColor","lapisLazuli","ListTabs","arrListTabs","Children","toArray","tab","displayName","MidTabs","containerStyles","ItemTabs","isActive","isMouseEnter","setIsMouseEnter","isMouseDown","setIsMouseDown","onMouseDown","onMouseUp","onMouseEnter","onMouseLeave","BaseButton","leftIconStyles","rightIcon","rightIconStyles","ItemContent","prototype","PropTypes.number","propTypesExports","number","PropTypes.func","func","PropTypes.string","string","PropTypes.bool","bool"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableResponsive.js","sources":["../../../../src/components/Table/TableResponsive.tsx"],"sourcesContent":["import autoAnimate from '@formkit/auto-animate';\nimport classNames from 'classnames';\nimport * as PropTypes from 'prop-types';\nimport React, { Children, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n HeaderGroup,\n TableCellProps,\n useBlockLayout,\n usePagination,\n useRowSelect,\n useSortBy,\n useTable\n} from 'react-table';\nimport { useSticky } from 'react-table-sticky';\nimport styled, { css } from 'styled-components';\nimport { twMerge } from 'tailwind-merge';\n\nimport { useDidMountEffect } from '../../hooks';\nimport { ColorBlue, ColorLight } from '../../styles/Colors';\nimport freezeColumn from '../../utils/freezeColumn';\nimport { getChildrenOnDisplayName } from '../../utils/getChildrenOnDisplayName';\nimport { BaseButton } from '../Button';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { BaseMenuDropdown } from '../Menu';\nimport { BasePagination } from '../Pagination';\nimport { BaseSwitchPicker } from '../SwitchPicker';\nimport { BaseText, fontFamilyMapper, Text, TextAlign } from '../Text';\nimport { TableHeaderInterface, TableResponsiveInterface, TableVariantInterface } from '.';\nimport { TableStyleInterface } from './Table.type';\nimport {\n CellContainerContentStyled,\n CellContainerHeaderStyled,\n defaultPropGetter,\n EmptyData,\n getIsExcludedSortable,\n SortIcon,\n tableHooks,\n tableSizeMapper\n} from './TableBase';\nimport {\n TableResponsiveContainerStyledProps,\n TableResponsiveItemContentInterface,\n TableResponsiveItemTabsInterface,\n TableResponsiveListTabsInterface,\n TableResponsiveMidTabsInterface\n} from './TableResponsive.type';\n\nconst defaultValue: {\n pageIndex: number;\n pageSize: number;\n textAlign: TextAlign;\n} = {\n pageIndex: 0,\n pageSize: 10,\n textAlign: 'left'\n};\n\nconst TableResponsiveContainerStyled = styled.div`\n bottom: 0;\n display: flex;\n flex-direction: column;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n`;\n\nconst TableHeaderStyled = styled.thead<{ headerGroupsLength?: number }>`\n tr {\n box-shadow: 0px 1px 1px 0px rgb(0 0 0 / 25%);\n clip-path: inset(-10px 0px);\n margin-top: -2px;\n :first-child {\n th {\n display: flex !important;\n }\n }\n z-index: 4;\n }\n th {\n box-sizing: border-box !important;\n min-height: ${({ headerGroupsLength }) => `${headerGroupsLength * 28}px`} !important;\n :last-child {\n border-right: 0;\n flex: 1;\n }\n p {\n letter-spacing: 0px !important;\n line-height: 12px !important;\n width: auto;\n }\n }\n`;\n\nconst TableLoadingAndEmptyContainerStyled = styled.div`\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n width: 100%;\n`;\n\nconst TableHeader = (props: TableHeaderInterface) => {\n const isIdHasPlaceholder = (id: string) => {\n return id.includes('placeholder');\n };\n\n const splitByPlaceholder = (id: string) => {\n return id.split('_placeholder_');\n };\n\n useMemo(() => {\n const hg = props.headerGroups.slice();\n if (hg.length > 1) {\n const dataHg: Array<HeaderGroup> = hg;\n for (let i = 0; i !== dataHg.length; i++) {\n if (dataHg[i].headers.length > 1) {\n for (let j = 0; j < dataHg[i].headers.length; j++) {\n if (isIdHasPlaceholder(dataHg[i].headers[j].id)) {\n const index = splitByPlaceholder(dataHg[i].headers[j].id)[1];\n dataHg[i].headers[j] = dataHg[i + 1].headers[parseInt(index)];\n }\n }\n }\n }\n\n return dataHg;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.headerGroups]);\n\n const { key, ...headerGroupProps } = props.headerGroups[0].getHeaderGroupProps();\n\n return (\n <>\n <TableHeaderStyled headerGroupsLength={props.headerGroups.length}>\n <tr\n {...headerGroupProps}\n key={key}\n style={{\n display: 'flex',\n width: 'auto',\n backgroundColor: ColorLight.whiteSmoke,\n minHeight: 28 * props.headerGroups.length\n }}\n >\n {/* eslint-disable-next-line sonarjs/cognitive-complexity */}\n {props.headerGroups[0].headers.map((column, indexHeaderGroups) => (\n <th\n {...column.getHeaderProps(\n getIsExcludedSortable(column) && column.getSortByToggleProps()\n )}\n className={twMerge(\n classNames(\n 'flex flex-col',\n twMerge('bg-tableResponsive-header-background-colspan', props.headerStyles),\n column.columns &&\n 'border border-t-0 border-b-0 border-solid border-dark-solitude',\n props.headerGroups[0].headers[indexHeaderGroups - 1] &&\n props.headerGroups[0].headers[indexHeaderGroups - 1].columns &&\n 'border-l-0'\n )\n )}\n key={column.id}\n >\n <CellContainerHeaderStyled\n textAlign={column.textAlign || defaultValue.textAlign}\n variant={props.variant}\n style={{ minHeight: !column.columns ? 28 * props.headerGroups.length : 28 }}\n >\n <div className={classNames('flex flex-row items-center p-2')}>\n {typeof column.Header.valueOf() !== 'string' ? (\n column.render('Header')\n ) : (\n <>\n <BaseText\n label={column.Header.toString()}\n className={classNames(\n 'text-[10px] font-normal text-center',\n column.isSorted\n ? twMerge(\n 'text-tableResponsive-header-textAndIcon-active',\n props.textSortedStyles\n )\n : twMerge(\n 'text-tableResponsive-header-textAndIcon-default',\n props.textUnsortedStyles\n )\n )}\n />\n {!column.columns && (\n <span\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n }}\n >\n {!column.disableSortBy && (\n <SortIcon\n isSorted={column.isSorted}\n isSortedDesc={column.isSortedDesc}\n iconSortedStyles={props.iconSortedStyles}\n iconUnsortedStyles={props.iconUnsortedStyles}\n />\n )}\n </span>\n )}\n </>\n )}\n </div>\n </CellContainerHeaderStyled>\n {column.columns && (\n <div\n className={twMerge(\n 'flex flex-row bg-tableResponsive-header-background-underColspan',\n props.childHeaderStyles\n )}\n >\n {column.columns.map((item) => {\n return (\n <CellContainerHeaderStyled\n key={item.Header.toString()}\n textAlign={item.textAlign || defaultValue.textAlign}\n variant={props.variant}\n style={{ minHeight: 28 }}\n >\n <div\n className={classNames('flex flex-row items-center p-2')}\n style={{ minHeight: 28, minWidth: item.width }}\n >\n <BaseText\n label={item.Header.toString()}\n className={classNames(\n 'text-[10px] font-normal text-center',\n column.isSorted\n ? twMerge(\n 'text-tableResponsive-header-textAndIcon-default',\n props.textSortedStyles\n )\n : twMerge(\n 'text-tableResponsive-header-textAndIcon-default',\n props.textUnsortedStyles\n )\n )}\n />\n {!column.columns && (\n <span\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n }}\n >\n {!column.disableSortBy && (\n <SortIcon\n isSorted={column.isSorted}\n isSortedDesc={column.isSortedDesc}\n iconSortedStyles={props.iconSortedStyles}\n iconUnsortedStyles={props.iconUnsortedStyles}\n />\n )}\n </span>\n )}\n </div>\n </CellContainerHeaderStyled>\n );\n })}\n </div>\n )}\n </th>\n ))}\n </tr>\n </TableHeaderStyled>\n </>\n );\n};\n\nconst TableBodyStyled = styled.tbody`\n tr {\n cursor: pointer;\n :hover {\n p {\n font-family: ${fontFamilyMapper['semi-bold']};\n }\n }\n td {\n box-sizing: border-box !important;\n :last-child {\n border-right: 0;\n }\n }\n z-index: 10;\n }\n`;\n\ninterface TableStyledInterface extends TableVariantInterface, TableStyleInterface {\n freezeHeader?: boolean;\n}\n\ninterface CustomCellProps extends TableCellProps {\n checkboxIsDisabled?: boolean;\n}\n\nconst TableStyled = styled.table<TableStyledInterface>`\n border-spacing: 0;\n thead:first-child {\n ${({ freezeHeader }) =>\n freezeHeader && 'position: sticky !important; top: 0 !important; z-index: 35 !important'}\n }\n tbody:first-child {\n ${({ freezeHeader }) => freezeHeader && 'height: (100% - 82px)'}\n }\n width: 100%;\n td {\n max-height: ${({ variant }) => tableSizeMapper[variant].tdMaxHeight};\n min-height: ${({ variant }) => tableSizeMapper[variant].tdMinHeight};\n :last-child {\n border-right: 0;\n flex: 1;\n }\n }\n tr {\n :nth-child(odd) {\n background-color: ${({ rowEvenColor }) => rowEvenColor};\n }\n :nth-child(even) {\n background-color: ${({ rowOddColor }) => rowOddColor};\n }\n :last-child {\n td {\n border-bottom: 0;\n }\n }\n }\n`;\n\nconst TableContainerStyled = styled.div<TableResponsiveContainerStyledProps>`\n overflow: hidden;\n width: 100%;\n\n ${({ $isLoading, $isEmpty }) => {\n if ($isLoading) {\n return css`\n display: flex;\n height: 0px;\n opacity: 0.5;\n overflow: hidden;\n pointer-events: none;\n width: 0px;\n `;\n }\n\n if ($isEmpty) {\n return css`\n display: flex;\n height: 60px;\n width: 100%;\n `;\n }\n\n return css`\n display: flex;\n flex: 1;\n flex-direction: column;\n height: 100%;\n overflow: auto;\n `;\n }}\n\n table {\n tr {\n :last-child {\n td {\n border-bottom: 0;\n }\n }\n :nth-child(odd) {\n td {\n background-color: ${({ rowOddColor }) =>\n rowOddColor || 'var(--tableResponsive-body-background-odd)'};\n }\n }\n :nth-child(even) {\n td {\n background-color: ${({ rowEvenColor }) =>\n rowEvenColor || 'var(--tableResponsive-body-background-even)'};\n }\n }\n }\n\n ${({ $isOverflowAuto }) => {\n if (!$isOverflowAuto) {\n return css`\n [data-sticky-td] {\n box-shadow: 4px 0px 6px -1px rgba(0, 0, 0, 0.16);\n clip-path: inset(-1px -15px -1px 0px);\n }\n `;\n }\n }}\n }\n`;\n\nconst TextStyled = styled(Text)<{ isEmpty: boolean }>`\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n color: ${({ isEmpty, color }) =>\n color\n ? color\n : isEmpty\n ? 'var(--tableResponsive-body-text-notSpecifiedAndNone)'\n : 'var(--tableResponsive-body-text-default)'};\n display: -webkit-inline-box;\n line-height: 14px;\n overflow: hidden;\n white-space: normal;\n`;\n\n// TableResponsive.defaultProps = {\n// pageSize: defaultValue.pageSize,\n// pageIndex: defaultValue.pageIndex,\n// emptyTableHeight: 200,\n// onClickRow: undefined,\n// variant: 'regular',\n// isSelectable: false,\n// freezedColumn: 0,\n// freezeHeader: false,\n// hideRowIndex: false,\n// tableHeight: 400\n// };\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst TableResponsive = ({\n getCellProps = defaultPropGetter,\n pageIndex: tablePageIndex = defaultValue.pageIndex,\n pageSize: tablePageSize = defaultValue.pageSize,\n emptyTableHeight = 200,\n onClickRow = undefined,\n variant = 'regular',\n isSelectable = false,\n freezedColumn = 0,\n freezeHeader = false,\n hideRowIndex = false,\n tableHeight = 400,\n ...props\n}: // eslint-disable-next-line sonarjs/cognitive-complexity\nTableResponsiveInterface) => {\n // FIXME: pindahin logic di component ke custom hooks\n const {\n onPageChange,\n isHidePagination,\n isHideTable,\n isHideItemShownDropdown,\n isHideShowColumnDropdown,\n totalData,\n totalPage,\n isManualSort,\n itemShownLabel,\n itemShownLabelStyles,\n itemShownDropdown,\n showColumnDropdown,\n onSort,\n isRefetchData,\n loadingContainerStyles\n } = props;\n const charTotal = tableSizeMapper[variant].charTotal;\n const data = useMemo(() => props.data, [props.data]);\n const columns = useMemo(\n () => freezeColumn({ header: props.header, freezedColumn: freezedColumn }),\n [freezedColumn, props.header]\n );\n\n const sortBy = useMemo(() => {\n if (props.sortBy && isManualSort) return [props.sortBy];\n return [];\n }, [props.sortBy, isManualSort]);\n\n const parentRef = useRef<HTMLDivElement>();\n const tableRef = useRef<HTMLDivElement>();\n\n const [totalWidthOfContainer, setTotalWidhtOfContainer] = useState<number>(0);\n\n const totalWidthfColumn = useMemo(() => {\n let temp;\n if (props.header) {\n temp = props.header.reduce((e, c) => {\n return e + (c.width || 150);\n }, 0);\n\n if (props.rowActions) {\n temp += 100;\n }\n\n if (!hideRowIndex) {\n temp += 40;\n }\n\n if (!isSelectable) {\n temp += 48;\n }\n }\n return temp;\n }, [props.header, hideRowIndex, props.rowActions, isSelectable]);\n\n const [pageCountState, setPageCountState] = useState(\n !isHidePagination ? Math.ceil(totalData / tablePageSize) : undefined\n );\n const [countCellSpan, setCountCellSpan] = useState<number>(0);\n\n const selectedIdRows = () => {\n const temp: { [key: string]: boolean } = {};\n const rows = props.initialCheckedRows;\n if (rows) {\n rows.forEach((row) => {\n const index = data.findIndex((e: { id: string }) => e.id === row);\n temp[index.toString()] = true;\n });\n }\n return temp;\n };\n\n useEffect(() => {\n if (parentRef.current) {\n autoAnimate(parentRef.current);\n }\n }, [parentRef]);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n setTotalWidhtOfContainer(entry.contentRect.width);\n }\n });\n\n if (tableRef.current) {\n resizeObserver.observe(tableRef.current);\n }\n\n return () => {\n if (tableRef.current) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n resizeObserver.unobserve(tableRef.current);\n }\n };\n }, []);\n\n const {\n canNextPage,\n canPreviousPage,\n getTableProps,\n getTableBodyProps,\n gotoPage,\n headerGroups,\n nextPage,\n page,\n pageCount,\n prepareRow,\n previousPage,\n selectedFlatRows,\n setHiddenColumns,\n state: {\n pageIndex,\n pageSize,\n sortBy: [sortByState]\n }\n } = useTable(\n {\n columns,\n data,\n manualSortBy: isManualSort,\n manualPagination: !isHidePagination,\n pageCount: pageCountState,\n initialState: {\n sortBy,\n pageIndex: !isHidePagination ? tablePageIndex : defaultValue.pageIndex,\n pageSize: tablePageSize,\n hiddenColumns: [],\n selectedRowIds: props.initialCheckedRows ? selectedIdRows() : { '-1': true }\n }\n },\n useBlockLayout,\n useSortBy,\n usePagination,\n useRowSelect,\n useSticky,\n (hooks) =>\n tableHooks({\n hooks,\n isSelectable: isSelectable,\n hideRowIndex: hideRowIndex,\n rowIndexAlign: props.rowIndexAlign,\n variant: variant,\n actionLabel: props.actionLabel,\n rowActions: props.rowActions,\n freezedColumn: freezedColumn,\n checkedColor: props.checkedColor,\n totalMaxChecked: props.totalMaxChecked\n })\n );\n\n const indexRowAddition = useMemo(() => {\n if (isHidePagination) return 0;\n return pageSize * pageIndex;\n }, [isHidePagination, pageIndex, pageSize]);\n\n useDidMountEffect(() => {\n if (typeof props.onSelectedRow === 'function' && isSelectable) {\n props.onSelectedRow(selectedFlatRows);\n }\n }, [props.onSelectedRow, selectedFlatRows]);\n\n useEffect(() => {\n if (selectedFlatRows) {\n const temp = selectedFlatRows.map((item) => item.original.id);\n props.onCheckedRow?.(temp);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedFlatRows]);\n\n // FIXME: find better implementation for hidden columns\n useEffect(() => {\n if (props.hiddenColumns) setHiddenColumns(props.hiddenColumns || []);\n }, [props.hiddenColumns, setHiddenColumns]);\n\n useEffect(() => {\n if (typeof onPageChange === 'function') {\n onPageChange({ pageIndex, pageSize });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pageIndex, pageSize]);\n\n useEffect(() => {\n if (!isHidePagination) {\n setPageCountState(Math.ceil(totalData / pageSize));\n }\n }, [pageSize, totalData, isHidePagination]);\n\n useEffect(() => {\n if (typeof onSort === 'function') {\n onSort({ sortBy: sortByState });\n }\n }, [onSort, sortByState]);\n\n useEffect(() => {\n const filterHasArray: Array<number> = [];\n page.forEach((row) => {\n row.cells.forEach((item) => {\n if (Array.isArray(item.value)) {\n filterHasArray.push(item.value.length);\n }\n });\n });\n const countCellData = filterHasArray.length > 0 ? Math.max(...filterHasArray) : 0;\n setCountCellSpan(countCellData);\n }, [page]);\n\n const isOverflowAuto =\n (!!freezedColumn || !!freezeHeader) && totalWidthfColumn > totalWidthOfContainer;\n const isEmpty = data.length === 0;\n\n const listTabs = getChildrenOnDisplayName(props.children, 'ListTabs');\n const midTabs = getChildrenOnDisplayName(props.children, 'MidTabs');\n const itemContent = getChildrenOnDisplayName(props.children, 'ItemContent');\n\n return (\n <div className='flex flex-col w-full h-full'>\n {/* Layout Header */}\n <div\n ref={parentRef}\n className={twMerge(\n 'flex flex-col w-full bg-accordionTabs-container-background-default mb-3 rounded-lg p-2',\n props.headerContainerStyles\n )}\n >\n <div className='flex flex-row items-center w-full gap-x-1'>\n <div className='flex flex-1'>{listTabs}</div>\n {midTabs && <>{midTabs}</>}\n {!isHidePagination && pageCount > 0 && (\n <div>\n <BasePagination\n canPreviousPage={canPreviousPage}\n canNextPage={canNextPage}\n totalData={!isHidePagination ? totalData : data.length}\n pageIndex={pageIndex}\n onClickPage={{\n first: () => gotoPage(0),\n prev: previousPage,\n next: nextPage,\n last: () => gotoPage(pageCount - 1),\n gotoPage: (page) => gotoPage(page)\n }}\n totalPage={totalPage || pageCount}\n isShowPagination={true}\n {...props.pagination}\n />\n </div>\n )}\n\n {!isHideItemShownDropdown && !!itemShownDropdown && (\n <div className='flex flex-row items-center gap-x-2'>\n <BaseText\n label={itemShownLabel || 'Item Shown'}\n className={twMerge('font-normal text-dark-gumbo', itemShownLabelStyles)}\n />\n <BaseMenuDropdown {...itemShownDropdown} />\n </div>\n )}\n\n {!isHideShowColumnDropdown && !!showColumnDropdown && (\n <div>\n <BaseSwitchPicker {...showColumnDropdown} />\n </div>\n )}\n </div>\n\n {itemContent}\n </div>\n\n {/* Layout Content/Body */}\n <div\n className={`${\n isHideTable ? 'hidden' : 'flex'\n } flex-1 relative w-full h-full overflow-auto z-10`}\n >\n <TableResponsiveContainerStyled>\n <TableContainerStyled\n ref={tableRef}\n $isOverflowAuto={!isOverflowAuto}\n $isLoading={props.isLoading}\n $isEmpty={isEmpty}\n tableHeight={tableHeight}\n rowEvenColor={props.rowEvenColor}\n rowOddColor={props.rowOddColor}\n variant={variant}\n className={twMerge('w-full h-full', props.tableContainerStyles)}\n >\n <TableStyled\n {...getTableProps()}\n freezeHeader={freezeHeader}\n variant={variant}\n data-test-id={props.dataTestId}\n rowOddColor={props.rowOddColor}\n rowEvenColor={props.rowEvenColor}\n >\n {isRefetchData && (\n <div\n className={twMerge(\n 'absolute top-0 flex flex-1 items-center justify-center w-full h-full bg-light-whiteSolid z-20',\n loadingContainerStyles\n )}\n >\n <LoadingIndicator size='small' />\n </div>\n )}\n <TableHeader\n headerGroups={headerGroups}\n variant={variant}\n freezeHeader={freezeHeader}\n textSortedStyles={props.textSortedStyles}\n textUnsortedStyles={props.textUnsortedStyles}\n iconSortedStyles={props.iconSortedStyles}\n iconUnsortedStyles={props.iconUnsortedStyles}\n headerStyles={props.headerStyles}\n childHeaderStyles={props.childHeaderStyles}\n />\n <TableBodyStyled {...getTableBodyProps()}>\n {\n // eslint-disable-next-line sonarjs/cognitive-complexity\n page.map((row, i) => {\n prepareRow(row);\n const onClick = () => onClickRow && onClickRow(row.original);\n const { key, ...rowProps } = row.getRowProps();\n\n return (\n <tr\n {...rowProps}\n key={key || i}\n style={{\n display: 'flex',\n width: 'auto'\n }}\n >\n {row.cells.map((cell, indexCell) => {\n const { key, checkboxIsDisabled, ...restCellProps } = cell.getCellProps(\n getCellProps(cell)\n ) as CustomCellProps;\n return (\n <td\n {...restCellProps}\n key={key || cell.row.id}\n className={twMerge(\n classNames(\n !!cell.column.parent &&\n 'border border-t-0 border-b-0 border-solid border-dark-solitude',\n row.cells[indexCell + 1] &&\n row.cells[indexCell - 1] &&\n !!row.cells[indexCell + 1].column.parent &&\n !!row.cells[indexCell - 1].column.parent &&\n 'border-l-0',\n row.cells[indexCell + 1] &&\n row.cells[indexCell - 1] &&\n !!row.cells[indexCell + 1].column.parent &&\n !row.cells[indexCell - 1].column.parent &&\n 'border-r-0',\n row.cells[indexCell + 1] &&\n row.cells[indexCell - 1] &&\n !row.cells[indexCell + 1].column.parent &&\n !!row.cells[indexCell - 1].column.parent &&\n 'border-l-0',\n row.cells[indexCell + 1] &&\n row.cells[indexCell - 1] &&\n !!row.cells[indexCell + 1].column.parent &&\n !!row.cells[indexCell - 1].column.parent &&\n row.cells[indexCell - 1].column.parent.id !==\n cell.column.parent.id &&\n 'border-r-0',\n !row.cells[indexCell + 1] && 'border-l-0'\n )\n )}\n >\n {cell.column.type === 'custom' ? (\n <CellContainerContentStyled\n variant={variant}\n isBaseline\n onClick={cell.column.disableClick ? null : onClick}\n >\n {cell.render('Cell', {\n numberAddition: indexRowAddition,\n ...(cell.column.accessor === 'selectable'\n ? { checkboxIsDisabled }\n : {})\n })}\n </CellContainerContentStyled>\n ) : (\n <>\n {Array.isArray(cell.value) ? (\n cell.value.map((valueCell, index) => (\n <CellContainerContentStyled\n variant={variant}\n key={index}\n isBaseline\n countArrayValue={countCellSpan}\n isColSpan\n onClick={cell.column.disableClick ? null : onClick}\n >\n <TextStyled\n isEmpty={!valueCell}\n textAlign={\n cell.column.textAlign || defaultValue.textAlign\n }\n label={\n cell.column.isCanShowEmptyCell\n ? valueCell\n : valueCell || '-'\n }\n variant='small'\n ellipsis={\n cell.value ? cell.value.length >= charTotal : false\n }\n {...cell.column.textStyle}\n />\n </CellContainerContentStyled>\n ))\n ) : (\n <CellContainerContentStyled\n variant={variant}\n isBaseline\n onClick={cell.column.disableClick ? null : onClick}\n >\n <TextStyled\n isEmpty={!cell.value}\n textAlign={cell.column.textAlign || defaultValue.textAlign}\n label={\n cell.column.isCanShowEmptyCell\n ? cell.value\n : cell.value || '-'\n }\n variant='small'\n ellipsis={\n cell.value ? cell.value.length >= charTotal : false\n }\n {...cell.column.textStyle}\n />\n </CellContainerContentStyled>\n )}\n </>\n )}\n </td>\n );\n })}\n </tr>\n );\n })\n }\n </TableBodyStyled>\n </TableStyled>\n </TableContainerStyled>\n\n {isEmpty && !props.isLoading && (\n <TableLoadingAndEmptyContainerStyled>\n <EmptyData\n emptyTableHeight={emptyTableHeight}\n noRecordLabel={props.noRecordLabel}\n noRecordComponent={props.noRecordComponent}\n />\n </TableLoadingAndEmptyContainerStyled>\n )}\n\n {props.isLoading && (\n <TableLoadingAndEmptyContainerStyled>\n <LoadingIndicator\n size='small'\n color={props.loadingColor ? props.loadingColor : ColorBlue.yaleBlue}\n secondaryColor={\n props.loadingSecondaryColor ? props.loadingSecondaryColor : ColorBlue.lapisLazuli\n }\n />\n </TableLoadingAndEmptyContainerStyled>\n )}\n </TableResponsiveContainerStyled>\n </div>\n </div>\n );\n};\n\nconst ListTabs = ({ children }: TableResponsiveListTabsInterface) => {\n const arrListTabs = Children.toArray(children);\n return (\n <div className='flex flex-row w-full'>\n {Children.map(arrListTabs, (item, index) => {\n const tab = getChildrenOnDisplayName(item, 'ItemTabs');\n return (\n <div key={index} className='flex flex-row items-center'>\n {tab}\n </div>\n );\n })}\n </div>\n );\n};\nListTabs.displayName = 'ListTabs';\nTableResponsive.ListTabs = ListTabs;\n\nconst MidTabs = ({ children, containerStyles }: TableResponsiveMidTabsInterface) => {\n return (\n <>\n {children ? (\n <div className={twMerge('flex flex-row flex-1', containerStyles)}>{children}</div>\n ) : null}\n </>\n );\n};\nMidTabs.displayName = 'MidTabs';\nTableResponsive.MidTabs = MidTabs;\n\nconst ItemTabs = ({ children, isActive, ...props }: TableResponsiveItemTabsInterface) => {\n const [isMouseEnter, setIsMouseEnter] = useState<boolean>(false);\n const [isMouseDown, setIsMouseDown] = useState<boolean>(false);\n\n return (\n <>\n {children ? (\n children\n ) : (\n <div\n onMouseDown={() => setIsMouseDown(true)}\n onMouseUp={() => setIsMouseDown(false)}\n onMouseEnter={() => setIsMouseEnter(true)}\n onMouseLeave={() => setIsMouseEnter(false)}\n >\n <BaseButton\n {...props}\n leftIconStyles={twMerge(\n classNames(\n 'fill-accordionTabs-button-textAndIcon-default',\n isMouseEnter && 'fill-accordionTabs-button-textAndIcon-hover',\n (isMouseDown || isActive) && 'fill-accordionTabs-button-textAndIcon-active'\n ),\n props.leftIconStyles\n )}\n rightIcon={isActive ? 'chevronup' : props.rightIcon || 'chevrondown'}\n rightIconStyles={twMerge(\n classNames(\n 'fill-accordionTabs-button-textAndIcon-default',\n isMouseEnter && 'fill-accordionTabs-button-textAndIcon-hover',\n (isMouseDown || isActive) && 'fill-accordionTabs-button-textAndIcon-active'\n ),\n props.rightIconStyles\n )}\n className={twMerge(\n classNames(\n `\n bg-accordionTabs-button-background-default active:bg-accordionTabs-button-background-active hover:bg-accordionTabs-button-background-hover \n border-accordionTabs-button-border-default active:border-accordionTabs-button-border-active hover:border-accordionTabs-button-border-hover \n text-accordionTabs-button-textAndIcon-default active:text-accordionTabs-button-textAndIcon-active hover:text-accordionTabs-button-textAndIcon-hover\n `,\n isActive &&\n `\n bg-accordionTabs-button-background-active hover:bg-accordionTabs-button-background-active \n border-accordionTabs-button-border-active hover:border-accordionTabs-button-border-active \n text-accordionTabs-button-textAndIcon-active hover:text-accordionTabs-button-textAndIcon-active\n `\n ),\n props.className\n )}\n />\n </div>\n )}\n </>\n );\n};\nItemTabs.displayName = 'ItemTabs';\nTableResponsive.ItemTabs = ItemTabs;\n\nconst ItemContent = ({ children }: TableResponsiveItemContentInterface) => {\n return <>{children}</>;\n};\nItemContent.displayName = 'ItemContent';\nTableResponsive.ItemContent = ItemContent;\n\nTableResponsive.prototype = {\n pageSize: PropTypes.number,\n emptyTableHeight: PropTypes.number,\n onClickRow: PropTypes.func,\n variant: PropTypes.string,\n isSelectable: PropTypes.bool,\n freezedColumn: PropTypes.number,\n freezeHeader: PropTypes.bool,\n hideRowIndex: PropTypes.bool,\n tableHeight: PropTypes.number\n};\n\nexport default TableResponsive;\n"],"names":["defaultValue","pageIndex","pageSize","textAlign","TableResponsiveContainerStyled","styled","div","TableHeaderStyled","thead","headerGroupsLength","TableLoadingAndEmptyContainerStyled","TableHeader","props","splitByPlaceholder","id","split","useMemo","hg","headerGroups","slice","length","dataHg","i","headers","j","includes","index","parseInt","_a","getHeaderGroupProps","key","headerGroupProps","__rest","_jsx","jsx","children","_createElement","style","display","width","backgroundColor","ColorLight","whiteSmoke","minHeight","map","column","indexHeaderGroups","createElement","Object","assign","getHeaderProps","getIsExcludedSortable","getSortByToggleProps","className","twMerge","classNames","headerStyles","columns","CellContainerHeaderStyled","variant","Header","valueOf","render","_jsxs","_Fragment","Fragment","BaseText","label","toString","isSorted","textSortedStyles","textUnsortedStyles","justifyContent","alignItems","disableSortBy","SortIcon","isSortedDesc","iconSortedStyles","iconUnsortedStyles","childHeaderStyles","item","jsxs","minWidth","TableBodyStyled","tbody","fontFamilyMapper","TableStyled","table","freezeHeader","tableSizeMapper","tdMaxHeight","tdMinHeight","rowEvenColor","rowOddColor","TableContainerStyled","$isLoading","$isEmpty","css","$isOverflowAuto","TextStyled","Text","isEmpty","color","TableResponsive","getCellProps","defaultPropGetter","tablePageIndex","tablePageSize","emptyTableHeight","onClickRow","isSelectable","freezedColumn","hideRowIndex","tableHeight","onPageChange","isHidePagination","isHideTable","isHideItemShownDropdown","isHideShowColumnDropdown","totalData","totalPage","isManualSort","itemShownLabel","itemShownLabelStyles","itemShownDropdown","showColumnDropdown","onSort","isRefetchData","loadingContainerStyles","charTotal","data","freezeColumn","header","sortBy","parentRef","useRef","tableRef","totalWidthOfContainer","setTotalWidhtOfContainer","useState","totalWidthfColumn","temp","reduce","e","c","rowActions","pageCountState","setPageCountState","undefined","Math","ceil","countCellSpan","setCountCellSpan","useEffect","current","autoAnimate","resizeObserver","ResizeObserver","entries","entry","contentRect","observe","unobserve","canNextPage","canPreviousPage","getTableProps","getTableBodyProps","gotoPage","nextPage","page","pageCount","prepareRow","previousPage","selectedFlatRows","setHiddenColumns","state","sortByState","useTable","manualSortBy","manualPagination","initialState","hiddenColumns","selectedRowIds","initialCheckedRows","rows","forEach","row","findIndex","selectedIdRows","useBlockLayout","useSortBy","usePagination","reactTableExports","useRowSelect","useSticky","hooks","tableHooks","rowIndexAlign","actionLabel","checkedColor","totalMaxChecked","indexRowAddition","useDidMountEffect","onSelectedRow","original","onCheckedRow","call","filterHasArray","cells","Array","isArray","value","push","countCellData","max","isOverflowAuto","listTabs","getChildrenOnDisplayName","midTabs","itemContent","ref","headerContainerStyles","BasePagination","onClickPage","first","prev","next","last","isShowPagination","pagination","BaseMenuDropdown","BaseSwitchPicker","isLoading","tableContainerStyles","dataTestId","LoadingIndicator","size","onClick","getRowProps","rowProps","cell","indexCell","checkboxIsDisabled","restCellProps","parent","type","CellContainerContentStyled","isBaseline","disableClick","numberAddition","accessor","valueCell","countArrayValue","isColSpan","isCanShowEmptyCell","ellipsis","textStyle","EmptyData","noRecordLabel","noRecordComponent","loadingColor","ColorBlue","yaleBlue","secondaryColor","loadingSecondaryColor","lapisLazuli","ListTabs","arrListTabs","Children","toArray","tab","displayName","MidTabs","containerStyles","ItemTabs","isActive","isMouseEnter","setIsMouseEnter","isMouseDown","setIsMouseDown","onMouseDown","onMouseUp","onMouseEnter","onMouseLeave","BaseButton","leftIconStyles","rightIcon","rightIconStyles","ItemContent","prototype","PropTypes.number","propTypesExports","number","PropTypes.func","func","PropTypes.string","string","PropTypes.bool","bool"],"mappings":"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"}
|