@zydon/common 2.7.78 → 2.7.79

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 (70) hide show
  1. package/dist/chunk-6UWD6IZZ.js +25 -0
  2. package/dist/chunk-6UWD6IZZ.js.map +1 -0
  3. package/dist/chunk-BLVCNBTJ.js +7 -0
  4. package/dist/chunk-BLVCNBTJ.js.map +1 -0
  5. package/dist/{chunk-45OMMG7D.js → chunk-FBN7HCBY.js} +2 -2
  6. package/dist/chunk-FBN7HCBY.js.map +1 -0
  7. package/dist/{chunk-HWYA3EGC.js → chunk-HYJEAKVR.js} +2 -2
  8. package/dist/{chunk-ZGSSTXUO.js → chunk-LQZSZV2W.js} +2 -2
  9. package/dist/{chunk-5LQLLZ5L.js → chunk-PSWJSHGP.js} +2 -2
  10. package/dist/{chunk-IGOVBLZ2.js → chunk-QLGWOE3Q.js} +2 -2
  11. package/dist/chunk-QLGWOE3Q.js.map +1 -0
  12. package/dist/{chunk-YDLDZVF5.js → chunk-QXRGT442.js} +3 -3
  13. package/dist/chunk-QXRGT442.js.map +1 -0
  14. package/dist/{chunk-23NOJPUV.js → chunk-YHKVYGTG.js} +2 -2
  15. package/dist/{chunk-23NOJPUV.js.map → chunk-YHKVYGTG.js.map} +1 -1
  16. package/dist/{chunk-WYJV57WG.js → chunk-YKV6FK6D.js} +2 -2
  17. package/dist/components/Autocomplete/index.js +1 -1
  18. package/dist/components/AutocompleteDetailed/index.js +1 -1
  19. package/dist/components/Avatar/index.d.ts +1 -3
  20. package/dist/components/BulkEditModal/index.js +2 -2
  21. package/dist/components/CopyButton/index.js +2 -2
  22. package/dist/components/DataView/index.d.ts +7 -21
  23. package/dist/components/DataView/index.js +1 -1
  24. package/dist/components/DragButton/index.d.ts +1 -3
  25. package/dist/components/DragContainer/index.d.ts +1 -3
  26. package/dist/components/DynamicDataView/index.d.ts +2 -2
  27. package/dist/components/DynamicDataView/index.js +5 -5
  28. package/dist/components/FieldMentions/index.js +3 -3
  29. package/dist/components/FieldMentions/index.js.map +1 -1
  30. package/dist/components/FileUpload/index.js +2 -2
  31. package/dist/components/FrameSkeleton/index.js +3 -3
  32. package/dist/components/InfoCircle/index.js +1 -1
  33. package/dist/components/ListBundles/index.d.ts +2 -1
  34. package/dist/components/Result/index.d.ts +1 -1
  35. package/dist/components/Tooltip/index.js +1 -1
  36. package/dist/components/carousel/index.d.ts +3 -9
  37. package/dist/components/form/Address/index.js +2 -2
  38. package/dist/components/form/Autocomplete/index.js +2 -2
  39. package/dist/components/form/AutocompleteDetailed/index.js +1 -1
  40. package/dist/components/form/Codes/index.js +1 -1
  41. package/dist/components/form/FileUpload/index.js +2 -2
  42. package/dist/components/form/Webhook/index.js +2 -2
  43. package/dist/hooks/useCollapseSidebarOnMount.js +3 -3
  44. package/dist/hooks/useDatagrid.d.ts +2 -2
  45. package/dist/hooks/useDatagrid.js +2 -2
  46. package/dist/hooks/useDatagrid.js.map +1 -1
  47. package/dist/hooks/useDeepCompareEffect.js +2 -2
  48. package/dist/hooks/useDeepCompareEffect.js.map +1 -1
  49. package/dist/hooks/useEventListener.d.ts +2 -2
  50. package/dist/hooks/useEventListener.js +1 -1
  51. package/dist/hooks/useLocalStorage.js +2 -2
  52. package/dist/hooks/useOnClickOutside.js +1 -1
  53. package/dist/hooks/useScrollOffSetTop.d.ts +1 -1
  54. package/dist/hooks/useScrollOffSetTop.js +1 -1
  55. package/dist/hooks/useScrollOffSetTop.js.map +1 -1
  56. package/dist/hooks/useSnackbar.d.ts +8 -8
  57. package/dist/theme/styles/index.d.ts +203 -116
  58. package/dist/types/sectionProps.d.ts +2 -2
  59. package/package.json +7 -7
  60. package/dist/chunk-45OMMG7D.js.map +0 -1
  61. package/dist/chunk-IGOVBLZ2.js.map +0 -1
  62. package/dist/chunk-L5URMM57.js +0 -7
  63. package/dist/chunk-L5URMM57.js.map +0 -1
  64. package/dist/chunk-UJGDCLUU.js +0 -25
  65. package/dist/chunk-UJGDCLUU.js.map +0 -1
  66. package/dist/chunk-YDLDZVF5.js.map +0 -1
  67. /package/dist/{chunk-HWYA3EGC.js.map → chunk-HYJEAKVR.js.map} +0 -0
  68. /package/dist/{chunk-ZGSSTXUO.js.map → chunk-LQZSZV2W.js.map} +0 -0
  69. /package/dist/{chunk-5LQLLZ5L.js.map → chunk-PSWJSHGP.js.map} +0 -0
  70. /package/dist/{chunk-WYJV57WG.js.map → chunk-YKV6FK6D.js.map} +0 -0
