@zydon/common 2.8.56 → 2.8.57

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.
Files changed (60) hide show
  1. package/dist/bulkActions-3ec5afc1.d.ts +28 -0
  2. package/dist/chunk-3HKLNWRZ.js +16 -0
  3. package/dist/chunk-3HKLNWRZ.js.map +1 -0
  4. package/dist/{chunk-UOIOBXCP.js → chunk-3WFLKIPF.js} +2 -2
  5. package/dist/chunk-75PS5WVR.js +27 -0
  6. package/dist/chunk-75PS5WVR.js.map +1 -0
  7. package/dist/chunk-D3RY7C7B.js +12 -0
  8. package/dist/chunk-D3RY7C7B.js.map +1 -0
  9. package/dist/{chunk-EWGZ2KSI.js → chunk-H3SS73NK.js} +1 -1
  10. package/dist/chunk-H3SS73NK.js.map +1 -0
  11. package/dist/{chunk-CMWRCWVK.js → chunk-LJ5JKDMG.js} +4 -4
  12. package/dist/{chunk-QT4ZQ2CJ.js → chunk-M3IIWN6P.js} +1 -1
  13. package/dist/chunk-M3IIWN6P.js.map +1 -0
  14. package/dist/{chunk-RD6YLEVF.js → chunk-OFOIKKG2.js} +2 -2
  15. package/dist/{chunk-VCK3DKB3.js → chunk-X4F3O7PX.js} +2 -2
  16. package/dist/chunk-YPL4KIKN.js +46 -0
  17. package/dist/chunk-YPL4KIKN.js.map +1 -0
  18. package/dist/components/Autocomplete/index.js +1 -1
  19. package/dist/components/AvatarButton/index.js +4 -4
  20. package/dist/components/BulkEditModal/index.js +5 -4
  21. package/dist/components/BulkEditModal/index.js.map +1 -1
  22. package/dist/components/Common/index.js +4 -4
  23. package/dist/components/Confirm/index.js +1 -11
  24. package/dist/components/Confirm/index.js.map +1 -1
  25. package/dist/components/DataView/index.d.ts +20 -3
  26. package/dist/components/DataView/index.js +3 -2
  27. package/dist/components/DynamicDataView/index.d.ts +9 -3
  28. package/dist/components/DynamicDataView/index.js +17 -16
  29. package/dist/components/DynamicDataView/index.js.map +1 -1
  30. package/dist/components/ExpandableGroup/index.js.map +1 -1
  31. package/dist/components/ListBundles/index.js +1 -1
  32. package/dist/components/ToggleTheme/index.js +4 -4
  33. package/dist/components/carousel/index.js +1 -1
  34. package/dist/components/form/Address/index.js +2 -2
  35. package/dist/components/form/Autocomplete/index.js +2 -2
  36. package/dist/components/form/Webhook/index.js +2 -2
  37. package/dist/components/form/Webhook/index.js.map +1 -1
  38. package/dist/hooks/useDynamicAutocomplete.js.map +1 -1
  39. package/dist/hooks/useThemeToggle.js +4 -4
  40. package/dist/index.js +4 -4
  41. package/dist/theme/core/index.js +2 -2
  42. package/dist/theme/theme-provider.js +4 -4
  43. package/dist/theme/with-settings/index.js +2 -2
  44. package/dist/utils/loadable.js.map +1 -1
  45. package/dist/utils/vendor.d.ts +3 -0
  46. package/dist/utils/vendor.js +4 -0
  47. package/dist/utils/vendor.js.map +1 -0
  48. package/package.json +1 -1
  49. package/dist/chunk-2W54CJ6E.js +0 -12
  50. package/dist/chunk-2W54CJ6E.js.map +0 -1
  51. package/dist/chunk-EWGZ2KSI.js.map +0 -1
  52. package/dist/chunk-GYABWIFG.js +0 -26
  53. package/dist/chunk-GYABWIFG.js.map +0 -1
  54. package/dist/chunk-PVVI43BW.js +0 -45
  55. package/dist/chunk-PVVI43BW.js.map +0 -1
  56. package/dist/chunk-QT4ZQ2CJ.js.map +0 -1
  57. /package/dist/{chunk-UOIOBXCP.js.map → chunk-3WFLKIPF.js.map} +0 -0
  58. /package/dist/{chunk-CMWRCWVK.js.map → chunk-LJ5JKDMG.js.map} +0 -0
  59. /package/dist/{chunk-RD6YLEVF.js.map → chunk-OFOIKKG2.js.map} +0 -0
  60. /package/dist/{chunk-VCK3DKB3.js.map → chunk-X4F3O7PX.js.map} +0 -0
@@ -0,0 +1,28 @@
1
+ import { ReactNode } from 'react';
2
+ import { ButtonProps } from '@mui/material/Button';
3
+ import { GridValidRowModel, GridRowSelectionModel } from '@mui/x-data-grid-premium';
4
+
5
+ interface BulkActionConfirmation {
6
+ title?: ReactNode;
7
+ message?: ReactNode;
8
+ confirmButtonText?: ReactNode;
9
+ cancelButtonText?: ReactNode;
10
+ }
11
+ interface BulkActionContext<T extends GridValidRowModel = GridValidRowModel> {
12
+ selectedIds: GridRowSelectionModel;
13
+ selectedRowsInPage: T[];
14
+ selectedCount: number;
15
+ clearSelection: () => void;
16
+ }
17
+ interface BulkAction<T extends GridValidRowModel = GridValidRowModel> {
18
+ id: string;
19
+ label: ReactNode;
20
+ icon?: ReactNode | string;
21
+ color?: ButtonProps['color'];
22
+ handler: (context: BulkActionContext<T>) => void | Promise<void>;
23
+ confirmation?: BulkActionConfirmation | boolean;
24
+ disabled?: boolean | ((context: BulkActionContext<T>) => boolean);
25
+ hidden?: boolean | ((context: BulkActionContext<T>) => boolean);
26
+ }
27
+
28
+ export { BulkAction as B, BulkActionConfirmation as a, BulkActionContext as b };
@@ -0,0 +1,16 @@
1
+ import { a } from './chunk-UVPQR2Q2.js';
2
+ import { a as a$1 } from './chunk-CO2KQFUN.js';
3
+ import w from '@mui/material/Checkbox';
4
+ import P from '@mui/material/CircularProgress';
5
+ import i from '@mui/material/Divider';
6
+ import n from '@mui/material/Stack';
7
+ import { styled } from '@mui/material/styles';
8
+ import k from '@mui/material/Typography';
9
+ import { useCallback, useMemo } from 'react';
10
+ import v from '@mui/material/TablePagination';
11
+ import { jsx } from 'react/jsx-runtime';
12
+
13
+ var $=styled(a,{shouldForwardProp:o=>o!=="breakpoint"})(({theme:o,breakpoint:e})=>({position:"relative",borderRadius:12,padding:0,gap:0,overflow:"hidden",[o.breakpoints.down(e)]:{borderColor:o.palette.divider}})),z=styled(n,{shouldForwardProp:o=>o!=="breakpoint"})(({theme:o,breakpoint:e})=>({flexDirection:"row",alignItems:"center",justifyContent:"space-between",padding:o.spacing(3,3,0),gap:o.spacing(3),[o.breakpoints.down(e)]:{padding:o.spacing(2,2,0)}})),F=styled(n,{shouldForwardProp:o=>o!=="breakpoint"})(({theme:o,breakpoint:e})=>({flexDirection:"row",alignItems:"center",gap:o.spacing(1.5),color:o.palette.text.secondary,[o.breakpoints.down(e)]:{"& button, & a":{textIndent:"-9999em",fontSize:0,minWidth:36,maxWidth:36,height:36,width:36,overflow:"hidden","& .MuiButton-icon":{margin:0}}}})),L=styled(i)(({theme:o})=>({borderStyle:"dashed",height:o.spacing(2),margin:"auto"})),j=styled(i)(({theme:o})=>({borderStyle:"dashed",height:o.spacing(1.5),marginTop:"auto",marginBottom:"auto"})),R=styled(n,{shouldForwardProp:o=>o!=="breakpoint"})(({theme:o,breakpoint:e})=>({position:"relative",padding:o.spacing(2),flexDirection:"row",alignItems:"center",color:o.palette.text.secondary,[o.breakpoints.down(e)]:{padding:o.spacing(1.5,2),borderBottom:`1px solid ${o.palette.divider}`,minHeight:60,[o.breakpoints.down(e)]:{"& button":{textIndent:"-9999em",fontSize:0,minWidth:36,maxWidth:36,height:36,width:36,overflow:"hidden","& .MuiButton-icon":{margin:0}}}}})),E=styled(n,{shouldForwardProp:o=>o!=="breakpoint"})(({theme:o,breakpoint:e})=>({width:320,flexDirection:"row",alignItems:"center",justifyContent:"center",[o.breakpoints.down(e)]:{width:"100%",zIndex:1,"& fieldset, & input":{display:"flex"},"& .MuiInputAdornment-root":{marginLeft:0}}})),g=styled(n)(({theme:o})=>({"& .MuiToolbar-root":{height:24,minHeight:24,overflow:"hidden",[o.breakpoints.down("sm")]:{height:"auto",flexWrap:"wrap",justifyContent:"center"}}})),G=styled(n)(({theme:o})=>({minHeight:60,alignItems:"flex-end",justifyContent:"center",borderTop:`1px solid ${o.palette.divider}`,[o.breakpoints.down("sm")]:{minHeight:"auto"}})),N=styled(n)(({theme:o})=>({flexDirection:"row",height:60,alignItems:"center",justifyContent:"space-between",borderTop:`1px solid ${o.palette.divider}`,gap:o.spacing(2),padding:o.spacing(2)})),O=styled(n)({position:"relative",flex:1,minHeight:0}),_=styled(n)(({theme:o})=>({flexDirection:"row",alignItems:"center",padding:`0 ${o.spacing(3)}`,top:0,left:0,width:"100%",zIndex:9,height:48,position:"absolute",backgroundColor:o.palette.primary.lighter})),q=styled(k)(({theme:o})=>({flexGrow:1,color:o.palette.primary.main,fontWeight:600})),J=styled(n)(({theme:o})=>({flexDirection:"row",alignItems:"center",gap:o.spacing(1)})),K=styled(w)({marginLeft:-6}),Q=styled(a$1)({minWidth:160}),U=styled(i)(({theme:o})=>({marginTop:o.spacing(2)})),V=styled(P)({margin:"160px auto"});var D=({count:o,page:e,rowsPerPage:r,onPageChange:a,onRowsPerPageChange:p})=>{let s=Math.ceil(o/r)||1,u=useCallback((d,h)=>{a(h);},[a]),x=useCallback(d=>{p(Number(d.target.value));},[p]),b=useMemo(()=>`P\xE1gina ${e+1} de ${s}`,[e,s]);return jsx(g,{"aria-label":b,"aria-live":"polite",role:"navigation",children:jsx(v,{color:"primary",component:"div",size:"small",count:o,page:e,rowsPerPage:r,onPageChange:u,onRowsPerPageChange:x})})},to=D;
14
+
15
+ export { $ as a, z as b, F as c, L as d, j as e, R as f, E as g, G as h, N as i, O as j, _ as k, q as l, J as m, K as n, Q as o, U as p, V as q, to as r };
16
+ //# sourceMappingURL=chunk-3HKLNWRZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/DataView/styles.ts","../src/components/DataView/Pagination.tsx"],"names":["Checkbox","CircularProgress","Divider","Stack","styled","Typography","Container","Panel_default","prop","theme","breakpoint","Header","ActionsContainer","ActionsDivider","ToolbarActionsDivider","Topbar","SearchContainer","PaginationContainer","MobilePaginationContainer","DesktopPaginationContainer","DataGridWrapper","SelectionOverlay","SelectionCount","SelectionActions","SelectionCheckbox","MoreActionsPopover","MenuPopover_default","TopbarDivider","LoadingProgress","useCallback","useMemo","MuiPagination","jsx","Pagination","count","page","rowsPerPage","onPageChange","onRowsPerPageChange","totalPages","handlePageChange","_","newPage","handleRowsPerPageChange","event","ariaLabel","Pagination_default"],"mappings":"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","sourcesContent":["import Checkbox from '@mui/material/Checkbox';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Divider from '@mui/material/Divider';\nimport Stack, { StackProps } from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\nimport { Breakpoint } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\n\nimport MenuPopover from 'components/MenuPopover';\nimport Panel from 'components/Panel';\n\nexport interface DefaultProps {\n breakpoint: Breakpoint | number;\n}\n\nexport interface ContainerProps extends StackProps {\n breakpoint: Breakpoint | number;\n}\n\nexport const Container = styled(Panel, {\n shouldForwardProp: prop => prop !== 'breakpoint',\n})<ContainerProps>(({ theme, breakpoint }) => ({\n position: 'relative',\n borderRadius: 12,\n padding: 0,\n gap: 0,\n overflow: 'hidden',\n\n [theme.breakpoints.down(breakpoint)]: {\n borderColor: theme.palette.divider,\n },\n}));\n\nexport const Header = styled(Stack, {\n shouldForwardProp: prop => prop !== 'breakpoint',\n})<DefaultProps>(({ theme, breakpoint }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: theme.spacing(3, 3, 0),\n gap: theme.spacing(3),\n\n [theme.breakpoints.down(breakpoint)]: {\n padding: theme.spacing(2, 2, 0),\n },\n}));\n\nexport const ActionsContainer = styled(Stack, {\n shouldForwardProp: prop => prop !== 'breakpoint',\n})<DefaultProps>(({ theme, breakpoint }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing(1.5),\n color: theme.palette.text.secondary,\n\n [theme.breakpoints.down(breakpoint)]: {\n '& button, & a': {\n textIndent: '-9999em',\n fontSize: 0,\n minWidth: 36,\n maxWidth: 36,\n height: 36,\n width: 36,\n overflow: 'hidden',\n\n '& .MuiButton-icon': {\n margin: 0,\n },\n },\n },\n}));\n\nexport const ActionsDivider = styled(Divider)(({ theme }) => ({\n borderStyle: 'dashed',\n height: theme.spacing(2),\n margin: 'auto',\n}));\n\nexport const ToolbarActionsDivider = styled(Divider)(({ theme }) => ({\n borderStyle: 'dashed',\n height: theme.spacing(1.5),\n marginTop: 'auto',\n marginBottom: 'auto',\n}));\n\nexport const Topbar = styled(Stack, {\n shouldForwardProp: prop => prop !== 'breakpoint',\n})<DefaultProps>(({ theme, breakpoint }) => ({\n position: 'relative',\n padding: theme.spacing(2),\n flexDirection: 'row',\n alignItems: 'center',\n color: theme.palette.text.secondary,\n\n [theme.breakpoints.down(breakpoint)]: {\n padding: theme.spacing(1.5, 2),\n borderBottom: `1px solid ${theme.palette.divider}`,\n minHeight: 60,\n\n [theme.breakpoints.down(breakpoint)]: {\n '& button': {\n textIndent: '-9999em',\n fontSize: 0,\n minWidth: 36,\n maxWidth: 36,\n height: 36,\n width: 36,\n overflow: 'hidden',\n\n '& .MuiButton-icon': {\n margin: 0,\n },\n },\n },\n },\n}));\n\nexport const SearchContainer = styled(Stack, {\n shouldForwardProp: prop => prop !== 'breakpoint',\n})<DefaultProps>(({ theme, breakpoint }) => ({\n width: 320,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n\n [theme.breakpoints.down(breakpoint)]: {\n width: '100%',\n zIndex: 1,\n\n '& fieldset, & input': {\n display: 'flex',\n },\n\n '& .MuiInputAdornment-root': {\n marginLeft: 0,\n },\n },\n}));\n\nexport const PaginationContainer = styled(Stack)(({ theme }) => ({\n '& .MuiToolbar-root': {\n height: 24,\n minHeight: 24,\n overflow: 'hidden',\n\n [theme.breakpoints.down('sm')]: {\n height: 'auto',\n flexWrap: 'wrap',\n justifyContent: 'center',\n },\n },\n}));\n\nexport const MobilePaginationContainer = styled(Stack)(({ theme }) => ({\n minHeight: 60,\n alignItems: 'flex-end',\n justifyContent: 'center',\n borderTop: `1px solid ${theme.palette.divider}`,\n\n [theme.breakpoints.down('sm')]: {\n minHeight: 'auto',\n },\n}));\n\nexport const DesktopPaginationContainer = styled(Stack)(({ theme }) => ({\n flexDirection: 'row',\n height: 60,\n alignItems: 'center',\n justifyContent: 'space-between',\n borderTop: `1px solid ${theme.palette.divider}`,\n gap: theme.spacing(2),\n padding: theme.spacing(2),\n}));\n\nexport const DataGridWrapper = styled(Stack)({\n position: 'relative',\n flex: 1,\n minHeight: 0,\n});\n\nexport const SelectionOverlay = styled(Stack)(({ theme }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n padding: `0 ${theme.spacing(3)}`,\n top: 0,\n left: 0,\n width: '100%',\n zIndex: 9,\n height: 48,\n position: 'absolute',\n backgroundColor: theme.palette.primary.lighter,\n}));\n\nexport const SelectionCount = styled(Typography)(({ theme }) => ({\n flexGrow: 1,\n color: theme.palette.primary.main,\n fontWeight: 600,\n}));\n\nexport const SelectionActions = styled(Stack)(({ theme }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing(1),\n}));\n\nexport const SelectionCheckbox = styled(Checkbox)({\n marginLeft: -6,\n});\n\nexport const MoreActionsPopover = styled(MenuPopover)({\n minWidth: 160,\n});\n\nexport const TopbarDivider = styled(Divider)(({ theme }) => ({\n marginTop: theme.spacing(2),\n}));\n\nexport const LoadingProgress = styled(CircularProgress)({\n margin: '160px auto',\n});\n","import { useCallback, useMemo } from 'react';\nimport MuiPagination from '@mui/material/TablePagination';\n\nimport { PaginationProps } from './props';\nimport { PaginationContainer } from './styles';\n\nconst Pagination = ({\n count,\n page,\n rowsPerPage,\n onPageChange,\n onRowsPerPageChange,\n}: PaginationProps) => {\n const totalPages = Math.ceil(count / rowsPerPage) || 1;\n\n const handlePageChange = useCallback(\n (_: unknown, newPage: number) => {\n onPageChange(newPage);\n },\n [onPageChange],\n );\n\n const handleRowsPerPageChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n onRowsPerPageChange(Number(event.target.value));\n },\n [onRowsPerPageChange],\n );\n\n const ariaLabel = useMemo(\n () => `Página ${page + 1} de ${totalPages}`,\n [page, totalPages],\n );\n\n return (\n <PaginationContainer\n aria-label={ariaLabel}\n aria-live=\"polite\"\n role=\"navigation\"\n >\n <MuiPagination\n color=\"primary\"\n component=\"div\"\n size=\"small\"\n count={count}\n page={page}\n rowsPerPage={rowsPerPage}\n onPageChange={handlePageChange}\n onRowsPerPageChange={handleRowsPerPageChange}\n />\n </PaginationContainer>\n );\n};\n\nexport default Pagination;\n"]}
@@ -1,9 +1,9 @@
1
1
  import { a } from './chunk-KYV74QIT.js';
2
- import { r, b, a as a$2 } from './chunk-PVVI43BW.js';
2
+ import { r, b, a as a$2 } from './chunk-YPL4KIKN.js';
3
3
  import { h as h$1, j } from './chunk-GLRLKFPS.js';
4
4
  import a$1 from 'color';
5
5
 
6
6
  function P(t,e){let{colorSchemes:r$1,customShadows:o}=t;return {...t,colorSchemes:{...r$1,light:{palette:{...r$1?.light?.palette,primary:d(e.primaryColor),background:{...r$1?.light?.palette?.background,default:h(e.contrast),defaultChannel:h$1(h(e.contrast))}}},dark:{palette:{...r$1?.dark?.palette,primary:d(e.primaryColor)}}},customShadows:{...o,primary:r("light",e.primaryColor).primary}}}function T(t){let e={};if(t.contrast==="hight"){let r={styleOverrides:{root:({theme:o,ownerState:c})=>{let i={};return typeof a$2?.MuiCard?.styleOverrides?.root=="function"&&(i=a$2.MuiCard.styleOverrides.root({ownerState:c,theme:o})??{}),{...i,boxShadow:o.customShadows.z1}}}};e.MuiCard=r;}return {components:e}}function d(t){let e=f(t);return j(e)}function h(t){return t==="default"?"#FFFFFF":b[200]}function f(t){let e=a(t);return {lighter:a$1(t).lighten(.55).hex(),light:a$1(t).lighten(.225).hex(),main:t,dark:a$1(t).darken(.15).hex(),darker:a$1(t).darken(.35).hex(),contrastText:e<=.55?"#ffffff":"#3E3E3E"}}
7
7
 
8
8
  export { P as a, T as b, f as c };
