@tecsinapse/react-web-kit 2.1.0 → 2.1.1

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 (65) hide show
  1. package/dist/cjs/components/atoms/Accordion/Accordion.js +4 -3
  2. package/dist/cjs/components/atoms/Accordion/Accordion.js.map +1 -1
  3. package/dist/cjs/components/atoms/Dropdown/index.d.ts +1 -0
  4. package/dist/cjs/components/atoms/Dropdown/index.js +3 -2
  5. package/dist/cjs/components/atoms/Dropdown/index.js.map +1 -1
  6. package/dist/cjs/components/atoms/Modal/Modal.js +3 -1
  7. package/dist/cjs/components/atoms/Modal/Modal.js.map +1 -1
  8. package/dist/cjs/components/atoms/Overlay/Overlay.js +4 -2
  9. package/dist/cjs/components/atoms/Overlay/Overlay.js.map +1 -1
  10. package/dist/cjs/components/atoms/Switch/Switch.js +2 -1
  11. package/dist/cjs/components/atoms/Switch/Switch.js.map +1 -1
  12. package/dist/cjs/components/atoms/Tooltip/Tooltip.d.ts +2 -0
  13. package/dist/cjs/components/atoms/Tooltip/Tooltip.js +2 -0
  14. package/dist/cjs/components/atoms/Tooltip/Tooltip.js.map +1 -1
  15. package/dist/cjs/components/atoms/Tooltip/styled.js +4 -1
  16. package/dist/cjs/components/atoms/Tooltip/styled.js.map +1 -1
  17. package/dist/cjs/components/molecules/DatePicker/DatePicker.js +16 -1
  18. package/dist/cjs/components/molecules/DatePicker/DatePicker.js.map +1 -1
  19. package/dist/cjs/components/molecules/Drawer/Drawer.js +3 -1
  20. package/dist/cjs/components/molecules/Drawer/Drawer.js.map +1 -1
  21. package/dist/cjs/components/molecules/Menubar/Menubar.js +38 -22
  22. package/dist/cjs/components/molecules/Menubar/Menubar.js.map +1 -1
  23. package/dist/cjs/components/molecules/Select/Dropdown/Dropdown.d.ts +8 -3
  24. package/dist/cjs/components/molecules/Select/Dropdown/Dropdown.js +5 -3
  25. package/dist/cjs/components/molecules/Select/Dropdown/Dropdown.js.map +1 -1
  26. package/dist/cjs/components/molecules/Select/Select.js +3 -1
  27. package/dist/cjs/components/molecules/Select/Select.js.map +1 -1
  28. package/dist/cjs/components/molecules/Select/functions.d.ts +1 -1
  29. package/dist/cjs/components/molecules/Select/functions.js.map +1 -1
  30. package/dist/cjs/hooks/useClickAwayListener.d.ts +1 -1
  31. package/dist/cjs/hooks/useClickAwayListener.js +3 -2
  32. package/dist/cjs/hooks/useClickAwayListener.js.map +1 -1
  33. package/dist/esm/components/atoms/Accordion/Accordion.js +4 -3
  34. package/dist/esm/components/atoms/Accordion/Accordion.js.map +1 -1
  35. package/dist/esm/components/atoms/Dropdown/index.d.ts +1 -0
  36. package/dist/esm/components/atoms/Dropdown/index.js +3 -2
  37. package/dist/esm/components/atoms/Dropdown/index.js.map +1 -1
  38. package/dist/esm/components/atoms/Modal/Modal.js +4 -2
  39. package/dist/esm/components/atoms/Modal/Modal.js.map +1 -1
  40. package/dist/esm/components/atoms/Overlay/Overlay.js +5 -3
  41. package/dist/esm/components/atoms/Overlay/Overlay.js.map +1 -1
  42. package/dist/esm/components/atoms/Switch/Switch.js +3 -2
  43. package/dist/esm/components/atoms/Switch/Switch.js.map +1 -1
  44. package/dist/esm/components/atoms/Tooltip/Tooltip.d.ts +2 -0
  45. package/dist/esm/components/atoms/Tooltip/Tooltip.js +2 -0
  46. package/dist/esm/components/atoms/Tooltip/Tooltip.js.map +1 -1
  47. package/dist/esm/components/atoms/Tooltip/styled.js +4 -1
  48. package/dist/esm/components/atoms/Tooltip/styled.js.map +1 -1
  49. package/dist/esm/components/molecules/DatePicker/DatePicker.js +16 -1
  50. package/dist/esm/components/molecules/DatePicker/DatePicker.js.map +1 -1
  51. package/dist/esm/components/molecules/Drawer/Drawer.js +4 -2
  52. package/dist/esm/components/molecules/Drawer/Drawer.js.map +1 -1
  53. package/dist/esm/components/molecules/Menubar/Menubar.js +38 -22
  54. package/dist/esm/components/molecules/Menubar/Menubar.js.map +1 -1
  55. package/dist/esm/components/molecules/Select/Dropdown/Dropdown.d.ts +8 -3
  56. package/dist/esm/components/molecules/Select/Dropdown/Dropdown.js +5 -3
  57. package/dist/esm/components/molecules/Select/Dropdown/Dropdown.js.map +1 -1
  58. package/dist/esm/components/molecules/Select/Select.js +3 -1
  59. package/dist/esm/components/molecules/Select/Select.js.map +1 -1
  60. package/dist/esm/components/molecules/Select/functions.d.ts +1 -1
  61. package/dist/esm/components/molecules/Select/functions.js.map +1 -1
  62. package/dist/esm/hooks/useClickAwayListener.d.ts +1 -1
  63. package/dist/esm/hooks/useClickAwayListener.js +3 -2
  64. package/dist/esm/hooks/useClickAwayListener.js.map +1 -1
  65. package/package.json +3 -3
@@ -7,7 +7,7 @@ var styled = require('./styled.js');
7
7
  var SearchInput = require('./components/SearchInput.js');
8
8
 
9
9
  const fullWidth = { width: "100%" };