@@ -1,10 +1,10 @@
1
- import { MutableRefObject, ReactNode } from 'react';
1
+ import { RefObject, ReactNode } from 'react';
2
2
  import { StackProps } from '@mui/material/Stack';
3
3
 
4
4
  interface SectionProps {
5
5
  title?: string;
6
6
  id?: string;
7
- ref: MutableRefObject<HTMLElement | null>;
7
+ ref: RefObject<HTMLElement | null>;
8
8
  subTitle?: string;
9
9
  isRequired?: boolean;
10
10
  child: ReactNode;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zydon/common",
3
- "version": "2.7.78",
3
+ "version": "2.7.79",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
@@ -107,9 +107,9 @@
107
107
  "@types/jest-axe": "^3.5.9",
108
108
  "@types/lodash": "^4.17.20",
109
109
  "@types/node": "^20.0.0",
110
- "@types/react": "^18.3.4",
110
+ "@types/react": "^19.2.7",
111
111
  "@types/react-color": "^3.0.13",
112
- "@types/react-dom": "^18.3.0",
112
+ "@types/react-dom": "^19.2.3",
113
113
  "@types/react-window": "^1.8.8",
114
114
  "@typescript-eslint/eslint-plugin": "^6.4.1",
115
115
  "@typescript-eslint/parser": "^6.4.1",
@@ -132,8 +132,8 @@
132
132
  "postcss": "^8.4.41",
133
133
  "postcss-import": "^16.1.0",
134
134
  "prettier": "^3.0.2",
135
- "react": "^18.3.1",
136
- "react-dom": "^18.3.1",
135
+ "react": "^19.2.1",
136
+ "react-dom": "^19.2.1",
137
137
  "react-hook-form": "^7.53.0",
138
138
  "ts-jest": "^29.2.5",
139
139
  "tsup": "6.6.0",
@@ -175,8 +175,8 @@
175
175
  "@mui/material": "^5.16.7",
176
176
  "@mui/x-data-grid-premium": "^7.14.0",
177
177
  "@mui/x-date-pickers-pro": "^7.14.0",
178
- "react": "^18.3.1",
179
- "react-dom": "^18.3.1",
178
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
179
+ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0",
180
180
  "react-hook-form": "^7.53.0"
181
181
  },