9
- //# sourceMappingURL=chunk-UOIOBXCP.js.map
9
+ //# sourceMappingURL=chunk-3WFLKIPF.js.map
@@ -0,0 +1,27 @@
1
+ import { a as a$3 } from './chunk-PVI5BAUW.js';
2
+ import { a as a$4 } from './chunk-IJZCVZ32.js';
3
+ import { a as a$7 } from './chunk-IDFJFFIV.js';
4
+ import { a as a$5 } from './chunk-6U5LS7MP.js';
5
+ import { a as a$9 } from './chunk-D3RY7C7B.js';
6
+ import { i, r, k, n, l, a as a$2, b as b$1, c, d, f, e, o, g, p, q, h, j, m } from './chunk-3HKLNWRZ.js';
7
+ import { a as a$6 } from './chunk-F65ZXAGV.js';
8
+ import { a as a$8 } from './chunk-I4PPSW36.js';
9
+ import { a } from './chunk-VURAUMLN.js';
10
+ import { a as a$1 } from './chunk-LQRRMVFN.js';
11
+ import { b } from './chunk-RPO7AI5K.js';
12
+ import { memo, forwardRef, useState, useRef, useEffect, useMemo, useCallback, Fragment as Fragment$1, Children, isValidElement, cloneElement } from 'react';
13
+ import Ve from 'react-fast-compare';
14
+ import io from '@mui/material/Button';
15
+ import ze from '@mui/material/IconButton';
16
+ import Fe from '@mui/material/LinearProgress';
17
+ import w from '@mui/material/Stack';
18
+ import $o from '@mui/material/Tooltip';
19
+ import Ko from '@mui/material/Typography';
20
+ import ge from '@mui/lab/LoadingButton';
21
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
22
+ import { GridToolbarColumnsButton } from '@mui/x-data-grid-premium';
23
+
24
+ var _="datagrid-actions";var Uo=(e,n)=>typeof e=="function"?e(n):!!e,Ce=e=>{if(e)return e===!0?{}:e},he=({actions:e,context:n})=>{let[r,l]=useState(null),[c,s]=useState(null),C=useMemo(()=>e.filter(i=>!Uo(i.hidden,n)),[e,n]),h=useCallback(async i=>{s(i.id);try{await i.handler(n);}finally{s(null);}},[n]),K=useCallback(i=>{if(i.confirmation){l(i);return}h(i).catch(()=>{});},[h]),y=useCallback(async()=>{r&&(await h(r),l(null));},[r,h]),u=useCallback(()=>{c||l(null);},[c]),d=Ce(r?.confirmation);return jsxs(Fragment,{children:[jsx(m,{children:C.map(i=>{let E=!!c||Uo(i.disabled,n),G=c===i.id;return jsx(ge,{size:"small",variant:"text",color:i.color??"primary",onClick:()=>K(i),loading:G,disabled:E,startIcon:typeof i.icon=="string"?jsx(a,{icon:i.icon}):i.icon,children:i.label},i.id)})}),r&&jsx(a$9,{open:!0,onClose:u,onConfirm:()=>{y().catch(()=>{});},confirming:c===r.id,modalTitle:d?.title??"Tem certeza que deseja executar esta a\xE7\xE3o?",message:d?.message??"Essa a\xE7\xE3o ser\xE1 aplicada aos itens selecionados.",cancelButtonText:d?.cancelButtonText??"Cancelar",confirmButtonText:d?.confirmButtonText??"Confirmar",confirmButtonProps:{color:r.color??"primary"}})]})},qo=he;var we=({rowCount:e,page:n,rowsPerPage:r$1,onPaginationChange:l})=>jsxs(i,{children:[jsxs(w,{direction:"row",alignItems:"center",gap:.5,children:[jsx(Ko,{variant:"body2",color:"text.disabled",children:"Total de itens:"}),jsx(Ko,{variant:"body2",children:e})]}),jsx(r,{count:e,page:n,rowsPerPage:r$1,onPageChange:c=>l(c,r$1),onRowsPerPageChange:c=>l(n,c)})]}),Jo=memo(we);var Xo=(e,n)=>Children.map(e,r=>{if(!isValidElement(r))return r;let l=r.props.onClick,c={};c.onClick=(...C)=>{n(),l&&l(...C);};let s=r.props;return s?.children&&(c.children=Xo(s.children,n)),cloneElement(r,c)}),Ie=({children:e,onClose:n})=>e?Xo(e,n):null,Yo=memo(Ie);var De=forwardRef(({children:e,...n},r)=>jsx(io,{...n,ref:r,color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:e??"Colunas"}));De.displayName="ColumnsButton";var Ee=({setFilterButtonEl:e})=>{let n=useCallback(r=>{e(r);},[e]);return jsx(a$8,{container:_,children:jsx(GridToolbarColumnsButton,{ref:n,slotProps:{button:{color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:"Colunas"}}})})},Zo=Ee;var _e=({title:e$1,header:n$1,headerProps:r$1,breakpoint:l$1="md",columns:c$1,rows:s=[],mobileSlots:C,mobileSlotsProps:h$1,mobileRender:K,rowCount:y=0,paginationModel:u={page:0,pageSize:25},onPaginationChange:d$1,actions:i,moreActions:E,onAdd:G,onSearch:ao,searchValue:oe,onSearchChange:ee,slots:P,slotProps:te,loading:R,fetching:lo,fetchingNextPage:ne,containerProps:re={height:562,maxHeight:562},hideFooter:co,showColumnButton:Q=!1,filterButton:I,activeFilters:so,bulkActions:mo,onRowsScrollEnd:O,scrollEndThreshold:J=200,...k$1})=>{let A=a$1(),f$1=b("down",l$1),[ie,ae]=useState(null),po=useRef(null);useEffect(()=>{let t=po.current;if(!t||!f$1||!O)return;let T=()=>{let{scrollTop:j,scrollHeight:M,clientHeight:z}=t;M-j-z<=J&&O();};return t.addEventListener("scroll",T,{passive:!0}),()=>{t.removeEventListener("scroll",T);}},[f$1,O,J,s.length]);let uo=!!ao,X=!!G,L=!!i,Y=!!E,Z=f$1&&Y,H=!f$1&&Y,le=L||X||Z,fo=H||uo||Q||!!I||!f$1,m=useMemo(()=>Array.isArray(k$1.rowSelectionModel)?k$1.rowSelectionModel:[],[k$1.rowSelectionModel]),b$2=m.length,N=useMemo(()=>k$1.getRowId??(t=>t.id),[k$1.getRowId]),S=useMemo(()=>s.map(t=>N(t)),[s,N]),V=useMemo(()=>new Set(S),[S]),go=useMemo(()=>m.reduce((t,T)=>t+(V.has(T)?1:0),0),[m,V]),Co=S.length>0&&go===S.length,ce=go>0&&!Co,{onRowSelectionModelChange:v}=k$1,x=useCallback(t=>{v&&v(t);},[v]),$=useCallback(()=>{x([]);},[x]),ho=useMemo(()=>new Set(m),[m]),ko=useMemo(()=>s.filter(t=>ho.has(N(t))),[s,ho,N]),se=useMemo(()=>({selectedIds:m,selectedRowsInPage:ko,selectedCount:b$2,clearSelection:$}),[m,ko,b$2,$]),de=!!mo?.length,me=useCallback((t,T)=>{if(!v)return;if(T){let M=new Set(m),z=[...m];S.forEach(oo=>{M.has(oo)||z.push(oo);}),x(z);return}let j=m.filter(M=>!V.has(M));x(j);},[v,m,S,V,x]),Ao=useCallback(()=>d$1?jsx(Jo,{rowCount:y,page:u.page,rowsPerPage:u.pageSize,onPaginationChange:d$1}):null,[y,u,d$1]),pe=useMemo(()=>({...P,footer:Ao,...Q&&!P?.toolbar&&{toolbar:Zo}}),[P,Ao,Q]),ue=de&&b$2>0&&jsxs(k,{children:[jsx($o,{title:"Selecione todos nessa pagina",children:jsx(n,{size:"small",checked:Co,indeterminate:ce,onChange:me})}),jsx($o,{title:"Desselecionar tudo",children:jsx(ze,{size:"small",onClick:$,"aria-label":"Desselecionar tudo",sx:{color:"primary.main"},children:jsx(a,{icon:"CLOSE_MARK_BUTTON",width:18,height:18})})}),jsxs(l,{variant:"body2",children:[b$2," selecionado",b$2>1?"s":""]}),jsx(qo,{actions:mo??[],context:se})]});return jsxs(a$2,{breakpoint:l$1,...re,flex:R?1:void 0,minHeight:R||s.length===0?562:void 0,children:[n$1?jsx(w,{p:3,...r$1,children:n$1}):jsxs(Fragment,{children:[jsxs(b$1,{breakpoint:l$1,children:[jsx(Ko,{variant:"overline",color:"text.secondary",noWrap:!0,children:e$1}),le&&jsxs(c,{breakpoint:l$1,children:[L&&i,X&&jsxs(Fragment,{children:[L&&jsx(d,{orientation:"vertical",flexItem:!0}),jsx(io,{startIcon:jsx(a,{icon:"SIMPLE_ADD"}),variant:"contained",onClick:G,children:"Adicionar"})]}),Z&&jsxs(Fragment,{children:[(L||X)&&jsx(d,{orientation:"vertical",flexItem:!0}),jsx(io,{color:"inherit",startIcon:jsx(a,{icon:"MORE_BOLD"}),size:"small",onClick:A.onOpen,children:"Mais"})]})]})]}),fo&&jsxs(f,{breakpoint:l$1,children:[jsxs(w,{flex:1,direction:"row",alignItems:"center",id:_,gap:.5,children:[Y&&jsxs(Fragment,{children:[H&&jsxs(Fragment,{children:[jsx(io,{color:"inherit",startIcon:jsx(a,{icon:"MORE_BOLD"}),size:"small",onClick:A.onOpen,children:"Mais"}),!f$1&&jsx(e,{orientation:"vertical",flexItem:!0})]}),(H||Z)&&jsx(o,{open:A.open,anchorEl:A.open,onClose:A.onClose,disabledArrow:!0,children:jsx(Yo,{onClose:A.onClose,children:E})})]}),!f$1&&I&&jsxs(Fragment,{children:[I,H&&jsx(e,{orientation:"vertical",flexItem:!0})]})]}),uo&&jsxs(g,{breakpoint:l$1,children:[jsx(a$3,{value:oe,placeholder:"Buscar",onSearch:ao,onChange:t=>ee?.(t.target.value),size:"small",fullWidth:!0,iconPosition:"start"}),f$1&&I&&jsx(w,{ml:1,children:I})]})]}),so&&so,!fo&&jsx(p,{})]}),f$1?jsxs(a$4,{isFetching:lo,fetching:jsx(a$5,{}),isLoading:R,loading:jsx(q,{}),isEmpty:s.length===0,empty:jsxs(w,{flex:1,direction:"column",...h$1,children:[C&&C,jsx(w,{flex:1,alignItems:"center",justifyContent:"center",children:P?.noRowsOverlay?jsx(P.noRowsOverlay,{}):jsx(Ko,{variant:"body2",color:"text.secondary",children:"Nenhum registro encontrado"})})]}),children:[jsxs(w,{direction:"column",flex:1,minHeight:0,...h$1,children:[C&&C,jsx(a$6,{fillContent:!0,ref:po,children:s.map(t=>jsx(Fragment$1,{children:K(t)},t.id))})]}),!co&&d$1&&jsx(h,{children:jsx(r,{count:y,page:u.page,rowsPerPage:u.pageSize,onPageChange:t=>d$1?.(t,u.pageSize),onRowsPerPageChange:t=>d$1?.(u.page,t)})})]}):jsxs(j,{children:[ue,jsx(a$7,{columns:c$1,rows:s,slots:pe,slotProps:{panel:{anchorEl:ie},toolbar:{setFilterButtonEl:ae,showQuickFilter:!0},...te},columnHeaderHeight:48,getRowHeight:()=>68,loading:R,fetching:lo,hideFooter:co,onRowsScrollEnd:O,scrollEndThreshold:J,...k$1})]}),ne&&jsx(Fe,{})]},R?"loading":"data")},Ft=memo(_e,Ve);
25
+
26
+ export { Jo as a, Yo as b, Zo as c, Ft as d };
27
+ //# sourceMappingURL=chunk-75PS5WVR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/DataView/index.tsx","../src/components/DataView/contants.ts","../src/components/DataView/BulkActionsBar.tsx","../src/components/DataView/DesktopFooter.tsx","../src/components/DataView/EnhancedMoreActions.ts","../src/components/DataView/Toolbar.tsx"],"names":["Fragment","memo","useCallback","useEffect","useMemo","useRef","useState","isEqual","Button","IconButton","LinearProgress","Stack","Tooltip","Typography","DATAGRID_ACTIONS","LoadingButton","jsx","jsxs","resolveDynamicBoolean","value","context","getConfirmationConfig","confirmation","BulkActionsBar","actions","confirmAction","setConfirmAction","runningActionId","setRunningActionId","visibleActions","action","executeAction","handleActionClick","handleConfirm","handleCloseConfirm","confirmationConfig","SelectionActions","disabled","loading","Icon_default","Confirm_default","BulkActionsBar_default","DesktopFooter","rowCount","page","rowsPerPage","onPaginationChange","DesktopPaginationContainer","Pagination_default","newPage","newRowsPerPage","DesktopFooter_default","Children","cloneElement","isValidElement","createEnhanceMoreActions","children","onClose","child","originalOnClick","enhancedProps","args","childProps","EnhancedMoreActions","EnhancedMoreActions_default","forwardRef","GridToolbarColumnsButton","ColumnsButton","props","ref","Toolbar","setFilterButtonEl","handleColumnsButtonRef","button","Portal_default","Toolbar_default","DataViewComponent","title","header","headerProps","breakpoint","columns","rows","mobileSlots","mobileSlotsProps","mobileRender","paginationModel","moreActions","onAdd","onSearch","searchValue","onSearchChange","slots","slotProps","fetching","fetchingNextPage","containerProps","hideFooter","showColumnButton","filterButton","activeFilters","bulkActions","onRowsScrollEnd","scrollEndThreshold","others","popover","usePopover_default","isMobile","useResponsive_default","filterButtonEl","scrollableNodeRef","node","handleScroll","scrollTop","scrollHeight","clientHeight","showSearch","showAdd","showActions","showMoreActions","showHeaderMoreActions","showTopbarMoreActions","showActionsContainer","showTopbar","selectionModel","numSelected","getRowId","row","pageRowIds","pageRowIdSet","selectedOnPageCount","count","id","allSelected","someSelected","onRowSelectionModelChange","emitRowSelectionChange","nextSelection","clearSelection","selectedIdSet","selectedRowsInPage","bulkActionContext","hasBulkActions","handleSelectAllToggle","_event","checked","selectedIds","FooterComponent","dataGridSlots","selectionOverlay","SelectionOverlay","SelectionCheckbox","SelectionCount","Container","Header","ActionsContainer","ActionsDivider","Topbar","ToolbarActionsDivider","MoreActionsPopover","SearchContainer","SearchInput_default","e","TopbarDivider","Result_default","FixedProgressBar_default","LoadingProgress","Scrollbar_default","MobilePaginationContainer","DataGridWrapper","DataGrid_default","DataView_default"],"mappings":"ykBAAA,OAEE,YAAAA,GACA,QAAAC,GACA,eAAAC,EACA,aAAAC,GACA,WAAAC,EACA,UAAAC,GACA,YAAAC,OACK,QACP,OAAOC,OAAa,qBACpB,OAAOC,OAAY,uBACnB,OAAOC,OAAgB,2BACvB,OAAOC,OAAoB,+BAC3B,OAAOC,MAAW,sBAClB,OAAOC,OAAa,wBACpB,OAAOC,OAAgB,2BChBhB,IAAMC,EAAmB,mBCAhC,OAAS,eAAAZ,EAAa,WAAAE,GAAS,YAAAE,OAAgB,QAC/C,OAAOS,OAAmB,yBAiFtB,mBAAAf,GAmBc,OAAAgB,EAnBd,QAAAC,OAAA,oBAnEJ,IAAMC,GAAwB,CAC5BC,EACAC,IACI,OAAOD,GAAU,WAAaA,EAAMC,CAAO,EAAI,CAAC,CAACD,EAEjDE,GACJC,GACG,CACH,GAAKA,EACL,OAAIA,IAAiB,GAAa,CAAC,EAE5BA,CACT,EAEMC,GAAiB,CAA8B,CACnD,QAAAC,EACA,QAAAJ,CACF,IAA8B,CAC5B,GAAM,CAACK,EAAeC,CAAgB,EAAIpB,GACxC,IACF,EACM,CAACqB,EAAiBC,CAAkB,EAAItB,GAAwB,IAAI,EAEpEuB,EAAiBzB,GACrB,IACEoB,EAAQ,OAAOM,GAAU,CAACZ,GAAsBY,EAAO,OAAQV,CAAO,CAAC,EACzE,CAACI,EAASJ,CAAO,CACnB,EAEMW,EAAgB7B,EACpB,MAAO4B,GAA0B,CAC/BF,EAAmBE,EAAO,EAAE,EAC5B,GAAI,CACF,MAAMA,EAAO,QAAQV,CAAO,CAC9B,QAAE,CACAQ,EAAmB,IAAI,CACzB,CACF,EACA,CAACR,CAAO,CACV,EAEMY,EAAoB9B,EACvB4B,GAA0B,CACzB,GAAIA,EAAO,aAAc,CACvBJ,EAAiBI,CAAM,EACvB,OAGGC,EAAcD,CAAM,EAAE,MAAM,IAAG,EAAY,CAClD,EACA,CAACC,CAAa,CAChB,EAEME,EAAgB/B,EAAY,SAAY,CACvCuB,IACL,MAAMM,EAAcN,CAAa,EACjCC,EAAiB,IAAI,EACvB,EAAG,CAACD,EAAeM,CAAa,CAAC,EAE3BG,EAAqBhC,EAAY,IAAM,CACvCyB,GACJD,EAAiB,IAAI,CACvB,EAAG,CAACC,CAAe,CAAC,EAEdQ,EAAqBd,GAAsBI,GAAe,YAAY,EAE5E,OACER,GAAAjB,GAAA,CACE,UAAAgB,EAACoB,GAAA,CACE,SAAAP,EAAe,IAAIC,GAAU,CAC5B,IAAMO,EACJ,CAAC,CAACV,GACFT,GAAsBY,EAAO,SAAUV,CAAO,EAC1CkB,EAAUX,IAAoBG,EAAO,GAE3C,OACEd,EAACD,GAAA,CAEC,KAAK,QACL,QAAQ,OACR,MAAOe,EAAO,OAAS,UACvB,QAAS,IAAME,EAAkBF,CAAM,EACvC,QAASQ,EACT,SAAUD,EACV,UACE,OAAOP,EAAO,MAAS,SACrBd,EAACuB,EAAA,CAAK,KAAMT,EAAO,KAAM,EAEzBA,EAAO,KAIV,SAAAA,EAAO,OAfHA,EAAO,EAgBd,CAEJ,CAAC,EACH,EAECL,GACCT,EAACwB,GAAA,CACC,KAAI,GACJ,QAASN,EACT,UAAW,IAAM,CACVD,EAAc,EAAE,MAAM,IAAG,EAAY,CAC5C,EACA,WAAYN,IAAoBF,EAAc,GAC9C,WACEU,GAAoB,OACpB,mDAEF,QACEA,GAAoB,SACpB,2DAEF,iBAAkBA,GAAoB,kBAAoB,WAC1D,kBACEA,GAAoB,mBAAqB,YAE3C,mBAAoB,CAClB,MAAOV,EAAc,OAAS,SAChC,EACF,GAEJ,CAEJ,EAEOgB,GAAQlB,GC9If,OAAS,QAAAtB,OAAY,QACrB,OAAOU,OAAW,sBAClB,OAAOE,OAAgB,2BAcjB,OACE,OAAAG,GADF,QAAAC,OAAA,oBARN,IAAMyB,GAAgB,CAAC,CACrB,SAAAC,EACA,KAAAC,EACA,YAAAC,EACA,mBAAAC,CACF,IAEI7B,GAAC8B,GAAA,CACC,UAAA9B,GAACN,GAAA,CAAM,UAAU,MAAM,WAAW,SAAS,IAAK,GAC9C,UAAAK,GAACH,GAAA,CAAW,QAAQ,QAAQ,MAAM,gBAAgB,2BAElD,EACAG,GAACH,GAAA,CAAW,QAAQ,QAAS,SAAA8B,EAAS,GACxC,EAEA3B,GAACgC,EAAA,CACC,MAAOL,EACP,KAAMC,EACN,YAAaC,EACb,aAAcI,GAAWH,EAAmBG,EAASJ,CAAW,EAChE,oBAAqBK,GACnBJ,EAAmBF,EAAMM,CAAc,EAE3C,GACF,EAIGC,GAAQlD,GAAKyC,EAAa,ECpCjC,OACE,YAAAU,GACA,gBAAAC,GACA,kBAAAC,GACA,QAAArD,OAGK,QAIP,IAAMsD,GAA2B,CAC/BC,EACAC,IAEOL,GAAS,IAAII,EAAUE,GAAS,CACrC,GAAI,CAACJ,GAAeI,CAAK,EACvB,OAAOA,EAGT,IAAMC,EACJD,EAAM,MACN,QAEIE,EAGF,CAAC,EAELA,EAAc,QAAU,IAAIC,IAAoB,CAC9CJ,EAAQ,EACJE,GACFA,EAAgB,GAAGE,CAAI,CAE3B,EAEA,IAAMC,EAAaJ,EAAM,MACzB,OAAII,GAAY,WACdF,EAAc,SAAWL,GACvBO,EAAW,SACXL,CACF,GAGKJ,GAAaK,EAAuBE,CAAa,CAC1D,CAAC,EAGGG,GAAsB,CAAC,CAC3B,SAAAP,EACA,QAAAC,CACF,IACOD,EACED,GAAyBC,EAAUC,CAAO,EAD3B,KAIjBO,GAAQ/D,GAAK8D,EAAmB,ECxDvC,OAAS,cAAAE,GAAY,eAAA/D,OAAmB,QACxC,OAAOM,OAA6B,uBACpC,OAAS,4BAAA0D,OAAgC,2BAcxB,cAAAlD,MAAA,oBANjB,IAAMmD,GAAgBF,GACpB,CAAC,CAAE,SAAAT,EAAU,GAAGY,CAAM,EAAGC,IACvBrD,EAACR,GAAA,CACE,GAAG4D,EACJ,IAAKC,EACL,MAAM,UACN,UAAWrD,EAACuB,EAAA,CAAK,KAAK,UAAU,EAE/B,SAAAiB,GAAY,UACf,CAEJ,EAEAW,GAAc,YAAc,gBAE5B,IAAMG,GAAU,CAAC,CAAE,kBAAAC,CAAkB,IAAoB,CACvD,IAAMC,EAAyBtE,GAC5BuE,GAAqC,CACpCF,EAAkBE,CAAM,CAC1B,EACA,CAACF,CAAiB,CACpB,EAEA,OACEvD,EAAC0D,GAAA,CAAO,UAAW5D,EACjB,SAAAE,EAACkD,GAAA,CACC,IAAKM,EACL,UAAW,CACT,OAAQ,CACN,MAAO,UACP,UAAWxD,EAACuB,EAAA,CAAK,KAAK,UAAU,EAChC,SAAU,SACZ,CACF,EACF,EACF,CAEJ,EAEOoC,GAAQL,GL4LP,OA8EU,YAAAtE,EA9EV,OAAAgB,EA8CF,QAAAC,MA9CE,oBAlLR,IAAM2D,GAAoB,CAAkD,CAC1E,MAAAC,EACA,OAAAC,EACA,YAAAC,EACA,WAAAC,EAAa,KACb,QAAAC,EACA,KAAAC,EAAO,CAAC,EACR,YAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,SAAA1C,EAAW,EACX,gBAAA2C,EAAkB,CAAE,KAAM,EAAG,SAAU,EAAG,EAC1C,mBAAAxC,EACA,QAAAtB,EACA,YAAA+D,EACA,MAAAC,EACA,SAAAC,GACA,YAAAC,GACA,eAAAC,GACA,MAAAC,EACA,UAAAC,GACA,QAAAvD,EACA,SAAAwD,GACA,iBAAAC,GACA,eAAAC,GAAiB,CAAE,OAAQ,IAAK,UAAW,GAAI,EAC/C,WAAAC,GACA,iBAAAC,EAAmB,GACnB,aAAAC,EACA,cAAAC,GACA,YAAAC,GACA,gBAAAC,EACA,mBAAAC,EAAqB,IACrB,GAAGC,CACL,IAAwB,CACtB,IAAMC,EAAUC,GAAW,EACrBC,EAAWC,GAAc,OAAQ5B,CAAU,EAC3C,CAAC6B,GAAgBtC,EAAiB,EACtCjE,GAAmC,IAAI,EACnCwG,GAAoBzG,GAA8B,IAAI,EAE5DF,GAAU,IAAM,CACd,IAAM4G,EAAOD,GAAkB,QAE/B,GAAI,CAACC,GAAQ,CAACJ,GAAY,CAACL,EAAiB,OAE5C,IAAMU,EAAe,IAAM,CACzB,GAAM,CAAE,UAAAC,EAAW,aAAAC,EAAc,aAAAC,CAAa,EAAIJ,EACzBG,EAAeD,EAAYE,GAC5BZ,GACrBD,EAA+B,CAEpC,EAEA,OAAAS,EAAK,iBAAiB,SAAUC,EAAc,CAAE,QAAS,EAAK,CAAC,EAExD,IAAM,CACXD,EAAK,oBAAoB,SAAUC,CAAY,CACjD,CACF,EAAG,CAACL,EAAUL,EAAiBC,EAAoBrB,EAAK,MAAM,CAAC,EAE/D,IAAMkC,GAAa,CAAC,CAAC3B,GACf4B,EAAU,CAAC,CAAC7B,EACZ8B,EAAc,CAAC,CAAC9F,EAChB+F,EAAkB,CAAC,CAAChC,EACpBiC,EAAwBb,GAAYY,EACpCE,EAAwB,CAACd,GAAYY,EACrCG,GAAuBJ,GAAeD,GAAWG,EACjDG,GACJF,GACAL,IACAlB,GACA,CAAC,CAACC,GACF,CAACQ,EAEGiB,EAAiBxH,EAAQ,IACzB,MAAM,QAAQoG,EAAO,iBAAiB,EACjCA,EAAO,kBAET,CAAC,EACP,CAACA,EAAO,iBAAiB,CAAC,EACvBqB,EAAcD,EAAe,OAE7BE,EAAW1H,EACf,IACGoG,EAAO,WAAcuB,GAA2BA,EAAI,IAGvD,CAACvB,EAAO,QAAQ,CAClB,EACMwB,EAAa5H,EACjB,IAAM8E,EAAK,IAAI6C,GAAOD,EAASC,CAAG,CAAC,EACnC,CAAC7C,EAAM4C,CAAQ,CACjB,EACMG,EAAe7H,EAAQ,IAAM,IAAI,IAAI4H,CAAU,EAAG,CAACA,CAAU,CAAC,EAC9DE,GAAsB9H,EAC1B,IACEwH,EAAe,OACb,CAACO,EAAOC,IAAOD,GAASF,EAAa,IAAIG,CAAE,EAAI,EAAI,GACnD,CACF,EACF,CAACR,EAAgBK,CAAY,CAC/B,EACMI,GACJL,EAAW,OAAS,GAAKE,KAAwBF,EAAW,OACxDM,GAAeJ,GAAsB,GAAK,CAACG,GAE3C,CAAE,0BAAAE,CAA0B,EAAI/B,EAChCgC,EAAyBtI,EAC5BuI,GAA+B,CACzBF,GAEHA,EAIAE,CAAa,CACjB,EACA,CAACF,CAAyB,CAC5B,EAEMG,EAAiBxI,EAAY,IAAM,CACvCsI,EAAuB,CAAC,CAAC,CAC3B,EAAG,CAACA,CAAsB,CAAC,EAErBG,GAAgBvI,EACpB,IAAM,IAAI,IAAIwH,CAAc,EAC5B,CAACA,CAAc,CACjB,EACMgB,GAAqBxI,EACzB,IAAM8E,EAAK,OAAO6C,GAAOY,GAAc,IAAIb,EAASC,CAAG,CAAC,CAAC,EACzD,CAAC7C,EAAMyD,GAAeb,CAAQ,CAChC,EAEMe,GAA0CzI,EAC9C,KAAO,CACL,YAAawH,EACb,mBAAoBgB,GACpB,cAAef,EACf,eAAAa,CACF,GACA,CAACd,EAAgBgB,GAAoBf,EAAaa,CAAc,CAClE,EAEMI,GAAiB,CAAC,CAACzC,IAAa,OAEhC0C,GAAwB7I,EAC5B,CAAC8I,EAAuCC,IAAqB,CAC3D,GAAI,CAACV,EAA2B,OAEhC,GAAIU,EAAS,CACX,IAAMC,EAAc,IAAI,IAAItB,CAAc,EACpCa,EAAgB,CAAC,GAAGb,CAAc,EAExCI,EAAW,QAAQI,IAAM,CAClBc,EAAY,IAAId,EAAE,GACrBK,EAAc,KAAKL,EAAE,CAEzB,CAAC,EAEDI,EAAuBC,CAAa,EACpC,OAGF,IAAMA,EAAgBb,EAAe,OAAOQ,GAAM,CAACH,EAAa,IAAIG,CAAE,CAAC,EACvEI,EAAuBC,CAAa,CACtC,EACA,CACEF,EACAX,EACAI,EACAC,EACAO,CACF,CACF,EAEMW,GAAkBjJ,EAAY,IAC9B4C,EAEA9B,EAACmC,GAAA,CACC,SAAUR,EACV,KAAM2C,EAAgB,KACtB,YAAaA,EAAgB,SAC7B,mBAAoBxC,EACtB,EAIG,KACN,CAACH,EAAU2C,EAAiBxC,CAAkB,CAAC,EAE5CsG,GAAoChJ,EACxC,KAAO,CACL,GAAGwF,EACH,OAAQuD,GACR,GAAIjD,GACF,CAACN,GAAO,SAAW,CACjB,QAASjB,EACX,CACJ,GACA,CAACiB,EAAOuD,GAAiBjD,CAAgB,CAC3C,EAEMmD,GAAmBP,IAAkBjB,EAAc,GACvD5G,EAACqI,GAAA,CACC,UAAAtI,EAACJ,GAAA,CAAQ,MAAM,+BACb,SAAAI,EAACuI,GAAA,CACC,KAAK,QACL,QAASlB,GACT,cAAeC,GACf,SAAUS,GACZ,EACF,EAEA/H,EAACJ,GAAA,CAAQ,MAAM,qBACb,SAAAI,EAACP,GAAA,CACC,KAAK,QACL,QAASiI,EACT,aAAW,qBACX,GAAI,CAAE,MAAO,cAAe,EAE5B,SAAA1H,EAACuB,EAAA,CAAK,KAAK,oBAAoB,MAAO,GAAI,OAAQ,GAAI,EACxD,EACF,EAEAtB,EAACuI,GAAA,CAAe,QAAQ,QACrB,UAAA3B,EAAY,eAAaA,EAAc,EAAI,IAAM,IACpD,EAEA7G,EAACyB,GAAA,CAAe,QAAS4D,IAAe,CAAC,EAAG,QAASwC,GAAmB,GAC1E,EAGF,OACE5H,EAACwI,GAAA,CAEC,WAAYzE,EACX,GAAGgB,GACJ,KAAM1D,EAAU,EAAI,OACpB,UAAWA,GAAW4C,EAAK,SAAW,EAAI,IAAM,OAE/C,UAAAJ,EACC9D,EAACL,EAAA,CAAM,EAAG,EAAI,GAAGoE,EACd,SAAAD,EACH,EAEA7D,EAAAjB,EAAA,CACE,UAAAiB,EAACyI,GAAA,CAAO,WAAY1E,EAClB,UAAAhE,EAACH,GAAA,CAAW,QAAQ,WAAW,MAAM,iBAAiB,OAAM,GACzD,SAAAgE,EACH,EAEC6C,IACCzG,EAAC0I,GAAA,CAAiB,WAAY3E,EAC3B,UAAAsC,GAAe9F,EAEf6F,GACCpG,EAAAjB,EAAA,CACG,UAAAsH,GACCtG,EAAC4I,GAAA,CAAe,YAAY,WAAW,SAAQ,GAAC,EAGlD5I,EAACR,GAAA,CACC,UAAWQ,EAACuB,EAAA,CAAK,KAAK,aAAa,EACnC,QAAQ,YACR,QAASiD,EACV,qBAED,GACF,EAGDgC,GACCvG,EAAAjB,EAAA,CACI,WAAAsH,GAAeD,IACfrG,EAAC4I,GAAA,CAAe,YAAY,WAAW,SAAQ,GAAC,EAGlD5I,EAACR,GAAA,CACC,MAAM,UACN,UAAWQ,EAACuB,EAAA,CAAK,KAAK,YAAY,EAClC,KAAK,QACL,QAASkE,EAAQ,OAClB,gBAED,GACF,GAEJ,GAEJ,EAECkB,IACC1G,EAAC4I,GAAA,CAAO,WAAY7E,EAClB,UAAA/D,EAACN,EAAA,CACC,KAAM,EACN,UAAU,MACV,WAAW,SACX,GAAIG,EACJ,IAAK,GAEJ,UAAAyG,GACCtG,EAAAjB,EAAA,CACG,UAAAyH,GACCxG,EAAAjB,EAAA,CACE,UAAAgB,EAACR,GAAA,CACC,MAAM,UACN,UAAWQ,EAACuB,EAAA,CAAK,KAAK,YAAY,EAClC,KAAK,QACL,QAASkE,EAAQ,OAClB,gBAED,EAEC,CAACE,GACA3F,EAAC8I,GAAA,CACC,YAAY,WACZ,SAAQ,GACV,GAEJ,GAGArC,GAAyBD,IACzBxG,EAAC+I,GAAA,CACC,KAAMtD,EAAQ,KACd,SAAUA,EAAQ,KAClB,QAASA,EAAQ,QACjB,cAAe,GAEf,SAAAzF,EAACgD,GAAA,CAAoB,QAASyC,EAAQ,QACnC,SAAAlB,EACH,EACF,GAEJ,EAGD,CAACoB,GAAYR,GACZlF,EAAAjB,EAAA,CACG,UAAAmG,EAEAsB,GACCzG,EAAC8I,GAAA,CAAsB,YAAY,WAAW,SAAQ,GAAC,GAE3D,GAEJ,EAEC1C,IACCnG,EAAC+I,GAAA,CAAgB,WAAYhF,EAC3B,UAAAhE,EAACiJ,GAAA,CACC,MAAOvE,GACP,YAAY,SACZ,SAAUD,GACV,SAAUyE,GAAKvE,KAAiBuE,EAAE,OAAO,KAAK,EAC9C,KAAK,QACL,UAAS,GACT,aAAa,QACf,EACCvD,GAAYR,GACXnF,EAACL,EAAA,CAAM,GAAI,EAAI,SAAAwF,EAAa,GAEhC,GAEJ,EAGDC,IAAiBA,GAEjB,CAACuB,IAAc3G,EAACmJ,GAAA,EAAc,GACjC,EAGDxD,EACC1F,EAACmJ,GAAA,CACC,WAAYtE,GACZ,SAAU9E,EAACqJ,GAAA,EAAiB,EAC5B,UAAW/H,EACX,QAAStB,EAACsJ,GAAA,EAAgB,EAC1B,QAASpF,EAAK,SAAW,EACzB,MACEjE,EAACN,EAAA,CAAM,KAAM,EAAG,UAAU,SAAU,GAAGyE,EACpC,UAAAD,GAAeA,EAEhBnE,EAACL,EAAA,CAAM,KAAM,EAAG,WAAW,SAAS,eAAe,SAChD,SAAAiF,GAAO,cACN5E,EAAC4E,EAAM,cAAN,EAAoB,EAErB5E,EAACH,GAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,sCAEnD,EAEJ,GACF,EAGF,UAAAI,EAACN,EAAA,CACC,UAAU,SACV,KAAM,EACN,UAAW,EACV,GAAGyE,EAEH,UAAAD,GAAeA,EAEhBnE,EAACuJ,GAAA,CAAU,YAAW,GAAC,IAAKzD,GACzB,SAAA5B,EAAK,IAAI6C,GACR/G,EAAChB,GAAA,CAAuB,SAAAqF,EAAa0C,CAAG,GAAzBA,EAAI,EAAuB,CAC3C,EACH,GACF,EAEC,CAAC9B,IAAcnD,GACd9B,EAACwJ,GAAA,CACC,SAAAxJ,EAACgC,EAAA,CACC,MAAOL,EACP,KAAM2C,EAAgB,KACtB,YAAaA,EAAgB,SAC7B,aAAcrC,GACZH,IAAqBG,EAASqC,EAAgB,QAAQ,EAExD,oBAAqBpC,GACnBJ,IAAqBwC,EAAgB,KAAMpC,CAAc,EAE7D,EACF,GAEJ,EAEAjC,EAACwJ,GAAA,CACE,UAAApB,GACDrI,EAAC0J,GAAA,CACC,QAASzF,EACT,KAAMC,EACN,MAAOkE,GACP,UAAW,CACT,MAAO,CAAE,SAAUvC,EAAe,EAClC,QAAS,CACP,kBAAAtC,GACA,gBAAiB,EACnB,EACA,GAAGsB,EACL,EACA,mBAAoB,GACpB,aAAc,IAAM,GACpB,QAASvD,EACT,SAAUwD,GACV,WAAYG,GACZ,gBAAiBK,EACjB,mBAAoBC,EACnB,GAAGC,EACN,GACF,EAGDT,IAAoB/E,EAACN,GAAA,EAAe,IA5NhC4B,EAAU,UAAY,MA6N7B,CAEJ,EAEOqI,GAAQ1K,GAAK2E,GAAmBrE,EAAO","sourcesContent":["import {\n ChangeEvent,\n Fragment,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport isEqual from 'react-fast-compare';\nimport Button from '@mui/material/Button';\nimport IconButton from '@mui/material/IconButton';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Stack from '@mui/material/Stack';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\nimport {\n GridRowId,\n GridSlotsComponentsProps,\n GridValidRowModel,\n} from '@mui/x-data-grid-premium';\n\nimport DataGrid from 'components/DataGrid';\nimport FixedProgressBar from 'components/FixedProgressBar';\nimport Icon from 'components/Icon';\nimport Result from 'components/Result';\nimport Scrollbar from 'components/Scrollbar';\nimport SearchInput from 'components/SearchInput';\nimport usePopover from 'hooks/usePopover';\nimport useResponsive from 'hooks/useResponsive';\n\nimport { DATAGRID_ACTIONS } from './contants';\nimport BulkActionsBar from './BulkActionsBar';\nimport DesktopFooter from './DesktopFooter';\nimport EnhancedMoreActions from './EnhancedMoreActions';\nimport Pagination from './Pagination';\nimport type { BulkActionContext } from './bulkActions';\nimport { DataGridSlotsProps, DataViewProps } from './props';\nimport {\n ActionsContainer,\n ActionsDivider,\n Container,\n DataGridWrapper,\n Header,\n LoadingProgress,\n MobilePaginationContainer,\n MoreActionsPopover,\n SearchContainer,\n SelectionActions,\n SelectionCheckbox,\n SelectionCount,\n SelectionOverlay,\n ToolbarActionsDivider,\n Topbar,\n TopbarDivider,\n} from './styles';\nimport Toolbar from './Toolbar';\n\nconst DataViewComponent = <T extends GridValidRowModel = GridValidRowModel>({\n title,\n header,\n headerProps,\n breakpoint = 'md',\n columns,\n rows = [],\n mobileSlots,\n mobileSlotsProps,\n mobileRender,\n rowCount = 0,\n paginationModel = { page: 0, pageSize: 25 },\n onPaginationChange,\n actions,\n moreActions,\n onAdd,\n onSearch,\n searchValue,\n onSearchChange,\n slots,\n slotProps,\n loading,\n fetching,\n fetchingNextPage,\n containerProps = { height: 562, maxHeight: 562 },\n hideFooter,\n showColumnButton = false,\n filterButton,\n activeFilters,\n bulkActions,\n onRowsScrollEnd,\n scrollEndThreshold = 200,\n ...others\n}: DataViewProps<T>) => {\n const popover = usePopover();\n const isMobile = useResponsive('down', breakpoint);\n const [filterButtonEl, setFilterButtonEl] =\n useState<HTMLButtonElement | null>(null);\n const scrollableNodeRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const node = scrollableNodeRef.current;\n\n if (!node || !isMobile || !onRowsScrollEnd) return;\n\n const handleScroll = () => {\n const { scrollTop, scrollHeight, clientHeight } = node;\n const distanceToBottom = scrollHeight - scrollTop - clientHeight;\n if (distanceToBottom <= scrollEndThreshold) {\n (onRowsScrollEnd as () => void)();\n }\n };\n\n node.addEventListener('scroll', handleScroll, { passive: true });\n\n return () => {\n node.removeEventListener('scroll', handleScroll);\n };\n }, [isMobile, onRowsScrollEnd, scrollEndThreshold, rows.length]);\n\n const showSearch = !!onSearch;\n const showAdd = !!onAdd;\n const showActions = !!actions;\n const showMoreActions = !!moreActions;\n const showHeaderMoreActions = isMobile && showMoreActions;\n const showTopbarMoreActions = !isMobile && showMoreActions;\n const showActionsContainer = showActions || showAdd || showHeaderMoreActions;\n const showTopbar =\n showTopbarMoreActions ||\n showSearch ||\n showColumnButton ||\n !!filterButton ||\n !isMobile;\n\n const selectionModel = useMemo(() => {\n if (Array.isArray(others.rowSelectionModel)) {\n return others.rowSelectionModel;\n }\n return [];\n }, [others.rowSelectionModel]);\n const numSelected = selectionModel.length;\n\n const getRowId = useMemo(\n () =>\n (others.getRowId ?? ((row: GridValidRowModel) => row.id)) as (\n row: GridValidRowModel,\n ) => GridRowId,\n [others.getRowId],\n );\n const pageRowIds = useMemo(\n () => rows.map(row => getRowId(row)),\n [rows, getRowId],\n );\n const pageRowIdSet = useMemo(() => new Set(pageRowIds), [pageRowIds]);\n const selectedOnPageCount = useMemo(\n () =>\n selectionModel.reduce(\n (count, id) => count + (pageRowIdSet.has(id) ? 1 : 0),\n 0,\n ),\n [selectionModel, pageRowIdSet],\n );\n const allSelected =\n pageRowIds.length > 0 && selectedOnPageCount === pageRowIds.length;\n const someSelected = selectedOnPageCount > 0 && !allSelected;\n\n const { onRowSelectionModelChange } = others;\n const emitRowSelectionChange = useCallback(\n (nextSelection: GridRowId[]) => {\n if (!onRowSelectionModelChange) return;\n (\n onRowSelectionModelChange as unknown as (\n model: GridRowId[],\n details?: unknown,\n ) => void\n )(nextSelection);\n },\n [onRowSelectionModelChange],\n );\n\n const clearSelection = useCallback(() => {\n emitRowSelectionChange([]);\n }, [emitRowSelectionChange]);\n\n const selectedIdSet = useMemo(\n () => new Set(selectionModel),\n [selectionModel],\n );\n const selectedRowsInPage = useMemo(\n () => rows.filter(row => selectedIdSet.has(getRowId(row))),\n [rows, selectedIdSet, getRowId],\n );\n\n const bulkActionContext: BulkActionContext<T> = useMemo(\n () => ({\n selectedIds: selectionModel,\n selectedRowsInPage: selectedRowsInPage as T[],\n selectedCount: numSelected,\n clearSelection,\n }),\n [selectionModel, selectedRowsInPage, numSelected, clearSelection],\n );\n\n const hasBulkActions = !!bulkActions?.length;\n\n const handleSelectAllToggle = useCallback(\n (_event: ChangeEvent<HTMLInputElement>, checked: boolean) => {\n if (!onRowSelectionModelChange) return;\n\n if (checked) {\n const selectedIds = new Set(selectionModel);\n const nextSelection = [...selectionModel];\n\n pageRowIds.forEach(id => {\n if (!selectedIds.has(id)) {\n nextSelection.push(id);\n }\n });\n\n emitRowSelectionChange(nextSelection);\n return;\n }\n\n const nextSelection = selectionModel.filter(id => !pageRowIdSet.has(id));\n emitRowSelectionChange(nextSelection);\n },\n [\n onRowSelectionModelChange,\n selectionModel,\n pageRowIds,\n pageRowIdSet,\n emitRowSelectionChange,\n ],\n );\n\n const FooterComponent = useCallback(() => {\n if (onPaginationChange) {\n return (\n <DesktopFooter\n rowCount={rowCount}\n page={paginationModel.page}\n rowsPerPage={paginationModel.pageSize}\n onPaginationChange={onPaginationChange}\n />\n );\n }\n\n return null;\n }, [rowCount, paginationModel, onPaginationChange]);\n\n const dataGridSlots: DataGridSlotsProps = useMemo(\n () => ({\n ...slots,\n footer: FooterComponent as unknown as DataGridSlotsProps['footer'],\n ...(showColumnButton &&\n !slots?.toolbar && {\n toolbar: Toolbar as unknown as DataGridSlotsProps['toolbar'],\n }),\n }),\n [slots, FooterComponent, showColumnButton],\n );\n\n const selectionOverlay = hasBulkActions && numSelected > 0 && (\n <SelectionOverlay>\n <Tooltip title=\"Selecione todos nessa pagina\">\n <SelectionCheckbox\n size=\"small\"\n checked={allSelected}\n indeterminate={someSelected}\n onChange={handleSelectAllToggle}\n />\n </Tooltip>\n\n <Tooltip title=\"Desselecionar tudo\">\n <IconButton\n size=\"small\"\n onClick={clearSelection}\n aria-label=\"Desselecionar tudo\"\n sx={{ color: 'primary.main' }}\n >\n <Icon icon=\"CLOSE_MARK_BUTTON\" width={18} height={18} />\n </IconButton>\n </Tooltip>\n\n <SelectionCount variant=\"body2\">\n {numSelected} selecionado{numSelected > 1 ? 's' : ''}\n </SelectionCount>\n\n <BulkActionsBar actions={bulkActions ?? []} context={bulkActionContext} />\n </SelectionOverlay>\n );\n\n return (\n <Container\n key={loading ? 'loading' : 'data'}\n breakpoint={breakpoint}\n {...containerProps}\n flex={loading ? 1 : undefined}\n minHeight={loading || rows.length === 0 ? 562 : undefined}\n >\n {header ? (\n <Stack p={3} {...headerProps}>\n {header}\n </Stack>\n ) : (\n <>\n <Header breakpoint={breakpoint}>\n <Typography variant=\"overline\" color=\"text.secondary\" noWrap>\n {title}\n </Typography>\n\n {showActionsContainer && (\n <ActionsContainer breakpoint={breakpoint}>\n {showActions && actions}\n\n {showAdd && (\n <>\n {showActions && (\n <ActionsDivider orientation=\"vertical\" flexItem />\n )}\n\n <Button\n startIcon={<Icon icon=\"SIMPLE_ADD\" />}\n variant=\"contained\"\n onClick={onAdd}\n >\n Adicionar\n </Button>\n </>\n )}\n\n {showHeaderMoreActions && (\n <>\n {(showActions || showAdd) && (\n <ActionsDivider orientation=\"vertical\" flexItem />\n )}\n\n <Button\n color=\"inherit\"\n startIcon={<Icon icon=\"MORE_BOLD\" />}\n size=\"small\"\n onClick={popover.onOpen}\n >\n Mais\n </Button>\n </>\n )}\n </ActionsContainer>\n )}\n </Header>\n\n {showTopbar && (\n <Topbar breakpoint={breakpoint}>\n <Stack\n flex={1}\n direction=\"row\"\n alignItems=\"center\"\n id={DATAGRID_ACTIONS}\n gap={0.5}\n >\n {showMoreActions && (\n <>\n {showTopbarMoreActions && (\n <>\n <Button\n color=\"inherit\"\n startIcon={<Icon icon=\"MORE_BOLD\" />}\n size=\"small\"\n onClick={popover.onOpen}\n >\n Mais\n </Button>\n\n {!isMobile && (\n <ToolbarActionsDivider\n orientation=\"vertical\"\n flexItem\n />\n )}\n </>\n )}\n\n {(showTopbarMoreActions || showHeaderMoreActions) && (\n <MoreActionsPopover\n open={popover.open}\n anchorEl={popover.open}\n onClose={popover.onClose}\n disabledArrow={true}\n >\n <EnhancedMoreActions onClose={popover.onClose}>\n {moreActions}\n </EnhancedMoreActions>\n </MoreActionsPopover>\n )}\n </>\n )}\n\n {!isMobile && filterButton && (\n <>\n {filterButton}\n\n {showTopbarMoreActions && (\n <ToolbarActionsDivider orientation=\"vertical\" flexItem />\n )}\n </>\n )}\n </Stack>\n\n {showSearch && (\n <SearchContainer breakpoint={breakpoint}>\n <SearchInput\n value={searchValue}\n placeholder=\"Buscar\"\n onSearch={onSearch}\n onChange={e => onSearchChange?.(e.target.value)}\n size=\"small\"\n fullWidth\n iconPosition=\"start\"\n />\n {isMobile && filterButton && (\n <Stack ml={1}>{filterButton}</Stack>\n )}\n </SearchContainer>\n )}\n </Topbar>\n )}\n\n {activeFilters && activeFilters}\n\n {!showTopbar && <TopbarDivider />}\n </>\n )}\n\n {isMobile ? (\n <Result\n isFetching={fetching}\n fetching={<FixedProgressBar />}\n isLoading={loading}\n loading={<LoadingProgress />}\n isEmpty={rows.length === 0}\n empty={\n <Stack flex={1} direction=\"column\" {...mobileSlotsProps}>\n {mobileSlots && mobileSlots}\n\n <Stack flex={1} alignItems=\"center\" justifyContent=\"center\">\n {slots?.noRowsOverlay ? (\n <slots.noRowsOverlay />\n ) : (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Nenhum registro encontrado\n </Typography>\n )}\n </Stack>\n </Stack>\n }\n >\n <Stack\n direction=\"column\"\n flex={1}\n minHeight={0}\n {...mobileSlotsProps}\n >\n {mobileSlots && mobileSlots}\n\n <Scrollbar fillContent ref={scrollableNodeRef}>\n {rows.map(row => (\n <Fragment key={row.id}>{mobileRender(row)}</Fragment>\n ))}\n </Scrollbar>\n </Stack>\n\n {!hideFooter && onPaginationChange && (\n <MobilePaginationContainer>\n <Pagination\n count={rowCount}\n page={paginationModel.page}\n rowsPerPage={paginationModel.pageSize}\n onPageChange={newPage =>\n onPaginationChange?.(newPage, paginationModel.pageSize)\n }\n onRowsPerPageChange={newRowsPerPage =>\n onPaginationChange?.(paginationModel.page, newRowsPerPage)\n }\n />\n </MobilePaginationContainer>\n )}\n </Result>\n ) : (\n <DataGridWrapper>\n {selectionOverlay}\n <DataGrid\n columns={columns}\n rows={rows}\n slots={dataGridSlots}\n slotProps={{\n panel: { anchorEl: filterButtonEl },\n toolbar: {\n setFilterButtonEl,\n showQuickFilter: true,\n } as unknown as GridSlotsComponentsProps['toolbar'],\n ...slotProps,\n }}\n columnHeaderHeight={48}\n getRowHeight={() => 68}\n loading={loading}\n fetching={fetching}\n hideFooter={hideFooter}\n onRowsScrollEnd={onRowsScrollEnd}\n scrollEndThreshold={scrollEndThreshold}\n {...others}\n />\n </DataGridWrapper>\n )}\n\n {fetchingNextPage && <LinearProgress />}\n </Container>\n );\n};\n\nexport default memo(DataViewComponent, isEqual) as typeof DataViewComponent;\nexport {\n ActionsContainer,\n ActionsDivider,\n Container,\n DataGridWrapper,\n DesktopFooter,\n EnhancedMoreActions,\n Header,\n MobilePaginationContainer,\n SearchContainer,\n SelectionActions,\n SelectionCount,\n SelectionOverlay,\n Toolbar,\n ToolbarActionsDivider,\n Topbar,\n};\nexport type {\n BulkAction,\n BulkActionConfirmation,\n BulkActionContext,\n} from './bulkActions';\n","export const DATAGRID_ACTIONS = 'datagrid-actions';\n","import { useCallback, useMemo, useState } from 'react';\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport { GridValidRowModel } from '@mui/x-data-grid-premium';\n\nimport Confirm from 'components/Confirm';\nimport Icon from 'components/Icon';\n\nimport type {\n BulkAction,\n BulkActionConfirmation,\n BulkActionContext,\n} from './bulkActions';\nimport type { BulkActionsBarProps } from './props';\nimport { SelectionActions } from './styles';\n\nconst resolveDynamicBoolean = <T extends GridValidRowModel>(\n value: boolean | ((context: BulkActionContext<T>) => boolean) | undefined,\n context: BulkActionContext<T>,\n) => (typeof value === 'function' ? value(context) : !!value);\n\nconst getConfirmationConfig = (\n confirmation: BulkActionConfirmation | boolean | undefined,\n) => {\n if (!confirmation) return undefined;\n if (confirmation === true) return {};\n\n return confirmation;\n};\n\nconst BulkActionsBar = <T extends GridValidRowModel>({\n actions,\n context,\n}: BulkActionsBarProps<T>) => {\n const [confirmAction, setConfirmAction] = useState<BulkAction<T> | null>(\n null,\n );\n const [runningActionId, setRunningActionId] = useState<string | null>(null);\n\n const visibleActions = useMemo(\n () =>\n actions.filter(action => !resolveDynamicBoolean(action.hidden, context)),\n [actions, context],\n );\n\n const executeAction = useCallback(\n async (action: BulkAction<T>) => {\n setRunningActionId(action.id);\n try {\n await action.handler(context);\n } finally {\n setRunningActionId(null);\n }\n },\n [context],\n );\n\n const handleActionClick = useCallback(\n (action: BulkAction<T>) => {\n if (action.confirmation) {\n setConfirmAction(action);\n return;\n }\n\n void executeAction(action).catch(() => undefined);\n },\n [executeAction],\n );\n\n const handleConfirm = useCallback(async () => {\n if (!confirmAction) return;\n await executeAction(confirmAction);\n setConfirmAction(null);\n }, [confirmAction, executeAction]);\n\n const handleCloseConfirm = useCallback(() => {\n if (runningActionId) return;\n setConfirmAction(null);\n }, [runningActionId]);\n\n const confirmationConfig = getConfirmationConfig(confirmAction?.confirmation);\n\n return (\n <>\n <SelectionActions>\n {visibleActions.map(action => {\n const disabled =\n !!runningActionId ||\n resolveDynamicBoolean(action.disabled, context);\n const loading = runningActionId === action.id;\n\n return (\n <LoadingButton\n key={action.id}\n size=\"small\"\n variant=\"text\"\n color={action.color ?? 'primary'}\n onClick={() => handleActionClick(action)}\n loading={loading}\n disabled={disabled}\n startIcon={\n typeof action.icon === 'string' ? (\n <Icon icon={action.icon} />\n ) : (\n action.icon\n )\n }\n >\n {action.label}\n </LoadingButton>\n );\n })}\n </SelectionActions>\n\n {confirmAction && (\n <Confirm\n open\n onClose={handleCloseConfirm}\n onConfirm={() => {\n void handleConfirm().catch(() => undefined);\n }}\n confirming={runningActionId === confirmAction.id}\n modalTitle={\n confirmationConfig?.title ??\n 'Tem certeza que deseja executar esta ação?'\n }\n message={\n confirmationConfig?.message ??\n 'Essa ação será aplicada aos itens selecionados.'\n }\n cancelButtonText={confirmationConfig?.cancelButtonText ?? 'Cancelar'}\n confirmButtonText={\n confirmationConfig?.confirmButtonText ?? 'Confirmar'\n }\n confirmButtonProps={{\n color: confirmAction.color ?? 'primary',\n }}\n />\n )}\n </>\n );\n};\n\nexport default BulkActionsBar;\n","import { memo } from 'react';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport Pagination from './Pagination';\nimport { DesktopFooterProps } from './props';\nimport { DesktopPaginationContainer } from './styles';\n\nconst DesktopFooter = ({\n rowCount,\n page,\n rowsPerPage,\n onPaginationChange,\n}: DesktopFooterProps) => {\n return (\n <DesktopPaginationContainer>\n <Stack direction=\"row\" alignItems=\"center\" gap={0.5}>\n <Typography variant=\"body2\" color=\"text.disabled\">\n Total de itens:\n </Typography>\n <Typography variant=\"body2\">{rowCount}</Typography>\n </Stack>\n\n <Pagination\n count={rowCount}\n page={page}\n rowsPerPage={rowsPerPage}\n onPageChange={newPage => onPaginationChange(newPage, rowsPerPage)}\n onRowsPerPageChange={newRowsPerPage =>\n onPaginationChange(page, newRowsPerPage)\n }\n />\n </DesktopPaginationContainer>\n );\n};\n\nexport default memo(DesktopFooter);\n","import {\n Children,\n cloneElement,\n isValidElement,\n memo,\n ReactElement,\n ReactNode,\n} from 'react';\n\nimport { EnhancedMoreActionsProps } from './props';\n\nconst createEnhanceMoreActions = (\n children: ReactNode,\n onClose: () => void,\n): ReactNode => {\n return Children.map(children, child => {\n if (!isValidElement(child)) {\n return child;\n }\n\n const originalOnClick = (\n child.props as { onClick?: (...args: unknown[]) => void }\n ).onClick;\n\n const enhancedProps: {\n onClick?: (...args: unknown[]) => void;\n children?: ReactNode;\n } = {};\n\n enhancedProps.onClick = (...args: unknown[]) => {\n onClose();\n if (originalOnClick) {\n originalOnClick(...args);\n }\n };\n\n const childProps = child.props as { children?: ReactNode };\n if (childProps?.children) {\n enhancedProps.children = createEnhanceMoreActions(\n childProps.children,\n onClose,\n );\n }\n\n return cloneElement(child as ReactElement, enhancedProps);\n });\n};\n\nconst EnhancedMoreActions = ({\n children,\n onClose,\n}: EnhancedMoreActionsProps) => {\n if (!children) return null;\n return createEnhanceMoreActions(children, onClose);\n};\n\nexport default memo(EnhancedMoreActions);\n","import { forwardRef, useCallback } from 'react';\nimport Button, { ButtonProps } from '@mui/material/Button';\nimport { GridToolbarColumnsButton } from '@mui/x-data-grid-premium';\n\nimport Icon from 'components/Icon';\nimport Portal from 'components/Portal';\n\nimport { DATAGRID_ACTIONS } from './contants';\nimport { ToolbarProps } from './props';\n\nconst ColumnsButton = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, ...props }, ref) => (\n <Button\n {...props}\n ref={ref}\n color=\"inherit\"\n startIcon={<Icon icon=\"COLUMNS\" />}\n >\n {children ?? 'Colunas'}\n </Button>\n ),\n);\n\nColumnsButton.displayName = 'ColumnsButton';\n\nconst Toolbar = ({ setFilterButtonEl }: ToolbarProps) => {\n const handleColumnsButtonRef = useCallback(\n (button: HTMLButtonElement | null) => {\n setFilterButtonEl(button);\n },\n [setFilterButtonEl],\n );\n\n return (\n <Portal container={DATAGRID_ACTIONS}>\n <GridToolbarColumnsButton\n ref={handleColumnsButtonRef}\n slotProps={{\n button: {\n color: 'inherit',\n startIcon: <Icon icon=\"COLUMNS\" />,\n children: 'Colunas',\n },\n }}\n />\n </Portal>\n );\n};\n\nexport default Toolbar;\n"]}
@@ -0,0 +1,12 @@
1
+ import p from '@mui/lab/LoadingButton';
2
+ import c from '@mui/material/Button';
3
+ import u from '@mui/material/Dialog';
4
+ import C from '@mui/material/DialogActions';
5
+ import D from '@mui/material/DialogContent';
6
+ import x from '@mui/material/DialogTitle';
7
+ import { jsxs, jsx } from 'react/jsx-runtime';
8
+
9
+ var B=({modalTitle:r="Tem certeza que deseja excluir?",message:n="Essa a\xE7\xE3o n\xE3o poder\xE1 ser desfeita.",cancelButtonText:a="Cancelar",confirmButtonText:e="Sim, excluir registro",onClose:i,onConfirm:l,confirming:m,child:g,cancelButtonProps:f,confirmButtonProps:s,...d})=>jsxs(u,{fullWidth:!0,maxWidth:"xs",...d,onClose:i,children:[jsx(x,{children:r}),jsx(D,{children:n}),g,jsxs(C,{children:[jsx(c,{variant:"outlined",color:"inherit",onClick:i,size:"large",...f,children:a}),jsx(p,{variant:"contained",onClick:l,size:"large",loading:m,...s,children:e})]})]}),L=B;
10
+
11
+ export { L as a };
12
+ //# sourceMappingURL=chunk-D3RY7C7B.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Confirm/index.tsx"],"names":["LoadingButton","Button","Dialog","DialogActions","DialogContent","DialogTitle","jsx","jsxs","Confirm","modalTitle","message","cancelButtonText","confirmButtonText","onClose","onConfirm","confirming","child","cancelButtonProps","confirmButtonProps","other","Confirm_default"],"mappings":"AAAA,OAAOA,MAAmB,yBAC1B,OAAOC,MAAY,uBACnB,OAAOC,MAAY,uBACnB,OAAOC,MAAmB,8BAC1B,OAAOC,MAAmB,8BAC1B,OAAOC,MAAiB,4BAmBlB,cAAAC,EAIA,QAAAC,MAJA,oBAfN,IAAMC,EAAU,CAAC,CACf,WAAAC,EAAa,kCACb,QAAAC,EAAU,iDACV,iBAAAC,EAAmB,WACnB,kBAAAC,EAAoB,wBACpB,QAAAC,EACA,UAAAC,EACA,WAAAC,EACA,MAAAC,EACA,kBAAAC,EACA,mBAAAC,EACA,GAAGC,CACL,IAEIZ,EAACL,EAAA,CAAO,UAAS,GAAC,SAAS,KAAM,GAAGiB,EAAO,QAASN,EAClD,UAAAP,EAACD,EAAA,CAAa,SAAAI,EAAW,EAEzBH,EAACF,EAAA,CAAe,SAAAM,EAAQ,EACvBM,EACDT,EAACJ,EAAA,CACC,UAAAG,EAACL,EAAA,CACC,QAAQ,WACR,MAAM,UACN,QAASY,EACT,KAAK,QACJ,GAAGI,EAEH,SAAAN,EACH,EAEAL,EAACN,EAAA,CACC,QAAQ,YACR,QAASc,EACT,KAAK,QACL,QAASC,EACR,GAAGG,EAEH,SAAAN,EACH,GACF,GACF,EAIGQ,EAAQZ","sourcesContent":["import LoadingButton from '@mui/lab/LoadingButton';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nimport { ConfirmProps } from './props';\n\nconst Confirm = ({\n modalTitle = 'Tem certeza que deseja excluir?',\n message = 'Essa ação não poderá ser desfeita.',\n cancelButtonText = 'Cancelar',\n confirmButtonText = 'Sim, excluir registro',\n onClose,\n onConfirm,\n confirming,\n child,\n cancelButtonProps,\n confirmButtonProps,\n ...other\n}: ConfirmProps) => {\n return (\n <Dialog fullWidth maxWidth=\"xs\" {...other} onClose={onClose}>\n <DialogTitle>{modalTitle}</DialogTitle>\n\n <DialogContent>{message}</DialogContent>\n {child}\n <DialogActions>\n <Button\n variant=\"outlined\"\n color=\"inherit\"\n onClick={onClose}\n size=\"large\"\n {...cancelButtonProps}\n >\n {cancelButtonText}\n </Button>\n\n <LoadingButton\n variant=\"contained\"\n onClick={onConfirm}\n size=\"large\"\n loading={confirming}\n {...confirmButtonProps}\n >\n {confirmButtonText}\n </LoadingButton>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport default Confirm;\n"]}
@@ -15,4 +15,4 @@ import Ee from '@mui/material/Popper';
15
15
  var z=memo(({params:e,name:t,placeholder:s,error:n,helperText:p,label:m,required:L,multiple:l,formattedValue:o,loading:a$1,tabIndex:u,InputLabelProps:y})=>jsx(be,{...e,name:t,placeholder:s,fullWidth:!0,error:!!n,helperText:p,label:m,required:L,InputProps:{...e.InputProps,...!l&&{startAdornment:o&&!Array.isArray(o)&&o.icon?jsx(a,{icon:o.icon}):void 0},endAdornment:jsxs(Fragment,{children:[a$1?jsx(fe,{color:"primary",size:20}):null,e.InputProps.endAdornment]})},inputProps:{...e.inputProps,name:t,tabIndex:u},InputLabelProps:y}));z.displayName="AutocompleteInput";var D=z;var w=8,V=memo(e=>{let{data:t,index:s,style:n}=e,p=t[s],m={...n,top:n.top+w,paddingTop:8};if(Object.prototype.hasOwnProperty.call(p,"group")){let y=p;return jsx(ge,{component:"div",style:m,children:y.group},`list-box-item-group-${y.group}`)}let[L,l]=p,{showValueInLabel:o,key:a$1,...u}=L;return jsx($,{component:"li",...u,noWrap:!0,style:m,children:jsxs(Pe,{component:"div",direction:"row",flex:1,gap:1,justifyContent:"start",children:[l.icon&&jsx(a,{icon:l.icon}),l.label,o&&jsxs($,{variant:"inherit",color:"grey.400",children:["(",l.value,")"]})]})},`list-box-item-${a$1}`)});V.displayName="ListboxRow";var B=V;var xe=createContext(void 0),R=xe;var Q=createContext({}),J=forwardRef((e,t)=>{let s=useContext(Q);return jsx("div",{ref:t,...e,...s})});J.displayName="OuterElementType";var Se=e=>{let t=useRef(null);return useEffect(()=>{t.current!=null&&t.current.resetAfterIndex(0,!0);},[e]),t},Te=forwardRef(function(t,s){let{children:n,...p}=t,m=useMemo(()=>{let r=[];return n.forEach(b=>{r.push(b),Object.prototype.hasOwnProperty.call(b,"children")&&Array.isArray(b.children)&&r.push(...b.children);}),r},[n]),L=useTheme(),l=Ce(L.breakpoints.up("sm")),o=m.length,a=l?36:48,u=useCallback(r=>Object.prototype.hasOwnProperty.call(r,"group")?48:a,[a]),y=useMemo(()=>o>8?8*a:m.map(u).reduce((r,b)=>r+b,0),[o,a,m,u]),I=Se(o),g=useContext(R),c=useRef(!1);useEffect(()=>{c.current=!1;},[o]);let x=useCallback(({visibleStopIndex:r})=>{g&&!c.current&&r>=o-3&&(c.current=!0,g());},[g,o]);return jsx("div",{ref:s,children:jsx(Q.Provider,{value:p,children:jsx(VariableSizeList,{itemData:m,height:y+2*w,width:"100%",ref:I,outerElementType:J,innerElementType:"ul",itemSize:r=>u(m[r]),overscanCount:5,itemCount:o,onItemsRendered:x,children:B})})})}),K=Te;var Y=styled(Ee)({[`& .${autocompleteClasses.listbox}`]:{boxSizing:"border-box","& ul":{padding:0,margin:0}}});var Ne=e=>e&&typeof e=="object"?e.value.toString():e.toString(),ze=e=>e,De=(e,t)=>{let s=t.inputValue.toLocaleUpperCase();return e.filter(n=>`${n.value} ${n.label}`.toLocaleUpperCase().includes(s))},ee=memo(forwardRef(({name:e,label:t,value:s,options:n=[],loading:p,noOptionsText:m="Nenhum resultado encontrado.",loadingText:L="Carregando op\xE7\xF5es...",error:l,helperText:o,placeholder:a,onChange:u,groupBy:y,showValueInLabel:I,disabled:g,multiple:c,required:x,renderOption:r,tabIndex:b,onInputChange:C,onSearch:A,onBlur:S,onScrollEnd:te,InputLabelProps:k,filterOptions:oe,...re},ne)=>{let G=useRef(null),T=useMemo(()=>c?(Array.isArray(s)?s:[]).reduce((f,v)=>{let N=n.find(ce=>ce.value.toString()===v.toString());return N?[...f,N]:[...f]},[]):n.find(i=>i.value.toString()===s?.toString())||null,[n,s,c]),ie=oe??(G.current==="reset"?void 0:De),se=useCallback((d,i,f)=>{if(G.current=f,C&&C(d,i,f),f==="input"){A&&A(i);return}f==="reset"&&A&&A(void 0),f==="clear"&&A&&A("");},[C,A]),pe=useCallback((d,i)=>{if(!i){u(c?[]:null);return}if(Array.isArray(i)){u(i.map(Ne));return}u(typeof i=="string"?i.toString():i.value.toString());},[u,c]),me=useCallback(d=>{S&&S(d);},[S]),ue=useCallback((d,i,f,v)=>r?r(d,i,f,v):[{...d,showValueInLabel:I},i],[r,I]),le=useMemo(()=>r?void 0:K,[r]),ae=useCallback(d=>jsx(D,{params:d,name:e,placeholder:a,error:l,helperText:o,label:t,required:x,multiple:c,formattedValue:T,loading:p,tabIndex:b,InputLabelProps:k}),[e,a,l,o,t,x,c,T,p,b,k]);return jsx(R.Provider,{value:te,children:jsx(Ge,{ref:ne,value:T,onInputChange:se,options:n,loading:p,noOptionsText:m,loadingText:L,disabled:g,disableListWrap:!0,PopperComponent:Y,ListboxComponent:le,filterOptions:ie,onChange:pe,onBlur:me,renderOption:ue,renderGroup:ze,groupBy:y,multiple:c,renderInput:ae,...re})})}));ee.displayName="Autocomplete";var Ct=ee;
