@tecsinapse/react-web-kit 2.0.2 → 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 (140) 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/Accordion/animations.js.map +1 -1
  4. package/dist/cjs/components/atoms/Accordion/styled.js.map +1 -1
  5. package/dist/cjs/components/atoms/Button/styled.js.map +1 -1
  6. package/dist/cjs/components/atoms/Dropdown/index.js +1 -1
  7. package/dist/cjs/components/atoms/Dropdown/index.js.map +1 -1
  8. package/dist/cjs/components/atoms/Dropdown/styled.js.map +1 -1
  9. package/dist/cjs/components/atoms/Modal/Modal.js +3 -1
  10. package/dist/cjs/components/atoms/Modal/Modal.js.map +1 -1
  11. package/dist/cjs/components/atoms/Modal/styled.js.map +1 -1
  12. package/dist/cjs/components/atoms/Overlay/Overlay.js +4 -2
  13. package/dist/cjs/components/atoms/Overlay/Overlay.js.map +1 -1
  14. package/dist/cjs/components/atoms/Overlay/styled.js.map +1 -1
  15. package/dist/cjs/components/atoms/Skeleton/styled.js.map +1 -1
  16. package/dist/cjs/components/atoms/Switch/Switch.js +2 -1
  17. package/dist/cjs/components/atoms/Switch/Switch.js.map +1 -1
  18. package/dist/cjs/components/atoms/Switch/styled.js.map +1 -1
  19. package/dist/cjs/components/atoms/Table/Cell/styled.js.map +1 -1
  20. package/dist/cjs/components/atoms/Table/Container/styled.js.map +1 -1
  21. package/dist/cjs/components/atoms/Table/Header/styled.js.map +1 -1
  22. package/dist/cjs/components/atoms/Table/Row/styled.js.map +1 -1
  23. package/dist/cjs/components/atoms/Table/styled.js.map +1 -1
  24. package/dist/cjs/components/atoms/Tooltip/Tooltip.d.ts +2 -0
  25. package/dist/cjs/components/atoms/Tooltip/Tooltip.js +2 -0
  26. package/dist/cjs/components/atoms/Tooltip/Tooltip.js.map +1 -1
  27. package/dist/cjs/components/atoms/Tooltip/styled.js +4 -1
  28. package/dist/cjs/components/atoms/Tooltip/styled.js.map +1 -1
  29. package/dist/cjs/components/molecules/Breadcrumbs/BreadcrumbItem/styled.js.map +1 -1
  30. package/dist/cjs/components/molecules/Breadcrumbs/styled.js.map +1 -1
  31. package/dist/cjs/components/molecules/DatePicker/DatePicker.js +1 -1
  32. package/dist/cjs/components/molecules/DatePicker/DatePicker.js.map +1 -1
  33. package/dist/cjs/components/molecules/Drawer/Drawer.js +3 -1
  34. package/dist/cjs/components/molecules/Drawer/Drawer.js.map +1 -1
  35. package/dist/cjs/components/molecules/Drawer/styled.js.map +1 -1
  36. package/dist/cjs/components/molecules/Grid/Grid.js.map +1 -1
  37. package/dist/cjs/components/molecules/Grid/Item/Item.js.map +1 -1
  38. package/dist/cjs/components/molecules/IconTextButton/styled.js.map +1 -1
  39. package/dist/cjs/components/molecules/LabeledSwitch/styled.js.map +1 -1
  40. package/dist/cjs/components/molecules/Masonry/styled.js.map +1 -1
  41. package/dist/cjs/components/molecules/Menubar/MenuBlock/MenuBlock.js.map +1 -1
  42. package/dist/cjs/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/styled.js.map +1 -1
  43. package/dist/cjs/components/molecules/Menubar/MenuBlock/MenuItem/styled.js.map +1 -1
  44. package/dist/cjs/components/molecules/Menubar/MenuBlock/styled.js.map +1 -1
  45. package/dist/cjs/components/molecules/Menubar/Menubar.js +38 -22
  46. package/dist/cjs/components/molecules/Menubar/Menubar.js.map +1 -1
  47. package/dist/cjs/components/molecules/Menubar/MostUsed/MostUsed.js.map +1 -1
  48. package/dist/cjs/components/molecules/Menubar/MostUsed/styled.js.map +1 -1
  49. package/dist/cjs/components/molecules/Menubar/SearchResultItem/styled.js.map +1 -1
  50. package/dist/cjs/components/molecules/Menubar/SearchResultItem/utils.js.map +1 -1
  51. package/dist/cjs/components/molecules/Menubar/styled.js.map +1 -1
  52. package/dist/cjs/components/molecules/Select/Dropdown/Dropdown.d.ts +8 -3
  53. package/dist/cjs/components/molecules/Select/Dropdown/Dropdown.js +5 -3
  54. package/dist/cjs/components/molecules/Select/Dropdown/Dropdown.js.map +1 -1
  55. package/dist/cjs/components/molecules/Select/Dropdown/styled.js.map +1 -1
  56. package/dist/cjs/components/molecules/Select/Select.js +3 -1
  57. package/dist/cjs/components/molecules/Select/Select.js.map +1 -1
  58. package/dist/cjs/components/molecules/Select/SelectItem/styled.js.map +1 -1
  59. package/dist/cjs/components/molecules/Select/functions.d.ts +1 -1
  60. package/dist/cjs/components/molecules/Select/functions.js.map +1 -1
  61. package/dist/cjs/components/molecules/Snackbar/styled.js.map +1 -1
  62. package/dist/cjs/components/molecules/TextArea/styled.js.map +1 -1
  63. package/dist/cjs/components/organisms/DataGrid/DataGrid.js.map +1 -1
  64. package/dist/cjs/components/organisms/DataGrid/Footer/Footer.js.map +1 -1
  65. package/dist/cjs/components/organisms/DataGrid/Footer/styled.js.map +1 -1
  66. package/dist/cjs/components/organisms/DataGrid/Header/Header.js.map +1 -1
  67. package/dist/cjs/components/organisms/DataGrid/Header/styled.js.map +1 -1
  68. package/dist/cjs/components/organisms/DataGrid/Row/Row.js.map +1 -1
  69. package/dist/cjs/components/organisms/DataGrid/styled.js.map +1 -1
  70. package/dist/cjs/index.js +1 -1
  71. package/dist/esm/components/atoms/Accordion/Accordion.js +4 -3
  72. package/dist/esm/components/atoms/Accordion/Accordion.js.map +1 -1
  73. package/dist/esm/components/atoms/Accordion/animations.js.map +1 -1
  74. package/dist/esm/components/atoms/Accordion/styled.js.map +1 -1
  75. package/dist/esm/components/atoms/Button/styled.js.map +1 -1
  76. package/dist/esm/components/atoms/Dropdown/index.js +1 -1
  77. package/dist/esm/components/atoms/Dropdown/index.js.map +1 -1
  78. package/dist/esm/components/atoms/Dropdown/styled.js.map +1 -1
  79. package/dist/esm/components/atoms/Modal/Modal.js +4 -2
  80. package/dist/esm/components/atoms/Modal/Modal.js.map +1 -1
  81. package/dist/esm/components/atoms/Modal/styled.js.map +1 -1
  82. package/dist/esm/components/atoms/Overlay/Overlay.js +5 -3
  83. package/dist/esm/components/atoms/Overlay/Overlay.js.map +1 -1
  84. package/dist/esm/components/atoms/Overlay/styled.js.map +1 -1
  85. package/dist/esm/components/atoms/Skeleton/styled.js.map +1 -1
  86. package/dist/esm/components/atoms/Switch/Switch.js +3 -2
  87. package/dist/esm/components/atoms/Switch/Switch.js.map +1 -1
  88. package/dist/esm/components/atoms/Switch/styled.js.map +1 -1
  89. package/dist/esm/components/atoms/Table/Cell/styled.js.map +1 -1
  90. package/dist/esm/components/atoms/Table/Container/styled.js.map +1 -1
  91. package/dist/esm/components/atoms/Table/Header/styled.js.map +1 -1
  92. package/dist/esm/components/atoms/Table/Row/styled.js.map +1 -1
  93. package/dist/esm/components/atoms/Table/styled.js.map +1 -1
  94. package/dist/esm/components/atoms/Tooltip/Tooltip.d.ts +2 -0
  95. package/dist/esm/components/atoms/Tooltip/Tooltip.js +2 -0
  96. package/dist/esm/components/atoms/Tooltip/Tooltip.js.map +1 -1
  97. package/dist/esm/components/atoms/Tooltip/styled.js +4 -1
  98. package/dist/esm/components/atoms/Tooltip/styled.js.map +1 -1
  99. package/dist/esm/components/molecules/Breadcrumbs/BreadcrumbItem/styled.js.map +1 -1
  100. package/dist/esm/components/molecules/Breadcrumbs/styled.js.map +1 -1
  101. package/dist/esm/components/molecules/DatePicker/DatePicker.js +1 -1
  102. package/dist/esm/components/molecules/DatePicker/DatePicker.js.map +1 -1
  103. package/dist/esm/components/molecules/Drawer/Drawer.js +4 -2
  104. package/dist/esm/components/molecules/Drawer/Drawer.js.map +1 -1
  105. package/dist/esm/components/molecules/Drawer/styled.js.map +1 -1
  106. package/dist/esm/components/molecules/Grid/Grid.js.map +1 -1
  107. package/dist/esm/components/molecules/Grid/Item/Item.js.map +1 -1
  108. package/dist/esm/components/molecules/IconTextButton/styled.js.map +1 -1
  109. package/dist/esm/components/molecules/LabeledSwitch/styled.js.map +1 -1
  110. package/dist/esm/components/molecules/Masonry/styled.js.map +1 -1
  111. package/dist/esm/components/molecules/Menubar/MenuBlock/MenuBlock.js.map +1 -1
  112. package/dist/esm/components/molecules/Menubar/MenuBlock/MenuItem/SubMenuBlock/styled.js.map +1 -1
  113. package/dist/esm/components/molecules/Menubar/MenuBlock/MenuItem/styled.js.map +1 -1
  114. package/dist/esm/components/molecules/Menubar/MenuBlock/styled.js.map +1 -1
  115. package/dist/esm/components/molecules/Menubar/Menubar.js +38 -22
  116. package/dist/esm/components/molecules/Menubar/Menubar.js.map +1 -1
  117. package/dist/esm/components/molecules/Menubar/MostUsed/MostUsed.js.map +1 -1
  118. package/dist/esm/components/molecules/Menubar/MostUsed/styled.js.map +1 -1
  119. package/dist/esm/components/molecules/Menubar/SearchResultItem/styled.js.map +1 -1
  120. package/dist/esm/components/molecules/Menubar/SearchResultItem/utils.js.map +1 -1
  121. package/dist/esm/components/molecules/Menubar/styled.js.map +1 -1
  122. package/dist/esm/components/molecules/Select/Dropdown/Dropdown.d.ts +8 -3
  123. package/dist/esm/components/molecules/Select/Dropdown/Dropdown.js +5 -3
  124. package/dist/esm/components/molecules/Select/Dropdown/Dropdown.js.map +1 -1
  125. package/dist/esm/components/molecules/Select/Dropdown/styled.js.map +1 -1
  126. package/dist/esm/components/molecules/Select/Select.js +3 -1
  127. package/dist/esm/components/molecules/Select/Select.js.map +1 -1
  128. package/dist/esm/components/molecules/Select/SelectItem/styled.js.map +1 -1
  129. package/dist/esm/components/molecules/Select/functions.d.ts +1 -1
  130. package/dist/esm/components/molecules/Select/functions.js.map +1 -1
  131. package/dist/esm/components/molecules/Snackbar/styled.js.map +1 -1
  132. package/dist/esm/components/molecules/TextArea/styled.js.map +1 -1
  133. package/dist/esm/components/organisms/DataGrid/DataGrid.js.map +1 -1
  134. package/dist/esm/components/organisms/DataGrid/Footer/Footer.js.map +1 -1
  135. package/dist/esm/components/organisms/DataGrid/Footer/styled.js.map +1 -1
  136. package/dist/esm/components/organisms/DataGrid/Header/Header.js.map +1 -1
  137. package/dist/esm/components/organisms/DataGrid/Header/styled.js.map +1 -1
  138. package/dist/esm/components/organisms/DataGrid/Row/Row.js.map +1 -1
  139. package/dist/esm/components/organisms/DataGrid/styled.js.map +1 -1
  140. package/package.json +4 -4
@@ -25,6 +25,8 @@ const Menubar = ({
25
25
  const [input, setInput] = useDebouncedState("", setSearch);
26
26
  const [open, setOpen] = React.useState(false);
27
27
  const menuRef = useRef(null);
28
+ const transitionInputRef = useRef(null);
29
+ const transitionMenuRef = useRef(null);
28
30
  useClickAwayListener(menuRef, setOpen, "mouseup");
29
31
  const toggleOpen = React.useCallback(
30
32
  () => setOpen((state) => !state),
@@ -51,30 +53,44 @@ const Menubar = ({
51
53
  type: "material-community",
52
54
  fontColor: "light"
53
55
  }
54
- )), leftComponents, /* @__PURE__ */ React.createElement(Transition, { in: open, timeout: 250 }, (state) => /* @__PURE__ */ React.createElement(StyledInputContainer, { style: getInputContainerStyles(state) }, searchable && /* @__PURE__ */ React.createElement(
55
- StyledInput,
56
+ )), leftComponents, /* @__PURE__ */ React.createElement(Transition, { in: open, timeout: 250, nodeRef: transitionInputRef }, (state) => /* @__PURE__ */ React.createElement(
57
+ StyledInputContainer,
56
58
  {
57
- placeholder: searchPlaceholder,
58
- leftComponent: /* @__PURE__ */ React.createElement(StyledIconInput, null, /* @__PURE__ */ React.createElement(Icon, { name: "magnify", type: "material-community" })),
59
- value: input,
60
- onChange: setInput
61
- }
62
- ))), rightComponents), /* @__PURE__ */ React.createElement(Transition, { in: open, timeout: 250 }, (state) => /* @__PURE__ */ React.createElement(StyledContainerOpenMenu, { style: getContainerOpenMenuStyles(state) }, !search ? /* @__PURE__ */ React.createElement(React.Fragment, null, mostUsed && /* @__PURE__ */ React.createElement(
63
- MostUsed,
64
- {
65
- label: mostUsedLabel,
66
- data: mostUsed,
67
- toggle: toggleOpen
68
- }
69
- ), /* @__PURE__ */ React.createElement(MenuBlock, { options, toggle: toggleOpen })) : /* @__PURE__ */ React.createElement(StyledSearchResultsContainer, null, /* @__PURE__ */ React.createElement(StyledSearchTextContainer, null, /* @__PURE__ */ React.createElement(Text, { fontWeight: "bold" }, searchResultsLabel)), results.map((result) => /* @__PURE__ */ React.createElement(
70
- SearchResultItem,
59
+ style: getInputContainerStyles(state),
60
+ ref: transitionInputRef
61
+ },
62
+ searchable && /* @__PURE__ */ React.createElement(
63
+ StyledInput,
64
+ {
65
+ placeholder: searchPlaceholder,
66
+ leftComponent: /* @__PURE__ */ React.createElement(StyledIconInput, null, /* @__PURE__ */ React.createElement(Icon, { name: "magnify", type: "material-community" })),
67
+ value: input,
68
+ onChange: setInput
69
+ }
70
+ )
71
+ )), rightComponents), /* @__PURE__ */ React.createElement(Transition, { in: open, timeout: 250, nodeRef: transitionMenuRef }, (state) => /* @__PURE__ */ React.createElement(
72
+ StyledContainerOpenMenu,
71
73
  {
72
- key: `${result.title}-${result.category}`,
73
- data: result,
74
- searchTerm: search,
75
- toggle: toggleOpen
76
- }
77
- ))))));
74
+ style: getContainerOpenMenuStyles(state),
75
+ ref: transitionMenuRef
76
+ },
77
+ !search ? /* @__PURE__ */ React.createElement(React.Fragment, null, mostUsed && /* @__PURE__ */ React.createElement(
78
+ MostUsed,
79
+ {
80
+ label: mostUsedLabel,
81
+ data: mostUsed,
82
+ toggle: toggleOpen
83
+ }
84
+ ), /* @__PURE__ */ React.createElement(MenuBlock, { options, toggle: toggleOpen })) : /* @__PURE__ */ React.createElement(StyledSearchResultsContainer, null, /* @__PURE__ */ React.createElement(StyledSearchTextContainer, null, /* @__PURE__ */ React.createElement(Text, { fontWeight: "bold" }, searchResultsLabel)), results.map((result) => /* @__PURE__ */ React.createElement(
85
+ SearchResultItem,
86
+ {
87
+ key: `${result.title}-${result.category}`,
88
+ data: result,
89
+ searchTerm: search,
90
+ toggle: toggleOpen
91
+ }
92
+ )))
93
+ )));
78
94
  };