182
182
  "jest-junit": {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Tooltip/index.tsx"],"names":["cloneElement","MuiTooltip","jsx","Tooltip","children","props","childElement","Tooltip_default"],"mappings":"AAAA,OAAS,gBAAAA,MAAkC,QAC3C,OAAOC,MAAkC,wBAMrC,cAAAC,MAAA,oBAJJ,IAAMC,EAAU,CAAC,CAAE,SAAAC,EAAU,GAAGC,CAAM,IAAoB,CACxD,IAAMC,EAAeF,EAErB,OACEF,EAACD,EAAA,CAAY,GAAGI,EACb,SAAAL,EAAaM,EAAc,CAC1B,MAAO,CAAE,WAAY,OAAQ,GAAGA,EAAa,MAAM,KAAM,CAC3D,CAAC,EACH,CAEJ,EAEOC,EAAQJ","sourcesContent":["import { cloneElement, ReactElement } from 'react';\nimport MuiTooltip, { TooltipProps } from '@mui/material/Tooltip';\n\nconst Tooltip = ({ children, ...props }: TooltipProps) => {\n const childElement = children as ReactElement;\n\n return (\n <MuiTooltip {...props}>\n {cloneElement(childElement, {\n style: { userSelect: 'none', ...childElement.props.style },\n })}\n </MuiTooltip>\n );\n};\n\nexport default Tooltip;\n"]}
@@ -1 +0,0 @@
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":"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","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"]}
@@ -1,7 +0,0 @@
1
- import { useRef, useEffect, useLayoutEffect } from 'react';
2
-
3
- var a=typeof window<"u"?useLayoutEffect:useEffect;function u(n,t,o,d){let i=useRef(t);a(()=>{i.current=t;},[t]),useEffect(()=>{let e=o?.current||window;if(!(e&&e.addEventListener))return;let v=E=>i.current(E);return e.addEventListener(n,v,d),()=>{e.removeEventListener(n,v);}},[n,o,d]);}var L=u;
4
-
5
- export { L as a };
6
- //# sourceMappingURL=out.js.map
7
- //# sourceMappingURL=chunk-L5URMM57.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/hooks/useEventListener.ts"],"names":["useEffect","useLayoutEffect","useRef","useIsomorphicLayoutEffect","useEventListener","eventName","handler","element","options","savedHandler","targetElement","eventListener","event","useEventListener_default"],"mappings":"AAAA,OAAoB,aAAAA,EAAW,mBAAAC,EAAiB,UAAAC,MAAc,QAE9D,IAAMC,EACJ,OAAO,OAAW,IAAcF,EAAkBD,EA6BpD,SAASI,EAKPC,EACAC,EAGAC,EACAC,EACA,CAEA,IAAMC,EAAeP,EAAOI,CAAO,EAEnCH,EAA0B,IAAM,CAC9BM,EAAa,QAAUH,CACzB,EAAG,CAACA,CAAO,CAAC,EAEZN,EAAU,IAAM,CAEd,IAAMU,EAA4BH,GAAS,SAAW,OACtD,GAAI,EAAEG,GAAiBA,EAAc,kBACnC,OAIF,IAAMC,EAAgCC,GAASH,EAAa,QAAQG,CAAK,EAEzE,OAAAF,EAAc,iBAAiBL,EAAWM,EAAeH,CAAO,EAGzD,IAAM,CACXE,EAAc,oBAAoBL,EAAWM,CAAa,CAC5D,CACF,EAAG,CAACN,EAAWE,EAASC,CAAO,CAAC,CAClC,CAEA,IAAOK,EAAQT","sourcesContent":["import { RefObject, useEffect, useLayoutEffect, useRef } from 'react';\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Window Event based useEventListener interface\nfunction useEventListener<K extends keyof WindowEventMap>(\n eventName: K,\n handler: (event: WindowEventMap[K]) => void,\n element?: undefined,\n options?: boolean | AddEventListenerOptions,\n): void;\n\n// Element Event based useEventListener interface\nfunction useEventListener<\n K extends keyof HTMLElementEventMap,\n T extends HTMLElement = HTMLDivElement,\n>(\n eventName: K,\n handler: (event: HTMLElementEventMap[K]) => void,\n element: RefObject<T>,\n options?: boolean | AddEventListenerOptions,\n): void;\n\n// Document Event based useEventListener interface\nfunction useEventListener<K extends keyof DocumentEventMap>(\n eventName: K,\n handler: (event: DocumentEventMap[K]) => void,\n element: RefObject<Document>,\n options?: boolean | AddEventListenerOptions,\n): void;\n\nfunction useEventListener<\n KW extends keyof WindowEventMap,\n KH extends keyof HTMLElementEventMap,\n T extends HTMLElement | void = void,\n>(\n eventName: KW | KH,\n handler: (\n event: WindowEventMap[KW] | HTMLElementEventMap[KH] | Event,\n ) => void,\n element?: RefObject<T>,\n options?: boolean | AddEventListenerOptions,\n) {\n // Create a ref that stores handler\n const savedHandler = useRef(handler);\n\n useIsomorphicLayoutEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n // Define the listening target\n const targetElement: T | Window = element?.current || window;\n if (!(targetElement && targetElement.addEventListener)) {\n return;\n }\n\n // Create event listener that calls handler function stored in ref\n const eventListener: typeof handler = event => savedHandler.current(event);\n\n targetElement.addEventListener(eventName, eventListener, options);\n\n // Remove event listener on cleanup\n return () => {\n targetElement.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element, options]);\n}\n\nexport default useEventListener;\n"]}
@@ -1,25 +0,0 @@
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
@@ -1 +0,0 @@
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"]}