16
16
 
17
17
  export { Ct as a };
18
- //# sourceMappingURL=chunk-EWGZ2KSI.js.map
18
+ //# sourceMappingURL=chunk-H3SS73NK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Autocomplete/index.tsx","../src/components/Autocomplete/AutocompleteInput.tsx","../src/components/Autocomplete/Listbox.tsx","../src/components/Autocomplete/ListboxRow.tsx","../src/components/Autocomplete/ScrollEndContext.ts","../src/components/Autocomplete/styles.ts"],"names":["forwardRef","memo","useCallback","useMemo","useRef","MuiAutocomplete","CircularProgress","TextField","Fragment","jsx","jsxs","AutocompleteInput","params","name","placeholder","error","helperText","label","required","multiple","formattedValue","loading","tabIndex","InputLabelProps","Icon_default","AutocompleteInput_default","createContext","useContext","useEffect","VariableSizeList","useTheme","useMediaQuery","ListSubheader","Stack","Typography","LISTBOX_PADDING","ListboxRow","props","data","index","style","dataSet","inlineStyle","groupItem","itemProps","option","showValueInLabel","key","otherItemProps","ListboxRow_default","ScrollEndContext","ScrollEndContext_default","OuterElementContext","OuterElementType","ref","outerProps","useResetCache","ListboxComponent","children","other","itemData","item","theme","smUp","itemCount","itemSize","getChildSize","child","itemsHeight","a","gridRef","onScrollEnd","firedRef","handleItemsRendered","visibleStopIndex","Listbox_default","autocompleteClasses","Popper","styled","StyledPopper","getOptionValue","optionValue","renderGroup","defaultFilterOptions","optionsFilter","state","searchValue","opt","Autocomplete","value","options","noOptionsText","loadingText","onChange","groupBy","disabled","renderOption","onInputChange","onSearch","onBlur","filterOptionsProp","inputReasonRef","acc","curr","resolvedFilterOptions","handleInputChange","event","eventValue","reason","handleChange","_","handleBlur","memoizedRenderOption","ownerState","renderListbox","memoizedRenderInput","Autocomplete_default"],"mappings":"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","sourcesContent":["import {\n forwardRef,\n memo,\n ReactNode,\n useCallback,\n useMemo,\n useRef,\n} from 'react';\nimport MuiAutocomplete, {\n AutocompleteOwnerState,\n AutocompleteRenderGroupParams,\n AutocompleteRenderInputParams,\n AutocompleteRenderOptionState,\n} from '@mui/material/Autocomplete';\n\nimport { AutocompleteProps } from 'types/autoCompleteProps';\nimport { Option } from 'types/option';\n\nimport AutocompleteInput from './AutocompleteInput';\nimport ListboxComponent from './Listbox';\nimport ScrollEndContext from './ScrollEndContext';\nimport { StyledPopper } from './styles';\n\nconst getOptionValue = (optionValue: Option | string | number): string =>\n optionValue && typeof optionValue === 'object'\n ? optionValue.value.toString()\n : optionValue.toString();\n\nconst renderGroup = (params: AutocompleteRenderGroupParams) =>\n params as unknown as ReactNode;\n\nconst defaultFilterOptions = (\n optionsFilter: Option[],\n state: { inputValue: string },\n) => {\n const searchValue = state.inputValue.toLocaleUpperCase();\n return optionsFilter.filter(opt => {\n const search = `${opt.value} ${opt.label}`;\n\n return search.toLocaleUpperCase().includes(searchValue);\n });\n};\n\nconst Autocomplete = memo(\n forwardRef<unknown, AutocompleteProps>(\n (\n {\n name,\n label,\n value,\n options = [],\n loading,\n noOptionsText = 'Nenhum resultado encontrado.',\n loadingText = 'Carregando opções...',\n error,\n helperText,\n placeholder,\n onChange,\n groupBy,\n showValueInLabel,\n disabled,\n multiple,\n required,\n renderOption,\n tabIndex,\n onInputChange,\n onSearch,\n onBlur,\n onScrollEnd,\n InputLabelProps,\n filterOptions: filterOptionsProp,\n ...other\n },\n ref,\n ) => {\n const inputReasonRef = useRef<'input' | 'reset' | 'clear' | null>(null);\n\n const formattedValue = useMemo(() => {\n if (multiple) {\n const values = Array.isArray(value) ? value : [];\n\n return values.reduce<Option[]>((acc, curr) => {\n const item = options.find(\n opt => opt.value.toString() === curr.toString(),\n );\n\n if (item) return [...acc, item];\n\n return [...acc];\n }, []);\n }\n\n const item = options.find(\n opt => opt.value.toString() === value?.toString(),\n );\n\n return item || null;\n }, [options, value, multiple]);\n\n const resolvedFilterOptions =\n filterOptionsProp ??\n (inputReasonRef.current === 'reset' ? undefined : defaultFilterOptions);\n\n const handleInputChange = useCallback(\n (\n event: React.SyntheticEvent,\n eventValue: string,\n reason: 'input' | 'reset' | 'clear',\n ) => {\n inputReasonRef.current = reason;\n if (onInputChange) onInputChange(event, eventValue, reason);\n\n if (reason === 'input') {\n if (onSearch) onSearch(eventValue);\n return;\n }\n\n if (reason === 'reset') {\n if (onSearch) onSearch(undefined);\n }\n\n if (reason === 'clear') {\n if (onSearch) onSearch('');\n }\n },\n [onInputChange, onSearch],\n );\n\n const handleChange = useCallback(\n (\n _: React.SyntheticEvent,\n option: Option | (string | Option)[] | string | null,\n ) => {\n if (!option) {\n onChange(multiple ? [] : null);\n return;\n }\n\n if (Array.isArray(option)) {\n onChange(option.map(getOptionValue));\n return;\n }\n\n onChange(\n typeof option === 'string'\n ? option.toString()\n : option.value.toString(),\n );\n },\n [onChange, multiple],\n );\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (onBlur) onBlur(event);\n },\n [onBlur],\n );\n\n const memoizedRenderOption = useCallback(\n (\n props: React.HTMLAttributes<HTMLLIElement> & { key: string },\n option: Option,\n state: AutocompleteRenderOptionState,\n ownerState: AutocompleteOwnerState<Option, boolean, boolean, boolean>,\n ) =>\n renderOption\n ? renderOption(props, option, state, ownerState)\n : ([{ ...props, showValueInLabel }, option] as ReactNode),\n [renderOption, showValueInLabel],\n );\n\n const renderListbox = useMemo(\n () => (renderOption ? undefined : ListboxComponent),\n [renderOption],\n );\n\n const memoizedRenderInput = useCallback(\n (params: AutocompleteRenderInputParams) => (\n <AutocompleteInput\n params={params}\n name={name}\n placeholder={placeholder}\n error={error}\n helperText={helperText}\n label={label}\n required={required}\n multiple={multiple}\n formattedValue={formattedValue}\n loading={loading}\n tabIndex={tabIndex}\n InputLabelProps={InputLabelProps}\n />\n ),\n [\n name,\n placeholder,\n error,\n helperText,\n label,\n required,\n multiple,\n formattedValue,\n loading,\n tabIndex,\n InputLabelProps,\n ],\n );\n\n return (\n <ScrollEndContext.Provider value={onScrollEnd}>\n <MuiAutocomplete\n ref={ref}\n value={formattedValue}\n onInputChange={handleInputChange}\n options={options}\n loading={loading}\n noOptionsText={noOptionsText}\n loadingText={loadingText}\n disabled={disabled}\n disableListWrap\n PopperComponent={StyledPopper}\n ListboxComponent={renderListbox}\n filterOptions={resolvedFilterOptions}\n onChange={handleChange}\n onBlur={handleBlur}\n renderOption={memoizedRenderOption}\n renderGroup={renderGroup}\n groupBy={groupBy}\n multiple={multiple}\n renderInput={memoizedRenderInput}\n {...other}\n />\n </ScrollEndContext.Provider>\n );\n },\n ),\n);\n\nAutocomplete.displayName = 'Autocomplete';\n\nexport default Autocomplete;\n","import { memo } from 'react';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField from '@mui/material/TextField';\n\nimport Icon from '../Icon';\n\nimport { AutocompleteInputProps } from './props';\n\nconst AutocompleteInput = memo(\n ({\n params,\n name,\n placeholder,\n error,\n helperText,\n label,\n required,\n multiple,\n formattedValue,\n loading,\n tabIndex,\n InputLabelProps,\n }: AutocompleteInputProps) => (\n <TextField\n {...params}\n name={name}\n placeholder={placeholder}\n fullWidth\n error={!!error}\n helperText={helperText}\n label={label}\n required={required}\n InputProps={{\n ...params.InputProps,\n ...(!multiple && {\n startAdornment:\n formattedValue &&\n !Array.isArray(formattedValue) &&\n formattedValue.icon ? (\n <Icon icon={formattedValue.icon} />\n ) : undefined,\n }),\n endAdornment: (\n <>\n {loading ? <CircularProgress color=\"primary\" size={20} /> : null}\n {params.InputProps.endAdornment}\n </>\n ),\n }}\n inputProps={{\n ...params.inputProps,\n name,\n tabIndex,\n }}\n InputLabelProps={InputLabelProps}\n />\n ),\n);\n\nAutocompleteInput.displayName = 'AutocompleteInput';\n\nexport default AutocompleteInput;\n","import {\n createContext,\n forwardRef,\n HTMLAttributes,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport { ListOnItemsRenderedProps, VariableSizeList } from 'react-window';\nimport { AutocompleteRenderGroupParams } from '@mui/material/Autocomplete';\nimport { useTheme } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport ListboxRow, { LISTBOX_PADDING } from './ListboxRow';\nimport type { ListboxItem } from './props';\nimport ScrollEndContext from './ScrollEndContext';\n\nconst OuterElementContext = createContext({});\n\nconst OuterElementType = forwardRef<HTMLDivElement>((props, ref) => {\n const outerProps = useContext(OuterElementContext);\n return <div ref={ref} {...props} {...outerProps} />;\n});\n\nOuterElementType.displayName = 'OuterElementType';\n\nconst useResetCache = (data: number) => {\n const ref = useRef<VariableSizeList>(null);\n\n useEffect(() => {\n if (ref.current != null) {\n ref.current.resetAfterIndex(0, true);\n }\n }, [data]);\n\n return ref;\n};\n\nconst ListboxComponent = forwardRef<\n HTMLDivElement,\n HTMLAttributes<HTMLElement>\n>(function ListboxComponent(props, ref) {\n const { children, ...other } = props;\n\n const itemData: ListboxItem[] = useMemo(() => {\n const data: ListboxItem[] = [];\n (children as ListboxItem[]).forEach(item => {\n data.push(item);\n if (\n Object.prototype.hasOwnProperty.call(item, 'children') &&\n Array.isArray((item as AutocompleteRenderGroupParams).children)\n ) {\n data.push(\n ...((item as AutocompleteRenderGroupParams)\n .children as ListboxItem[]),\n );\n }\n });\n return data;\n }, [children]);\n\n const theme = useTheme();\n const smUp = useMediaQuery(theme.breakpoints.up('sm'));\n const itemCount = itemData.length;\n const itemSize = smUp ? 36 : 48;\n\n const getChildSize = useCallback(\n (child: ListboxItem) => {\n if (Object.prototype.hasOwnProperty.call(child, 'group')) {\n return 48;\n }\n\n return itemSize;\n },\n [itemSize],\n );\n\n const itemsHeight = useMemo(() => {\n if (itemCount > 8) {\n return 8 * itemSize;\n }\n return itemData.map(getChildSize).reduce((a, b) => a + b, 0);\n }, [itemCount, itemSize, itemData, getChildSize]);\n\n const gridRef = useResetCache(itemCount);\n const onScrollEnd = useContext(ScrollEndContext);\n const firedRef = useRef(false);\n\n useEffect(() => {\n firedRef.current = false;\n }, [itemCount]);\n\n const handleItemsRendered = useCallback(\n ({ visibleStopIndex }: ListOnItemsRenderedProps) => {\n if (\n onScrollEnd &&\n !firedRef.current &&\n visibleStopIndex >= itemCount - 3\n ) {\n firedRef.current = true;\n onScrollEnd();\n }\n },\n [onScrollEnd, itemCount],\n );\n\n return (\n <div ref={ref}>\n <OuterElementContext.Provider value={other}>\n <VariableSizeList\n itemData={itemData}\n height={itemsHeight + 2 * LISTBOX_PADDING}\n width=\"100%\"\n ref={gridRef}\n outerElementType={OuterElementType}\n innerElementType=\"ul\"\n itemSize={index => getChildSize(itemData[index])}\n overscanCount={5}\n itemCount={itemCount}\n onItemsRendered={handleItemsRendered}\n >\n {ListboxRow}\n </VariableSizeList>\n </OuterElementContext.Provider>\n </div>\n );\n});\n\nexport default ListboxComponent;\n","import { HTMLAttributes, memo } from 'react';\nimport { ListChildComponentProps } from 'react-window';\nimport { AutocompleteRenderGroupParams } from '@mui/material/Autocomplete';\nimport ListSubheader from '@mui/material/ListSubheader';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { Option } from 'types/option';\n\nimport Icon from '../Icon';\n\nimport type { IconName } from './props';\n\nconst LISTBOX_PADDING = 8;\n\nconst ListboxRow = memo((props: ListChildComponentProps) => {\n const { data, index, style } = props;\n const dataSet = data[index] as\n | AutocompleteRenderGroupParams\n | [HTMLAttributes<HTMLLIElement> & { showValueInLabel?: boolean }, Option];\n\n const inlineStyle = {\n ...style,\n top: (style.top as number) + LISTBOX_PADDING,\n paddingTop: 8,\n };\n\n if (Object.prototype.hasOwnProperty.call(dataSet, 'group')) {\n const groupItem = dataSet as AutocompleteRenderGroupParams;\n return (\n <ListSubheader\n key={`list-box-item-group-${groupItem.group}`}\n component=\"div\"\n style={inlineStyle}\n >\n {groupItem.group}\n </ListSubheader>\n );\n }\n\n const [itemProps, option] = dataSet as [\n HTMLAttributes<HTMLLIElement> & {\n showValueInLabel?: boolean;\n key: string;\n },\n Option,\n ];\n const { showValueInLabel, key, ...otherItemProps } = itemProps;\n\n return (\n <Typography\n component=\"li\"\n key={`list-box-item-${key}`}\n {...otherItemProps}\n noWrap\n style={inlineStyle}\n >\n <Stack\n component=\"div\"\n direction=\"row\"\n flex={1}\n gap={1}\n justifyContent=\"start\"\n >\n {option.icon && <Icon icon={option.icon as IconName} />}\n {option.label}\n\n {showValueInLabel && (\n <Typography variant=\"inherit\" color=\"grey.400\">\n ({option.value})\n </Typography>\n )}\n </Stack>\n </Typography>\n );\n});\n\nListboxRow.displayName = 'ListboxRow';\n\nexport { LISTBOX_PADDING };\nexport default ListboxRow;\n","import { createContext } from 'react';\n\nconst ScrollEndContext = createContext<(() => void) | undefined>(undefined);\n\nexport default ScrollEndContext;\n","import { autocompleteClasses } from '@mui/material/Autocomplete';\nimport Popper from '@mui/material/Popper';\nimport { styled } from '@mui/material/styles';\n\nexport const StyledPopper = styled(Popper)({\n [`& .${autocompleteClasses.listbox}`]: {\n boxSizing: 'border-box',\n '& ul': {\n padding: 0,\n margin: 0,\n },\n },\n});\n"]}
@@ -1,8 +1,8 @@
1
1
  import { a } from './chunk-373WGZZL.js';