79
95
 
80
96
  export { Menubar as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Menubar.js","sources":["../../../../../src/components/molecules/Menubar/Menubar.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { Icon, Text, useDebouncedState } from '@tecsinapse/react-core';\nimport { Transition } from 'react-transition-group';\nimport {\n StyledIconInput,\n StyledMenuBar,\n StyledMenuButton,\n StyledContainerOpenMenu,\n StyledInput,\n StyledInputContainer,\n StyledSearchResultsContainer,\n StyledSearchTextContainer,\n} from './styled';\nimport { MostUsedType, OptionsType } from './types';\nimport { MostUsed } from './MostUsed';\nimport { MenuBlock } from './MenuBlock';\nimport { SearchResultItem } from './SearchResultItem';\nimport { filterAndTransform } from './utils';\nimport {\n getContainerOpenMenuStyles,\n getInputContainerStyles,\n} from './animations';\nimport { useClickAwayListener } from '../../../hooks';\n\nexport interface MenubarProps extends React.HTMLAttributes<HTMLDivElement> {\n options: OptionsType[];\n leftComponents?: React.ReactNode;\n rightComponents?: React.ReactNode;\n /** Limited to first 4 elements */\n mostUsed?: MostUsedType[];\n mostUsedLabel?: string;\n searchable?: boolean;\n searchPlaceholder?: string;\n searchResultsLabel?: string;\n}\n\nconst Menubar: React.FC<MenubarProps> = ({\n leftComponents,\n rightComponents,\n searchPlaceholder = 'O quê você deseja buscar?',\n options,\n mostUsed,\n mostUsedLabel = 'Mais acessados',\n searchResultsLabel = 'Resultados da busca',\n searchable = true,\n ...rest\n}) => {\n const [search, setSearch] = React.useState<string>('');\n const [results, setResults] = React.useState<MostUsedType[]>([]);\n const [input, setInput] = useDebouncedState<string>('', setSearch);\n const [open, setOpen] = React.useState<boolean>(false);\n const menuRef = useRef<HTMLDivElement | null>(null);\n useClickAwayListener(menuRef, setOpen, 'mouseup');\n\n const toggleOpen = React.useCallback(\n () => setOpen(state => !state),\n [setOpen]\n );\n\n React.useEffect(() => {\n if (search === '') return;\n setResults(filterAndTransform(options, search));\n }, [search]);\n\n return (\n <div ref={ref => (menuRef.current = ref)} {...rest}>\n <StyledMenuBar>\n <StyledMenuButton variant=\"filled\" color=\"primary\" onPress={toggleOpen}>\n {!open ? (\n <Icon\n size=\"deca\"\n name=\"menu\"\n type=\"material-community\"\n fontColor=\"light\"\n />\n ) : (\n <Icon\n size=\"deca\"\n name=\"close\"\n type=\"material-community\"\n fontColor=\"light\"\n />\n )}\n </StyledMenuButton>\n {leftComponents}\n <Transition in={open} timeout={250}>\n {state => (\n <StyledInputContainer style={getInputContainerStyles(state)}>\n {searchable && (\n <StyledInput\n placeholder={searchPlaceholder}\n leftComponent={\n <StyledIconInput>\n <Icon name=\"magnify\" type=\"material-community\" />\n </StyledIconInput>\n }\n value={input}\n onChange={setInput}\n />\n )}\n </StyledInputContainer>\n )}\n </Transition>\n {rightComponents}\n </StyledMenuBar>\n <Transition in={open} timeout={250}>\n {state => (\n <StyledContainerOpenMenu style={getContainerOpenMenuStyles(state)}>\n {!search ? (\n <>\n {mostUsed && (\n <MostUsed\n label={mostUsedLabel}\n data={mostUsed}\n toggle={toggleOpen}\n />\n )}\n <MenuBlock options={options} toggle={toggleOpen} />\n </>\n ) : (\n <StyledSearchResultsContainer>\n <StyledSearchTextContainer>\n <Text fontWeight=\"bold\">{searchResultsLabel}</Text>\n </StyledSearchTextContainer>\n {results.map(result => (\n <SearchResultItem\n key={`${result.title}-${result.category}`}\n data={result}\n searchTerm={search}\n toggle={toggleOpen}\n />\n ))}\n </StyledSearchResultsContainer>\n )}\n </StyledContainerOpenMenu>\n )}\n </Transition>\n </div>\n );\n};\n\nexport default Menubar;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Menubar.js","sources":["../../../../../src/components/molecules/Menubar/Menubar.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { Icon, Text, useDebouncedState } from '@tecsinapse/react-core';\nimport { Transition } from 'react-transition-group';\nimport {\n StyledIconInput,\n StyledMenuBar,\n StyledMenuButton,\n StyledContainerOpenMenu,\n StyledInput,\n StyledInputContainer,\n StyledSearchResultsContainer,\n StyledSearchTextContainer,\n} from './styled';\nimport { MostUsedType, OptionsType } from './types';\nimport { MostUsed } from './MostUsed';\nimport { MenuBlock } from './MenuBlock';\nimport { SearchResultItem } from './SearchResultItem';\nimport { filterAndTransform } from './utils';\nimport {\n getContainerOpenMenuStyles,\n getInputContainerStyles,\n} from './animations';\nimport { useClickAwayListener } from '../../../hooks';\n\nexport interface MenubarProps extends React.HTMLAttributes<HTMLDivElement> {\n options: OptionsType[];\n leftComponents?: React.ReactNode;\n rightComponents?: React.ReactNode;\n /** Limited to first 4 elements */\n mostUsed?: MostUsedType[];\n mostUsedLabel?: string;\n searchable?: boolean;\n searchPlaceholder?: string;\n searchResultsLabel?: string;\n}\n\nconst Menubar: React.FC<MenubarProps> = ({\n leftComponents,\n rightComponents,\n searchPlaceholder = 'O quê você deseja buscar?',\n options,\n mostUsed,\n mostUsedLabel = 'Mais acessados',\n searchResultsLabel = 'Resultados da busca',\n searchable = true,\n ...rest\n}) => {\n const [search, setSearch] = React.useState<string>('');\n const [results, setResults] = React.useState<MostUsedType[]>([]);\n const [input, setInput] = useDebouncedState<string>('', setSearch);\n const [open, setOpen] = React.useState<boolean>(false);\n const menuRef = useRef<HTMLDivElement | null>(null);\n const transitionInputRef = useRef<HTMLDivElement | null>(null);\n const transitionMenuRef = useRef<HTMLDivElement | null>(null);\n useClickAwayListener(menuRef, setOpen, 'mouseup');\n\n const toggleOpen = React.useCallback(\n () => setOpen(state => !state),\n [setOpen]\n );\n\n React.useEffect(() => {\n if (search === '') return;\n setResults(filterAndTransform(options, search));\n }, [search]);\n\n return (\n <div ref={ref => (menuRef.current = ref)} {...rest}>\n <StyledMenuBar>\n <StyledMenuButton variant=\"filled\" color=\"primary\" onPress={toggleOpen}>\n {!open ? (\n <Icon\n size=\"deca\"\n name=\"menu\"\n type=\"material-community\"\n fontColor=\"light\"\n />\n ) : (\n <Icon\n size=\"deca\"\n name=\"close\"\n type=\"material-community\"\n fontColor=\"light\"\n />\n )}\n </StyledMenuButton>\n {leftComponents}\n <Transition in={open} timeout={250} nodeRef={transitionInputRef}>\n {state => (\n <StyledInputContainer\n style={getInputContainerStyles(state)}\n ref={transitionInputRef}\n >\n {searchable && (\n <StyledInput\n placeholder={searchPlaceholder}\n leftComponent={\n <StyledIconInput>\n <Icon name=\"magnify\" type=\"material-community\" />\n </StyledIconInput>\n }\n value={input}\n onChange={setInput}\n />\n )}\n </StyledInputContainer>\n )}\n </Transition>\n {rightComponents}\n </StyledMenuBar>\n <Transition in={open} timeout={250} nodeRef={transitionMenuRef}>\n {state => (\n <StyledContainerOpenMenu\n style={getContainerOpenMenuStyles(state)}\n ref={transitionMenuRef}\n >\n {!search ? (\n <>\n {mostUsed && (\n <MostUsed\n label={mostUsedLabel}\n data={mostUsed}\n toggle={toggleOpen}\n />\n )}\n <MenuBlock options={options} toggle={toggleOpen} />\n </>\n ) : (\n <StyledSearchResultsContainer>\n <StyledSearchTextContainer>\n <Text fontWeight=\"bold\">{searchResultsLabel}</Text>\n </StyledSearchTextContainer>\n {results.map(result => (\n <SearchResultItem\n key={`${result.title}-${result.category}`}\n data={result}\n searchTerm={search}\n toggle={toggleOpen}\n />\n ))}\n </StyledSearchResultsContainer>\n )}\n </StyledContainerOpenMenu>\n )}\n </Transition>\n </div>\n );\n};\n\nexport default Menubar;\n"],"names":[],"mappings":";;;;;;;;;;;AAoCA,MAAM,UAAkC,CAAC;AAAA,EACvC,cAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAoB,GAAA,iCAAA;AAAA,EACpB,OAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAgB,GAAA,gBAAA;AAAA,EAChB,kBAAqB,GAAA,qBAAA;AAAA,EACrB,UAAa,GAAA,IAAA;AAAA,EACb,GAAG,IAAA;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,CAAC,MAAQ,EAAA,SAAS,CAAI,GAAA,KAAA,CAAM,SAAiB,EAAE,CAAA,CAAA;AACrD,EAAA,MAAM,CAAC,OAAS,EAAA,UAAU,IAAI,KAAM,CAAA,QAAA,CAAyB,EAAE,CAAA,CAAA;AAC/D,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAA,iBAAA,CAA0B,IAAI,SAAS,CAAA,CAAA;AACjE,EAAA,MAAM,CAAC,IAAM,EAAA,OAAO,CAAI,GAAA,KAAA,CAAM,SAAkB,KAAK,CAAA,CAAA;AACrD,EAAM,MAAA,OAAA,GAAU,OAA8B,IAAI,CAAA,CAAA;AAClD,EAAM,MAAA,kBAAA,GAAqB,OAA8B,IAAI,CAAA,CAAA;AAC7D,EAAM,MAAA,iBAAA,GAAoB,OAA8B,IAAI,CAAA,CAAA;AAC5D,EAAqB,oBAAA,CAAA,OAAA,EAAS,SAAS,SAAS,CAAA,CAAA;AAEhD,EAAA,MAAM,aAAa,KAAM,CAAA,WAAA;AAAA,IACvB,MAAM,OAAA,CAAQ,CAAS,KAAA,KAAA,CAAC,KAAK,CAAA;AAAA,IAC7B,CAAC,OAAO,CAAA;AAAA,GACV,CAAA;AAEA,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,MAAW,KAAA,EAAA;AAAI,MAAA,OAAA;AACnB,IAAW,UAAA,CAAA,kBAAA,CAAmB,OAAS,EAAA,MAAM,CAAC,CAAA,CAAA;AAAA,GAChD,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,SAAI,GAAK,EAAA,CAAA,GAAA,KAAQ,QAAQ,OAAU,GAAA,GAAA,EAAO,GAAG,IAC5C,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,qCACE,KAAA,CAAA,aAAA,CAAA,gBAAA,EAAA,EAAiB,SAAQ,QAAS,EAAA,KAAA,EAAM,WAAU,OAAS,EAAA,UAAA,EAAA,EACzD,CAAC,IACA,mBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,MAAA;AAAA,MACL,IAAK,EAAA,MAAA;AAAA,MACL,IAAK,EAAA,oBAAA;AAAA,MACL,SAAU,EAAA,OAAA;AAAA,KAAA;AAAA,GAGZ,mBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,MAAA;AAAA,MACL,IAAK,EAAA,OAAA;AAAA,MACL,IAAK,EAAA,oBAAA;AAAA,MACL,SAAU,EAAA,OAAA;AAAA,KAAA;AAAA,GAGhB,CACC,EAAA,cAAA,kBACA,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,EAAI,EAAA,IAAA,EAAM,OAAS,EAAA,GAAA,EAAK,OAAS,EAAA,kBAAA,EAAA,EAC1C,CACC,KAAA,qBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,oBAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,wBAAwB,KAAK,CAAA;AAAA,MACpC,GAAK,EAAA,kBAAA;AAAA,KAAA;AAAA,IAEJ,UACC,oBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QACC,WAAa,EAAA,iBAAA;AAAA,QACb,aAAA,sCACG,eACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,QAAK,IAAK,EAAA,SAAA,EAAU,IAAK,EAAA,oBAAA,EAAqB,CACjD,CAAA;AAAA,QAEF,KAAO,EAAA,KAAA;AAAA,QACP,QAAU,EAAA,QAAA;AAAA,OAAA;AAAA,KACZ;AAAA,GAIR,CAAA,EACC,eACH,CAAA,kBACC,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,EAAI,EAAA,IAAA,EAAM,OAAS,EAAA,GAAA,EAAK,OAAS,EAAA,iBAAA,EAAA,EAC1C,CACC,KAAA,qBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,2BAA2B,KAAK,CAAA;AAAA,MACvC,GAAK,EAAA,iBAAA;AAAA,KAAA;AAAA,IAEJ,CAAC,MACA,mBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EACG,QACC,oBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA,aAAA;AAAA,QACP,IAAM,EAAA,QAAA;AAAA,QACN,MAAQ,EAAA,UAAA;AAAA,OAAA;AAAA,KACV,sCAED,SAAU,EAAA,EAAA,OAAA,EAAkB,QAAQ,UAAY,EAAA,CACnD,oBAEC,KAAA,CAAA,aAAA,CAAA,4BAAA,EAAA,IAAA,sCACE,yBACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,QAAK,UAAW,EAAA,MAAA,EAAA,EAAQ,kBAAmB,CAC9C,CAAA,EACC,OAAQ,CAAA,GAAA,CAAI,CACX,MAAA,qBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACC,KAAK,CAAG,EAAA,MAAA,CAAO,KAAK,CAAA,CAAA,EAAI,OAAO,QAAQ,CAAA,CAAA;AAAA,QACvC,IAAM,EAAA,MAAA;AAAA,QACN,UAAY,EAAA,MAAA;AAAA,QACZ,MAAQ,EAAA,UAAA;AAAA,OAAA;AAAA,KAEX,CACH,CAAA;AAAA,GAIR,CACF,CAAA,CAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MostUsed.js","sources":["../../../../../../src/components/molecules/Menubar/MostUsed/MostUsed.tsx"],"sourcesContent":["import React from 'react';\nimport { Text } from '@tecsinapse/react-core';\nimport { StyledCard, StyledCardContainer } from './styled';\nimport { MostUsedType } from '../types';\n\ninterface MostUsedProps {\n data: MostUsedType[];\n label: string;\n toggle: () => void;\n}\n\nconst MostUsed: React.FC<MostUsedProps> = ({ data, label, toggle }) => {\n const noTextDecoration = { textDecoration: 'none' };\n\n return (\n <>\n <Text fontWeight=\"bold\">{label}</Text>\n <StyledCardContainer>\n {data\n .slice(0, 4)\n .map(\n ({\n title,\n category,\n Component = 'a',\n props = {},\n }: MostUsedType) => (\n <Component\n {...props}\n style={noTextDecoration}\n key={`${title}-${category}`}\n onClick={toggle}\n >\n <StyledCard elevated key={`${title}-${category}`}>\n <Text fontWeight=\"bold\" colorVariant=\"primary\">\n {title}\n </Text>\n <Text\n fontWeight=\"bold\"\n colorVariant=\"secondary\"\n typography=\"label\"\n >\n {category}\n </Text>\n </StyledCard>\n </Component>\n )\n )}\n </StyledCardContainer>\n </>\n );\n};\n\nexport default React.memo(MostUsed);\n"],"names":[],"mappings":";;;;AAWA,MAAM,WAAoC,CAAC,EAAE,IAAM,EAAA,KAAA,EAAO,QAAa,KAAA;AACrE,EAAM,MAAA,gBAAA,GAAmB,EAAE,cAAA,EAAgB,MAAO,EAAA,CAAA;AAElD,EAAA,uBAEI,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,UAAA,EAAW,MAAQ,EAAA,EAAA,KAAM,CAC/B,kBAAA,KAAA,CAAA,aAAA,CAAC,mBACE,EAAA,IAAA,EAAA,IAAA,CACE,KAAM,CAAA,CAAA,EAAG,CAAC,CACV,CAAA,GAAA;AAAA,IACC,CAAC;AAAA,MACC,KAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAY,GAAA,GAAA;AAAA,MACZ,QAAQ,EAAC;AAAA,KAET,qBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,KAAO,EAAA,gBAAA;AAAA,QACP,GAAA,EAAK,GAAG,KAAS,CAAA,CAAA,EAAA,QAAA,CAAA,CAAA;AAAA,QACjB,OAAS,EAAA,MAAA;AAAA,OAAA;AAAA,sBAER,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,QAAQ,EAAA,IAAA,EAAC,KAAK,CAAG,EAAA,KAAA,CAAA,CAAA,EAAS,QACpC,CAAA,CAAA,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,QAAK,UAAW,EAAA,MAAA,EAAO,YAAa,EAAA,SAAA,EAAA,EAClC,KACH,CACA,kBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,UAAW,EAAA,MAAA;AAAA,UACX,YAAa,EAAA,WAAA;AAAA,UACb,UAAW,EAAA,OAAA;AAAA,SAAA;AAAA,QAEV,QAAA;AAAA,OAEL,CAAA;AAAA,KACF;AAAA,GAGR,CACF,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEA,iBAAe,KAAA,CAAM,KAAK,QAAQ,CAAA;;;;"}
1
+ {"version":3,"file":"MostUsed.js","sources":["../../../../../../src/components/molecules/Menubar/MostUsed/MostUsed.tsx"],"sourcesContent":["import React from 'react';\nimport { Text } from '@tecsinapse/react-core';\nimport { StyledCard, StyledCardContainer } from './styled';\nimport { MostUsedType } from '../types';\n\ninterface MostUsedProps {\n data: MostUsedType[];\n label: string;\n toggle: () => void;\n}\n\nconst MostUsed: React.FC<MostUsedProps> = ({ data, label, toggle }) => {\n const noTextDecoration = { textDecoration: 'none' };\n\n return (\n <>\n <Text fontWeight=\"bold\">{label}</Text>\n <StyledCardContainer>\n {data\n .slice(0, 4)\n .map(\n ({\n title,\n category,\n Component = 'a',\n props = {},\n }: MostUsedType) => (\n <Component\n {...props}\n style={noTextDecoration}\n key={`${title}-${category}`}\n onClick={toggle}\n >\n <StyledCard elevated key={`${title}-${category}`}>\n <Text fontWeight=\"bold\" colorVariant=\"primary\">\n {title}\n </Text>\n <Text\n fontWeight=\"bold\"\n colorVariant=\"secondary\"\n typography=\"label\"\n >\n {category}\n </Text>\n </StyledCard>\n </Component>\n )\n )}\n </StyledCardContainer>\n </>\n );\n};\n\nexport default React.memo(MostUsed);\n"],"names":[],"mappings":";;;;AAWA,MAAM,WAAoC,CAAC,EAAE,IAAM,EAAA,KAAA,EAAO,QAAa,KAAA;AACrE,EAAM,MAAA,gBAAA,GAAmB,EAAE,cAAA,EAAgB,MAAO,EAAA,CAAA;AAElD,EAAA,uBAEI,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,UAAA,EAAW,MAAQ,EAAA,EAAA,KAAM,CAC/B,kBAAA,KAAA,CAAA,aAAA,CAAC,mBACE,EAAA,IAAA,EAAA,IAAA,CACE,KAAM,CAAA,CAAA,EAAG,CAAC,CACV,CAAA,GAAA;AAAA,IACC,CAAC;AAAA,MACC,KAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAY,GAAA,GAAA;AAAA,MACZ,QAAQ,EAAC;AAAA,KAET,qBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,KAAO,EAAA,gBAAA;AAAA,QACP,GAAK,EAAA,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA;AAAA,QACzB,OAAS,EAAA,MAAA;AAAA,OAAA;AAAA,0CAER,UAAW,EAAA,EAAA,QAAA,EAAQ,IAAC,EAAA,GAAA,EAAK,GAAG,KAAK,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAA,sCAC3C,IAAK,EAAA,EAAA,UAAA,EAAW,QAAO,YAAa,EAAA,SAAA,EAAA,EAClC,KACH,CACA,kBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,UAAW,EAAA,MAAA;AAAA,UACX,YAAa,EAAA,WAAA;AAAA,UACb,UAAW,EAAA,OAAA;AAAA,SAAA;AAAA,QAEV,QAAA;AAAA,OAEL,CAAA;AAAA,KACF;AAAA,GAGR,CACF,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEA,iBAAe,KAAA,CAAM,KAAK,QAAQ,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","sources":["../../../../../../src/components/molecules/Menubar/MostUsed/styled.ts"],"sourcesContent":["import { default as webStyled } from '@emotion/styled';\nimport { Card, StyleProps } from '@tecsinapse/react-core';\nimport { default as nativeStyled } from '@emotion/native';\n\nexport const StyledCardContainer = webStyled('div')<Partial<StyleProps>>`\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n grid-column-gap: ${({ theme }) => theme.spacing.mega};\n margin-bottom: ${({ theme }) => theme.spacing.kilo};\n margin-top: ${({ theme }) => theme.spacing.centi};\n`;\n\nexport const StyledCard = nativeStyled(Card)<Partial<StyleProps>>`\n padding-top: ${({ theme }) => theme.spacing.mili};\n padding-bottom: ${({ theme }) => theme.spacing.mili};\n padding-left: ${({ theme }) => theme.spacing.deca};\n padding-right: ${({ theme }) => theme.spacing.deca};\n`;\n"],"names":["webStyled"],"mappings":";;;;AAIa,MAAA,mBAAA,GAAsBA,OAAU,KAAK,CAAA,CAAA;AAAA;AAAA;AAAA,qBAAA,EAG3B,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,mBAAA,EAC/B,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,gBAAA,EAChC,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,KAAA,CAAA;AAAA,EAAA;AAGlC,MAAA,UAAA,GAAa,aAAa,IAAI,CAAA,CAAA;AAAA,iBAAA,EACxB,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,oBAAA,EAC1B,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,kBAAA,EAC/B,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,mBAAA,EAC5B,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"styled.js","sources":["../../../../../../src/components/molecules/Menubar/MostUsed/styled.ts"],"sourcesContent":["import { default as webStyled } from '@emotion/styled';\nimport { Card, StyleProps } from '@tecsinapse/react-core';\nimport { default as nativeStyled } from '@emotion/native';\n\nexport const StyledCardContainer = webStyled('div')<Partial<StyleProps>>`\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n grid-column-gap: ${({ theme }) => theme.spacing.mega};\n margin-bottom: ${({ theme }) => theme.spacing.kilo};\n margin-top: ${({ theme }) => theme.spacing.centi};\n`;\n\nexport const StyledCard = nativeStyled(Card)<Partial<StyleProps>>`\n padding-top: ${({ theme }) => theme.spacing.mili};\n padding-bottom: ${({ theme }) => theme.spacing.mili};\n padding-left: ${({ theme }) => theme.spacing.deca};\n padding-right: ${({ theme }) => theme.spacing.deca};\n`;\n"],"names":["webStyled"],"mappings":";;;;AAIa,MAAA,mBAAA,GAAsBA,OAAU,KAAK,CAAA,CAAA;AAAA;AAAA;AAAA,qBAAA,EAG3B,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,QAAQ,IAAI,CAAA;AAAA,mBAAA,EACnC,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,QAAQ,IAAI,CAAA;AAAA,gBAAA,EACpC,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,QAAQ,KAAK,CAAA;AAAA,EAAA;AAGvC,MAAA,UAAA,GAAa,aAAa,IAAI,CAAA,CAAA;AAAA,iBAAA,EACxB,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,QAAQ,IAAI,CAAA;AAAA,oBAAA,EAC9B,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,QAAQ,IAAI,CAAA;AAAA,kBAAA,EACnC,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,QAAQ,IAAI,CAAA;AAAA,mBAAA,EAChC,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,QAAQ,IAAI,CAAA;AAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","sources":["../../../../../../src/components/molecules/Menubar/SearchResultItem/styled.ts"],"sourcesContent":["import styled from '@emotion/styled';\nimport { default as nativeStyled } from '@emotion/native';\nimport { hex2rgba, StyleProps, Text } from '@tecsinapse/react-core';\n\nexport const StyledSearchItemContainer = styled('div')<Partial<StyleProps>>`\n display: flex;\n flex-direction: column;\n padding: ${({ theme }) => `${theme.spacing.mili} 0 ${theme.spacing.centi} 0`};\n border-top: ${({ theme }) =>\n `${theme.borderWidth.pico} solid ${hex2rgba(\n theme.miscellaneous.shadow,\n 0.05\n )}`};\n`;\n\nexport const HighlightText = nativeStyled(Text)<Partial<StyleProps>>`\n text-decoration: underline;\n text-decoration-color: ${({ theme }) => theme.font.color.orange};\n`;\n"],"names":[],"mappings":";;;;AAIa,MAAA,yBAAA,GAA4B,OAAO,KAAK,CAAA,CAAA;AAAA;AAAA;AAAA,WAGxC,EAAA,CAAC,EAAE,KAAM,EAAA,KAAM,GAAG,KAAM,CAAA,OAAA,CAAQ,IAAU,CAAA,GAAA,EAAA,KAAA,CAAM,OAAQ,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA;AAAA,cAAA,EACrD,CAAC,EAAE,KAAA,OACf,CAAG,EAAA,KAAA,CAAM,YAAY,IAAc,CAAA,OAAA,EAAA,QAAA;AAAA,EACjC,MAAM,aAAc,CAAA,MAAA;AAAA,EACpB,IAAA;AACF,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;AAGS,MAAA,aAAA,GAAgB,aAAa,IAAI,CAAA,CAAA;AAAA;AAAA,yBAAA,EAEnB,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,KAAK,KAAM,CAAA,MAAA,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"styled.js","sources":["../../../../../../src/components/molecules/Menubar/SearchResultItem/styled.ts"],"sourcesContent":["import styled from '@emotion/styled';\nimport { default as nativeStyled } from '@emotion/native';\nimport { hex2rgba, StyleProps, Text } from '@tecsinapse/react-core';\n\nexport const StyledSearchItemContainer = styled('div')<Partial<StyleProps>>`\n display: flex;\n flex-direction: column;\n padding: ${({ theme }) => `${theme.spacing.mili} 0 ${theme.spacing.centi} 0`};\n border-top: ${({ theme }) =>\n `${theme.borderWidth.pico} solid ${hex2rgba(\n theme.miscellaneous.shadow,\n 0.05\n )}`};\n`;\n\nexport const HighlightText = nativeStyled(Text)<Partial<StyleProps>>`\n text-decoration: underline;\n text-decoration-color: ${({ theme }) => theme.font.color.orange};\n`;\n"],"names":[],"mappings":";;;;AAIa,MAAA,yBAAA,GAA4B,OAAO,KAAK,CAAA,CAAA;AAAA;AAAA;AAAA,WAAA,EAGxC,CAAC,EAAE,KAAM,EAAA,KAAM,CAAG,EAAA,KAAA,CAAM,OAAQ,CAAA,IAAI,CAAM,GAAA,EAAA,KAAA,CAAM,OAAQ,CAAA,KAAK,CAAI,EAAA,CAAA,CAAA;AAAA,cAC9D,EAAA,CAAC,EAAE,KAAM,EAAA,KACrB,GAAG,KAAM,CAAA,WAAA,CAAY,IAAI,CAAU,OAAA,EAAA,QAAA;AAAA,EACjC,MAAM,aAAc,CAAA,MAAA;AAAA,EACpB,IAAA;AACF,CAAC,CAAE,CAAA,CAAA;AAAA,EAAA;AAGM,MAAA,aAAA,GAAgB,aAAa,IAAI,CAAA,CAAA;AAAA;AAAA,yBAAA,EAEnB,CAAC,EAAE,KAAA,OAAY,KAAM,CAAA,IAAA,CAAK,MAAM,MAAM,CAAA;AAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../src/components/molecules/Menubar/SearchResultItem/utils.tsx"],"sourcesContent":["import React from 'react';\n\nconst normalize = (str: string): string => {\n return str\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .replace(/[-[\\]{}()*+?.,\\\\^$|#]/g, ' ')\n .toLowerCase();\n};\n\nconst matchSpliter = (\n str: string,\n indexes: number[],\n size: number\n): string[] => {\n const result: string[] = [];\n let currentIndex = 0;\n\n indexes.forEach((index: number) => {\n result.push(str.substring(currentIndex, index));\n result.push(str.substring(index, index + size));\n currentIndex = index + size;\n });\n\n result.push(str.substring(currentIndex, str.length));\n\n return result.filter(e => e);\n};\n\nexport const stringMatcher = (\n searchTerm: string,\n textToReplace: string\n): RegExpMatchArray[] => {\n const s = normalize(searchTerm);\n const tx = normalize(textToReplace);\n\n const r = new RegExp(`(${s})`, 'g');\n\n return Array.from(tx.matchAll(r));\n};\n\nconst highlightReplacer = <T,>(\n searchTerm: string,\n textToReplace: string,\n Component: React.ElementType,\n props: T\n): React.ReactNode => {\n const search = normalize(searchTerm);\n const matches = stringMatcher(searchTerm, textToReplace);\n\n if (matches.length <= 0) {\n return textToReplace;\n }\n\n const indexes: number[] = matches.map(match => match.index) as number[];\n const splited = matchSpliter(textToReplace, indexes, searchTerm.length);\n\n return splited.map((value, idx) => {\n return normalize(value) === search ? (\n <Component key={`highlight-${value}${idx}`} {...props}>\n {value}\n </Component>\n ) : (\n <>{value}</>\n );\n });\n};\n\nexport const highlight = <T,>(\n searchTerm: string,\n textToReplace: string,\n Component: React.ElementType,\n props: T\n): React.ReactNode => {\n if (textToReplace && searchTerm) {\n return highlightReplacer(searchTerm, textToReplace, Component, props);\n }\n\n return textToReplace;\n};\n"],"names":[],"mappings":";;AAEA,MAAM,SAAA,GAAY,CAAC,GAAwB,KAAA;AACzC,EAAA,OAAO,GACJ,CAAA,SAAA,CAAU,KAAK,CAAA,CACf,OAAQ,CAAA,kBAAA,EAAoB,EAAE,CAAA,CAC9B,OAAQ,CAAA,wBAAA,EAA0B,GAAG,CAAA,CACrC,WAAY,EAAA,CAAA;AACjB,CAAA,CAAA;AAEA,MAAM,YAAe,GAAA,CACnB,GACA,EAAA,OAAA,EACA,IACa,KAAA;AACb,EAAA,MAAM,SAAmB,EAAC,CAAA;AAC1B,EAAA,IAAI,YAAe,GAAA,CAAA,CAAA;AAEnB,EAAQ,OAAA,CAAA,OAAA,CAAQ,CAAC,KAAkB,KAAA;AACjC,IAAA,MAAA,CAAO,IAAK,CAAA,GAAA,CAAI,SAAU,CAAA,YAAA,EAAc,KAAK,CAAC,CAAA,CAAA;AAC9C,IAAA,MAAA,CAAO,KAAK,GAAI,CAAA,SAAA,CAAU,KAAO,EAAA,KAAA,GAAQ,IAAI,CAAC,CAAA,CAAA;AAC9C,IAAA,YAAA,GAAe,KAAQ,GAAA,IAAA,CAAA;AAAA,GACxB,CAAA,CAAA;AAED,EAAA,MAAA,CAAO,KAAK,GAAI,CAAA,SAAA,CAAU,YAAc,EAAA,GAAA,CAAI,MAAM,CAAC,CAAA,CAAA;AAEnD,EAAO,OAAA,MAAA,CAAO,MAAO,CAAA,CAAA,CAAA,KAAK,CAAC,CAAA,CAAA;AAC7B,CAAA,CAAA;AAEa,MAAA,aAAA,GAAgB,CAC3B,UAAA,EACA,aACuB,KAAA;AACvB,EAAM,MAAA,CAAA,GAAI,UAAU,UAAU,CAAA,CAAA;AAC9B,EAAM,MAAA,EAAA,GAAK,UAAU,aAAa,CAAA,CAAA;AAElC,EAAA,MAAM,CAAI,GAAA,IAAI,MAAO,CAAA,CAAA,CAAA,EAAI,MAAM,GAAG,CAAA,CAAA;AAElC,EAAA,OAAO,KAAM,CAAA,IAAA,CAAK,EAAG,CAAA,QAAA,CAAS,CAAC,CAAC,CAAA,CAAA;AAClC,EAAA;AAEA,MAAM,iBAAoB,GAAA,CACxB,UACA,EAAA,aAAA,EACA,WACA,KACoB,KAAA;AACpB,EAAM,MAAA,MAAA,GAAS,UAAU,UAAU,CAAA,CAAA;AACnC,EAAM,MAAA,OAAA,GAAU,aAAc,CAAA,UAAA,EAAY,aAAa,CAAA,CAAA;AAEvD,EAAI,IAAA,OAAA,CAAQ,UAAU,CAAG,EAAA;AACvB,IAAO,OAAA,aAAA,CAAA;AAAA,GACT;AAEA,EAAA,MAAM,OAAoB,GAAA,OAAA,CAAQ,GAAI,CAAA,CAAA,KAAA,KAAS,MAAM,KAAK,CAAA,CAAA;AAC1D,EAAA,MAAM,OAAU,GAAA,YAAA,CAAa,aAAe,EAAA,OAAA,EAAS,WAAW,MAAM,CAAA,CAAA;AAEtE,EAAA,OAAO,OAAQ,CAAA,GAAA,CAAI,CAAC,KAAA,EAAO,GAAQ,KAAA;AACjC,IAAA,OAAO,SAAU,CAAA,KAAK,CAAM,KAAA,MAAA,uCACzB,SAAU,EAAA,EAAA,GAAA,EAAK,CAAa,UAAA,EAAA,KAAA,CAAA,EAAQ,OAAQ,GAAG,KAAA,EAAA,EAC7C,KACH,CAAA,6DAEG,KAAM,CAAA,CAAA;AAAA,GAEZ,CAAA,CAAA;AACH,CAAA,CAAA;AAEO,MAAM,SAAY,GAAA,CACvB,UACA,EAAA,aAAA,EACA,WACA,KACoB,KAAA;AACpB,EAAA,IAAI,iBAAiB,UAAY,EAAA;AAC/B,IAAA,OAAO,iBAAkB,CAAA,UAAA,EAAY,aAAe,EAAA,SAAA,EAAW,KAAK,CAAA,CAAA;AAAA,GACtE;AAEA,EAAO,OAAA,aAAA,CAAA;AACT;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../src/components/molecules/Menubar/SearchResultItem/utils.tsx"],"sourcesContent":["import React from 'react';\n\nconst normalize = (str: string): string => {\n return str\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .replace(/[-[\\]{}()*+?.,\\\\^$|#]/g, ' ')\n .toLowerCase();\n};\n\nconst matchSpliter = (\n str: string,\n indexes: number[],\n size: number\n): string[] => {\n const result: string[] = [];\n let currentIndex = 0;\n\n indexes.forEach((index: number) => {\n result.push(str.substring(currentIndex, index));\n result.push(str.substring(index, index + size));\n currentIndex = index + size;\n });\n\n result.push(str.substring(currentIndex, str.length));\n\n return result.filter(e => e);\n};\n\nexport const stringMatcher = (\n searchTerm: string,\n textToReplace: string\n): RegExpMatchArray[] => {\n const s = normalize(searchTerm);\n const tx = normalize(textToReplace);\n\n const r = new RegExp(`(${s})`, 'g');\n\n return Array.from(tx.matchAll(r));\n};\n\nconst highlightReplacer = <T,>(\n searchTerm: string,\n textToReplace: string,\n Component: React.ElementType,\n props: T\n): React.ReactNode => {\n const search = normalize(searchTerm);\n const matches = stringMatcher(searchTerm, textToReplace);\n\n if (matches.length <= 0) {\n return textToReplace;\n }\n\n const indexes: number[] = matches.map(match => match.index) as number[];\n const splited = matchSpliter(textToReplace, indexes, searchTerm.length);\n\n return splited.map((value, idx) => {\n return normalize(value) === search ? (\n <Component key={`highlight-${value}${idx}`} {...props}>\n {value}\n </Component>\n ) : (\n <>{value}</>\n );\n });\n};\n\nexport const highlight = <T,>(\n searchTerm: string,\n textToReplace: string,\n Component: React.ElementType,\n props: T\n): React.ReactNode => {\n if (textToReplace && searchTerm) {\n return highlightReplacer(searchTerm, textToReplace, Component, props);\n }\n\n return textToReplace;\n};\n"],"names":[],"mappings":";;AAEA,MAAM,SAAA,GAAY,CAAC,GAAwB,KAAA;AACzC,EAAA,OAAO,GACJ,CAAA,SAAA,CAAU,KAAK,CAAA,CACf,OAAQ,CAAA,kBAAA,EAAoB,EAAE,CAAA,CAC9B,OAAQ,CAAA,wBAAA,EAA0B,GAAG,CAAA,CACrC,WAAY,EAAA,CAAA;AACjB,CAAA,CAAA;AAEA,MAAM,YAAe,GAAA,CACnB,GACA,EAAA,OAAA,EACA,IACa,KAAA;AACb,EAAA,MAAM,SAAmB,EAAC,CAAA;AAC1B,EAAA,IAAI,YAAe,GAAA,CAAA,CAAA;AAEnB,EAAQ,OAAA,CAAA,OAAA,CAAQ,CAAC,KAAkB,KAAA;AACjC,IAAA,MAAA,CAAO,IAAK,CAAA,GAAA,CAAI,SAAU,CAAA,YAAA,EAAc,KAAK,CAAC,CAAA,CAAA;AAC9C,IAAA,MAAA,CAAO,KAAK,GAAI,CAAA,SAAA,CAAU,KAAO,EAAA,KAAA,GAAQ,IAAI,CAAC,CAAA,CAAA;AAC9C,IAAA,YAAA,GAAe,KAAQ,GAAA,IAAA,CAAA;AAAA,GACxB,CAAA,CAAA;AAED,EAAA,MAAA,CAAO,KAAK,GAAI,CAAA,SAAA,CAAU,YAAc,EAAA,GAAA,CAAI,MAAM,CAAC,CAAA,CAAA;AAEnD,EAAO,OAAA,MAAA,CAAO,MAAO,CAAA,CAAA,CAAA,KAAK,CAAC,CAAA,CAAA;AAC7B,CAAA,CAAA;AAEa,MAAA,aAAA,GAAgB,CAC3B,UAAA,EACA,aACuB,KAAA;AACvB,EAAM,MAAA,CAAA,GAAI,UAAU,UAAU,CAAA,CAAA;AAC9B,EAAM,MAAA,EAAA,GAAK,UAAU,aAAa,CAAA,CAAA;AAElC,EAAA,MAAM,IAAI,IAAI,MAAA,CAAO,CAAI,CAAA,EAAA,CAAC,KAAK,GAAG,CAAA,CAAA;AAElC,EAAA,OAAO,KAAM,CAAA,IAAA,CAAK,EAAG,CAAA,QAAA,CAAS,CAAC,CAAC,CAAA,CAAA;AAClC,EAAA;AAEA,MAAM,iBAAoB,GAAA,CACxB,UACA,EAAA,aAAA,EACA,WACA,KACoB,KAAA;AACpB,EAAM,MAAA,MAAA,GAAS,UAAU,UAAU,CAAA,CAAA;AACnC,EAAM,MAAA,OAAA,GAAU,aAAc,CAAA,UAAA,EAAY,aAAa,CAAA,CAAA;AAEvD,EAAI,IAAA,OAAA,CAAQ,UAAU,CAAG,EAAA;AACvB,IAAO,OAAA,aAAA,CAAA;AAAA,GACT;AAEA,EAAA,MAAM,OAAoB,GAAA,OAAA,CAAQ,GAAI,CAAA,CAAA,KAAA,KAAS,MAAM,KAAK,CAAA,CAAA;AAC1D,EAAA,MAAM,OAAU,GAAA,YAAA,CAAa,aAAe,EAAA,OAAA,EAAS,WAAW,MAAM,CAAA,CAAA;AAEtE,EAAA,OAAO,OAAQ,CAAA,GAAA,CAAI,CAAC,KAAA,EAAO,GAAQ,KAAA;AACjC,IAAA,OAAO,UAAU,KAAK,CAAA,KAAM,MAC1B,mBAAA,KAAA,CAAA,aAAA,CAAC,aAAU,GAAK,EAAA,CAAA,UAAA,EAAa,KAAK,CAAA,EAAG,GAAG,CAAK,CAAA,EAAA,GAAG,SAC7C,KACH,CAAA,6DAEG,KAAM,CAAA,CAAA;AAAA,GAEZ,CAAA,CAAA;AACH,CAAA,CAAA;AAEO,MAAM,SAAY,GAAA,CACvB,UACA,EAAA,aAAA,EACA,WACA,KACoB,KAAA;AACpB,EAAA,IAAI,iBAAiB,UAAY,EAAA;AAC/B,IAAA,OAAO,iBAAkB,CAAA,UAAA,EAAY,aAAe,EAAA,SAAA,EAAW,KAAK,CAAA,CAAA;AAAA,GACtE;AAEA,EAAO,OAAA,aAAA,CAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","sources":["../../../../../src/components/molecules/Menubar/styled.ts"],"sourcesContent":["import { default as webStyled } from '@emotion/styled';\nimport { default as nativeStyled } from '@emotion/native';\nimport { hex2rgba, StyleProps } from '@tecsinapse/react-core';\nimport { Button } from '../../atoms/Button';\nimport { Input } from '../../atoms/Input';\n\nexport const StyledIconInput = webStyled('div')<Partial<StyleProps>>`\n padding-top: calc(${({ theme }) => theme.spacing.centi} + 2px);\n padding-left: ${({ theme }) => theme.spacing.centi};\n padding-bottom: calc(${({ theme }) => theme.spacing.centi} - 2px);\n padding-right: ${({ theme }) => theme.spacing.centi};\n`;\n\nexport const StyledMenuBar = webStyled('div')<Partial<StyleProps>>`\n position: relative;\n background-color: ${({ theme }) => theme.miscellaneous.surfaceColor};\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: ${({ theme }) => `${theme.spacing.deca} ${theme.spacing.kilo}`};\n box-shadow: 0px 2px 8px ${({ theme }) =>\n hex2rgba(theme.miscellaneous.shadow, 0.05)};\n`;\n\nexport const StyledMenuButton = nativeStyled(Button)<Partial<StyleProps>>`\n padding-top: calc(${({ theme }) => theme.spacing.centi} + 2px);\n padding-right: calc(${({ theme }) => theme.spacing.centi} + 2px);\n padding-bottom: calc(${({ theme }) => theme.spacing.centi} + 2px);\n padding-left: calc(${({ theme }) => theme.spacing.centi} + 2px);\n margin-right: ${({ theme }) => theme.spacing.kilo};\n & * {\n user-select: none;\n }\n`;\n\nexport const StyledContainerOpenMenu = webStyled('div')<Partial<StyleProps>>`\n border-top: ${({ theme }) =>\n `${theme.borderWidth.pico} solid ${hex2rgba(\n theme.miscellaneous.shadow,\n 0.05\n )}`};\n background-color: ${({ theme }) => theme.miscellaneous.surfaceColor}; \n border-bottom-left-radius: ${({ theme }) => theme.borderRadius.mili}; \n border-bottom-right-radius: ${({ theme }) => theme.borderRadius.mili};\n box-shadow: 0px 2px 8px ${({ theme }) =>\n hex2rgba(theme.miscellaneous.shadow, 0.05)};\n padding-right: 8vw;\n padding-left: 8vw;\n padding-top: ${({ theme }) => theme.spacing.kilo};\n padding-bottom: ${({ theme }) => theme.spacing.mega};\n position: absolute;\n z-index: ${({ theme }) => theme.zIndex.header + 1};\n width: -webkit-fill-available;\n width: -moz-available;\n`;\n\nexport const StyledInput = nativeStyled(Input)<Partial<StyleProps>>`\n width: 100%;\n`;\n\nexport const StyledInputContainer = webStyled('div')`\n display: flex;\n flex: 1;\n`;\n\nexport const StyledSearchResultsContainer = webStyled('div')`\n display: flex;\n flex-direction: column;\n`;\n\nexport const StyledSearchTextContainer = webStyled('div')<Partial<StyleProps>>`\n margin-bottom: ${({ theme }) => theme.spacing.mili};\n`;\n"],"names":["webStyled"],"mappings":"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"}
1
+ {"version":3,"file":"styled.js","sources":["../../../../../src/components/molecules/Menubar/styled.ts"],"sourcesContent":["import { default as webStyled } from '@emotion/styled';\nimport { default as nativeStyled } from '@emotion/native';\nimport { hex2rgba, StyleProps } from '@tecsinapse/react-core';\nimport { Button } from '../../atoms/Button';\nimport { Input } from '../../atoms/Input';\n\nexport const StyledIconInput = webStyled('div')<Partial<StyleProps>>`\n padding-top: calc(${({ theme }) => theme.spacing.centi} + 2px);\n padding-left: ${({ theme }) => theme.spacing.centi};\n padding-bottom: calc(${({ theme }) => theme.spacing.centi} - 2px);\n padding-right: ${({ theme }) => theme.spacing.centi};\n`;\n\nexport const StyledMenuBar = webStyled('div')<Partial<StyleProps>>`\n position: relative;\n background-color: ${({ theme }) => theme.miscellaneous.surfaceColor};\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: ${({ theme }) => `${theme.spacing.deca} ${theme.spacing.kilo}`};\n box-shadow: 0px 2px 8px ${({ theme }) =>\n hex2rgba(theme.miscellaneous.shadow, 0.05)};\n`;\n\nexport const StyledMenuButton = nativeStyled(Button)<Partial<StyleProps>>`\n padding-top: calc(${({ theme }) => theme.spacing.centi} + 2px);\n padding-right: calc(${({ theme }) => theme.spacing.centi} + 2px);\n padding-bottom: calc(${({ theme }) => theme.spacing.centi} + 2px);\n padding-left: calc(${({ theme }) => theme.spacing.centi} + 2px);\n margin-right: ${({ theme }) => theme.spacing.kilo};\n & * {\n user-select: none;\n }\n`;\n\nexport const StyledContainerOpenMenu = webStyled('div')<Partial<StyleProps>>`\n border-top: ${({ theme }) =>\n `${theme.borderWidth.pico} solid ${hex2rgba(\n theme.miscellaneous.shadow,\n 0.05\n )}`};\n background-color: ${({ theme }) => theme.miscellaneous.surfaceColor}; \n border-bottom-left-radius: ${({ theme }) => theme.borderRadius.mili}; \n border-bottom-right-radius: ${({ theme }) => theme.borderRadius.mili};\n box-shadow: 0px 2px 8px ${({ theme }) =>\n hex2rgba(theme.miscellaneous.shadow, 0.05)};\n padding-right: 8vw;\n padding-left: 8vw;\n padding-top: ${({ theme }) => theme.spacing.kilo};\n padding-bottom: ${({ theme }) => theme.spacing.mega};\n position: absolute;\n z-index: ${({ theme }) => theme.zIndex.header + 1};\n width: -webkit-fill-available;\n width: -moz-available;\n`;\n\nexport const StyledInput = nativeStyled(Input)<Partial<StyleProps>>`\n width: 100%;\n`;\n\nexport const StyledInputContainer = webStyled('div')`\n display: flex;\n flex: 1;\n`;\n\nexport const StyledSearchResultsContainer = webStyled('div')`\n display: flex;\n flex-direction: column;\n`;\n\nexport const StyledSearchTextContainer = webStyled('div')<Partial<StyleProps>>`\n margin-bottom: ${({ theme }) => theme.spacing.mili};\n`;\n"],"names":["webStyled"],"mappings":"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"}
@@ -1,6 +1,11 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { SelectProps } from '../Select';
3
- declare const Dropdown: <Data, Type extends "single" | "multi">({ options, onSearch, type, hideSearchBar, onSelect, value, keyExtractor, labelExtractor, setDropDownVisible, style, anchor, selectAllLabel, searchBarPlaceholder, }: SelectProps<Data, Type> & {
3
+ declare const Component: <Data, Type extends "single" | "multi">({ options, onSearch, type, hideSearchBar, onSelect, value, keyExtractor, labelExtractor, setDropDownVisible, style, anchor, selectAllLabel, searchBarPlaceholder, }: SelectProps<Data, Type> & {
4
4
  setDropDownVisible: (t: boolean) => void;
5
- }) => JSX.Element;
5
+ }, ref: React.ForwardedRef<HTMLDivElement>) => JSX.Element;
6
+ declare const Dropdown: <Data, Type extends "single" | "multi">(props: SelectProps<Data, Type> & {
7
+ setDropDownVisible: (t: boolean) => void;
8
+ } & {
9
+ ref?: React.ForwardedRef<HTMLDivElement> | undefined;
10
+ }) => ReturnType<typeof Component>;
6
11
  export default Dropdown;
