uangcermat-web-toolkit-v2 0.2.20 → 0.2.22
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/CheckPicker/BaseCheckPicker.d.ts +1 -1
- package/build/src/components/CheckPicker/BaseCheckPicker.js +1 -1
- package/build/src/components/CheckPicker/BaseCheckPicker.js.map +1 -1
- package/build/src/components/CheckPicker/BaseCheckPicker.type.d.ts +1 -0
- package/build/src/components/Table/TableResponsive.js +1 -1
- package/build/src/components/Table/TableResponsive.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { BaseCheckPickerInterface } from './BaseCheckPicker.type';
|
|
2
|
-
declare const BaseCheckPicker: ({ value, valueStyles, label, labelStyles, placeholder, placeholderStyles, containerStyles, activeContainerStyles, iconStyles, itemsContainerStyles, itemContainerStyles, oddBgColor, evenBgColor, isDisabled, position, isAutoFlip, onSelectItem, onClean, isCleanable, isError, errorMessage, errorMessageStyles, helperMessage, helperMessageStyles, isSearchable, searchContainerStyles, activeSearchStyles, searchPlaceholder, searchStyles, iconSearchStyles, isShowFooterButton, footerButtonContainerStyles, footerButtonLabel, onClickFooterButton, noResultsLabel, noResultsLabelStyles, badgeContainerStyles, badgeLabelStyles, variant, data, isRequired, labelRequired, labelRequiredStyles, containerRequiredStyles, onSearch, selectedAllText, selectedAllTextStyles, activeCheckboxColor, itemTextStyles, listContainerStyles, isClearSearchOnClose, selectedItemTextStyles, activeItemTextStyles, maxSelected }: BaseCheckPickerInterface) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
declare const BaseCheckPicker: ({ value, valueStyles, label, labelStyles, placeholder, placeholderStyles, containerStyles, activeContainerStyles, iconStyles, itemsContainerStyles, itemContainerStyles, oddBgColor, evenBgColor, isDisabled, position, isAutoFlip, onSelectItem, onClean, isCleanable, isError, errorMessage, errorMessageStyles, helperMessage, helperMessageStyles, isSearchable, searchContainerStyles, activeSearchStyles, searchPlaceholder, searchStyles, iconSearchStyles, isShowFooterButton, footerButtonContainerStyles, footerButtonLabel, onClickFooterButton, noResultsLabel, noResultsLabelStyles, badgeContainerStyles, badgeLabelStyles, variant, data, isRequired, labelRequired, labelRequiredStyles, containerRequiredStyles, onSearch, selectedAllText, isShowSelectedAllText, selectedAllTextStyles, activeCheckboxColor, itemTextStyles, listContainerStyles, isClearSearchOnClose, selectedItemTextStyles, activeItemTextStyles, maxSelected }: BaseCheckPickerInterface) => import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default BaseCheckPicker;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),t=require("../../../node_modules/@headlessui-float/react/dist/headlessui-float.mjs.js"),l=require("../../../node_modules/classnames/index.js"),s=require("react"),r=require("../../../node_modules/react-window/dist/index.esm.js"),a=require("../../utils/extractClasses.js");require("../Badge/Badge.js");var n=require("../Text/BaseText.js");require("../Text/Text.js");var i=require("../Badge/BaseBadgeRequired.js");require("../Button/ButtonHyperlink.js");var o=require("../Button/BaseButton.js");require("../Button/BaseButtonIcon.js"),require("../Button/Button.js"),require("../Button/ButtonConfirmation.js"),require("../Button/ButtonLink.js"),require("../Button/ButtonRipple.js"),require("../../../_virtual/_tslib.js"),require("../../styles/Colors.js");var d=require("../Checkbox/Checkbox.js"),c=require("../Icon/Icon.js"),u=require("../../../node_modules/@headlessui/react/dist/components/listbox/listbox.js"),x=require("../../../node_modules/tailwind-merge/dist/lib/tw-merge.mjs.js"),b=require("../../../node_modules/@headlessui/react/dist/components/transition/transition.js");module.exports=({value:f,valueStyles:g,label:m,labelStyles:
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),t=require("../../../node_modules/@headlessui-float/react/dist/headlessui-float.mjs.js"),l=require("../../../node_modules/classnames/index.js"),s=require("react"),r=require("../../../node_modules/react-window/dist/index.esm.js"),a=require("../../utils/extractClasses.js");require("../Badge/Badge.js");var n=require("../Text/BaseText.js");require("../Text/Text.js");var i=require("../Badge/BaseBadgeRequired.js");require("../Button/ButtonHyperlink.js");var o=require("../Button/BaseButton.js");require("../Button/BaseButtonIcon.js"),require("../Button/Button.js"),require("../Button/ButtonConfirmation.js"),require("../Button/ButtonLink.js"),require("../Button/ButtonRipple.js"),require("../../../_virtual/_tslib.js"),require("../../styles/Colors.js");var d=require("../Checkbox/Checkbox.js"),c=require("../Icon/Icon.js"),u=require("../../../node_modules/@headlessui/react/dist/components/listbox/listbox.js"),x=require("../../../node_modules/tailwind-merge/dist/lib/tw-merge.mjs.js"),b=require("../../../node_modules/@headlessui/react/dist/components/transition/transition.js");module.exports=({value:f,valueStyles:g,label:m,labelStyles:h,placeholder:j,placeholderStyles:p,containerStyles:w,activeContainerStyles:v,iconStyles:y,itemsContainerStyles:S,itemContainerStyles:k,oddBgColor:C,evenBgColor:N,isDisabled:B=!1,position:q="bottom-start",isAutoFlip:M,onSelectItem:O,onClean:R,isCleanable:L,isError:T,errorMessage:F,errorMessageStyles:G,helperMessage:E,helperMessageStyles:_,isSearchable:D,searchContainerStyles:I,activeSearchStyles:A,searchPlaceholder:z,searchStyles:P,iconSearchStyles:$,isShowFooterButton:H,footerButtonContainerStyles:K,footerButtonLabel:V,onClickFooterButton:W,noResultsLabel:J,noResultsLabelStyles:Q,badgeContainerStyles:U,badgeLabelStyles:X,variant:Y="box",data:Z,isRequired:ee,labelRequired:te,labelRequiredStyles:le,containerRequiredStyles:se,onSearch:re,selectedAllText:ae,isShowSelectedAllText:ne=!0,selectedAllTextStyles:ie,activeCheckboxColor:oe,itemTextStyles:de,listContainerStyles:ce,isClearSearchOnClose:ue,selectedItemTextStyles:xe,activeItemTextStyles:be,maxSelected:fe})=>{const ge=s.useRef(null),me=s.useRef(null),he=s.useRef({}),[je,pe]=s.useState(""),[we,ve]=s.useState(0),[ye,Se]=s.useState(!1),ke=e=>he.current[e]||32,Ce=s.useCallback(((e,t)=>{he.current=Object.assign(Object.assign({},he.current),{[e]:t}),me.current&&me.current.resetAfterIndex(e)}),[]),Ne=s.useMemo((()=>{const e=Z;return""!==je&&je?e.filter((e=>e.label.toLowerCase().includes(je.toLowerCase()))):e}),[je,Z]),Be=s.useMemo((()=>{let e=0;return Ne.length>0&&(e=34*Ne.length),e}),[Ne.length,je]);s.useEffect((()=>{const e=null==f?void 0:f.filter((e=>e));(null==e?void 0:e.length)>=fe?Se(!0):Se(!1)}),[f,fe]);const qe=s.useCallback(((e,t)=>{if(ye&&!t)return;let l=f.slice();l=t?l.filter((t=>t!==e)):l.concat(e),null==O||O(l.filter((e=>""!==e))),l.length===fe?Se(!0):Se(!1)}),[ye,f,O,fe]),Me=s.useCallback((()=>{null==O||O([]),pe(""),Se(!1),null==R||R()}),[O,R]),Oe=({data:t,index:r,style:i,windowWidth:o})=>{const c=s.useRef(null);return s.useEffect((()=>{c.current&&Ce(r,c.current.getBoundingClientRect().height)}),[c,o]),e.jsx("div",Object.assign({className:x.twMerge(l.default("w-full flex items-center !min-h-[32px]",k,(!!a(k,"p-")||!!a(k,"px-")||!!a(k,"py-"))&&"p-0")),style:Object.assign(Object.assign({},i),{backgroundColor:r%2==0?C||"var(--dropdownList-background-odd)":N||"var(--dropdownList-background-even)"})},{children:e.jsx("div",Object.assign({ref:c,className:"w-full"},{children:e.jsx(u.ListboxOption,Object.assign({className:x.twMerge(l.default("relative cursor-default select-none p-2 bg-transparent list-none",a(k,"p-"),a(k,"px-"),a(k,"py-"))),value:t[r]},{children:({active:s})=>{const a=f.some((e=>e===t[r].value));return e.jsxs("div",Object.assign({className:x.twMerge("flex flex-row items-center gap-x-2 cursor-pointer",ye&&!a?"cursor-not-allowed":""),onClick:e=>{e.preventDefault(),qe(t[r].value,a)}},{children:[e.jsx(d,{checked:a,variant:"small",color:oe||void 0,isDisabled:ye&&!a}),e.jsx("div",Object.assign({className:"flex flex-1"},{children:e.jsx(n.default,{label:t[r].label,className:x.twMerge(l.default("text-xs text-dropdownList-text-default leading-[14px]",`${s&&!ye?x.twMerge("font-semibold text-dropdownList-text-hover",be):"font-normal"}`),a&&xe,de)})}))]}))}}),r)}),r)}))};s.useEffect((()=>{re&&re(je)}),[je]),s.useEffect((()=>{const e=new ResizeObserver((e=>{for(const t of e)ve(t.contentRect.width)}));return ge.current&&e.observe(ge.current),()=>{ge.current&&e.unobserve(ge.current)}}),[]);const Re=!a(w,"w-")||"w-full"===a(w,"w-")||!a(S,"w-")||"w-full"===a(S,"w-");return e.jsx(u.Listbox,Object.assign({multiple:!0},{children:e.jsxs("div",Object.assign({ref:ge,className:"flex flex-col gap-y-1"},{children:[e.jsxs("div",Object.assign({className:"flex flex-row items-end gap-x-1"},{children:[!!m&&e.jsx(n.default,{label:m,className:x.twMerge("font-normal text-dark-gumbo text-[10px]",h)}),ee&&e.jsx(i,{labelRequired:te,labelRequiredStyles:le,containerRequiredStyles:se})]})),e.jsx("div",Object.assign({className:"relative inline-block"},{children:e.jsxs(t.Float,Object.assign({placement:q,flip:M},{children:[e.jsx(u.ListboxButton,Object.assign({className:x.twMerge(l.default("p-0 bg-transparent",B&&"cursor-not-allowed"),se?a(w,"w-"):void 0),onClick:e=>{B&&e.preventDefault()}},{children:({open:t})=>e.jsxs("div",Object.assign({className:x.twMerge(l.default(x.twMerge("flex flex-row items-center p-2 rounded gap-x-1 border border-solid border-dark-gumbo bg-light-whiteSolid",w),"line"===Y&&"border-b border-t-0 border-x-0 rounded-none",t&&v?v:t?"border-fields-border-focus":void 0,B&&"border-dark-bermudaGray bg-light-whiteSmoke",T&&"border-red-fireEngineRed"))},{children:[e.jsxs("div",Object.assign({className:"flex flex-1"},{children:[!!j&&""===f[0]&&e.jsx("div",Object.assign({className:"flex flex-1 w-full"},{children:e.jsx(n.default,{label:j,variant:"small",className:x.twMerge(l.default("font-normal text-dark-bermudaGray text-xs text-left line-clamp-1 leading-[14px]"),p)})})),""===f[0]?null:e.jsx("div",Object.assign({className:"flex flex-1 w-[calc(100%-52px)]"},{children:f.length===Z.length&&ne?e.jsx(n.default,{label:ae||"All",variant:"small",className:x.twMerge(l.default("font-normal text-dark-blackCoral text-xs text-left line-clamp-1 w-full leading-[14px]"),ie)}):e.jsx(n.default,{label:Z.filter((e=>f.includes(e.value))).map((e=>e.label)).join(", "),variant:"small",className:x.twMerge(l.default("font-normal text-dark-blackCoral text-xs text-left line-clamp-1 w-full leading-[14px]"),g)})}))]})),""!==f[0]&&e.jsx("div",Object.assign({className:x.twMerge("flex flex-row justify-center w-3 h-3 bg-fields-badge-background-default text-fields-badge-text-default rounded-full pt-[1px] pl-[0.5px]",U)},{children:e.jsx(n.default,{label:f.length.toString(),className:x.twMerge(l.default("font-normal text-[8px] leading-3"),X)})})),L&&""!==f[0]&&e.jsx("div",Object.assign({className:"cursor-pointer h-3 w-3 flex items-center justify-center -mr-1",onClick:e=>{e.preventDefault(),Me()}},{children:e.jsx(c,{name:"close",className:"fill-dark-bermudaGray w-3 h-3"})})),e.jsx(c,{name:t?"chevronup":"chevrondown",className:x.twMerge(l.default("fill-dark-bermudaGray w-3 h-3",`${B&&"fill-dark-bermudaGray"}`),y)})]}))})),e.jsx(b.Transition,Object.assign({as:s.Fragment,leave:"transition ease-in duration-100",leaveFrom:"opacity-100",leaveTo:"opacity-0"},{children:e.jsx(u.ListboxOptions,Object.assign({className:x.twMerge(l.default("rounded p-0 min-w-full flex flex-col overflow-hidden border border-solid border-dark-silver z-50",w?a(w,"w-"):void 0),S),style:{width:Re?we:void 0,height:"auto",paddingTop:"1px",paddingBottom:"1px"}},{children:({open:t})=>(s.useEffect((()=>{!t&&ue&&pe("")}),[t]),e.jsxs(e.Fragment,{children:[D?e.jsx("div",Object.assign({className:"p-2 bg-light-whiteSolid w-full"},{children:e.jsxs("div",Object.assign({className:x.twMerge(l.default(x.twMerge("flex flex-row items-center p-2 border border-solid border-dark-gumbo rounded gap-x-1",I),A||"border-fields-border-focus"))},{children:[e.jsx("input",{placeholder:z||"Search",className:x.twMerge("flex flex-1 line-clamp-1 placeholder:text-dark-bermudaGray p-0 bg-transparent border-none outline-none font-poppins text-dark-blackCoral text-xs",P),onChange:e=>{pe(e.target.value)},onKeyDown:e=>e.stopPropagation(),value:je}),e.jsx(c,{name:"search",className:x.twMerge("fill-dark-bermudaGray w-3 h-3",$)})]}))})):null,e.jsx("div",Object.assign({className:x.twMerge(l.default("p-0 overflow-hidden",a(S,"w-")?a(S,"w-"):a(w,"w-"))),style:{width:Re?we:void 0}},{children:Ne.length>0?e.jsx(r.VariableSizeList,Object.assign({ref:me,height:Be>320?320:Be,itemCount:Ne.length,itemSize:ke,width:"100%",className:x.twMerge("max-h-80 scrollbar scrollbar-thumb-dark-blackCoral scrollbar-thumb-rounded-full scrollbar-w-2 scrollbar-h-2 scrollbar-track-dark-solitude",ce),itemData:Ne,style:{height:"auto",paddingTop:"1px",paddingBottom:"1px"}},{children:Oe})):e.jsx("div",Object.assign({className:"py-2 px-4 w-full"},{children:e.jsx(n.default,{label:J||"No Results Found",className:x.twMerge("text-dark-bermudaGray font-normal text-sm",Q)})}))})),H&&e.jsx(o.default,{variant:"tertiary",onClick:()=>{null==W||W()},label:V||"Footer Button",className:x.twMerge("",K)})]}))}))}))]}))})),E&&!T&&e.jsx(n.default,{label:E,className:x.twMerge("font-normal text-dark-bermudaGray text-[10px] inline-block",_)}),T&&!!F&&e.jsx(n.default,{label:F,className:x.twMerge("font-normal text-red-fireEngineRed text-[10px] inline-block",G)})]}))}))};
|
|
2
2
|
//# sourceMappingURL=BaseCheckPicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseCheckPicker.js","sources":["../../../../src/components/CheckPicker/BaseCheckPicker.tsx"],"sourcesContent":["import {\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n Transition\n} from '@headlessui/react';\nimport { Float } from '@headlessui-float/react';\nimport classNames from 'classnames';\nimport { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { ListChildComponentProps, VariableSizeList as List } from 'react-window';\nimport { twMerge } from 'tailwind-merge';\n\nimport extractClasses from '../../utils/extractClasses';\nimport { BaseBadgeRequired } from '../Badge';\nimport { BaseButton } from '../Button';\nimport { Checkbox } from '../Checkbox';\nimport { Icon } from '../Icon';\nimport { BaseText } from '../Text';\nimport { BaseCheckPickerDataInterface, BaseCheckPickerInterface } from './BaseCheckPicker.type';\n\ninterface RowProps extends ListChildComponentProps {\n setSize: (index: number, size: number) => void;\n windowWidth: number;\n}\nconst BaseCheckPicker = ({\n value,\n valueStyles,\n label,\n labelStyles,\n placeholder,\n placeholderStyles,\n containerStyles,\n activeContainerStyles,\n iconStyles,\n itemsContainerStyles,\n itemContainerStyles,\n oddBgColor,\n evenBgColor,\n isDisabled = false,\n position = 'bottom-start',\n isAutoFlip,\n onSelectItem,\n onClean,\n isCleanable,\n isError,\n errorMessage,\n errorMessageStyles,\n helperMessage,\n helperMessageStyles,\n isSearchable,\n searchContainerStyles,\n activeSearchStyles,\n searchPlaceholder,\n searchStyles,\n iconSearchStyles,\n isShowFooterButton,\n footerButtonContainerStyles,\n footerButtonLabel,\n onClickFooterButton,\n noResultsLabel,\n noResultsLabelStyles,\n badgeContainerStyles,\n badgeLabelStyles,\n variant = 'box',\n data,\n isRequired,\n labelRequired,\n labelRequiredStyles,\n containerRequiredStyles,\n onSearch,\n selectedAllText,\n selectedAllTextStyles,\n activeCheckboxColor,\n itemTextStyles,\n listContainerStyles,\n isClearSearchOnClose,\n selectedItemTextStyles,\n activeItemTextStyles,\n maxSelected\n}: BaseCheckPickerInterface) => {\n const rowHeight = 34;\n const dafaultScrollbarStyles =\n 'scrollbar scrollbar-thumb-dark-blackCoral scrollbar-thumb-rounded-full scrollbar-w-2 scrollbar-h-2 scrollbar-track-dark-solitude';\n\n const containerRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<List>(null);\n const sizeMap = useRef<{ [key: number]: number }>({});\n\n const [search, setSearch] = useState<string>('');\n const [buttonWidth, setButtonWidth] = useState<number>(0);\n const [isDisableSelected, setIsDisableSelected] = useState<boolean>(false);\n\n const getSize = (index: number) => sizeMap.current[index] || 32;\n const setSize = useCallback((index: number, size: number) => {\n sizeMap.current = { ...sizeMap.current, [index]: size };\n if (listRef.current) {\n listRef.current.resetAfterIndex(index);\n }\n }, []);\n\n const dataPicker: Array<BaseCheckPickerDataInterface> = useMemo(() => {\n const temp: Array<BaseCheckPickerDataInterface> = data;\n return search === '' || !search\n ? temp\n : temp.filter((item) => item.label.toLowerCase().includes(search.toLowerCase()));\n }, [search, data]);\n\n const dropdownListHeight = useMemo(() => {\n let temp = 0;\n if (dataPicker.length > 0) {\n temp = rowHeight * dataPicker.length;\n }\n return temp;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataPicker.length, search]);\n\n useEffect(() => {\n const filteredValue = value?.filter((item) => item);\n if (filteredValue?.length >= maxSelected) {\n setIsDisableSelected(true);\n } else {\n setIsDisableSelected(false);\n }\n }, [value, maxSelected]);\n\n // eslint-disable-next-line sonarjs/cognitive-complexity\n const RenderRow: React.FC = ({ data, index, style, windowWidth }: RowProps) => {\n const rowRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (rowRef.current) {\n setSize(index, rowRef.current.getBoundingClientRect().height);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [rowRef, windowWidth]);\n\n return (\n <div\n className={twMerge(\n classNames(\n 'w-full flex items-center !min-h-[32px]',\n itemContainerStyles,\n (!!extractClasses(itemContainerStyles, 'p-') ||\n !!extractClasses(itemContainerStyles, 'px-') ||\n !!extractClasses(itemContainerStyles, 'py-')) &&\n 'p-0'\n )\n )}\n style={{\n ...style,\n backgroundColor:\n index % 2 === 0\n ? oddBgColor || 'var(--dropdownList-background-odd)'\n : evenBgColor || 'var(--dropdownList-background-even)'\n }}\n >\n <div ref={rowRef} key={index} className='w-full'>\n <ListboxOption\n key={index}\n className={twMerge(\n classNames(\n 'relative cursor-default select-none p-2 bg-transparent list-none',\n extractClasses(itemContainerStyles, 'p-'),\n extractClasses(itemContainerStyles, 'px-'),\n extractClasses(itemContainerStyles, 'py-')\n )\n )}\n value={data[index]}\n >\n {({ active }) => {\n const selected = value.some((i) => i === data[index].value);\n return (\n <div\n className={twMerge(\n 'flex flex-row items-center gap-x-2 cursor-pointer',\n isDisableSelected && !selected ? 'cursor-not-allowed' : ''\n )}\n onClick={(e) => {\n e.preventDefault();\n\n if (isDisableSelected && !selected) return;\n\n let temp = value.slice();\n if (selected) {\n temp = temp.filter((i) => i !== data[index].value);\n } else {\n temp = temp.concat(data[index].value);\n }\n\n onSelectItem?.(temp.filter((i) => i !== ''));\n\n if (temp.length === maxSelected) {\n setIsDisableSelected(true);\n } else {\n setIsDisableSelected(false);\n }\n }}\n >\n <Checkbox\n checked={selected}\n variant='small'\n color={activeCheckboxColor || undefined}\n isDisabled={isDisableSelected && !selected}\n />\n\n <div className='flex flex-1'>\n <BaseText\n label={data[index].label}\n className={twMerge(\n classNames(\n 'text-xs text-dropdownList-text-default leading-[14px]',\n `${\n active && !isDisableSelected\n ? twMerge(\n 'font-semibold text-dropdownList-text-hover',\n activeItemTextStyles\n )\n : 'font-normal'\n }`\n ),\n selected && selectedItemTextStyles,\n itemTextStyles\n )}\n />\n </div>\n </div>\n );\n }}\n </ListboxOption>\n </div>\n </div>\n );\n };\n\n useEffect(() => {\n if (onSearch) onSearch(search);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [search]);\n\n useEffect(() => {\n if (onSearch) onSearch(search);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [search]);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n setButtonWidth(entry.contentRect.width);\n }\n });\n\n if (containerRef.current) {\n resizeObserver.observe(containerRef.current);\n }\n\n return () => {\n if (containerRef.current) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n resizeObserver.unobserve(containerRef.current);\n }\n };\n }, []);\n\n const isWidthFull =\n !extractClasses(containerStyles, 'w-') ||\n extractClasses(containerStyles, 'w-') === 'w-full' ||\n !extractClasses(itemsContainerStyles, 'w-') ||\n extractClasses(itemsContainerStyles, 'w-') === 'w-full';\n\n return (\n <Listbox multiple>\n <div ref={containerRef} className='flex flex-col gap-y-1'>\n <div className='flex flex-row items-end gap-x-1'>\n {!!label && (\n <BaseText\n label={label}\n className={twMerge('font-normal text-dark-gumbo text-[10px]', labelStyles)}\n />\n )}\n {isRequired && (\n <BaseBadgeRequired\n labelRequired={labelRequired}\n labelRequiredStyles={labelRequiredStyles}\n containerRequiredStyles={containerRequiredStyles}\n />\n )}\n </div>\n <div className='relative inline-block'>\n <Float placement={position} flip={isAutoFlip}>\n <ListboxButton\n className={twMerge(\n classNames('p-0 bg-transparent', isDisabled && 'cursor-not-allowed'),\n containerRequiredStyles ? extractClasses(containerStyles, 'w-') : undefined\n )}\n onClick={(e) => {\n if (isDisabled) {\n e.preventDefault();\n }\n }}\n >\n {({ open }) => (\n <div\n className={twMerge(\n classNames(\n twMerge(\n 'flex flex-row items-center p-2 rounded gap-x-1 border border-solid border-dark-gumbo bg-light-whiteSolid',\n containerStyles\n ),\n variant === 'line' && 'border-b border-t-0 border-x-0 rounded-none',\n open && activeContainerStyles\n ? activeContainerStyles\n : open\n ? 'border-fields-border-focus'\n : undefined,\n isDisabled && 'border-dark-bermudaGray bg-light-whiteSmoke',\n isError && 'border-red-fireEngineRed'\n )\n )}\n >\n <div className='flex flex-1'>\n {!!placeholder && value[0] === '' && (\n <div className='flex flex-1 w-full'>\n <BaseText\n label={placeholder}\n variant='small'\n className={twMerge(\n classNames(\n 'font-normal text-dark-bermudaGray text-xs text-left line-clamp-1 leading-[14px]'\n ),\n placeholderStyles\n )}\n />\n </div>\n )}\n\n {value[0] !== '' && (\n <div className='flex flex-1 w-[calc(100%-52px)]'>\n {value.length === data.length ? (\n <BaseText\n label={selectedAllText || 'All'}\n variant='small'\n className={twMerge(\n classNames(\n 'font-normal text-dark-blackCoral text-xs text-left line-clamp-1 w-full leading-[14px]'\n ),\n selectedAllTextStyles\n )}\n />\n ) : (\n <BaseText\n label={data\n .filter((i: BaseCheckPickerDataInterface) => value.includes(i.value))\n .map((i) => i.label)\n .join(', ')}\n variant='small'\n className={twMerge(\n classNames(\n 'font-normal text-dark-blackCoral text-xs text-left line-clamp-1 w-full leading-[14px]'\n ),\n valueStyles\n )}\n />\n )}\n </div>\n )}\n </div>\n\n {value[0] !== '' && (\n <div\n className={twMerge(\n 'flex flex-row justify-center w-3 h-3 bg-fields-badge-background-default text-fields-badge-text-default rounded-full pt-[1px] pl-[0.5px]',\n badgeContainerStyles\n )}\n >\n <BaseText\n label={value.length.toString()}\n className={twMerge(\n classNames('font-normal text-[8px] leading-3'),\n badgeLabelStyles\n )}\n />\n </div>\n )}\n\n {isCleanable && value[0] !== '' && (\n <div\n className='cursor-pointer h-3 w-3 flex items-center justify-center -mr-1'\n onClick={(e) => {\n e.preventDefault();\n\n onSelectItem?.([]);\n setSearch('');\n setIsDisableSelected(false);\n onClean?.();\n }}\n >\n <Icon name='close' className='fill-dark-bermudaGray w-3 h-3' />\n </div>\n )}\n <Icon\n name={open ? 'chevronup' : 'chevrondown'}\n className={twMerge(\n classNames(\n 'fill-dark-bermudaGray w-3 h-3',\n `${isDisabled && 'fill-dark-bermudaGray'}`\n ),\n iconStyles\n )}\n />\n </div>\n )}\n </ListboxButton>\n <Transition\n as={Fragment}\n leave='transition ease-in duration-100'\n leaveFrom='opacity-100'\n leaveTo='opacity-0'\n >\n <ListboxOptions\n className={twMerge(\n classNames(\n 'rounded p-0 min-w-full flex flex-col overflow-hidden border border-solid border-dark-silver z-50',\n containerStyles ? extractClasses(containerStyles, 'w-') : undefined\n ),\n itemsContainerStyles\n )}\n style={{\n width: isWidthFull ? buttonWidth : undefined,\n height: 'auto',\n paddingTop: '1px',\n paddingBottom: '1px'\n }}\n >\n {/* eslint-disable-next-line sonarjs/cognitive-complexity */}\n {({ open }) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n if (!open && isClearSearchOnClose) setSearch('');\n }, [open]);\n\n return (\n <>\n {isSearchable && (\n <div className='p-2 bg-light-whiteSolid w-full'>\n <div\n className={twMerge(\n classNames(\n twMerge(\n 'flex flex-row items-center p-2 border border-solid border-dark-gumbo rounded gap-x-1',\n searchContainerStyles\n ),\n open && activeSearchStyles\n ? activeSearchStyles\n : open\n ? 'border-fields-border-focus'\n : undefined\n )\n )}\n >\n <input\n placeholder={searchPlaceholder || 'Search'}\n className={twMerge(\n 'flex flex-1 line-clamp-1 placeholder:text-dark-bermudaGray p-0 bg-transparent border-none outline-none font-poppins text-dark-blackCoral text-xs',\n searchStyles\n )}\n onChange={(e) => {\n setSearch(e.target.value);\n }}\n onKeyDown={(e) => e.stopPropagation()}\n value={search}\n />\n <Icon\n name='search'\n className={twMerge('fill-dark-bermudaGray w-3 h-3', iconSearchStyles)}\n />\n </div>\n </div>\n )}\n <div\n className={twMerge(\n classNames(\n 'p-0 overflow-hidden',\n extractClasses(itemsContainerStyles, 'w-')\n ? extractClasses(itemsContainerStyles, 'w-')\n : extractClasses(containerStyles, 'w-')\n )\n )}\n style={{ width: isWidthFull ? buttonWidth : undefined }}\n >\n {dataPicker.length > 0 ? (\n <List\n ref={listRef}\n height={dropdownListHeight > 320 ? 320 : dropdownListHeight}\n itemCount={dataPicker.length}\n itemSize={getSize}\n width={'100%'}\n className={twMerge(\n `max-h-80 ${dafaultScrollbarStyles}`,\n listContainerStyles\n )}\n itemData={dataPicker}\n style={{\n height: 'auto',\n paddingTop: '1px',\n paddingBottom: '1px'\n }}\n >\n {RenderRow}\n </List>\n ) : (\n <div className='py-2 px-4 w-full'>\n <BaseText\n label={noResultsLabel || 'No Results Found'}\n className={twMerge(\n 'text-dark-bermudaGray font-normal text-sm',\n noResultsLabelStyles\n )}\n />\n </div>\n )}\n </div>\n {isShowFooterButton && (\n <BaseButton\n variant='tertiary'\n onClick={() => {\n onClickFooterButton?.();\n }}\n label={footerButtonLabel || 'Footer Button'}\n className={twMerge('', footerButtonContainerStyles)}\n />\n )}\n </>\n );\n }}\n </ListboxOptions>\n </Transition>\n </Float>\n </div>\n\n {helperMessage && !isError && (\n <BaseText\n label={helperMessage}\n className={twMerge(\n 'font-normal text-dark-bermudaGray text-[10px] inline-block',\n helperMessageStyles\n )}\n />\n )}\n\n {isError && !!errorMessage && (\n <BaseText\n label={errorMessage}\n className={twMerge(\n 'font-normal text-red-fireEngineRed text-[10px] inline-block',\n errorMessageStyles\n )}\n />\n )}\n </div>\n </Listbox>\n );\n};\n\nexport default BaseCheckPicker;\n"],"names":["value","valueStyles","label","labelStyles","placeholder","placeholderStyles","containerStyles","activeContainerStyles","iconStyles","itemsContainerStyles","itemContainerStyles","oddBgColor","evenBgColor","isDisabled","position","isAutoFlip","onSelectItem","onClean","isCleanable","isError","errorMessage","errorMessageStyles","helperMessage","helperMessageStyles","isSearchable","searchContainerStyles","activeSearchStyles","searchPlaceholder","searchStyles","iconSearchStyles","isShowFooterButton","footerButtonContainerStyles","footerButtonLabel","onClickFooterButton","noResultsLabel","noResultsLabelStyles","badgeContainerStyles","badgeLabelStyles","variant","data","isRequired","labelRequired","labelRequiredStyles","containerRequiredStyles","onSearch","selectedAllText","selectedAllTextStyles","activeCheckboxColor","itemTextStyles","listContainerStyles","isClearSearchOnClose","selectedItemTextStyles","activeItemTextStyles","maxSelected","containerRef","useRef","listRef","sizeMap","search","setSearch","useState","buttonWidth","setButtonWidth","isDisableSelected","setIsDisableSelected","getSize","index","current","setSize","useCallback","size","Object","assign","resetAfterIndex","dataPicker","useMemo","temp","filter","item","toLowerCase","includes","dropdownListHeight","length","useEffect","filteredValue","RenderRow","style","windowWidth","rowRef","getBoundingClientRect","height","_jsx","className","twMerge","classNames","extractClasses","backgroundColor","children","ref","ListboxOption","active","selected","some","i","_jsxs","onClick","e","preventDefault","slice","concat","jsx","Checkbox","checked","color","undefined","BaseText","resizeObserver","ResizeObserver","entries","entry","contentRect","width","observe","unobserve","isWidthFull","Listbox","multiple","jsxs","BaseBadgeRequired","Float","placement","flip","ListboxButton","open","map","join","toString","Icon","name","Transition","as","Fragment","leave","leaveFrom","leaveTo","ListboxOptions","paddingTop","paddingBottom","_Fragment","onChange","target","onKeyDown","stopPropagation","List","itemCount","itemSize","itemData","BaseButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseCheckPicker.js","sources":["../../../../src/components/CheckPicker/BaseCheckPicker.tsx"],"sourcesContent":["import {\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n Transition\n} from '@headlessui/react';\nimport { Float } from '@headlessui-float/react';\nimport classNames from 'classnames';\nimport { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { ListChildComponentProps, VariableSizeList as List } from 'react-window';\nimport { twMerge } from 'tailwind-merge';\n\nimport extractClasses from '../../utils/extractClasses';\nimport { BaseBadgeRequired } from '../Badge';\nimport { BaseButton } from '../Button';\nimport { Checkbox } from '../Checkbox';\nimport { Icon } from '../Icon';\nimport { BaseText } from '../Text';\nimport { BaseCheckPickerDataInterface, BaseCheckPickerInterface } from './BaseCheckPicker.type';\n\ninterface RowProps extends ListChildComponentProps {\n setSize: (index: number, size: number) => void;\n windowWidth: number;\n}\n\nconst BaseCheckPicker = ({\n value,\n valueStyles,\n label,\n labelStyles,\n placeholder,\n placeholderStyles,\n containerStyles,\n activeContainerStyles,\n iconStyles,\n itemsContainerStyles,\n itemContainerStyles,\n oddBgColor,\n evenBgColor,\n isDisabled = false,\n position = 'bottom-start',\n isAutoFlip,\n onSelectItem,\n onClean,\n isCleanable,\n isError,\n errorMessage,\n errorMessageStyles,\n helperMessage,\n helperMessageStyles,\n isSearchable,\n searchContainerStyles,\n activeSearchStyles,\n searchPlaceholder,\n searchStyles,\n iconSearchStyles,\n isShowFooterButton,\n footerButtonContainerStyles,\n footerButtonLabel,\n onClickFooterButton,\n noResultsLabel,\n noResultsLabelStyles,\n badgeContainerStyles,\n badgeLabelStyles,\n variant = 'box',\n data,\n isRequired,\n labelRequired,\n labelRequiredStyles,\n containerRequiredStyles,\n onSearch,\n selectedAllText,\n isShowSelectedAllText = true,\n selectedAllTextStyles,\n activeCheckboxColor,\n itemTextStyles,\n listContainerStyles,\n isClearSearchOnClose,\n selectedItemTextStyles,\n activeItemTextStyles,\n maxSelected\n}: BaseCheckPickerInterface) => {\n const rowHeight = 34;\n const dafaultScrollbarStyles =\n 'scrollbar scrollbar-thumb-dark-blackCoral scrollbar-thumb-rounded-full scrollbar-w-2 scrollbar-h-2 scrollbar-track-dark-solitude';\n\n const containerRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<List>(null);\n const sizeMap = useRef<{ [key: number]: number }>({});\n\n const [search, setSearch] = useState<string>('');\n const [buttonWidth, setButtonWidth] = useState<number>(0);\n const [isDisableSelected, setIsDisableSelected] = useState<boolean>(false);\n\n const getSize = (index: number) => sizeMap.current[index] || 32;\n const setSize = useCallback((index: number, size: number) => {\n sizeMap.current = { ...sizeMap.current, [index]: size };\n if (listRef.current) {\n listRef.current.resetAfterIndex(index);\n }\n }, []);\n\n const dataPicker: Array<BaseCheckPickerDataInterface> = useMemo(() => {\n const temp: Array<BaseCheckPickerDataInterface> = data;\n return search === '' || !search\n ? temp\n : temp.filter((item) => item.label.toLowerCase().includes(search.toLowerCase()));\n }, [search, data]);\n\n const dropdownListHeight = useMemo(() => {\n let temp = 0;\n if (dataPicker.length > 0) {\n temp = rowHeight * dataPicker.length;\n }\n return temp;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataPicker.length, search]);\n\n useEffect(() => {\n const filteredValue = value?.filter((item) => item);\n if (filteredValue?.length >= maxSelected) {\n setIsDisableSelected(true);\n } else {\n setIsDisableSelected(false);\n }\n }, [value, maxSelected]);\n\n const handleItemClick = useCallback(\n (itemValue: string, isSelected: boolean) => {\n if (isDisableSelected && !isSelected) return;\n\n let temp = value.slice();\n if (isSelected) {\n temp = temp.filter((i) => i !== itemValue);\n } else {\n temp = temp.concat(itemValue);\n }\n\n onSelectItem?.(temp.filter((i) => i !== ''));\n\n if (temp.length === maxSelected) {\n setIsDisableSelected(true);\n } else {\n setIsDisableSelected(false);\n }\n },\n [isDisableSelected, value, onSelectItem, maxSelected]\n );\n\n const handleClean = useCallback(() => {\n onSelectItem?.([]);\n setSearch('');\n setIsDisableSelected(false);\n onClean?.();\n }, [onSelectItem, onClean]);\n\n // eslint-disable-next-line sonarjs/cognitive-complexity\n const RenderRow: React.FC = ({ data, index, style, windowWidth }: RowProps) => {\n const rowRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (rowRef.current) {\n setSize(index, rowRef.current.getBoundingClientRect().height);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [rowRef, windowWidth]);\n\n return (\n <div\n className={twMerge(\n classNames(\n 'w-full flex items-center !min-h-[32px]',\n itemContainerStyles,\n (!!extractClasses(itemContainerStyles, 'p-') ||\n !!extractClasses(itemContainerStyles, 'px-') ||\n !!extractClasses(itemContainerStyles, 'py-')) &&\n 'p-0'\n )\n )}\n style={{\n ...style,\n backgroundColor:\n index % 2 === 0\n ? oddBgColor || 'var(--dropdownList-background-odd)'\n : evenBgColor || 'var(--dropdownList-background-even)'\n }}\n >\n <div ref={rowRef} key={index} className='w-full'>\n <ListboxOption\n key={index}\n className={twMerge(\n classNames(\n 'relative cursor-default select-none p-2 bg-transparent list-none',\n extractClasses(itemContainerStyles, 'p-'),\n extractClasses(itemContainerStyles, 'px-'),\n extractClasses(itemContainerStyles, 'py-')\n )\n )}\n value={data[index]}\n >\n {({ active }) => {\n const selected = value.some((i) => i === data[index].value);\n return (\n <div\n className={twMerge(\n 'flex flex-row items-center gap-x-2 cursor-pointer',\n isDisableSelected && !selected ? 'cursor-not-allowed' : ''\n )}\n onClick={(e) => {\n e.preventDefault();\n handleItemClick(data[index].value, selected);\n }}\n >\n <Checkbox\n checked={selected}\n variant='small'\n color={activeCheckboxColor || undefined}\n isDisabled={isDisableSelected && !selected}\n />\n\n <div className='flex flex-1'>\n <BaseText\n label={data[index].label}\n className={twMerge(\n classNames(\n 'text-xs text-dropdownList-text-default leading-[14px]',\n `${\n active && !isDisableSelected\n ? twMerge(\n 'font-semibold text-dropdownList-text-hover',\n activeItemTextStyles\n )\n : 'font-normal'\n }`\n ),\n selected && selectedItemTextStyles,\n itemTextStyles\n )}\n />\n </div>\n </div>\n );\n }}\n </ListboxOption>\n </div>\n </div>\n );\n };\n\n useEffect(() => {\n if (onSearch) onSearch(search);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [search]);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n setButtonWidth(entry.contentRect.width);\n }\n });\n\n if (containerRef.current) {\n resizeObserver.observe(containerRef.current);\n }\n\n return () => {\n if (containerRef.current) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n resizeObserver.unobserve(containerRef.current);\n }\n };\n }, []);\n\n const isWidthFull =\n !extractClasses(containerStyles, 'w-') ||\n extractClasses(containerStyles, 'w-') === 'w-full' ||\n !extractClasses(itemsContainerStyles, 'w-') ||\n extractClasses(itemsContainerStyles, 'w-') === 'w-full';\n\n const renderSelectedValue = () => {\n if (value[0] === '') return null;\n\n return (\n <div className='flex flex-1 w-[calc(100%-52px)]'>\n {value.length === data.length && isShowSelectedAllText ? (\n <BaseText\n label={selectedAllText || 'All'}\n variant='small'\n className={twMerge(\n classNames(\n 'font-normal text-dark-blackCoral text-xs text-left line-clamp-1 w-full leading-[14px]'\n ),\n selectedAllTextStyles\n )}\n />\n ) : (\n <BaseText\n label={data\n .filter((i: BaseCheckPickerDataInterface) => value.includes(i.value))\n .map((i) => i.label)\n .join(', ')}\n variant='small'\n className={twMerge(\n classNames(\n 'font-normal text-dark-blackCoral text-xs text-left line-clamp-1 w-full leading-[14px]'\n ),\n valueStyles\n )}\n />\n )}\n </div>\n );\n };\n\n const renderSearchSection = () => {\n if (!isSearchable) return null;\n\n return (\n <div className='p-2 bg-light-whiteSolid w-full'>\n <div\n className={twMerge(\n classNames(\n twMerge(\n 'flex flex-row items-center p-2 border border-solid border-dark-gumbo rounded gap-x-1',\n searchContainerStyles\n ),\n activeSearchStyles ? activeSearchStyles : 'border-fields-border-focus'\n )\n )}\n >\n <input\n placeholder={searchPlaceholder || 'Search'}\n className={twMerge(\n 'flex flex-1 line-clamp-1 placeholder:text-dark-bermudaGray p-0 bg-transparent border-none outline-none font-poppins text-dark-blackCoral text-xs',\n searchStyles\n )}\n onChange={(e) => {\n setSearch(e.target.value);\n }}\n onKeyDown={(e) => e.stopPropagation()}\n value={search}\n />\n <Icon\n name='search'\n className={twMerge('fill-dark-bermudaGray w-3 h-3', iconSearchStyles)}\n />\n </div>\n </div>\n );\n };\n\n return (\n <Listbox multiple>\n <div ref={containerRef} className='flex flex-col gap-y-1'>\n <div className='flex flex-row items-end gap-x-1'>\n {!!label && (\n <BaseText\n label={label}\n className={twMerge('font-normal text-dark-gumbo text-[10px]', labelStyles)}\n />\n )}\n {isRequired && (\n <BaseBadgeRequired\n labelRequired={labelRequired}\n labelRequiredStyles={labelRequiredStyles}\n containerRequiredStyles={containerRequiredStyles}\n />\n )}\n </div>\n <div className='relative inline-block'>\n <Float placement={position} flip={isAutoFlip}>\n <ListboxButton\n className={twMerge(\n classNames('p-0 bg-transparent', isDisabled && 'cursor-not-allowed'),\n containerRequiredStyles ? extractClasses(containerStyles, 'w-') : undefined\n )}\n onClick={(e) => {\n if (isDisabled) {\n e.preventDefault();\n }\n }}\n >\n {({ open }) => (\n <div\n className={twMerge(\n classNames(\n twMerge(\n 'flex flex-row items-center p-2 rounded gap-x-1 border border-solid border-dark-gumbo bg-light-whiteSolid',\n containerStyles\n ),\n variant === 'line' && 'border-b border-t-0 border-x-0 rounded-none',\n open && activeContainerStyles\n ? activeContainerStyles\n : open\n ? 'border-fields-border-focus'\n : undefined,\n isDisabled && 'border-dark-bermudaGray bg-light-whiteSmoke',\n isError && 'border-red-fireEngineRed'\n )\n )}\n >\n <div className='flex flex-1'>\n {!!placeholder && value[0] === '' && (\n <div className='flex flex-1 w-full'>\n <BaseText\n label={placeholder}\n variant='small'\n className={twMerge(\n classNames(\n 'font-normal text-dark-bermudaGray text-xs text-left line-clamp-1 leading-[14px]'\n ),\n placeholderStyles\n )}\n />\n </div>\n )}\n\n {renderSelectedValue()}\n </div>\n\n {value[0] !== '' && (\n <div\n className={twMerge(\n 'flex flex-row justify-center w-3 h-3 bg-fields-badge-background-default text-fields-badge-text-default rounded-full pt-[1px] pl-[0.5px]',\n badgeContainerStyles\n )}\n >\n <BaseText\n label={value.length.toString()}\n className={twMerge(\n classNames('font-normal text-[8px] leading-3'),\n badgeLabelStyles\n )}\n />\n </div>\n )}\n\n {isCleanable && value[0] !== '' && (\n <div\n className='cursor-pointer h-3 w-3 flex items-center justify-center -mr-1'\n onClick={(e) => {\n e.preventDefault();\n handleClean();\n }}\n >\n <Icon name='close' className='fill-dark-bermudaGray w-3 h-3' />\n </div>\n )}\n <Icon\n name={open ? 'chevronup' : 'chevrondown'}\n className={twMerge(\n classNames(\n 'fill-dark-bermudaGray w-3 h-3',\n `${isDisabled && 'fill-dark-bermudaGray'}`\n ),\n iconStyles\n )}\n />\n </div>\n )}\n </ListboxButton>\n <Transition\n as={Fragment}\n leave='transition ease-in duration-100'\n leaveFrom='opacity-100'\n leaveTo='opacity-0'\n >\n <ListboxOptions\n className={twMerge(\n classNames(\n 'rounded p-0 min-w-full flex flex-col overflow-hidden border border-solid border-dark-silver z-50',\n containerStyles ? extractClasses(containerStyles, 'w-') : undefined\n ),\n itemsContainerStyles\n )}\n style={{\n width: isWidthFull ? buttonWidth : undefined,\n height: 'auto',\n paddingTop: '1px',\n paddingBottom: '1px'\n }}\n >\n {({ open }) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n if (!open && isClearSearchOnClose) setSearch('');\n }, [open]);\n\n return (\n <>\n {renderSearchSection()}\n <div\n className={twMerge(\n classNames(\n 'p-0 overflow-hidden',\n extractClasses(itemsContainerStyles, 'w-')\n ? extractClasses(itemsContainerStyles, 'w-')\n : extractClasses(containerStyles, 'w-')\n )\n )}\n style={{ width: isWidthFull ? buttonWidth : undefined }}\n >\n {dataPicker.length > 0 ? (\n <List\n ref={listRef}\n height={dropdownListHeight > 320 ? 320 : dropdownListHeight}\n itemCount={dataPicker.length}\n itemSize={getSize}\n width={'100%'}\n className={twMerge(\n `max-h-80 ${dafaultScrollbarStyles}`,\n listContainerStyles\n )}\n itemData={dataPicker}\n style={{\n height: 'auto',\n paddingTop: '1px',\n paddingBottom: '1px'\n }}\n >\n {RenderRow}\n </List>\n ) : (\n <div className='py-2 px-4 w-full'>\n <BaseText\n label={noResultsLabel || 'No Results Found'}\n className={twMerge(\n 'text-dark-bermudaGray font-normal text-sm',\n noResultsLabelStyles\n )}\n />\n </div>\n )}\n </div>\n {isShowFooterButton && (\n <BaseButton\n variant='tertiary'\n onClick={() => {\n onClickFooterButton?.();\n }}\n label={footerButtonLabel || 'Footer Button'}\n className={twMerge('', footerButtonContainerStyles)}\n />\n )}\n </>\n );\n }}\n </ListboxOptions>\n </Transition>\n </Float>\n </div>\n\n {helperMessage && !isError && (\n <BaseText\n label={helperMessage}\n className={twMerge(\n 'font-normal text-dark-bermudaGray text-[10px] inline-block',\n helperMessageStyles\n )}\n />\n )}\n\n {isError && !!errorMessage && (\n <BaseText\n label={errorMessage}\n className={twMerge(\n 'font-normal text-red-fireEngineRed text-[10px] inline-block',\n errorMessageStyles\n )}\n />\n )}\n </div>\n </Listbox>\n );\n};\n\nexport default BaseCheckPicker;\n"],"names":["value","valueStyles","label","labelStyles","placeholder","placeholderStyles","containerStyles","activeContainerStyles","iconStyles","itemsContainerStyles","itemContainerStyles","oddBgColor","evenBgColor","isDisabled","position","isAutoFlip","onSelectItem","onClean","isCleanable","isError","errorMessage","errorMessageStyles","helperMessage","helperMessageStyles","isSearchable","searchContainerStyles","activeSearchStyles","searchPlaceholder","searchStyles","iconSearchStyles","isShowFooterButton","footerButtonContainerStyles","footerButtonLabel","onClickFooterButton","noResultsLabel","noResultsLabelStyles","badgeContainerStyles","badgeLabelStyles","variant","data","isRequired","labelRequired","labelRequiredStyles","containerRequiredStyles","onSearch","selectedAllText","isShowSelectedAllText","selectedAllTextStyles","activeCheckboxColor","itemTextStyles","listContainerStyles","isClearSearchOnClose","selectedItemTextStyles","activeItemTextStyles","maxSelected","containerRef","useRef","listRef","sizeMap","search","setSearch","useState","buttonWidth","setButtonWidth","isDisableSelected","setIsDisableSelected","getSize","index","current","setSize","useCallback","size","Object","assign","resetAfterIndex","dataPicker","useMemo","temp","filter","item","toLowerCase","includes","dropdownListHeight","length","useEffect","filteredValue","handleItemClick","itemValue","isSelected","slice","i","concat","handleClean","RenderRow","style","windowWidth","rowRef","getBoundingClientRect","height","_jsx","className","twMerge","classNames","extractClasses","backgroundColor","children","ref","ListboxOption","active","selected","some","_jsxs","onClick","e","preventDefault","jsx","Checkbox","checked","color","undefined","BaseText","resizeObserver","ResizeObserver","entries","entry","contentRect","width","observe","unobserve","isWidthFull","Listbox","multiple","jsxs","BaseBadgeRequired","Float","placement","flip","ListboxButton","open","map","join","toString","Icon","name","Transition","as","Fragment","leave","leaveFrom","leaveTo","ListboxOptions","paddingTop","paddingBottom","_Fragment","onChange","target","onKeyDown","stopPropagation","List","itemCount","itemSize","itemData","BaseButton"],"mappings":"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"}
|
|
@@ -56,6 +56,7 @@ export type BaseCheckPickerInterface = {
|
|
|
56
56
|
onSearch?: (searchKeyword: string) => void;
|
|
57
57
|
selectedAllText?: string;
|
|
58
58
|
selectedAllTextStyles?: string;
|
|
59
|
+
isShowSelectedAllText?: boolean;
|
|
59
60
|
activeCheckboxColor?: string;
|
|
60
61
|
itemTextStyles?: string;
|
|
61
62
|
listContainerStyles?: string;
|
|
@@ -140,5 +140,5 @@
|
|
|
140
140
|
line-height: 16px;
|
|
141
141
|
overflow: hidden;
|
|
142
142
|
white-space: normal;
|
|
143
|
-
`,H=a=>{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}=a,q=e.__rest(a,["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(),ae=o.useRef(),[le,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 ae.current&&e.observe(ae.current),()=>{ae.current&&e.unobserve(ae.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]}}=l.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}}},l.reactTableExports.useBlockLayout,l.reactTableExports.useSortBy,l.reactTableExports.usePagination,l.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>le,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:ae,$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,a)=>{Se(r);const l=()=>w&&w(r.original),i=r.getRowProps(),{key:d}=i,c=e.__rest(i,["key"]);return o.createElement("tr",Object.assign({},c,{key:d||a,style:{display:"flex",width:"auto"}}),r.cells.map(((a,i)=>{const d=a.getCellProps(s(a)),{key:c,checkboxIsDisabled:u}=d,h=e.__rest(d,["key","checkboxIsDisabled"]);return o.createElement("td",Object.assign({},h,{key:c||a.row.id,className:v.twMerge(n.default(!!a.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!==a.column.parent.id&&"border-r-0",!r.cells[i+1]&&"border-l-0"))}),"custom"===a.column.type?t.jsx(y.CellContainerContentStyled,Object.assign({variant:I,isBaseline:!0,onClick:a.column.disableClick?null:l},{children:a.render("Cell",Object.assign({numberAddition:Ee},"selectable"===a.column.accessor?{checkboxIsDisabled:u}:{}))})):t.jsx(t.Fragment,{children:Array.isArray(a.value)?a.value.map(((e,o)=>t.jsx(y.CellContainerContentStyled,Object.assign({variant:I,isBaseline:!0,countArrayValue:ue,isColSpan:!0,onClick:a.column.disableClick?null:l},{children:t.jsx(B,Object.assign({isEmpty:!e,textAlign:a.column.textAlign||C.textAlign,label:a.column.isCanShowEmptyCell?e:e||"-",variant:"small",ellipsis:!!a.value&&a.value.length>=ee},a.column.textStyle))}),o))):t.jsx(y.CellContainerContentStyled,Object.assign({variant:I,isBaseline:!0,onClick:a.column.disableClick?null:l},{children:t.jsx(B,Object.assign({isEmpty:!a.value,textAlign:a.column.textAlign||C.textAlign,label:a.column.isCanShowEmptyCell?a.value:a.value||"-",variant:"small",ellipsis:!!a.value&&a.value.length>=ee},a.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:a,isActive:l}=r,s=e.__rest(r,["children","isActive"]);const[i,d]=o.useState(!1),[c,u]=o.useState(!1);return t.jsx(t.Fragment,{children:a||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||l)&&"fill-accordionTabs-button-textAndIcon-active"),s.leftIconStyles),rightIcon:l?"chevronup":s.rightIcon||"chevrondown",rightIconStyles:v.twMerge(n.default("fill-accordionTabs-button-textAndIcon-default",i&&"fill-accordionTabs-button-textAndIcon-hover",(c||l)&&"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 ",l&&"\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:a.propTypesExports.number,emptyTableHeight:a.propTypesExports.number,onClickRow:a.propTypesExports.func,variant:a.propTypesExports.string,isSelectable:a.propTypesExports.bool,freezedColumn:a.propTypesExports.number,freezeHeader:a.propTypesExports.bool,hideRowIndex:a.propTypesExports.bool,tableHeight:a.propTypesExports.number},module.exports=H;
|
|
143
|
+
`,H=a=>{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}=a,q=e.__rest(a,["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(),ae=o.useRef(),[le,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 ae.current&&e.observe(ae.current),()=>{ae.current&&e.unobserve(ae.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]}}=l.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}}},l.reactTableExports.useBlockLayout,l.reactTableExports.useSortBy,l.reactTableExports.usePagination,l.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>le,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:ae,$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,a)=>{Se(r);const l=()=>w&&w(r.original),i=r.getRowProps(),{key:d}=i,c=e.__rest(i,["key"]);return o.createElement("tr",Object.assign({},c,{key:d||a,style:{display:"flex",width:"auto"}}),r.cells.map(((a,i)=>{const d=a.getCellProps(s(a)),{key:c,checkboxIsDisabled:u}=d,h=e.__rest(d,["key","checkboxIsDisabled"]);return o.createElement("td",Object.assign({},h,{key:c||a.row.id,className:v.twMerge(n.default(!!a.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!==a.column.parent.id&&"border-r-0",!r.cells[i+1]&&"border-l-0"))}),"custom"===a.column.type?t.jsx(y.CellContainerContentStyled,Object.assign({variant:I,isBaseline:!0,onClick:a.column.disableClick?null:l},{children:a.render("Cell",Object.assign({numberAddition:Ee},"selectable"===a.column.accessor?{checkboxIsDisabled:u}:{}))})):t.jsx(t.Fragment,{children:Array.isArray(a.value)?a.value.map(((e,o)=>t.jsx(y.CellContainerContentStyled,Object.assign({variant:I,isBaseline:!0,countArrayValue:ue,isColSpan:!0,onClick:a.column.disableClick?null:l},{children:t.jsx(B,Object.assign({isEmpty:!e,textAlign:a.column.textAlign||C.textAlign,label:a.column.isCanShowEmptyCell?e:e||"-",variant:"small",ellipsis:!!a.value&&a.value.length>=ee},a.column.textStyle))}),o))):t.jsx(y.CellContainerContentStyled,Object.assign({variant:I,isBaseline:!0,onClick:a.column.disableClick?null:l},{children:t.jsx(B,Object.assign({isEmpty:!a.value,textAlign:a.column.textAlign||C.textAlign,label:a.column.isCanShowEmptyCell?a.value:a.value||"-",variant:"small",ellipsis:!!a.value&&a.value.length>=ee},a.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:a,isActive:l}=r,s=e.__rest(r,["children","isActive"]);const[i,d]=o.useState(!1),[c,u]=o.useState(!1),p=o.useRef(null);return o.useEffect((()=>{const e=()=>{u(!1),p.current&&!p.current.matches(":hover")&&d(!1)};return c&&document.addEventListener("mouseup",e),()=>{document.removeEventListener("mouseup",e)}}),[c]),t.jsx(t.Fragment,{children:a||t.jsx("div",Object.assign({ref:p,onMouseDown:()=>u(!0),onMouseEnter:()=>d(!0),onMouseLeave:()=>{c||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||l)&&"fill-accordionTabs-button-textAndIcon-active"),s.leftIconStyles),rightIcon:l?"chevronup":s.rightIcon||"chevrondown",rightIconStyles:v.twMerge(n.default("fill-accordionTabs-button-textAndIcon-default",i&&"fill-accordionTabs-button-textAndIcon-hover",(c||l)&&"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 ",l&&"\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:a.propTypesExports.number,emptyTableHeight:a.propTypesExports.number,onClickRow:a.propTypesExports.func,variant:a.propTypesExports.string,isSelectable:a.propTypesExports.bool,freezedColumn:a.propTypesExports.number,freezeHeader:a.propTypesExports.bool,hideRowIndex:a.propTypesExports.bool,tableHeight:a.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-box;\n line-height: 16px;\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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"}
|
|
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-box;\n line-height: 16px;\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 const containerRef = useRef(null);\n\n useEffect(() => {\n const handleMouseUp = () => {\n setIsMouseDown(false);\n if (containerRef.current && !containerRef.current.matches(':hover')) {\n setIsMouseEnter(false);\n }\n };\n\n if (isMouseDown) {\n document.addEventListener('mouseup', handleMouseUp);\n }\n return () => {\n document.removeEventListener('mouseup', handleMouseUp);\n };\n }, [isMouseDown]);\n\n return (\n <>\n {children ? (\n children\n ) : (\n <div\n ref={containerRef}\n onMouseDown={() => setIsMouseDown(true)}\n onMouseEnter={() => setIsMouseEnter(true)}\n onMouseLeave={() => {\n if (!isMouseDown) {\n setIsMouseEnter(false);\n }\n }}\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","containerRef","handleMouseUp","matches","document","addEventListener","removeEventListener","onMouseDown","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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"}
|