2
2
  import { c, b as b$1 } from './chunk-BX2DSNRV.js';
3
- import { a as a$1, e } from './chunk-VCK3DKB3.js';
4
- import { a as a$3, b } from './chunk-UOIOBXCP.js';
5
- import { p, r, a as a$2 } from './chunk-PVVI43BW.js';
3
+ import { a as a$1, e } from './chunk-X4F3O7PX.js';
4
+ import { a as a$3, b } from './chunk-3WFLKIPF.js';
5
+ import { p, r, a as a$2 } from './chunk-YPL4KIKN.js';
6
6
  import { a as a$5 } from './chunk-WUFEPE2G.js';
7
7
  import { d, a as a$4 } from './chunk-GLRLKFPS.js';
8
8
  import { useEffect, useMemo } from 'react';
@@ -14,4 +14,4 @@ import { jsx, jsxs } from 'react/jsx-runtime';
14
14
  var W=t=>({lighter:lighten(t,.815),light:lighten(t,.225),main:t,dark:darken(t,.15),darker:darken(t,.35),contrastText:"#000"});function x(t,o,r$1="app"){let e$1=W(o.primaryColor),m=F(p);a(m,"dark.palette.primary",e$1),a(m,"light.palette.primary",e$1);let a$4={mode:o.colorScheme,colorSchemes:m,shadows:a$1(o.colorScheme),customShadows:r(o.colorScheme,e$1.main),shape:{borderRadius:8},components:a$2,typography:{...e,fontFamily:d(o.fontFamily)},cssVarPrefix:r$1,shouldSkipGeneratingVar:I},s=a$3(a$4,o);return experimental_extendTheme(s,t,b(o))}function I(t,o){let r=["mixins","overlays","direction","breakpoints","cssVarPrefix","unstable_sxConfig","typography","colorSchemes"],e={global:["tonalOffset","dividerChannel","contrastThreshold"],grey:["A100","A200","A400","A700"],text:["icon"]};if(t[0]==="palette"){let a=t[1],s=e[a]||e.global;return t.some(i=>s?.includes(i))}return t.some(a=>r?.includes(a))}var $=({children:t,primaryColor:o="#4E5BEC",cssVarPrefix:r="app"})=>{let{settings:e}=b$1();useEffect(()=>{localStorage.setItem(`${e.storageKey}`,e.colorScheme),localStorage.setItem(`${e.storageKey}-light`,"light"),localStorage.setItem(`${e.storageKey}-dark`,"dark");},[e.storageKey,e.colorScheme]);let m=useMemo(()=>{let s=x(a$5[1].systemValue,{primaryColor:o,colorScheme:e.colorScheme,contrast:e.contrast,navLayout:e.navLayout,navColor:e.navColor,compactLayout:e.compactLayout,fontFamily:e.fontFamily,storageKey:e.storageKey},r);return s.palette=s.colorSchemes?.[e.colorScheme]?.palette,s},[e,o,r]),a=useMemo(()=>({theme:m,mode:e.colorScheme,defaultMode:e.colorScheme,defaultColorScheme:e.colorScheme,modeStorageKey:e.storageKey,colorSchemeStorageKey:e.storageKey,attribute:a$4.ATTRIBUTE}),[m,e.colorScheme,e.storageKey]);return jsxs(Experimental_CssVarsProvider,{...a,children:[jsx(M,{enableColorScheme:!0}),jsx(B,{children:t})]})},B=({children:t})=>{let{settings:o,updateSettings:r}=b$1(),{mode:e,setMode:m}=useColorScheme();return useEffect(()=>{let a=o.colorScheme;document?.documentElement.setAttribute(a$4.ATTRIBUTE,a),m(a);},[o.colorScheme,m]),useEffect(()=>{e!==o.colorScheme&&r({colorScheme:e==="system"?o.colorScheme:e});},[e,o.colorScheme,r]),t},w=({children:t,cssVarPrefix:o,primaryColor:r="#4E5BEC",fontFamily:e="Public Sans",compactLayout:m=!0,contrast:a="default",navColor:s="integrate",navLayout:i="vertical",colorScheme:A="light"})=>{let k=`${o?`${o}-`:""}${a$4.STORAGE_KEY}`;return jsx(c,{primaryColor:r,fontFamily:e,compactLayout:m,contrast:a,navColor:s,navLayout:i,colorScheme:A,cssVarPrefix:o,storageKey:k,children:jsx($,{primaryColor:r,cssVarPrefix:o,children:t})})};var te=w;