@@ -5,7 +5,7 @@ import { StyledContainerDropdown, StyledContainerCheckAll, SearchBarContainer, S
5
5
  import SearchInput from './components/SearchInput.js';
6
6
 
7
7
  const fullWidth = { width: "100%" };
8
- const Dropdown = ({
8
+ const Component = ({
9
9
  options,
10
10
  onSearch,
11
11
  type,
@@ -19,7 +19,7 @@ const Dropdown = ({
19
19
  anchor,
20
20
  selectAllLabel,
21
21
  searchBarPlaceholder
22
- }) => {
22
+ }, ref) => {
23
23
  const [searchArg, setSearchArg] = useDebouncedState("", onSearch);
24
24
  const lengthOptions = React.useMemo(() => options.length, [options]);
25
25
  const [checkedAll, setCheckedAll] = React.useState(
@@ -49,7 +49,8 @@ const Dropdown = ({
49
49
  {
50
50
  lengthOptions,
51
51
  style,
52
- anchor
52
+ anchor,
53
+ ref
53
54
  },
54
55
  type === "multi" && /* @__PURE__ */ React.createElement(
55
56
  StyledContainerCheckAll,
@@ -95,6 +96,7 @@ const Dropdown = ({
95
96
  )))
96
97
  );
97
98
  };
99
+ const Dropdown = React.forwardRef(Component);
98
100
 
99
101
  export { Dropdown as default };
100
102
  //# 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":[],"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":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","sources":["../../../../../../src/components/molecules/Select/Dropdown/styled.ts"],"sourcesContent":["import styled from '@emotion/styled';\nimport { hex2rgba, StyleProps } from '@tecsinapse/react-core';\nimport { SelectProps } from '../Select';\nimport { css } from '@emotion/react';\n\ntype InjectedProps = Partial<\n StyleProps &\n SelectProps<unknown, 'single' | 'multi'> & { lengthOptions: number }\n>;\n\nconst anchorBottom = ({\n theme,\n anchor,\n}: StyleProps & Omit<InjectedProps, 'theme'>) =>\n anchor === 'bottom' &&\n css`\n margin-top: ${theme.spacing.centi};\n top: 100%;\n `;\n\nconst anchorTop = ({\n theme,\n anchor,\n}: StyleProps & Omit<InjectedProps, 'theme'>) =>\n anchor === 'top' &&\n css`\n margin-bottom: ${theme.spacing.centi};\n bottom: 100%;\n `;\n\nexport const StyledContainerDropdown = styled('div')<InjectedProps>`\n width: 100%;\n background-color: ${({ theme }: StyleProps) =>\n theme.miscellaneous.surfaceColor};\n border-radius: ${({ theme }: StyleProps) => theme.borderRadius.mili};\n box-shadow: 0 2px 8px\n ${({ theme }: StyleProps) => hex2rgba(theme.miscellaneous.shadow, 0.05)};\n position: absolute;\n padding-top: ${({\n theme,\n hideSearchBar,\n }: StyleProps & Partial<SelectProps<unknown, 'single' | 'multi'>>) =>\n !hideSearchBar ? `${theme.spacing.deca}` : '0px'};\n padding-bottom: ${({ theme }: StyleProps) => theme.spacing.mili};\n z-index: ${({ theme }: StyleProps) => theme.zIndex.select};\n ${anchorTop}\n ${anchorBottom}\n`;\n\nexport const OptionsContainer = styled('div')<InjectedProps>`\n max-height: 250px;\n top: 100%;\n overflow-y: ${({ lengthOptions = 0 }: InjectedProps) =>\n lengthOptions > 5 ? 'scroll' : 'hidden'};\n ::-webkit-scrollbar {\n width: 8px;\n }\n ::-webkit-scrollbar-thumb {\n border-radius: ${({ theme }: StyleProps) => theme.borderRadius.centi};\n background-color: ${({ theme }: StyleProps) => theme.color.secondary.light};\n }\n ::-webkit-scrollbar-thumb:hover {\n background-color: ${({ theme }: StyleProps) => theme.color.primary.light};\n },\n`;\n\nexport const SearchBarContainer = styled('div')<Partial<StyleProps>>`\n padding-left: ${({ theme }) => theme.spacing.mili};\n width: 100%;\n`;\n\nexport const PaddedContainer = styled('div')<Partial<StyleProps>>`\n padding: ${({ theme }) => `${theme.spacing.mili} ${theme.spacing.deca}`};\n`;\n\nexport const StyledContainerCheckAll = styled(PaddedContainer)<\n Partial<StyleProps>\n>`\n flex-direction: row;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n cursor: pointer;\n &:hover {\n background-color: ${({ theme }) => theme.color.primary.xlight};\n }\n &:hover span {\n color: ${({ theme }) => theme.color.primary.medium};\n }\n`;\n\nexport const StyledSpan = styled('span')<Partial<StyleProps>>`\n color: ${({ theme }) => theme.font.color.dark};\n padding: ${({ theme }) => `${theme.spacing.mili} 0px`};\n`;\n\nexport const StyledContainerTextLabel = styled('div')<Partial<StyleProps>>`\n padding-left: ${({ theme }) => theme.spacing.mili};\n width: 100%;\n display: flex;\n overflow: hidden;\n`;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"styled.js","sources":["../../../../../../src/components/molecules/Select/Dropdown/styled.ts"],"sourcesContent":["import styled from '@emotion/styled';\nimport { hex2rgba, StyleProps } from '@tecsinapse/react-core';\nimport { SelectProps } from '../Select';\nimport { css } from '@emotion/react';\n\ntype InjectedProps = Partial<\n StyleProps &\n SelectProps<unknown, 'single' | 'multi'> & { lengthOptions: number }\n>;\n\nconst anchorBottom = ({\n theme,\n anchor,\n}: StyleProps & Omit<InjectedProps, 'theme'>) =>\n anchor === 'bottom' &&\n css`\n margin-top: ${theme.spacing.centi};\n top: 100%;\n `;\n\nconst anchorTop = ({\n theme,\n anchor,\n}: StyleProps & Omit<InjectedProps, 'theme'>) =>\n anchor === 'top' &&\n css`\n margin-bottom: ${theme.spacing.centi};\n bottom: 100%;\n `;\n\nexport const StyledContainerDropdown = styled('div')<InjectedProps>`\n width: 100%;\n background-color: ${({ theme }: StyleProps) =>\n theme.miscellaneous.surfaceColor};\n border-radius: ${({ theme }: StyleProps) => theme.borderRadius.mili};\n box-shadow: 0 2px 8px\n ${({ theme }: StyleProps) => hex2rgba(theme.miscellaneous.shadow, 0.05)};\n position: absolute;\n padding-top: ${({\n theme,\n hideSearchBar,\n }: StyleProps & Partial<SelectProps<unknown, 'single' | 'multi'>>) =>\n !hideSearchBar ? `${theme.spacing.deca}` : '0px'};\n padding-bottom: ${({ theme }: StyleProps) => theme.spacing.mili};\n z-index: ${({ theme }: StyleProps) => theme.zIndex.select};\n ${anchorTop}\n ${anchorBottom}\n`;\n\nexport const OptionsContainer = styled('div')<InjectedProps>`\n max-height: 250px;\n top: 100%;\n overflow-y: ${({ lengthOptions = 0 }: InjectedProps) =>\n lengthOptions > 5 ? 'scroll' : 'hidden'};\n ::-webkit-scrollbar {\n width: 8px;\n }\n ::-webkit-scrollbar-thumb {\n border-radius: ${({ theme }: StyleProps) => theme.borderRadius.centi};\n background-color: ${({ theme }: StyleProps) => theme.color.secondary.light};\n }\n ::-webkit-scrollbar-thumb:hover {\n background-color: ${({ theme }: StyleProps) => theme.color.primary.light};\n },\n`;\n\nexport const SearchBarContainer = styled('div')<Partial<StyleProps>>`\n padding-left: ${({ theme }) => theme.spacing.mili};\n width: 100%;\n`;\n\nexport const PaddedContainer = styled('div')<Partial<StyleProps>>`\n padding: ${({ theme }) => `${theme.spacing.mili} ${theme.spacing.deca}`};\n`;\n\nexport const StyledContainerCheckAll = styled(PaddedContainer)<\n Partial<StyleProps>\n>`\n flex-direction: row;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n cursor: pointer;\n &:hover {\n background-color: ${({ theme }) => theme.color.primary.xlight};\n }\n &:hover span {\n color: ${({ theme }) => theme.color.primary.medium};\n }\n`;\n\nexport const StyledSpan = styled('span')<Partial<StyleProps>>`\n color: ${({ theme }) => theme.font.color.dark};\n padding: ${({ theme }) => `${theme.spacing.mili} 0px`};\n`;\n\nexport const StyledContainerTextLabel = styled('div')<Partial<StyleProps>>`\n padding-left: ${({ theme }) => theme.spacing.mili};\n width: 100%;\n display: flex;\n overflow: hidden;\n`;\n"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ const Select = ({
28
28
  const [dropDownVisible, setDropDownVisible] = React.useState(false);
29
29
  const [selectOptions, setSelectOptions] = useState([]);
30
30
  const refDropDown = React.useRef(null);
31
+ const transitionRef = React.useRef(null);
31
32
  useClickAwayListener(refDropDown, setDropDownVisible);
32
33
  useEffect(() => {
33
34
  if (typeof options !== "function") {
@@ -105,9 +106,10 @@ const Select = ({
105
106
  rightComponent: RightComponent
106
107
  },
107
108
  /* @__PURE__ */ React.createElement(Text, { ...displayTextProps, fontWeight: "bold" }, displayValue)
108
- )), /* @__PURE__ */ React.createElement(Transition, { in: dropDownVisible, timeout: 300 }, (state) => /* @__PURE__ */ React.createElement(
109
+ )), /* @__PURE__ */ React.createElement(Transition, { in: dropDownVisible, timeout: 300, nodeRef: transitionRef }, (state) => /* @__PURE__ */ React.createElement(
109
110
  Dropdown,
110
111
  {
112
+ ref: transitionRef,
111
113
  options: selectOptions ?? [],
112
114
  onSelect,
113
115
  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":[],"mappings":"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"}
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":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","sources":["../../../../../../src/components/molecules/Select/SelectItem/styled.ts"],"sourcesContent":["import styled from '@emotion/styled';\nimport { StyleProps } from '@tecsinapse/react-core';\n\nexport const ContainerItemSelect = styled('div')<Partial<StyleProps>>`\n padding: ${({ theme }) => `${theme.spacing.mili} ${theme.spacing.deca}`};\n cursor: pointer;\n &:hover {\n background-color: ${({ theme }) => theme.color.primary.xlight};\n }\n &:hover span {\n color: ${({ theme }) => theme.color.primary.medium};\n }\n flex-direction: row;\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nexport const StyledSpan = styled('span')<\n Partial<StyleProps> & { singleHighligh: boolean }\n>`\n color: ${({ theme, singleHighligh }) =>\n singleHighligh ? theme.color.primary.medium : theme.color.secondary.xdark};\n padding: ${({ theme }) => `${theme.spacing.mili} 0px`};\n`;\n\nexport const StyledContainerTextLabel = styled('div')<Partial<StyleProps>>`\n padding-left: ${({ theme }) => theme.spacing.mili};\n width: 100%;\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n"],"names":[],"mappings":";;AAGa,MAAA,mBAAA,GAAsB,OAAO,KAAK,CAAA,CAAA;AAAA,WAClC,EAAA,CAAC,EAAE,KAAM,EAAA,KAAM,GAAG,KAAM,CAAA,OAAA,CAAQ,IAAQ,CAAA,CAAA,EAAA,KAAA,CAAM,OAAQ,CAAA,IAAA,CAAA,CAAA,CAAA;AAAA;AAAA;AAAA,sBAAA,EAG3C,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,MAAM,OAAQ,CAAA,MAAA,CAAA;AAAA;AAAA;AAAA,WAAA,EAG9C,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,MAAM,OAAQ,CAAA,MAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA;AAQnC,MAAA,UAAA,GAAa,OAAO,MAAM,CAAA,CAAA;AAAA,SAAA,EAG5B,CAAC,EAAE,KAAO,EAAA,cAAA,EACjB,KAAA,cAAA,GAAiB,KAAM,CAAA,KAAA,CAAM,OAAQ,CAAA,MAAA,GAAS,KAAM,CAAA,KAAA,CAAM,SAAU,CAAA,KAAA,CAAA;AAAA,WAAA,EAC3D,CAAC,EAAE,KAAA,EAAY,KAAA,CAAA,EAAG,MAAM,OAAQ,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AAAA,EAAA;AAGhC,MAAA,wBAAA,GAA2B,OAAO,KAAK,CAAA,CAAA;AAAA,gBAAA,EAClC,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"styled.js","sources":["../../../../../../src/components/molecules/Select/SelectItem/styled.ts"],"sourcesContent":["import styled from '@emotion/styled';\nimport { StyleProps } from '@tecsinapse/react-core';\n\nexport const ContainerItemSelect = styled('div')<Partial<StyleProps>>`\n padding: ${({ theme }) => `${theme.spacing.mili} ${theme.spacing.deca}`};\n cursor: pointer;\n &:hover {\n background-color: ${({ theme }) => theme.color.primary.xlight};\n }\n &:hover span {\n color: ${({ theme }) => theme.color.primary.medium};\n }\n flex-direction: row;\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nexport const StyledSpan = styled('span')<\n Partial<StyleProps> & { singleHighligh: boolean }\n>`\n color: ${({ theme, singleHighligh }) =>\n singleHighligh ? theme.color.primary.medium : theme.color.secondary.xdark};\n padding: ${({ theme }) => `${theme.spacing.mili} 0px`};\n`;\n\nexport const StyledContainerTextLabel = styled('div')<Partial<StyleProps>>`\n padding-left: ${({ theme }) => theme.spacing.mili};\n width: 100%;\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n"],"names":[],"mappings":";;AAGa,MAAA,mBAAA,GAAsB,OAAO,KAAK,CAAA,CAAA;AAAA,WAAA,EAClC,CAAC,EAAE,KAAM,EAAA,KAAM,CAAG,EAAA,KAAA,CAAM,OAAQ,CAAA,IAAI,CAAI,CAAA,EAAA,KAAA,CAAM,OAAQ,CAAA,IAAI,CAAE,CAAA,CAAA;AAAA;AAAA;AAAA,sBAAA,EAGjD,CAAC,EAAE,KAAA,OAAY,KAAM,CAAA,KAAA,CAAM,QAAQ,MAAM,CAAA;AAAA;AAAA;AAAA,WAAA,EAGpD,CAAC,EAAE,KAAA,OAAY,KAAM,CAAA,KAAA,CAAM,QAAQ,MAAM,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA;AAQzC,MAAA,UAAA,GAAa,OAAO,MAAM,CAAA,CAAA;AAAA,SAAA,EAG5B,CAAC,EAAE,KAAO,EAAA,cAAA,EACjB,KAAA,cAAA,GAAiB,KAAM,CAAA,KAAA,CAAM,OAAQ,CAAA,MAAA,GAAS,KAAM,CAAA,KAAA,CAAM,UAAU,KAAK,CAAA;AAAA,WAChE,EAAA,CAAC,EAAE,KAAM,EAAA,KAAM,GAAG,KAAM,CAAA,OAAA,CAAQ,IAAI,CAAM,IAAA,CAAA,CAAA;AAAA,EAAA;AAG1C,MAAA,wBAAA,GAA2B,OAAO,KAAK,CAAA,CAAA;AAAA,gBAAA,EAClC,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,QAAQ,IAAI,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;"}
@@ -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 +1 @@
1
- {"version":3,"file":"styled.js","sources":["../../../../../src/components/molecules/Snackbar/styled.ts"],"sourcesContent":["import styled, { css } from '@emotion/native';\nimport { Snackbar as SnackbarCore, StyleProps } from '@tecsinapse/react-core';\n\nconst baseStyles = () => [\n css({\n left: '50%',\n maxWidth: '600px',\n transform: [{ translateX: '-50%' as any }],\n }),\n];\n\nconst webStyles = () => [\n css`\n position: fixed;\n `,\n];\n\nexport const SnackbarStyled = styled(SnackbarCore)<Partial<StyleProps>>(\n () => css`\n ${baseStyles()}\n ${webStyles()}\n `\n);\n"],"names":["styled","SnackbarCore"],"mappings":";;;AAGA,MAAM,aAAa,MAAM;AAAA,EACvB,GAAI,CAAA;AAAA,IACF,IAAM,EAAA,KAAA;AAAA,IACN,QAAU,EAAA,OAAA;AAAA,IACV,SAAW,EAAA,CAAC,EAAE,UAAA,EAAY,QAAe,CAAA;AAAA,GAC1C,CAAA;AACH,CAAA,CAAA;AAEA,MAAM,YAAY,MAAM;AAAA,EACtB,GAAA,CAAA;AAAA;AAAA,EAAA,CAAA;AAGF,CAAA,CAAA;AAEa,MAAA,cAAA,GAAiBA,aAAOC,QAAY,CAAA;AAAA,EAC/C,MAAM,GAAA,CAAA;AAAA,IAAA,EACF,UAAW,EAAA,CAAA;AAAA,IAAA,EACX,SAAU,EAAA,CAAA;AAAA,EAAA,CAAA;AAEhB;;;;"}
1
+ {"version":3,"file":"styled.js","sources":["../../../../../src/components/molecules/Snackbar/styled.ts"],"sourcesContent":["import styled, { css } from '@emotion/native';\nimport { Snackbar as SnackbarCore, StyleProps } from '@tecsinapse/react-core';\n\nconst baseStyles = () => [\n css({\n left: '50%',\n maxWidth: '600px',\n transform: [{ translateX: '-50%' as any }],\n }),\n];\n\nconst webStyles = () => [\n css`\n position: fixed;\n `,\n];\n\nexport const SnackbarStyled = styled(SnackbarCore)<Partial<StyleProps>>(\n () => css`\n ${baseStyles()}\n ${webStyles()}\n `\n);\n"],"names":["styled","SnackbarCore"],"mappings":";;;AAGA,MAAM,aAAa,MAAM;AAAA,EACvB,GAAI,CAAA;AAAA,IACF,IAAM,EAAA,KAAA;AAAA,IACN,QAAU,EAAA,OAAA;AAAA,IACV,SAAW,EAAA,CAAC,EAAE,UAAA,EAAY,QAAe,CAAA;AAAA,GAC1C,CAAA;AACH,CAAA,CAAA;AAEA,MAAM,YAAY,MAAM;AAAA,EACtB,GAAA,CAAA;AAAA;AAAA,EAAA,CAAA;AAGF,CAAA,CAAA;AAEa,MAAA,cAAA,GAAiBA,aAAOC,QAAY,CAAA;AAAA,EAC/C,MAAM,GAAA,CAAA;AAAA,IAAA,EACF,YAAY,CAAA;AAAA,IAAA,EACZ,WAAW,CAAA;AAAA,EAAA,CAAA;AAEjB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","sources":["../../../../../src/components/molecules/TextArea/styled.ts"],"sourcesContent":["import styled from '@emotion/native';\nimport {\n FontStackType,\n FontWeightType,\n StyleProps,\n TextAreaInputBase,\n} from '@tecsinapse/react-core';\nimport { TextAreaProps } from './TextArea';\n\ninterface Font {\n fontStack?: FontStackType;\n fontWeight?: FontWeightType;\n}\n\nexport const StyledWebInput = styled(TextAreaInputBase)<\n Font & Partial<TextAreaProps> & Partial<StyleProps>\n>`\n font-weight: ${({ theme, fontWeight = 'regular' }) =>\n theme.font.weight[fontWeight]};\n font-family: ${({ theme, fontStack = 'default' }) =>\n `'${theme.font.stack[fontStack]}'`};\n outline-width: 0;\n`;\n"],"names":["styled"],"mappings":";;;AAca,MAAA,cAAA,GAAiBA,aAAO,iBAAiB,CAAA,CAAA;AAAA,eAGrC,EAAA,CAAC,EAAE,KAAO,EAAA,UAAA,GAAa,WACpC,KAAA,KAAA,CAAM,IAAK,CAAA,MAAA,CAAO,UAAU,CAAA,CAAA;AAAA,eACf,EAAA,CAAC,EAAE,KAAA,EAAO,SAAY,GAAA,SAAA,OACnC,CAAI,CAAA,EAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,SAAS,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"styled.js","sources":["../../../../../src/components/molecules/TextArea/styled.ts"],"sourcesContent":["import styled from '@emotion/native';\nimport {\n FontStackType,\n FontWeightType,\n StyleProps,\n TextAreaInputBase,\n} from '@tecsinapse/react-core';\nimport { TextAreaProps } from './TextArea';\n\ninterface Font {\n fontStack?: FontStackType;\n fontWeight?: FontWeightType;\n}\n\nexport const StyledWebInput = styled(TextAreaInputBase)<\n Font & Partial<TextAreaProps> & Partial<StyleProps>\n>`\n font-weight: ${({ theme, fontWeight = 'regular' }) =>\n theme.font.weight[fontWeight]};\n font-family: ${({ theme, fontStack = 'default' }) =>\n `'${theme.font.stack[fontStack]}'`};\n outline-width: 0;\n`;\n"],"names":["styled"],"mappings":";;;AAca,MAAA,cAAA,GAAiBA,aAAO,iBAAiB,CAAA,CAAA;AAAA,eAGrC,EAAA,CAAC,EAAE,KAAA,EAAO,UAAa,GAAA,SAAA,OACpC,KAAM,CAAA,IAAA,CAAK,MAAO,CAAA,UAAU,CAAC,CAAA;AAAA,eAAA,EAChB,CAAC,EAAE,KAAO,EAAA,SAAA,GAAY,SAAU,EAAA,KAC7C,CAAI,CAAA,EAAA,KAAA,CAAM,IAAK,CAAA,KAAA,CAAM,SAAS,CAAC,CAAG,CAAA,CAAA,CAAA;AAAA;AAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataGrid.js","sources":["../../../../../src/components/organisms/DataGrid/DataGrid.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Table,\n TableToolbar,\n TableContainer,\n Tr,\n Td,\n TBody,\n} from '../../atoms/Table';\nimport { Header } from './Header';\nimport { Row } from './Row';\nimport { HeadersType } from './types';\nimport { Footer } from './Footer';\nimport { Skeleton } from '../../atoms/Skeleton';\nimport { getData, removeElement } from './utils';\n\nexport interface DataGridProps<Data>\n extends React.HTMLAttributes<HTMLDivElement> {\n headers: HeadersType<Data>[];\n data: Data[];\n /** Unique identifier for row data */\n rowKeyExtractor: (data: Data) => string;\n toolbarRightIcons?: React.ReactNode;\n toolbarFooter?: React.ReactNode;\n toolbarTitle: string;\n /** Enable rows selection */\n selectable?: boolean;\n /** Selected items */\n selectedRows?: Data[];\n /** Selection handler */\n onSelectedRows?: (data: Data[] | ((prevState: Data[]) => Data[])) => void;\n /** Shows pagination controls */\n pagination?: boolean;\n /** Results per page */\n rowsPerPage?: number;\n /** Results per page handler */\n onRowsPerPageChange?: (value: number) => void;\n rowsPerPageOptions?: number[];\n rowsPerPageLabel?: (value: number) => string;\n /** Export button label */\n exportLabel?: string;\n exportFunction?: () => void;\n /** Total data elements. Only specify this property if your data is server-side */\n rowsCount?: number;\n /** Current page. Always start in 0 */\n page?: number;\n /** Current page handler */\n onPageChange?: (page: number) => void;\n /** Loading state. The amount of skeleton rows is based on current rowsPerPage */\n loading?: boolean;\n /** Custom skeleton component for better visual */\n skeletonComponent?: React.ReactNode;\n /** Empty state placeholder */\n emptyPlaceholder?: React.ReactNode;\n /** Export component, use if default button with label is not ideal. This prop, not receive \"exportLabel\" and \"exportFunction\" */\n exportComponent?: React.ReactNode;\n}\n\n/** Note: Consider memoizing functions for a better performance */\nconst DataGrid = <Data,>({\n headers,\n data,\n rowKeyExtractor,\n toolbarTitle,\n toolbarFooter,\n toolbarRightIcons,\n selectable = false,\n selectedRows = [],\n onSelectedRows,\n pagination = false,\n rowsPerPage = 10,\n onRowsPerPageChange,\n rowsPerPageOptions: _rowsPerPageOptions,\n rowsPerPageLabel: _rowsPerPageLabel,\n exportLabel = 'Exportar',\n exportFunction,\n rowsCount,\n page = 0,\n onPageChange,\n loading = false,\n skeletonComponent,\n emptyPlaceholder,\n exportComponent,\n ...rest\n}: DataGridProps<Data>): JSX.Element => {\n if (selectable && (!selectedRows || !onSelectedRows)) {\n throw new Error(\n '[DataGrid] You should specify selection handlers (selectedRows, onSelectedRows)'\n );\n }\n\n const rowsPerPageLabel = React.useCallback(\n value =>\n _rowsPerPageLabel\n ? _rowsPerPageLabel(value)\n : `Exibir por página: ${value} itens`,\n [_rowsPerPageLabel]\n );\n const rowsPerPageOptions = React.useMemo(\n () => _rowsPerPageOptions ?? [10, 25, 50],\n [_rowsPerPageOptions]\n );\n\n const handleSelect = React.useCallback(\n (current, checked) => {\n if (checked) {\n onSelectedRows?.(prevState => [...prevState, current]);\n return;\n }\n\n onSelectedRows?.(prevState => {\n const idx = prevState.findIndex(\n el => rowKeyExtractor(el) === rowKeyExtractor(current)\n );\n return [...removeElement(prevState, idx)];\n });\n },\n [onSelectedRows, rowKeyExtractor]\n );\n\n return (\n <TableContainer {...rest}>\n <TableToolbar\n title={toolbarTitle}\n rightIcons={toolbarRightIcons}\n footer={toolbarFooter}\n />\n <Table>\n <Header\n selectable={selectable}\n headers={headers}\n data={data}\n rowsCount={rowsCount ?? data.length}\n rowKeyExtractor={rowKeyExtractor}\n selectedRows={selectedRows}\n onSelected={onSelectedRows}\n />\n\n {!loading ? (\n <TBody>\n {data.length > 0 ? (\n getData(data, rowsCount, page, rowsPerPage, pagination).map(\n item => (\n <Row\n key={rowKeyExtractor(item)}\n rowKeyExtractor={rowKeyExtractor}\n handleSelect={handleSelect}\n selectable={selectable}\n headers={headers}\n data={item}\n checked={selectedRows?.some(\n sel => rowKeyExtractor(sel) === rowKeyExtractor(item)\n )}\n />\n )\n )\n ) : (\n <tr>\n <td colSpan={99}>{emptyPlaceholder}</td>\n </tr>\n )}\n </TBody>\n ) : (\n <TBody>\n {[...Array(rowsPerPage).keys()].map(idx => (\n <Tr key={`skeleton-${idx}`}>\n <Td colSpan={99} style={{ padding: 0 }}>\n {skeletonComponent ?? (\n <Skeleton height={55} radius=\"mili\" animation=\"wave\">\n <div style={{ width: '100%' }} />\n </Skeleton>\n )}\n </Td>\n </Tr>\n ))}\n </TBody>\n )}\n\n {(Number(rowsCount) > 0 || data.length > 0) && (\n <Footer\n exportFunction={exportFunction}\n exportLabel={exportLabel}\n rowsPerPageLabel={rowsPerPageLabel}\n rowsPerPage={rowsPerPage}\n onRowsPerPageChange={onRowsPerPageChange}\n rowsPerPageOptions={rowsPerPageOptions}\n rowsCount={rowsCount ?? data.length}\n page={page}\n onPageChange={onPageChange}\n pagination={pagination}\n exportComponent={exportComponent}\n />\n )}\n </Table>\n </TableContainer>\n );\n};\n\nexport default DataGrid;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataGrid.js","sources":["../../../../../src/components/organisms/DataGrid/DataGrid.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Table,\n TableToolbar,\n TableContainer,\n Tr,\n Td,\n TBody,\n} from '../../atoms/Table';\nimport { Header } from './Header';\nimport { Row } from './Row';\nimport { HeadersType } from './types';\nimport { Footer } from './Footer';\nimport { Skeleton } from '../../atoms/Skeleton';\nimport { getData, removeElement } from './utils';\n\nexport interface DataGridProps<Data>\n extends React.HTMLAttributes<HTMLDivElement> {\n headers: HeadersType<Data>[];\n data: Data[];\n /** Unique identifier for row data */\n rowKeyExtractor: (data: Data) => string;\n toolbarRightIcons?: React.ReactNode;\n toolbarFooter?: React.ReactNode;\n toolbarTitle: string;\n /** Enable rows selection */\n selectable?: boolean;\n /** Selected items */\n selectedRows?: Data[];\n /** Selection handler */\n onSelectedRows?: (data: Data[] | ((prevState: Data[]) => Data[])) => void;\n /** Shows pagination controls */\n pagination?: boolean;\n /** Results per page */\n rowsPerPage?: number;\n /** Results per page handler */\n onRowsPerPageChange?: (value: number) => void;\n rowsPerPageOptions?: number[];\n rowsPerPageLabel?: (value: number) => string;\n /** Export button label */\n exportLabel?: string;\n exportFunction?: () => void;\n /** Total data elements. Only specify this property if your data is server-side */\n rowsCount?: number;\n /** Current page. Always start in 0 */\n page?: number;\n /** Current page handler */\n onPageChange?: (page: number) => void;\n /** Loading state. The amount of skeleton rows is based on current rowsPerPage */\n loading?: boolean;\n /** Custom skeleton component for better visual */\n skeletonComponent?: React.ReactNode;\n /** Empty state placeholder */\n emptyPlaceholder?: React.ReactNode;\n /** Export component, use if default button with label is not ideal. This prop, not receive \"exportLabel\" and \"exportFunction\" */\n exportComponent?: React.ReactNode;\n}\n\n/** Note: Consider memoizing functions for a better performance */\nconst DataGrid = <Data,>({\n headers,\n data,\n rowKeyExtractor,\n toolbarTitle,\n toolbarFooter,\n toolbarRightIcons,\n selectable = false,\n selectedRows = [],\n onSelectedRows,\n pagination = false,\n rowsPerPage = 10,\n onRowsPerPageChange,\n rowsPerPageOptions: _rowsPerPageOptions,\n rowsPerPageLabel: _rowsPerPageLabel,\n exportLabel = 'Exportar',\n exportFunction,\n rowsCount,\n page = 0,\n onPageChange,\n loading = false,\n skeletonComponent,\n emptyPlaceholder,\n exportComponent,\n ...rest\n}: DataGridProps<Data>): JSX.Element => {\n if (selectable && (!selectedRows || !onSelectedRows)) {\n throw new Error(\n '[DataGrid] You should specify selection handlers (selectedRows, onSelectedRows)'\n );\n }\n\n const rowsPerPageLabel = React.useCallback(\n value =>\n _rowsPerPageLabel\n ? _rowsPerPageLabel(value)\n : `Exibir por página: ${value} itens`,\n [_rowsPerPageLabel]\n );\n const rowsPerPageOptions = React.useMemo(\n () => _rowsPerPageOptions ?? [10, 25, 50],\n [_rowsPerPageOptions]\n );\n\n const handleSelect = React.useCallback(\n (current, checked) => {\n if (checked) {\n onSelectedRows?.(prevState => [...prevState, current]);\n return;\n }\n\n onSelectedRows?.(prevState => {\n const idx = prevState.findIndex(\n el => rowKeyExtractor(el) === rowKeyExtractor(current)\n );\n return [...removeElement(prevState, idx)];\n });\n },\n [onSelectedRows, rowKeyExtractor]\n );\n\n return (\n <TableContainer {...rest}>\n <TableToolbar\n title={toolbarTitle}\n rightIcons={toolbarRightIcons}\n footer={toolbarFooter}\n />\n <Table>\n <Header\n selectable={selectable}\n headers={headers}\n data={data}\n rowsCount={rowsCount ?? data.length}\n rowKeyExtractor={rowKeyExtractor}\n selectedRows={selectedRows}\n onSelected={onSelectedRows}\n />\n\n {!loading ? (\n <TBody>\n {data.length > 0 ? (\n getData(data, rowsCount, page, rowsPerPage, pagination).map(\n item => (\n <Row\n key={rowKeyExtractor(item)}\n rowKeyExtractor={rowKeyExtractor}\n handleSelect={handleSelect}\n selectable={selectable}\n headers={headers}\n data={item}\n checked={selectedRows?.some(\n sel => rowKeyExtractor(sel) === rowKeyExtractor(item)\n )}\n />\n )\n )\n ) : (\n <tr>\n <td colSpan={99}>{emptyPlaceholder}</td>\n </tr>\n )}\n </TBody>\n ) : (\n <TBody>\n {[...Array(rowsPerPage).keys()].map(idx => (\n <Tr key={`skeleton-${idx}`}>\n <Td colSpan={99} style={{ padding: 0 }}>\n {skeletonComponent ?? (\n <Skeleton height={55} radius=\"mili\" animation=\"wave\">\n <div style={{ width: '100%' }} />\n </Skeleton>\n )}\n </Td>\n </Tr>\n ))}\n </TBody>\n )}\n\n {(Number(rowsCount) > 0 || data.length > 0) && (\n <Footer\n exportFunction={exportFunction}\n exportLabel={exportLabel}\n rowsPerPageLabel={rowsPerPageLabel}\n rowsPerPage={rowsPerPage}\n onRowsPerPageChange={onRowsPerPageChange}\n rowsPerPageOptions={rowsPerPageOptions}\n rowsCount={rowsCount ?? data.length}\n page={page}\n onPageChange={onPageChange}\n pagination={pagination}\n exportComponent={exportComponent}\n />\n )}\n </Table>\n </TableContainer>\n );\n};\n\nexport default DataGrid;\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Footer.js","sources":["../../../../../../src/components/organisms/DataGrid/Footer/Footer.tsx"],"sourcesContent":["import React from 'react';\nimport { Button } from '../../../atoms/Button';\nimport { Icon, Text } from '@tecsinapse/react-core';\nimport { Select } from '../../../molecules/Select';\nimport { TFoot, Tr } from '../../../atoms/Table';\nimport {\n FooterContainer,\n FooterContainerEnd,\n FooterContainerStart,\n HoveredText,\n NavigationButton,\n PageButton,\n PagesContainer,\n SelectContainer,\n TdFooterStyled,\n TextPagination,\n} from './styled';\n\ninterface DataGridFooterProps {\n rowsPerPage: number;\n onRowsPerPageChange?: (value: number) => void;\n rowsPerPageOptions: number[];\n rowsPerPageLabel: (value: number) => string;\n exportLabel?: string;\n exportFunction?: () => void;\n /** Total data elements */\n rowsCount: number;\n page: number;\n onPageChange?: (page: number) => void;\n pagination: boolean;\n exportComponent?: React.ReactNode;\n}\n\nconst Footer: React.FC<DataGridFooterProps> = ({\n rowsPerPage,\n onRowsPerPageChange,\n rowsPerPageOptions,\n rowsPerPageLabel,\n exportFunction,\n exportLabel,\n rowsCount,\n page,\n onPageChange,\n pagination,\n exportComponent,\n}) => {\n if (pagination && (!onPageChange || !onRowsPerPageChange)) {\n throw new Error(\n '[DataGrid] You should specify pagination handlers (onPageChange, onRowsPerPageChange)'\n );\n }\n\n const getPaginationSlice = (): { start: number; end: number } => {\n const totalPages = Math.ceil(rowsCount / rowsPerPage);\n if (totalPages < 4) {\n return { start: 0, end: totalPages };\n }\n if (page === 0) {\n return { start: page, end: page + 3 };\n }\n if (page === totalPages - 1) {\n return { start: page - 2, end: page + 1 };\n }\n return { start: page - 1, end: page + 2 };\n };\n\n const handleRowsPerPage = React.useCallback(\n value => {\n onRowsPerPageChange?.(value as number);\n onPageChange?.(0);\n },\n [onPageChange, onRowsPerPageChange]\n );\n const currentInitItem = page * rowsPerPage + 1;\n const currentFinalItem =\n (page + 1) * rowsPerPage > rowsCount ? rowsCount : (page + 1) * rowsPerPage;\n\n return (\n <TFoot>\n <Tr>\n <TdFooterStyled colSpan={99}>\n <FooterContainer>\n <FooterContainerStart>\n {pagination && (\n <SelectContainer>\n <Select\n options={rowsPerPageOptions}\n onSelect={handleRowsPerPage}\n value={rowsPerPage}\n type={'single'}\n keyExtractor={value => String(value)}\n labelExtractor={rowsPerPageLabel}\n anchor=\"top\"\n />\n </SelectContainer>\n )}\n {exportComponent && !exportFunction && <>{exportComponent}</>}\n {exportFunction && (\n <HoveredText>\n <Button variant=\"outlined\" onPress={() => exportFunction()}>\n <Text fontColor=\"orange\" fontWeight=\"bold\">\n {exportLabel}\n </Text>\n </Button>\n </HoveredText>\n )}\n </FooterContainerStart>\n {pagination && (\n <>\n <TextPagination\n fontWeight={'bold'}\n fontColor={'medium'}\n >{`Exibindo ${currentInitItem} a ${currentFinalItem} de ${rowsCount} registros`}</TextPagination>\n <FooterContainerEnd>\n <NavigationButton\n onPress={() => onPageChange?.(page - 1)}\n disabled={page === 0}\n >\n <Icon\n name={'chevron-left'}\n type={'material-community'}\n fontColor={'light'}\n />\n </NavigationButton>\n <PagesContainer>\n {[...Array(Math.ceil(rowsCount / rowsPerPage)).keys()]\n .slice(\n getPaginationSlice().start,\n getPaginationSlice().end\n )\n .map(value => (\n <HoveredText key={`page-${value}`}>\n <PageButton\n variant={page === value ? 'outlined' : 'text'}\n onPress={() => onPageChange?.(value)}\n >\n <Text fontColor=\"medium\" fontWeight=\"bold\">\n {value + 1}\n </Text>\n </PageButton>\n </HoveredText>\n ))}\n </PagesContainer>\n <NavigationButton\n onPress={() => onPageChange?.(page + 1)}\n disabled={page === Math.ceil(rowsCount / rowsPerPage) - 1}\n >\n <Icon\n name={'chevron-right'}\n type={'material-community'}\n fontColor={'light'}\n />\n </NavigationButton>\n </FooterContainerEnd>\n </>\n )}\n </FooterContainer>\n </TdFooterStyled>\n </Tr>\n </TFoot>\n );\n};\n\nexport default React.memo(Footer);\n"],"names":[],"mappings":";;;;;;;;;;;;;AAiCA,MAAM,SAAwC,CAAC;AAAA,EAC7C,WAAA;AAAA,EACA,mBAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AACF,CAAM,KAAA;AACJ,EAAA,IAAI,UAAe,KAAA,CAAC,YAAgB,IAAA,CAAC,mBAAsB,CAAA,EAAA;AACzD,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,uFAAA;AAAA,KACF,CAAA;AAAA,GACF;AAEA,EAAA,MAAM,qBAAqB,MAAsC;AAC/D,IAAA,MAAM,UAAa,GAAA,IAAA,CAAK,IAAK,CAAA,SAAA,GAAY,WAAW,CAAA,CAAA;AACpD,IAAA,IAAI,aAAa,CAAG,EAAA;AAClB,MAAA,OAAO,EAAE,KAAA,EAAO,CAAG,EAAA,GAAA,EAAK,UAAW,EAAA,CAAA;AAAA,KACrC;AACA,IAAA,IAAI,SAAS,CAAG,EAAA;AACd,MAAA,OAAO,EAAE,KAAA,EAAO,IAAM,EAAA,GAAA,EAAK,OAAO,CAAE,EAAA,CAAA;AAAA,KACtC;AACA,IAAI,IAAA,IAAA,KAAS,aAAa,CAAG,EAAA;AAC3B,MAAA,OAAO,EAAE,KAAO,EAAA,IAAA,GAAO,CAAG,EAAA,GAAA,EAAK,OAAO,CAAE,EAAA,CAAA;AAAA,KAC1C;AACA,IAAA,OAAO,EAAE,KAAO,EAAA,IAAA,GAAO,CAAG,EAAA,GAAA,EAAK,OAAO,CAAE,EAAA,CAAA;AAAA,GAC1C,CAAA;AAEA,EAAA,MAAM,oBAAoB,KAAM,CAAA,WAAA;AAAA,IAC9B,CAAS,KAAA,KAAA;AACP,MAAA,mBAAA,GAAsB,KAAe,CAAA,CAAA;AACrC,MAAA,YAAA,GAAe,CAAC,CAAA,CAAA;AAAA,KAClB;AAAA,IACA,CAAC,cAAc,mBAAmB,CAAA;AAAA,GACpC,CAAA;AACA,EAAM,MAAA,eAAA,GAAkB,OAAO,WAAc,GAAA,CAAA,CAAA;AAC7C,EAAA,MAAM,oBACH,IAAO,GAAA,CAAA,IAAK,cAAc,SAAY,GAAA,SAAA,GAAA,CAAa,OAAO,CAAK,IAAA,WAAA,CAAA;AAElE,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,kBACE,KAAA,CAAA,aAAA,CAAA,EAAA,EAAA,IAAA,sCACE,cAAe,EAAA,EAAA,OAAA,EAAS,EACvB,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,eACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,oBACE,EAAA,IAAA,EAAA,UAAA,wCACE,eACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,OAAS,EAAA,kBAAA;AAAA,MACT,QAAU,EAAA,iBAAA;AAAA,MACV,KAAO,EAAA,WAAA;AAAA,MACP,IAAM,EAAA,QAAA;AAAA,MACN,YAAA,EAAc,CAAS,KAAA,KAAA,MAAA,CAAO,KAAK,CAAA;AAAA,MACnC,cAAgB,EAAA,gBAAA;AAAA,MAChB,MAAO,EAAA,KAAA;AAAA,KAAA;AAAA,GAEX,CAAA,EAED,eAAmB,IAAA,CAAC,cAAkB,oBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EAAG,eAAgB,CAAA,EACzD,cACC,oBAAA,KAAA,CAAA,aAAA,CAAC,WACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAO,OAAQ,EAAA,UAAA,EAAW,OAAS,EAAA,MAAM,cAAe,EAAA,EAAA,kBACtD,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,WAAU,QAAS,EAAA,UAAA,EAAW,MACjC,EAAA,EAAA,WACH,CACF,CACF,CAEJ,CAAA,EACC,8BAEG,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,UAAY,EAAA,MAAA;AAAA,MACZ,SAAW,EAAA,QAAA;AAAA,KAAA;AAAA,IACX,CAAA,SAAA,EAAY,qBAAqB,gBAAuB,CAAA,IAAA,EAAA,SAAA,CAAA,UAAA,CAAA;AAAA,GAAsB,sCAC/E,kBACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,OAAS,EAAA,MAAM,YAAe,GAAA,IAAA,GAAO,CAAC,CAAA;AAAA,MACtC,UAAU,IAAS,KAAA,CAAA;AAAA,KAAA;AAAA,oBAEnB,KAAA,CAAA,aAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,IAAM,EAAA,cAAA;AAAA,QACN,IAAM,EAAA,oBAAA;AAAA,QACN,SAAW,EAAA,OAAA;AAAA,OAAA;AAAA,KACb;AAAA,GAEF,kBAAA,KAAA,CAAA,aAAA,CAAC,cACE,EAAA,IAAA,EAAA,CAAC,GAAG,KAAM,CAAA,IAAA,CAAK,IAAK,CAAA,SAAA,GAAY,WAAW,CAAC,CAAE,CAAA,IAAA,EAAM,CAClD,CAAA,KAAA;AAAA,IACC,oBAAqB,CAAA,KAAA;AAAA,IACrB,oBAAqB,CAAA,GAAA;AAAA,IAEtB,GAAI,CAAA,CAAA,KAAA,yCACF,WAAY,EAAA,EAAA,GAAA,EAAK,QAAQ,KACxB,CAAA,CAAA,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,IAAS,KAAA,KAAA,GAAQ,UAAa,GAAA,MAAA;AAAA,MACvC,OAAA,EAAS,MAAM,YAAA,GAAe,KAAK,CAAA;AAAA,KAAA;AAAA,wCAElC,IAAK,EAAA,EAAA,SAAA,EAAU,UAAS,UAAW,EAAA,MAAA,EAAA,EACjC,QAAQ,CACX,CAAA;AAAA,GAEJ,CACD,CACL,CACA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,OAAS,EAAA,MAAM,YAAe,GAAA,IAAA,GAAO,CAAC,CAAA;AAAA,MACtC,UAAU,IAAS,KAAA,IAAA,CAAK,IAAK,CAAA,SAAA,GAAY,WAAW,CAAI,GAAA,CAAA;AAAA,KAAA;AAAA,oBAExD,KAAA,CAAA,aAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,IAAM,EAAA,eAAA;AAAA,QACN,IAAM,EAAA,oBAAA;AAAA,QACN,SAAW,EAAA,OAAA;AAAA,OAAA;AAAA,KACb;AAAA,GAEJ,CACF,CAEJ,CACF,CACF,CACF,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEA,eAAe,KAAA,CAAM,KAAK,MAAM,CAAA;;;;"}
1
+ {"version":3,"file":"Footer.js","sources":["../../../../../../src/components/organisms/DataGrid/Footer/Footer.tsx"],"sourcesContent":["import React from 'react';\nimport { Button } from '../../../atoms/Button';\nimport { Icon, Text } from '@tecsinapse/react-core';\nimport { Select } from '../../../molecules/Select';\nimport { TFoot, Tr } from '../../../atoms/Table';\nimport {\n FooterContainer,\n FooterContainerEnd,\n FooterContainerStart,\n HoveredText,\n NavigationButton,\n PageButton,\n PagesContainer,\n SelectContainer,\n TdFooterStyled,\n TextPagination,\n} from './styled';\n\ninterface DataGridFooterProps {\n rowsPerPage: number;\n onRowsPerPageChange?: (value: number) => void;\n rowsPerPageOptions: number[];\n rowsPerPageLabel: (value: number) => string;\n exportLabel?: string;\n exportFunction?: () => void;\n /** Total data elements */\n rowsCount: number;\n page: number;\n onPageChange?: (page: number) => void;\n pagination: boolean;\n exportComponent?: React.ReactNode;\n}\n\nconst Footer: React.FC<DataGridFooterProps> = ({\n rowsPerPage,\n onRowsPerPageChange,\n rowsPerPageOptions,\n rowsPerPageLabel,\n exportFunction,\n exportLabel,\n rowsCount,\n page,\n onPageChange,\n pagination,\n exportComponent,\n}) => {\n if (pagination && (!onPageChange || !onRowsPerPageChange)) {\n throw new Error(\n '[DataGrid] You should specify pagination handlers (onPageChange, onRowsPerPageChange)'\n );\n }\n\n const getPaginationSlice = (): { start: number; end: number } => {\n const totalPages = Math.ceil(rowsCount / rowsPerPage);\n if (totalPages < 4) {\n return { start: 0, end: totalPages };\n }\n if (page === 0) {\n return { start: page, end: page + 3 };\n }\n if (page === totalPages - 1) {\n return { start: page - 2, end: page + 1 };\n }\n return { start: page - 1, end: page + 2 };\n };\n\n const handleRowsPerPage = React.useCallback(\n value => {\n onRowsPerPageChange?.(value as number);\n onPageChange?.(0);\n },\n [onPageChange, onRowsPerPageChange]\n );\n const currentInitItem = page * rowsPerPage + 1;\n const currentFinalItem =\n (page + 1) * rowsPerPage > rowsCount ? rowsCount : (page + 1) * rowsPerPage;\n\n return (\n <TFoot>\n <Tr>\n <TdFooterStyled colSpan={99}>\n <FooterContainer>\n <FooterContainerStart>\n {pagination && (\n <SelectContainer>\n <Select\n options={rowsPerPageOptions}\n onSelect={handleRowsPerPage}\n value={rowsPerPage}\n type={'single'}\n keyExtractor={value => String(value)}\n labelExtractor={rowsPerPageLabel}\n anchor=\"top\"\n />\n </SelectContainer>\n )}\n {exportComponent && !exportFunction && <>{exportComponent}</>}\n {exportFunction && (\n <HoveredText>\n <Button variant=\"outlined\" onPress={() => exportFunction()}>\n <Text fontColor=\"orange\" fontWeight=\"bold\">\n {exportLabel}\n </Text>\n </Button>\n </HoveredText>\n )}\n </FooterContainerStart>\n {pagination && (\n <>\n <TextPagination\n fontWeight={'bold'}\n fontColor={'medium'}\n >{`Exibindo ${currentInitItem} a ${currentFinalItem} de ${rowsCount} registros`}</TextPagination>\n <FooterContainerEnd>\n <NavigationButton\n onPress={() => onPageChange?.(page - 1)}\n disabled={page === 0}\n >\n <Icon\n name={'chevron-left'}\n type={'material-community'}\n fontColor={'light'}\n />\n </NavigationButton>\n <PagesContainer>\n {[...Array(Math.ceil(rowsCount / rowsPerPage)).keys()]\n .slice(\n getPaginationSlice().start,\n getPaginationSlice().end\n )\n .map(value => (\n <HoveredText key={`page-${value}`}>\n <PageButton\n variant={page === value ? 'outlined' : 'text'}\n onPress={() => onPageChange?.(value)}\n >\n <Text fontColor=\"medium\" fontWeight=\"bold\">\n {value + 1}\n </Text>\n </PageButton>\n </HoveredText>\n ))}\n </PagesContainer>\n <NavigationButton\n onPress={() => onPageChange?.(page + 1)}\n disabled={page === Math.ceil(rowsCount / rowsPerPage) - 1}\n >\n <Icon\n name={'chevron-right'}\n type={'material-community'}\n fontColor={'light'}\n />\n </NavigationButton>\n </FooterContainerEnd>\n </>\n )}\n </FooterContainer>\n </TdFooterStyled>\n </Tr>\n </TFoot>\n );\n};\n\nexport default React.memo(Footer);\n"],"names":[],"mappings":"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"}