10
- const Dropdown = ({
10
+ const Component = ({
11
11
  options,
12
12
  onSearch,
13
13
  type,
@@ -21,7 +21,7 @@ const Dropdown = ({
21
21
  anchor,
22
22
  selectAllLabel,
23
23
  searchBarPlaceholder
24
- }) => {
24
+ }, ref) => {
25
25
  const [searchArg, setSearchArg] = reactCore.useDebouncedState("", onSearch);
26
26
  const lengthOptions = React.useMemo(() => options.length, [options]);
27
27
  const [checkedAll, setCheckedAll] = React.useState(
@@ -51,7 +51,8 @@ const Dropdown = ({
51
51
  {
52
52
  lengthOptions,
53
53
  style,
54
- anchor
54
+ anchor,
55
+ ref
55
56
  },
56
57
  type === "multi" && /* @__PURE__ */ React.createElement(
57
58
  styled.StyledContainerCheckAll,
@@ -97,6 +98,7 @@ const Dropdown = ({
97
98
  )))
98
99
  );
99
100
  };
101
+ const Dropdown = React.forwardRef(Component);
100
102
 
101
103
  module.exports = Dropdown;
102
104
  //# sourceMappingURL=Dropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","sources":["../../../../../../src/components/molecules/Select/Dropdown/Dropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { Checkbox, Text, useDebouncedState } from '@tecsinapse/react-core';\nimport { ItemSelect } from '../SelectItem';\nimport { SelectProps } from '../Select';\nimport {\n SearchBarContainer,\n StyledContainerCheckAll,\n StyledContainerDropdown,\n StyledContainerTextLabel,\n StyledSpan,\n OptionsContainer,\n PaddedContainer,\n} from './styled';\nimport { SearchInput } from './components';\n\nconst fullWidth = { width: '100%' };\n\nconst Dropdown = <Data, Type extends 'single' | 'multi'>({\n options,\n onSearch,\n type,\n hideSearchBar,\n onSelect,\n value,\n keyExtractor,\n labelExtractor,\n setDropDownVisible,\n style,\n anchor,\n selectAllLabel,\n searchBarPlaceholder,\n}: SelectProps<Data, Type> & {\n setDropDownVisible: (t: boolean) => void;\n}): JSX.Element => {\n const [searchArg, setSearchArg] = useDebouncedState<string>('', onSearch);\n const lengthOptions = React.useMemo(() => options.length, [options]);\n\n const [checkedAll, setCheckedAll] = React.useState<boolean>(\n type === 'multi' && (value as Data[])?.length === lengthOptions\n );\n\n React.useEffect(() => {\n if (type === 'multi') {\n lengthOptions === (value as Data[])?.length\n ? setCheckedAll(true)\n : setCheckedAll(false);\n }\n }, [value, type, lengthOptions]);\n\n const onClickCheckAll = React.useCallback(() => {\n const items = (options as Data[]).map(option => option);\n let aux;\n setCheckedAll(prev => {\n aux = !prev;\n return !prev;\n });\n type OnSelectArg = Parameters<typeof onSelect>[0];\n const auxArray: Data[] = [];\n !aux ? onSelect(auxArray as OnSelectArg) : onSelect(items as OnSelectArg);\n }, [options, setCheckedAll, onSelect]);\n\n const onChange = React.useCallback(\n text => setSearchArg(text),\n [setSearchArg]\n );\n\n return (\n <StyledContainerDropdown\n lengthOptions={lengthOptions}\n style={style}\n anchor={anchor}\n >\n {type === 'multi' && (\n <StyledContainerCheckAll\n onClick={hideSearchBar ? onClickCheckAll : undefined}\n >\n <Checkbox checked={checkedAll} onChange={onClickCheckAll} />\n {!hideSearchBar ? (\n <SearchBarContainer>\n <SearchInput\n searchArg={searchArg}\n onChange={onChange}\n fullWidth={fullWidth}\n placeholder={searchBarPlaceholder}\n />\n </SearchBarContainer>\n ) : (\n <StyledContainerTextLabel>\n <Text fontWeight=\"bold\">\n <StyledSpan>{selectAllLabel}</StyledSpan>\n </Text>\n </StyledContainerTextLabel>\n )}\n </StyledContainerCheckAll>\n )}\n {type === 'single' && !hideSearchBar && (\n <PaddedContainer>\n <SearchInput\n searchArg={searchArg}\n onChange={onChange}\n fullWidth={fullWidth}\n placeholder={searchBarPlaceholder}\n />\n </PaddedContainer>\n )}\n <OptionsContainer lengthOptions={options.length}>\n {(options as Data[]).map((item, index) => (\n <ItemSelect\n type={type}\n key={keyExtractor(item)}\n item={item}\n onSelect={onSelect}\n value={value}\n keyExtractor={keyExtractor}\n index={index}\n labelExtractor={labelExtractor}\n setDropDownVisible={setDropDownVisible}\n checkedAll={checkedAll}\n setCheckedAll={setCheckedAll}\n lenghtOptions={lengthOptions}\n />\n ))}\n </OptionsContainer>\n </StyledContainerDropdown>\n );\n};\n\nexport default Dropdown;\n"],"names":["useDebouncedState","StyledContainerDropdown","StyledContainerCheckAll","Checkbox","SearchBarContainer","StyledContainerTextLabel","Text","StyledSpan","PaddedContainer","OptionsContainer","ItemSelect"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown.js","sources":["../../../../../../src/components/molecules/Select/Dropdown/Dropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { Checkbox, Text, useDebouncedState } from '@tecsinapse/react-core';\nimport { ItemSelect } from '../SelectItem';\nimport { SelectProps } from '../Select';\nimport {\n SearchBarContainer,\n StyledContainerCheckAll,\n StyledContainerDropdown,\n StyledContainerTextLabel,\n StyledSpan,\n OptionsContainer,\n PaddedContainer,\n} from './styled';\nimport { SearchInput } from './components';\n\nconst fullWidth = { width: '100%' };\n\nconst Component = <Data, Type extends 'single' | 'multi'>(\n {\n options,\n onSearch,\n type,\n hideSearchBar,\n onSelect,\n value,\n keyExtractor,\n labelExtractor,\n setDropDownVisible,\n style,\n anchor,\n selectAllLabel,\n searchBarPlaceholder,\n }: SelectProps<Data, Type> & {\n setDropDownVisible: (t: boolean) => void;\n },\n ref: React.ForwardedRef<HTMLDivElement>\n): JSX.Element => {\n const [searchArg, setSearchArg] = useDebouncedState<string>('', onSearch);\n const lengthOptions = React.useMemo(() => options.length, [options]);\n\n const [checkedAll, setCheckedAll] = React.useState<boolean>(\n type === 'multi' && (value as Data[])?.length === lengthOptions\n );\n\n React.useEffect(() => {\n if (type === 'multi') {\n lengthOptions === (value as Data[])?.length\n ? setCheckedAll(true)\n : setCheckedAll(false);\n }\n }, [value, type, lengthOptions]);\n\n const onClickCheckAll = React.useCallback(() => {\n const items = (options as Data[]).map(option => option);\n let aux;\n setCheckedAll(prev => {\n aux = !prev;\n return !prev;\n });\n type OnSelectArg = Parameters<typeof onSelect>[0];\n const auxArray: Data[] = [];\n !aux ? onSelect(auxArray as OnSelectArg) : onSelect(items as OnSelectArg);\n }, [options, setCheckedAll, onSelect]);\n\n const onChange = React.useCallback(\n text => setSearchArg(text),\n [setSearchArg]\n );\n\n return (\n <StyledContainerDropdown\n lengthOptions={lengthOptions}\n style={style}\n anchor={anchor}\n ref={ref}\n >\n {type === 'multi' && (\n <StyledContainerCheckAll\n onClick={hideSearchBar ? onClickCheckAll : undefined}\n >\n <Checkbox checked={checkedAll} onChange={onClickCheckAll} />\n {!hideSearchBar ? (\n <SearchBarContainer>\n <SearchInput\n searchArg={searchArg}\n onChange={onChange}\n fullWidth={fullWidth}\n placeholder={searchBarPlaceholder}\n />\n </SearchBarContainer>\n ) : (\n <StyledContainerTextLabel>\n <Text fontWeight=\"bold\">\n <StyledSpan>{selectAllLabel}</StyledSpan>\n </Text>\n </StyledContainerTextLabel>\n )}\n </StyledContainerCheckAll>\n )}\n {type === 'single' && !hideSearchBar && (\n <PaddedContainer>\n <SearchInput\n searchArg={searchArg}\n onChange={onChange}\n fullWidth={fullWidth}\n placeholder={searchBarPlaceholder}\n />\n </PaddedContainer>\n )}\n <OptionsContainer lengthOptions={options.length}>\n {(options as Data[]).map((item, index) => (\n <ItemSelect\n type={type}\n key={keyExtractor(item)}\n item={item}\n onSelect={onSelect}\n value={value}\n keyExtractor={keyExtractor}\n index={index}\n labelExtractor={labelExtractor}\n setDropDownVisible={setDropDownVisible}\n checkedAll={checkedAll}\n setCheckedAll={setCheckedAll}\n lenghtOptions={lengthOptions}\n />\n ))}\n </OptionsContainer>\n </StyledContainerDropdown>\n );\n};\nconst Dropdown = React.forwardRef(Component) as <\n Data,\n Type extends 'single' | 'multi'\n>(\n props: SelectProps<Data, Type> & {\n setDropDownVisible: (t: boolean) => void;\n } & { ref?: React.ForwardedRef<HTMLDivElement> }\n) => ReturnType<typeof Component>;\n\nexport default Dropdown;\n"],"names":["useDebouncedState","StyledContainerDropdown","StyledContainerCheckAll","Checkbox","SearchBarContainer","StyledContainerTextLabel","Text","StyledSpan","PaddedContainer","OptionsContainer","ItemSelect"],"mappings":"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"}
@@ -30,6 +30,7 @@ const Select = ({
30
30
  const [dropDownVisible, setDropDownVisible] = React.useState(false);
31
31
  const [selectOptions, setSelectOptions] = React.useState([]);
32
32
  const refDropDown = React.useRef(null);
33
+ const transitionRef = React.useRef(null);
33
34
  useClickAwayListener.useClickAwayListener(refDropDown, setDropDownVisible);
34
35
  React.useEffect(() => {
35
36
  if (typeof options !== "function") {
@@ -107,9 +108,10 @@ const Select = ({
107
108
  rightComponent: styled.RightComponent
108
109
  },
109
110
  /* @__PURE__ */ React.createElement(reactCore.Text, { ...displayTextProps, fontWeight: "bold" }, displayValue)
110
- )), /* @__PURE__ */ React.createElement(reactTransitionGroup.Transition, { in: dropDownVisible, timeout: 300 }, (state) => /* @__PURE__ */ React.createElement(
111
+ )), /* @__PURE__ */ React.createElement(reactTransitionGroup.Transition, { in: dropDownVisible, timeout: 300, nodeRef: transitionRef }, (state) => /* @__PURE__ */ React.createElement(
111
112
  Dropdown,
112
113
  {
114
+ ref: transitionRef,
113
115
  options: selectOptions ?? [],
114
116
  onSelect,
115
117
  value,
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../../../src/components/molecules/Select/Select.tsx"],"sourcesContent":["import {\n PressableInputContainer,\n Text,\n TextProps,\n} from '@tecsinapse/react-core';\nimport React, { useEffect, useState } from 'react';\nimport { Transition } from 'react-transition-group';\nimport { useClickAwayListener } from '../../../hooks';\nimport { defaultStyles, transition } from './animations';\nimport { Dropdown } from './Dropdown';\nimport { getDisplayValue } from './functions';\nimport {\n RightComponent,\n StyledContainer,\n StyledInputContainer,\n} from './styled';\n\nexport interface SelectProps<Data, Type extends 'single' | 'multi'>\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n options: ((searchInput?: string) => Promise<Data[]>) | Data[];\n onSelect: (\n option: Type extends 'single' ? Data | undefined : Data[]\n ) => never | void;\n value: Type extends 'single' ? Data | undefined : Data[];\n type: Type;\n keyExtractor: (t: Data, index?: number) => string;\n labelExtractor: (t: Data) => string;\n placeholder?: string;\n onSearch?:\n | ((searchArg: string) => void)\n | ((searchInput?: string) => Promise<Data[]>)\n | never;\n searchBarPlaceholder?: string;\n hideSearchBar?: boolean;\n selectAllLabel?: string;\n disabled?: boolean;\n label?: string;\n anchor?: 'top' | 'bottom';\n displayTextProps?: TextProps;\n}\n\n/** NOTE: For better performance, you should memoize options and handlers */\nconst Select = <Data, Type extends 'single' | 'multi'>({\n value,\n options,\n keyExtractor,\n onSelect,\n type,\n labelExtractor,\n placeholder,\n onSearch,\n searchBarPlaceholder = 'Busque a opção desejada',\n hideSearchBar = true,\n label,\n disabled = false,\n anchor = 'bottom',\n displayTextProps,\n selectAllLabel = 'Selecionar todos',\n ...rest\n}: SelectProps<Data, Type>): JSX.Element => {\n const [dropDownVisible, setDropDownVisible] = React.useState<boolean>(false);\n const [selectOptions, setSelectOptions] = useState<Data[]>([]);\n const refDropDown = React.useRef(null);\n useClickAwayListener(refDropDown, setDropDownVisible);\n\n useEffect(() => {\n if (typeof options !== 'function') {\n setSelectOptions(options);\n }\n }, [options]);\n\n // TODO: Add Skeleton to modal height when loading is true\n\n const onlyLabel = label && !placeholder;\n const hasValue =\n type === 'single' ? !!value : ((value || []) as []).length > 0;\n const _placeholder = onlyLabel ? label : placeholder;\n const _label = hasValue ? label : undefined;\n\n const displayValue = getDisplayValue<Data>(\n type,\n value,\n selectOptions,\n _placeholder,\n keyExtractor,\n labelExtractor\n );\n\n const handleLazyFocus = React.useCallback(async () => {\n if (!dropDownVisible && typeof options === 'function') {\n try {\n const result = await options();\n if (result) {\n setSelectOptions(result ?? []);\n }\n } catch (e) {\n // TODO: Catch error\n }\n }\n }, [options, setSelectOptions, dropDownVisible]);\n\n const handleOnSearch = React.useCallback(\n async (searchInput: string | undefined) => {\n if (searchInput !== undefined && onSearch && dropDownVisible) {\n try {\n //TODO: Remove code duplicated below (Select in react-native-kit)\n const result = await onSearch(searchInput);\n if (result) {\n if (type === 'single') {\n if (\n value &&\n !result.find(\n v => keyExtractor(value as Data) === keyExtractor(v)\n )\n ) {\n setSelectOptions([value as Data, ...result]);\n } else setSelectOptions(result);\n } else {\n if ((value as Data[]).length > 0) {\n const selectedValues =\n (value as Data[]).filter(\n v =>\n !result.find(\n current =>\n keyExtractor(v as Data) === keyExtractor(current)\n )\n ) || [];\n setSelectOptions([...selectedValues, ...result]);\n } else {\n setSelectOptions(result);\n }\n }\n }\n } catch (e) {\n // TODO: Catch error\n }\n }\n },\n [onSearch, value, keyExtractor, dropDownVisible, setSelectOptions]\n );\n\n const handlePressInput = async () => {\n await handleLazyFocus();\n };\n\n const onPress = React.useCallback(\n () => setDropDownVisible(prev => !prev),\n [setDropDownVisible]\n );\n //TODO: when component is wrapper by GridITem and Text of label has prop \"numberOfLines={1}\", this component incresing witht based on options selects, breaking layout of Grid, we must fix this problem.\n return (\n <StyledContainer ref={refDropDown} {...rest}>\n <StyledInputContainer onFocus={handlePressInput}>\n <PressableInputContainer\n label={_label}\n onPress={onPress}\n disabled={disabled}\n rightComponent={RightComponent}\n >\n <Text {...displayTextProps} fontWeight={'bold'}>\n {displayValue}\n </Text>\n </PressableInputContainer>\n </StyledInputContainer>\n <Transition in={dropDownVisible} timeout={300}>\n {state => (\n <Dropdown\n options={selectOptions ?? []}\n onSelect={onSelect}\n value={value}\n type={type}\n keyExtractor={keyExtractor}\n labelExtractor={labelExtractor}\n hideSearchBar={hideSearchBar}\n searchBarPlaceholder={searchBarPlaceholder}\n onSearch={handleOnSearch}\n style={{ ...defaultStyles, ...transition[anchor][state] }}\n setDropDownVisible={setDropDownVisible}\n anchor={anchor}\n selectAllLabel={selectAllLabel}\n />\n )}\n </Transition>\n </StyledContainer>\n );\n};\n\nexport default Select;\n"],"names":["useState","useClickAwayListener","useEffect","getDisplayValue","StyledContainer","StyledInputContainer","PressableInputContainer","RightComponent","Text","Transition","defaultStyles","transition"],"mappings":";;;;;;;;;;;AA0CA,MAAM,SAAS,CAAwC;AAAA,EACrD,KAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,oBAAuB,GAAA,+BAAA;AAAA,EACvB,aAAgB,GAAA,IAAA;AAAA,EAChB,KAAA;AAAA,EACA,QAAW,GAAA,KAAA;AAAA,EACX,MAAS,GAAA,QAAA;AAAA,EACT,gBAAA;AAAA,EACA,cAAiB,GAAA,kBAAA;AAAA,EACjB,GAAG,IAAA;AACL,CAA4C,KAAA;AAC1C,EAAA,MAAM,CAAC,eAAiB,EAAA,kBAAkB,CAAI,GAAA,KAAA,CAAM,SAAkB,KAAK,CAAA,CAAA;AAC3E,EAAA,MAAM,CAAC,aAAe,EAAA,gBAAgB,CAAI,GAAAA,cAAA,CAAiB,EAAE,CAAA,CAAA;AAC7D,EAAM,MAAA,WAAA,GAAc,KAAM,CAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AACrC,EAAAC,yCAAA,CAAqB,aAAa,kBAAkB,CAAA,CAAA;AAEpD,EAAAC,eAAA,CAAU,MAAM;AACd,IAAI,IAAA,OAAO,YAAY,UAAY,EAAA;AACjC,MAAA,gBAAA,CAAiB,OAAO,CAAA,CAAA;AAAA,KAC1B;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA,CAAA;AAIZ,EAAM,MAAA,SAAA,GAAY,SAAS,CAAC,WAAA,CAAA;AAC5B,EAAM,MAAA,QAAA,GACJ,SAAS,QAAW,GAAA,CAAC,CAAC,KAAU,GAAA,CAAA,KAAA,IAAS,EAAC,EAAU,MAAS,GAAA,CAAA,CAAA;AAC/D,EAAM,MAAA,YAAA,GAAe,YAAY,KAAQ,GAAA,WAAA,CAAA;AACzC,EAAM,MAAA,MAAA,GAAS,WAAW,KAAQ,GAAA,KAAA,CAAA,CAAA;AAElC,EAAA,MAAM,YAAe,GAAAC,yBAAA;AAAA,IACnB,IAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,eAAA,GAAkB,KAAM,CAAA,WAAA,CAAY,YAAY;AACpD,IAAA,IAAI,CAAC,eAAA,IAAmB,OAAO,OAAA,KAAY,UAAY,EAAA;AACrD,MAAI,IAAA;AACF,QAAM,MAAA,MAAA,GAAS,MAAM,OAAQ,EAAA,CAAA;AAC7B,QAAA,IAAI,MAAQ,EAAA;AACV,UAAiB,gBAAA,CAAA,MAAA,IAAU,EAAE,CAAA,CAAA;AAAA,SAC/B;AAAA,eACO,CAAG,EAAA;AAAA,OAEZ;AAAA,KACF;AAAA,GACC,EAAA,CAAC,OAAS,EAAA,gBAAA,EAAkB,eAAe,CAAC,CAAA,CAAA;AAE/C,EAAA,MAAM,iBAAiB,KAAM,CAAA,WAAA;AAAA,IAC3B,OAAO,WAAoC,KAAA;AACzC,MAAI,IAAA,WAAA,KAAgB,KAAa,CAAA,IAAA,QAAA,IAAY,eAAiB,EAAA;AAC5D,QAAI,IAAA;AAEF,UAAM,MAAA,MAAA,GAAS,MAAM,QAAA,CAAS,WAAW,CAAA,CAAA;AACzC,UAAA,IAAI,MAAQ,EAAA;AACV,YAAA,IAAI,SAAS,QAAU,EAAA;AACrB,cACE,IAAA,KAAA,IACA,CAAC,MAAO,CAAA,IAAA;AAAA,gBACN,CAAK,CAAA,KAAA,YAAA,CAAa,KAAa,CAAA,KAAM,aAAa,CAAC,CAAA;AAAA,eAErD,EAAA;AACA,gBAAA,gBAAA,CAAiB,CAAC,KAAA,EAAe,GAAG,MAAM,CAAC,CAAA,CAAA;AAAA,eAC7C;AAAO,gBAAA,gBAAA,CAAiB,MAAM,CAAA,CAAA;AAAA,aACzB,MAAA;AACL,cAAK,IAAA,KAAA,CAAiB,SAAS,CAAG,EAAA;AAChC,gBAAA,MAAM,iBACH,KAAiB,CAAA,MAAA;AAAA,kBAChB,CAAA,CAAA,KACE,CAAC,MAAO,CAAA,IAAA;AAAA,oBACN,CACE,OAAA,KAAA,YAAA,CAAa,CAAS,CAAA,KAAM,aAAa,OAAO,CAAA;AAAA,mBACpD;AAAA,qBACC,EAAC,CAAA;AACR,gBAAA,gBAAA,CAAiB,CAAC,GAAG,cAAgB,EAAA,GAAG,MAAM,CAAC,CAAA,CAAA;AAAA,eAC1C,MAAA;AACL,gBAAA,gBAAA,CAAiB,MAAM,CAAA,CAAA;AAAA,eACzB;AAAA,aACF;AAAA,WACF;AAAA,iBACO,CAAG,EAAA;AAAA,SAEZ;AAAA,OACF;AAAA,KACF;AAAA,IACA,CAAC,QAAA,EAAU,KAAO,EAAA,YAAA,EAAc,iBAAiB,gBAAgB,CAAA;AAAA,GACnE,CAAA;AAEA,EAAA,MAAM,mBAAmB,YAAY;AACnC,IAAA,MAAM,eAAgB,EAAA,CAAA;AAAA,GACxB,CAAA;AAEA,EAAA,MAAM,UAAU,KAAM,CAAA,WAAA;AAAA,IACpB,MAAM,kBAAA,CAAmB,CAAQ,IAAA,KAAA,CAAC,IAAI,CAAA;AAAA,IACtC,CAAC,kBAAkB,CAAA;AAAA,GACrB,CAAA;AAEA,EACE,uBAAA,KAAA,CAAA,aAAA,CAACC,0BAAgB,GAAK,EAAA,WAAA,EAAc,GAAG,IACrC,EAAA,kBAAA,KAAA,CAAA,aAAA,CAACC,2BAAqB,EAAA,EAAA,OAAA,EAAS,gBAC7B,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAACC,iCAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA,MAAA;AAAA,MACP,OAAA;AAAA,MACA,QAAA;AAAA,MACA,cAAgB,EAAAC,qBAAA;AAAA,KAAA;AAAA,wCAEfC,cAAM,EAAA,EAAA,GAAG,gBAAkB,EAAA,UAAA,EAAY,UACrC,YACH,CAAA;AAAA,GAEJ,mBACC,KAAA,CAAA,aAAA,CAAAC,+BAAA,EAAA,EAAW,IAAI,eAAiB,EAAA,OAAA,EAAS,OACvC,CACC,KAAA,qBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,iBAAiB,EAAC;AAAA,MAC3B,QAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA;AAAA,MACA,YAAA;AAAA,MACA,cAAA;AAAA,MACA,aAAA;AAAA,MACA,oBAAA;AAAA,MACA,QAAU,EAAA,cAAA;AAAA,MACV,KAAA,EAAO,EAAE,GAAGC,wBAAA,EAAe,GAAGC,qBAAW,CAAA,MAAM,CAAE,CAAA,KAAK,CAAE,EAAA;AAAA,MACxD,kBAAA;AAAA,MACA,MAAA;AAAA,MACA,cAAA;AAAA,KAAA;AAAA,GAGN,CACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"Select.js","sources":["../../../../../src/components/molecules/Select/Select.tsx"],"sourcesContent":["import {\n PressableInputContainer,\n Text,\n TextProps,\n} from '@tecsinapse/react-core';\nimport React, { useEffect, useState } from 'react';\nimport { Transition } from 'react-transition-group';\nimport { useClickAwayListener } from '../../../hooks';\nimport { defaultStyles, transition } from './animations';\nimport { Dropdown } from './Dropdown';\nimport { getDisplayValue } from './functions';\nimport {\n RightComponent,\n StyledContainer,\n StyledInputContainer,\n} from './styled';\n\nexport interface SelectProps<Data, Type extends 'single' | 'multi'>\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n options: ((searchInput?: string) => Promise<Data[]>) | Data[];\n onSelect: (\n option: Type extends 'single' ? Data | undefined : Data[]\n ) => never | void;\n value: Type extends 'single' ? Data | undefined : Data[];\n type: Type;\n keyExtractor: (t: Data, index?: number) => string;\n labelExtractor: (t: Data) => string;\n placeholder?: string;\n onSearch?:\n | ((searchArg: string) => void)\n | ((searchInput?: string) => Promise<Data[]>)\n | never;\n searchBarPlaceholder?: string;\n hideSearchBar?: boolean;\n selectAllLabel?: string;\n disabled?: boolean;\n label?: string;\n anchor?: 'top' | 'bottom';\n displayTextProps?: TextProps;\n}\n\n/** NOTE: For better performance, you should memoize options and handlers */\nconst Select = <Data, Type extends 'single' | 'multi'>({\n value,\n options,\n keyExtractor,\n onSelect,\n type,\n labelExtractor,\n placeholder,\n onSearch,\n searchBarPlaceholder = 'Busque a opção desejada',\n hideSearchBar = true,\n label,\n disabled = false,\n anchor = 'bottom',\n displayTextProps,\n selectAllLabel = 'Selecionar todos',\n ...rest\n}: SelectProps<Data, Type>): JSX.Element => {\n const [dropDownVisible, setDropDownVisible] = React.useState<boolean>(false);\n const [selectOptions, setSelectOptions] = useState<Data[]>([]);\n const refDropDown = React.useRef(null);\n const transitionRef = React.useRef(null);\n useClickAwayListener(refDropDown, setDropDownVisible);\n\n useEffect(() => {\n if (typeof options !== 'function') {\n setSelectOptions(options);\n }\n }, [options]);\n\n // TODO: Add Skeleton to modal height when loading is true\n\n const onlyLabel = label && !placeholder;\n const hasValue =\n type === 'single' ? !!value : ((value || []) as []).length > 0;\n const _placeholder = onlyLabel ? label : placeholder;\n const _label = hasValue ? label : undefined;\n\n const displayValue = getDisplayValue<Data>(\n type,\n value,\n selectOptions,\n _placeholder,\n keyExtractor,\n labelExtractor\n );\n\n const handleLazyFocus = React.useCallback(async () => {\n if (!dropDownVisible && typeof options === 'function') {\n try {\n const result = await options();\n if (result) {\n setSelectOptions(result ?? []);\n }\n } catch (e) {\n // TODO: Catch error\n }\n }\n }, [options, setSelectOptions, dropDownVisible]);\n\n const handleOnSearch = React.useCallback(\n async (searchInput: string | undefined) => {\n if (searchInput !== undefined && onSearch && dropDownVisible) {\n try {\n //TODO: Remove code duplicated below (Select in react-native-kit)\n const result = await onSearch(searchInput);\n if (result) {\n if (type === 'single') {\n if (\n value &&\n !result.find(\n v => keyExtractor(value as Data) === keyExtractor(v)\n )\n ) {\n setSelectOptions([value as Data, ...result]);\n } else setSelectOptions(result);\n } else {\n if ((value as Data[]).length > 0) {\n const selectedValues =\n (value as Data[]).filter(\n v =>\n !result.find(\n current =>\n keyExtractor(v as Data) === keyExtractor(current)\n )\n ) || [];\n setSelectOptions([...selectedValues, ...result]);\n } else {\n setSelectOptions(result);\n }\n }\n }\n } catch (e) {\n // TODO: Catch error\n }\n }\n },\n [onSearch, value, keyExtractor, dropDownVisible, setSelectOptions]\n );\n\n const handlePressInput = async () => {\n await handleLazyFocus();\n };\n\n const onPress = React.useCallback(\n () => setDropDownVisible(prev => !prev),\n [setDropDownVisible]\n );\n //TODO: when component is wrapper by GridITem and Text of label has prop \"numberOfLines={1}\", this component incresing witht based on options selects, breaking layout of Grid, we must fix this problem.\n return (\n <StyledContainer ref={refDropDown} {...rest}>\n <StyledInputContainer onFocus={handlePressInput}>\n <PressableInputContainer\n label={_label}\n onPress={onPress}\n disabled={disabled}\n rightComponent={RightComponent}\n >\n <Text {...displayTextProps} fontWeight={'bold'}>\n {displayValue}\n </Text>\n </PressableInputContainer>\n </StyledInputContainer>\n <Transition in={dropDownVisible} timeout={300} nodeRef={transitionRef}>\n {state => (\n <Dropdown\n ref={transitionRef}\n options={selectOptions ?? []}\n onSelect={onSelect}\n value={value}\n type={type}\n keyExtractor={keyExtractor}\n labelExtractor={labelExtractor}\n hideSearchBar={hideSearchBar}\n searchBarPlaceholder={searchBarPlaceholder}\n onSearch={handleOnSearch}\n style={{ ...defaultStyles, ...transition[anchor][state] }}\n setDropDownVisible={setDropDownVisible}\n anchor={anchor}\n selectAllLabel={selectAllLabel}\n />\n )}\n </Transition>\n </StyledContainer>\n );\n};\n\nexport default Select;\n"],"names":["useState","useClickAwayListener","useEffect","getDisplayValue","StyledContainer","StyledInputContainer","PressableInputContainer","RightComponent","Text","Transition","defaultStyles","transition"],"mappings":";;;;;;;;;;;AA0CA,MAAM,SAAS,CAAwC;AAAA,EACrD,KAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,oBAAuB,GAAA,+BAAA;AAAA,EACvB,aAAgB,GAAA,IAAA;AAAA,EAChB,KAAA;AAAA,EACA,QAAW,GAAA,KAAA;AAAA,EACX,MAAS,GAAA,QAAA;AAAA,EACT,gBAAA;AAAA,EACA,cAAiB,GAAA,kBAAA;AAAA,EACjB,GAAG,IAAA;AACL,CAA4C,KAAA;AAC1C,EAAA,MAAM,CAAC,eAAiB,EAAA,kBAAkB,CAAI,GAAA,KAAA,CAAM,SAAkB,KAAK,CAAA,CAAA;AAC3E,EAAA,MAAM,CAAC,aAAe,EAAA,gBAAgB,CAAI,GAAAA,cAAA,CAAiB,EAAE,CAAA,CAAA;AAC7D,EAAM,MAAA,WAAA,GAAc,KAAM,CAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AACrC,EAAM,MAAA,aAAA,GAAgB,KAAM,CAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AACvC,EAAAC,yCAAA,CAAqB,aAAa,kBAAkB,CAAA,CAAA;AAEpD,EAAAC,eAAA,CAAU,MAAM;AACd,IAAI,IAAA,OAAO,YAAY,UAAY,EAAA;AACjC,MAAA,gBAAA,CAAiB,OAAO,CAAA,CAAA;AAAA,KAC1B;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA,CAAA;AAIZ,EAAM,MAAA,SAAA,GAAY,SAAS,CAAC,WAAA,CAAA;AAC5B,EAAM,MAAA,QAAA,GACJ,SAAS,QAAW,GAAA,CAAC,CAAC,KAAU,GAAA,CAAA,KAAA,IAAS,EAAC,EAAU,MAAS,GAAA,CAAA,CAAA;AAC/D,EAAM,MAAA,YAAA,GAAe,YAAY,KAAQ,GAAA,WAAA,CAAA;AACzC,EAAM,MAAA,MAAA,GAAS,WAAW,KAAQ,GAAA,KAAA,CAAA,CAAA;AAElC,EAAA,MAAM,YAAe,GAAAC,yBAAA;AAAA,IACnB,IAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,eAAA,GAAkB,KAAM,CAAA,WAAA,CAAY,YAAY;AACpD,IAAA,IAAI,CAAC,eAAA,IAAmB,OAAO,OAAA,KAAY,UAAY,EAAA;AACrD,MAAI,IAAA;AACF,QAAM,MAAA,MAAA,GAAS,MAAM,OAAQ,EAAA,CAAA;AAC7B,QAAA,IAAI,MAAQ,EAAA;AACV,UAAiB,gBAAA,CAAA,MAAA,IAAU,EAAE,CAAA,CAAA;AAAA,SAC/B;AAAA,eACO,CAAG,EAAA;AAAA,OAEZ;AAAA,KACF;AAAA,GACC,EAAA,CAAC,OAAS,EAAA,gBAAA,EAAkB,eAAe,CAAC,CAAA,CAAA;AAE/C,EAAA,MAAM,iBAAiB,KAAM,CAAA,WAAA;AAAA,IAC3B,OAAO,WAAoC,KAAA;AACzC,MAAI,IAAA,WAAA,KAAgB,KAAa,CAAA,IAAA,QAAA,IAAY,eAAiB,EAAA;AAC5D,QAAI,IAAA;AAEF,UAAM,MAAA,MAAA,GAAS,MAAM,QAAA,CAAS,WAAW,CAAA,CAAA;AACzC,UAAA,IAAI,MAAQ,EAAA;AACV,YAAA,IAAI,SAAS,QAAU,EAAA;AACrB,cACE,IAAA,KAAA,IACA,CAAC,MAAO,CAAA,IAAA;AAAA,gBACN,CAAK,CAAA,KAAA,YAAA,CAAa,KAAa,CAAA,KAAM,aAAa,CAAC,CAAA;AAAA,eAErD,EAAA;AACA,gBAAA,gBAAA,CAAiB,CAAC,KAAA,EAAe,GAAG,MAAM,CAAC,CAAA,CAAA;AAAA,eAC7C;AAAO,gBAAA,gBAAA,CAAiB,MAAM,CAAA,CAAA;AAAA,aACzB,MAAA;AACL,cAAK,IAAA,KAAA,CAAiB,SAAS,CAAG,EAAA;AAChC,gBAAA,MAAM,iBACH,KAAiB,CAAA,MAAA;AAAA,kBAChB,CAAA,CAAA,KACE,CAAC,MAAO,CAAA,IAAA;AAAA,oBACN,CACE,OAAA,KAAA,YAAA,CAAa,CAAS,CAAA,KAAM,aAAa,OAAO,CAAA;AAAA,mBACpD;AAAA,qBACC,EAAC,CAAA;AACR,gBAAA,gBAAA,CAAiB,CAAC,GAAG,cAAgB,EAAA,GAAG,MAAM,CAAC,CAAA,CAAA;AAAA,eAC1C,MAAA;AACL,gBAAA,gBAAA,CAAiB,MAAM,CAAA,CAAA;AAAA,eACzB;AAAA,aACF;AAAA,WACF;AAAA,iBACO,CAAG,EAAA;AAAA,SAEZ;AAAA,OACF;AAAA,KACF;AAAA,IACA,CAAC,QAAA,EAAU,KAAO,EAAA,YAAA,EAAc,iBAAiB,gBAAgB,CAAA;AAAA,GACnE,CAAA;AAEA,EAAA,MAAM,mBAAmB,YAAY;AACnC,IAAA,MAAM,eAAgB,EAAA,CAAA;AAAA,GACxB,CAAA;AAEA,EAAA,MAAM,UAAU,KAAM,CAAA,WAAA;AAAA,IACpB,MAAM,kBAAA,CAAmB,CAAQ,IAAA,KAAA,CAAC,IAAI,CAAA;AAAA,IACtC,CAAC,kBAAkB,CAAA;AAAA,GACrB,CAAA;AAEA,EACE,uBAAA,KAAA,CAAA,aAAA,CAACC,0BAAgB,GAAK,EAAA,WAAA,EAAc,GAAG,IACrC,EAAA,kBAAA,KAAA,CAAA,aAAA,CAACC,2BAAqB,EAAA,EAAA,OAAA,EAAS,gBAC7B,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAACC,iCAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA,MAAA;AAAA,MACP,OAAA;AAAA,MACA,QAAA;AAAA,MACA,cAAgB,EAAAC,qBAAA;AAAA,KAAA;AAAA,wCAEfC,cAAM,EAAA,EAAA,GAAG,gBAAkB,EAAA,UAAA,EAAY,UACrC,YACH,CAAA;AAAA,GAEJ,CACA,kBAAA,KAAA,CAAA,aAAA,CAACC,+BAAW,EAAA,EAAA,EAAA,EAAI,iBAAiB,OAAS,EAAA,GAAA,EAAK,OAAS,EAAA,aAAA,EAAA,EACrD,CACC,KAAA,qBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAA,aAAA;AAAA,MACL,OAAA,EAAS,iBAAiB,EAAC;AAAA,MAC3B,QAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA;AAAA,MACA,YAAA;AAAA,MACA,cAAA;AAAA,MACA,aAAA;AAAA,MACA,oBAAA;AAAA,MACA,QAAU,EAAA,cAAA;AAAA,MACV,KAAA,EAAO,EAAE,GAAGC,wBAAA,EAAe,GAAGC,qBAAW,CAAA,MAAM,CAAE,CAAA,KAAK,CAAE,EAAA;AAAA,MACxD,kBAAA;AAAA,MACA,MAAA;AAAA,MACA,cAAA;AAAA,KAAA;AAAA,GAGN,CACF,CAAA,CAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- export declare const getDisplayValue: <Data>(type: 'multi' | 'single', value: Data | Data[] | undefined, options: Data[], placeholder: string | undefined, keyExtractor: (option: Data, idx?: number) => string, labelExtractor: (option: Data) => string) => string | Data | Data[] | undefined;
1
+ export declare const getDisplayValue: <Data>(type: 'multi' | 'single', value: Data | Data[] | undefined, options: Data[], placeholder: string | undefined, keyExtractor: (option: Data, idx?: number) => string, labelExtractor: (option: Data) => string) => string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sources":["../../../../../src/components/molecules/Select/functions.ts"],"sourcesContent":["export const getDisplayValue = <Data>(\n type: 'multi' | 'single',\n value: Data | Data[] | undefined,\n options: Data[],\n placeholder: string | undefined,\n keyExtractor: (option: Data, idx?: number) => string,\n labelExtractor: (option: Data) => string\n): Data | Data[] | string | undefined => {\n if (type === 'multi') {\n if ((value as Data[]).length === 0) return placeholder;\n else {\n return (value as Data[])\n .reduce((acc, option) => acc + labelExtractor(option) + ', ', '')\n .slice(0, -2);\n }\n } else {\n if (value === undefined) return placeholder;\n const selectedOption = options.find(\n (option, index) =>\n keyExtractor(option, index) == keyExtractor(value as Data, index)\n );\n return selectedOption ? labelExtractor(selectedOption) : placeholder;\n }\n};\n"],"names":[],"mappings":";;AAAO,MAAM,kBAAkB,CAC7B,IAAA,EACA,OACA,OACA,EAAA,WAAA,EACA,cACA,cACuC,KAAA;AACvC,EAAA,IAAI,SAAS,OAAS,EAAA;AACpB,IAAA,IAAK,MAAiB,MAAW,KAAA,CAAA;AAAG,MAAO,OAAA,WAAA,CAAA;AAAA,SACtC;AACH,MAAA,OAAQ,KACL,CAAA,MAAA,CAAO,CAAC,GAAA,EAAK,WAAW,GAAM,GAAA,cAAA,CAAe,MAAM,CAAA,GAAI,IAAM,EAAA,EAAE,CAC/D,CAAA,KAAA,CAAM,GAAG,CAAE,CAAA,CAAA,CAAA;AAAA,KAChB;AAAA,GACK,MAAA;AACL,IAAA,IAAI,KAAU,KAAA,KAAA,CAAA;AAAW,MAAO,OAAA,WAAA,CAAA;AAChC,IAAA,MAAM,iBAAiB,OAAQ,CAAA,IAAA;AAAA,MAC7B,CAAC,QAAQ,KACP,KAAA,YAAA,CAAa,QAAQ,KAAK,CAAA,IAAK,YAAa,CAAA,KAAA,EAAe,KAAK,CAAA;AAAA,KACpE,CAAA;AACA,IAAO,OAAA,cAAA,GAAiB,cAAe,CAAA,cAAc,CAAI,GAAA,WAAA,CAAA;AAAA,GAC3D;AACF;;;;"}
1
+ {"version":3,"file":"functions.js","sources":["../../../../../src/components/molecules/Select/functions.ts"],"sourcesContent":["export const getDisplayValue = <Data>(\n type: 'multi' | 'single',\n value: Data | Data[] | undefined,\n options: Data[],\n placeholder: string | undefined,\n keyExtractor: (option: Data, idx?: number) => string,\n labelExtractor: (option: Data) => string\n): string | undefined => {\n if (type === 'multi') {\n if ((value as Data[]).length === 0) return placeholder;\n else {\n return (value as Data[])\n .reduce((acc, option) => acc + labelExtractor(option) + ', ', '')\n .slice(0, -2);\n }\n } else {\n if (value === undefined) return placeholder;\n const selectedOption = options.find(\n (option, index) =>\n keyExtractor(option, index) == keyExtractor(value as Data, index)\n );\n return selectedOption ? labelExtractor(selectedOption) : placeholder;\n }\n};\n"],"names":[],"mappings":";;AAAO,MAAM,kBAAkB,CAC7B,IAAA,EACA,OACA,OACA,EAAA,WAAA,EACA,cACA,cACuB,KAAA;AACvB,EAAA,IAAI,SAAS,OAAS,EAAA;AACpB,IAAA,IAAK,MAAiB,MAAW,KAAA,CAAA;AAAG,MAAO,OAAA,WAAA,CAAA;AAAA,SACtC;AACH,MAAA,OAAQ,KACL,CAAA,MAAA,CAAO,CAAC,GAAA,EAAK,WAAW,GAAM,GAAA,cAAA,CAAe,MAAM,CAAA,GAAI,IAAM,EAAA,EAAE,CAC/D,CAAA,KAAA,CAAM,GAAG,CAAE,CAAA,CAAA,CAAA;AAAA,KAChB;AAAA,GACK,MAAA;AACL,IAAA,IAAI,KAAU,KAAA,KAAA,CAAA;AAAW,MAAO,OAAA,WAAA,CAAA;AAChC,IAAA,MAAM,iBAAiB,OAAQ,CAAA,IAAA;AAAA,MAC7B,CAAC,QAAQ,KACP,KAAA,YAAA,CAAa,QAAQ,KAAK,CAAA,IAAK,YAAa,CAAA,KAAA,EAAe,KAAK,CAAA;AAAA,KACpE,CAAA;AACA,IAAO,OAAA,cAAA,GAAiB,cAAe,CAAA,cAAc,CAAI,GAAA,WAAA,CAAA;AAAA,GAC3D;AACF;;;;"}
@@ -1,2 +1,2 @@
1
1
  import React from 'react';
2
- export declare const useClickAwayListener: (ref: React.MutableRefObject<any>, setVisible: React.Dispatch<React.SetStateAction<boolean>>, event?: 'mouseup' | 'mousedown' | undefined) => void;
2
+ export declare const useClickAwayListener: (ref: React.MutableRefObject<any>, setVisible: React.Dispatch<React.SetStateAction<boolean>>, event?: 'mouseup' | 'mousedown' | undefined, onClickAway?: () => void) => void;
@@ -2,10 +2,11 @@
2
2
 
3
3
  var React = require('react');
4
4
 
5
- const useClickAwayListener = (ref, setVisible, event = "mousedown") => {
5
+ const useClickAwayListener = (ref, setVisible, event = "mousedown", onClickAway) => {
6
6
  React.useEffect(() => {
7
7
  const handleClickOutside = (event2) => {
8
8
  if (ref.current && !ref.current.contains(event2.target)) {
9
+ onClickAway?.();
9
10
  setVisible(false);
10
11
  }
11
12
  };
@@ -13,7 +14,7 @@ const useClickAwayListener = (ref, setVisible, event = "mousedown") => {
13
14
  return () => {
14
15
  document.removeEventListener(event, handleClickOutside);
15
16
  };
16
- }, [ref]);
17
+ }, [ref, onClickAway]);
17
18
  };
18
19
 
19
20
  exports.useClickAwayListener = useClickAwayListener;
@@ -1 +1 @@
1
- {"version":3,"file":"useClickAwayListener.js","sources":["../../../src/hooks/useClickAwayListener.ts"],"sourcesContent":["import React from 'react';\n\nexport const useClickAwayListener = (\n ref: React.MutableRefObject<any>,\n setVisible: React.Dispatch<React.SetStateAction<boolean>>,\n event: 'mouseup' | 'mousedown' | undefined = 'mousedown'\n): void => {\n React.useEffect(() => {\n const handleClickOutside = event => {\n if (ref.current && !ref.current.contains(event.target)) {\n setVisible(false);\n }\n };\n document.addEventListener(event, handleClickOutside);\n return () => {\n document.removeEventListener(event, handleClickOutside);\n };\n }, [ref]);\n};\n"],"names":["event"],"mappings":";;;;AAEO,MAAM,oBAAuB,GAAA,CAClC,GACA,EAAA,UAAA,EACA,QAA6C,WACpC,KAAA;AACT,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAM,MAAA,kBAAA,GAAqB,CAAAA,MAAS,KAAA;AAClC,MAAI,IAAA,GAAA,CAAI,WAAW,CAAC,GAAA,CAAI,QAAQ,QAASA,CAAAA,MAAAA,CAAM,MAAM,CAAG,EAAA;AACtD,QAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,OAClB;AAAA,KACF,CAAA;AACA,IAAS,QAAA,CAAA,gBAAA,CAAiB,OAAO,kBAAkB,CAAA,CAAA;AACnD,IAAA,OAAO,MAAM;AACX,MAAS,QAAA,CAAA,mBAAA,CAAoB,OAAO,kBAAkB,CAAA,CAAA;AAAA,KACxD,CAAA;AAAA,GACF,EAAG,CAAC,GAAG,CAAC,CAAA,CAAA;AACV;;;;"}
1
+ {"version":3,"file":"useClickAwayListener.js","sources":["../../../src/hooks/useClickAwayListener.ts"],"sourcesContent":["import React from 'react';\n\nexport const useClickAwayListener = (\n ref: React.MutableRefObject<any>,\n setVisible: React.Dispatch<React.SetStateAction<boolean>>,\n event: 'mouseup' | 'mousedown' | undefined = 'mousedown',\n onClickAway?: () => void\n): void => {\n React.useEffect(() => {\n const handleClickOutside = event => {\n if (ref.current && !ref.current.contains(event.target)) {\n onClickAway?.()\n setVisible(false);\n }\n };\n document.addEventListener(event, handleClickOutside);\n return () => {\n document.removeEventListener(event, handleClickOutside);\n };\n }, [ref, onClickAway]);\n};\n"],"names":["event"],"mappings":";;;;AAEO,MAAM,uBAAuB,CAClC,GAAA,EACA,UACA,EAAA,KAAA,GAA6C,aAC7C,WACS,KAAA;AACT,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAM,MAAA,kBAAA,GAAqB,CAAAA,MAAS,KAAA;AAClC,MAAI,IAAA,GAAA,CAAI,WAAW,CAAC,GAAA,CAAI,QAAQ,QAASA,CAAAA,MAAAA,CAAM,MAAM,CAAG,EAAA;AACtD,QAAc,WAAA,IAAA,CAAA;AACd,QAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,OAClB;AAAA,KACF,CAAA;AACA,IAAS,QAAA,CAAA,gBAAA,CAAiB,OAAO,kBAAkB,CAAA,CAAA;AACnD,IAAA,OAAO,MAAM;AACX,MAAS,QAAA,CAAA,mBAAA,CAAoB,OAAO,kBAAkB,CAAA,CAAA;AAAA,KACxD,CAAA;AAAA,GACC,EAAA,CAAC,GAAK,EAAA,WAAW,CAAC,CAAA,CAAA;AACvB;;;;"}
@@ -17,6 +17,7 @@ const Accordion = ({
17
17
  const [contentHeight, setContentHeight] = React.useState(0);
18
18
  const theme = useTheme();
19
19
  const ref = useRef(null);
20
+ const titleTransitionRef = useRef(null);
20
21
  React.useEffect(() => setOpen(_open), [_open]);
21
22
  React.useLayoutEffect(() => {
22
23
  const size = Array.from(
@@ -31,7 +32,7 @@ const Accordion = ({
31
32
  }
32
33
  setOpen((state) => !state);
33
34
  }, [onChange]);
34
- return /* @__PURE__ */ React.createElement(AccordionContainer, { ...rest }, /* @__PURE__ */ React.createElement(TitleContainer, { onClick: handleClick }, /* @__PURE__ */ React.createElement(Transition, { in: open, timeout: transition }, (state) => /* @__PURE__ */ React.createElement(
35
+ return /* @__PURE__ */ React.createElement(AccordionContainer, { ...rest }, /* @__PURE__ */ React.createElement(TitleContainer, { onClick: handleClick }, /* @__PURE__ */ React.createElement(Transition, { in: open, timeout: transition, nodeRef: titleTransitionRef }, (state) => /* @__PURE__ */ React.createElement("div", { ref: titleTransitionRef }, /* @__PURE__ */ React.createElement(
35
36
  Text,
36
37
  {
37
38
  typography: "h4",
@@ -42,7 +43,7 @@ const Accordion = ({
42
43
  }
43
44
  },
44
45
  title
45
- )), /* @__PURE__ */ React.createElement(IconContainer, null, /* @__PURE__ */ React.createElement(
46
+ ))), /* @__PURE__ */ React.createElement(IconContainer, null, /* @__PURE__ */ React.createElement(
46
47
  Icon,
47
48
  {
48
49
  type: "material-community",
@@ -50,7 +51,7 @@ const Accordion = ({
50
51
  size: "kilo",
51
52
  fontColor: "medium"
52
53
  }
53
- ))), /* @__PURE__ */ React.createElement(Transition, { in: open, timeout: transition }, (state) => /* @__PURE__ */ React.createElement(
54
+ ))), /* @__PURE__ */ React.createElement(Transition, { in: open, timeout: transition, nodeRef: ref }, (state) => /* @__PURE__ */ React.createElement(
54
55
  ContentContainer,
55
56
  {
56
57
  ref: (htmlEl) => ref.current = htmlEl,
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","sources":["../../../../../src/components/atoms/Accordion/Accordion.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { Icon, Text, ThemeProp } from '@tecsinapse/react-core';\nimport {\n AccordionContainer,\n IconContainer,\n TitleContainer,\n ContentContainer,\n} from './styled';\nimport { Transition } from 'react-transition-group';\nimport {\n contentStyle,\n contentTransition,\n titleStyle,\n titleTransition,\n} from './animations';\nimport { useTheme } from '@emotion/react';\n\nexport interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {\n open?: boolean;\n onChange?: () => void;\n title: string;\n /** Transition time for collapse effect in ms */\n transition?: number;\n}\n\nconst Accordion: React.FC<AccordionProps> = ({\n title,\n open: _open = false,\n onChange,\n transition = 200,\n children,\n ...rest\n}) => {\n const [open, setOpen] = React.useState(_open);\n const [contentHeight, setContentHeight] = React.useState(0);\n const theme = useTheme() as ThemeProp;\n\n const ref = useRef<HTMLDivElement | null>(null);\n\n React.useEffect(() => setOpen(_open), [_open]);\n\n React.useLayoutEffect(() => {\n const size = Array.from(\n (ref.current?.children || []) as HTMLCollection\n ).reduce((prev, curr) => prev + curr.clientHeight, 0);\n setContentHeight(size);\n }, []);\n\n const handleClick = React.useCallback(() => {\n if (onChange) {\n onChange();\n return;\n }\n setOpen(state => !state);\n }, [onChange]);\n\n return (\n <AccordionContainer {...rest}>\n <TitleContainer onClick={handleClick}>\n <Transition in={open} timeout={transition}>\n {state => (\n <Text\n typography=\"h4\"\n fontWeight=\"bold\"\n style={{\n ...titleStyle(transition, theme),\n ...titleTransition(theme)[state],\n }}\n >\n {title}\n </Text>\n )}\n </Transition>\n <IconContainer>\n <Icon\n type=\"material-community\"\n name={open ? 'chevron-up' : 'chevron-down'}\n size=\"kilo\"\n fontColor=\"medium\"\n />\n </IconContainer>\n </TitleContainer>\n <Transition in={open} timeout={transition}>\n {state => (\n <ContentContainer\n ref={htmlEl => (ref.current = htmlEl)}\n style={{\n ...contentStyle(open, transition, contentHeight, theme),\n ...contentTransition(contentHeight, theme)[state],\n }}\n >\n {children}\n </ContentContainer>\n )}\n </Transition>\n </AccordionContainer>\n );\n};\n\nexport default Accordion;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Accordion.js","sources":["../../../../../src/components/atoms/Accordion/Accordion.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { Icon, Text, ThemeProp } from '@tecsinapse/react-core';\nimport {\n AccordionContainer,\n IconContainer,\n TitleContainer,\n ContentContainer,\n} from './styled';\nimport { Transition } from 'react-transition-group';\nimport {\n contentStyle,\n contentTransition,\n titleStyle,\n titleTransition,\n} from './animations';\nimport { useTheme } from '@emotion/react';\n\nexport interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {\n open?: boolean;\n onChange?: () => void;\n title: string;\n /** Transition time for collapse effect in ms */\n transition?: number;\n}\n\nconst Accordion: React.FC<AccordionProps> = ({\n title,\n open: _open = false,\n onChange,\n transition = 200,\n children,\n ...rest\n}) => {\n const [open, setOpen] = React.useState(_open);\n const [contentHeight, setContentHeight] = React.useState(0);\n const theme = useTheme() as ThemeProp;\n\n const ref = useRef<HTMLDivElement | null>(null);\n const titleTransitionRef = useRef<HTMLDivElement | null>(null);\n\n React.useEffect(() => setOpen(_open), [_open]);\n\n React.useLayoutEffect(() => {\n const size = Array.from(\n (ref.current?.children || []) as HTMLCollection\n ).reduce((prev, curr) => prev + curr.clientHeight, 0);\n setContentHeight(size);\n }, []);\n\n const handleClick = React.useCallback(() => {\n if (onChange) {\n onChange();\n return;\n }\n setOpen(state => !state);\n }, [onChange]);\n\n return (\n <AccordionContainer {...rest}>\n <TitleContainer onClick={handleClick}>\n <Transition in={open} timeout={transition} nodeRef={titleTransitionRef}>\n {state => (\n <div ref={titleTransitionRef}>\n <Text\n typography=\"h4\"\n fontWeight=\"bold\"\n style={{\n ...titleStyle(transition, theme),\n ...titleTransition(theme)[state],\n }}\n >\n {title}\n </Text>\n </div>\n )}\n </Transition>\n <IconContainer>\n <Icon\n type=\"material-community\"\n name={open ? 'chevron-up' : 'chevron-down'}\n size=\"kilo\"\n fontColor=\"medium\"\n />\n </IconContainer>\n </TitleContainer>\n <Transition in={open} timeout={transition} nodeRef={ref}>\n {state => (\n <ContentContainer\n ref={htmlEl => (ref.current = htmlEl)}\n style={{\n ...contentStyle(open, transition, contentHeight, theme),\n ...contentTransition(contentHeight, theme)[state],\n }}\n >\n {children}\n </ContentContainer>\n )}\n </Transition>\n </AccordionContainer>\n );\n};\n\nexport default Accordion;\n"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import React, { Dispatch, SetStateAction } from 'react';
2
2
  export interface DropdownProps {
3
3
  visible: boolean;
4
4
  setVisible: Dispatch<SetStateAction<boolean>>;
5
+ onClickAway?: () => void;
5
6
  }
6
7
  export declare const Dropdown: React.FC<DropdownProps & {
7
8
  children: JSX.Element;
@@ -8,11 +8,12 @@ import { useClickAwayListener } from '../../../hooks/useClickAwayListener.js';
8
8
  const Component = ({
9
9
  visible,
10
10
  setVisible,
11
+ onClickAway,
11
12
  children
12
13
  }) => {
13
14
  const refDropDown = React.useRef(null);
14
- useClickAwayListener(refDropDown, setVisible);
15
- return /* @__PURE__ */ React.createElement(Transition, { in: visible, timeout: 300 }, (state) => /* @__PURE__ */ React.createElement(
15
+ useClickAwayListener(refDropDown, setVisible, "mousedown", onClickAway);
16
+ return /* @__PURE__ */ React.createElement(Transition, { in: visible, timeout: 300, nodeRef: refDropDown }, (state) => /* @__PURE__ */ React.createElement(
16
17
  StyledContainerDropdown,
17
18
  {
18
19
  style: { ...defaultStyles, ...transition["bottom"][state] },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/atoms/Dropdown/index.tsx"],"sourcesContent":["import React, { Dispatch, SetStateAction } from 'react';\nimport { StyledContainerDropdown } from './styled';\nimport { Transition } from 'react-transition-group';\nimport { defaultStyles, transition } from '../../molecules/Select/animations';\nimport { useClickAwayListener } from '../../../hooks';\n\nexport interface DropdownProps {\n visible: boolean;\n setVisible: Dispatch<SetStateAction<boolean>>;\n}\n\nconst Component: React.FC<DropdownProps & { children: JSX.Element }> = ({\n visible,\n setVisible,\n children,\n}): JSX.Element => {\n const refDropDown = React.useRef(null);\n useClickAwayListener(refDropDown, setVisible);\n\n return (\n <Transition in={visible} timeout={300}>\n {state => (\n <StyledContainerDropdown\n style={{ ...defaultStyles, ...transition['bottom'][state] }}\n ref={refDropDown}\n >\n {children}\n </StyledContainerDropdown>\n )}\n </Transition>\n );\n};\n\nexport const Dropdown = Component;\n"],"names":[],"mappings":";;;;;;;AAWA,MAAM,YAAiE,CAAC;AAAA,EACtE,OAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AACF,CAAmB,KAAA;AACjB,EAAM,MAAA,WAAA,GAAc,KAAM,CAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AACrC,EAAA,oBAAA,CAAqB,aAAa,UAAU,CAAA,CAAA;AAE5C,EAAA,2CACG,UAAW,EAAA,EAAA,EAAA,EAAI,OAAS,EAAA,OAAA,EAAS,OAC/B,CACC,KAAA,qBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAE,GAAG,aAAA,EAAe,GAAG,UAAW,CAAA,QAAQ,CAAE,CAAA,KAAK,CAAE,EAAA;AAAA,MAC1D,GAAK,EAAA,WAAA;AAAA,KAAA;AAAA,IAEJ,QAAA;AAAA,GAGP,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEO,MAAM,QAAW,GAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/atoms/Dropdown/index.tsx"],"sourcesContent":["import React, { Dispatch, SetStateAction } from 'react';\nimport { StyledContainerDropdown } from './styled';\nimport { Transition } from 'react-transition-group';\nimport { defaultStyles, transition } from '../../molecules/Select/animations';\nimport { useClickAwayListener } from '../../../hooks';\n\nexport interface DropdownProps {\n visible: boolean;\n setVisible: Dispatch<SetStateAction<boolean>>;\n onClickAway?: () => void;\n}\n\nconst Component: React.FC<DropdownProps & { children: JSX.Element }> = ({\n visible,\n setVisible,\n onClickAway,\n children,\n}): JSX.Element => {\n const refDropDown = React.useRef(null);\n useClickAwayListener(refDropDown, setVisible, 'mousedown', onClickAway);\n\n return (\n <Transition in={visible} timeout={300} nodeRef={refDropDown}>\n {state => (\n <StyledContainerDropdown\n style={{ ...defaultStyles, ...transition['bottom'][state] }}\n ref={refDropDown}\n >\n {children}\n </StyledContainerDropdown>\n )}\n </Transition>\n );\n};\n\nexport const Dropdown = Component;\n"],"names":[],"mappings":";;;;;;;AAYA,MAAM,YAAiE,CAAC;AAAA,EACtE,OAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AACF,CAAmB,KAAA;AACjB,EAAM,MAAA,WAAA,GAAc,KAAM,CAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AACrC,EAAqB,oBAAA,CAAA,WAAA,EAAa,UAAY,EAAA,WAAA,EAAa,WAAW,CAAA,CAAA;AAEtE,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,cAAW,EAAI,EAAA,OAAA,EAAS,SAAS,GAAK,EAAA,OAAA,EAAS,eAC7C,CACC,KAAA,qBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAE,GAAG,aAAA,EAAe,GAAG,UAAW,CAAA,QAAQ,CAAE,CAAA,KAAK,CAAE,EAAA;AAAA,MAC1D,GAAK,EAAA,WAAA;AAAA,KAAA;AAAA,IAEJ,QAAA;AAAA,GAGP,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEO,MAAM,QAAW,GAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { useRef } from 'react';
2
2
  import { Transition } from 'react-transition-group';
3
3
  import Overlay from '../Overlay/Overlay.js';
4
4
  import { ModalContainer } from './styled.js';
@@ -11,9 +11,11 @@ const Modal = ({
11
11
  style,
12
12
  ...rest
13
13
  }) => {
14
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Overlay, { open, onClose, zIndex: "modal" }), /* @__PURE__ */ React.createElement(Transition, { in: open, timeout: 400 }, (state) => /* @__PURE__ */ React.createElement(
14
+ const transitionRef = useRef(null);
15
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Overlay, { open, onClose, zIndex: "modal" }), /* @__PURE__ */ React.createElement(Transition, { in: open, timeout: 400, nodeRef: transitionRef }, (state) => /* @__PURE__ */ React.createElement(
15
16
  ModalContainer,
16
17
  {
18
+ ref: transitionRef,
17
19
  style: {
18
20
  ...style,
19
21
  ...defaultStyleOverlay,
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../../../src/components/atoms/Modal/Modal.tsx"],"sourcesContent":["import React from 'react';\nimport { Transition } from 'react-transition-group';\nimport { Overlay } from '../Overlay';\nimport { ModalContainer } from './styled';\nimport { defaultStyleOverlay, transitionStylesOverlay } from './animations';\n\nexport interface ModalProps extends React.HTMLAttributes<HTMLDivElement> {\n open: boolean;\n onClose: () => void;\n}\n\nconst Modal: React.FC<ModalProps> = ({\n children,\n open,\n onClose,\n style,\n ...rest\n}) => {\n return (\n <>\n <Overlay open={open} onClose={onClose} zIndex=\"modal\" />\n <Transition in={open} timeout={400}>\n {state => (\n <ModalContainer\n style={{\n ...style,\n ...defaultStyleOverlay,\n ...transitionStylesOverlay[state],\n }}\n {...rest}\n >\n {children}\n </ModalContainer>\n )}\n </Transition>\n </>\n );\n};\n\nexport default Modal;\n"],"names":[],"mappings":";;;;;;AAWA,MAAM,QAA8B,CAAC;AAAA,EACnC,QAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG,IAAA;AACL,CAAM,KAAA;AACJ,EAAA,uBAEI,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,EAAA,IAAA,EAAY,SAAkB,MAAO,EAAA,OAAA,EAAQ,CACtD,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,EAAA,EAAI,IAAM,EAAA,OAAA,EAAS,OAC5B,CACC,KAAA,qBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA;AAAA,QACL,GAAG,KAAA;AAAA,QACH,GAAG,mBAAA;AAAA,QACH,GAAG,wBAAwB,KAAK,CAAA;AAAA,OAClC;AAAA,MACC,GAAG,IAAA;AAAA,KAAA;AAAA,IAEH,QAAA;AAAA,GAGP,CACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../../../src/components/atoms/Modal/Modal.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { Transition } from 'react-transition-group';\nimport { Overlay } from '../Overlay';\nimport { ModalContainer } from './styled';\nimport { defaultStyleOverlay, transitionStylesOverlay } from './animations';\n\nexport interface ModalProps extends React.HTMLAttributes<HTMLDivElement> {\n open: boolean;\n onClose: () => void;\n}\n\nconst Modal: React.FC<ModalProps> = ({\n children,\n open,\n onClose,\n style,\n ...rest\n}) => {\n const transitionRef = useRef(null);\n return (\n <>\n <Overlay open={open} onClose={onClose} zIndex=\"modal\" />\n <Transition in={open} timeout={400} nodeRef={transitionRef}>\n {state => (\n <ModalContainer\n ref={transitionRef}\n style={{\n ...style,\n ...defaultStyleOverlay,\n ...transitionStylesOverlay[state],\n }}\n {...rest}\n >\n {children}\n </ModalContainer>\n )}\n </Transition>\n </>\n );\n};\n\nexport default Modal;\n"],"names":[],"mappings":";;;;;;AAWA,MAAM,QAA8B,CAAC;AAAA,EACnC,QAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG,IAAA;AACL,CAAM,KAAA;AACJ,EAAM,MAAA,aAAA,GAAgB,OAAO,IAAI,CAAA,CAAA;AACjC,EAAA,iFAEK,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAQ,IAAY,EAAA,OAAA,EAAkB,QAAO,OAAQ,EAAA,CAAA,kBACrD,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,IAAI,IAAM,EAAA,OAAA,EAAS,GAAK,EAAA,OAAA,EAAS,iBAC1C,CACC,KAAA,qBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAA,aAAA;AAAA,MACL,KAAO,EAAA;AAAA,QACL,GAAG,KAAA;AAAA,QACH,GAAG,mBAAA;AAAA,QACH,GAAG,wBAAwB,KAAK,CAAA;AAAA,OAClC;AAAA,MACC,GAAG,IAAA;AAAA,KAAA;AAAA,IAEH,QAAA;AAAA,GAGP,CACF,CAAA,CAAA;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { useRef } from 'react';
2
2
  import { Transition } from 'react-transition-group';
3
3
  import { defaultStyleOverlay, transitionStylesOverlay } from './animations.js';
4
4
  import { StyledOverlay } from './styled.js';
@@ -10,7 +10,8 @@ const Overlay = ({
10
10
  zIndex = "default",
11
11
  children
12
12
  }) => {
13
- return /* @__PURE__ */ React.createElement(Transition, { in: open, timeout }, (state) => /* @__PURE__ */ React.createElement(
13
+ const transitionRef = useRef(null);
14
+ return /* @__PURE__ */ React.createElement(Transition, { in: open, timeout, nodeRef: transitionRef }, (state) => /* @__PURE__ */ React.createElement(
14
15
  StyledOverlay,
15
16
  {
16
17
  style: {
@@ -19,7 +20,8 @@ const Overlay = ({
19
20
  },
20
21
  onClick: open ? onClose : void 0,
21
22
  show: open,
22
- zIndex
23
+ zIndex,
24
+ ref: transitionRef
23
25
  },
24
26
  children
25
27
  ));
@@ -1 +1 @@
1
- {"version":3,"file":"Overlay.js","sources":["../../../../../src/components/atoms/Overlay/Overlay.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Transition } from 'react-transition-group';\nimport { ZIndex } from '@tecsinapse/react-core';\nimport { defaultStyleOverlay, transitionStylesOverlay } from './animations';\nimport { StyledOverlay } from './styled';\n\nexport interface OverlayProps {\n timeout?: number;\n open: boolean;\n onClose: () => void;\n zIndex: keyof ZIndex;\n children?: ReactNode;\n}\n\nconst Overlay = ({\n timeout = 300,\n open,\n onClose,\n zIndex = 'default',\n children,\n}: OverlayProps): JSX.Element => {\n return (\n <Transition in={open} timeout={timeout}>\n {state => (\n <StyledOverlay\n style={{\n ...defaultStyleOverlay,\n ...transitionStylesOverlay[state],\n }}\n onClick={open ? onClose : undefined}\n show={open}\n zIndex={zIndex}\n >\n {children}\n </StyledOverlay>\n )}\n </Transition>\n );\n};\n\nexport default Overlay;\n"],"names":[],"mappings":";;;;;AAcA,MAAM,UAAU,CAAC;AAAA,EACf,OAAU,GAAA,GAAA;AAAA,EACV,IAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAS,GAAA,SAAA;AAAA,EACT,QAAA;AACF,CAAiC,KAAA;AAC/B,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,EAAI,EAAA,IAAA,EAAM,WACnB,CACC,KAAA,qBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA;AAAA,QACL,GAAG,mBAAA;AAAA,QACH,GAAG,wBAAwB,KAAK,CAAA;AAAA,OAClC;AAAA,MACA,OAAA,EAAS,OAAO,OAAU,GAAA,KAAA,CAAA;AAAA,MAC1B,IAAM,EAAA,IAAA;AAAA,MACN,MAAA;AAAA,KAAA;AAAA,IAEC,QAAA;AAAA,GAGP,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"Overlay.js","sources":["../../../../../src/components/atoms/Overlay/Overlay.tsx"],"sourcesContent":["import React, { ReactNode, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\nimport { ZIndex } from '@tecsinapse/react-core';\nimport { defaultStyleOverlay, transitionStylesOverlay } from './animations';\nimport { StyledOverlay } from './styled';\n\nexport interface OverlayProps {\n timeout?: number;\n open: boolean;\n onClose: () => void;\n zIndex: keyof ZIndex;\n children?: ReactNode;\n}\n\nconst Overlay = ({\n timeout = 300,\n open,\n onClose,\n zIndex = 'default',\n children,\n}: OverlayProps): JSX.Element => {\n const transitionRef = useRef(null);\n return (\n <Transition in={open} timeout={timeout} nodeRef={transitionRef}>\n {state => (\n <StyledOverlay\n style={{\n ...defaultStyleOverlay,\n ...transitionStylesOverlay[state],\n }}\n onClick={open ? onClose : undefined}\n show={open}\n zIndex={zIndex}\n ref={transitionRef}\n >\n {children}\n </StyledOverlay>\n )}\n </Transition>\n );\n};\n\nexport default Overlay;\n"],"names":[],"mappings":";;;;;AAcA,MAAM,UAAU,CAAC;AAAA,EACf,OAAU,GAAA,GAAA;AAAA,EACV,IAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAS,GAAA,SAAA;AAAA,EACT,QAAA;AACF,CAAiC,KAAA;AAC/B,EAAM,MAAA,aAAA,GAAgB,OAAO,IAAI,CAAA,CAAA;AACjC,EAAA,2CACG,UAAW,EAAA,EAAA,EAAA,EAAI,MAAM,OAAkB,EAAA,OAAA,EAAS,iBAC9C,CACC,KAAA,qBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA;AAAA,QACL,GAAG,mBAAA;AAAA,QACH,GAAG,wBAAwB,KAAK,CAAA;AAAA,OAClC;AAAA,MACA,OAAA,EAAS,OAAO,OAAU,GAAA,KAAA,CAAA;AAAA,MAC1B,IAAM,EAAA,IAAA;AAAA,MACN,MAAA;AAAA,MACA,GAAK,EAAA,aAAA;AAAA,KAAA;AAAA,IAEJ,QAAA;AAAA,GAGP,CAAA,CAAA;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import React, { useCallback } from 'react';
1
+ import React, { useRef, useCallback } from 'react';
2
2
  import { useTheme, lightenDarkenColor } from '@tecsinapse/react-core';
3
3
  import { Transition } from 'react-transition-group';
4
4
  import { StyledSwitchContent, StyledSwitch } from './styled.js';
@@ -14,6 +14,7 @@ const Switch = ({
14
14
  ...rest
15
15
  }) => {
16
16
  const theme = useTheme();
17
+ const transitionRef = useRef(null);
17
18
  const handleChange = useCallback(() => {
18
19
  if (!disabled)
19
20
  onChange(!active);
@@ -55,7 +56,7 @@ const Switch = ({
55
56
  exiting: { transform: "translateX(150%)" },
56
57
  exited: { transform: "translateX(0%)" }
57
58
  };
58
- return /* @__PURE__ */ React.createElement(Transition, { in: active, timeout: 100 }, (state) => /* @__PURE__ */ React.createElement("div", { onClick: handleChange }, /* @__PURE__ */ React.createElement(
59
+ return /* @__PURE__ */ React.createElement(Transition, { in: active, timeout: 100, nodeRef: transitionRef }, (state) => /* @__PURE__ */ React.createElement("div", { onClick: handleChange, ref: transitionRef }, /* @__PURE__ */ React.createElement(
59
60
  StyledSwitchContent,
60
61
  {
61
62
  ...rest,
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.js","sources":["../../../../../src/components/atoms/Switch/Switch.tsx"],"sourcesContent":["import React, { FC, useCallback } from 'react';\nimport {\n lightenDarkenColor,\n SwitchProps,\n useTheme,\n} from '@tecsinapse/react-core';\nimport { Transition } from 'react-transition-group';\nimport { StyledSwitchContent, StyledSwitch } from './styled';\n\nconst Switch: FC<SwitchProps> = ({\n onChange,\n activeColor = 'primary',\n activeColorTone = 'medium',\n inactiveColor = 'secondary',\n inactiveColorTone = 'light',\n active,\n disabled = false,\n ...rest\n}) => {\n const theme = useTheme();\n const handleChange = useCallback(() => {\n if (!disabled) onChange(!active);\n }, [active, onChange]);\n\n const defaultStyleBackground = {\n transition: `all 300ms ease`,\n };\n\n const getBackgroundColor = (color: string) => {\n return disabled\n ? lightenDarkenColor(theme.color[inactiveColor][inactiveColorTone], 20)\n : color;\n };\n const transitionStylesBackground = {\n entering: {\n backgroundColor: getBackgroundColor(\n theme.color[inactiveColor][inactiveColorTone]\n ),\n },\n entered: {\n backgroundColor: getBackgroundColor(\n theme.color[activeColor][activeColorTone]\n ),\n },\n exiting: {\n backgroundColor: getBackgroundColor(\n theme.color[activeColor][activeColorTone]\n ),\n },\n exited: {\n backgroundColor: getBackgroundColor(\n theme.color[inactiveColor][inactiveColorTone]\n ),\n },\n };\n\n const defaultStyleCircle = {\n transition: `transform ${100}ms ease`,\n };\n\n const transitionStylesCircle = {\n entering: { transform: 'translateX(0%)' },\n entered: { transform: 'translateX(150%)' },\n exiting: { transform: 'translateX(150%)' },\n exited: { transform: 'translateX(0%)' },\n };\n\n return (\n <Transition in={active} timeout={100}>\n {state => (\n <div onClick={handleChange}>\n <StyledSwitchContent\n {...rest}\n style={{\n ...defaultStyleBackground,\n ...transitionStylesBackground[state],\n }}\n >\n <StyledSwitch\n style={{\n ...defaultStyleCircle,\n ...transitionStylesCircle[state],\n }}\n />\n </StyledSwitchContent>\n </div>\n )}\n </Transition>\n );\n};\n\nexport default Switch;\n"],"names":[],"mappings":";;;;;AASA,MAAM,SAA0B,CAAC;AAAA,EAC/B,QAAA;AAAA,EACA,WAAc,GAAA,SAAA;AAAA,EACd,eAAkB,GAAA,QAAA;AAAA,EAClB,aAAgB,GAAA,WAAA;AAAA,EAChB,iBAAoB,GAAA,OAAA;AAAA,EACpB,MAAA;AAAA,EACA,QAAW,GAAA,KAAA;AAAA,EACX,GAAG,IAAA;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AACvB,EAAM,MAAA,YAAA,GAAe,YAAY,MAAM;AACrC,IAAA,IAAI,CAAC,QAAA;AAAU,MAAA,QAAA,CAAS,CAAC,MAAM,CAAA,CAAA;AAAA,GAC9B,EAAA,CAAC,MAAQ,EAAA,QAAQ,CAAC,CAAA,CAAA;AAErB,EAAA,MAAM,sBAAyB,GAAA;AAAA,IAC7B,UAAY,EAAA,CAAA,cAAA,CAAA;AAAA,GACd,CAAA;AAEA,EAAM,MAAA,kBAAA,GAAqB,CAAC,KAAkB,KAAA;AAC5C,IAAO,OAAA,QAAA,GACH,mBAAmB,KAAM,CAAA,KAAA,CAAM,aAAa,CAAE,CAAA,iBAAiB,CAAG,EAAA,EAAE,CACpE,GAAA,KAAA,CAAA;AAAA,GACN,CAAA;AACA,EAAA,MAAM,0BAA6B,GAAA;AAAA,IACjC,QAAU,EAAA;AAAA,MACR,eAAiB,EAAA,kBAAA;AAAA,QACf,KAAM,CAAA,KAAA,CAAM,aAAa,CAAA,CAAE,iBAAiB,CAAA;AAAA,OAC9C;AAAA,KACF;AAAA,IACA,OAAS,EAAA;AAAA,MACP,eAAiB,EAAA,kBAAA;AAAA,QACf,KAAM,CAAA,KAAA,CAAM,WAAW,CAAA,CAAE,eAAe,CAAA;AAAA,OAC1C;AAAA,KACF;AAAA,IACA,OAAS,EAAA;AAAA,MACP,eAAiB,EAAA,kBAAA;AAAA,QACf,KAAM,CAAA,KAAA,CAAM,WAAW,CAAA,CAAE,eAAe,CAAA;AAAA,OAC1C;AAAA,KACF;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,eAAiB,EAAA,kBAAA;AAAA,QACf,KAAM,CAAA,KAAA,CAAM,aAAa,CAAA,CAAE,iBAAiB,CAAA;AAAA,OAC9C;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,kBAAqB,GAAA;AAAA,IACzB,UAAA,EAAY,aAAa,GAAG,CAAA,OAAA,CAAA;AAAA,GAC9B,CAAA;AAEA,EAAA,MAAM,sBAAyB,GAAA;AAAA,IAC7B,QAAA,EAAU,EAAE,SAAA,EAAW,gBAAiB,EAAA;AAAA,IACxC,OAAA,EAAS,EAAE,SAAA,EAAW,kBAAmB,EAAA;AAAA,IACzC,OAAA,EAAS,EAAE,SAAA,EAAW,kBAAmB,EAAA;AAAA,IACzC,MAAA,EAAQ,EAAE,SAAA,EAAW,gBAAiB,EAAA;AAAA,GACxC,CAAA;AAEA,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,EAAA,EAAI,MAAQ,EAAA,OAAA,EAAS,OAC9B,CACC,KAAA,qBAAA,KAAA,CAAA,aAAA,CAAC,KAAI,EAAA,EAAA,OAAA,EAAS,YACZ,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,mBAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,KAAO,EAAA;AAAA,QACL,GAAG,sBAAA;AAAA,QACH,GAAG,2BAA2B,KAAK,CAAA;AAAA,OACrC;AAAA,KAAA;AAAA,oBAEA,KAAA,CAAA,aAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA;AAAA,UACL,GAAG,kBAAA;AAAA,UACH,GAAG,uBAAuB,KAAK,CAAA;AAAA,SACjC;AAAA,OAAA;AAAA,KACF;AAAA,GAEJ,CAEJ,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"Switch.js","sources":["../../../../../src/components/atoms/Switch/Switch.tsx"],"sourcesContent":["import React, { FC, useCallback, useRef } from 'react';\nimport {\n lightenDarkenColor,\n SwitchProps,\n useTheme,\n} from '@tecsinapse/react-core';\nimport { Transition } from 'react-transition-group';\nimport { StyledSwitchContent, StyledSwitch } from './styled';\n\nconst Switch: FC<SwitchProps> = ({\n onChange,\n activeColor = 'primary',\n activeColorTone = 'medium',\n inactiveColor = 'secondary',\n inactiveColorTone = 'light',\n active,\n disabled = false,\n ...rest\n}) => {\n const theme = useTheme();\n const transitionRef = useRef(null);\n const handleChange = useCallback(() => {\n if (!disabled) onChange(!active);\n }, [active, onChange]);\n\n const defaultStyleBackground = {\n transition: `all 300ms ease`,\n };\n\n const getBackgroundColor = (color: string) => {\n return disabled\n ? lightenDarkenColor(theme.color[inactiveColor][inactiveColorTone], 20)\n : color;\n };\n const transitionStylesBackground = {\n entering: {\n backgroundColor: getBackgroundColor(\n theme.color[inactiveColor][inactiveColorTone]\n ),\n },\n entered: {\n backgroundColor: getBackgroundColor(\n theme.color[activeColor][activeColorTone]\n ),\n },\n exiting: {\n backgroundColor: getBackgroundColor(\n theme.color[activeColor][activeColorTone]\n ),\n },\n exited: {\n backgroundColor: getBackgroundColor(\n theme.color[inactiveColor][inactiveColorTone]\n ),\n },\n };\n\n const defaultStyleCircle = {\n transition: `transform ${100}ms ease`,\n };\n\n const transitionStylesCircle = {\n entering: { transform: 'translateX(0%)' },\n entered: { transform: 'translateX(150%)' },\n exiting: { transform: 'translateX(150%)' },\n exited: { transform: 'translateX(0%)' },\n };\n\n return (\n <Transition in={active} timeout={100} nodeRef={transitionRef}>\n {state => (\n <div onClick={handleChange} ref={transitionRef}>\n <StyledSwitchContent\n {...rest}\n style={{\n ...defaultStyleBackground,\n ...transitionStylesBackground[state],\n }}\n >\n <StyledSwitch\n style={{\n ...defaultStyleCircle,\n ...transitionStylesCircle[state],\n }}\n />\n </StyledSwitchContent>\n </div>\n )}\n </Transition>\n );\n};\n\nexport default Switch;\n"],"names":[],"mappings":"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"}
@@ -4,10 +4,12 @@ export type ComputedType = {
4
4
  height?: number;
5
5
  };
6
6
  export type Position = 'top' | 'bottom' | 'right' | 'left';
7
+ export type MaxWidth = number;
7
8
  export interface ITooltip {
8
9
  title: string;
9
10
  position?: Position;
10
11
  children?: React.ReactNode;
12
+ maxWidht?: MaxWidth;
11
13
  }
12
14
  declare const Tooltip: React.FC<ITooltip>;
13
15
  export default Tooltip;
@@ -5,6 +5,7 @@ import { Container, TooltipSpan } from './styled.js';
5
5
  const Tooltip = ({
6
6
  children,
7
7
  title,
8
+ maxWidht,
8
9
  position = "bottom"
9
10
  }) => {
10
11
  const spanRef = React.useRef();
@@ -20,6 +21,7 @@ const Tooltip = ({
20
21
  return /* @__PURE__ */ React.createElement(Container, { position }, children, /* @__PURE__ */ React.createElement(
21
22
  TooltipSpan,
22
23
  {
24
+ maxWidth: maxWidht,
23
25
  computed,
24
26
  position,
25
27
  ref: (ref) => spanRef.current = ref
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../../../../src/components/atoms/Tooltip/Tooltip.tsx"],"sourcesContent":["import React from 'react';\nimport { Text } from '@tecsinapse/react-core';\nimport { Container, TooltipSpan } from './styled';\n\nexport type ComputedType = { width?: number; height?: number };\nexport type Position = 'top' | 'bottom' | 'right' | 'left';\n\nexport interface ITooltip {\n title: string;\n position?: Position;\n children?: React.ReactNode;\n}\n\nconst Tooltip: React.FC<ITooltip> = ({\n children,\n title,\n position = 'bottom',\n}) => {\n const spanRef = React.useRef<HTMLSpanElement | null>();\n const [computed, setComputed] = React.useState<ComputedType | undefined>(\n undefined\n );\n\n React.useLayoutEffect(() => {\n setComputed({\n width: spanRef.current?.clientWidth,\n height: spanRef.current?.clientHeight,\n });\n }, []);\n\n return (\n <Container position={position}>\n {children}\n <TooltipSpan\n computed={computed}\n position={position}\n ref={ref => (spanRef.current = ref)}\n >\n <Text\n fontWeight=\"bold\"\n typography=\"base\"\n colorVariant=\"secondary\"\n colorTone=\"xlight\"\n >\n {title}\n </Text>\n </TooltipSpan>\n </Container>\n );\n};\n\nexport default Tooltip;\n"],"names":[],"mappings":";;;;AAaA,MAAM,UAA8B,CAAC;AAAA,EACnC,QAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAW,GAAA,QAAA;AACb,CAAM,KAAA;AACJ,EAAM,MAAA,OAAA,GAAU,MAAM,MAA+B,EAAA,CAAA;AACrD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,KAAM,CAAA,QAAA;AAAA,IACpC,KAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,KAAA,CAAM,gBAAgB,MAAM;AAC1B,IAAY,WAAA,CAAA;AAAA,MACV,KAAA,EAAO,QAAQ,OAAS,EAAA,WAAA;AAAA,MACxB,MAAA,EAAQ,QAAQ,OAAS,EAAA,YAAA;AAAA,KAC1B,CAAA,CAAA;AAAA,GACH,EAAG,EAAE,CAAA,CAAA;AAEL,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,SAAU,EAAA,EAAA,QAAA,EAAA,EACR,QACD,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,QAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAA,EAAK,CAAQ,GAAA,KAAA,OAAA,CAAQ,OAAU,GAAA,GAAA;AAAA,KAAA;AAAA,oBAE/B,KAAA,CAAA,aAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,UAAW,EAAA,MAAA;AAAA,QACX,UAAW,EAAA,MAAA;AAAA,QACX,YAAa,EAAA,WAAA;AAAA,QACb,SAAU,EAAA,QAAA;AAAA,OAAA;AAAA,MAET,KAAA;AAAA,KACH;AAAA,GAEJ,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"Tooltip.js","sources":["../../../../../src/components/atoms/Tooltip/Tooltip.tsx"],"sourcesContent":["import React from 'react';\nimport { Text } from '@tecsinapse/react-core';\nimport { Container, TooltipSpan } from './styled';\n\nexport type ComputedType = { width?: number; height?: number };\nexport type Position = 'top' | 'bottom' | 'right' | 'left';\nexport type MaxWidth = number;\n\nexport interface ITooltip {\n title: string;\n position?: Position;\n children?: React.ReactNode;\n maxWidht?: MaxWidth;\n}\n\nconst Tooltip: React.FC<ITooltip> = ({\n children,\n title,\n maxWidht,\n position = 'bottom',\n}) => {\n const spanRef = React.useRef<HTMLSpanElement | null>();\n const [computed, setComputed] = React.useState<ComputedType | undefined>(\n undefined\n );\n\n React.useLayoutEffect(() => {\n setComputed({\n width: spanRef.current?.clientWidth,\n height: spanRef.current?.clientHeight,\n });\n }, []);\n\n return (\n <Container position={position}>\n {children}\n <TooltipSpan\n maxWidth={maxWidht}\n computed={computed}\n position={position}\n ref={ref => (spanRef.current = ref)}\n >\n <Text\n fontWeight=\"bold\"\n typography=\"base\"\n colorVariant=\"secondary\"\n colorTone=\"xlight\"\n >\n {title}\n </Text>\n </TooltipSpan>\n </Container>\n );\n};\n\nexport default Tooltip;\n"],"names":[],"mappings":";;;;AAeA,MAAM,UAA8B,CAAC;AAAA,EACnC,QAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAW,GAAA,QAAA;AACb,CAAM,KAAA;AACJ,EAAM,MAAA,OAAA,GAAU,MAAM,MAA+B,EAAA,CAAA;AACrD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,KAAM,CAAA,QAAA;AAAA,IACpC,KAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,KAAA,CAAM,gBAAgB,MAAM;AAC1B,IAAY,WAAA,CAAA;AAAA,MACV,KAAA,EAAO,QAAQ,OAAS,EAAA,WAAA;AAAA,MACxB,MAAA,EAAQ,QAAQ,OAAS,EAAA,YAAA;AAAA,KAC1B,CAAA,CAAA;AAAA,GACH,EAAG,EAAE,CAAA,CAAA;AAEL,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,SAAU,EAAA,EAAA,QAAA,EAAA,EACR,QACD,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,QAAU,EAAA,QAAA;AAAA,MACV,QAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAA,EAAK,CAAQ,GAAA,KAAA,OAAA,CAAQ,OAAU,GAAA,GAAA;AAAA,KAAA;AAAA,oBAE/B,KAAA,CAAA,aAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,UAAW,EAAA,MAAA;AAAA,QACX,UAAW,EAAA,MAAA;AAAA,QACX,YAAa,EAAA,WAAA;AAAA,QACb,SAAU,EAAA,QAAA;AAAA,OAAA;AAAA,MAET,KAAA;AAAA,KACH;AAAA,GAEJ,CAAA,CAAA;AAEJ;;;;"}
@@ -58,11 +58,13 @@ const rightArrow = (theme, position) => position === "right" && css`
58
58
  transparent;
59
59
  `;
60
60
  const TooltipSpan = styled("span")(
61
- ({ theme, computed, position }) => {
61
+ ({ theme, computed, position, maxWidth }) => {
62
62
  const { width = 0, height = 0 } = computed || {};
63
63
  return css`
64
+ max-width: ${maxWidth ? `${maxWidth}px` : "auto"};
64
65
  position: absolute;
65
66
  width: max-content;
67
+ line-break: anywhere;
66
68
  padding: ${theme.spacing.micro} ${theme.spacing.centi};
67
69
  border-radius: ${theme.borderRadius.mili};
68
70
  opacity: 0;
@@ -98,6 +100,7 @@ const TooltipSpan = styled("span")(
98
100
  );
99
101
  const Container = styled("div")`
100
102
  position: relative;
103
+ width: auto;
101
104
  &:hover {
102
105
  & > span {
103
106
  opacity: 1;
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","sources":["../../../../../src/components/atoms/Tooltip/styled.ts"],"sourcesContent":["import { css } from '@emotion/react';\nimport { StyleProps, ThemeProp } from '@tecsinapse/react-core';\nimport styled from '@emotion/styled';\nimport { ComputedType, Position } from './Tooltip';\n\ntype InjectedProps = { computed?: ComputedType; position?: Position };\n\n/** Bottom/Top commons */\nconst bottomOrTopStylesCommon = (width: number, position) =>\n ['top', 'bottom'].includes(position as Position) &&\n css`\n left: 50%;\n margin-left: -${width / 2}px;\n `;\n\nconst bottomOrTopArrowCommon = (position?: Position) =>\n ['top', 'bottom'].includes(position as Position) &&\n css`\n left: 50%;\n margin-left: -5px;\n `;\n\n/** Top */\nconst topStyles = (theme: ThemeProp, position?: Position) =>\n position === 'top' &&\n css`\n bottom: 100%;\n margin-bottom: ${theme.spacing.centi};\n transform: translateY(10%);\n `;\n\nconst topArrow = (theme: ThemeProp, position?: Position) =>\n position === 'top' &&\n css`\n top: 100%;\n border-color: ${theme.color.secondary.xdark} transparent transparent\n transparent;\n `;\n\n/** Bottom */\nconst bottomStyles = (theme: ThemeProp, position?: Position) =>\n position === 'bottom' &&\n css`\n top: 100%;\n margin-top: ${theme.spacing.centi};\n transform: translateY(-10%);\n `;\n\nconst bottomArrow = (theme: ThemeProp, position?: Position) =>\n position === 'bottom' &&\n css`\n bottom: 100%;\n border-color: transparent transparent ${theme.color.secondary.xdark}\n transparent;\n `;\n\n/** Bottom/Top commons */\nconst leftAndRightCommonStyles = (height: number, position?: Position) =>\n ['right', 'left'].includes(position as Position) &&\n css`\n top: 50%;\n margin-top: -${height / 2}px;\n `;\n\nconst leftOrRightArrowCommon = (position?: Position) =>\n ['right', 'left'].includes(position as Position) &&\n css`\n top: 50%;\n margin-top: -5px;\n `;\n\n/** Left */\nconst leftStyles = (theme: ThemeProp, position?: Position) =>\n position === 'left' &&\n css`\n right: 100%;\n margin-right: ${theme.spacing.centi};\n transform: translateX(10%);\n `;\n\nconst leftArrow = (theme: ThemeProp, position?: Position) =>\n position === 'left' &&\n css`\n left: 100%;\n border-color: transparent transparent transparent\n ${theme.color.secondary.xdark};\n `;\n\n/** Right */\nconst rightStyles = (theme: ThemeProp, position?: Position) =>\n position === 'right' &&\n css`\n left: 100%;\n margin-left: ${theme.spacing.centi};\n transform: translateX(-10%);\n `;\n\nconst rightArrow = (theme: ThemeProp, position?: Position) =>\n position === 'right' &&\n css`\n right: 100%;\n border-color: transparent ${theme.color.secondary.xdark} transparent\n transparent;\n `;\n\nexport const TooltipSpan = styled('span')<Partial<StyleProps> & InjectedProps>(\n ({ theme, computed, position }) => {\n const { width = 0, height = 0 } = computed || {};\n return css`\n position: absolute;\n width: max-content;\n padding: ${theme.spacing.micro} ${theme.spacing.centi};\n border-radius: ${theme.borderRadius.mili};\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.3s, visibility 0.3s, transform 0.3s;\n background-color: ${theme.color.secondary.xdark};\n z-index: ${theme.zIndex.absolute};\n\n ${bottomOrTopStylesCommon(width, position)}\n ${bottomStyles(theme, position)}\n ${topStyles(theme, position)}\n \n ${leftAndRightCommonStyles(height, position)}\n ${leftStyles(theme, position)}\n ${rightStyles(theme, position)}\n\n &::after {\n content: '';\n position: absolute;\n border-style: solid;\n border-width: 5px;\n\n ${bottomOrTopArrowCommon(position)}\n ${bottomArrow(theme, position)}\n ${topArrow(theme, position)}\n \n ${leftOrRightArrowCommon(position)}\n ${leftArrow(theme, position)}\n ${rightArrow(theme, position)}\n }\n `;\n }\n);\n\nexport const Container = styled('div')<{ position?: Position }>`\n position: relative;\n &:hover {\n & > span {\n opacity: 1;\n visibility: visible;\n display: flex;\n transform: ${({ position }) =>\n position === 'left' || position === 'right'\n ? 'translateX(0%)'\n : 'translateY(0%)'};\n }\n }\n`;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"styled.js","sources":["../../../../../src/components/atoms/Tooltip/styled.ts"],"sourcesContent":["import { css } from '@emotion/react';\nimport { StyleProps, ThemeProp } from '@tecsinapse/react-core';\nimport styled from '@emotion/styled';\nimport { ComputedType, MaxWidth, Position } from './Tooltip';\n\ntype InjectedProps = {\n computed?: ComputedType;\n position?: Position;\n maxWidth?: MaxWidth;\n};\n\n/** Bottom/Top commons */\nconst bottomOrTopStylesCommon = (width: number, position) =>\n ['top', 'bottom'].includes(position as Position) &&\n css`\n left: 50%;\n margin-left: -${width / 2}px;\n `;\n\nconst bottomOrTopArrowCommon = (position?: Position) =>\n ['top', 'bottom'].includes(position as Position) &&\n css`\n left: 50%;\n margin-left: -5px;\n `;\n\n/** Top */\nconst topStyles = (theme: ThemeProp, position?: Position) =>\n position === 'top' &&\n css`\n bottom: 100%;\n margin-bottom: ${theme.spacing.centi};\n transform: translateY(10%);\n `;\n\nconst topArrow = (theme: ThemeProp, position?: Position) =>\n position === 'top' &&\n css`\n top: 100%;\n border-color: ${theme.color.secondary.xdark} transparent transparent\n transparent;\n `;\n\n/** Bottom */\nconst bottomStyles = (theme: ThemeProp, position?: Position) =>\n position === 'bottom' &&\n css`\n top: 100%;\n margin-top: ${theme.spacing.centi};\n transform: translateY(-10%);\n `;\n\nconst bottomArrow = (theme: ThemeProp, position?: Position) =>\n position === 'bottom' &&\n css`\n bottom: 100%;\n border-color: transparent transparent ${theme.color.secondary.xdark}\n transparent;\n `;\n\n/** Bottom/Top commons */\nconst leftAndRightCommonStyles = (height: number, position?: Position) =>\n ['right', 'left'].includes(position as Position) &&\n css`\n top: 50%;\n margin-top: -${height / 2}px;\n `;\n\nconst leftOrRightArrowCommon = (position?: Position) =>\n ['right', 'left'].includes(position as Position) &&\n css`\n top: 50%;\n margin-top: -5px;\n `;\n\n/** Left */\nconst leftStyles = (theme: ThemeProp, position?: Position) =>\n position === 'left' &&\n css`\n right: 100%;\n margin-right: ${theme.spacing.centi};\n transform: translateX(10%);\n `;\n\nconst leftArrow = (theme: ThemeProp, position?: Position) =>\n position === 'left' &&\n css`\n left: 100%;\n border-color: transparent transparent transparent\n ${theme.color.secondary.xdark};\n `;\n\n/** Right */\nconst rightStyles = (theme: ThemeProp, position?: Position) =>\n position === 'right' &&\n css`\n left: 100%;\n margin-left: ${theme.spacing.centi};\n transform: translateX(-10%);\n `;\n\nconst rightArrow = (theme: ThemeProp, position?: Position) =>\n position === 'right' &&\n css`\n right: 100%;\n border-color: transparent ${theme.color.secondary.xdark} transparent\n transparent;\n `;\n\nexport const TooltipSpan = styled('span')<Partial<StyleProps> & InjectedProps>(\n ({ theme, computed, position, maxWidth }) => {\n const { width = 0, height = 0 } = computed || {};\n return css`\n max-width: ${maxWidth ? `${maxWidth}px` : 'auto'};\n position: absolute;\n width: max-content;\n line-break: anywhere;\n padding: ${theme.spacing.micro} ${theme.spacing.centi};\n border-radius: ${theme.borderRadius.mili};\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.3s, visibility 0.3s, transform 0.3s;\n background-color: ${theme.color.secondary.xdark};\n z-index: ${theme.zIndex.absolute};\n\n ${bottomOrTopStylesCommon(width, position)}\n ${bottomStyles(theme, position)}\n ${topStyles(theme, position)}\n \n ${leftAndRightCommonStyles(height, position)}\n ${leftStyles(theme, position)}\n ${rightStyles(theme, position)}\n\n &::after {\n content: '';\n position: absolute;\n border-style: solid;\n border-width: 5px;\n\n ${bottomOrTopArrowCommon(position)}\n ${bottomArrow(theme, position)}\n ${topArrow(theme, position)}\n \n ${leftOrRightArrowCommon(position)}\n ${leftArrow(theme, position)}\n ${rightArrow(theme, position)}\n }\n `;\n }\n);\n\nexport const Container = styled('div')<{\n position?: Position;\n}>`\n position: relative;\n width: auto;\n &:hover {\n & > span {\n opacity: 1;\n visibility: visible;\n display: flex;\n transform: ${({ position }) =>\n position === 'left' || position === 'right'\n ? 'translateX(0%)'\n : 'translateY(0%)'};\n }\n }\n`;\n"],"names":[],"mappings":"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"}
@@ -39,6 +39,10 @@ const DatePicker = ({
39
39
  }
40
40
  return void 0;
41
41
  }, [value]);
42
+ const checksFullRange = useCallback(() => {
43
+ if (type === "range" && !value?.highest)
44
+ onChange?.(void 0);
45
+ }, [value]);
42
46
  const controlComponent = (onPress, displayValue) => {
43
47
  return /* @__PURE__ */ React.createElement(
44
48
  InputMask,
@@ -123,7 +127,18 @@ const DatePicker = ({
123
127
  month: getMonth,
124
128
  requestShowCalendar: show,
125
129
  requestCloseCalendar: close,
126
- renderCalendar: (calendar) => /* @__PURE__ */ React.createElement(Dropdown, { visible, setVisible }, calendar)
130
+ renderCalendar: (calendar, handleBlur) => /* @__PURE__ */ React.createElement(
131
+ Dropdown,
132
+ {
133
+ visible,
134
+ setVisible,
135
+ onClickAway: () => {
136
+ handleBlur?.();
137
+ checksFullRange();
138
+ }
139
+ },
140
+ calendar
141
+ )
127
142
  }
128
143
  );
129
144
  }