15
15
 
16
16
  export { x as a, te as b };
17
- //# sourceMappingURL=chunk-CMWRCWVK.js.map
17
+ //# sourceMappingURL=chunk-LJ5JKDMG.js.map
@@ -13,4 +13,4 @@ import Xe from 'embla-carousel-react';
13
13
  var Ge={xs:"(min-width: 0px)",sm:"(min-width: 600px)",md:"(min-width: 900px)",lg:"(min-width: 1200px)",xl:"(min-width: 1536px)"};var p={root:"mnl__carousel__root",container:"mnl__carousel__container",dots:"mnl__carousel__dots",dot:"mnl__carousel__dot",arrows:"mnl__carousel__arrows",arrowsLabel:"mnl__carousel__arrows_label",arrowPrev:"mnl__carousel__btn--prev",arrowNext:"mnl__carousel__btn--next",arrowSvg:"mnl__carousel__btn__svg",slide:"mnl__carousel__slide",slideContent:"mnl__carousel__slide__content",thumbs:"mnl__carousel__thumbs",thumb:"mnl__carousel__thumb",thumbContainer:"mnl__carousel__thumbs__container",thumbImage:"mnl__carousel__thumb__image",progress:"mnl__carousel__progress",progressBar:"mnl__carousel__progress__bar",state:{selected:"state--selected",disabled:"state--disabled"}};var pe=styled(N,{shouldForwardProp:e=>e!=="axis"&&e!=="slideSpacing"})(({axis:e,slideSpacing:o})=>({display:"block",position:"relative",...e==="x"&&{minWidth:0,paddingLeft:o},...e==="y"&&{minHeight:0,paddingTop:o}})),me=styled(N)(()=>({overflow:"hidden",position:"relative",borderRadius:"inherit"}));function w({sx:e,options:o,children:r,...t}){let i=de(o?.slidesToShow);return jsx(pe,{component:"li",axis:o?.axis??"x",slideSpacing:o?.slideSpacing,className:p.slide,sx:{flex:i,...e},...t,children:o?.parallax?jsx(me,{className:p.slideContent,children:jsx("div",{className:"slide__parallax__layer",children:r})}):r})}function de(e){return e&&typeof e=="object"?Object.keys(e).reduce((o,r)=>{let t=e[r];return o[r]=W(t),o},{}):W(e)}function W(e=1){if(typeof e=="string"){if(!(e==="auto"||e.endsWith("%")||e.endsWith("px")))throw new Error("Only accepts values: auto, px, %, or number.");return `0 0 ${e}`}if(typeof e=="number")return `0 0 ${100/e}%`;throw new Error("Invalid value type. Only accepts values: auto, px, %, or number.")}var R=styled(N,{shouldForwardProp:e=>e!=="axis"})(({axis:e})=>({margin:"auto",width:"100%",maxWidth:"100%",overflow:"hidden",position:"relative",...e==="y"&&{height:"100%"}})),T=styled(N,{shouldForwardProp:e=>e!=="axis"&&e!=="slideSpacing"})(({axis:e,slideSpacing:o})=>({display:"flex",backfaceVisibility:"hidden",...e==="x"&&{touchAction:"pan-y pinch-zoom",marginLeft:`calc(${o} * -1)`},...e==="y"&&{height:"100%",flexDirection:"column",touchAction:"pan-x pinch-zoom",marginTop:`calc(${o} * -1)`}}));function io({carousel:e,children:o,sx:r,slotProps:t,...i}){let{mainRef:n,options:s}=e,a=s?.axis??"x",l=s?.slideSpacing??"0px",c=s?.direction??"ltr",u=Children.map(o,m=>{if(isValidElement(m)){let d=m;return jsx(w,{options:e.options,sx:t?.slide,...i,children:m},d.key)}return null});return jsx(R,{sx:r,axis:a,ref:n,dir:c,className:p.root,children:jsx(T,{component:"ul",axis:a,slideSpacing:l,className:p.container,sx:{...e.pluginNames?.includes("autoHeight")&&{alignItems:"flex-start",transition:m=>m.transitions.create(["height"],{easing:m.transitions.easing.easeInOut,duration:m.transitions.duration.shorter})},...t?.container},children:u})})}function Co({options:e,slotProps:o,totalSlides:r,selectedIndex:t,onClickPrev:i,onClickNext:n,disablePrev:s,disableNext:a,sx:l,...c}){return jsxs(Y,{direction:"row",alignItems:"center",display:"inline-flex",className:p.arrows,sx:{gap:.5,zIndex:9,color:"action.active",...l},...c,children:[jsx(h,{variant:"prev",options:e,disabled:s,onClick:i,svgIcon:o?.prevBtn?.svgIcon,svgSize:o?.prevBtn?.svgSize,sx:o?.prevBtn?.sx}),jsx(h,{variant:"next",options:e,disabled:a,onClick:n,svgIcon:o?.nextBtn?.svgIcon,svgSize:o?.prevBtn?.svgSize,sx:o?.prevBtn?.sx})]})}function ho({options:e,slotProps:o,totalSlides:r,selectedIndex:t,onClickPrev:i,onClickNext:n,disablePrev:s,disableNext:a,sx:l,...c}){let u=useTheme();return jsxs(Y,{direction:"row",alignItems:"center",display:"inline-flex",className:p.arrows,sx:{p:.5,gap:.25,zIndex:9,borderRadius:1.25,color:"common.white",bgcolor:k(u.vars.palette.grey["900Channel"],.48),...l},...c,children:[jsx(h,{variant:"prev",options:e,disabled:s,onClick:i,sx:{p:.75,borderRadius:"inherit",...o?.prevBtn?.sx},svgIcon:o?.prevBtn?.svgIcon,svgSize:o?.prevBtn?.svgSize??16}),jsxs(N,{component:"span",className:p.arrowsLabel,sx:{mx:.5,typography:"subtitle2"},"data-testid":"carousel-number-display",children:[t,"/",r]}),jsx(h,{variant:"next",options:e,disabled:a,onClick:n,sx:{p:.75,borderRadius:"inherit",...o?.nextBtn?.sx},svgIcon:o?.nextBtn?.svgIcon,svgSize:o?.prevBtn?.svgSize??16})]})}function So({options:e,slotProps:o,onClickPrev:r,onClickNext:t,disablePrev:i,disableNext:n}){let s={zIndex:9,top:"50%",borderRadius:1.5,position:"absolute",color:"common.white",bgcolor:"text.primary",transform:"translateY(-50%)","&:hover":{opacity:.8},[b.dark]:{color:"grey.800"}};return jsxs(Fragment,{children:[jsx(h,{variant:"prev",options:e,disabled:i,onClick:r,svgIcon:o?.prevBtn?.svgIcon,svgSize:o?.prevBtn?.svgSize,sx:{left:-16,...s,...o?.prevBtn?.sx}}),jsx(h,{variant:"next",options:e,disabled:n,onClick:t,svgIcon:o?.nextBtn?.svgIcon,svgSize:o?.nextBtn?.svgSize,sx:{right:-16,...s,...o?.nextBtn?.sx}})]})}function h({sx:e,svgIcon:o,svgSize:r,options:t,variant:i,...n}){let s=i==="prev",a=i==="next",l=o||jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M15.488 4.43a.75.75 0 0 1 .081 1.058L9.988 12l5.581 6.512a.75.75 0 1 1-1.138.976l-6-7a.75.75 0 0 1 0-.976l6-7a.75.75 0 0 1 1.057-.081",clipRule:"evenodd"}),c=o||jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M8.512 4.43a.75.75 0 0 1 1.057.082l6 7a.75.75 0 0 1 0 .976l-6 7a.75.75 0 0 1-1.138-.976L14.012 12L8.431 5.488a.75.75 0 0 1 .08-1.057",clipRule:"evenodd"});return jsx(J,{className:s?p.arrowPrev:p.arrowPrev,"aria-label":s?"Prev button":"Next button",sx:{p:1,borderRadius:"50%",boxSizing:"content-box",transition:u=>u.transitions.create(["all"],{easing:u.transitions.easing.sharp,duration:u.transitions.duration.short}),[`&.${buttonBaseClasses.disabled}`]:{opacity:.4},...e,...t?.direction==="rtl"&&{...s&&{right:-16,left:"auto"},...a&&{left:-16,right:"auto"}}},...n,children:jsx(he,{className:p.arrowSvg,sx:{width:r??20,height:r??20,...t?.axis==="y"&&{transform:" rotate(90deg)"},...t?.direction==="rtl"&&{transform:" scaleX(-1)"}},children:s?l:c})})}function Ro({sx:e,gap:o,slotProps:r,onClickDot:t,scrollSnaps:i,selectedIndex:n,fallbackCount:s=1,variant:a="circular",fallback:l=!1,...c}){let u=useTheme(),m={number:o??6,rounded:o??2,circular:o??2},d={circular:r?.dot?.size??18,number:r?.dot?.size??28},S=jsx(N,{sx:{height:d.circular,width:`calc(${s*d.circular+m.circular*(s-1)}px )`,...a==="number"&&{height:d.number,width:`calc(${s*d.number+m.number*(s-1)}px )`}}}),f={circular:y=>({width:d.circular,height:d.circular,"&::before":{width:8,height:8,content:'""',opacity:.24,borderRadius:"50%",bgcolor:"primary.main",transition:u.transitions.create(["opacity"],{easing:u.transitions.easing.sharp,duration:u.transitions.duration.short}),...y&&{opacity:1}}}),rounded:y=>({width:d.circular,height:d.circular,"&::before":{width:8,height:8,content:'""',opacity:.24,borderRadius:"50%",bgcolor:"primary.main",transition:u.transitions.create(["width","opacity"],{easing:u.transitions.easing.sharp,duration:u.transitions.duration.short}),...y&&{width:"calc(100% - 4px)",opacity:1,borderRadius:1}}}),number:y=>({width:d.number,height:d.number,borderRadius:"50%",typography:"caption",color:"text.disabled",border:`solid 1px ${k(u.vars.palette.grey["500Channel"],.16)}`,...y&&{color:"common.white",bgcolor:"text.primary",fontWeight:"fontWeightSemiBold",[b.dark]:{color:"grey.800"}}})};return jsx(_e,{fallback:l?S:null,children:jsx(N,{"data-testid":"carousel-dots",component:"ul",className:p.dots,sx:{zIndex:9,display:"inline-flex",...a==="circular"&&{gap:`${m.circular}px`},...a==="rounded"&&{gap:`${m.rounded}px`},...a==="number"&&{gap:`${m.number}px`},...e},...c,children:i.map((y,x)=>{let v=x===n;return jsx(N,{component:"li",sx:{display:"inline-flex"},children:jsx(J,{disableRipple:!0,"aria-label":`dot-${x}`,className:p.dot.concat(v?` ${p.state.selected}`:""),onClick:()=>t(x),sx:{...a==="circular"&&f.circular(v),...a==="rounded"&&f.rounded(v),...a==="number"&&f.number(v),[`&.${p.state.selected}`]:{...r?.dot?.selected},...r?.dot?.sx},children:a==="number"&&x+1})},x)})})})}var we=styled(N)(({theme:e})=>({height:6,maxWidth:120,width:"100%",borderRadius:6,overflow:"hidden",position:"relative",color:e.palette.text.primary,backgroundColor:e.palette.divider})),Pe=styled(N)(()=>({top:0,bottom:0,width:"100%",left:"-100%",position:"absolute",backgroundColor:"currentColor"}));function Lo({value:e,sx:o,...r}){return jsx(we,{"data-testid":"carousel-progress",sx:o,className:p.progress,...r,children:jsx(Pe,{"data-testid":"carousel-progress-bar",className:p.progressBar,sx:{transform:`translate3d(${e}%, 0px, 0px)`}})})}var Ne=forwardRef(({children:e,slotProps:o,options:r,sx:t,...i},n)=>{let s=r?.axis??"x",a=r?.slideSpacing??"12px",l=Oe(s),c=Children.map(e,u=>{if(isValidElement(u)){let m=u;return jsx(w,{options:{...r,slideSpacing:a},sx:o?.slide,children:u},m.key)}return null});return jsx(R,{ref:n,axis:s,"data-testid":"carousel-root",className:p.thumbs,sx:{flexShrink:0,...s==="x"&&{p:.5,maxWidth:1},...s==="y"&&{p:.5,maxHeight:1},...!o?.disableMask&&l,...t},...i,children:jsx(T,{component:"ul",axis:s,"data-testid":"carousel-container",slideSpacing:a,className:p.thumbContainer,sx:{...o?.container},children:c})})});Ne.displayName="CarouselThumbs";function qo({thumbType:e="image",sx:o,src:r,index:t,selected:i,imageRender:n,thumbAlt:s,...a$1}){if(e==="image"&&(r||n)){let l={width:1,height:1,aspectRatio:1,objectFit:"cover",borderRadius:"inherit"};return jsx(J,{className:p.thumb,"data-testid":"carousel-thumb",sx:{width:64,height:64,opacity:.48,flexShrink:0,cursor:"pointer",borderRadius:1.25,transition:c=>c.transitions.create(["opacity","box-shadow"],{easing:c.transitions.easing.sharp,duration:c.transitions.duration.short}),...i&&{opacity:1,boxShadow:c=>`0 0 0 2px ${c.vars.palette.primary.main}`},...o},...a$1,children:n?.({sx:l,classes:p.thumbImage})||jsx(N,{component:"img",alt:s||`Imagem do slide ${t}`,src:r,"data-testid":"carousel-thumb-image",className:p.thumbImage,sx:l})})}return e==="video"?jsx(J,{className:p.thumb,"data-testid":"carousel-thumb",sx:{width:64,height:64,opacity:.48,flexShrink:0,cursor:"pointer",borderRadius:1.25,color:l=>l.vars.palette.primary.main,transition:l=>l.transitions.create(["opacity","box-shadow"],{easing:l.transitions.easing.sharp,duration:l.transitions.duration.short}),...i&&{opacity:1,boxShadow:l=>`0 0 0 2px ${l.vars.palette.primary.main}`},...o},...a$1,children:jsx(a,{icon:"PLAY_CIRCLE",width:32})}):null}function Oe(e){let o=useTheme(),r={zIndex:9,content:'""',position:"absolute"},t=`${o.vars.palette.background.paper} 20%, ${k(o.vars.palette.background.paperChannel,0)} 100%)`;return e==="y"?{"&::before, &::after":{...r,left:0,height:40,width:"100%"},"&::before":{top:-8,background:`linear-gradient(to bottom, ${t}`},"&::after":{bottom:-8,background:`linear-gradient(to top, ${t}`}}:{"&::before, &::after":{...r,top:0,width:40,height:"100%"},"&::before":{left:-8,background:`linear-gradient(to right, ${t}`},"&::after":{right:-8,background:`linear-gradient(to left, ${t}`}}}var A=e=>{let[o,r]=useState(!0),[t,i]=useState(!0),n=useCallback(()=>{e&&e.scrollPrev();},[e]),s=useCallback(()=>{e&&e.scrollNext();},[e]),a=useCallback(l=>{r(!l.canScrollPrev()),i(!l.canScrollNext());},[]);return useEffect(()=>{if(e)return a(e),e.on("reInit",a),e.on("select",a),()=>{e.off("reInit",a),e.off("select",a);}},[e,a]),{disablePrev:o,disableNext:t,onClickPrev:n,onClickNext:s}};function oe(e){let[o,r]=useState(!1),t=useCallback(n=>{let s=e?.plugins()?.autoplay;if(!s)return;(s.options.stopOnInteraction===!1?s.reset:s.stop)(),n();},[e]),i=useCallback(()=>{let n=e?.plugins()?.autoplay;if(!n)return;(n.isPlaying()?n.stop:n.play)();},[e]);return useEffect(()=>{let n=e?.plugins()?.autoplay;n&&(r(n.isPlaying()),e.on("autoplay:play",()=>r(!0)).on("autoplay:stop",()=>r(!1)).on("reInit",()=>r(!1)));},[e]),{isPlaying:o,onTogglePlay:i,onClickAutoplay:t}}function re(e){let[o,r]=useState(!1),t=useCallback(n=>{let s=e?.plugins()?.autoScroll;if(!s)return;(s.options.stopOnInteraction===!1?s.reset:s.stop)(),n();},[e]),i=useCallback(()=>{let n=e?.plugins()?.autoScroll;if(!n)return;(n.isPlaying()?n.stop:n.play)();},[e]);return useEffect(()=>{let n=e?.plugins()?.autoScroll;n&&(r(n.isPlaying()),e.on("autoScroll:play",()=>r(!0)).on("autoScroll:stop",()=>r(!1)).on("reInit",()=>r(!1)));},[e]),{isPlaying:o,onTogglePlay:i,onClickAutoplay:t}}function se(e){let[o,r]=useState(0),[t,i]=useState(0),[n,s]=useState([]),a=useCallback(u=>{e&&e.scrollTo(u);},[e]),l=useCallback(u=>{s(u.scrollSnapList());},[]),c=useCallback(u=>{i(u.selectedScrollSnap()),r(u.scrollSnapList().length);},[]);return useEffect(()=>{if(e)return l(e),c(e),e.on("reInit",l),e.on("reInit",c),e.on("select",c),()=>{e.off("reInit",l),e.off("reInit",c),e.off("select",c);}},[e,l,c]),{dotCount:o,scrollSnaps:n,selectedIndex:t,onClickDot:a}}function ne(e,o){let r=useRef(0),t=useRef([]),i=typeof o=="number"?o:.24,n=useCallback(l=>{t.current=l.slideNodes().map(c=>c.querySelector(".slide__parallax__layer"));},[]),s=useCallback(l=>{r.current=i*l.scrollSnapList().length;},[i]),a=useCallback((l,c)=>{let u=l.internalEngine(),m=l.scrollProgress(),d=l.slidesInView(),S=c==="scroll";l.scrollSnapList().forEach((f,y)=>{let x=f-m;u.slideRegistry[y].forEach(k=>{if(S&&!d.includes(k))return;u.options.loop&&u.slideLooper.loopPoints.forEach(V=>{let D=V.target();if(k===V.index&&D!==0){let M=Math.sign(D);M===-1&&(x=f-(1+m)),M===1&&(x=f+(1-m));}});let ce=x*(-1*r.current)*100,U=t.current[k];U&&(U.style.transform=`translateX(${ce}%)`);});});},[]);return useEffect(()=>{if(!(!e||!o))return n(e),s(e),a(e),e.on("reInit",n).on("reInit",s).on("reInit",a).on("scroll",a),()=>{e.off("reInit",n).off("reInit",s).off("reInit",a).off("scroll",a);}},[e,a]),null}function le(e){let[o,r]=useState(0),t=useCallback(i=>{let n=Math.max(0,Math.min(1,i.scrollProgress()));r(n*100);},[]);return useEffect(()=>{if(e)return t(e),e.on("reInit",t),e.on("scroll",t),()=>{e.off("reInit",t).off("scroll",t);}},[e,t]),{value:o}}function ue(e,o){let[r,t]=Xe({containScroll:"keepSnaps",dragFree:!0,...o}),[i,n]=useState(0),s=useCallback(l=>{!e||!t||e.scrollTo(l);},[e,t]),a=useCallback(()=>{!e||!t||(n(e.selectedScrollSnap()),t.scrollTo(e.selectedScrollSnap()));},[e,t,n]);return useEffect(()=>{if(e)return a(),e.on("select",a),e.on("reInit",a),()=>{e.off("select",a),e.off("reInit",a);}},[e,a]),{onClickThumb:s,thumbsRef:r,thumbsApi:t,selectedIndex:i}}var St=(e,o)=>{let[r,t]=Xe(e,o),{disablePrev:i,disableNext:n,onClickPrev:s,onClickNext:a}=A(t),l=o?.map(y=>y.name),c=se(t),u=oe(t),m=re(t),d=le(t),S=ue(t,e?.thumbs);ne(t,e?.parallax);let f=useMemo(()=>l?.includes("autoplay")?{onClickPrev:()=>u.onClickAutoplay(s),onClickNext:()=>u.onClickAutoplay(a)}:l?.includes("autoScroll")?{onClickPrev:()=>m.onClickAutoplay(s),onClickNext:()=>m.onClickAutoplay(a)}:{onClickPrev:s,onClickNext:a},[m,u,a,s,l]);return {options:{...e,...t?.internalEngine().options},pluginNames:l,mainRef:r,mainApi:t,arrows:{disablePrev:i,disableNext:n,onClickPrev:f.onClickPrev,onClickNext:f.onClickNext},dots:c,thumbs:S,progress:d,autoplay:u,autoScroll:m}};
