@zydon/common 2.7.77 → 2.7.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-23NOJPUV.js +19 -0
- package/dist/chunk-23NOJPUV.js.map +1 -0
- package/dist/chunk-373WGZZL.js +5 -0
- package/dist/chunk-373WGZZL.js.map +1 -0
- package/dist/chunk-IGOVBLZ2.js +19 -0
- package/dist/chunk-IGOVBLZ2.js.map +1 -0
- package/dist/chunk-SVJYA4Q6.js +20 -0
- package/dist/chunk-SVJYA4Q6.js.map +1 -0
- package/dist/{chunk-QVU6HSYP.js → chunk-TB4Y7LXN.js} +6 -5
- package/dist/chunk-TB4Y7LXN.js.map +1 -0
- package/dist/{chunk-74KBZX6F.js → chunk-U4ZTAFZV.js} +2 -2
- package/dist/chunk-UJGDCLUU.js +25 -0
- package/dist/chunk-UJGDCLUU.js.map +1 -0
- package/dist/{chunk-JZ55NEMI.js → chunk-WYJV57WG.js} +2 -2
- package/dist/components/Autocomplete/index.js +1 -1
- package/dist/components/AutocompleteDetailed/index.js +1 -1
- package/dist/components/AvatarButton/index.js +2 -2
- package/dist/components/BulkEditModal/index.js +3 -3
- package/dist/components/Common/index.js +2 -2
- package/dist/components/DataCards/index.d.ts +3 -2
- package/dist/components/DataCards/index.js +10 -10
- package/dist/components/DataCards/index.js.map +1 -1
- package/dist/components/DataView/index.d.ts +15 -5
- package/dist/components/DataView/index.js +2 -2
- package/dist/components/DynamicDataView/index.js +6 -6
- package/dist/components/DynamicDataView/index.js.map +1 -1
- package/dist/components/SelectableCards/index.js +1 -1
- package/dist/components/ToggleTheme/index.js +2 -2
- package/dist/components/form/Address/index.js +2 -2
- package/dist/components/form/Autocomplete/index.js +2 -2
- package/dist/components/form/AutocompleteDetailed/index.js +1 -1
- package/dist/components/form/SelectList/index.js.map +1 -1
- package/dist/components/form/SelectableCards/index.js +1 -1
- package/dist/components/form/Webhook/index.js +2 -2
- package/dist/hooks/useAutocomplete.js +3 -3
- package/dist/hooks/useAutocomplete.js.map +1 -1
- package/dist/hooks/useScreenSize.js.map +1 -1
- package/dist/hooks/useSnackbar.d.ts +7 -7
- package/dist/hooks/useThemeToggle.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/theme/core/index.d.ts +1 -1
- package/dist/theme/styles/index.d.ts +12 -12
- package/dist/theme/theme-provider.js +2 -2
- package/dist/utils/object.d.ts +7 -1
- package/dist/utils/object.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-LDGBS7ZI.js +0 -5
- package/dist/chunk-LDGBS7ZI.js.map +0 -1
- package/dist/chunk-LY3IB5VH.js +0 -19
- package/dist/chunk-LY3IB5VH.js.map +0 -1
- package/dist/chunk-N22KLIFJ.js +0 -19
- package/dist/chunk-N22KLIFJ.js.map +0 -1
- package/dist/chunk-QKKARUG5.js +0 -20
- package/dist/chunk-QKKARUG5.js.map +0 -1
- package/dist/chunk-QVU6HSYP.js.map +0 -1
- package/dist/chunk-U7SYDDK7.js +0 -25
- package/dist/chunk-U7SYDDK7.js.map +0 -1
- package/dist/{chunk-74KBZX6F.js.map → chunk-U4ZTAFZV.js.map} +0 -0
- package/dist/{chunk-JZ55NEMI.js.map → chunk-WYJV57WG.js.map} +0 -0
- package/dist/{index-c8f1e6e7.d.ts → index-5a5e5dc8.d.ts} +12 -12
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { a } from './chunk-7R6ZYEQS.js';
|
|
2
|
+
import { b } from './chunk-RPO7AI5K.js';
|
|
3
|
+
import P, { forwardRef, useState, useMemo, useEffect } from 'react';
|
|
4
|
+
import ge, { autocompleteClasses } from '@mui/material/Autocomplete';
|
|
5
|
+
import he from '@mui/material/CircularProgress';
|
|
6
|
+
import be from '@mui/material/TextField';
|
|
7
|
+
import { VariableSizeList } from 'react-window';
|
|
8
|
+
import W from '@mui/material/Typography';
|
|
9
|
+
import ne from '@mui/material/Divider';
|
|
10
|
+
import O from '@mui/material/Stack';
|
|
11
|
+
import oe from '@mui/material/Popper';
|
|
12
|
+
import { styled } from '@mui/material/styles';
|
|
13
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
14
|
+
|
|
15
|
+
var H=styled(oe)({[`& .${autocompleteClasses.listbox}`]:{boxSizing:"border-box","& ul":{padding:0,margin:0}}}),M=styled(O)(({theme:t})=>({flex:1,width:"100%",gap:6,[t.breakpoints.down("md")]:{flexDirection:"column"},[t.breakpoints.up("md")]:{flexDirection:"row"}})),T=styled(O)(({theme:t})=>({flex:1,maxWidth:"100%",gap:6,[t.breakpoints.up("md")]:{flex:"1 1 calc(50% - 8px)",width:"calc(50% - 8px)",minWidth:"calc(50% - 8px)",maxWidth:"calc(50% - 8px)"}})),D=styled(O)(({theme:t})=>({position:"relative",alignItems:"center",justifyContent:"center",width:68,height:68,borderRadius:8,overflow:"hidden",img:{position:"absolute",width:"100%",height:"100%",objectFit:"cover"},[t.breakpoints.down("sm")]:{display:"none"}}));var ie=({option:t})=>{let r=Object.keys(t).filter(o=>o.startsWith("field")).map((o,l)=>{let a=t[o];if(a&&typeof a=="object"){let s="label"in a?a.label:null,d="value"in a?a.value:null;return jsxs(W,{component:"span",variant:"body2",color:"textPrimary",noWrap:!0,children:[s,": ",d]},`${o}:${l}`)}}),i=t.image?jsx("img",{alt:"Imagem",src:t.image}):jsx(a,{alt:t.label||t.value.toString(),name:t.label||t.value.toString(),sx:{width:68,height:68,borderRadius:1}});return jsxs(Fragment,{children:[jsxs(O,{direction:"row",gap:2,margin:2,children:[jsx(D,{children:i}),jsxs(O,{flex:1,overflow:"hidden",children:[jsxs(W,{variant:"subtitle2",color:"textPrimary",noWrap:!0,flex:1,children:[t.value," - ",t.label]}),r.length>0&&jsxs(M,{width:1,children:[jsxs(T,{children:[r[0]?r[0]:void 0,r[1]?r[1]:void 0]}),(r[2]||r[3])&&jsxs(T,{children:[r[2]?r[2]:void 0,r[3]?r[3]:void 0]})]})]})]}),jsx(ne,{className:"border",sx:{borderStyle:"dashed",position:"absolute",bottom:0,width:1}})]})},C=ie;var N=8,me=t=>{let{data:r,index:i,style:o}=t,l=r[i],a={...o,top:o.top+N,paddingTop:8,display:"block"};return jsx(W,{component:"li",...l.props,noWrap:!0,style:a,children:jsx(C,{...l?.props?.children?.props})})},B=P.createContext({}),X=forwardRef((t,r)=>{let i=P.useContext(B);return jsx("div",{ref:r,...t,...i})});X.displayName="OuterElementType";var de=t=>{let r=P.useRef(null);return useEffect(()=>{r.current!=null&&r.current.resetAfterIndex(0,!0);},[t]),r},ue=forwardRef(function(r,i){let{children:o,"data-item-height":l,...a}=r,s=[];o.forEach(p=>{s.push(p),s.push(...p.children||[]);});let d=s.length,b=l>112?l:112,y=p=>Object.prototype.hasOwnProperty.call(p,"group")?48:b,g=()=>d>8?8*b:s.map(y).reduce((p,u)=>p+u,0),v=de(d);return jsx("div",{ref:i,children:jsx(B.Provider,{value:a,children:jsx(VariableSizeList,{itemData:s,height:g()+2*N,width:"100%",ref:v,outerElementType:X,innerElementType:"ul",itemSize:p=>y(s[p]),overscanCount:5,itemCount:d,children:me})})})}),J=ue;var j=forwardRef(({name:t,label:r,value:i,options:o=[],loading:l,noOptionsText:a="Nenhum resultado encontrado.",loadingText:s="Carregando op\xE7\xF5es...",error:d,helperText:b$1,placeholder:y,onChange:g,groupBy:v,disabled:p,multiple:u,required:U,renderOption:G,tabIndex:V,onSearch:I,onInputChange:A,..._},F)=>{let[q,E]=useState(),K=b("down","md"),Q=e=>e&&typeof e=="object"?e.value.toString():e.toString(),L=useMemo(()=>new Map(o.map(e=>[e.value.toString(),e])),[o]),Y=useMemo(()=>o.map(e=>({...e,searchString:`${e.field1?.value||""} ${e.field1?.label||""} ${e.field2?.label||""} ${e.field2?.value||""} ${e.field3?.label||""} ${e.field3?.value||""} ${e.field4?.label||""} ${e.field4?.value||""} ${e.field5?.label||""} ${e.field5?.value||""} ${e.label}${e.value}`.toLocaleUpperCase().trim()})),[o]),Z=useMemo(()=>u?(Array.isArray(i)?i:[]).map(n=>L.get(n.toString())).filter(Boolean):(i?.toString()?L.get(i.toString()):null)||null,[L,i,u]),ee=K&&o[0]?Object.keys(o[0]).length*24:void 0;return jsx(ge,{ref:F,value:q||Z,onInputChange:(e,n,c)=>{if(A&&A(e,n,c),c==="input"){I&&I(n),E(n);return}E(void 0);},options:Y,loading:l,noOptionsText:a,loadingText:s,disabled:l||p,disableListWrap:!0,PopperComponent:H,ListboxProps:{"data-item-height":ee},ListboxComponent:G?void 0:J,filterOptions:(e,n)=>{let c=n.inputValue.toLocaleUpperCase();return e.filter(te=>te.searchString.includes(c))},onChange:(e,n)=>{if(!n){g(u?[]:null);return}if(Array.isArray(n)){g(n.map(Q));return}g(typeof n=="string"?n.toString():n.value.toString());},renderOption:({key:e,...n},c)=>jsx("li",{...n,style:{display:"block"},children:jsx(C,{option:c})},e),renderGroup:e=>e,groupBy:v,multiple:u,renderInput:e=>jsx(be,{...e,name:t,placeholder:y,fullWidth:!0,error:!!d,helperText:b$1,label:r,required:U,InputProps:{...e.InputProps,endAdornment:jsxs(Fragment,{children:[l?jsx(he,{color:"primary",size:20}):null,e.InputProps.endAdornment]})},inputProps:{...e.inputProps,name:t,tabIndex:V}}),..._})});j.displayName="Autocomplete";var Ke=j;
|
|
16
|
+
|
|
17
|
+
export { Ke as a };
|
|
18
|
+
//# sourceMappingURL=out.js.map
|
|
19
|
+
//# sourceMappingURL=chunk-23NOJPUV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/AutocompleteDetailed/index.tsx","../src/components/AutocompleteDetailed/Listbox.tsx","../src/components/AutocompleteDetailed/ListItem.tsx","../src/components/AutocompleteDetailed/styles.ts"],"names":["forwardRef","useMemo","useState","MuiAutocomplete","CircularProgress","TextField","React","useEffect","VariableSizeList","Typography","Divider","Stack","autocompleteClasses","Popper","styled","StyledPopper","OptionBox","theme","OptionContent","ImageContainer","Fragment","jsx","jsxs","ListItem","option","options","key","index","data","label","value","image","CustomAvatar_default","ListItem_default","LISTBOX_PADDING","renderRow","props","style","dataSet","inlineStyle","OuterElementContext","OuterElementType","ref","outerProps","useResetCache","ListboxComponent","children","dataItemHeight","other","itemData","item","itemCount","itemSize","getChildSize","child","getHeight","a","b","gridRef","Listbox_default","AutocompleteDetailed","name","loading","noOptionsText","loadingText","error","helperText","placeholder","onChange","groupBy","disabled","multiple","required","renderOption","tabIndex","onSearch","onInputChange","inputValue","setInputValue","mdDown","useResponsive_default","getOptionValue","optionValue","optionsMap","opt","optionsWithSearch","formattedValue","v","OPTION_HEIGHT","event","eventValue","reason","opts","state","searchUpper","_","params","AutocompleteDetailed_default"],"mappings":"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","sourcesContent":["import {\n forwardRef,\n HTMLAttributes,\n ReactNode,\n useMemo,\n useState,\n} from 'react';\nimport MuiAutocomplete from '@mui/material/Autocomplete';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField from '@mui/material/TextField';\n\nimport useResponsive from 'hooks/useResponsive';\nimport { Option } from 'types/option';\n\nimport ListboxComponent from './Listbox';\nimport ListItem from './ListItem';\nimport { AutocompleteDetailedProps } from './props';\nimport { StyledPopper } from './styles';\n\nconst AutocompleteDetailed = forwardRef<unknown, AutocompleteDetailedProps>(\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 disabled,\n multiple,\n required,\n renderOption,\n tabIndex,\n onSearch,\n onInputChange,\n ...other\n },\n ref,\n ) => {\n const [inputValue, setInputValue] = useState<string>();\n\n const mdDown = useResponsive('down', 'md');\n\n const getOptionValue = (optionValue: Option | string | number) =>\n optionValue && typeof optionValue === 'object'\n ? optionValue.value.toString()\n : optionValue.toString();\n\n const optionsMap = useMemo(\n () => new Map(options.map(opt => [opt.value.toString(), opt])),\n [options],\n );\n\n const optionsWithSearch = useMemo(\n () =>\n options.map(opt => ({\n ...opt,\n searchString:\n `${opt.field1?.value || ''} ${opt.field1?.label || ''} ${opt.field2?.label || ''} ${opt.field2?.value || ''} ${opt.field3?.label || ''} ${opt.field3?.value || ''} ${opt.field4?.label || ''} ${opt.field4?.value || ''} ${opt.field5?.label || ''} ${opt.field5?.value || ''} ${opt.label}${opt.value}`\n .toLocaleUpperCase()\n .trim(),\n })) as Array<Option & { searchString: string }>,\n [options],\n );\n\n const formattedValue = useMemo(() => {\n if (multiple) {\n const values = Array.isArray(value) ? value : [];\n return values\n .map(v => optionsMap.get(v.toString()))\n .filter(Boolean) as Option[];\n }\n\n return (\n (value?.toString() ? optionsMap.get(value.toString()) : null) || null\n );\n }, [optionsMap, value, multiple]);\n\n const OPTION_HEIGHT =\n mdDown && options[0] ? Object.keys(options[0]).length * 24 : undefined;\n\n return (\n <MuiAutocomplete\n ref={ref}\n value={inputValue || formattedValue}\n onInputChange={(event, eventValue, reason) => {\n if (onInputChange) onInputChange(event, eventValue, reason);\n\n if (reason === 'input') {\n if (onSearch) onSearch(eventValue);\n setInputValue(eventValue);\n\n return;\n }\n\n setInputValue(undefined);\n }}\n options={optionsWithSearch}\n loading={loading}\n noOptionsText={noOptionsText}\n loadingText={loadingText}\n disabled={loading || disabled}\n disableListWrap\n PopperComponent={StyledPopper}\n ListboxProps={\n {\n 'data-item-height': OPTION_HEIGHT,\n } as HTMLAttributes<HTMLUListElement>\n }\n ListboxComponent={renderOption ? undefined : ListboxComponent}\n filterOptions={(opts, state) => {\n const searchUpper = state.inputValue.toLocaleUpperCase();\n return opts.filter(opt =>\n (opt as Option & { searchString: string }).searchString.includes(\n searchUpper,\n ),\n );\n }}\n onChange={(_, option) => {\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 renderOption={({ key, ...props }, option) => {\n return (\n <li key={key} {...props} style={{ display: 'block' }}>\n <ListItem option={option} />\n </li>\n );\n }}\n renderGroup={params => params as unknown as ReactNode}\n groupBy={groupBy}\n multiple={multiple}\n renderInput={params => (\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 endAdornment: (\n <>\n {loading ? (\n <CircularProgress color=\"primary\" size={20} />\n ) : null}\n {params.InputProps.endAdornment}\n </>\n ),\n }}\n inputProps={{\n ...params.inputProps,\n name,\n tabIndex,\n }}\n />\n )}\n {...other}\n />\n );\n },\n);\n\nAutocompleteDetailed.displayName = 'Autocomplete';\n\nexport default AutocompleteDetailed;\n","import React, { forwardRef, HTMLAttributes, useEffect } from 'react';\nimport { ListChildComponentProps, VariableSizeList } from 'react-window';\nimport Typography from '@mui/material/Typography';\n\nimport ListItem from './ListItem';\n\nconst LISTBOX_PADDING = 8;\n\nconst renderRow = (props: ListChildComponentProps) => {\n const { data, index, style } = props;\n const dataSet = data[index];\n\n const inlineStyle = {\n ...style,\n top: (style.top as number) + LISTBOX_PADDING,\n paddingTop: 8,\n display: 'block',\n };\n\n return (\n <Typography component=\"li\" {...dataSet.props} noWrap style={inlineStyle}>\n <ListItem {...dataSet?.props?.children?.props} />\n </Typography>\n );\n};\n\nconst OuterElementContext = React.createContext({});\n\nconst OuterElementType = forwardRef<HTMLDivElement>((props, ref) => {\n const outerProps = React.useContext(OuterElementContext);\n return <div ref={ref} {...props} {...outerProps} />;\n});\n\nOuterElementType.displayName = 'OuterElementType';\n\nconst useResetCache = (data: number) => {\n const ref = React.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 React.HTMLAttributes<HTMLElement>\n>(function ListboxComponent(props, ref) {\n const {\n children,\n // eslint-disable-next-line react/prop-types\n 'data-item-height': dataItemHeight,\n ...other\n } = props as { 'data-item-height': number } & HTMLAttributes<HTMLElement>;\n const itemData: JSX.Element[] = [];\n (children as JSX.Element[]).forEach(\n (item: JSX.Element & { children?: JSX.Element[] }) => {\n itemData.push(item);\n itemData.push(...(item.children || []));\n },\n );\n const itemCount = itemData.length;\n const itemSize = dataItemHeight > 112 ? dataItemHeight : 112;\n\n const getChildSize = (child: JSX.Element) => {\n if (Object.prototype.hasOwnProperty.call(child, 'group')) {\n return 48;\n }\n\n return itemSize;\n };\n\n const getHeight = () => {\n if (itemCount > 8) {\n return 8 * itemSize;\n }\n return itemData.map(getChildSize).reduce((a, b) => a + b, 0);\n };\n\n const gridRef = useResetCache(itemCount);\n\n return (\n <div ref={ref}>\n <OuterElementContext.Provider value={other}>\n <VariableSizeList\n itemData={itemData}\n height={getHeight() + 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 >\n {renderRow}\n </VariableSizeList>\n </OuterElementContext.Provider>\n </div>\n );\n});\n\nexport default ListboxComponent;\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport CustomAvatar from 'components/CustomAvatar';\n\nimport { ListItemProps } from './props';\nimport { ImageContainer, OptionBox, OptionContent } from './styles';\n\nconst ListItem = ({ option }: ListItemProps) => {\n const options = Object.keys(option)\n .filter(key => key.startsWith('field'))\n .map((key, index) => {\n const data = option[key];\n\n if (data && typeof data === 'object') {\n const label = ('label' in data ? data.label : null) as string;\n const value = ('value' in data ? data.value : null) as string;\n\n return (\n <Typography\n key={`${key}:${index}`}\n component=\"span\"\n variant=\"body2\"\n color=\"textPrimary\"\n noWrap\n >\n {label}: {value}\n </Typography>\n );\n }\n });\n\n const image = option.image ? (\n <img alt=\"Imagem\" src={option.image} />\n ) : (\n <CustomAvatar\n alt={option.label || option.value.toString()}\n name={option.label || option.value.toString()}\n sx={{ width: 68, height: 68, borderRadius: 1 }}\n />\n );\n\n return (\n <>\n <Stack direction=\"row\" gap={2} margin={2}>\n <ImageContainer>{image}</ImageContainer>\n\n <Stack flex={1} overflow=\"hidden\">\n <Typography variant=\"subtitle2\" color=\"textPrimary\" noWrap flex={1}>\n {option.value} - {option.label}\n </Typography>\n\n {options.length > 0 && (\n <OptionBox width={1}>\n <OptionContent>\n {options[0] ? options[0] : undefined}\n {options[1] ? options[1] : undefined}\n </OptionContent>\n\n {(options[2] || options[3]) && (\n <OptionContent>\n {options[2] ? options[2] : undefined}\n {options[3] ? options[3] : undefined}\n </OptionContent>\n )}\n </OptionBox>\n )}\n </Stack>\n </Stack>\n\n <Divider\n className=\"border\"\n sx={{\n borderStyle: 'dashed',\n position: 'absolute',\n bottom: 0,\n width: 1,\n }}\n />\n </>\n );\n};\n\nexport default ListItem;\n","import { autocompleteClasses } from '@mui/material/Autocomplete';\nimport Popper from '@mui/material/Popper';\nimport Stack from '@mui/material/Stack';\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\nexport const OptionBox = styled(Stack)(({ theme }) => ({\n flex: 1,\n width: '100%',\n gap: 6,\n\n [theme.breakpoints.down('md')]: {\n flexDirection: 'column',\n },\n\n [theme.breakpoints.up('md')]: {\n flexDirection: 'row',\n },\n}));\n\nexport const OptionContent = styled(Stack)(({ theme }) => ({\n flex: 1,\n maxWidth: '100%',\n gap: 6,\n\n [theme.breakpoints.up('md')]: {\n flex: '1 1 calc(50% - 8px)',\n width: 'calc(50% - 8px)',\n minWidth: 'calc(50% - 8px)',\n maxWidth: 'calc(50% - 8px)',\n },\n}));\n\nexport const ImageContainer = styled(Stack)(({ theme }) => ({\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n width: 68,\n height: 68,\n borderRadius: 8,\n overflow: 'hidden',\n\n img: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n\n [theme.breakpoints.down('sm')]: {\n display: 'none',\n },\n}));\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
var i=(r,e,s)=>{let n=e.split("."),t=r;for(let a=0;a<n.length-1;a++){let o=n[a];(!(o in t)||typeof t[o]!="object"||t[o]===null||Array.isArray(t[o]))&&(t[o]={}),t=t[o];}t[n[n.length-1]]=s;},c=(r,e,s)=>r.map(n=>({label:String(n[e]),value:String(n[s]??"")})),y=(r,e)=>r.map(s=>s[e]),g=(r,e)=>(Array.isArray(r)?r:[r]).map(n=>({[e]:n}));
|
|
2
|
+
|
|
3
|
+
export { i as a, c as b, y as c, g as d };
|
|
4
|
+
//# sourceMappingURL=out.js.map
|
|
5
|
+
//# sourceMappingURL=chunk-373WGZZL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/object.ts"],"names":["setNestedProperty","obj","path","value","keys","current","i","key","mapToOptions","items","labelKey","valueKey","item","extractValues","mapValuesToObjects","v"],"mappings":"AAMO,IAAMA,EAAoB,CAC/BC,EACAC,EACAC,IACS,CACT,IAAMC,EAAOF,EAAK,MAAM,GAAG,EACvBG,EAAmCJ,EAEvC,QAASK,EAAI,EAAGA,EAAIF,EAAK,OAAS,EAAGE,IAAK,CACxC,IAAMC,EAAMH,EAAKE,CAAC,GAEhB,EAAEC,KAAOF,IACT,OAAOA,EAAQE,CAAG,GAAM,UACxBF,EAAQE,CAAG,IAAM,MACjB,MAAM,QAAQF,EAAQE,CAAG,CAAC,KAE1BF,EAAQE,CAAG,EAAI,CAAC,GAElBF,EAAUA,EAAQE,CAAG,EAGvBF,EAAQD,EAAKA,EAAK,OAAS,CAAC,CAAC,EAAID,CACnC,EAWaK,EAAe,CAC1BC,EACAC,EACAC,IAEOF,EAAM,IAAIG,IAAS,CACxB,MAAO,OAAOA,EAAKF,CAAQ,CAAC,EAC5B,MAAO,OAAOE,EAAKD,CAAQ,GAAK,EAAE,CACpC,EAAE,EAWSE,EAAgB,CAC3BJ,EACAF,IAEOE,EAAM,IAAIG,GAAQA,EAAKL,CAAG,CAAC,EAYvBO,EAAqB,CAChCX,EACAI,KAEmB,MAAM,QAAQJ,CAAK,EAAIA,EAAQ,CAACA,CAAK,GACtC,IAAIY,IAAM,CAAE,CAACR,CAAG,EAAGQ,CAAE,EAAuB","sourcesContent":["/**\n * Define uma propriedade aninhada em um objeto usando notação de ponto\n * @param obj - O objeto onde definir a propriedade\n * @param path - O caminho da propriedade usando notação de ponto (ex: 'a.b.c')\n * @param value - O valor a ser definido\n */\nexport const setNestedProperty = (\n obj: Record<string, unknown>,\n path: string,\n value: unknown,\n): void => {\n const keys = path.split('.');\n let current: Record<string, unknown> = obj;\n\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n if (\n !(key in current) ||\n typeof current[key] !== 'object' ||\n current[key] === null ||\n Array.isArray(current[key])\n ) {\n current[key] = {};\n }\n current = current[key] as Record<string, unknown>;\n }\n\n current[keys[keys.length - 1]] = value;\n};\n\n/**\n * Mapeia um array de items para o formato de options do SelectList\n * @param items - Array de items a serem mapeados\n * @param labelKey - Chave do objeto para extrair o label\n * @param valueKey - Chave do objeto para extrair o value\n * @returns Array de options no formato { label, value }\n * @example\n * mapToOptions(users, 'name', 'id') // [{ label: 'John', value: '1' }, ...]\n */\nexport const mapToOptions = <T, L extends keyof T, V extends keyof T>(\n items: T[],\n labelKey: L,\n valueKey: V,\n) => {\n return items.map(item => ({\n label: String(item[labelKey]),\n value: String(item[valueKey] ?? ''),\n }));\n};\n\n/**\n * Extrai os valores de um array de objetos que possuem uma propriedade específica\n * @param items - Array de items\n * @param key - Chave do objeto a ser extraída\n * @returns Array de valores extraídos\n * @example\n * extractValues([{ id: 1, name: 'A' }, { id: 2, name: 'B' }], 'id') // [1, 2]\n */\nexport const extractValues = <T, K extends keyof T>(\n items: T[],\n key: K,\n): T[K][] => {\n return items.map(item => item[key]);\n};\n\n/**\n * Transforma valores de string/string[] em array de objetos com uma chave específica\n * @param value - Valor ou array de valores a serem transformados\n * @param key - Chave do objeto onde o valor será armazenado\n * @returns Array de objetos com a chave especificada\n * @example\n * mapValuesToObjects(['1', '2'], 'partner_id') // [{ partner_id: '1' }, { partner_id: '2' }]\n * mapValuesToObjects('1', 'partner_id') // [{ partner_id: '1' }]\n */\nexport const mapValuesToObjects = <K extends string>(\n value: string | string[],\n key: K,\n): Array<Record<K, string>> => {\n const valueArray = Array.isArray(value) ? value : [value];\n return valueArray.map(v => ({ [key]: v }) as Record<K, string>);\n};\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { a } from './chunk-NQNNMRLC.js';
|
|
2
|
+
import { createContext, forwardRef, useContext, useMemo, useCallback, useRef, useEffect } from 'react';
|
|
3
|
+
import ft, { autocompleteClasses } from '@mui/material/Autocomplete';
|
|
4
|
+
import yt from '@mui/material/CircularProgress';
|
|
5
|
+
import gt from '@mui/material/TextField';
|
|
6
|
+
import { VariableSizeList } from 'react-window';
|
|
7
|
+
import ot from '@mui/material/ListSubheader';
|
|
8
|
+
import nt from '@mui/material/Stack';
|
|
9
|
+
import { useTheme, styled } from '@mui/material/styles';
|
|
10
|
+
import H from '@mui/material/Typography';
|
|
11
|
+
import st from '@mui/material/useMediaQuery';
|
|
12
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
13
|
+
import lt from '@mui/material/Popper';
|
|
14
|
+
|
|
15
|
+
var D=8,pt=r=>{let{data:n,index:i,style:c}=r,o=n[i],{showValueInLabel:s,key:y,...g}=o[0],u={...c,top:c.top+D,paddingTop:8};return Object.prototype.hasOwnProperty.call(o,"group")?jsx(ot,{component:"div",style:u,children:o.group},`list-box-item-group-${y}`):jsx(H,{component:"li",...g,noWrap:!0,style:u,children:jsxs(nt,{component:"div",direction:"row",flex:1,gap:1,justifyContent:"start",children:[o[1].icon&&jsx(a,{icon:o[1].icon}),o[1].label,s&&jsxs(H,{variant:"inherit",color:"grey.400",children:["(",o[1].value,")"]})]})},`list-box-item-${y}`)},X=createContext({}),J=forwardRef((r,n)=>{let i=useContext(X);return jsx("div",{ref:n,...r,...i})});J.displayName="OuterElementType";var ut=r=>{let n=useRef(null);return useEffect(()=>{n.current!=null&&n.current.resetAfterIndex(0,!0);},[r]),n},at=forwardRef(function(n,i){let{children:c,...o}=n,s=[];c.forEach(p=>{s.push(p),s.push(...p.children||[]);});let y=useTheme(),g=st(y.breakpoints.up("sm")),u=s.length,h=g?36:48,l=p=>Object.prototype.hasOwnProperty.call(p,"group")?48:h,x=()=>u>8?8*h:s.map(l).reduce((p,a)=>p+a,0),A=ut(u);return jsx("div",{ref:i,children:jsx(X.Provider,{value:o,children:jsx(VariableSizeList,{itemData:s,height:x()+2*D,width:"100%",ref:A,outerElementType:J,innerElementType:"ul",itemSize:p=>l(s[p]),overscanCount:5,itemCount:u,children:pt})})})}),W=at;var $=styled(lt)({[`& .${autocompleteClasses.listbox}`]:{boxSizing:"border-box","& ul":{padding:0,margin:0}}});var ht=r=>r&&typeof r=="object"?r.value.toString():r.toString(),U=forwardRef(({name:r,label:n,value:i,options:c=[],loading:o,noOptionsText:s="Nenhum resultado encontrado.",loadingText:y="Carregando op\xE7\xF5es...",error:g,helperText:u,placeholder:h,onChange:l,groupBy:x,showValueInLabel:A,disabled:p,multiple:a$1,required:I,renderOption:S,tabIndex:M,onInputChange:O,onSearch:T,onBlur:R,InputLabelProps:k,...B},V)=>{let v=useMemo(()=>new Map(c.map(t=>[t.value.toString(),t])),[c]),m=useMemo(()=>a$1?(Array.isArray(i)?i:[]).map(e=>v.get(e.toString())).filter(Boolean):i?.toString()&&v.get(i.toString())||null,[v,i,a$1]),j=(t,e)=>{let d=e.inputValue.toLocaleUpperCase();return t.filter(C=>`${C.value} ${C.label}`.toLocaleUpperCase().includes(d))},F=useMemo(()=>S?void 0:W,[S]),w=useMemo(()=>{let t=typeof m=="string",e=Array.isArray(m);return m&&!t&&!e&&m?.icon?jsx(a,{icon:m.icon}):null},[m]),G=useCallback((t,e,d)=>{if(O&&O(t,e,d),d==="input"){T&&T(e);return}},[O,T]),_=useCallback((t,e)=>{if(!e){l(a$1?[]:null);return}if(Array.isArray(e)){l(e.map(ht));return}if(typeof e=="string"){l(e.toString());return}l(e.value.toString());},[l,a$1]),Q=useCallback(t=>{R&&R(t);},[R]),q=useCallback(t=>jsx(gt,{...t,name:r,placeholder:h,fullWidth:!0,error:!!g,helperText:u,label:n,required:I,InputProps:{...t.InputProps,...!a$1&&{startAdornment:w},endAdornment:jsxs(Fragment,{children:[o?jsx(yt,{color:"primary",size:20}):null,t.InputProps.endAdornment]})},inputProps:{...t.inputProps,name:r,tabIndex:M},InputLabelProps:k}),[r,h,g,u,n,I,a$1,w,o,M,k]),K=useCallback((t,e,d,C)=>S?S(t,e,d,C):[{...t,showValueInLabel:A},e],[S,A]);return jsx(ft,{ref:V,value:m,onInputChange:G,options:c,loading:o,noOptionsText:s,loadingText:y,disabled:o||p,disableListWrap:!0,PopperComponent:$,ListboxComponent:F,filterOptions:j,onChange:_,onBlur:Q,renderOption:K,renderGroup:t=>t,groupBy:x,multiple:a$1,renderInput:q,...B})});U.displayName="Autocomplete";var Qt=U;
|
|
16
|
+
|
|
17
|
+
export { Qt as a };
|
|
18
|
+
//# sourceMappingURL=out.js.map
|
|
19
|
+
//# sourceMappingURL=chunk-IGOVBLZ2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Autocomplete/index.tsx","../src/components/Autocomplete/Listbox.tsx","../src/components/Autocomplete/styles.ts"],"names":["forwardRef","useCallback","useMemo","MuiAutocomplete","CircularProgress","TextField","createContext","useContext","useEffect","useRef","VariableSizeList","ListSubheader","Stack","useTheme","Typography","useMediaQuery","jsx","jsxs","LISTBOX_PADDING","renderRow","props","data","index","style","dataSet","showValueInLabel","key","itemProps","inlineStyle","Icon_default","OuterElementContext","OuterElementType","ref","outerProps","useResetCache","ListboxComponent","children","other","itemData","item","theme","smUp","itemCount","itemSize","getChildSize","child","getHeight","a","b","gridRef","Listbox_default","autocompleteClasses","Popper","styled","StyledPopper","Fragment","getOptionValue","optionValue","Autocomplete","name","label","value","options","loading","noOptionsText","loadingText","error","helperText","placeholder","onChange","groupBy","disabled","multiple","required","renderOption","tabIndex","onInputChange","onSearch","onBlur","InputLabelProps","optionsMap","opt","formattedValue","v","filterOptions","optionsFilter","state","searchUpper","listboxComponentWithoutRenderOption","startAdornment","isString","isArray","handleInputChange","event","eventValue","reason","handleChange","_event","option","handleBlur","renderInput","params","renderOptionWrapper","ownerState","Autocomplete_default"],"mappings":"wCAAA,OAAS,cAAAA,GAAuB,eAAAC,EAAa,WAAAC,MAAe,QAC5D,OAAOC,OAIA,6BACP,OAAOC,OAAsB,iCAC7B,OAAOC,OAAe,0BCPtB,OACE,iBAAAC,EACA,cAAAN,EAEA,cAAAO,EACA,aAAAC,GACA,UAAAC,OACK,QACP,OAAkC,oBAAAC,OAAwB,eAC1D,OAAOC,OAAmB,8BAC1B,OAAOC,OAAW,sBAClB,OAAS,YAAAC,OAAgB,uBACzB,OAAOC,MAAgB,2BACvB,OAAOC,OAAmB,8BAmBpB,cAAAC,EA4BI,QAAAC,MA5BJ,oBAfN,IAAMC,EAAkB,EAElBC,GAAaC,GAAmC,CACpD,GAAM,CAAE,KAAAC,EAAM,MAAAC,EAAO,MAAAC,CAAM,EAAIH,EACzBI,EAAUH,EAAKC,CAAK,EACpB,CAAE,iBAAAG,EAAkB,IAAAC,EAAK,GAAGC,CAAU,EAAIH,EAAQ,CAAC,EAEnDI,EAAc,CAClB,GAAGL,EACH,IAAMA,EAAM,IAAiBL,EAC7B,WAAY,CACd,EAEA,OAAI,OAAO,UAAU,eAAe,KAAKM,EAAS,OAAO,EAErDR,EAACL,GAAA,CAEC,UAAU,MACV,MAAOiB,EAEN,SAAAJ,EAAQ,OAJJ,uBAAuBE,GAK9B,EAIFV,EAACF,EAAA,CACC,UAAU,KAET,GAAGa,EACJ,OAAM,GACN,MAAOC,EAEP,SAAAX,EAACL,GAAA,CACC,UAAU,MACV,UAAU,MACV,KAAM,EACN,IAAK,EACL,eAAe,QAEd,UAAAY,EAAQ,CAAC,EAAE,MAAQR,EAACa,EAAA,CAAK,KAAML,EAAQ,CAAC,EAAE,KAAM,EAChDA,EAAQ,CAAC,EAAE,MAEXC,GACCR,EAACH,EAAA,CAAW,QAAQ,UAAU,MAAM,WAAW,cAC3CU,EAAQ,CAAC,EAAE,MAAM,KACrB,GAEJ,GApBK,iBAAiBE,GAqBxB,CAEJ,EAEMI,EAAsBxB,EAAc,CAAC,CAAC,EAEtCyB,EAAmB/B,EAA2B,CAACoB,EAAOY,IAAQ,CAClE,IAAMC,EAAa1B,EAAWuB,CAAmB,EACjD,OAAOd,EAAC,OAAI,IAAKgB,EAAM,GAAGZ,EAAQ,GAAGa,EAAY,CACnD,CAAC,EAEDF,EAAiB,YAAc,mBAE/B,IAAMG,GAAiBb,GAAiB,CACtC,IAAMW,EAAMvB,GAAyB,IAAI,EAEzC,OAAAD,GAAU,IAAM,CACVwB,EAAI,SAAW,MACjBA,EAAI,QAAQ,gBAAgB,EAAG,EAAI,CAEvC,EAAG,CAACX,CAAI,CAAC,EAEFW,CACT,EAEMG,GAAmBnC,EAGvB,SAA0BoB,EAAOY,EAAK,CACtC,GAAM,CAAE,SAAAI,EAAU,GAAGC,CAAM,EAAIjB,EACzBkB,EAA0B,CAAC,EAChCF,EAA2B,QACzBG,GAAqD,CACpDD,EAAS,KAAKC,CAAI,EAClBD,EAAS,KAAK,GAAIC,EAAK,UAAY,CAAC,CAAE,CACxC,CACF,EAEA,IAAMC,EAAQ3B,GAAS,EACjB4B,EAAO1B,GAAcyB,EAAM,YAAY,GAAG,IAAI,CAAC,EAC/CE,EAAYJ,EAAS,OACrBK,EAAWF,EAAO,GAAK,GAEvBG,EAAgBC,GAChB,OAAO,UAAU,eAAe,KAAKA,EAAO,OAAO,EAC9C,GAGFF,EAGHG,EAAY,IACZJ,EAAY,EACP,EAAIC,EAENL,EAAS,IAAIM,CAAY,EAAE,OAAO,CAACG,EAAGC,IAAMD,EAAIC,EAAG,CAAC,EAGvDC,EAAUf,GAAcQ,CAAS,EAEvC,OACE1B,EAAC,OAAI,IAAKgB,EACR,SAAAhB,EAACc,EAAoB,SAApB,CAA6B,MAAOO,EACnC,SAAArB,EAACN,GAAA,CACC,SAAU4B,EACV,OAAQQ,EAAU,EAAI,EAAI5B,EAC1B,MAAM,OACN,IAAK+B,EACL,iBAAkBlB,EAClB,iBAAiB,KACjB,SAAUT,GAASsB,EAAaN,EAAShB,CAAK,CAAC,EAC/C,cAAe,EACf,UAAWoB,EAEV,SAAAvB,GACH,EACF,EACF,CAEJ,CAAC,EAEM+B,EAAQf,GClJf,OAAS,uBAAAgB,OAA2B,6BACpC,OAAOC,OAAY,uBACnB,OAAS,UAAAC,OAAc,uBAEhB,IAAMC,EAAeD,GAAOD,EAAM,EAAE,CACzC,CAAC,MAAMD,GAAoB,SAAS,EAAG,CACrC,UAAW,aACX,OAAQ,CACN,QAAS,EACT,OAAQ,CACV,CACF,CACF,CAAC,EFiFc,OAyED,YAAAI,GAzEC,OAAAvC,EAyED,QAAAC,OAzEC,oBA5Ef,IAAMuC,GAAkBC,GACtBA,GAAe,OAAOA,GAAgB,SAClCA,EAAY,MAAM,SAAS,EAC3BA,EAAY,SAAS,EAErBC,EAAe1D,GACnB,CACE,CACE,KAAA2D,EACA,MAAAC,EACA,MAAAC,EACA,QAAAC,EAAU,CAAC,EACX,QAAAC,EACA,cAAAC,EAAgB,+BAChB,YAAAC,EAAc,6BACd,MAAAC,EACA,WAAAC,EACA,YAAAC,EACA,SAAAC,EACA,QAAAC,EACA,iBAAA7C,EACA,SAAA8C,EACA,SAAAC,EACA,SAAAC,EACA,aAAAC,EACA,SAAAC,EACA,cAAAC,EACA,SAAAC,EACA,OAAAC,EACA,gBAAAC,EACA,GAAG1C,CACL,EACAL,IACG,CAEH,IAAMgD,EAAa9E,EACjB,IAAM,IAAI,IAAI4D,EAAQ,IAAImB,GAAO,CAACA,EAAI,MAAM,SAAS,EAAGA,CAAG,CAAC,CAAC,EAC7D,CAACnB,CAAO,CACV,EAEMoB,EAAiBhF,EAAQ,IACzBsE,GACa,MAAM,QAAQX,CAAK,EAAIA,EAAQ,CAAC,GAE5C,IAAIsB,GAAKH,EAAW,IAAIG,EAAE,SAAS,CAAC,CAAC,EACrC,OAAO,OAAO,EAGftB,GAAO,SAAS,GAAUmB,EAAW,IAAInB,EAAM,SAAS,CAAC,GAAK,KAGjE,CAACmB,EAAYnB,EAAOW,CAAQ,CAAC,EAE1BY,EAAgB,CACpBC,EACAC,IACG,CACH,IAAMC,EAAcD,EAAM,WAAW,kBAAkB,EACvD,OAAOD,EAAc,OAAOJ,GACX,GAAGA,EAAI,SAASA,EAAI,QACrB,kBAAkB,EAAE,SAASM,CAAW,CACvD,CACH,EAEMC,EAAsCtF,EAC1C,IAAOwE,EAAe,OAAYxB,EAClC,CAACwB,CAAY,CACf,EAEMe,EAAiBvF,EAAQ,IAAM,CACnC,IAAMwF,EAAW,OAAOR,GAAmB,SACrCS,EAAU,MAAM,QAAQT,CAAc,EAI5C,OAFEA,GAAkB,CAACQ,GAAY,CAACC,GAAWT,GAAgB,KAGpDlE,EAACa,EAAA,CAAK,KAAMqD,EAAe,KAAkB,EAG/C,IACT,EAAG,CAACA,CAAc,CAAC,EAEbU,EAAoB3F,EACxB,CACE4F,EACAC,EACAC,IACG,CAGH,GAFInB,GAAeA,EAAciB,EAAOC,EAAYC,CAAM,EAEtDA,IAAW,QAAS,CAClBlB,GACFA,EAASiB,CAAU,EAGrB,OAEJ,EACA,CAAClB,EAAeC,CAAQ,CAC1B,EAEMmB,EAAe/F,EACnB,CACEgG,EACAC,IACG,CACH,GAAI,CAACA,EAAQ,CACX7B,EAASG,EAAW,CAAC,EAAI,IAAI,EAC7B,OAGF,GAAI,MAAM,QAAQ0B,CAAM,EAAG,CACzB7B,EAAS6B,EAAO,IAAI1C,EAAc,CAAC,EACnC,OAGF,GAAI,OAAO0C,GAAW,SAAU,CAC9B7B,EAAS6B,EAAO,SAAS,CAAC,EAC1B,OAGF7B,EAAS6B,EAAO,MAAM,SAAS,CAAC,CAElC,EACA,CAAC7B,EAAUG,CAAQ,CACrB,EAEM2B,EAAalG,EAChB4F,GAA8C,CACzCf,GAAQA,EAAOe,CAAK,CAC1B,EACA,CAACf,CAAM,CACT,EAEMsB,EAAcnG,EACjBoG,GACCrF,EAACX,GAAA,CACE,GAAGgG,EACJ,KAAM1C,EACN,YAAaS,EACb,UAAS,GACT,MAAO,CAAC,CAACF,EACT,WAAYC,EACZ,MAAOP,EACP,SAAUa,EACV,WAAY,CACV,GAAG4B,EAAO,WACV,GAAI,CAAC7B,GAAY,CAAE,eAAAiB,CAAe,EAClC,aACExE,GAAAsC,GAAA,CACG,UAAAQ,EACC/C,EAACZ,GAAA,CAAiB,MAAM,UAAU,KAAM,GAAI,EAC1C,KACHiG,EAAO,WAAW,cACrB,CAEJ,EACA,WAAY,CACV,GAAGA,EAAO,WACV,KAAA1C,EACA,SAAAgB,CACF,EACA,gBAAiBI,EACnB,EAEF,CACEpB,EACAS,EACAF,EACAC,EACAP,EACAa,EACAD,EACAiB,EACA1B,EACAY,EACAI,CACF,CACF,EAEMuB,EAAsBrG,EAC1B,CACEmB,EACA8E,EACAZ,EAEAiB,IAEA7B,EACIA,EAAatD,EAAO8E,EAAQZ,EAAOiB,CAAU,EAC5C,CAAC,CAAE,GAAGnF,EAAO,iBAAAK,CAAiB,EAAGyE,CAAM,EAC9C,CAACxB,EAAcjD,CAAgB,CACjC,EAEA,OACET,EAACb,GAAA,CACC,IAAK6B,EACL,MAAOkD,EACP,cAAeU,EACf,QAAS9B,EACT,QAASC,EACT,cAAeC,EACf,YAAaC,EACb,SAAUF,GAAWQ,EACrB,gBAAe,GACf,gBAAiBjB,EACjB,iBAAkBkC,EAClB,cAAeJ,EACf,SAAUY,EACV,OAAQG,EACR,aAAcG,EACd,YAAaD,GAAUA,EACvB,QAAS/B,EACT,SAAUE,EACV,YAAa4B,EACZ,GAAG/D,EACN,CAEJ,CACF,EAEAqB,EAAa,YAAc,eAE3B,IAAO8C,GAAQ9C","sourcesContent":["import { forwardRef, ReactNode, useCallback, useMemo } from 'react';\nimport MuiAutocomplete, {\n AutocompleteInputChangeReason,\n AutocompleteRenderInputParams,\n AutocompleteRenderOptionState,\n} from '@mui/material/Autocomplete';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField from '@mui/material/TextField';\n\nimport { AutocompleteProps } from 'types/autoCompleteProps';\nimport { Option } from 'types/option';\n\nimport Icon, { IconEnum } from '../Icon';\n\nimport ListboxComponent from './Listbox';\nimport { StyledPopper } from './styles';\n\nconst getOptionValue = (optionValue: Option | string | number) =>\n optionValue && typeof optionValue === 'object'\n ? optionValue.value.toString()\n : optionValue.toString();\n\nconst Autocomplete = 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 InputLabelProps,\n ...other\n },\n ref,\n ) => {\n\n const optionsMap = useMemo(\n () => new Map(options.map(opt => [opt.value.toString(), opt])),\n [options],\n );\n\n const formattedValue = useMemo(() => {\n if (multiple) {\n const values = Array.isArray(value) ? value : [];\n return values\n .map(v => optionsMap.get(v.toString()))\n .filter(Boolean) as Option[];\n }\n\n if (value?.toString()) return optionsMap.get(value.toString()) || null;\n\n return null;\n }, [optionsMap, value, multiple]);\n\n const filterOptions = (\n optionsFilter: Option[],\n state: { inputValue: string },\n ) => {\n const searchUpper = state.inputValue.toLocaleUpperCase();\n return optionsFilter.filter(opt => {\n const search = `${opt.value} ${opt.label}`;\n return search.toLocaleUpperCase().includes(searchUpper);\n });\n };\n\n const listboxComponentWithoutRenderOption = useMemo(\n () => (renderOption ? undefined : ListboxComponent),\n [renderOption],\n );\n\n const startAdornment = useMemo(() => {\n const isString = typeof formattedValue === 'string';\n const isArray = Array.isArray(formattedValue);\n const existsIcon =\n formattedValue && !isString && !isArray && formattedValue?.icon;\n\n if (existsIcon) {\n return <Icon icon={formattedValue.icon as IconEnum} />;\n }\n\n return null;\n }, [formattedValue]);\n\n const handleInputChange = useCallback(\n (\n event: React.SyntheticEvent,\n eventValue: string,\n reason: AutocompleteInputChangeReason,\n ) => {\n if (onInputChange) onInputChange(event, eventValue, reason);\n\n if (reason === 'input') {\n if (onSearch) {\n onSearch(eventValue);\n }\n\n return;\n }\n },\n [onInputChange, onSearch],\n );\n\n const handleChange = useCallback(\n (\n _event: React.SyntheticEvent,\n option: NonNullable<string | Option> | (string | Option)[] | 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 if (typeof option === 'string') {\n onChange(option.toString());\n return;\n }\n\n onChange(option.value.toString());\n return;\n },\n [onChange, multiple],\n );\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n if (onBlur) onBlur(event);\n },\n [onBlur],\n );\n\n const renderInput = useCallback(\n (params: AutocompleteRenderInputParams) => (\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 && { startAdornment }),\n endAdornment: (\n <>\n {loading ? (\n <CircularProgress color=\"primary\" size={20} />\n ) : 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 name,\n placeholder,\n error,\n helperText,\n label,\n required,\n multiple,\n startAdornment,\n loading,\n tabIndex,\n InputLabelProps,\n ],\n );\n\n const renderOptionWrapper = useCallback(\n (\n props: React.HTMLAttributes<HTMLLIElement> & { key: unknown },\n option: Option,\n state: AutocompleteRenderOptionState,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ownerState: any,\n ) =>\n renderOption\n ? renderOption(props, option, state, ownerState)\n : ([{ ...props, showValueInLabel }, option] as ReactNode),\n [renderOption, showValueInLabel],\n );\n\n return (\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={loading || disabled}\n disableListWrap\n PopperComponent={StyledPopper}\n ListboxComponent={listboxComponentWithoutRenderOption}\n filterOptions={filterOptions}\n onChange={handleChange}\n onBlur={handleBlur}\n renderOption={renderOptionWrapper}\n renderGroup={params => params as unknown as ReactNode}\n groupBy={groupBy}\n multiple={multiple}\n renderInput={renderInput}\n {...other}\n />\n );\n },\n);\n\nAutocomplete.displayName = 'Autocomplete';\n\nexport default Autocomplete;\n","import {\n createContext,\n forwardRef,\n HTMLAttributes,\n useContext,\n useEffect,\n useRef,\n} from 'react';\nimport { ListChildComponentProps, VariableSizeList } from 'react-window';\nimport ListSubheader from '@mui/material/ListSubheader';\nimport Stack from '@mui/material/Stack';\nimport { useTheme } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\nimport Icon from '../Icon';\n\nconst LISTBOX_PADDING = 8;\n\nconst renderRow = (props: ListChildComponentProps) => {\n const { data, index, style } = props;\n const dataSet = data[index];\n const { showValueInLabel, key, ...itemProps } = dataSet[0];\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 return (\n <ListSubheader\n key={`list-box-item-group-${key}`}\n component=\"div\"\n style={inlineStyle}\n >\n {dataSet.group}\n </ListSubheader>\n );\n\n return (\n <Typography\n component=\"li\"\n key={`list-box-item-${key}`}\n {...itemProps}\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 {dataSet[1].icon && <Icon icon={dataSet[1].icon} />}\n {dataSet[1].label}\n\n {showValueInLabel && (\n <Typography variant=\"inherit\" color=\"grey.400\">\n ({dataSet[1].value})\n </Typography>\n )}\n </Stack>\n </Typography>\n );\n};\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 const itemData: JSX.Element[] = [];\n (children as JSX.Element[]).forEach(\n (item: JSX.Element & { children?: JSX.Element[] }) => {\n itemData.push(item);\n itemData.push(...(item.children || []));\n },\n );\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 = (child: JSX.Element) => {\n if (Object.prototype.hasOwnProperty.call(child, 'group')) {\n return 48;\n }\n\n return itemSize;\n };\n\n const getHeight = () => {\n if (itemCount > 8) {\n return 8 * itemSize;\n }\n return itemData.map(getChildSize).reduce((a, b) => a + b, 0);\n };\n\n const gridRef = useResetCache(itemCount);\n\n return (\n <div ref={ref}>\n <OuterElementContext.Provider value={other}>\n <VariableSizeList\n itemData={itemData}\n height={getHeight() + 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 >\n {renderRow}\n </VariableSizeList>\n </OuterElementContext.Provider>\n </div>\n );\n});\n\nexport default ListboxComponent;\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"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { a as a$4 } from './chunk-6ZSTKYGL.js';
|
|
2
|
+
import { a as a$1 } from './chunk-RPPQBAVO.js';
|
|
3
|
+
import { a as a$3 } from './chunk-IJZCVZ32.js';
|
|
4
|
+
import { a } from './chunk-NQNNMRLC.js';
|
|
5
|
+
import { a as a$2 } from './chunk-XWUVJ22J.js';
|
|
6
|
+
import { memo, useCallback, useState, useMemo } from 'react';
|
|
7
|
+
import J from '@mui/material/Button';
|
|
8
|
+
import Q from '@mui/material/CircularProgress';
|
|
9
|
+
import j from '@mui/material/Grid';
|
|
10
|
+
import d from '@mui/material/Stack';
|
|
11
|
+
import h from '@mui/material/Typography';
|
|
12
|
+
import N from '@mui/material/Card';
|
|
13
|
+
import { styled, alpha } from '@mui/material/styles';
|
|
14
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
15
|
+
|
|
16
|
+
var P=styled(N,{shouldForwardProp:r=>r!=="active"&&r!=="disabled"})(({theme:r,active:a,disabled:i})=>({boxShadow:"none",borderRadius:8,borderStyle:"solid",borderWidth:1.5,borderColor:a?r.palette.primary.main:r.palette.grey[300],color:r.palette.primary.main,backgroundColor:a?alpha(r.palette.primary.main,.04):"white","&:hover":{borderColor:r.palette.primary.main},...i?{opacity:.6,cursor:"default"}:{opacity:1,cursor:"pointer"}}));var L=memo(({item:r,isSelected:a$1,disabled:i,onSelectItem:n})=>{let o=useCallback(()=>{n(r);},[r,n]);return jsx(j,{item:!0,xs:4,children:jsx(P,{active:a$1,onClick:o,disabled:i,children:jsxs(d,{padding:1.5,width:"100%",children:[jsxs(d,{direction:"row",alignItems:"center",justifyContent:"space-between",children:[jsx(h,{color:a$1?"primary.main":"text.primary",variant:"subtitle2",textAlign:"left",noWrap:!0,children:r.title}),a$1&&jsx(a,{icon:"CHECK_CIRCLE",width:24})]}),r.options.map(l=>jsx(h,{mt:1,variant:"body2",color:"text.disabled",fontSize:12,textAlign:"left",noWrap:!0,children:`${l.label}: ${l.value}`},l.label))]})})},r.title)});L.displayName="CardItem";var D=L;var X=new Intl.PluralRules("pt-BR"),Y=new Map([["one","selecionado"],["other","selecionados"]]),Z=r=>{let a=X.select(r),i=Y.get(a);return `${r} ${i}`},rr=({title:r,action:a,loading:i,items:n,values:o,onChange:l,disabled:s=!1})=>{let[c,O]=useState(),C=useMemo(()=>new Set(o),[o]),y=useCallback(t=>C.has(t),[C]),$=useMemo(()=>{if(!c)return n;let t=c.toLowerCase();return n.filter(u=>u.title.toLowerCase().includes(t))},[n,c]),A=useCallback(t=>{if(s)return;let u=y(t.value),g;u?g=o.filter(M=>M!==t.value):g=[...o,t.value],l(g);},[s,y,l,o]),b=useMemo(()=>n.map(t=>t.value),[n]),B=useCallback(()=>{s||(o.length===n.length?l([]):l(b));},[s,n.length,l,o.length,b]),G=useCallback(t=>O(t),[]),K=t=>{t.key==="Enter"&&t.preventDefault();},W=useMemo(()=>o.length===0?"nenhum selecionado":Z(o.length),[o.length]),z=useMemo(()=>typeof r=="string"?jsx(h,{variant:"overline",color:"text.disabled",children:r}):r,[r]);return jsxs(d,{gap:1.5,height:450,children:[jsxs(d,{direction:"row",justifyContent:"space-between",children:[z,jsx(h,{variant:"overline",color:"text.disabled",children:W})]}),jsxs(d,{direction:"row",alignItems:"center",spacing:1.5,children:[jsx(a$1,{fullWidth:!0,size:"small",iconPosition:"start",placeholder:"Buscar",trigger:"change",onSearch:G,onKeyDown:K}),a?jsx(Fragment,{children:a}):jsx(J,{onClick:B,size:"small",disabled:s,children:jsx(h,{variant:"overline",children:"TODOS"})})]}),jsx(a$2,{children:jsx(d,{flex:1,mb:2,children:jsx(a$3,{isLoading:i,loading:jsx(d,{alignItems:"center",mt:3,children:jsx(Q,{})}),isEmpty:n.length===0,empty:jsx(a$4,{sx:{svg:{height:140}},text:c?`N\xE3o foi possivel encontrar o item "${c}"`:"Nenhum item dispon\xEDvel"}),children:jsx(j,{container:!0,spacing:1.5,children:$.map(t=>jsx(D,{item:t,isSelected:y(t.value),disabled:s,onSelectItem:A},t.value))})})})})]})},vr=rr;
|
|
17
|
+
|
|
18
|
+
export { vr as a };
|
|
19
|
+
//# sourceMappingURL=out.js.map
|
|
20
|
+
//# sourceMappingURL=chunk-SVJYA4Q6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/SelectableCards/index.tsx","../src/components/SelectableCards/CardItem.tsx","../src/components/SelectableCards/style.ts"],"names":["useCallback","useMemo","useState","Button","CircularProgress","Grid","Stack","Typography","memo","Card","alpha","styled","StyledCard","prop","theme","active","disabled","jsx","jsxs","CardItem","item","isSelected","onSelectItem","handleClick","Icon_default","option","CardItem_default","Fragment","enCardinalRules","strings","formatStrings","n","rule","suffix","SelectableCards","title","action","loading","items","values","onChange","search","setSearch","valuesSet","itemId","filteredItems","searchLower","isItemAlreadySelected","newSelectedOptions","element","allItemValues","selectAllItems","handleSearch","value","handleKeyDown","event","selectedCount","titleComponent","SearchInput_default","Scrollbar_default","Result_default","EmptyView_default","SelectableCards_default"],"mappings":"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","sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport Button from '@mui/material/Button';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Grid from '@mui/material/Grid';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport EmptyView from 'components/EmptyView';\nimport Result from 'components/Result';\nimport Scrollbar from 'components/Scrollbar';\nimport SearchInput from 'components/SearchInput';\n\nimport CardItem from './CardItem';\nimport { Option, SelectableCardsProps } from './props';\n\nconst enCardinalRules = new Intl.PluralRules('pt-BR');\n\nconst strings = new Map([\n ['one', 'selecionado'],\n ['other', 'selecionados'],\n]);\n\nconst formatStrings = (n: number) => {\n const rule = enCardinalRules.select(n);\n const suffix = strings.get(rule);\n return `${n} ${suffix}`;\n};\n\nconst SelectableCards = ({\n title,\n action,\n loading,\n items,\n values,\n onChange,\n disabled = false,\n}: SelectableCardsProps) => {\n const [search, setSearch] = useState<string>();\n\n const valuesSet = useMemo(() => new Set(values), [values]);\n\n const isSelected = useCallback(\n (itemId: string) => {\n return valuesSet.has(itemId);\n },\n [valuesSet],\n );\n\n const filteredItems = useMemo(() => {\n if (!search) return items;\n const searchLower = search.toLowerCase();\n return items.filter(item => item.title.toLowerCase().includes(searchLower));\n }, [items, search]);\n\n const onSelectItem = useCallback(\n (item: Option) => {\n if (disabled) return;\n const isItemAlreadySelected = isSelected(item.value);\n\n let newSelectedOptions: string[];\n\n if (isItemAlreadySelected) {\n newSelectedOptions = values.filter(element => element !== item.value);\n } else {\n newSelectedOptions = [...values, item.value];\n }\n\n onChange(newSelectedOptions);\n },\n [disabled, isSelected, onChange, values],\n );\n\n const allItemValues = useMemo(() => items.map(item => item.value), [items]);\n\n const selectAllItems = useCallback(() => {\n if (disabled) return;\n if (values.length === items.length) {\n onChange([]);\n } else {\n onChange(allItemValues);\n }\n }, [disabled, items.length, onChange, values.length, allItemValues]);\n\n const handleSearch = useCallback((value: string) => setSearch(value), []);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n }\n };\n\n const selectedCount = useMemo(\n () =>\n values.length === 0 ? 'nenhum selecionado' : formatStrings(values.length),\n [values.length],\n );\n\n const titleComponent = useMemo(\n () =>\n typeof title === 'string' ? (\n <Typography variant=\"overline\" color=\"text.disabled\">\n {title}\n </Typography>\n ) : (\n title\n ),\n [title],\n );\n\n return (\n <Stack gap={1.5} height={450}>\n <Stack direction=\"row\" justifyContent=\"space-between\">\n {titleComponent}\n <Typography variant=\"overline\" color=\"text.disabled\">\n {selectedCount}\n </Typography>\n </Stack>\n <Stack direction=\"row\" alignItems=\"center\" spacing={1.5}>\n <SearchInput\n fullWidth\n size=\"small\"\n iconPosition=\"start\"\n placeholder=\"Buscar\"\n trigger=\"change\"\n onSearch={handleSearch}\n onKeyDown={handleKeyDown}\n />\n\n {action ? (\n <>{action}</>\n ) : (\n <Button onClick={selectAllItems} size=\"small\" disabled={disabled}>\n <Typography variant=\"overline\">TODOS</Typography>\n </Button>\n )}\n </Stack>\n\n <Scrollbar>\n <Stack flex={1} mb={2}>\n <Result\n isLoading={loading}\n loading={\n <Stack alignItems=\"center\" mt={3}>\n <CircularProgress />\n </Stack>\n }\n isEmpty={items.length === 0}\n empty={\n <EmptyView\n sx={{ svg: { height: 140 } }}\n text={\n search\n ? `Não foi possivel encontrar o item \"${search}\"`\n : 'Nenhum item disponível'\n }\n />\n }\n >\n <Grid container spacing={1.5}>\n {filteredItems.map(item => (\n <CardItem\n key={item.value}\n item={item}\n isSelected={isSelected(item.value)}\n disabled={disabled}\n onSelectItem={onSelectItem}\n />\n ))}\n </Grid>\n </Result>\n </Stack>\n </Scrollbar>\n </Stack>\n );\n};\n\nexport default SelectableCards;\n","import { memo, useCallback } from 'react';\nimport Grid from '@mui/material/Grid';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport Icon from 'components/Icon';\n\nimport { CardItemProps } from './props';\nimport { StyledCard } from './style';\n\nconst CardItem = memo(\n ({ item, isSelected, disabled, onSelectItem }: CardItemProps) => {\n const handleClick = useCallback(() => {\n onSelectItem(item);\n }, [item, onSelectItem]);\n\n return (\n <Grid key={item.title} item xs={4}>\n <StyledCard\n active={isSelected}\n onClick={handleClick}\n disabled={disabled}\n >\n <Stack padding={1.5} width=\"100%\">\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n >\n <Typography\n color={isSelected ? 'primary.main' : 'text.primary'}\n variant=\"subtitle2\"\n textAlign=\"left\"\n noWrap\n >\n {item.title}\n </Typography>\n\n {isSelected && <Icon icon=\"CHECK_CIRCLE\" width={24} />}\n </Stack>\n\n {item.options.map(option => (\n <Typography\n key={option.label}\n mt={1}\n variant=\"body2\"\n color=\"text.disabled\"\n fontSize={12}\n textAlign=\"left\"\n noWrap\n >\n {`${option.label}: ${option.value}`}\n </Typography>\n ))}\n </Stack>\n </StyledCard>\n </Grid>\n );\n },\n);\n\nCardItem.displayName = 'CardItem';\n\nexport default CardItem;\n","import Card from '@mui/material/Card';\nimport { alpha, styled } from '@mui/material/styles';\n\nimport { CardProps } from './props';\n\nexport const StyledCard = styled(Card, {\n shouldForwardProp: prop => prop !== 'active' && prop !== 'disabled',\n})<CardProps>(({ theme, active, disabled }) => ({\n boxShadow: 'none',\n\n borderRadius: 8,\n borderStyle: 'solid',\n borderWidth: 1.5,\n borderColor: active ? theme.palette.primary.main : theme.palette.grey[300],\n\n color: theme.palette.primary.main,\n backgroundColor: active ? alpha(theme.palette.primary.main, 0.04) : 'white',\n\n '&:hover': {\n borderColor: theme.palette.primary.main,\n },\n\n ...(disabled\n ? {\n opacity: 0.6,\n cursor: 'default',\n }\n : {\n opacity: 1,\n cursor: 'pointer',\n }),\n}));\n"]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { a } from './chunk-UVPQR2Q2.js';
|
|
2
|
-
import
|
|
2
|
+
import l from '@mui/material/Divider';
|
|
3
3
|
import n from '@mui/material/Stack';
|
|
4
4
|
import { styled } from '@mui/material/styles';
|
|
5
|
-
import
|
|
5
|
+
import { useCallback, useMemo } from 'react';
|
|
6
|
+
import P from '@mui/material/TablePagination';
|
|
6
7
|
import { jsx } from 'react/jsx-runtime';
|
|
7
8
|
|
|
8
|
-
var
|
|
9
|
+
var I=styled(a,{shouldForwardProp:o=>o!=="breakpoint"})(({theme:o,breakpoint:t})=>({position:"relative",borderRadius:12,padding:0,gap:0,overflow:"hidden",[o.breakpoints.down(t)]:{borderColor:o.palette.divider}})),M=styled(n,{shouldForwardProp:o=>o!=="breakpoint"})(({theme:o,breakpoint:t})=>({flexDirection:"row",alignItems:"center",justifyContent:"space-between",padding:"24px 24px 0",gap:24,[o.breakpoints.down(t)]:{padding:"16px 16px 0"}})),S=styled(n,{shouldForwardProp:o=>o!=="breakpoint"})(({theme:o,breakpoint:t})=>({flexDirection:"row",alignItems:"center",gap:12,color:o.palette.text.secondary,[o.breakpoints.down(t)]:{"& button, & a":{textIndent:"-9999em",fontSize:0,minWidth:36,maxWidth:36,height:36,width:36,overflow:"hidden","& .MuiButton-icon":{margin:0}}}})),B=styled(l)({borderStyle:"dashed",height:16,margin:"auto"}),T=styled(l)({borderStyle:"dashed",height:12,marginTop:"auto",marginBottom:"auto"}),H=styled(n,{shouldForwardProp:o=>o!=="breakpoint"})(({theme:o,breakpoint:t})=>({position:"relative",padding:16,flexDirection:"row",alignItems:"center",color:o.palette.text.secondary,[o.breakpoints.down(t)]:{padding:"12px 16px",borderBottom:`1px solid ${o.palette.divider}`,minHeight:60,[o.breakpoints.down(t)]:{"& button":{textIndent:"-9999em",fontSize:0,minWidth:36,maxWidth:36,height:36,width:36,overflow:"hidden","& .MuiButton-icon":{margin:0}}}}})),F=styled(n,{shouldForwardProp:o=>o!=="breakpoint"})(({theme:o,breakpoint:t})=>({width:320,alignItems:"center",justifyContent:"center",[o.breakpoints.down(t)]:{position:"absolute",left:0,width:"100%",padding:"0 12px",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"}}})),W=styled(n)(({theme:o})=>({minHeight:60,alignItems:"flex-end",justifyContent:"center",borderTop:`1px solid ${o.palette.divider}`,[o.breakpoints.down("sm")]:{minHeight:"auto"}})),$=styled(n)(({theme:o})=>({flexDirection:"row",height:60,alignItems:"center",justifyContent:"space-between",borderTop:`1px solid ${o.palette.divider}`,gap:16,padding:16}));var w=({count:o,page:t,rowsPerPage:i,onPageChange:r,onRowsPerPageChange:a})=>{let p=Math.ceil(o/i)||1,u=useCallback((d,b)=>{r(b);},[r]),f=useCallback(d=>{a(Number(d.target.value));},[a]),h=useMemo(()=>`P\xE1gina ${t+1} de ${p}`,[t,p]);return jsx(g,{"aria-label":h,"aria-live":"polite",role:"navigation",children:jsx(P,{color:"primary",component:"div",size:"small",count:o,page:t,rowsPerPage:i,onPageChange:u,onRowsPerPageChange:f})})},R=w;
|
|
9
10
|
|
|
10
|
-
export {
|
|
11
|
+
export { I as a, M as b, S as c, B as d, T as e, H as f, F as g, W as h, $ as i, R as j };
|
|
11
12
|
//# sourceMappingURL=out.js.map
|
|
12
|
-
//# sourceMappingURL=chunk-
|
|
13
|
+
//# sourceMappingURL=chunk-TB4Y7LXN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/DataView/styles.ts","../src/components/DataView/Pagination.tsx"],"names":["Divider","Stack","styled","Container","Panel_default","prop","theme","breakpoint","Header","ActionsContainer","ActionsDivider","ToolbarActionsDivider","Topbar","SearchContainer","PaginationContainer","MobilePaginationContainer","DesktopPaginationContainer","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 Divider from '@mui/material/Divider';\nimport Stack, { StackProps } from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\nimport { Breakpoint } from '@mui/material/styles';\n\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: '24px 24px 0',\n gap: 24,\n\n [theme.breakpoints.down(breakpoint)]: {\n padding: '16px 16px 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: 12,\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)({\n borderStyle: 'dashed',\n height: 16,\n margin: 'auto',\n});\n\nexport const ToolbarActionsDivider = styled(Divider)({\n borderStyle: 'dashed',\n height: 12,\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: 16,\n flexDirection: 'row',\n alignItems: 'center',\n color: theme.palette.text.secondary,\n\n [theme.breakpoints.down(breakpoint)]: {\n padding: '12px 16px',\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 alignItems: 'center',\n justifyContent: 'center',\n\n [theme.breakpoints.down(breakpoint)]: {\n position: 'absolute',\n left: 0,\n width: '100%',\n padding: '0 12px',\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: 16,\n padding: 16,\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,4 +1,4 @@
|
|
|
1
|
-
import { a } from './chunk-
|
|
1
|
+
import { a } from './chunk-373WGZZL.js';
|
|
2
2
|
import { a as a$3, b } from './chunk-TWSAWMZ3.js';
|
|
3
3
|
import { a as a$5 } from './chunk-WUFEPE2G.js';
|
|
4
4
|
import { c, b as b$1 } from './chunk-2WG6OWB4.js';
|
|
@@ -15,4 +15,4 @@ var W=t=>({lighter:lighten(t,.815),light:lighten(t,.225),main:t,dark:darken(t,.1
|
|
|
15
15
|
|
|
16
16
|
export { x as a, te as b };
|
|
17
17
|
//# sourceMappingURL=out.js.map
|
|
18
|
-
//# sourceMappingURL=chunk-
|
|
18
|
+
//# sourceMappingURL=chunk-U4ZTAFZV.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { a as a$5 } from './chunk-RPPQBAVO.js';
|
|
2
|
+
import { a as a$6 } from './chunk-IJZCVZ32.js';
|
|
3
|
+
import { a as a$9 } from './chunk-IDFJFFIV.js';
|
|
4
|
+
import { a as a$7 } from './chunk-6U5LS7MP.js';
|
|
5
|
+
import { i, j, a as a$3, b as b$1, c, d, f, e, g, h } from './chunk-TB4Y7LXN.js';
|
|
6
|
+
import { a as a$1 } from './chunk-IN7SP2ND.js';
|
|
7
|
+
import { a as a$4 } from './chunk-CO2KQFUN.js';
|
|
8
|
+
import { a } from './chunk-NQNNMRLC.js';
|
|
9
|
+
import { a as a$8 } from './chunk-XWUVJ22J.js';
|
|
10
|
+
import { a as a$2 } from './chunk-LQRRMVFN.js';
|
|
11
|
+
import { b } from './chunk-RPO7AI5K.js';
|
|
12
|
+
import { memo, forwardRef, Children, isValidElement, cloneElement, useCallback, useState, useMemo } from 'react';
|
|
13
|
+
import I from '@mui/material/Button';
|
|
14
|
+
import Lo from '@mui/material/CircularProgress';
|
|
15
|
+
import Fo from '@mui/material/Divider';
|
|
16
|
+
import co from '@mui/material/Stack';
|
|
17
|
+
import eo from '@mui/material/Typography';
|
|
18
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
19
|
+
import { GridToolbarColumnsButton } from '@mui/x-data-grid-premium';
|
|
20
|
+
|
|
21
|
+
var k="datagrid-actions";var Ao=({rowCount:t,page:e,rowsPerPage:r,onPaginationChange:i$1})=>jsxs(i,{children:[jsxs(co,{direction:"row",alignItems:"center",gap:.5,children:[jsx(eo,{variant:"body2",color:"text.disabled",children:"Total de itens:"}),jsx(eo,{variant:"body2",children:t})]}),jsx(j,{count:t,page:e,rowsPerPage:r,onPageChange:n=>i$1(n,r),onRowsPerPageChange:n=>i$1(e,n)})]}),ao=memo(Ao);var io=(t,e)=>Children.map(t,r=>{if(!isValidElement(r))return r;let i=r.props.onClick,n={};return n.onClick=(...S)=>{e(),i&&i(...S);},r.props?.children&&(n.children=io(r.props.children,e)),cloneElement(r,n)}),Ro=({children:t,onClose:e})=>t?io(t,e):null,so=memo(Ro);var Bo=forwardRef(({children:t,...e},r)=>jsx(I,{...e,ref:r,color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:t??"Colunas"}));Bo.displayName="ColumnsButton";var Oo=({setFilterButtonEl:t})=>{let e=useCallback(r=>{t(r);},[t]);return jsx(a$1,{container:k,children:jsx(GridToolbarColumnsButton,{ref:e,slotProps:{button:{color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:"Colunas"}}})})},po=Oo;var zo=({title:t,headerContent:e$1,breakpoint:r="md",columns:i,rows:n=[],mobileRender:S,rowCount:b$2=0,paginationModel:s={page:0,pageSize:25},onPaginationChange:g$1,actions:E,moreActions:M,onAdd:x,onSearch:B,searchValue:mo,onSearchChange:fo,slots:m,slotProps:uo,loading:f$1,fetching:O,containerProps:ho={height:562,maxHeight:562},hideFooter:G,hideHeader:N=!1,showColumnButton:D=!1,...go})=>{let l=a$2(),u=b("down",r),[Po,Co]=useState(null),H=!!B,A=!!x,P=!!E,T=!!M,v=u&&T,w=!u&&T,ko=P||A||v,L=w||H||D||!u,F=useCallback(()=>jsx(ao,{rowCount:b$2,page:s.page,rowsPerPage:s.pageSize,onPaginationChange:g$1}),[b$2,s,g$1]),So=useMemo(()=>({...m,footer:F,...D&&!m?.toolbar&&{toolbar:po}}),[m,F,D]);return jsxs(a$3,{breakpoint:r,...ho,flex:f$1?1:void 0,minHeight:!f$1&&n.length===0?562:void 0,children:[!N&&jsxs(Fragment,{children:[jsxs(b$1,{breakpoint:r,children:[jsx(eo,{variant:"overline",color:"text.secondary",noWrap:!0,children:t}),ko&&jsxs(c,{breakpoint:r,children:[P&&E,A&&jsxs(Fragment,{children:[P&&jsx(d,{orientation:"vertical",flexItem:!0}),jsx(I,{startIcon:jsx(a,{icon:"SIMPLE_ADD"}),variant:"contained",onClick:x,children:"Adicionar"})]}),v&&jsxs(Fragment,{children:[(P||A)&&jsx(d,{orientation:"vertical",flexItem:!0}),jsx(I,{color:"inherit",startIcon:jsx(a,{icon:"MORE_BOLD"}),size:"small",onClick:l.onOpen,children:"Mais"})]})]})]}),L&&jsxs(f,{breakpoint:r,children:[jsx(co,{flex:1,direction:"row",alignItems:"center",id:k,gap:.5,children:T&&jsxs(Fragment,{children:[w&&jsxs(Fragment,{children:[jsx(I,{color:"inherit",startIcon:jsx(a,{icon:"MORE_BOLD"}),size:"small",onClick:l.onOpen,children:"Mais"}),!u&&jsx(e,{orientation:"vertical",flexItem:!0})]}),(w||v)&&jsx(a$4,{open:l.open,anchorEl:l.open,onClose:l.onClose,sx:{minWidth:160},disabledArrow:!0,children:jsx(so,{onClose:l.onClose,children:M})})]})}),H&&jsx(g,{breakpoint:r,children:jsx(a$5,{value:mo,placeholder:"Buscar",onSearch:B,onChange:p=>fo?.(p.target.value),size:"small",fullWidth:!0,iconPosition:"start"})})]})]}),!L&&!N&&jsx(Fo,{sx:{mt:2}}),e$1&&e$1,u?jsxs(a$6,{isFetching:O,fetching:jsx(a$7,{}),isLoading:f$1,loading:jsx(Lo,{sx:{m:"160px auto"}}),isEmpty:n.length===0,empty:jsx(co,{flex:1,alignItems:"center",justifyContent:"center",children:m?.noRowsOverlay?jsx(m.noRowsOverlay,{}):jsx(eo,{variant:"body2",color:"text.secondary",children:"Nenhum registro encontrado"})}),children:[jsx(a$8,{fillContent:!0,children:n.map(p=>S(p))}),!G&&jsx(h,{children:jsx(j,{count:b$2,page:s.page,rowsPerPage:s.pageSize,onPageChange:p=>g$1(p,s.pageSize),onRowsPerPageChange:p=>g$1(s.page,p)})})]}):jsx(a$9,{columns:i,rows:n,slots:So,slotProps:{panel:{anchorEl:Po},toolbar:{setFilterButtonEl:Co,showQuickFilter:!0},...uo},columnHeaderHeight:48,getRowHeight:()=>68,loading:f$1,fetching:O,hideFooter:G,...go})]},f$1?"loading":"data")},Ir=zo;
|
|
22
|
+
|
|
23
|
+
export { ao as a, so as b, po as c, Ir as d };
|
|
24
|
+
//# sourceMappingURL=out.js.map
|
|
25
|
+
//# sourceMappingURL=chunk-UJGDCLUU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/DataView/index.tsx","../src/components/DataView/contants.ts","../src/components/DataView/DesktopFooter.tsx","../src/components/DataView/EnhancedMoreActions.tsx","../src/components/DataView/Toolbar.tsx"],"names":["useCallback","useMemo","useState","Button","CircularProgress","Divider","Stack","Typography","DATAGRID_ACTIONS","memo","jsx","jsxs","DesktopFooter","rowCount","page","rowsPerPage","onPaginationChange","DesktopPaginationContainer","Pagination_default","newPage","newRowsPerPage","DesktopFooter_default","Children","cloneElement","isValidElement","createEnhanceMoreActions","children","onClose","child","originalOnClick","enhancedProps","args","EnhancedMoreActions","EnhancedMoreActions_default","forwardRef","GridToolbarColumnsButton","ColumnsButton","props","ref","Icon_default","Toolbar","setFilterButtonEl","handleColumnsButtonRef","button","Portal_default","Toolbar_default","Fragment","DataView","title","headerContent","breakpoint","columns","rows","mobileRender","paginationModel","actions","moreActions","onAdd","onSearch","searchValue","onSearchChange","slots","slotProps","loading","fetching","containerProps","hideFooter","hideHeader","showColumnButton","others","popover","usePopover_default","isMobile","useResponsive_default","filterButtonEl","showSearch","showAdd","showActions","showMoreActions","showHeaderMoreActions","showTopbarMoreActions","showActionsContainer","showTopbar","FooterComponent","dataGridSlots","Container","Header","ActionsContainer","ActionsDivider","Topbar","ToolbarActionsDivider","MenuPopover_default","SearchContainer","SearchInput_default","e","Result_default","FixedProgressBar_default","Scrollbar_default","row","MobilePaginationContainer","DataGrid_default","DataView_default"],"mappings":"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","sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport Button from '@mui/material/Button';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport { GridSlotsComponentsProps } from '@mui/x-data-grid-premium';\n\nimport DataGrid from 'components/DataGrid';\nimport FixedProgressBar from 'components/FixedProgressBar';\nimport Icon from 'components/Icon';\nimport MenuPopover from 'components/MenuPopover';\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 DesktopFooter from './DesktopFooter';\nimport EnhancedMoreActions from './EnhancedMoreActions';\nimport Pagination from './Pagination';\nimport { DataGridSlotsProps, DataViewProps } from './props';\nimport {\n ActionsContainer,\n ActionsDivider,\n Container,\n Header,\n MobilePaginationContainer,\n SearchContainer,\n ToolbarActionsDivider,\n Topbar,\n} from './styles';\nimport Toolbar from './Toolbar';\n\nconst DataView = ({\n title,\n headerContent,\n breakpoint = 'md',\n columns,\n rows = [],\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 containerProps = { height: 562, maxHeight: 562 },\n hideFooter,\n hideHeader = false,\n showColumnButton = false,\n ...others\n}: DataViewProps) => {\n const popover = usePopover();\n const isMobile = useResponsive('down', breakpoint);\n const [filterButtonEl, setFilterButtonEl] =\n useState<HTMLButtonElement | null>(null);\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 || showSearch || showColumnButton || !isMobile;\n\n const FooterComponent = useCallback(\n () => (\n <DesktopFooter\n rowCount={rowCount}\n page={paginationModel.page}\n rowsPerPage={paginationModel.pageSize}\n onPaginationChange={onPaginationChange}\n />\n ),\n [rowCount, paginationModel, onPaginationChange],\n );\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 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 {!hideHeader && (\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 <MenuPopover\n open={popover.open}\n anchorEl={popover.open}\n onClose={popover.onClose}\n sx={{\n minWidth: 160,\n }}\n disabledArrow={true}\n >\n <EnhancedMoreActions onClose={popover.onClose}>\n {moreActions}\n </EnhancedMoreActions>\n </MenuPopover>\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 </SearchContainer>\n )}\n </Topbar>\n )}\n </>\n )}\n\n {!showTopbar && !hideHeader && <Divider sx={{ mt: 2 }} />}\n\n {headerContent && headerContent}\n\n {isMobile ? (\n <Result\n isFetching={fetching}\n fetching={<FixedProgressBar />}\n isLoading={loading}\n loading={<CircularProgress sx={{ m: '160px auto' }} />}\n isEmpty={rows.length === 0}\n empty={\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 }\n >\n <Scrollbar fillContent>\n {rows.map(row => mobileRender(row))}\n </Scrollbar>\n\n {!hideFooter && (\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 <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 {...others}\n />\n )}\n </Container>\n );\n};\n\nexport default DataView;\nexport {\n ActionsContainer,\n ActionsDivider,\n Container,\n DesktopFooter,\n EnhancedMoreActions,\n Header,\n MobilePaginationContainer,\n SearchContainer,\n Toolbar,\n ToolbarActionsDivider,\n Topbar,\n};\n","export const DATAGRID_ACTIONS = 'datagrid-actions';\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 if (child.props?.children) {\n enhancedProps.children = createEnhanceMoreActions(\n child.props.children as ReactNode,\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"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a } from './chunk-
|
|
1
|
+
import { a } from './chunk-IGOVBLZ2.js';
|
|
2
2
|
import { useFormContext, Controller } from 'react-hook-form';
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
@@ -6,4 +6,4 @@ var f=({name:t,helperText:l,rules:s,onSelectOption:e,InputLabelProps:a$1,...u})=
|
|
|
6
6
|
|
|
7
7
|
export { i as a };
|
|
8
8
|
//# sourceMappingURL=out.js.map
|
|
9
|
-
//# sourceMappingURL=chunk-
|
|
9
|
+
//# sourceMappingURL=chunk-WYJV57WG.js.map
|
|
@@ -6,8 +6,8 @@ import { a as a$3 } from '../../chunk-NQNNMRLC.js';
|
|
|
6
6
|
import '../../chunk-CIGSMWKF.js';
|
|
7
7
|
import { a as a$1 } from '../../chunk-LQRRMVFN.js';
|
|
8
8
|
import '../../chunk-UHXAPEIF.js';
|
|
9
|
-
import '../../chunk-
|
|
10
|
-
import '../../chunk-
|
|
9
|
+
import '../../chunk-U4ZTAFZV.js';
|
|
10
|
+
import '../../chunk-373WGZZL.js';
|
|
11
11
|
import '../../chunk-TWSAWMZ3.js';
|
|
12
12
|
import '../../chunk-ROVD7OGE.js';
|
|
13
13
|
import '../../chunk-WUFEPE2G.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a } from '../../chunk-
|
|
2
|
-
import { j as j$1 } from '../../chunk-
|
|
1
|
+
import { a } from '../../chunk-WYJV57WG.js';
|
|
2
|
+
import { j as j$1 } from '../../chunk-TB4Y7LXN.js';
|
|
3
3
|
import '../../chunk-UVPQR2Q2.js';
|
|
4
4
|
import { a as a$1 } from '../../chunk-RBTYTONM.js';
|
|
5
5
|
import { a as a$3 } from '../../chunk-IN7SP2ND.js';
|
|
6
|
-
import '../../chunk-
|
|
6
|
+
import '../../chunk-IGOVBLZ2.js';
|
|
7
7
|
import { a as a$2 } from '../../chunk-NQNNMRLC.js';
|
|
8
8
|
import '../../chunk-CIGSMWKF.js';
|
|
9
9
|
import { memo, useEffect, useState, useMemo, useCallback } from 'react';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a } from '../../chunk-NQNNMRLC.js';
|
|
2
2
|
import '../../chunk-CIGSMWKF.js';
|
|
3
|
-
import { b } from '../../chunk-
|
|
4
|
-
import '../../chunk-
|
|
3
|
+
import { b } from '../../chunk-U4ZTAFZV.js';
|
|
4
|
+
import '../../chunk-373WGZZL.js';
|
|
5
5
|
import '../../chunk-TWSAWMZ3.js';
|
|
6
6
|
import '../../chunk-ROVD7OGE.js';
|
|
7
7
|
import '../../chunk-WUFEPE2G.js';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as react from 'react';
|
|
2
3
|
import { GridValidRowModel, GridRowParams, MuiEvent, GridRowSelectionModel } from '@mui/x-data-grid-premium';
|
|
3
4
|
import { DatagridRow, Columns, Row } from '../../types/datagrid.js';
|
|
4
5
|
import * as _mui_x_data_grid from '@mui/x-data-grid';
|
|
@@ -39,7 +40,7 @@ interface DataCardProps {
|
|
|
39
40
|
selectedRows?: GridRowSelectionModel;
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
declare const
|
|
43
|
+
declare const _default: react.MemoExoticComponent<({ fields, id, row, title, onClick, checkboxSelection, selectedRows, onSelectionRow, }: DataCardProps) => react_jsx_runtime.JSX.Element>;
|
|
43
44
|
|
|
44
45
|
declare const DataCardSkeleton: () => react_jsx_runtime.JSX.Element;
|
|
45
46
|
|
|
@@ -47,4 +48,4 @@ declare const getFieldData: (columns: readonly _mui_x_data_grid.GridColDef<any>[
|
|
|
47
48
|
|
|
48
49
|
declare const DataCards: ({ title, rows, columns, getRowId, onClick, loading, fetching, pagination, checkboxSelection, onSelectionRow, selectedRows, }: DataCardsProps) => react_jsx_runtime.JSX.Element;
|
|
49
50
|
|
|
50
|
-
export { DataCard, DataCardSkeleton, DataCards as default, getFieldData };
|
|
51
|
+
export { _default as DataCard, DataCardSkeleton, DataCards as default, getFieldData };
|
|
@@ -4,20 +4,20 @@ import { a as a$1 } from '../../chunk-6U5LS7MP.js';
|
|
|
4
4
|
import { a as a$2 } from '../../chunk-BNBE2OMA.js';
|
|
5
5
|
import '../../chunk-NIQW2J3M.js';
|
|
6
6
|
import '../../chunk-GLRLKFPS.js';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
7
|
+
import { memo, useMemo } from 'react';
|
|
8
|
+
import it from '@mui/material/Pagination';
|
|
9
|
+
import u from '@mui/material/Stack';
|
|
10
|
+
import U from '@mui/material/CardContent';
|
|
11
|
+
import V from '@mui/material/Checkbox';
|
|
12
12
|
import x from '@mui/material/Typography';
|
|
13
|
-
import
|
|
14
|
-
import
|
|
13
|
+
import J from '@mui/material/Card';
|
|
14
|
+
import K from '@mui/material/CardActionArea';
|
|
15
15
|
import { styled } from '@mui/material/styles';
|
|
16
16
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
17
|
-
import
|
|
17
|
+
import C from '@mui/material/Skeleton';
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var M=styled(J)(({theme:t})=>({boxShadow:"none",border:`1px solid ${t.palette.divider}`})),W=styled(K)({"&.MuiCardActionArea-focusHighlight":{background:"transparent"}});var X=(t,e)=>{if(t.renderCell){let a=t.renderCell({value:t.value,field:e,row:{[e]:t.value}});if(a)return a}return t.valueFormatter&&t.valueGetter?t.valueFormatter(t.valueGetter(t.value)):t.value},$=t=>{t.stopPropagation();},Y=({fields:t,id:e,row:a$1,title:d,onClick:r,checkboxSelection:h,selectedRows:m=[],onSelectionRow:c$1})=>{let i=useMemo(()=>{let o=t.find(p=>p.label.toLowerCase()==="status"||p.type==="status"||p.field==="status"),n=t.find(p=>p.type==="actions"||p.id==="actions"),b=t.filter(p=>p.label.toLowerCase()!=="status"&&p.value?.toString()!==e&&p.type!=="actions");return {idText:`${c(e)?"#":""}${e}`,selected:m?.includes(e),status:o,statusRender:o?.renderCell?.({value:o.value,field:e,row:{[e]:o.value}})||o?.value,action:n,actionRender:n?.getActions({id:e,row:a$1})||null,moreFields:b}},[t,e,a$1,m]),l=o=>{r?.({id:e},o,t);},S=o=>{c$1?.(o?[...m,e]:m.filter(n=>n!==e));},y=jsxs(U,{sx:{padding:"0!important"},children:[jsxs(u,{flexDirection:"row",justifyContent:"space-between",p:2,gap:1,children:[jsxs(u,{flexDirection:"row",alignItems:"center",gap:1,children:[h&&jsx(V,{checked:i.selected||!1,onChange:(o,n)=>S(n)}),jsx(x,{variant:"body1",fontWeight:600,color:"text.secondary",children:d}),jsx(x,{variant:"body1",fontWeight:600,children:i.idText})]}),jsxs(u,{className:"actions",flexDirection:"row",alignItems:"center",gap:1,children:[jsx(x,{variant:"body2",color:"text.secondary",textTransform:"uppercase",fontSize:14,fontWeight:600,children:i.statusRender}),jsx(u,{onClick:$,onMouseDown:$,children:i.actionRender})]})]}),jsx(a,{}),jsx(u,{flexWrap:"wrap",direction:"row",justifyContent:"space-between",p:2,pb:0,children:i.moreFields.map(o=>o.value!=e&&jsxs(u,{flexBasis:"50%",pb:2,order:o.order,children:[jsx(x,{variant:"body2",color:"text.secondary",children:o.label}),jsx(x,{variant:"body1",children:X(o,e)})]},`data-card-field-${e}-${o.label}`))})]});return r?jsx(M,{onClick:l,children:jsx(W,{component:"div",children:y})}):jsx(M,{children:y})},H=memo(Y);var tt=()=>jsxs(J,{children:[jsxs(u,{justifyContent:"space-between",direction:"row",spacing:2,p:2,children:[jsx(C,{height:24,width:200}),jsx(C,{height:24,width:100})]}),jsxs(u,{justifyContent:"space-between",flexWrap:"wrap",direction:"row",p:2,children:[jsxs(u,{width:"50%",spacing:1,children:[jsx(C,{height:24,width:100}),jsx(C,{sx:{maxWidth:"95%"},height:24,width:230})]}),jsxs(u,{width:"50%",spacing:1,children:[jsx(C,{height:24,width:80}),jsx(C,{sx:{maxWidth:"100%"},height:27,width:250})]})]})]}),D=tt;var G=(t,e)=>{let a=[];t.forEach(r=>{r.field&&r.field!=="actions"&&a.push({...r,label:r.headerName||r.field,value:e[r.field],type:r.type,order:r?.order||0,id:r.field});});let d=t.find(r=>r.field==="actions");return d&&a.push({...d,label:"Actions",value:null,order:0,type:"actions",id:"actions"}),a};var B=styled(u)(({theme:t})=>({border:`1px solid ${t.palette.divider}`,borderRadius:16})),I=styled(u)(()=>({padding:"12px 28px",flexDirection:"row",alignItems:"center",backgroundColor:"#F4F4F4",gap:14,borderRadius:"16px 16px 0 0"}));var at=({children:t,title:e,rows:a,onSelectionRow:d,selectedRows:r,totalItems:h})=>{let m=i=>{d?.(i?a.map(l=>l["@id"]):[]);},c=r?.length||0;return jsxs(B,{children:[jsxs(I,{children:[jsx(V,{onChange:(i,l)=>m(l),checked:c===h,indeterminate:c>0&&c<h}),jsx(x,{variant:"subtitle2",component:"span",color:"grey.600",children:e})]}),jsx(u,{gap:1.5,p:1.5,children:t})]})},j=at;var pt=({title:t,rows:e,columns:a,getRowId:d,onClick:r,loading:h,fetching:m,pagination:c,checkboxSelection:i,onSelectionRow:l,selectedRows:S})=>{let y=m&&jsx(a$1,{sx:{zIndex:1}}),o=useMemo(()=>e.map(n=>({rowId:d(n),row:n,fields:G(a,n)})),[e,a,d]);return h?jsxs(Fragment,{children:[y,jsx(D,{}),jsx(D,{}),jsx(D,{})]}):jsxs(u,{gap:2,component:i?j:"div",...i&&{title:t,rows:e,onSelectionRow:l,selectedRows:S,totalItems:c?.total||e.length},children:[y,e.length===0&&jsx(a$2,{sx:{mb:3},title:"Nenhum registro encontrado"}),o.map(({rowId:n,row:b,fields:p})=>jsx(H,{title:t,id:n,row:b,fields:p,onClick:r,checkboxSelection:i,selectedRows:S,onSelectionRow:l},`data-card-${n}`)),c&&e.length>0&&jsx(u,{direction:"row",justifyContent:"center",children:jsx(it,{page:c?.page,onChange:(n,b)=>{c?.onPageChange(b);},count:c?.total})})]})},Ot=pt;
|
|
20
20
|
|
|
21
|
-
export {
|
|
21
|
+
export { H as DataCard, D as DataCardSkeleton, Ot as default, G as getFieldData };
|
|
22
22
|
//# sourceMappingURL=out.js.map
|
|
23
23
|
//# sourceMappingURL=index.js.map
|