14
14
 
15
15
  export { Ge as a, p as b, w as c, R as d, T as e, io as f, Co as g, ho as h, So as i, h as j, Ro as k, Lo as l, Ne as m, qo as n, St as o };
16
- //# sourceMappingURL=chunk-QT4ZQ2CJ.js.map
16
+ //# sourceMappingURL=chunk-M3IIWN6P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/carousel/breakpoints.ts","../src/components/carousel/carousel.tsx","../src/components/carousel/components/carousel-slide.tsx","../src/components/carousel/classes.ts","../src/components/carousel/components/carousel-arrow-buttons.tsx","../src/components/carousel/components/carousel-dot-buttons.tsx","../src/components/carousel/components/carousel-progress-bar.tsx","../src/components/carousel/components/carousel-thumbs.tsx","../src/components/carousel/hooks/use-carousel.ts","../src/components/carousel/hooks/use-carousel-arrows.ts","../src/components/carousel/hooks/use-carousel-auto-play.ts","../src/components/carousel/hooks/use-carousel-auto-scroll.ts","../src/components/carousel/hooks/use-carousel-dots.ts","../src/components/carousel/hooks/use-carousel-parallax.ts","../src/components/carousel/hooks/use-carousel-progress.ts","../src/components/carousel/hooks/use-thumbs.ts"],"names":["carouselBreakpoints","Children","isValidElement","Box","styled","carouselClasses","jsx","StyledRoot","prop","axis","slideSpacing","StyledContent","CarouselSlide","sx","options","children","other","slideSize","getSize","slidesToShow","acc","key","sizeByKey","getValue","value","StyledContainer","Carousel","carousel","slotProps","props","mainRef","direction","renderChildren","child","reactChild","theme","ButtonBase","buttonBaseClasses","Stack","useTheme","SvgIcon","Fragment","jsxs","CarouselArrowBasicButtons","totalSlides","selectedIndex","onClickPrev","onClickNext","disablePrev","disableNext","ArrowButton","CarouselArrowNumberButtons","varAlpha","CarouselArrowFloatButtons","baseStyles","stylesMode","svgIcon","svgSize","variant","arrowPrev","arrowNext","prevSvg","nextSvg","NoSsr","CarouselDotButtons","gap","onClickDot","scrollSnaps","fallbackCount","fallback","GAPS","SIZES","renderFallback","dotStyles","selected","_","index","StyledProgress","CarouselProgressBar","forwardRef","CarouselThumbs","ref","maskStyles","useMaskStyle","CarouselThumb","thumbType","src","imageRender","thumbAlt","sxThumb","Icon_default","bgcolor","useMemo","useEmblaCarousel","useCallback","useEffect","useState","useCarouselArrows","mainApi","setDisabledPrevBtn","setDisabledNextBtn","onSelect","_mainApi","useCarouselAutoPlay","isPlaying","setIsPlaying","onClickAutoplay","callback","autoplay","onTogglePlay","useCarouselAutoScroll","autoScroll","useCarouselDots","dotCount","setDotCount","setSelectedIndex","setScrollSnaps","onInit","useRef","useParallax","parallax","tweenFactor","tweenNodes","TWEEN_FACTOR_BASE","setTweenNodes","slideNode","setTweenFactor","tweenParallax","eventName","engine","scrollProgress","slidesInView","isScrollEvent","scrollSnap","snapIndex","diffToTarget","slideIndex","loopItem","target","sign","translateValue","tweenNode","useCarouselProgress","setScrollProgress","onScroll","progress","useThumbs","thumbsRef","thumbsApi","onClickThumb","useCarousel","plugins","pluginNames","plugin","_dots","_autoplay","_autoScroll","_progress","_thumbs","controls"],"mappings":"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","sourcesContent":["export const carouselBreakpoints = {\n xs: '(min-width: 0px)',\n sm: '(min-width: 600px)',\n md: '(min-width: 900px)',\n lg: '(min-width: 1200px)',\n xl: '(min-width: 1536px)',\n};\n","/* eslint-disable react/function-component-definition */\nimport { Children, isValidElement } from 'react';\nimport Box from '@mui/material/Box';\nimport { styled } from '@mui/material/styles';\n\nimport { CarouselSlide } from './components/carousel-slide';\nimport { carouselClasses } from './classes';\nimport type {\n CarouselProps,\n CarouselStyledProps as StyledProps,\n} from './types';\n\nexport const StyledRoot = styled(Box, {\n shouldForwardProp: prop => prop !== 'axis',\n})<StyledProps>(({ axis }) => ({\n margin: 'auto',\n width: '100%',\n maxWidth: '100%',\n overflow: 'hidden',\n position: 'relative',\n ...(axis === 'y' && {\n height: '100%',\n }),\n}));\n\nexport const StyledContainer = styled(Box, {\n shouldForwardProp: prop => prop !== 'axis' && prop !== 'slideSpacing',\n})<StyledProps>(({ axis, slideSpacing }) => ({\n display: 'flex',\n backfaceVisibility: 'hidden',\n ...(axis === 'x' && {\n touchAction: 'pan-y pinch-zoom',\n marginLeft: `calc(${slideSpacing} * -1)`,\n }),\n ...(axis === 'y' && {\n height: '100%',\n flexDirection: 'column',\n touchAction: 'pan-x pinch-zoom',\n marginTop: `calc(${slideSpacing} * -1)`,\n }),\n}));\n\n// ----------------------------------------------------------------------\n\nexport function Carousel({\n carousel,\n children,\n sx,\n slotProps,\n ...props\n}: CarouselProps) {\n const { mainRef, options } = carousel;\n\n const axis = options?.axis ?? 'x';\n\n const slideSpacing = options?.slideSpacing ?? '0px';\n\n const direction = options?.direction ?? 'ltr';\n\n const renderChildren = Children.map(children, child => {\n if (isValidElement(child)) {\n const reactChild = child as React.ReactElement<{ key?: React.Key }>;\n\n return (\n <CarouselSlide\n key={reactChild.key}\n options={carousel.options}\n sx={slotProps?.slide}\n {...props}\n >\n {child}\n </CarouselSlide>\n );\n }\n return null;\n });\n\n return (\n <StyledRoot\n sx={sx}\n axis={axis}\n ref={mainRef}\n dir={direction}\n className={carouselClasses.root}\n >\n <StyledContainer\n component=\"ul\"\n axis={axis}\n slideSpacing={slideSpacing}\n className={carouselClasses.container}\n sx={{\n ...(carousel.pluginNames?.includes('autoHeight') && {\n alignItems: 'flex-start',\n transition: theme =>\n theme.transitions.create(['height'], {\n easing: theme.transitions.easing.easeInOut,\n duration: theme.transitions.duration.shorter,\n }),\n }),\n ...slotProps?.container,\n }}\n >\n {renderChildren}\n </StyledContainer>\n </StyledRoot>\n );\n}\n","/* eslint-disable react/function-component-definition */\nimport type { BoxProps } from '@mui/material/Box';\nimport Box from '@mui/material/Box';\nimport { styled } from '@mui/material/styles';\n\nimport { carouselClasses } from '../classes';\nimport type {\n CarouselInputValue as InputValue,\n CarouselObjectValue as ObjectValue,\n CarouselSlideProps,\n CarouselStyledProps as StyledProps,\n} from '../types';\n\n// ----------------------------------------------------------------------\n\nconst StyledRoot = styled(Box, {\n shouldForwardProp: prop => prop !== 'axis' && prop !== 'slideSpacing',\n})<StyledProps>(({ axis, slideSpacing }) => ({\n display: 'block',\n position: 'relative',\n ...(axis === 'x' && {\n minWidth: 0,\n paddingLeft: slideSpacing,\n }),\n ...(axis === 'y' && {\n minHeight: 0,\n paddingTop: slideSpacing,\n }),\n}));\n\nconst StyledContent = styled(Box)(() => ({\n overflow: 'hidden',\n position: 'relative',\n borderRadius: 'inherit',\n}));\n\n// ----------------------------------------------------------------------\n\nexport function CarouselSlide({\n sx,\n options,\n children,\n ...other\n}: BoxProps & CarouselSlideProps) {\n const slideSize = getSize(options?.slidesToShow);\n\n return (\n <StyledRoot\n component=\"li\"\n axis={options?.axis ?? 'x'}\n slideSpacing={options?.slideSpacing}\n className={carouselClasses.slide}\n sx={{\n flex: slideSize,\n ...sx,\n }}\n {...other}\n >\n {options?.parallax ? (\n <StyledContent className={carouselClasses.slideContent}>\n <div className=\"slide__parallax__layer\">{children}</div>\n </StyledContent>\n ) : (\n children\n )}\n </StyledRoot>\n );\n}\n\n// ----------------------------------------------------------------------\n\nfunction getSize(slidesToShow: InputValue): InputValue {\n if (slidesToShow && typeof slidesToShow === 'object') {\n return Object.keys(slidesToShow).reduce<ObjectValue>((acc, key) => {\n const sizeByKey = slidesToShow[key];\n acc[key] = getValue(sizeByKey);\n return acc;\n }, {});\n }\n\n return getValue(slidesToShow);\n}\n\nfunction getValue(value: string | number = 1): string {\n if (typeof value === 'string') {\n const isSupported =\n value === 'auto' || value.endsWith('%') || value.endsWith('px');\n if (!isSupported) {\n throw new Error('Only accepts values: auto, px, %, or number.');\n }\n // value is either 'auto', ends with '%', or ends with 'px'\n return `0 0 ${value}`;\n }\n\n if (typeof value === 'number') {\n return `0 0 ${100 / value}%`;\n }\n\n // Default case should not be reached due to the type signature, but we include it for safety\n throw new Error(\n 'Invalid value type. Only accepts values: auto, px, %, or number.',\n );\n}\n","export const carouselClasses = {\n root: 'mnl__carousel__root',\n container: 'mnl__carousel__container',\n // dot\n dots: 'mnl__carousel__dots',\n dot: 'mnl__carousel__dot',\n // arrow\n arrows: 'mnl__carousel__arrows',\n arrowsLabel: 'mnl__carousel__arrows_label',\n arrowPrev: 'mnl__carousel__btn--prev',\n arrowNext: 'mnl__carousel__btn--next',\n arrowSvg: 'mnl__carousel__btn__svg',\n // slide\n slide: 'mnl__carousel__slide',\n slideContent: 'mnl__carousel__slide__content',\n // thumb\n thumbs: 'mnl__carousel__thumbs',\n thumb: 'mnl__carousel__thumb',\n thumbContainer: 'mnl__carousel__thumbs__container',\n thumbImage: 'mnl__carousel__thumb__image',\n // progress\n progress: 'mnl__carousel__progress',\n progressBar: 'mnl__carousel__progress__bar',\n state: { selected: 'state--selected', disabled: 'state--disabled' },\n};\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react/function-component-definition */\nimport Box from '@mui/material/Box';\nimport type { ButtonBaseProps } from '@mui/material/ButtonBase';\nimport ButtonBase, { buttonBaseClasses } from '@mui/material/ButtonBase';\nimport type { StackProps } from '@mui/material/Stack';\nimport Stack from '@mui/material/Stack';\nimport type { CSSObject } from '@mui/material/styles';\nimport { useTheme } from '@mui/material/styles';\nimport SvgIcon from '@mui/material/SvgIcon';\n\nimport { stylesMode, varAlpha } from 'theme/styles';\n\nimport { carouselClasses } from '../classes';\nimport type {\n CarouselArrowButtonProps,\n CarouselArrowButtonsProps,\n} from '../types';\n\nexport function CarouselArrowBasicButtons({\n options,\n slotProps,\n totalSlides,\n selectedIndex,\n //\n onClickPrev,\n onClickNext,\n disablePrev,\n disableNext,\n sx,\n ...other\n}: StackProps & CarouselArrowButtonsProps) {\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n display=\"inline-flex\"\n className={carouselClasses.arrows}\n sx={{\n gap: 0.5,\n zIndex: 9,\n color: 'action.active',\n ...sx,\n }}\n {...other}\n >\n <ArrowButton\n variant=\"prev\"\n options={options}\n disabled={disablePrev}\n onClick={onClickPrev}\n svgIcon={slotProps?.prevBtn?.svgIcon}\n svgSize={slotProps?.prevBtn?.svgSize}\n sx={slotProps?.prevBtn?.sx}\n />\n\n <ArrowButton\n variant=\"next\"\n options={options}\n disabled={disableNext}\n onClick={onClickNext}\n svgIcon={slotProps?.nextBtn?.svgIcon}\n svgSize={slotProps?.prevBtn?.svgSize}\n sx={slotProps?.prevBtn?.sx}\n />\n </Stack>\n );\n}\n\n// ----------------------------------------------------------------------\n\nexport function CarouselArrowNumberButtons({\n options,\n slotProps,\n totalSlides,\n selectedIndex,\n //\n onClickPrev,\n onClickNext,\n disablePrev,\n disableNext,\n sx,\n ...other\n}: StackProps & CarouselArrowButtonsProps) {\n const theme = useTheme();\n\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n display=\"inline-flex\"\n className={carouselClasses.arrows}\n sx={{\n p: 0.5,\n gap: 0.25,\n zIndex: 9,\n borderRadius: 1.25,\n color: 'common.white',\n bgcolor: varAlpha(theme.vars.palette.grey['900Channel'], 0.48),\n ...sx,\n }}\n {...other}\n >\n <ArrowButton\n variant=\"prev\"\n options={options}\n disabled={disablePrev}\n onClick={onClickPrev}\n sx={{ p: 0.75, borderRadius: 'inherit', ...slotProps?.prevBtn?.sx }}\n svgIcon={slotProps?.prevBtn?.svgIcon}\n svgSize={slotProps?.prevBtn?.svgSize ?? 16}\n />\n\n <Box\n component=\"span\"\n className={carouselClasses.arrowsLabel}\n sx={{ mx: 0.5, typography: 'subtitle2' }}\n data-testid=\"carousel-number-display\"\n >\n {selectedIndex}/{totalSlides}\n </Box>\n\n <ArrowButton\n variant=\"next\"\n options={options}\n disabled={disableNext}\n onClick={onClickNext}\n sx={{ p: 0.75, borderRadius: 'inherit', ...slotProps?.nextBtn?.sx }}\n svgIcon={slotProps?.nextBtn?.svgIcon}\n svgSize={slotProps?.prevBtn?.svgSize ?? 16}\n />\n </Stack>\n );\n}\n\n// ----------------------------------------------------------------------\n\nexport function CarouselArrowFloatButtons({\n options,\n slotProps,\n onClickPrev,\n onClickNext,\n disablePrev,\n disableNext,\n}: StackProps & CarouselArrowButtonsProps) {\n const baseStyles: CSSObject = {\n zIndex: 9,\n top: '50%',\n borderRadius: 1.5,\n position: 'absolute',\n color: 'common.white',\n bgcolor: 'text.primary',\n transform: 'translateY(-50%)',\n '&:hover': { opacity: 0.8 },\n [stylesMode.dark]: { color: 'grey.800' },\n };\n\n return (\n <>\n <ArrowButton\n variant=\"prev\"\n options={options}\n disabled={disablePrev}\n onClick={onClickPrev}\n svgIcon={slotProps?.prevBtn?.svgIcon}\n svgSize={slotProps?.prevBtn?.svgSize}\n sx={{ left: -16, ...baseStyles, ...slotProps?.prevBtn?.sx }}\n />\n\n <ArrowButton\n variant=\"next\"\n options={options}\n disabled={disableNext}\n onClick={onClickNext}\n svgIcon={slotProps?.nextBtn?.svgIcon}\n svgSize={slotProps?.nextBtn?.svgSize}\n sx={{ right: -16, ...baseStyles, ...slotProps?.nextBtn?.sx }}\n />\n </>\n );\n}\n\n// ----------------------------------------------------------------------\n\nexport function ArrowButton({\n sx,\n svgIcon,\n svgSize,\n options,\n variant,\n ...other\n}: ButtonBaseProps & CarouselArrowButtonProps) {\n const arrowPrev = variant === 'prev';\n const arrowNext = variant === 'next';\n\n const prevSvg = svgIcon || (\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M15.488 4.43a.75.75 0 0 1 .081 1.058L9.988 12l5.581 6.512a.75.75 0 1 1-1.138.976l-6-7a.75.75 0 0 1 0-.976l6-7a.75.75 0 0 1 1.057-.081\"\n clipRule=\"evenodd\"\n />\n );\n\n const nextSvg = svgIcon || (\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M8.512 4.43a.75.75 0 0 1 1.057.082l6 7a.75.75 0 0 1 0 .976l-6 7a.75.75 0 0 1-1.138-.976L14.012 12L8.431 5.488a.75.75 0 0 1 .08-1.057\"\n clipRule=\"evenodd\"\n />\n );\n\n return (\n <ButtonBase\n className={\n arrowPrev ? carouselClasses.arrowPrev : carouselClasses.arrowPrev\n }\n aria-label={arrowPrev ? 'Prev button' : 'Next button'}\n sx={{\n p: 1,\n borderRadius: '50%',\n boxSizing: 'content-box',\n transition: theme =>\n theme.transitions.create(['all'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.short,\n }),\n [`&.${buttonBaseClasses.disabled}`]: {\n opacity: 0.4,\n },\n ...sx,\n ...(options?.direction === 'rtl' && {\n ...(arrowPrev && { right: -16, left: 'auto' }),\n ...(arrowNext && { left: -16, right: 'auto' }),\n }),\n }}\n {...other}\n >\n <SvgIcon\n className={carouselClasses.arrowSvg}\n sx={{\n width: svgSize ?? 20,\n height: svgSize ?? 20,\n ...(options?.axis === 'y' && { transform: ' rotate(90deg)' }),\n ...(options?.direction === 'rtl' && { transform: ' scaleX(-1)' }),\n }}\n >\n {arrowPrev ? prevSvg : nextSvg}\n </SvgIcon>\n </ButtonBase>\n );\n}\n","/* eslint-disable react/function-component-definition */\nimport Box from '@mui/material/Box';\nimport ButtonBase from '@mui/material/ButtonBase';\nimport NoSsr from '@mui/material/NoSsr';\nimport { useTheme } from '@mui/material/styles';\n\nimport { stylesMode, varAlpha } from 'theme/styles';\n\nimport { carouselClasses } from '../classes';\nimport type { CarouselDotButtonsProps } from '../types';\n\n// ----------------------------------------------------------------------\n\nexport function CarouselDotButtons({\n sx,\n gap,\n slotProps,\n onClickDot,\n scrollSnaps,\n selectedIndex,\n fallbackCount = 1,\n variant = 'circular',\n fallback = false,\n ...other\n}: CarouselDotButtonsProps) {\n const theme = useTheme();\n\n const GAPS = {\n number: gap ?? 6,\n rounded: gap ?? 2,\n circular: gap ?? 2,\n };\n\n const SIZES = {\n circular: slotProps?.dot?.size ?? 18,\n number: slotProps?.dot?.size ?? 28,\n };\n\n const renderFallback = (\n <Box\n sx={{\n height: SIZES.circular,\n width: `calc(${fallbackCount * SIZES.circular + GAPS.circular * (fallbackCount - 1)}px )`,\n ...(variant === 'number' && {\n height: SIZES.number,\n width: `calc(${fallbackCount * SIZES.number + GAPS.number * (fallbackCount - 1)}px )`,\n }),\n }}\n />\n );\n\n const dotStyles = {\n circular: (selected: boolean) => ({\n width: SIZES.circular,\n height: SIZES.circular,\n '&::before': {\n width: 8,\n height: 8,\n content: '\"\"',\n opacity: 0.24,\n borderRadius: '50%',\n bgcolor: 'primary.main',\n transition: theme.transitions.create(['opacity'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.short,\n }),\n ...(selected && { opacity: 1 }),\n },\n }),\n rounded: (selected: boolean) => ({\n width: SIZES.circular,\n height: SIZES.circular,\n '&::before': {\n width: 8,\n height: 8,\n content: '\"\"',\n opacity: 0.24,\n borderRadius: '50%',\n bgcolor: 'primary.main',\n transition: theme.transitions.create(['width', 'opacity'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.short,\n }),\n ...(selected && {\n width: 'calc(100% - 4px)',\n opacity: 1,\n borderRadius: 1,\n }),\n },\n }),\n number: (selected: boolean) => ({\n width: SIZES.number,\n height: SIZES.number,\n borderRadius: '50%',\n typography: 'caption',\n color: 'text.disabled',\n border: `solid 1px ${varAlpha(theme.vars.palette.grey['500Channel'], 0.16)}`,\n ...(selected && {\n color: 'common.white',\n bgcolor: 'text.primary',\n fontWeight: 'fontWeightSemiBold',\n [stylesMode.dark]: { color: 'grey.800' },\n }),\n }),\n };\n\n return (\n <NoSsr fallback={fallback ? renderFallback : null}>\n <Box\n data-testid=\"carousel-dots\"\n component=\"ul\"\n className={carouselClasses.dots}\n sx={{\n zIndex: 9,\n display: 'inline-flex',\n ...(variant === 'circular' && { gap: `${GAPS.circular}px` }),\n ...(variant === 'rounded' && { gap: `${GAPS.rounded}px` }),\n ...(variant === 'number' && { gap: `${GAPS.number}px` }),\n ...sx,\n }}\n {...other}\n >\n {scrollSnaps.map((_, index) => {\n const selected = index === selectedIndex;\n\n return (\n <Box component=\"li\" key={index} sx={{ display: 'inline-flex' }}>\n <ButtonBase\n disableRipple\n aria-label={`dot-${index}`}\n className={carouselClasses.dot.concat(\n selected ? ` ${carouselClasses.state.selected}` : '',\n )}\n onClick={() => onClickDot(index)}\n sx={{\n ...(variant === 'circular' && dotStyles.circular(selected)),\n ...(variant === 'rounded' && dotStyles.rounded(selected)),\n ...(variant === 'number' && dotStyles.number(selected)),\n [`&.${carouselClasses.state.selected}`]: {\n ...slotProps?.dot?.selected,\n },\n ...slotProps?.dot?.sx,\n }}\n >\n {variant === 'number' && index + 1}\n </ButtonBase>\n </Box>\n );\n })}\n </Box>\n </NoSsr>\n );\n}\n","/* eslint-disable react/function-component-definition */\nimport type { BoxProps } from '@mui/material/Box';\nimport Box from '@mui/material/Box';\nimport { styled } from '@mui/material/styles';\n\nimport { carouselClasses } from '../classes';\nimport type { CarouselProgressBarProps } from '../types';\n\n// ----------------------------------------------------------------------\n\nconst StyledRoot = styled(Box)(({ theme }) => ({\n height: 6,\n maxWidth: 120,\n width: '100%',\n borderRadius: 6,\n overflow: 'hidden',\n position: 'relative',\n color: theme.palette.text.primary,\n backgroundColor: theme.palette.divider,\n}));\n\nconst StyledProgress = styled(Box)(() => ({\n top: 0,\n bottom: 0,\n width: '100%',\n left: '-100%',\n position: 'absolute',\n backgroundColor: 'currentColor',\n}));\n\n// ----------------------------------------------------------------------\n\nexport function CarouselProgressBar({\n value,\n sx,\n ...other\n}: BoxProps & CarouselProgressBarProps) {\n return (\n <StyledRoot\n data-testid=\"carousel-progress\"\n sx={sx}\n className={carouselClasses.progress}\n {...other}\n >\n <StyledProgress\n data-testid=\"carousel-progress-bar\"\n className={carouselClasses.progressBar}\n sx={{\n transform: `translate3d(${value}%, 0px, 0px)`,\n }}\n />\n </StyledRoot>\n );\n}\n","/* eslint-disable react/function-component-definition */\nimport { Children, forwardRef, isValidElement } from 'react';\nimport type { BoxProps } from '@mui/material/Box';\nimport Box from '@mui/material/Box';\nimport type { ButtonBaseProps } from '@mui/material/ButtonBase';\nimport ButtonBase from '@mui/material/ButtonBase';\nimport type { CSSObject, SxProps, Theme } from '@mui/material/styles';\nimport { useTheme } from '@mui/material/styles';\n\nimport Icon from 'components/Icon';\nimport { varAlpha } from 'theme/styles';\n\nimport { StyledContainer, StyledRoot } from '../carousel';\nimport { carouselClasses } from '../classes';\nimport type {\n CarouselOptions,\n CarouselThumbProps,\n CarouselThumbsProps,\n} from '../types';\n\nimport { CarouselSlide } from './carousel-slide';\n\n// ----------------------------------------------------------------------\n\nexport const CarouselThumbs = forwardRef<\n HTMLDivElement,\n BoxProps & CarouselThumbsProps\n>(({ children, slotProps, options, sx, ...other }, ref) => {\n const axis = options?.axis ?? 'x';\n\n const slideSpacing = options?.slideSpacing ?? '12px';\n\n const maskStyles = useMaskStyle(axis);\n\n const renderChildren = Children.map(children, child => {\n if (isValidElement(child)) {\n const reactChild = child as React.ReactElement<{ key?: React.Key }>;\n\n return (\n <CarouselSlide\n key={reactChild.key}\n options={{ ...options, slideSpacing }}\n sx={slotProps?.slide}\n >\n {child}\n </CarouselSlide>\n );\n }\n return null;\n });\n\n return (\n <StyledRoot\n ref={ref}\n axis={axis}\n data-testid=\"carousel-root\"\n className={carouselClasses.thumbs}\n sx={{\n flexShrink: 0,\n ...(axis === 'x' && { p: 0.5, maxWidth: 1 }),\n ...(axis === 'y' && { p: 0.5, maxHeight: 1 }),\n ...(!slotProps?.disableMask && maskStyles),\n ...sx,\n }}\n {...other}\n >\n <StyledContainer\n component=\"ul\"\n axis={axis}\n data-testid=\"carousel-container\"\n slideSpacing={slideSpacing}\n className={carouselClasses.thumbContainer}\n sx={{\n ...slotProps?.container,\n }}\n >\n {renderChildren}\n </StyledContainer>\n </StyledRoot>\n );\n});\nCarouselThumbs.displayName = 'CarouselThumbs';\n\nexport function CarouselThumb({\n thumbType = 'image',\n sx,\n src,\n index,\n selected,\n imageRender,\n thumbAlt,\n ...other\n}: ButtonBaseProps & CarouselThumbProps) {\n if (thumbType === 'image' && (src || imageRender)) {\n const sxThumb: SxProps<Theme> = {\n width: 1,\n height: 1,\n aspectRatio: 1,\n objectFit: 'cover',\n borderRadius: 'inherit',\n };\n\n return (\n <ButtonBase\n className={carouselClasses.thumb}\n data-testid=\"carousel-thumb\"\n sx={{\n width: 64,\n height: 64,\n opacity: 0.48,\n flexShrink: 0,\n cursor: 'pointer',\n borderRadius: 1.25,\n transition: theme =>\n theme.transitions.create(['opacity', 'box-shadow'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.short,\n }),\n ...(selected && {\n opacity: 1,\n boxShadow: theme => `0 0 0 2px ${theme.vars.palette.primary.main}`,\n }),\n ...sx,\n }}\n {...other}\n >\n {imageRender?.({\n sx: sxThumb,\n classes: carouselClasses.thumbImage,\n }) || (\n <Box\n component=\"img\"\n alt={thumbAlt || `Imagem do slide ${index}`}\n src={src}\n data-testid=\"carousel-thumb-image\"\n className={carouselClasses.thumbImage}\n sx={sxThumb}\n />\n )}\n </ButtonBase>\n );\n }\n\n if (thumbType === 'video') {\n return (\n <ButtonBase\n className={carouselClasses.thumb}\n data-testid=\"carousel-thumb\"\n sx={{\n width: 64,\n height: 64,\n opacity: 0.48,\n flexShrink: 0,\n cursor: 'pointer',\n borderRadius: 1.25,\n color: theme => theme.vars.palette.primary.main,\n transition: theme =>\n theme.transitions.create(['opacity', 'box-shadow'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.short,\n }),\n ...(selected && {\n opacity: 1,\n boxShadow: theme => `0 0 0 2px ${theme.vars.palette.primary.main}`,\n }),\n ...sx,\n }}\n {...other}\n >\n <Icon icon=\"PLAY_CIRCLE\" width={32} />\n </ButtonBase>\n );\n }\n\n return null;\n}\n\n// ----------------------------------------------------------------------\n\nfunction useMaskStyle(axis: CarouselOptions['axis']): CSSObject {\n const theme = useTheme();\n\n const baseStyles = {\n zIndex: 9,\n content: '\"\"',\n position: 'absolute',\n };\n\n const bgcolor = `${theme.vars.palette.background.paper} 20%, ${varAlpha(theme.vars.palette.background.paperChannel, 0)} 100%)`;\n\n if (axis === 'y') {\n return {\n '&::before, &::after': {\n ...baseStyles,\n left: 0,\n height: 40,\n width: '100%',\n },\n '&::before': {\n top: -8,\n background: `linear-gradient(to bottom, ${bgcolor}`,\n },\n '&::after': {\n bottom: -8,\n background: `linear-gradient(to top, ${bgcolor}`,\n },\n };\n }\n\n return {\n '&::before, &::after': {\n ...baseStyles,\n top: 0,\n width: 40,\n height: '100%',\n },\n '&::before': {\n left: -8,\n background: `linear-gradient(to right, ${bgcolor}`,\n },\n '&::after': {\n right: -8,\n background: `linear-gradient(to left, ${bgcolor}`,\n },\n };\n}\n","import { useMemo } from 'react';\nimport type { EmblaPluginType } from 'embla-carousel';\nimport useEmblaCarousel from 'embla-carousel-react';\n\nimport type { CarouselOptions, UseCarouselReturn } from '../types';\n\nimport { useCarouselArrows } from './use-carousel-arrows';\nimport { useCarouselAutoPlay } from './use-carousel-auto-play';\nimport { useCarouselAutoScroll } from './use-carousel-auto-scroll';\nimport { useCarouselDots } from './use-carousel-dots';\nimport { useParallax } from './use-carousel-parallax';\nimport { useCarouselProgress } from './use-carousel-progress';\nimport { useThumbs } from './use-thumbs';\n\n// ----------------------------------------------------------------------\n\nexport const useCarousel = (\n options?: CarouselOptions,\n plugins?: EmblaPluginType[],\n): UseCarouselReturn => {\n const [mainRef, mainApi] = useEmblaCarousel(options, plugins);\n\n const { disablePrev, disableNext, onClickPrev, onClickNext } =\n useCarouselArrows(mainApi);\n\n const pluginNames = plugins?.map(plugin => plugin.name);\n\n const _dots = useCarouselDots(mainApi);\n\n const _autoplay = useCarouselAutoPlay(mainApi);\n\n const _autoScroll = useCarouselAutoScroll(mainApi);\n\n const _progress = useCarouselProgress(mainApi);\n\n const _thumbs = useThumbs(mainApi, options?.thumbs);\n\n useParallax(mainApi, options?.parallax);\n\n const controls = useMemo(() => {\n if (pluginNames?.includes('autoplay')) {\n return {\n onClickPrev: () => _autoplay.onClickAutoplay(onClickPrev),\n onClickNext: () => _autoplay.onClickAutoplay(onClickNext),\n };\n }\n if (pluginNames?.includes('autoScroll')) {\n return {\n onClickPrev: () => _autoScroll.onClickAutoplay(onClickPrev),\n onClickNext: () => _autoScroll.onClickAutoplay(onClickNext),\n };\n }\n return {\n onClickPrev,\n onClickNext,\n };\n }, [_autoScroll, _autoplay, onClickNext, onClickPrev, pluginNames]);\n\n return {\n options: {\n ...options,\n ...mainApi?.internalEngine().options,\n },\n pluginNames,\n mainRef,\n mainApi,\n // arrows\n arrows: {\n disablePrev,\n disableNext,\n onClickPrev: controls.onClickPrev,\n onClickNext: controls.onClickNext,\n },\n // dots\n dots: _dots,\n // thumbs\n thumbs: _thumbs,\n // progress\n progress: _progress,\n // autoplay\n autoplay: _autoplay,\n autoScroll: _autoScroll,\n };\n};\n","import { useCallback, useEffect, useState } from 'react';\nimport type { EmblaCarouselType } from 'embla-carousel';\n\nimport type { UseCarouselArrowsReturn } from '../types';\n\n// ----------------------------------------------------------------------\n\nexport const useCarouselArrows = (\n mainApi?: EmblaCarouselType,\n): UseCarouselArrowsReturn => {\n const [disablePrev, setDisabledPrevBtn] = useState(true);\n\n const [disableNext, setDisabledNextBtn] = useState(true);\n\n const onClickPrev = useCallback(() => {\n if (!mainApi) return;\n mainApi.scrollPrev();\n }, [mainApi]);\n\n const onClickNext = useCallback(() => {\n if (!mainApi) return;\n mainApi.scrollNext();\n }, [mainApi]);\n\n const onSelect = useCallback((_mainApi: EmblaCarouselType) => {\n setDisabledPrevBtn(!_mainApi.canScrollPrev());\n setDisabledNextBtn(!_mainApi.canScrollNext());\n }, []);\n\n useEffect(() => {\n if (!mainApi) return;\n\n onSelect(mainApi);\n mainApi.on('reInit', onSelect);\n mainApi.on('select', onSelect);\n\n return () => {\n mainApi.off('reInit', onSelect);\n mainApi.off('select', onSelect);\n };\n }, [mainApi, onSelect]);\n\n return {\n disablePrev,\n disableNext,\n onClickPrev,\n onClickNext,\n };\n};\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\n// @ts-nocheck\nimport { useCallback, useEffect, useState } from 'react';\nimport type { EmblaCarouselType } from 'embla-carousel';\n\nimport type { UseCarouselAutoPlayReturn } from '../types';\n\n// ----------------------------------------------------------------------\n\nexport function useCarouselAutoPlay(\n mainApi?: EmblaCarouselType,\n): UseCarouselAutoPlayReturn {\n const [isPlaying, setIsPlaying] = useState(false);\n\n const onClickAutoplay = useCallback(\n (callback: () => void) => {\n const autoplay = mainApi?.plugins()?.autoplay;\n if (!autoplay) return;\n\n const resetOrStop =\n autoplay.options.stopOnInteraction === false\n ? autoplay.reset\n : autoplay.stop;\n\n resetOrStop();\n callback();\n },\n [mainApi],\n );\n\n const onTogglePlay = useCallback(() => {\n const autoplay = mainApi?.plugins()?.autoplay;\n if (!autoplay) return;\n\n const playOrStop = autoplay.isPlaying() ? autoplay.stop : autoplay.play;\n playOrStop();\n }, [mainApi]);\n\n useEffect(() => {\n const autoplay = mainApi?.plugins()?.autoplay;\n if (!autoplay) return;\n\n setIsPlaying(autoplay.isPlaying());\n mainApi\n .on('autoplay:play', () => setIsPlaying(true))\n .on('autoplay:stop', () => setIsPlaying(false))\n .on('reInit', () => setIsPlaying(false));\n }, [mainApi]);\n\n return { isPlaying, onTogglePlay, onClickAutoplay };\n}\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\n// @ts-nocheck\nimport { useCallback, useEffect, useState } from 'react';\nimport type { EmblaCarouselType } from 'embla-carousel';\n\nimport type { UseCarouselAutoPlayReturn } from '../types';\n\n// ----------------------------------------------------------------------\n\nexport function useCarouselAutoScroll(\n mainApi?: EmblaCarouselType,\n): UseCarouselAutoPlayReturn {\n const [isPlaying, setIsPlaying] = useState(false);\n\n const onClickAutoplay = useCallback(\n (callback: () => void) => {\n const autoScroll = mainApi?.plugins()?.autoScroll;\n if (!autoScroll) return;\n\n const resetOrStop =\n autoScroll.options.stopOnInteraction === false\n ? autoScroll.reset\n : autoScroll.stop;\n\n resetOrStop();\n callback();\n },\n [mainApi],\n );\n\n const onTogglePlay = useCallback(() => {\n const autoScroll = mainApi?.plugins()?.autoScroll;\n if (!autoScroll) return;\n\n const playOrStop = autoScroll.isPlaying()\n ? autoScroll.stop\n : autoScroll.play;\n playOrStop();\n }, [mainApi]);\n\n useEffect(() => {\n const autoScroll = mainApi?.plugins()?.autoScroll;\n if (!autoScroll) return;\n\n setIsPlaying(autoScroll.isPlaying());\n mainApi\n .on('autoScroll:play', () => setIsPlaying(true))\n .on('autoScroll:stop', () => setIsPlaying(false))\n .on('reInit', () => setIsPlaying(false));\n }, [mainApi]);\n\n return { isPlaying, onTogglePlay, onClickAutoplay };\n}\n","import { useCallback, useEffect, useState } from 'react';\nimport type { EmblaCarouselType } from 'embla-carousel';\n\nimport type { UseCarouselDotsReturn } from '../types';\n\nexport function useCarouselDots(\n mainApi?: EmblaCarouselType,\n): UseCarouselDotsReturn {\n const [dotCount, setDotCount] = useState(0);\n\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n const [scrollSnaps, setScrollSnaps] = useState<number[]>([]);\n\n const onClickDot = useCallback(\n (index: number) => {\n if (!mainApi) return;\n mainApi.scrollTo(index);\n },\n [mainApi],\n );\n\n const onInit = useCallback((_mainApi: EmblaCarouselType) => {\n setScrollSnaps(_mainApi.scrollSnapList());\n }, []);\n\n const onSelect = useCallback((_mainApi: EmblaCarouselType) => {\n setSelectedIndex(_mainApi.selectedScrollSnap());\n setDotCount(_mainApi.scrollSnapList().length);\n }, []);\n\n useEffect(() => {\n if (!mainApi) return;\n\n onInit(mainApi);\n onSelect(mainApi);\n mainApi.on('reInit', onInit);\n mainApi.on('reInit', onSelect);\n mainApi.on('select', onSelect);\n\n return () => {\n mainApi.off('reInit', onInit);\n mainApi.off('reInit', onSelect);\n mainApi.off('select', onSelect);\n };\n }, [mainApi, onInit, onSelect]);\n\n return {\n dotCount,\n scrollSnaps,\n selectedIndex,\n onClickDot,\n };\n}\n","import { useCallback, useEffect, useRef } from 'react';\nimport type { EmblaCarouselType, EmblaEventType } from 'embla-carousel';\n\nimport type { CarouselOptions } from '../types';\n\nexport function useParallax(\n mainApi?: EmblaCarouselType,\n parallax?: CarouselOptions['parallax'],\n) {\n const tweenFactor = useRef(0);\n\n const tweenNodes = useRef<HTMLElement[]>([]);\n\n const TWEEN_FACTOR_BASE = typeof parallax === 'number' ? parallax : 0.24;\n\n const setTweenNodes = useCallback((_mainApi: EmblaCarouselType): void => {\n tweenNodes.current = _mainApi\n .slideNodes()\n .map(\n slideNode =>\n slideNode.querySelector('.slide__parallax__layer') as HTMLElement,\n );\n }, []);\n\n const setTweenFactor = useCallback(\n (_mainApi: EmblaCarouselType) => {\n tweenFactor.current =\n TWEEN_FACTOR_BASE * _mainApi.scrollSnapList().length;\n },\n [TWEEN_FACTOR_BASE],\n );\n\n const tweenParallax = useCallback(\n (_mainApi: EmblaCarouselType, eventName?: EmblaEventType) => {\n const engine = _mainApi.internalEngine();\n\n const scrollProgress = _mainApi.scrollProgress();\n\n const slidesInView = _mainApi.slidesInView();\n\n const isScrollEvent = eventName === 'scroll';\n\n _mainApi.scrollSnapList().forEach((scrollSnap, snapIndex) => {\n let diffToTarget = scrollSnap - scrollProgress;\n\n const slidesInSnap = engine.slideRegistry[snapIndex];\n\n slidesInSnap.forEach(slideIndex => {\n if (isScrollEvent && !slidesInView.includes(slideIndex)) return;\n\n if (engine.options.loop) {\n engine.slideLooper.loopPoints.forEach(loopItem => {\n const target = loopItem.target();\n\n if (slideIndex === loopItem.index && target !== 0) {\n const sign = Math.sign(target);\n\n if (sign === -1) {\n diffToTarget = scrollSnap - (1 + scrollProgress);\n }\n if (sign === 1) {\n diffToTarget = scrollSnap + (1 - scrollProgress);\n }\n }\n });\n }\n\n const translateValue =\n diffToTarget * (-1 * tweenFactor.current) * 100;\n\n const tweenNode = tweenNodes.current[slideIndex];\n\n if (tweenNode) {\n tweenNode.style.transform = `translateX(${translateValue}%)`;\n }\n });\n });\n },\n [],\n );\n\n useEffect(() => {\n if (!mainApi || !parallax) return;\n\n setTweenNodes(mainApi);\n setTweenFactor(mainApi);\n tweenParallax(mainApi);\n\n mainApi\n .on('reInit', setTweenNodes)\n .on('reInit', setTweenFactor)\n .on('reInit', tweenParallax)\n .on('scroll', tweenParallax);\n\n return () => {\n mainApi\n .off('reInit', setTweenNodes)\n .off('reInit', setTweenFactor)\n .off('reInit', tweenParallax)\n .off('scroll', tweenParallax);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mainApi, tweenParallax]);\n\n return null;\n}\n","import { useCallback, useEffect, useState } from 'react';\nimport type { EmblaCarouselType } from 'embla-carousel';\n\nimport type { UseCarouselProgressReturn } from '../types';\n\nexport function useCarouselProgress(\n mainApi?: EmblaCarouselType,\n): UseCarouselProgressReturn {\n const [scrollProgress, setScrollProgress] = useState(0);\n\n const onScroll = useCallback((_mainApi: EmblaCarouselType) => {\n const progress = Math.max(0, Math.min(1, _mainApi.scrollProgress()));\n\n setScrollProgress(progress * 100);\n }, []);\n\n useEffect(() => {\n if (!mainApi) return;\n\n onScroll(mainApi);\n mainApi.on('reInit', onScroll);\n mainApi.on('scroll', onScroll);\n\n return () => {\n mainApi.off('reInit', onScroll).off('scroll', onScroll);\n };\n }, [mainApi, onScroll]);\n\n return { value: scrollProgress };\n}\n","import { useCallback, useEffect, useState } from 'react';\nimport type { EmblaCarouselType } from 'embla-carousel';\nimport useEmblaCarousel from 'embla-carousel-react';\n\nimport type { CarouselOptions, UseCarouselThumbsReturn } from '../types';\n\nexport function useThumbs(\n mainApi?: EmblaCarouselType,\n options?: Partial<CarouselOptions>,\n): UseCarouselThumbsReturn {\n const [thumbsRef, thumbsApi] = useEmblaCarousel({\n containScroll: 'keepSnaps',\n dragFree: true,\n ...options,\n });\n\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n const onClickThumb = useCallback(\n (index: number) => {\n if (!mainApi || !thumbsApi) return;\n mainApi.scrollTo(index);\n },\n [mainApi, thumbsApi],\n );\n\n const onSelect = useCallback(() => {\n if (!mainApi || !thumbsApi) return;\n setSelectedIndex(mainApi.selectedScrollSnap());\n thumbsApi.scrollTo(mainApi.selectedScrollSnap());\n }, [mainApi, thumbsApi, setSelectedIndex]);\n\n useEffect(() => {\n if (!mainApi) return;\n onSelect();\n mainApi.on('select', onSelect);\n mainApi.on('reInit', onSelect);\n\n return () => {\n mainApi.off('select', onSelect);\n mainApi.off('reInit', onSelect);\n };\n }, [mainApi, onSelect]);\n\n return {\n onClickThumb,\n thumbsRef,\n thumbsApi,\n selectedIndex,\n };\n}\n"]}
@@ -1,8 +1,8 @@
1
- import { a } from './chunk-EWGZ2KSI.js';
1
+ import { a } from './chunk-H3SS73NK.js';
2
2
  import { useFormContext, Controller } from 'react-hook-form';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
5
5
  var f=({name:t,helperText:s,rules:u,onSelectOption:r,InputLabelProps:m,onBlur:n,...p})=>{let{control:c}=useFormContext(),C=e=>o=>{r&&r(o,e.value),e.onChange(o);};return jsx(Controller,{name:t,control:c,rules:u,render:({field:e,fieldState:{error:o}})=>{let g=h=>{e.onBlur(),n&&n(h);};return jsx(a,{"data-intercom-target":t,...e,...p,onChange:C(e),onBlur:g,error:!!o,helperText:o?.message||s,InputLabelProps:m})}})},B=f;
6
6
 
7
7
  export { B as a };
8
- //# sourceMappingURL=chunk-RD6YLEVF.js.map
8
+ //# sourceMappingURL=chunk-OFOIKKG2.js.map