@hitachivantara/uikit-react-core 5.0.0-next.17 → 5.0.0-next.18

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 (127) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/components/BaseDropdown/BaseDropdown.cjs +1 -1
  3. package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs +1 -1
  4. package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs.map +1 -1
  5. package/dist/cjs/components/FileUploader/DropZone/DropZone.cjs +1 -1
  6. package/dist/cjs/components/FileUploader/DropZone/DropZone.cjs.map +1 -1
  7. package/dist/cjs/components/List/List.cjs +4 -3
  8. package/dist/cjs/components/List/List.cjs.map +1 -1
  9. package/dist/cjs/components/List/utils.cjs +0 -10
  10. package/dist/cjs/components/List/utils.cjs.map +1 -1
  11. package/dist/cjs/components/VerticalNavigation/Actions/Action.cjs +45 -0
  12. package/dist/cjs/components/VerticalNavigation/Actions/Action.cjs.map +1 -0
  13. package/dist/cjs/components/VerticalNavigation/Actions/Action.styles.cjs +51 -0
  14. package/dist/cjs/components/VerticalNavigation/Actions/Action.styles.cjs.map +1 -0
  15. package/dist/cjs/components/VerticalNavigation/Actions/Actions.cjs +30 -0
  16. package/dist/cjs/components/VerticalNavigation/Actions/Actions.cjs.map +1 -0
  17. package/dist/cjs/components/VerticalNavigation/Actions/Actions.styles.cjs +26 -0
  18. package/dist/cjs/components/VerticalNavigation/Actions/Actions.styles.cjs.map +1 -0
  19. package/dist/cjs/components/VerticalNavigation/Actions/actionClasses.cjs +8 -0
  20. package/dist/cjs/components/VerticalNavigation/Actions/actionClasses.cjs.map +1 -0
  21. package/dist/cjs/components/VerticalNavigation/Actions/actionsClasses.cjs +8 -0
  22. package/dist/cjs/components/VerticalNavigation/Actions/actionsClasses.cjs.map +1 -0
  23. package/dist/cjs/components/VerticalNavigation/Header/Header.cjs +45 -0
  24. package/dist/cjs/components/VerticalNavigation/Header/Header.cjs.map +1 -0
  25. package/dist/cjs/components/VerticalNavigation/Header/Header.styles.cjs +23 -0
  26. package/dist/cjs/components/VerticalNavigation/Header/Header.styles.cjs.map +1 -0
  27. package/dist/cjs/components/VerticalNavigation/Header/headerClasses.cjs +8 -0
  28. package/dist/cjs/components/VerticalNavigation/Header/headerClasses.cjs.map +1 -0
  29. package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.cjs +134 -0
  30. package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.cjs.map +1 -0
  31. package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.styles.cjs +22 -0
  32. package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.styles.cjs.map +1 -0
  33. package/dist/cjs/components/VerticalNavigation/Navigation/navigationClasses.cjs +8 -0
  34. package/dist/cjs/components/VerticalNavigation/Navigation/navigationClasses.cjs.map +1 -0
  35. package/dist/cjs/components/VerticalNavigation/TreeView/TreeView.cjs +643 -0
  36. package/dist/cjs/components/VerticalNavigation/TreeView/TreeView.cjs.map +1 -0
  37. package/dist/cjs/components/VerticalNavigation/TreeView/TreeView.styles.cjs +21 -0
  38. package/dist/cjs/components/VerticalNavigation/TreeView/TreeView.styles.cjs.map +1 -0
  39. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewContext.cjs +10 -0
  40. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewContext.cjs.map +1 -0
  41. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.cjs +282 -0
  42. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.cjs.map +1 -0
  43. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.styles.cjs +132 -0
  44. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.styles.cjs.map +1 -0
  45. package/dist/cjs/components/VerticalNavigation/TreeView/descendants.cjs +134 -0
  46. package/dist/cjs/components/VerticalNavigation/TreeView/descendants.cjs.map +1 -0
  47. package/dist/cjs/components/VerticalNavigation/TreeView/treeViewClasses.cjs +8 -0
  48. package/dist/cjs/components/VerticalNavigation/TreeView/treeViewClasses.cjs.map +1 -0
  49. package/dist/cjs/components/VerticalNavigation/TreeView/treeViewItemClasses.cjs +8 -0
  50. package/dist/cjs/components/VerticalNavigation/TreeView/treeViewItemClasses.cjs.map +1 -0
  51. package/dist/cjs/components/VerticalNavigation/VerticalNavigation.cjs +40 -0
  52. package/dist/cjs/components/VerticalNavigation/VerticalNavigation.cjs.map +1 -0
  53. package/dist/cjs/components/VerticalNavigation/VerticalNavigation.styles.cjs +43 -0
  54. package/dist/cjs/components/VerticalNavigation/VerticalNavigation.styles.cjs.map +1 -0
  55. package/dist/cjs/components/VerticalNavigation/verticalNavigationClasses.cjs +8 -0
  56. package/dist/cjs/components/VerticalNavigation/verticalNavigationClasses.cjs.map +1 -0
  57. package/dist/cjs/hocs/withTooltip.cjs.map +1 -1
  58. package/dist/cjs/hooks/useEnhancedEffect.cjs +6 -0
  59. package/dist/cjs/hooks/useEnhancedEffect.cjs.map +1 -0
  60. package/dist/cjs/index.cjs +37 -0
  61. package/dist/cjs/index.cjs.map +1 -1
  62. package/dist/cjs/utils/wrapperTooltip.cjs +13 -0
  63. package/dist/cjs/utils/wrapperTooltip.cjs.map +1 -0
  64. package/dist/esm/components/BaseDropdown/BaseDropdown.js +1 -1
  65. package/dist/esm/components/DropDownMenu/DropDownMenu.js +1 -1
  66. package/dist/esm/components/DropDownMenu/DropDownMenu.js.map +1 -1
  67. package/dist/esm/components/FileUploader/DropZone/DropZone.js +1 -1
  68. package/dist/esm/components/FileUploader/DropZone/DropZone.js.map +1 -1
  69. package/dist/esm/components/List/List.js +2 -1
  70. package/dist/esm/components/List/List.js.map +1 -1
  71. package/dist/esm/components/List/utils.js +1 -11
  72. package/dist/esm/components/List/utils.js.map +1 -1
  73. package/dist/esm/components/VerticalNavigation/Actions/Action.js +43 -0
  74. package/dist/esm/components/VerticalNavigation/Actions/Action.js.map +1 -0
  75. package/dist/esm/components/VerticalNavigation/Actions/Action.styles.js +49 -0
  76. package/dist/esm/components/VerticalNavigation/Actions/Action.styles.js.map +1 -0
  77. package/dist/esm/components/VerticalNavigation/Actions/Actions.js +28 -0
  78. package/dist/esm/components/VerticalNavigation/Actions/Actions.js.map +1 -0
  79. package/dist/esm/components/VerticalNavigation/Actions/Actions.styles.js +24 -0
  80. package/dist/esm/components/VerticalNavigation/Actions/Actions.styles.js.map +1 -0
  81. package/dist/esm/components/VerticalNavigation/Actions/actionClasses.js +8 -0
  82. package/dist/esm/components/VerticalNavigation/Actions/actionClasses.js.map +1 -0
  83. package/dist/esm/components/VerticalNavigation/Actions/actionsClasses.js +8 -0
  84. package/dist/esm/components/VerticalNavigation/Actions/actionsClasses.js.map +1 -0
  85. package/dist/esm/components/VerticalNavigation/Header/Header.js +43 -0
  86. package/dist/esm/components/VerticalNavigation/Header/Header.js.map +1 -0
  87. package/dist/esm/components/VerticalNavigation/Header/Header.styles.js +21 -0
  88. package/dist/esm/components/VerticalNavigation/Header/Header.styles.js.map +1 -0
  89. package/dist/esm/components/VerticalNavigation/Header/headerClasses.js +8 -0
  90. package/dist/esm/components/VerticalNavigation/Header/headerClasses.js.map +1 -0
  91. package/dist/esm/components/VerticalNavigation/Navigation/Navigation.js +132 -0
  92. package/dist/esm/components/VerticalNavigation/Navigation/Navigation.js.map +1 -0
  93. package/dist/esm/components/VerticalNavigation/Navigation/Navigation.styles.js +20 -0
  94. package/dist/esm/components/VerticalNavigation/Navigation/Navigation.styles.js.map +1 -0
  95. package/dist/esm/components/VerticalNavigation/Navigation/navigationClasses.js +8 -0
  96. package/dist/esm/components/VerticalNavigation/Navigation/navigationClasses.js.map +1 -0
  97. package/dist/esm/components/VerticalNavigation/TreeView/TreeView.js +641 -0
  98. package/dist/esm/components/VerticalNavigation/TreeView/TreeView.js.map +1 -0
  99. package/dist/esm/components/VerticalNavigation/TreeView/TreeView.styles.js +19 -0
  100. package/dist/esm/components/VerticalNavigation/TreeView/TreeView.styles.js.map +1 -0
  101. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewContext.js +10 -0
  102. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewContext.js.map +1 -0
  103. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.js +280 -0
  104. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -0
  105. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.styles.js +130 -0
  106. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.styles.js.map +1 -0
  107. package/dist/esm/components/VerticalNavigation/TreeView/descendants.js +134 -0
  108. package/dist/esm/components/VerticalNavigation/TreeView/descendants.js.map +1 -0
  109. package/dist/esm/components/VerticalNavigation/TreeView/treeViewClasses.js +8 -0
  110. package/dist/esm/components/VerticalNavigation/TreeView/treeViewClasses.js.map +1 -0
  111. package/dist/esm/components/VerticalNavigation/TreeView/treeViewItemClasses.js +8 -0
  112. package/dist/esm/components/VerticalNavigation/TreeView/treeViewItemClasses.js.map +1 -0
  113. package/dist/esm/components/VerticalNavigation/VerticalNavigation.js +38 -0
  114. package/dist/esm/components/VerticalNavigation/VerticalNavigation.js.map +1 -0
  115. package/dist/esm/components/VerticalNavigation/VerticalNavigation.styles.js +41 -0
  116. package/dist/esm/components/VerticalNavigation/VerticalNavigation.styles.js.map +1 -0
  117. package/dist/esm/components/VerticalNavigation/verticalNavigationClasses.js +8 -0
  118. package/dist/esm/components/VerticalNavigation/verticalNavigationClasses.js.map +1 -0
  119. package/dist/esm/hocs/withTooltip.js.map +1 -1
  120. package/dist/esm/hooks/useEnhancedEffect.js +6 -0
  121. package/dist/esm/hooks/useEnhancedEffect.js.map +1 -0
  122. package/dist/esm/index.js +55 -18
  123. package/dist/esm/index.js.map +1 -1
  124. package/dist/esm/utils/wrapperTooltip.js +13 -0
  125. package/dist/esm/utils/wrapperTooltip.js.map +1 -0
  126. package/dist/types/index.d.ts +502 -0
  127. package/package.json +3 -3
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @hitachivantara/uikit-react-core
2
2
 
3
- UI Kit core React components for the Next Design System.
3
+ UI Kit core React components for the NEXT Design System.
4
4
 
5
5
  ## Installation
6
6
 
@@ -10,10 +10,10 @@ const reactPopper = require("react-popper");
10
10
  const core = require("@popperjs/core");
11
11
  const baseDropdownClasses = require("./baseDropdownClasses.cjs");
12
12
  const jsxRuntime = require("@emotion/react/jsx-runtime");
13
- const useTheme = require("../../hooks/useTheme.cjs");
14
13
  const useForkRef = require("../../hooks/useForkRef.cjs");
15
14
  const useUniqueId = require("../../hooks/useUniqueId.cjs");
16
15
  const BaseDropdownContext = require("./BaseDropdownContext/BaseDropdownContext.cjs");
16
+ const useTheme = require("../../hooks/useTheme.cjs");
17
17
  const useControlled = require("../../hooks/useControlled.cjs");
18
18
  const keyCheck = require("../../utils/keyboardUtils/keyCheck.cjs");
19
19
  const setId = require("../../utils/setId.cjs");
@@ -7,9 +7,9 @@ const focusableElementFinder = require("../../utils/focusableElementFinder.cjs")
7
7
  const uikitReactIcons = require("@hitachivantara/uikit-react-icons");
8
8
  const React = require("react");
9
9
  const uikitStyles = require("@hitachivantara/uikit-styles");
10
+ const withId = require("../../hocs/withId.cjs");
10
11
  const react = require("@emotion/react");
11
12
  const jsxRuntime = require("@emotion/react/jsx-runtime");
12
- const withId = require("../../hocs/withId.cjs");
13
13
  const List = require("../List/List.cjs");
14
14
  const useControlled = require("../../hooks/useControlled.cjs");
15
15
  const setId = require("../../utils/setId.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"DropDownMenu.cjs","sources":["../../../../src/components/DropDownMenu/DropDownMenu.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { useControlled } from \"hooks\";\nimport { HvBaseProps } from \"../../types\";\nimport {\n StyledBaseDropDown,\n StyledButton,\n StyledPanel,\n} from \"./DropDownMenu.styles\";\nimport dropDownMenuClasses, {\n HvDropDownMenuClasses,\n} from \"./dropDownMenuClasses\";\nimport { isKeypress, keyboardCodes, outlineStyles, setId } from \"utils\";\nimport getPrevNextFocus from \"utils/focusableElementFinder\";\nimport { MoreOptionsVertical } from \"@hitachivantara/uikit-react-icons\";\nimport { HvButtonVariant, HvList, HvListValue } from \"components\";\nimport { useMemo } from \"react\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { withId } from \"hocs\";\nimport { ClassNames } from \"@emotion/react\";\n\nexport type HvDropDownMenuProps = HvBaseProps<HTMLDivElement, { onClick }> & {\n /** Icon. */\n icon?: React.ReactElement;\n /**\n * A list containing the elements to be rendered.\n *\n * - label: The label of the element to be rendered.\n * - selected: The selection state of the element.\n * - disabled: The disabled state of the element.\n * - icon: The icon node to be rendered on the left.\n * - showNavIcon: If true renders the navigation icon on the right.\n */\n dataList: HvListValue[];\n /** Placement of the dropdown. */\n placement?: \"left\" | \"right\";\n /** Disable the portal behavior. The children stay within it's parent DOM hierarchy. */\n disablePortal?: boolean;\n /** Function executed on toggle of the dropdown. Should receive the open status. */\n onToggle?: (event: Event, open: boolean) => void;\n /** Function executed in each onClick. Should received the clicked element. */\n onClick?: (\n event: React.ChangeEvent<HTMLLIElement>,\n value: HvListValue\n ) => void;\n /** Keep the Dropdown Menu opened after clicking one option */\n keepOpened?: boolean;\n /** Defines if the component is disabled. */\n disabled?: boolean;\n /** If true it should be displayed open. */\n expanded?: boolean;\n /** When uncontrolled, defines the initial expanded state. */\n defaultExpanded?: boolean;\n /** The variant to be used in the header. */\n category?: HvButtonVariant;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvDropDownMenuClasses;\n};\n\n/**\n * A drop-down menu is a graphical control element, similar to a list box, that allows the user to choose a value from a list.\n */\nconst HvDropDownMenu = ({\n id,\n classes,\n className,\n icon,\n placement = \"right\",\n dataList,\n disablePortal = false,\n onToggle,\n onClick,\n keepOpened = true,\n disabled = false,\n expanded,\n defaultExpanded = false,\n category = \"secondaryGhost\",\n ...others\n}: HvDropDownMenuProps) => {\n const [open, setOpen] = useControlled(expanded, Boolean(defaultExpanded));\n const focusNodes = getPrevNextFocus(setId(id, \"icon-button\"));\n\n const listId = setId(id, \"list\");\n\n const handleClose = (event) => {\n // this will only run if uncontrolled\n setOpen(false);\n onToggle?.(event, false);\n };\n\n // If the ESCAPE key is pressed inside the list, the close handler must be called.\n const handleKeyDown = (event) => {\n if (isKeypress(event, keyboardCodes.Tab)) {\n const node = event.shiftKey ? focusNodes.prevFocus : focusNodes.nextFocus;\n if (node) setTimeout(() => node.focus(), 0);\n handleClose(event);\n }\n event.preventDefault();\n };\n\n const setFocusToContent = (containerRef) => {\n containerRef?.getElementsByTagName(\"li\")[0]?.focus();\n };\n\n const headerComponent = (\n <StyledButton\n icon\n variant={category}\n id={setId(id, \"icon-button\")}\n className={clsx(\n dropDownMenuClasses.icon,\n classes?.icon,\n open && clsx(dropDownMenuClasses.iconSelected, classes?.iconSelected)\n )}\n aria-expanded={open}\n disabled={disabled}\n aria-label=\"Dropdown menu\"\n $open={open}\n >\n {icon || <MoreOptionsVertical color={disabled ? \"atmo5\" : undefined} />}\n </StyledButton>\n );\n\n const condensed = useMemo(() => dataList.every((el) => !el.icon), [dataList]);\n const popperStyle = {\n style: {\n zIndex: theme.zIndices.tooltip,\n width: \"auto\",\n position: \"relative\",\n },\n };\n\n return (\n <ClassNames>\n {({ css }) => (\n <StyledBaseDropDown\n id={id}\n className={clsx(\n className,\n dropDownMenuClasses.container,\n classes?.container\n )}\n classes={{\n root: clsx(\n dropDownMenuClasses.root,\n classes?.root,\n css({\n display: \"inline-block\",\n width: \"auto\",\n \"&.focus-visible $icon\": {\n ...outlineStyles,\n },\n })\n ),\n container: clsx(\n dropDownMenuClasses.baseContainer,\n classes?.baseContainer\n ),\n }}\n expanded={open && !disabled}\n component={headerComponent}\n aria-haspopup=\"menu\"\n placement={placement}\n variableWidth\n disablePortal={disablePortal}\n onToggle={(e, s) => {\n // this will only run if uncontrolled\n setOpen(s);\n onToggle?.(e, s);\n }}\n disabled={disabled}\n onContainerCreation={setFocusToContent}\n popperProps={popperStyle}\n {...others}\n >\n <StyledPanel>\n <HvList\n id={listId}\n values={dataList}\n selectable={false}\n condensed={condensed}\n onClick={(event, item) => {\n if (!keepOpened) handleClose(event);\n onClick?.(event, item);\n }}\n onKeyDown={handleKeyDown}\n classes={{\n root: clsx(dropDownMenuClasses.menuList, classes?.menuList),\n }}\n />\n </StyledPanel>\n </StyledBaseDropDown>\n )}\n </ClassNames>\n );\n};\n\nexport default withId(HvDropDownMenu);\n"],"names":["HvDropDownMenu","id","classes","className","icon","placement","dataList","disablePortal","onToggle","onClick","keepOpened","disabled","expanded","defaultExpanded","category","others","open","setOpen","useControlled","Boolean","focusNodes","getPrevNextFocus","setId","listId","handleClose","event","handleKeyDown","isKeypress","keyboardCodes","Tab","node","shiftKey","prevFocus","nextFocus","setTimeout","focus","preventDefault","setFocusToContent","containerRef","getElementsByTagName","headerComponent","StyledButton","variant","clsx","dropDownMenuClasses","iconSelected","$open","children","_jsx","MoreOptionsVertical","color","undefined","condensed","useMemo","every","el","popperStyle","style","zIndex","theme","zIndices","tooltip","width","position","ClassNames","css","StyledBaseDropDown","container","root","display","outlineStyles","baseContainer","component","variableWidth","e","s","onContainerCreation","popperProps","StyledPanel","HvList","values","selectable","item","onKeyDown","menuList","withId"],"mappings":"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"}
1
+ {"version":3,"file":"DropDownMenu.cjs","sources":["../../../../src/components/DropDownMenu/DropDownMenu.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { useControlled } from \"hooks\";\nimport { HvBaseProps } from \"../../types\";\nimport {\n StyledBaseDropDown,\n StyledButton,\n StyledPanel,\n} from \"./DropDownMenu.styles\";\nimport dropDownMenuClasses, {\n HvDropDownMenuClasses,\n} from \"./dropDownMenuClasses\";\nimport { isKeypress, keyboardCodes, outlineStyles, setId } from \"utils\";\nimport getPrevNextFocus from \"utils/focusableElementFinder\";\nimport { MoreOptionsVertical } from \"@hitachivantara/uikit-react-icons\";\nimport { HvButtonVariant, HvList, HvListValue } from \"components\";\nimport { useMemo } from \"react\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport withId from \"../../hocs/withId\";\nimport { ClassNames } from \"@emotion/react\";\n\nexport type HvDropDownMenuProps = HvBaseProps<HTMLDivElement, { onClick }> & {\n /** Icon. */\n icon?: React.ReactElement;\n /**\n * A list containing the elements to be rendered.\n *\n * - label: The label of the element to be rendered.\n * - selected: The selection state of the element.\n * - disabled: The disabled state of the element.\n * - icon: The icon node to be rendered on the left.\n * - showNavIcon: If true renders the navigation icon on the right.\n */\n dataList: HvListValue[];\n /** Placement of the dropdown. */\n placement?: \"left\" | \"right\";\n /** Disable the portal behavior. The children stay within it's parent DOM hierarchy. */\n disablePortal?: boolean;\n /** Function executed on toggle of the dropdown. Should receive the open status. */\n onToggle?: (event: Event, open: boolean) => void;\n /** Function executed in each onClick. Should received the clicked element. */\n onClick?: (\n event: React.ChangeEvent<HTMLLIElement>,\n value: HvListValue\n ) => void;\n /** Keep the Dropdown Menu opened after clicking one option */\n keepOpened?: boolean;\n /** Defines if the component is disabled. */\n disabled?: boolean;\n /** If true it should be displayed open. */\n expanded?: boolean;\n /** When uncontrolled, defines the initial expanded state. */\n defaultExpanded?: boolean;\n /** The variant to be used in the header. */\n category?: HvButtonVariant;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvDropDownMenuClasses;\n};\n\n/**\n * A drop-down menu is a graphical control element, similar to a list box, that allows the user to choose a value from a list.\n */\nconst HvDropDownMenu = ({\n id,\n classes,\n className,\n icon,\n placement = \"right\",\n dataList,\n disablePortal = false,\n onToggle,\n onClick,\n keepOpened = true,\n disabled = false,\n expanded,\n defaultExpanded = false,\n category = \"secondaryGhost\",\n ...others\n}: HvDropDownMenuProps) => {\n const [open, setOpen] = useControlled(expanded, Boolean(defaultExpanded));\n const focusNodes = getPrevNextFocus(setId(id, \"icon-button\"));\n\n const listId = setId(id, \"list\");\n\n const handleClose = (event) => {\n // this will only run if uncontrolled\n setOpen(false);\n onToggle?.(event, false);\n };\n\n // If the ESCAPE key is pressed inside the list, the close handler must be called.\n const handleKeyDown = (event) => {\n if (isKeypress(event, keyboardCodes.Tab)) {\n const node = event.shiftKey ? focusNodes.prevFocus : focusNodes.nextFocus;\n if (node) setTimeout(() => node.focus(), 0);\n handleClose(event);\n }\n event.preventDefault();\n };\n\n const setFocusToContent = (containerRef) => {\n containerRef?.getElementsByTagName(\"li\")[0]?.focus();\n };\n\n const headerComponent = (\n <StyledButton\n icon\n variant={category}\n id={setId(id, \"icon-button\")}\n className={clsx(\n dropDownMenuClasses.icon,\n classes?.icon,\n open && clsx(dropDownMenuClasses.iconSelected, classes?.iconSelected)\n )}\n aria-expanded={open}\n disabled={disabled}\n aria-label=\"Dropdown menu\"\n $open={open}\n >\n {icon || <MoreOptionsVertical color={disabled ? \"atmo5\" : undefined} />}\n </StyledButton>\n );\n\n const condensed = useMemo(() => dataList.every((el) => !el.icon), [dataList]);\n const popperStyle = {\n style: {\n zIndex: theme.zIndices.tooltip,\n width: \"auto\",\n position: \"relative\",\n },\n };\n\n return (\n <ClassNames>\n {({ css }) => (\n <StyledBaseDropDown\n id={id}\n className={clsx(\n className,\n dropDownMenuClasses.container,\n classes?.container\n )}\n classes={{\n root: clsx(\n dropDownMenuClasses.root,\n classes?.root,\n css({\n display: \"inline-block\",\n width: \"auto\",\n \"&.focus-visible $icon\": {\n ...outlineStyles,\n },\n })\n ),\n container: clsx(\n dropDownMenuClasses.baseContainer,\n classes?.baseContainer\n ),\n }}\n expanded={open && !disabled}\n component={headerComponent}\n aria-haspopup=\"menu\"\n placement={placement}\n variableWidth\n disablePortal={disablePortal}\n onToggle={(e, s) => {\n // this will only run if uncontrolled\n setOpen(s);\n onToggle?.(e, s);\n }}\n disabled={disabled}\n onContainerCreation={setFocusToContent}\n popperProps={popperStyle}\n {...others}\n >\n <StyledPanel>\n <HvList\n id={listId}\n values={dataList}\n selectable={false}\n condensed={condensed}\n onClick={(event, item) => {\n if (!keepOpened) handleClose(event);\n onClick?.(event, item);\n }}\n onKeyDown={handleKeyDown}\n classes={{\n root: clsx(dropDownMenuClasses.menuList, classes?.menuList),\n }}\n />\n </StyledPanel>\n </StyledBaseDropDown>\n )}\n </ClassNames>\n );\n};\n\nexport default withId(HvDropDownMenu);\n"],"names":["HvDropDownMenu","id","classes","className","icon","placement","dataList","disablePortal","onToggle","onClick","keepOpened","disabled","expanded","defaultExpanded","category","others","open","setOpen","useControlled","Boolean","focusNodes","getPrevNextFocus","setId","listId","handleClose","event","handleKeyDown","isKeypress","keyboardCodes","Tab","node","shiftKey","prevFocus","nextFocus","setTimeout","focus","preventDefault","setFocusToContent","containerRef","getElementsByTagName","headerComponent","StyledButton","variant","clsx","dropDownMenuClasses","iconSelected","$open","children","_jsx","MoreOptionsVertical","color","undefined","condensed","useMemo","every","el","popperStyle","style","zIndex","theme","zIndices","tooltip","width","position","ClassNames","css","StyledBaseDropDown","container","root","display","outlineStyles","baseContainer","component","variableWidth","e","s","onContainerCreation","popperProps","StyledPanel","HvList","values","selectable","item","onKeyDown","menuList","withId"],"mappings":"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"}
@@ -7,8 +7,8 @@ const accept = require("attr-accept");
7
7
  const DropZone_styles = require("./DropZone.styles.cjs");
8
8
  const clsx = require("clsx");
9
9
  const utils = require("../utils.cjs");
10
- const jsxRuntime = require("@emotion/react/jsx-runtime");
11
10
  const withId = require("../../../hocs/withId.cjs");
11
+ const jsxRuntime = require("@emotion/react/jsx-runtime");
12
12
  const setId = require("../../../utils/setId.cjs");
13
13
  const keyCheck = require("../../../utils/keyboardUtils/keyCheck.cjs");
14
14
  const keyboardCodes = require("../../../utils/keyboardUtils/keyboardCodes.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"DropZone.cjs","sources":["../../../../../src/components/FileUploader/DropZone/DropZone.tsx"],"sourcesContent":["import { HvFileData, HvFilesAddedEvent } from \"../File\";\nimport dropZoneClasses, { HvDropZoneClasses } from \"./dropZoneClasses\";\nimport React, { useRef, useState } from \"react\";\nimport { uniqueId } from \"lodash\";\nimport accept from \"attr-accept\";\nimport {\n StyledDragText,\n StyledDropArea,\n StyledDropAreaIcon,\n StyledDropAreaLabel,\n StyledDropAreaLabels,\n StyledDropZoneContainer,\n StyledDropZoneLabelsGroup,\n StyledInfoMessage,\n StyledInput,\n StyledLabel,\n StyledSelectedFilesText,\n} from \"./DropZone.styles\";\nimport clsx from \"clsx\";\nimport { isKeypress, keyboardCodes, setId } from \"utils\";\nimport { convertUnits } from \"../utils\";\nimport { withId } from \"hocs\";\n\nexport type HvDropZoneLabels = {\n /**\n * Extensions of the accepted file types\n */\n acceptedFiles?: string;\n /**\n * Dropzone area label.\n */\n dropzone?: string;\n /**\n * Size file warning label.\n */\n sizeWarning?: string;\n /**\n * Size file warning label.\n */\n drag?: string;\n /**\n * Size file warning label.\n */\n selectFiles?: string;\n /**\n * Theming sheet used to style components\n * */\n dropFiles?: string;\n /**\n * Message to display when file size is greater than allowed\n * */\n fileSizeError?: string;\n /**\n * Message to display when file type is greater than allowed\n * */\n fileTypeError?: string;\n};\n\nexport type HvDropZoneProps = {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * Labels to present in FileUploader.\n */\n labels?: HvDropZoneLabels;\n /**\n * Whether the Dropzone should accept multiple files at once.\n */\n multiple?: boolean;\n /**\n * If the input is disabled or not\n */\n disabled?: boolean;\n /**\n * Files extensions accepted for upload.\n */\n acceptedFiles: string[];\n /**\n * Max upload size\n * */\n maxFileSize: number;\n /**\n * Function responsible for processing files added to the drop zone.\n */\n onFilesAdded?: HvFilesAddedEvent;\n /**\n * Whether the DropZone should hide labels or not.\n */\n hideLabels?: boolean;\n /**\n * Attributes applied to the input element.\n */\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvDropZoneClasses;\n};\n\nexport const HvDropZone = withId(\n ({\n id,\n classes,\n labels,\n acceptedFiles,\n maxFileSize,\n inputProps,\n hideLabels,\n multiple = true,\n disabled = false,\n onFilesAdded,\n }: HvDropZoneProps) => {\n const [dragState, setDrag] = useState<boolean>(false);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const leaveDropArea = () => {\n setDrag(false);\n };\n\n const enterDropArea = () => {\n setDrag(true);\n };\n\n const onChangeHandler = (filesList: FileList) => {\n const filesToProcess = Object.keys(filesList).map((e) => filesList[e]);\n\n const newFiles: HvFileData[] = [];\n\n filesToProcess.forEach((file: File) => {\n const newFile: HvFileData = file;\n\n const isSizeAllowed = file.size <= maxFileSize;\n const isFileAccepted =\n !acceptedFiles.length ||\n acceptedFiles.indexOf(file.type.split(\"/\")[1]) > -1 ||\n acceptedFiles.some((acceptExtension) =>\n accept({ name: file.name, type: file.type }, acceptExtension)\n );\n\n if (!isFileAccepted) {\n newFile.errorMessage = labels?.fileTypeError;\n newFile.status = \"fail\";\n } else if (!isSizeAllowed) {\n newFile.errorMessage = labels?.fileSizeError;\n newFile.status = \"fail\";\n }\n\n newFile.id = uniqueId(\"uploaded-file-data-\");\n newFiles.push(newFile);\n });\n\n onFilesAdded?.(newFiles);\n };\n\n return (\n <>\n {!hideLabels && (\n <StyledDropZoneLabelsGroup\n id={id}\n className={clsx(\n classes?.dropZoneLabelsGroup,\n dropZoneClasses.dropZoneLabelsGroup\n )}\n aria-label=\"File Dropzone\"\n >\n <StyledLabel\n id={setId(id, \"input-file-label\")}\n htmlFor={setId(id, \"input-file\")}\n label={labels?.dropzone}\n className={clsx(\n classes?.dropZoneLabel,\n dropZoneClasses.dropZoneLabel\n )}\n $disabled={disabled}\n />\n <StyledInfoMessage\n $disabled={disabled}\n id={setId(id, \"description\")}\n >\n {Number.isInteger(maxFileSize) &&\n `${labels?.sizeWarning} ${convertUnits(maxFileSize)}`}\n {labels?.acceptedFiles && labels.acceptedFiles}\n {!labels?.acceptedFiles &&\n acceptedFiles.length > 0 &&\n `\\u00A0(${acceptedFiles.join(\", \")})`}\n </StyledInfoMessage>\n </StyledDropZoneLabelsGroup>\n )}\n <StyledDropZoneContainer\n id={setId(id, \"button\")}\n className={clsx(\n classes?.dropZoneContainer,\n dropZoneClasses.dropZoneContainer,\n dragState && clsx(classes?.dragAction, dropZoneClasses.dragAction),\n disabled &&\n clsx(\n classes?.dropZoneContainerDisabled,\n dropZoneClasses.dropZoneContainerDisabled\n )\n )}\n $drag={dragState}\n $disabled={disabled}\n role=\"button\"\n tabIndex={0}\n onDragEnter={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDragLeave={leaveDropArea}\n onDropCapture={leaveDropArea}\n onDragOver={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDrop={(event) => {\n if (!disabled) {\n const { files } = event.dataTransfer;\n if (multiple === true || files.length === 1) {\n event.stopPropagation();\n event.preventDefault();\n onChangeHandler(files);\n }\n }\n }}\n onKeyDown={(e) => {\n if (isKeypress(e, keyboardCodes.Enter) || isKeypress(e, 32)) {\n inputRef.current?.click();\n }\n }}\n >\n <StyledInput\n id={setId(id, \"input-file\")}\n tabIndex={-1}\n className={clsx(classes?.inputArea, dropZoneClasses.inputArea)}\n type=\"file\"\n multiple={multiple}\n disabled={disabled}\n title={!disabled ? `${labels?.drag}\\xa0${labels?.selectFiles}` : \"\"}\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.value = \"\";\n }\n }}\n onChange={() => {\n if (!disabled && inputRef.current?.files) {\n onChangeHandler(inputRef.current.files);\n }\n }}\n ref={inputRef}\n accept={acceptedFiles.join(\",\")}\n {...inputProps}\n />\n <StyledDropArea\n className={clsx(classes?.dropArea, dropZoneClasses.dropArea)}\n >\n {dragState ? (\n <StyledDropAreaLabel\n className={clsx(\n classes?.dropZoneAreaLabels,\n dropZoneClasses.dropZoneAreaLabels\n )}\n >\n <StyledDragText\n className={clsx(classes?.dragText, dropZoneClasses.dragText)}\n >\n {labels?.dropFiles}\n </StyledDragText>\n </StyledDropAreaLabel>\n ) : (\n <>\n <StyledDropAreaIcon\n iconSize=\"M\"\n className={clsx(\n classes?.dropZoneAreaIcon,\n dropZoneClasses.dropZoneAreaIcon\n )}\n color={disabled ? \"atmo5\" : \"acce1\"}\n />\n <StyledDropAreaLabels\n className={clsx(\n classes?.dropZoneAreaLabels,\n dropZoneClasses.dropZoneAreaLabels\n )}\n >\n <StyledDragText\n className={clsx(\n classes?.dragText,\n dropZoneClasses.dragText\n )}\n >\n {labels?.drag}\n <StyledSelectedFilesText\n className={clsx(\n classes?.selectFilesText,\n dropZoneClasses.selectFilesText\n )}\n >{`\\xa0${labels?.selectFiles}`}</StyledSelectedFilesText>\n </StyledDragText>\n </StyledDropAreaLabels>\n </>\n )}\n </StyledDropArea>\n </StyledDropZoneContainer>\n </>\n );\n }\n);\n"],"names":["HvDropZone","withId","id","classes","labels","acceptedFiles","maxFileSize","inputProps","hideLabels","multiple","disabled","onFilesAdded","dragState","setDrag","useState","inputRef","useRef","leaveDropArea","enterDropArea","onChangeHandler","filesList","filesToProcess","Object","keys","map","e","newFiles","forEach","file","newFile","isSizeAllowed","size","isFileAccepted","length","indexOf","type","split","some","acceptExtension","accept","name","errorMessage","fileTypeError","status","fileSizeError","uniqueId","push","_Fragment","children","StyledDropZoneLabelsGroup","className","clsx","dropZoneLabelsGroup","dropZoneClasses","_jsx","StyledLabel","setId","htmlFor","label","dropzone","dropZoneLabel","$disabled","_jsxs","StyledInfoMessage","Number","isInteger","sizeWarning","convertUnits","join","StyledDropZoneContainer","dropZoneContainer","dragAction","dropZoneContainerDisabled","$drag","role","tabIndex","onDragEnter","event","stopPropagation","preventDefault","onDragLeave","onDropCapture","onDragOver","onDrop","files","dataTransfer","onKeyDown","isKeypress","keyboardCodes","Enter","current","click","StyledInput","inputArea","title","drag","selectFiles","onClick","value","onChange","ref","StyledDropArea","dropArea","StyledDropAreaLabel","dropZoneAreaLabels","StyledDragText","dragText","dropFiles","StyledDropAreaIcon","iconSize","dropZoneAreaIcon","color","StyledDropAreaLabels","StyledSelectedFilesText","selectFilesText"],"mappings":"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"}
1
+ {"version":3,"file":"DropZone.cjs","sources":["../../../../../src/components/FileUploader/DropZone/DropZone.tsx"],"sourcesContent":["import { HvFileData, HvFilesAddedEvent } from \"../File\";\nimport dropZoneClasses, { HvDropZoneClasses } from \"./dropZoneClasses\";\nimport React, { useRef, useState } from \"react\";\nimport { uniqueId } from \"lodash\";\nimport accept from \"attr-accept\";\nimport {\n StyledDragText,\n StyledDropArea,\n StyledDropAreaIcon,\n StyledDropAreaLabel,\n StyledDropAreaLabels,\n StyledDropZoneContainer,\n StyledDropZoneLabelsGroup,\n StyledInfoMessage,\n StyledInput,\n StyledLabel,\n StyledSelectedFilesText,\n} from \"./DropZone.styles\";\nimport clsx from \"clsx\";\nimport { isKeypress, keyboardCodes, setId } from \"utils\";\nimport { convertUnits } from \"../utils\";\nimport withId from \"../../../hocs/withId\";\n\nexport type HvDropZoneLabels = {\n /**\n * Extensions of the accepted file types\n */\n acceptedFiles?: string;\n /**\n * Dropzone area label.\n */\n dropzone?: string;\n /**\n * Size file warning label.\n */\n sizeWarning?: string;\n /**\n * Size file warning label.\n */\n drag?: string;\n /**\n * Size file warning label.\n */\n selectFiles?: string;\n /**\n * Theming sheet used to style components\n * */\n dropFiles?: string;\n /**\n * Message to display when file size is greater than allowed\n * */\n fileSizeError?: string;\n /**\n * Message to display when file type is greater than allowed\n * */\n fileTypeError?: string;\n};\n\nexport type HvDropZoneProps = {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * Labels to present in FileUploader.\n */\n labels?: HvDropZoneLabels;\n /**\n * Whether the Dropzone should accept multiple files at once.\n */\n multiple?: boolean;\n /**\n * If the input is disabled or not\n */\n disabled?: boolean;\n /**\n * Files extensions accepted for upload.\n */\n acceptedFiles: string[];\n /**\n * Max upload size\n * */\n maxFileSize: number;\n /**\n * Function responsible for processing files added to the drop zone.\n */\n onFilesAdded?: HvFilesAddedEvent;\n /**\n * Whether the DropZone should hide labels or not.\n */\n hideLabels?: boolean;\n /**\n * Attributes applied to the input element.\n */\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvDropZoneClasses;\n};\n\nexport const HvDropZone = withId(\n ({\n id,\n classes,\n labels,\n acceptedFiles,\n maxFileSize,\n inputProps,\n hideLabels,\n multiple = true,\n disabled = false,\n onFilesAdded,\n }: HvDropZoneProps) => {\n const [dragState, setDrag] = useState<boolean>(false);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const leaveDropArea = () => {\n setDrag(false);\n };\n\n const enterDropArea = () => {\n setDrag(true);\n };\n\n const onChangeHandler = (filesList: FileList) => {\n const filesToProcess = Object.keys(filesList).map((e) => filesList[e]);\n\n const newFiles: HvFileData[] = [];\n\n filesToProcess.forEach((file: File) => {\n const newFile: HvFileData = file;\n\n const isSizeAllowed = file.size <= maxFileSize;\n const isFileAccepted =\n !acceptedFiles.length ||\n acceptedFiles.indexOf(file.type.split(\"/\")[1]) > -1 ||\n acceptedFiles.some((acceptExtension) =>\n accept({ name: file.name, type: file.type }, acceptExtension)\n );\n\n if (!isFileAccepted) {\n newFile.errorMessage = labels?.fileTypeError;\n newFile.status = \"fail\";\n } else if (!isSizeAllowed) {\n newFile.errorMessage = labels?.fileSizeError;\n newFile.status = \"fail\";\n }\n\n newFile.id = uniqueId(\"uploaded-file-data-\");\n newFiles.push(newFile);\n });\n\n onFilesAdded?.(newFiles);\n };\n\n return (\n <>\n {!hideLabels && (\n <StyledDropZoneLabelsGroup\n id={id}\n className={clsx(\n classes?.dropZoneLabelsGroup,\n dropZoneClasses.dropZoneLabelsGroup\n )}\n aria-label=\"File Dropzone\"\n >\n <StyledLabel\n id={setId(id, \"input-file-label\")}\n htmlFor={setId(id, \"input-file\")}\n label={labels?.dropzone}\n className={clsx(\n classes?.dropZoneLabel,\n dropZoneClasses.dropZoneLabel\n )}\n $disabled={disabled}\n />\n <StyledInfoMessage\n $disabled={disabled}\n id={setId(id, \"description\")}\n >\n {Number.isInteger(maxFileSize) &&\n `${labels?.sizeWarning} ${convertUnits(maxFileSize)}`}\n {labels?.acceptedFiles && labels.acceptedFiles}\n {!labels?.acceptedFiles &&\n acceptedFiles.length > 0 &&\n `\\u00A0(${acceptedFiles.join(\", \")})`}\n </StyledInfoMessage>\n </StyledDropZoneLabelsGroup>\n )}\n <StyledDropZoneContainer\n id={setId(id, \"button\")}\n className={clsx(\n classes?.dropZoneContainer,\n dropZoneClasses.dropZoneContainer,\n dragState && clsx(classes?.dragAction, dropZoneClasses.dragAction),\n disabled &&\n clsx(\n classes?.dropZoneContainerDisabled,\n dropZoneClasses.dropZoneContainerDisabled\n )\n )}\n $drag={dragState}\n $disabled={disabled}\n role=\"button\"\n tabIndex={0}\n onDragEnter={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDragLeave={leaveDropArea}\n onDropCapture={leaveDropArea}\n onDragOver={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDrop={(event) => {\n if (!disabled) {\n const { files } = event.dataTransfer;\n if (multiple === true || files.length === 1) {\n event.stopPropagation();\n event.preventDefault();\n onChangeHandler(files);\n }\n }\n }}\n onKeyDown={(e) => {\n if (isKeypress(e, keyboardCodes.Enter) || isKeypress(e, 32)) {\n inputRef.current?.click();\n }\n }}\n >\n <StyledInput\n id={setId(id, \"input-file\")}\n tabIndex={-1}\n className={clsx(classes?.inputArea, dropZoneClasses.inputArea)}\n type=\"file\"\n multiple={multiple}\n disabled={disabled}\n title={!disabled ? `${labels?.drag}\\xa0${labels?.selectFiles}` : \"\"}\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.value = \"\";\n }\n }}\n onChange={() => {\n if (!disabled && inputRef.current?.files) {\n onChangeHandler(inputRef.current.files);\n }\n }}\n ref={inputRef}\n accept={acceptedFiles.join(\",\")}\n {...inputProps}\n />\n <StyledDropArea\n className={clsx(classes?.dropArea, dropZoneClasses.dropArea)}\n >\n {dragState ? (\n <StyledDropAreaLabel\n className={clsx(\n classes?.dropZoneAreaLabels,\n dropZoneClasses.dropZoneAreaLabels\n )}\n >\n <StyledDragText\n className={clsx(classes?.dragText, dropZoneClasses.dragText)}\n >\n {labels?.dropFiles}\n </StyledDragText>\n </StyledDropAreaLabel>\n ) : (\n <>\n <StyledDropAreaIcon\n iconSize=\"M\"\n className={clsx(\n classes?.dropZoneAreaIcon,\n dropZoneClasses.dropZoneAreaIcon\n )}\n color={disabled ? \"atmo5\" : \"acce1\"}\n />\n <StyledDropAreaLabels\n className={clsx(\n classes?.dropZoneAreaLabels,\n dropZoneClasses.dropZoneAreaLabels\n )}\n >\n <StyledDragText\n className={clsx(\n classes?.dragText,\n dropZoneClasses.dragText\n )}\n >\n {labels?.drag}\n <StyledSelectedFilesText\n className={clsx(\n classes?.selectFilesText,\n dropZoneClasses.selectFilesText\n )}\n >{`\\xa0${labels?.selectFiles}`}</StyledSelectedFilesText>\n </StyledDragText>\n </StyledDropAreaLabels>\n </>\n )}\n </StyledDropArea>\n </StyledDropZoneContainer>\n </>\n );\n }\n);\n"],"names":["HvDropZone","withId","id","classes","labels","acceptedFiles","maxFileSize","inputProps","hideLabels","multiple","disabled","onFilesAdded","dragState","setDrag","useState","inputRef","useRef","leaveDropArea","enterDropArea","onChangeHandler","filesList","filesToProcess","Object","keys","map","e","newFiles","forEach","file","newFile","isSizeAllowed","size","isFileAccepted","length","indexOf","type","split","some","acceptExtension","accept","name","errorMessage","fileTypeError","status","fileSizeError","uniqueId","push","_Fragment","children","StyledDropZoneLabelsGroup","className","clsx","dropZoneLabelsGroup","dropZoneClasses","_jsx","StyledLabel","setId","htmlFor","label","dropzone","dropZoneLabel","$disabled","_jsxs","StyledInfoMessage","Number","isInteger","sizeWarning","convertUnits","join","StyledDropZoneContainer","dropZoneContainer","dragAction","dropZoneContainerDisabled","$drag","role","tabIndex","onDragEnter","event","stopPropagation","preventDefault","onDragLeave","onDropCapture","onDragOver","onDrop","files","dataTransfer","onKeyDown","isKeypress","keyboardCodes","Enter","current","click","StyledInput","inputArea","title","drag","selectFiles","onClick","value","onChange","ref","StyledDropArea","dropArea","StyledDropAreaLabel","dropZoneAreaLabels","StyledDragText","dragText","dropFiles","StyledDropAreaIcon","iconSize","dropZoneAreaIcon","color","StyledDropAreaLabels","StyledSelectedFilesText","selectFilesText"],"mappings":"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"}
@@ -7,6 +7,7 @@ const listClasses = require("./listClasses.cjs");
7
7
  const useSelectableList = require("./useSelectableList.cjs");
8
8
  const utils = require("./utils.cjs");
9
9
  const jsxRuntime = require("@emotion/react/jsx-runtime");
10
+ const wrapperTooltip = require("../../utils/wrapperTooltip.cjs");
10
11
  const ListContainer = require("../ListContainer/ListContainer.cjs");
11
12
  const Typography = require("../Typography/Typography.cjs");
12
13
  const setId = require("../../utils/setId.cjs");
@@ -108,7 +109,7 @@ const HvList = ({
108
109
  });
109
110
  };
110
111
  const renderItemText = (item) => {
111
- const ItemText = utils.wrapperTooltip(hasTooltips, item.label, item.label);
112
+ const ItemText = wrapperTooltip.wrapperTooltip(hasTooltips, item.label, item.label);
112
113
  return !multiSelect && item.path ? /* @__PURE__ */ jsxRuntime.jsx(List_styles.StyledLink, {
113
114
  route: item.path,
114
115
  classes: {
@@ -119,7 +120,7 @@ const HvList = ({
119
120
  };
120
121
  const renderMultiSelectItem = (item, itemId) => {
121
122
  if (useSelector) {
122
- const Selection = utils.wrapperTooltip(hasTooltips, /* @__PURE__ */ jsxRuntime.jsx(List_styles.StyledMultiSelectCheckBox, {
123
+ const Selection = wrapperTooltip.wrapperTooltip(hasTooltips, /* @__PURE__ */ jsxRuntime.jsx(List_styles.StyledMultiSelectCheckBox, {
123
124
  id: setId.setId(itemId, "selector"),
124
125
  label: item.label,
125
126
  checked: item.selected,
@@ -137,7 +138,7 @@ const HvList = ({
137
138
  };
138
139
  const renderSingleSelectItem = (item, itemId) => {
139
140
  if (useSelector) {
140
- const Selection = utils.wrapperTooltip(hasTooltips, /* @__PURE__ */ jsxRuntime.jsx(List_styles.StyledSingleSelectRadio, {
141
+ const Selection = wrapperTooltip.wrapperTooltip(hasTooltips, /* @__PURE__ */ jsxRuntime.jsx(List_styles.StyledSingleSelectRadio, {
141
142
  id: setId.setId(itemId, "selector"),
142
143
  label: item.label,
143
144
  checked: item.selected,
@@ -1 +1 @@
1
- {"version":3,"file":"List.cjs","sources":["../../../../src/components/List/List.tsx"],"sourcesContent":["import { forwardRef, isValidElement, useEffect, useMemo, useRef } from \"react\";\nimport clsx from \"clsx\";\nimport { HvBaseProps, HvExtraProps } from \"../../types\";\nimport {\n StyledFixedSizeList,\n StyledSelectAllCheckBox,\n StyledLink,\n StyledMultiSelectCheckBox,\n StyledSingleSelectRadio,\n StyledListItem,\n StyledDropRightXS,\n} from \"./List.styles\";\nimport listClasses, { HvListClasses } from \"./listClasses\";\nimport useSelectableList from \"./useSelectableList\";\nimport { parseList, wrapperTooltip } from \"./utils\";\nimport { HvListContainer, HvTypography } from \"components\";\nimport { setId } from \"utils\";\n\nexport type HvListValue = {\n id?: string | number;\n label: React.ReactNode;\n searchValue?: string;\n selected?: boolean;\n disabled?: boolean;\n isHidden?: boolean;\n icon?:\n | React.ReactNode\n | ((params: {\n isDisabled?: boolean;\n isSelected?: boolean;\n }) => React.ReactNode);\n showNavIcon?: boolean;\n path?: string;\n params?: object;\n tabIndex?: number;\n} & HvExtraProps;\n\nexport type HvListLabels = {\n /** The label used for the All checkbox action. */\n selectAll?: string;\n /** The label used in the middle of the multi-selection count. */\n selectionConjunction?: string;\n};\n\nexport type HvListProps = HvBaseProps<\n HTMLUListElement,\n { onChange; onClick }\n> & {\n /**\n * A list containing the elements to be rendered.\n *\n * - id: The id of the item.\n * - label: The label of the element to be rendered.\n * - selected: The selection state of the element.\n * - disabled: The disabled state of the element.\n * - isHidden: Is item visible.\n * - icon: The icon.\n * - showNavIcon: If true renders the navigation icon on the right.\n * - path: The path to navigate to.\n */\n values: HvListValue[];\n /** If true renders a multi select list. */\n multiSelect?: boolean;\n /**\n * If true renders select all option for multi selection lists with selectors.\n * note: It will only be rendered if multiSelect and useSelector props are set to true.\n */\n showSelectAll?: boolean;\n /** An object containing all the labels for the dropdown. */\n labels?: HvListLabels;\n /** If true renders list items with radio or checkbox selectors. */\n useSelector?: boolean;\n /** Call back fired when list item is selected. Returns selection state. */\n onChange?: (value: HvListValue[]) => void;\n /** Call back fired when list item is selected. Returns selected item. */\n onClick?: (\n event: React.ChangeEvent<HTMLLIElement>,\n value: HvListValue\n ) => void;\n /** If `true` the list items will show the selection state. */\n selectable?: boolean;\n /** If `true`, selection can be toggled when single selection. */\n singleSelectionToggle?: boolean;\n /** If `true` the list will be rendered without vertical spacing. */\n condensed?: boolean;\n /** If `true` the dropdown will show tooltips when user mouseenter text in list */\n hasTooltips?: boolean;\n /** Experimental. Height of the dropdown, in case you want to control it from a prop. Styles can also be used through dropdownListContainer class. Required in case virtualized is used */\n height?: number;\n /** Experimental. Uses dropdown in a virtualized form, where not all options are rendered initially. Good for use cases with a lot of options. */\n virtualized?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvListClasses;\n};\n\nconst DEFAULT_LABELS = {\n selectAll: \"Select All\",\n selectionConjunction: \"/\",\n};\n\n/**\n * Component used to show a set of related data to the user.\n */\nexport const HvList = ({\n id,\n classes,\n className,\n multiSelect = false,\n hasTooltips = false,\n showSelectAll = false,\n labels = DEFAULT_LABELS,\n useSelector = false,\n selectable = true,\n singleSelectionToggle = true,\n condensed = false,\n onChange,\n onClick,\n values: valuesProp = [],\n height,\n virtualized = false,\n ...others\n}: HvListProps) => {\n const [list, setList, selection] = useSelectableList(valuesProp);\n const listRef = useRef<any>(null);\n\n useEffect(() => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList: HvListValue[] = parseList(\n undefined,\n passedProps,\n undefined,\n valuesProp\n );\n\n setList(parsedList);\n }, [valuesProp, multiSelect, selectable, singleSelectionToggle, setList]);\n\n const handleSelect = (evt, item) => {\n if (!item.path) evt.preventDefault();\n if (item.disabled) return;\n\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList = parseList(item, passedProps, undefined, list);\n setList(parsedList);\n\n onClick?.(evt, item);\n onChange?.(parsedList);\n };\n\n const handleSelectAll = () => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const anySelectableSelected = list.some(\n (elem) => elem.selected || elem.disabled\n );\n const parsedList = parseList(\n undefined,\n passedProps,\n !anySelectableSelected,\n list\n );\n setList(parsedList);\n\n onChange?.(parsedList);\n };\n\n const renderLeftIcon = (item) => {\n return isValidElement(item.icon)\n ? item.icon\n : item.icon?.({\n isSelected: item.selected,\n isDisabled: item.disabled,\n });\n };\n\n const renderSelectAll = () => {\n const { selectAll, selectionConjunction } = labels;\n\n const anySelected = !!selection?.length;\n const allSelected = selection.length === list.length;\n\n const selectionLabel = (\n <HvTypography component=\"span\">\n {!anySelected ? (\n <>\n <b>{selectAll}</b>\n {` (${list.length})`}\n </>\n ) : (\n <>\n <b>{selection.length}</b>\n {`\\xa0${selectionConjunction}\\xa0`}\n {list.length}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <StyledSelectAllCheckBox\n id={setId(id, \"select-all\")}\n label={selectionLabel}\n onChange={handleSelectAll}\n className={clsx(\n listClasses.selectAllSelector,\n classes?.selectAllSelector\n )}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n );\n };\n\n const renderItemText = (item) => {\n const ItemText = wrapperTooltip(hasTooltips, item.label, item.label);\n\n return !multiSelect && item.path ? (\n <StyledLink\n key={item.label}\n route={item.path}\n classes={{ a: clsx(listClasses.link, classes?.link) }}\n >\n <ItemText />\n </StyledLink>\n ) : (\n <ItemText />\n );\n };\n\n const renderMultiSelectItem = (item, itemId) => {\n if (useSelector) {\n const Selection = wrapperTooltip(\n hasTooltips,\n <StyledMultiSelectCheckBox\n id={setId(itemId, \"selector\")}\n label={item.label}\n checked={item.selected}\n disabled={item.disabled}\n onChange={(evt) => handleSelect(evt, item)}\n classes={{\n root: clsx(listClasses.selectorRoot, classes?.selectorRoot),\n container: clsx(\n listClasses.selectorContainer,\n classes?.selectorContainer\n ),\n label: clsx(listClasses.truncate, classes?.truncate),\n }}\n />,\n item.label\n );\n return <Selection />;\n }\n\n return renderItemText(item);\n };\n\n const renderSingleSelectItem = (item, itemId) => {\n if (useSelector) {\n const Selection = wrapperTooltip(\n hasTooltips,\n <StyledSingleSelectRadio\n id={setId(itemId, \"selector\")}\n label={item.label}\n checked={item.selected}\n disabled={item.disabled}\n classes={{\n root: clsx(listClasses.selectorRoot, classes?.selectorRoot),\n container: clsx(\n listClasses.selectorContainer,\n classes?.selectorContainer\n ),\n label: clsx(listClasses.truncate, classes?.truncate),\n }}\n />,\n item.label\n );\n return <Selection />;\n }\n return renderItemText(item);\n };\n\n const renderListItem = (item, i, otherProps = {}) => {\n const itemId = setId(id, \"item\", i);\n const selected = item.selected || false;\n\n let startAdornment = null;\n if (!useSelector && item.icon) {\n startAdornment = renderLeftIcon(item);\n }\n\n return (\n <StyledListItem\n key={i}\n id={itemId}\n role={selectable ? \"option\" : \"menuitem\"}\n disabled={item.disabled || undefined}\n className={clsx(listClasses.item, classes?.item)}\n classes={{\n selected:\n useSelector || multiSelect\n ? clsx(listClasses.itemSelector, classes?.itemSelector)\n : undefined,\n }}\n selected={multiSelect || selected ? selected : undefined}\n onClick={(evt) => handleSelect(evt, item)}\n startAdornment={startAdornment}\n endAdornment={\n item.showNavIcon && (\n <StyledDropRightXS\n className={clsx(listClasses.box, classes?.box)}\n iconSize=\"XS\"\n />\n )\n }\n $applySelected={useSelector || multiSelect}\n {...otherProps}\n >\n {multiSelect\n ? renderMultiSelectItem(item, itemId)\n : renderSingleSelectItem(item, itemId)}\n </StyledListItem>\n );\n };\n\n const filteredList = list.filter((it) => !it.isHidden);\n const anySelected = list\n .map((item) => item.selected && !item.disabled)\n .reduce((result, selected) => result || selected, false);\n\n const selectedItemIndex = list.findIndex((item) => item.selected);\n useEffect(() => {\n if (selectedItemIndex >= 0 && listRef.current !== null) {\n listRef.current.scrollToItem(selectedItemIndex);\n }\n }, [listRef, selectedItemIndex]);\n\n const ListItem = ({ index, style }) => {\n const item = filteredList[index];\n const tabIndex =\n item.tabIndex ||\n (!anySelected && index === 0) ||\n (item.selected && !item.disabled)\n ? 0\n : -1;\n\n return renderListItem(item, index, {\n style: {\n ...style,\n top: `${parseFloat(style.top) + 5}px`,\n left: `${parseFloat(style.left) + 5}px`,\n width: `calc(${parseFloat(style.width)}% - 10px)`,\n },\n tabIndex,\n interactive: true,\n condensed,\n disableGutters: useSelector,\n });\n };\n\n const renderFixedList = useMemo(() => {\n return forwardRef(({ ...rest }, ref) => (\n <HvListContainer\n id={id}\n className={clsx(className, listClasses.root, classes?.root)}\n role={selectable ? \"listbox\" : \"menu\"}\n interactive\n condensed={condensed}\n disableGutters={useSelector}\n aria-multiselectable={(selectable && multiSelect) || undefined}\n ref={ref}\n {...rest}\n />\n ));\n }, [id, useSelector, className, classes, condensed, selectable, multiSelect]);\n\n return (\n <>\n {multiSelect && useSelector && showSelectAll && renderSelectAll()}\n\n {filteredList.length > 0 && !virtualized && (\n <HvListContainer\n id={id}\n className={clsx(className, listClasses.root, classes?.root)}\n role={selectable ? \"listbox\" : \"menu\"}\n interactive\n condensed={condensed}\n disableGutters={useSelector}\n aria-multiselectable={(selectable && multiSelect) || undefined}\n {...others}\n >\n {filteredList.map((item, i) => renderListItem(item, i))}\n </HvListContainer>\n )}\n {filteredList.length > 0 && virtualized && (\n <StyledFixedSizeList\n ref={listRef}\n className={clsx(\n listClasses.virtualizedRoot,\n classes?.virtualizedRoot\n )}\n height={(height || 0) + 5}\n width=\"100%\"\n itemCount={filteredList.length}\n itemSize={condensed ? 32 : 40}\n innerElementType={renderFixedList}\n {...others}\n >\n {ListItem}\n </StyledFixedSizeList>\n )}\n </>\n );\n};\n"],"names":["DEFAULT_LABELS","selectAll","selectionConjunction","HvList","id","classes","className","multiSelect","hasTooltips","showSelectAll","labels","useSelector","selectable","singleSelectionToggle","condensed","onChange","onClick","values","valuesProp","height","virtualized","others","list","setList","selection","useSelectableList","listRef","useRef","useEffect","passedProps","parsedList","parseList","undefined","handleSelect","evt","item","path","preventDefault","disabled","handleSelectAll","anySelectableSelected","some","elem","selected","renderLeftIcon","isValidElement","icon","isSelected","isDisabled","renderSelectAll","anySelected","length","allSelected","selectionLabel","HvTypography","component","children","_jsxs","_Fragment","_jsx","StyledSelectAllCheckBox","setId","label","clsx","listClasses","selectAllSelector","indeterminate","checked","renderItemText","ItemText","wrapperTooltip","StyledLink","route","a","link","renderMultiSelectItem","itemId","Selection","StyledMultiSelectCheckBox","root","selectorRoot","container","selectorContainer","truncate","renderSingleSelectItem","StyledSingleSelectRadio","renderListItem","i","otherProps","startAdornment","StyledListItem","role","itemSelector","endAdornment","showNavIcon","StyledDropRightXS","box","iconSize","$applySelected","filteredList","filter","it","isHidden","map","reduce","result","selectedItemIndex","findIndex","current","scrollToItem","ListItem","index","style","tabIndex","top","parseFloat","left","width","interactive","disableGutters","renderFixedList","useMemo","forwardRef","rest","ref","HvListContainer","StyledFixedSizeList","virtualizedRoot","itemCount","itemSize","innerElementType"],"mappings":";;;;;;;;;;;;;;AA+FA,MAAMA,iBAAiB;AAAA,EACrBC,WAAW;AAAA,EACXC,sBAAsB;AACxB;AAKO,MAAMC,SAASA,CAAC;AAAA,EACrBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,cAAc;AAAA,EACdC,cAAc;AAAA,EACdC,gBAAgB;AAAA,EAChBC,SAASV;AAAAA,EACTW,cAAc;AAAA,EACdC,aAAa;AAAA,EACbC,wBAAwB;AAAA,EACxBC,YAAY;AAAA,EACZC;AAAAA,EACAC;AAAAA,EACAC,QAAQC,aAAa,CAAE;AAAA,EACvBC;AAAAA,EACAC,cAAc;AAAA,EACd,GAAGC;AACQ,MAAM;AACjB,QAAM,CAACC,MAAMC,SAASC,SAAS,IAAIC,kBAAAA,QAAkBP,UAAU;AACzDQ,QAAAA,UAAUC,aAAY,IAAI;AAEhCC,QAAAA,UAAU,MAAM;AACd,UAAMC,cAAc;AAAA,MAAEtB;AAAAA,MAAaK;AAAAA,MAAYC;AAAAA,IAAAA;AAC/C,UAAMiB,aAA4BC,MAAAA,UAChCC,QACAH,aACAG,QACAd,UAAU;AAGZK,YAAQO,UAAU;AAAA,EAAA,GACjB,CAACZ,YAAYX,aAAaK,YAAYC,uBAAuBU,OAAO,CAAC;AAElEU,QAAAA,eAAeA,CAACC,KAAKC,SAAS;AAClC,QAAI,CAACA,KAAKC;AAAMF,UAAIG,eAAgB;AACpC,QAAIF,KAAKG;AAAU;AAEnB,UAAMT,cAAc;AAAA,MAAEtB;AAAAA,MAAaK;AAAAA,MAAYC;AAAAA,IAAAA;AAC/C,UAAMiB,aAAaC,MAAAA,UAAUI,MAAMN,aAAaG,QAAWV,IAAI;AAC/DC,YAAQO,UAAU;AAElBd,uCAAUkB,KAAKC;AACfpB,yCAAWe;AAAAA,EAAU;AAGvB,QAAMS,kBAAkBA,MAAM;AAC5B,UAAMV,cAAc;AAAA,MAAEtB;AAAAA,MAAaK;AAAAA,MAAYC;AAAAA,IAAAA;AAC/C,UAAM2B,wBAAwBlB,KAAKmB,KAChCC,UAASA,KAAKC,YAAYD,KAAKJ,QAAQ;AAE1C,UAAMR,aAAaC,MAAAA,UACjBC,QACAH,aACA,CAACW,uBACDlB,IAAI;AAENC,YAAQO,UAAU;AAElBf,yCAAWe;AAAAA,EAAU;AAGvB,QAAMc,iBAAkBT,CAAS,SAAA;;AAC/B,WAAOU,MAAAA,eAAeV,KAAKW,IAAI,IAC3BX,KAAKW,QACLX,UAAKW,SAALX,8BAAY;AAAA,MACVY,YAAYZ,KAAKQ;AAAAA,MACjBK,YAAYb,KAAKG;AAAAA,IAAAA;AAAAA,EAClB;AAGP,QAAMW,kBAAkBA,MAAM;AACtB,UAAA;AAAA,MAAEhD;AAAAA,MAAWC;AAAAA,IAAyBQ,IAAAA;AAEtCwC,UAAAA,eAAc,CAAC,EAAC1B,uCAAW2B;AAC3BC,UAAAA,cAAc5B,UAAU2B,WAAW7B,KAAK6B;AAExCE,UAAAA,gDACHC,yBAAY;AAAA,MAACC,WAAU;AAAA,MAAMC,UAC3B,CAACN,eACAO,2BAAAA,KAAAC,qBAAA;AAAA,QAAAF,WACEG,2BAAAA,IAAA,KAAA;AAAA,UAAAH,UAAIvD;AAAAA,QAAS,CAAA,GACX,KAAIqB,KAAK6B,SAAS;AAAA,MAAA,CACnB,IAEHM,2BAAAA,KAAAC,qBAAA;AAAA,QAAAF,WACEG,2BAAAA,IAAA,KAAA;AAAA,UAAAH,UAAIhC,UAAU2B;AAAAA,QAAAA,CAAM,GAClB,IAAMjD,yBACPoB,KAAK6B,MAAM;AAAA,MAAA,CAAA;AAAA,IAAA,CAInB;AAED,0CACGS,YAAAA,yBAAuB;AAAA,MACtBxD,IAAIyD,MAAAA,MAAMzD,IAAI,YAAY;AAAA,MAC1B0D,OAAOT;AAAAA,MACPtC,UAAUwB;AAAAA,MACVjC,WAAWyD,cAAAA,QACTC,YAAAA,QAAYC,mBACZ5D,mCAAS4D,iBAAiB;AAAA,MAE5BC,eAAehB,gBAAe,CAACE;AAAAA,MAC/Be,SAASf;AAAAA,IAAAA,CACT;AAAA,EAAA;AAIN,QAAMgB,iBAAkBjC,CAAS,SAAA;AAC/B,UAAMkC,WAAWC,MAAAA,eAAe9D,aAAa2B,KAAK2B,OAAO3B,KAAK2B,KAAK;AAEnE,WAAO,CAACvD,eAAe4B,KAAKC,sCACzBmC,YAAAA,YAAU;AAAA,MAETC,OAAOrC,KAAKC;AAAAA,MACZ/B,SAAS;AAAA,QAAEoE,GAAGV,cAAAA,QAAKC,YAAAA,QAAYU,MAAMrE,mCAASqE,IAAI;AAAA,MAAE;AAAA,MAAElB,UAEtDG,2BAAAA,IAACU,UAAQ,EAAA;AAAA,IAAA,GAJJlC,KAAK2B,KAAK,IAOhBO,2BAAAA,IAAAA,UACF,CAAA,CAAA;AAAA,EAAA;AAGGM,QAAAA,wBAAwBA,CAACxC,MAAMyC,WAAW;AAC9C,QAAIjE,aAAa;AACf,YAAMkE,YAAYP,MAAAA,eAChB9D,aACAmD,2BAAAA,IAACmB,YAAAA,2BAAyB;AAAA,QACxB1E,IAAIyD,MAAAA,MAAMe,QAAQ,UAAU;AAAA,QAC5Bd,OAAO3B,KAAK2B;AAAAA,QACZK,SAAShC,KAAKQ;AAAAA,QACdL,UAAUH,KAAKG;AAAAA,QACfvB,UAAWmB,CAAAA,QAAQD,aAAaC,KAAKC,IAAI;AAAA,QACzC9B,SAAS;AAAA,UACP0E,MAAMhB,cAAAA,QAAKC,YAAAA,QAAYgB,cAAc3E,mCAAS2E,YAAY;AAAA,UAC1DC,WAAWlB,cAAAA,QACTC,YAAAA,QAAYkB,mBACZ7E,mCAAS6E,iBAAiB;AAAA,UAE5BpB,OAAOC,cAAAA,QAAKC,YAAAA,QAAYmB,UAAU9E,mCAAS8E,QAAQ;AAAA,QACrD;AAAA,MAAA,CAAE,GAEJhD,KAAK2B,KAAK;AAELH,aAAAA,2BAAAA,IAACkB,WAAY,CAAA,CAAA;AAAA,IACtB;AAEA,WAAOT,eAAejC,IAAI;AAAA,EAAA;AAGtBiD,QAAAA,yBAAyBA,CAACjD,MAAMyC,WAAW;AAC/C,QAAIjE,aAAa;AACf,YAAMkE,YAAYP,MAAAA,eAChB9D,aACAmD,2BAAAA,IAAC0B,YAAAA,yBAAuB;AAAA,QACtBjF,IAAIyD,MAAAA,MAAMe,QAAQ,UAAU;AAAA,QAC5Bd,OAAO3B,KAAK2B;AAAAA,QACZK,SAAShC,KAAKQ;AAAAA,QACdL,UAAUH,KAAKG;AAAAA,QACfjC,SAAS;AAAA,UACP0E,MAAMhB,cAAAA,QAAKC,YAAAA,QAAYgB,cAAc3E,mCAAS2E,YAAY;AAAA,UAC1DC,WAAWlB,cAAAA,QACTC,YAAAA,QAAYkB,mBACZ7E,mCAAS6E,iBAAiB;AAAA,UAE5BpB,OAAOC,cAAAA,QAAKC,YAAAA,QAAYmB,UAAU9E,mCAAS8E,QAAQ;AAAA,QACrD;AAAA,MAAA,CAAE,GAEJhD,KAAK2B,KAAK;AAELH,aAAAA,2BAAAA,IAACkB,WAAY,CAAA,CAAA;AAAA,IACtB;AACA,WAAOT,eAAejC,IAAI;AAAA,EAAA;AAG5B,QAAMmD,iBAAiBA,CAACnD,MAAMoD,GAAGC,aAAa,CAAA,MAAO;AACnD,UAAMZ,SAASf,MAAAA,MAAMzD,IAAI,QAAQmF,CAAC;AAC5B5C,UAAAA,WAAWR,KAAKQ,YAAY;AAElC,QAAI8C,iBAAiB;AACjB,QAAA,CAAC9E,eAAewB,KAAKW,MAAM;AAC7B2C,uBAAiB7C,eAAeT,IAAI;AAAA,IACtC;AAEA,0CACGuD,YAAAA,gBAAc;AAAA,MAEbtF,IAAIwE;AAAAA,MACJe,MAAM/E,aAAa,WAAW;AAAA,MAC9B0B,UAAUH,KAAKG,YAAYN;AAAAA,MAC3B1B,WAAWyD,cAAAA,QAAKC,YAAAA,QAAY7B,MAAM9B,mCAAS8B,IAAI;AAAA,MAC/C9B,SAAS;AAAA,QACPsC,UACEhC,eAAeJ,cACXwD,sBAAKC,YAAAA,QAAY4B,cAAcvF,mCAASuF,YAAY,IACpD5D;AAAAA,MACR;AAAA,MACAW,UAAUpC,eAAeoC,WAAWA,WAAWX;AAAAA,MAC/ChB,SAAUkB,CAAAA,QAAQD,aAAaC,KAAKC,IAAI;AAAA,MACxCsD;AAAAA,MACAI,cACE1D,KAAK2D,eACHnC,2BAAAA,IAACoC,YAAAA,mBAAiB;AAAA,QAChBzF,WAAWyD,cAAAA,QAAKC,YAAAA,QAAYgC,KAAK3F,mCAAS2F,GAAG;AAAA,QAC7CC,UAAS;AAAA,MAAA,CAGd;AAAA,MACDC,gBAAgBvF,eAAeJ;AAAAA,MAAY,GACvCiF;AAAAA,MAAUhC,UAEbjD,cACGoE,sBAAsBxC,MAAMyC,MAAM,IAClCQ,uBAAuBjD,MAAMyC,MAAM;AAAA,OA3BlCW,CAAC;AAAA,EAAA;AAgCZ,QAAMY,eAAe7E,KAAK8E,OAAQC,CAAO,OAAA,CAACA,GAAGC,QAAQ;AACrD,QAAMpD,cAAc5B,KACjBiF,IAAKpE,CAASA,SAAAA,KAAKQ,YAAY,CAACR,KAAKG,QAAQ,EAC7CkE,OAAO,CAACC,QAAQ9D,aAAa8D,UAAU9D,UAAU,KAAK;AAEzD,QAAM+D,oBAAoBpF,KAAKqF,UAAWxE,CAAAA,SAASA,KAAKQ,QAAQ;AAChEf,QAAAA,UAAU,MAAM;AACd,QAAI8E,qBAAqB,KAAKhF,QAAQkF,YAAY,MAAM;AAC9CA,cAAAA,QAAQC,aAAaH,iBAAiB;AAAA,IAChD;AAAA,EAAA,GACC,CAAChF,SAASgF,iBAAiB,CAAC;AAE/B,QAAMI,WAAWA,CAAC;AAAA,IAAEC;AAAAA,IAAOC;AAAAA,EAAAA,MAAY;AAC/B7E,UAAAA,OAAOgE,aAAaY,KAAK;AAC/B,UAAME,WACJ9E,KAAK8E,YACJ,CAAC/D,eAAe6D,UAAU,KAC1B5E,KAAKQ,YAAY,CAACR,KAAKG,WACpB,IACA;AAECgD,WAAAA,eAAenD,MAAM4E,OAAO;AAAA,MACjCC,OAAO;AAAA,QACL,GAAGA;AAAAA,QACHE,KAAM,GAAEC,WAAWH,MAAME,GAAG,IAAI;AAAA,QAChCE,MAAO,GAAED,WAAWH,MAAMI,IAAI,IAAI;AAAA,QAClCC,OAAQ,QAAOF,WAAWH,MAAMK,KAAK;AAAA,MACvC;AAAA,MACAJ;AAAAA,MACAK,aAAa;AAAA,MACbxG;AAAAA,MACAyG,gBAAgB5G;AAAAA,IAAAA,CACjB;AAAA,EAAA;AAGG6G,QAAAA,kBAAkBC,MAAAA,QAAQ,MAAM;AACpC,WAAOC,iBAAW,CAAC;AAAA,MAAE,GAAGC;AAAAA,IAAAA,GAAQC,QAC9BjE,2BAAAA,IAACkE,+BAAe;AAAA,MACdzH;AAAAA,MACAE,WAAWyD,cAAKzD,QAAAA,WAAW0D,YAAYe,QAAAA,MAAM1E,mCAAS0E,IAAI;AAAA,MAC1DY,MAAM/E,aAAa,YAAY;AAAA,MAC/B0G,aAAW;AAAA,MACXxG;AAAAA,MACAyG,gBAAgB5G;AAAAA,MAChB,wBAAuBC,cAAcL,eAAgByB;AAAAA,MACrD4F;AAAAA,MAAS,GACLD;AAAAA,IAAI,CAAA,CAEX;AAAA,EAAA,GACA,CAACvH,IAAIO,aAAaL,WAAWD,SAASS,WAAWF,YAAYL,WAAW,CAAC;AAE5E,yCACEmD,WAAAA,UAAA;AAAA,IAAAF,UAAA,CACGjD,eAAeI,eAAeF,iBAAiBwC,gBAE/CkD,GAAAA,aAAahD,SAAS,KAAK,CAAC/B,8CAC1ByG,cAAAA,iBAAe;AAAA,MACdzH;AAAAA,MACAE,WAAWyD,cAAKzD,QAAAA,WAAW0D,YAAYe,QAAAA,MAAM1E,mCAAS0E,IAAI;AAAA,MAC1DY,MAAM/E,aAAa,YAAY;AAAA,MAC/B0G,aAAW;AAAA,MACXxG;AAAAA,MACAyG,gBAAgB5G;AAAAA,MAChB,wBAAuBC,cAAcL,eAAgByB;AAAAA,MAAU,GAC3DX;AAAAA,MAAMmC,UAET2C,aAAaI,IAAI,CAACpE,MAAMoD,MAAMD,eAAenD,MAAMoD,CAAC,CAAC;AAAA,IAAA,CAEzD,GACAY,aAAahD,SAAS,KAAK/B,8CACzB0G,iCAAmB;AAAA,MAClBF,KAAKlG;AAAAA,MACLpB,WAAWyD,cAAAA,QACTC,YAAAA,QAAY+D,iBACZ1H,mCAAS0H,eAAe;AAAA,MAE1B5G,SAASA,UAAU,KAAK;AAAA,MACxBkG,OAAM;AAAA,MACNW,WAAW7B,aAAahD;AAAAA,MACxB8E,UAAUnH,YAAY,KAAK;AAAA,MAC3BoH,kBAAkBV;AAAAA,MAAgB,GAC9BnG;AAAAA,MAAMmC,UAETsD;AAAAA,IAAAA,CAEJ,CAAA;AAAA,EAAA,CACA;AAEP;;"}
1
+ {"version":3,"file":"List.cjs","sources":["../../../../src/components/List/List.tsx"],"sourcesContent":["import { forwardRef, isValidElement, useEffect, useMemo, useRef } from \"react\";\nimport clsx from \"clsx\";\nimport { HvBaseProps, HvExtraProps } from \"../../types\";\nimport {\n StyledFixedSizeList,\n StyledSelectAllCheckBox,\n StyledLink,\n StyledMultiSelectCheckBox,\n StyledSingleSelectRadio,\n StyledListItem,\n StyledDropRightXS,\n} from \"./List.styles\";\nimport listClasses, { HvListClasses } from \"./listClasses\";\nimport useSelectableList from \"./useSelectableList\";\nimport { parseList } from \"./utils\";\nimport { HvListContainer, HvTypography } from \"components\";\nimport { setId, wrapperTooltip } from \"utils\";\n\nexport type HvListValue = {\n id?: string | number;\n label: React.ReactNode;\n searchValue?: string;\n selected?: boolean;\n disabled?: boolean;\n isHidden?: boolean;\n icon?:\n | React.ReactNode\n | ((params: {\n isDisabled?: boolean;\n isSelected?: boolean;\n }) => React.ReactNode);\n showNavIcon?: boolean;\n path?: string;\n params?: object;\n tabIndex?: number;\n} & HvExtraProps;\n\nexport type HvListLabels = {\n /** The label used for the All checkbox action. */\n selectAll?: string;\n /** The label used in the middle of the multi-selection count. */\n selectionConjunction?: string;\n};\n\nexport type HvListProps = HvBaseProps<\n HTMLUListElement,\n { onChange; onClick }\n> & {\n /**\n * A list containing the elements to be rendered.\n *\n * - id: The id of the item.\n * - label: The label of the element to be rendered.\n * - selected: The selection state of the element.\n * - disabled: The disabled state of the element.\n * - isHidden: Is item visible.\n * - icon: The icon.\n * - showNavIcon: If true renders the navigation icon on the right.\n * - path: The path to navigate to.\n */\n values: HvListValue[];\n /** If true renders a multi select list. */\n multiSelect?: boolean;\n /**\n * If true renders select all option for multi selection lists with selectors.\n * note: It will only be rendered if multiSelect and useSelector props are set to true.\n */\n showSelectAll?: boolean;\n /** An object containing all the labels for the dropdown. */\n labels?: HvListLabels;\n /** If true renders list items with radio or checkbox selectors. */\n useSelector?: boolean;\n /** Call back fired when list item is selected. Returns selection state. */\n onChange?: (value: HvListValue[]) => void;\n /** Call back fired when list item is selected. Returns selected item. */\n onClick?: (\n event: React.ChangeEvent<HTMLLIElement>,\n value: HvListValue\n ) => void;\n /** If `true` the list items will show the selection state. */\n selectable?: boolean;\n /** If `true`, selection can be toggled when single selection. */\n singleSelectionToggle?: boolean;\n /** If `true` the list will be rendered without vertical spacing. */\n condensed?: boolean;\n /** If `true` the dropdown will show tooltips when user mouseenter text in list */\n hasTooltips?: boolean;\n /** Experimental. Height of the dropdown, in case you want to control it from a prop. Styles can also be used through dropdownListContainer class. Required in case virtualized is used */\n height?: number;\n /** Experimental. Uses dropdown in a virtualized form, where not all options are rendered initially. Good for use cases with a lot of options. */\n virtualized?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvListClasses;\n};\n\nconst DEFAULT_LABELS = {\n selectAll: \"Select All\",\n selectionConjunction: \"/\",\n};\n\n/**\n * Component used to show a set of related data to the user.\n */\nexport const HvList = ({\n id,\n classes,\n className,\n multiSelect = false,\n hasTooltips = false,\n showSelectAll = false,\n labels = DEFAULT_LABELS,\n useSelector = false,\n selectable = true,\n singleSelectionToggle = true,\n condensed = false,\n onChange,\n onClick,\n values: valuesProp = [],\n height,\n virtualized = false,\n ...others\n}: HvListProps) => {\n const [list, setList, selection] = useSelectableList(valuesProp);\n const listRef = useRef<any>(null);\n\n useEffect(() => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList: HvListValue[] = parseList(\n undefined,\n passedProps,\n undefined,\n valuesProp\n );\n\n setList(parsedList);\n }, [valuesProp, multiSelect, selectable, singleSelectionToggle, setList]);\n\n const handleSelect = (evt, item) => {\n if (!item.path) evt.preventDefault();\n if (item.disabled) return;\n\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList = parseList(item, passedProps, undefined, list);\n setList(parsedList);\n\n onClick?.(evt, item);\n onChange?.(parsedList);\n };\n\n const handleSelectAll = () => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const anySelectableSelected = list.some(\n (elem) => elem.selected || elem.disabled\n );\n const parsedList = parseList(\n undefined,\n passedProps,\n !anySelectableSelected,\n list\n );\n setList(parsedList);\n\n onChange?.(parsedList);\n };\n\n const renderLeftIcon = (item) => {\n return isValidElement(item.icon)\n ? item.icon\n : item.icon?.({\n isSelected: item.selected,\n isDisabled: item.disabled,\n });\n };\n\n const renderSelectAll = () => {\n const { selectAll, selectionConjunction } = labels;\n\n const anySelected = !!selection?.length;\n const allSelected = selection.length === list.length;\n\n const selectionLabel = (\n <HvTypography component=\"span\">\n {!anySelected ? (\n <>\n <b>{selectAll}</b>\n {` (${list.length})`}\n </>\n ) : (\n <>\n <b>{selection.length}</b>\n {`\\xa0${selectionConjunction}\\xa0`}\n {list.length}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <StyledSelectAllCheckBox\n id={setId(id, \"select-all\")}\n label={selectionLabel}\n onChange={handleSelectAll}\n className={clsx(\n listClasses.selectAllSelector,\n classes?.selectAllSelector\n )}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n );\n };\n\n const renderItemText = (item) => {\n const ItemText = wrapperTooltip(hasTooltips, item.label, item.label);\n\n return !multiSelect && item.path ? (\n <StyledLink\n key={item.label}\n route={item.path}\n classes={{ a: clsx(listClasses.link, classes?.link) }}\n >\n <ItemText />\n </StyledLink>\n ) : (\n <ItemText />\n );\n };\n\n const renderMultiSelectItem = (item, itemId) => {\n if (useSelector) {\n const Selection = wrapperTooltip(\n hasTooltips,\n <StyledMultiSelectCheckBox\n id={setId(itemId, \"selector\")}\n label={item.label}\n checked={item.selected}\n disabled={item.disabled}\n onChange={(evt) => handleSelect(evt, item)}\n classes={{\n root: clsx(listClasses.selectorRoot, classes?.selectorRoot),\n container: clsx(\n listClasses.selectorContainer,\n classes?.selectorContainer\n ),\n label: clsx(listClasses.truncate, classes?.truncate),\n }}\n />,\n item.label\n );\n return <Selection />;\n }\n\n return renderItemText(item);\n };\n\n const renderSingleSelectItem = (item, itemId) => {\n if (useSelector) {\n const Selection = wrapperTooltip(\n hasTooltips,\n <StyledSingleSelectRadio\n id={setId(itemId, \"selector\")}\n label={item.label}\n checked={item.selected}\n disabled={item.disabled}\n classes={{\n root: clsx(listClasses.selectorRoot, classes?.selectorRoot),\n container: clsx(\n listClasses.selectorContainer,\n classes?.selectorContainer\n ),\n label: clsx(listClasses.truncate, classes?.truncate),\n }}\n />,\n item.label\n );\n return <Selection />;\n }\n return renderItemText(item);\n };\n\n const renderListItem = (item, i, otherProps = {}) => {\n const itemId = setId(id, \"item\", i);\n const selected = item.selected || false;\n\n let startAdornment = null;\n if (!useSelector && item.icon) {\n startAdornment = renderLeftIcon(item);\n }\n\n return (\n <StyledListItem\n key={i}\n id={itemId}\n role={selectable ? \"option\" : \"menuitem\"}\n disabled={item.disabled || undefined}\n className={clsx(listClasses.item, classes?.item)}\n classes={{\n selected:\n useSelector || multiSelect\n ? clsx(listClasses.itemSelector, classes?.itemSelector)\n : undefined,\n }}\n selected={multiSelect || selected ? selected : undefined}\n onClick={(evt) => handleSelect(evt, item)}\n startAdornment={startAdornment}\n endAdornment={\n item.showNavIcon && (\n <StyledDropRightXS\n className={clsx(listClasses.box, classes?.box)}\n iconSize=\"XS\"\n />\n )\n }\n $applySelected={useSelector || multiSelect}\n {...otherProps}\n >\n {multiSelect\n ? renderMultiSelectItem(item, itemId)\n : renderSingleSelectItem(item, itemId)}\n </StyledListItem>\n );\n };\n\n const filteredList = list.filter((it) => !it.isHidden);\n const anySelected = list\n .map((item) => item.selected && !item.disabled)\n .reduce((result, selected) => result || selected, false);\n\n const selectedItemIndex = list.findIndex((item) => item.selected);\n useEffect(() => {\n if (selectedItemIndex >= 0 && listRef.current !== null) {\n listRef.current.scrollToItem(selectedItemIndex);\n }\n }, [listRef, selectedItemIndex]);\n\n const ListItem = ({ index, style }) => {\n const item = filteredList[index];\n const tabIndex =\n item.tabIndex ||\n (!anySelected && index === 0) ||\n (item.selected && !item.disabled)\n ? 0\n : -1;\n\n return renderListItem(item, index, {\n style: {\n ...style,\n top: `${parseFloat(style.top) + 5}px`,\n left: `${parseFloat(style.left) + 5}px`,\n width: `calc(${parseFloat(style.width)}% - 10px)`,\n },\n tabIndex,\n interactive: true,\n condensed,\n disableGutters: useSelector,\n });\n };\n\n const renderFixedList = useMemo(() => {\n return forwardRef(({ ...rest }, ref) => (\n <HvListContainer\n id={id}\n className={clsx(className, listClasses.root, classes?.root)}\n role={selectable ? \"listbox\" : \"menu\"}\n interactive\n condensed={condensed}\n disableGutters={useSelector}\n aria-multiselectable={(selectable && multiSelect) || undefined}\n ref={ref}\n {...rest}\n />\n ));\n }, [id, useSelector, className, classes, condensed, selectable, multiSelect]);\n\n return (\n <>\n {multiSelect && useSelector && showSelectAll && renderSelectAll()}\n\n {filteredList.length > 0 && !virtualized && (\n <HvListContainer\n id={id}\n className={clsx(className, listClasses.root, classes?.root)}\n role={selectable ? \"listbox\" : \"menu\"}\n interactive\n condensed={condensed}\n disableGutters={useSelector}\n aria-multiselectable={(selectable && multiSelect) || undefined}\n {...others}\n >\n {filteredList.map((item, i) => renderListItem(item, i))}\n </HvListContainer>\n )}\n {filteredList.length > 0 && virtualized && (\n <StyledFixedSizeList\n ref={listRef}\n className={clsx(\n listClasses.virtualizedRoot,\n classes?.virtualizedRoot\n )}\n height={(height || 0) + 5}\n width=\"100%\"\n itemCount={filteredList.length}\n itemSize={condensed ? 32 : 40}\n innerElementType={renderFixedList}\n {...others}\n >\n {ListItem}\n </StyledFixedSizeList>\n )}\n </>\n );\n};\n"],"names":["DEFAULT_LABELS","selectAll","selectionConjunction","HvList","id","classes","className","multiSelect","hasTooltips","showSelectAll","labels","useSelector","selectable","singleSelectionToggle","condensed","onChange","onClick","values","valuesProp","height","virtualized","others","list","setList","selection","useSelectableList","listRef","useRef","useEffect","passedProps","parsedList","parseList","undefined","handleSelect","evt","item","path","preventDefault","disabled","handleSelectAll","anySelectableSelected","some","elem","selected","renderLeftIcon","isValidElement","icon","isSelected","isDisabled","renderSelectAll","anySelected","length","allSelected","selectionLabel","HvTypography","component","children","_jsxs","_Fragment","_jsx","StyledSelectAllCheckBox","setId","label","clsx","listClasses","selectAllSelector","indeterminate","checked","renderItemText","ItemText","wrapperTooltip","StyledLink","route","a","link","renderMultiSelectItem","itemId","Selection","StyledMultiSelectCheckBox","root","selectorRoot","container","selectorContainer","truncate","renderSingleSelectItem","StyledSingleSelectRadio","renderListItem","i","otherProps","startAdornment","StyledListItem","role","itemSelector","endAdornment","showNavIcon","StyledDropRightXS","box","iconSize","$applySelected","filteredList","filter","it","isHidden","map","reduce","result","selectedItemIndex","findIndex","current","scrollToItem","ListItem","index","style","tabIndex","top","parseFloat","left","width","interactive","disableGutters","renderFixedList","useMemo","forwardRef","rest","ref","HvListContainer","StyledFixedSizeList","virtualizedRoot","itemCount","itemSize","innerElementType"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const withTooltip = require("../../hocs/withTooltip.cjs");
4
3
  const isItemSelected = (item, newItem) => {
5
4
  const selectionKey = (item == null ? void 0 : item.id) ? "id" : "label";
6
5
  const selectionElement = item && item[selectionKey];
@@ -39,15 +38,6 @@ const parseList = (item, props, selectAll, list = []) => {
39
38
  });
40
39
  return newList;
41
40
  };
42
- const hideTooltip = (evt) => {
43
- const isOverFlow = evt.target.children.length > 1 ? Array.of(...evt.target.children).some((child) => child.scrollWidth > child.clientWidth) : evt.target.scrollWidth > evt.target.clientWidth;
44
- return !isOverFlow;
45
- };
46
- const wrapperTooltip = (hasTooltips, Component, label) => {
47
- const ComponentFunction = () => Component;
48
- return hasTooltips ? withTooltip.default(ComponentFunction, label, "top", hideTooltip, {}, {}) : ComponentFunction;
49
- };
50
41
  exports.isItemSelected = isItemSelected;
51
42
  exports.parseList = parseList;
52
- exports.wrapperTooltip = wrapperTooltip;
53
43
  //# sourceMappingURL=utils.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.cjs","sources":["../../../../src/components/List/utils.ts"],"sourcesContent":["import { withTooltip } from \"hocs\";\nimport { HvListValue } from \"./List\";\n\nconst isItemSelected = (item: HvListValue, newItem: HvListValue) => {\n const selectionKey = item?.id ? \"id\" : \"label\";\n const selectionElement = item && item[selectionKey];\n return newItem[selectionKey] === selectionElement;\n};\n\nconst checkIcons = (list) => list?.some((elem) => elem?.icon);\n\nconst parseState = (list = []) => {\n const hasLeftIcons = checkIcons(list);\n const selection = list.filter((elem: any) => elem?.selected);\n const anySelected = !!selection.length;\n const allSelected = selection.length === list.length;\n const anySelectableSelected = list.some(\n (elem: any) => elem?.selected || elem?.disabled\n );\n const allSelectableSelected = list.every(\n (elem: any) => elem?.selected || elem?.disabled\n );\n\n return {\n list,\n hasLeftIcons,\n anySelected,\n allSelected,\n anySelectableSelected,\n allSelectableSelected,\n selection,\n };\n};\n\nconst parseList = (\n item: HvListValue | undefined,\n props: {\n multiSelect?: boolean;\n selectable?: boolean;\n singleSelectionToggle?: boolean;\n },\n selectAll: boolean | undefined,\n list: HvListValue[] = []\n): HvListValue[] => {\n const { multiSelect, selectable, singleSelectionToggle } = props || {};\n\n let anySelected = false;\n const newList = list.map((elem: any) => {\n const newItem = { ...elem };\n\n // reset elem item\n if (!multiSelect) {\n newItem.selected = false;\n }\n\n const selectItem = item ? isItemSelected(item, newItem) : elem?.selected;\n\n if (selectItem && selectable) {\n let selectionState;\n\n if (multiSelect) {\n selectionState = item ? !elem?.selected : true;\n } else {\n selectionState =\n !anySelected &&\n (item && singleSelectionToggle ? !elem?.selected : true);\n }\n\n newItem.selected = selectionState;\n anySelected = true;\n }\n\n if (typeof selectAll === \"boolean\" && !elem?.disabled)\n newItem.selected = selectAll;\n\n // normalize item selected prop if not provided\n if (!newItem?.selected) newItem.selected = false;\n\n return newItem;\n });\n\n return newList;\n};\n\n/**\n * Hide tooltip when content doesn't overflow\n */\nconst hideTooltip = (evt) => {\n const isOverFlow =\n evt.target.children.length > 1\n ? Array.of(...evt.target.children).some(\n (child) => child.scrollWidth > child.clientWidth\n )\n : evt.target.scrollWidth > evt.target.clientWidth;\n\n return !isOverFlow;\n};\n\nconst wrapperTooltip = (hasTooltips, Component, label) => {\n const ComponentFunction = () => Component;\n return hasTooltips\n ? withTooltip(ComponentFunction, label, \"top\", hideTooltip, {}, {})\n : ComponentFunction;\n};\n\nexport { isItemSelected, parseList, parseState, wrapperTooltip };\n"],"names":["isItemSelected","item","newItem","selectionKey","id","selectionElement","parseList","props","selectAll","list","multiSelect","selectable","singleSelectionToggle","anySelected","newList","map","elem","selected","selectItem","selectionState","disabled","hideTooltip","evt","isOverFlow","target","children","length","Array","of","some","child","scrollWidth","clientWidth","wrapperTooltip","hasTooltips","Component","label","ComponentFunction","withTooltip"],"mappings":";;;AAGMA,MAAAA,iBAAiBA,CAACC,MAAmBC,YAAyB;AAC5DC,QAAAA,gBAAeF,6BAAMG,MAAK,OAAO;AACjCC,QAAAA,mBAAmBJ,QAAQA,KAAKE,YAAY;AAC3CD,SAAAA,QAAQC,YAAY,MAAME;AACnC;AA2BA,MAAMC,YAAYA,CAChBL,MACAM,OAKAC,WACAC,OAAsB,CAAA,MACJ;AACZ,QAAA;AAAA,IAAEC;AAAAA,IAAaC;AAAAA,IAAYC;AAAAA,EAAAA,IAA0BL,SAAS,CAAA;AAEpE,MAAIM,cAAc;AAClB,QAAMC,UAAUL,KAAKM,IAAI,CAACC,SAAc;AACtC,UAAMd,UAAU;AAAA,MAAE,GAAGc;AAAAA,IAAAA;AAGrB,QAAI,CAACN,aAAa;AAChBR,cAAQe,WAAW;AAAA,IACrB;AAEA,UAAMC,aAAajB,OAAOD,eAAeC,MAAMC,OAAO,IAAIc,6BAAMC;AAEhE,QAAIC,cAAcP,YAAY;AACxBQ,UAAAA;AAEJ,UAAIT,aAAa;AACET,yBAAAA,OAAO,EAACe,6BAAMC,YAAW;AAAA,MAAA,OACrC;AACLE,yBACE,CAACN,gBACAZ,QAAQW,wBAAwB,EAACI,6BAAMC,YAAW;AAAA,MACvD;AAEAf,cAAQe,WAAWE;AACL,oBAAA;AAAA,IAChB;AAEA,QAAI,OAAOX,cAAc,aAAa,EAACQ,6BAAMI;AAC3ClB,cAAQe,WAAWT;AAGrB,QAAI,EAACN,mCAASe;AAAUf,cAAQe,WAAW;AAEpCf,WAAAA;AAAAA,EAAAA,CACR;AAEMY,SAAAA;AACT;AAKA,MAAMO,cAAeC,CAAQ,QAAA;AACrBC,QAAAA,aACJD,IAAIE,OAAOC,SAASC,SAAS,IACzBC,MAAMC,GAAG,GAAGN,IAAIE,OAAOC,QAAQ,EAAEI,KAC9BC,CAAAA,UAAUA,MAAMC,cAAcD,MAAME,WAAW,IAElDV,IAAIE,OAAOO,cAAcT,IAAIE,OAAOQ;AAE1C,SAAO,CAACT;AACV;AAEA,MAAMU,iBAAiBA,CAACC,aAAaC,WAAWC,UAAU;AACxD,QAAMC,oBAAoBA,MAAMF;AACzBD,SAAAA,cACHI,oBAAYD,mBAAmBD,OAAO,OAAOf,aAAa,CAAC,GAAG,EAAE,IAChEgB;AACN;;;;"}
1
+ {"version":3,"file":"utils.cjs","sources":["../../../../src/components/List/utils.ts"],"sourcesContent":["import { HvListValue } from \"./List\";\n\nconst isItemSelected = (item: HvListValue, newItem: HvListValue) => {\n const selectionKey = item?.id ? \"id\" : \"label\";\n const selectionElement = item && item[selectionKey];\n return newItem[selectionKey] === selectionElement;\n};\n\nconst checkIcons = (list) => list?.some((elem) => elem?.icon);\n\nconst parseState = (list = []) => {\n const hasLeftIcons = checkIcons(list);\n const selection = list.filter((elem: any) => elem?.selected);\n const anySelected = !!selection.length;\n const allSelected = selection.length === list.length;\n const anySelectableSelected = list.some(\n (elem: any) => elem?.selected || elem?.disabled\n );\n const allSelectableSelected = list.every(\n (elem: any) => elem?.selected || elem?.disabled\n );\n\n return {\n list,\n hasLeftIcons,\n anySelected,\n allSelected,\n anySelectableSelected,\n allSelectableSelected,\n selection,\n };\n};\n\nconst parseList = (\n item: HvListValue | undefined,\n props: {\n multiSelect?: boolean;\n selectable?: boolean;\n singleSelectionToggle?: boolean;\n },\n selectAll: boolean | undefined,\n list: HvListValue[] = []\n): HvListValue[] => {\n const { multiSelect, selectable, singleSelectionToggle } = props || {};\n\n let anySelected = false;\n const newList = list.map((elem: any) => {\n const newItem = { ...elem };\n\n // reset elem item\n if (!multiSelect) {\n newItem.selected = false;\n }\n\n const selectItem = item ? isItemSelected(item, newItem) : elem?.selected;\n\n if (selectItem && selectable) {\n let selectionState;\n\n if (multiSelect) {\n selectionState = item ? !elem?.selected : true;\n } else {\n selectionState =\n !anySelected &&\n (item && singleSelectionToggle ? !elem?.selected : true);\n }\n\n newItem.selected = selectionState;\n anySelected = true;\n }\n\n if (typeof selectAll === \"boolean\" && !elem?.disabled)\n newItem.selected = selectAll;\n\n // normalize item selected prop if not provided\n if (!newItem?.selected) newItem.selected = false;\n\n return newItem;\n });\n\n return newList;\n};\n\nexport { isItemSelected, parseList, parseState };\n"],"names":["isItemSelected","item","newItem","selectionKey","id","selectionElement","parseList","props","selectAll","list","multiSelect","selectable","singleSelectionToggle","anySelected","newList","map","elem","selected","selectItem","selectionState","disabled"],"mappings":";;AAEMA,MAAAA,iBAAiBA,CAACC,MAAmBC,YAAyB;AAC5DC,QAAAA,gBAAeF,6BAAMG,MAAK,OAAO;AACjCC,QAAAA,mBAAmBJ,QAAQA,KAAKE,YAAY;AAC3CD,SAAAA,QAAQC,YAAY,MAAME;AACnC;AA2BA,MAAMC,YAAYA,CAChBL,MACAM,OAKAC,WACAC,OAAsB,CAAA,MACJ;AACZ,QAAA;AAAA,IAAEC;AAAAA,IAAaC;AAAAA,IAAYC;AAAAA,EAAAA,IAA0BL,SAAS,CAAA;AAEpE,MAAIM,cAAc;AAClB,QAAMC,UAAUL,KAAKM,IAAI,CAACC,SAAc;AACtC,UAAMd,UAAU;AAAA,MAAE,GAAGc;AAAAA,IAAAA;AAGrB,QAAI,CAACN,aAAa;AAChBR,cAAQe,WAAW;AAAA,IACrB;AAEA,UAAMC,aAAajB,OAAOD,eAAeC,MAAMC,OAAO,IAAIc,6BAAMC;AAEhE,QAAIC,cAAcP,YAAY;AACxBQ,UAAAA;AAEJ,UAAIT,aAAa;AACET,yBAAAA,OAAO,EAACe,6BAAMC,YAAW;AAAA,MAAA,OACrC;AACLE,yBACE,CAACN,gBACAZ,QAAQW,wBAAwB,EAACI,6BAAMC,YAAW;AAAA,MACvD;AAEAf,cAAQe,WAAWE;AACL,oBAAA;AAAA,IAChB;AAEA,QAAI,OAAOX,cAAc,aAAa,EAACQ,6BAAMI;AAC3ClB,cAAQe,WAAWT;AAGrB,QAAI,EAACN,mCAASe;AAAUf,cAAQe,WAAW;AAEpCf,WAAAA;AAAAA,EAAAA,CACR;AAEMY,SAAAA;AACT;;;"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const clsx = require("clsx");
4
+ const React = require("react");
5
+ const VerticalNavigation = require("../VerticalNavigation.cjs");
6
+ const Action_styles = require("./Action.styles.cjs");
7
+ const actionClasses = require("./actionClasses.cjs");
8
+ const jsxRuntime = require("@emotion/react/jsx-runtime");
9
+ const keyCheck = require("../../../utils/keyboardUtils/keyCheck.cjs");
10
+ const keyboardCodes = require("../../../utils/keyboardUtils/keyboardCodes.cjs");
11
+ const setId = require("../../../utils/setId.cjs");
12
+ const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
13
+ const clsx__default = /* @__PURE__ */ _interopDefault(clsx);
14
+ const HvVerticalNavigationAction = ({
15
+ className,
16
+ classes,
17
+ id,
18
+ label = "",
19
+ icon,
20
+ onClick,
21
+ ...others
22
+ }) => {
23
+ const {
24
+ isOpen
25
+ } = React.useContext(VerticalNavigation.VerticalNavigationContext);
26
+ const handleKeyDown = React.useCallback((event) => {
27
+ if (onClick == null || !keyCheck.isKeypress(event, keyboardCodes.keyboardCodes.Enter) && !keyCheck.isKeypress(event, keyboardCodes.keyboardCodes.SpaceBar)) {
28
+ return;
29
+ }
30
+ onClick(event);
31
+ }, [onClick]);
32
+ return /* @__PURE__ */ jsxRuntime.jsxs(Action_styles.StyledAction, {
33
+ id: setId.setId(id, "button"),
34
+ component: "div",
35
+ role: "button",
36
+ className: clsx__default.default(className, actionClasses.default.action, classes == null ? void 0 : classes.action, !icon && clsx__default.default(actionClasses.default.noIcon, classes == null ? void 0 : classes.noIcon), !isOpen && clsx__default.default(actionClasses.default.minimized, classes == null ? void 0 : classes.action)),
37
+ tabIndex: 0,
38
+ onKeyDown: handleKeyDown,
39
+ onClick,
40
+ ...others,
41
+ children: [icon, isOpen && label]
42
+ });
43
+ };
44
+ exports.HvVerticalNavigationAction = HvVerticalNavigationAction;
45
+ //# sourceMappingURL=Action.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Action.cjs","sources":["../../../../../src/components/VerticalNavigation/Actions/Action.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { MouseEventHandler, useCallback, useContext } from \"react\";\nimport { isKeypress, keyboardCodes, setId } from \"utils\";\nimport { VerticalNavigationContext } from \"../VerticalNavigation\";\nimport { StyledAction } from \"./Action.styles\";\nimport actionClasses, {\n HvVerticalNavigationActionClasses,\n} from \"./actionClasses\";\n\nexport const HvVerticalNavigationAction = ({\n className,\n classes,\n id,\n label = \"\",\n icon,\n onClick,\n ...others\n}: HvVerticalNavigationActionProps) => {\n const { isOpen } = useContext(VerticalNavigationContext);\n\n const handleKeyDown = useCallback(\n (event) => {\n if (\n onClick == null ||\n (!isKeypress(event, keyboardCodes.Enter) &&\n !isKeypress(event, keyboardCodes.SpaceBar))\n ) {\n return;\n }\n\n onClick(event);\n },\n [onClick]\n );\n\n return (\n <StyledAction\n id={setId(id, \"button\")}\n component=\"div\"\n role=\"button\"\n className={clsx(\n className,\n actionClasses.action,\n classes?.action,\n !icon && clsx(actionClasses.noIcon, classes?.noIcon),\n !isOpen && clsx(actionClasses.minimized, classes?.action)\n )}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onClick={onClick}\n {...others}\n >\n {icon}\n {isOpen && label}\n </StyledAction>\n );\n};\n\nexport type HvVerticalNavigationActionProps = {\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvVerticalNavigationActionClasses;\n /**\n * Id to be applied to the action.\n */\n id?: string;\n /**\n * Visual label.\n */\n label?: string;\n /**\n * Icon.\n */\n icon?: React.ReactNode;\n /**\n * Callback called when clicked.\n */\n onClick?: MouseEventHandler<HTMLElement>;\n};\n"],"names":["HvVerticalNavigationAction","className","classes","id","label","icon","onClick","others","isOpen","useContext","VerticalNavigationContext","handleKeyDown","useCallback","event","isKeypress","keyboardCodes","Enter","SpaceBar","StyledAction","setId","component","role","clsx","actionClasses","action","noIcon","minimized","tabIndex","onKeyDown","children"],"mappings":";;;;;;;;;;;;;AASO,MAAMA,6BAA6BA,CAAC;AAAA,EACzCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,QAAQ;AAAA,EACRC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AAC4B,MAAM;AAC/B,QAAA;AAAA,IAAEC;AAAAA,EAAAA,IAAWC,MAAAA,WAAWC,mBAAAA,yBAAyB;AAEjDC,QAAAA,gBAAgBC,kBACnBC,CAAU,UAAA;AACT,QACEP,WAAW,QACV,CAACQ,SAAAA,WAAWD,OAAOE,cAAAA,cAAcC,KAAK,KACrC,CAACF,SAAAA,WAAWD,OAAOE,cAAAA,cAAcE,QAAQ,GAC3C;AACA;AAAA,IACF;AAEAX,YAAQO,KAAK;AAAA,EAAA,GAEf,CAACP,OAAO,CAAC;AAGX,yCACGY,cAAAA,cAAY;AAAA,IACXf,IAAIgB,MAAAA,MAAMhB,IAAI,QAAQ;AAAA,IACtBiB,WAAU;AAAA,IACVC,MAAK;AAAA,IACLpB,WAAWqB,cAAAA,QACTrB,WACAsB,sBAAcC,QACdtB,mCAASsB,QACT,CAACnB,QAAQiB,sBAAKC,cAAAA,QAAcE,QAAQvB,mCAASuB,MAAM,GACnD,CAACjB,UAAUc,sBAAKC,cAAAA,QAAcG,WAAWxB,mCAASsB,MAAM,CAAC;AAAA,IAE3DG,UAAU;AAAA,IACVC,WAAWjB;AAAAA,IACXL;AAAAA,IAAiB,GACbC;AAAAA,IAAMsB,UAETxB,CAAAA,MACAG,UAAUJ,KAAK;AAAA,EAAA,CACH;AAEnB;;"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const _styled = require("@emotion/styled/base");
4
+ const uikitStyles = require("@hitachivantara/uikit-styles");
5
+ const actionClasses = require("./actionClasses.cjs");
6
+ const Typography = require("../../Typography/Typography.cjs");
7
+ const focusUtils = require("../../../utils/focusUtils.cjs");
8
+ const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
9
+ const _styled__default = /* @__PURE__ */ _interopDefault(_styled);
10
+ const hover = () => ({
11
+ background: uikitStyles.theme.verticalNavigation.hoverColor,
12
+ "& *": {
13
+ background: uikitStyles.theme.verticalNavigation.hoverColor
14
+ }
15
+ });
16
+ const StyledAction = /* @__PURE__ */ _styled__default.default(Typography.HvTypography, process.env.NODE_ENV === "production" ? {
17
+ target: "e13j4on70"
18
+ } : {
19
+ target: "e13j4on70",
20
+ label: "StyledAction"
21
+ })({
22
+ width: "100%",
23
+ display: "flex",
24
+ justifyContent: "flex-start",
25
+ alignItems: "center",
26
+ height: "32px",
27
+ color: uikitStyles.theme.colors.acce1,
28
+ // hover
29
+ "&:hover": hover(),
30
+ "&:focus": {
31
+ outline: "none",
32
+ ...hover()
33
+ },
34
+ "&:focus-visible": {
35
+ ...focusUtils.outlineStyles
36
+ },
37
+ // cursor
38
+ cursor: "pointer",
39
+ "& *": {
40
+ cursor: "pointer"
41
+ },
42
+ [`& .${actionClasses.default.noIcon}`]: {
43
+ paddingLeft: uikitStyles.theme.space.xs
44
+ },
45
+ [`&.${actionClasses.default.minimized}`]: {
46
+ justifyContent: "center",
47
+ paddingRight: 0
48
+ }
49
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvVmVydGljYWxOYXZpZ2F0aW9uL0FjdGlvbnMvQWN0aW9uLnN0eWxlcy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYTRCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvVmVydGljYWxOYXZpZ2F0aW9uL0FjdGlvbnMvQWN0aW9uLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1zdHlsZXNcIjtcbmltcG9ydCB7IEh2VHlwb2dyYXBoeSB9IGZyb20gXCJjb21wb25lbnRzXCI7XG5pbXBvcnQgeyBvdXRsaW5lU3R5bGVzIH0gZnJvbSBcInV0aWxzXCI7XG5pbXBvcnQgYWN0aW9uQ2xhc3NlcyBmcm9tIFwiLi9hY3Rpb25DbGFzc2VzXCI7XG5cbmNvbnN0IGhvdmVyID0gKCkgPT4gKHtcbiAgYmFja2dyb3VuZDogdGhlbWUudmVydGljYWxOYXZpZ2F0aW9uLmhvdmVyQ29sb3IsXG4gIFwiJiAqXCI6IHtcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS52ZXJ0aWNhbE5hdmlnYXRpb24uaG92ZXJDb2xvcixcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkQWN0aW9uID0gc3R5bGVkKEh2VHlwb2dyYXBoeSkoe1xuICB3aWR0aDogXCIxMDAlXCIsXG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBqdXN0aWZ5Q29udGVudDogXCJmbGV4LXN0YXJ0XCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gIGhlaWdodDogXCIzMnB4XCIsXG4gIGNvbG9yOiB0aGVtZS5jb2xvcnMuYWNjZTEsXG5cbiAgLy8gaG92ZXJcbiAgXCImOmhvdmVyXCI6IGhvdmVyKCksXG5cbiAgXCImOmZvY3VzXCI6IHtcbiAgICBvdXRsaW5lOiBcIm5vbmVcIixcbiAgICAuLi5ob3ZlcigpLFxuICB9LFxuXG4gIFwiJjpmb2N1cy12aXNpYmxlXCI6IHtcbiAgICAuLi5vdXRsaW5lU3R5bGVzLFxuICB9LFxuXG4gIC8vIGN1cnNvclxuICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICBcIiYgKlwiOiB7XG4gICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgfSxcblxuICBbYCYgLiR7YWN0aW9uQ2xhc3Nlcy5ub0ljb259YF06IHtcbiAgICBwYWRkaW5nTGVmdDogdGhlbWUuc3BhY2UueHMsXG4gIH0sXG5cbiAgW2AmLiR7YWN0aW9uQ2xhc3Nlcy5taW5pbWl6ZWR9YF06IHtcbiAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICBwYWRkaW5nUmlnaHQ6IDAsXG4gIH0sXG59KTtcbiJdfQ== */");
50
+ exports.StyledAction = StyledAction;
51
+ //# sourceMappingURL=Action.styles.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Action.styles.cjs","sources":["../../../../../src/components/VerticalNavigation/Actions/Action.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { HvTypography } from \"components\";\nimport { outlineStyles } from \"utils\";\nimport actionClasses from \"./actionClasses\";\n\nconst hover = () => ({\n background: theme.verticalNavigation.hoverColor,\n \"& *\": {\n background: theme.verticalNavigation.hoverColor,\n },\n});\n\nexport const StyledAction = styled(HvTypography)({\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n height: \"32px\",\n color: theme.colors.acce1,\n\n // hover\n \"&:hover\": hover(),\n\n \"&:focus\": {\n outline: \"none\",\n ...hover(),\n },\n\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n\n // cursor\n cursor: \"pointer\",\n \"& *\": {\n cursor: \"pointer\",\n },\n\n [`& .${actionClasses.noIcon}`]: {\n paddingLeft: theme.space.xs,\n },\n\n [`&.${actionClasses.minimized}`]: {\n justifyContent: \"center\",\n paddingRight: 0,\n },\n});\n"],"names":["hover","background","theme","verticalNavigation","hoverColor","StyledAction","HvTypography","process","env","NODE_ENV","target","label","width","display","justifyContent","alignItems","height","color","colors","acce1","outline","outlineStyles","cursor","actionClasses","noIcon","paddingLeft","space","xs","minimized","paddingRight"],"mappings":";;;;;;;;;AAMA,MAAMA,QAAQA,OAAO;AAAA,EACnBC,YAAYC,YAAAA,MAAMC,mBAAmBC;AAAAA,EACrC,OAAO;AAAA,IACLH,YAAYC,YAAAA,MAAMC,mBAAmBC;AAAAA,EACvC;AACF;AAEO,MAAMC,eAAsBC,iCAAAA,QAAAA,WAAAA,cAAYC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAAE;AAAA,EAC/CC,OAAO;AAAA,EACPC,SAAS;AAAA,EACTC,gBAAgB;AAAA,EAChBC,YAAY;AAAA,EACZC,QAAQ;AAAA,EACRC,OAAOf,YAAAA,MAAMgB,OAAOC;AAAAA;AAAAA,EAGpB,WAAWnB,MAAO;AAAA,EAElB,WAAW;AAAA,IACToB,SAAS;AAAA,IACT,GAAGpB,MAAK;AAAA,EACV;AAAA,EAEA,mBAAmB;AAAA,IACjB,GAAGqB,WAAAA;AAAAA,EACL;AAAA;AAAA,EAGAC,QAAQ;AAAA,EACR,OAAO;AAAA,IACLA,QAAQ;AAAA,EACV;AAAA,EAEA,CAAE,MAAKC,sBAAcC,QAAQ,GAAG;AAAA,IAC9BC,aAAavB,YAAAA,MAAMwB,MAAMC;AAAAA,EAC3B;AAAA,EAEA,CAAE,KAAIJ,sBAAcK,WAAW,GAAG;AAAA,IAChCd,gBAAgB;AAAA,IAChBe,cAAc;AAAA,EAChB;AACF,GAACtB,QAAAC,IAAAC,aAAC,eAAA,KAAA,q2DAAA;;"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const clsx = require("clsx");
4
+ const React = require("react");
5
+ const VerticalNavigation = require("../VerticalNavigation.cjs");
6
+ const Actions_styles = require("./Actions.styles.cjs");
7
+ const actionsClasses = require("./actionsClasses.cjs");
8
+ const jsxRuntime = require("@emotion/react/jsx-runtime");
9
+ const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
10
+ const clsx__default = /* @__PURE__ */ _interopDefault(clsx);
11
+ const HvVerticalNavigationActions = ({
12
+ className,
13
+ classes,
14
+ id,
15
+ children,
16
+ ...others
17
+ }) => {
18
+ const {
19
+ isOpen,
20
+ collapsedMode
21
+ } = React.useContext(VerticalNavigation.VerticalNavigationContext);
22
+ return /* @__PURE__ */ jsxRuntime.jsx(Actions_styles.StyledRoot, {
23
+ id,
24
+ className: clsx__default.default(className, actionsClasses.default.root, classes == null ? void 0 : classes.root, !isOpen && collapsedMode == "simple" && clsx__default.default(actionsClasses.default.hide, classes == null ? void 0 : classes.hide)),
25
+ ...others,
26
+ children
27
+ });
28
+ };
29
+ exports.HvVerticalNavigationActions = HvVerticalNavigationActions;
30
+ //# sourceMappingURL=Actions.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Actions.cjs","sources":["../../../../../src/components/VerticalNavigation/Actions/Actions.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { useContext } from \"react\";\nimport { VerticalNavigationContext } from \"../VerticalNavigation\";\nimport { StyledRoot } from \"./Actions.styles\";\nimport actionsClasses, {\n HvVerticalNavigationActionsClasses,\n} from \"./actionsClasses\";\n\nexport const HvVerticalNavigationActions = ({\n className,\n classes,\n id,\n children,\n ...others\n}: HvVerticalNavigationActionsProps) => {\n const { isOpen, collapsedMode } = useContext(VerticalNavigationContext);\n\n return (\n <StyledRoot\n id={id}\n className={clsx(\n className,\n actionsClasses.root,\n classes?.root,\n !isOpen &&\n collapsedMode == \"simple\" &&\n clsx(actionsClasses.hide, classes?.hide)\n )}\n {...others}\n >\n {children}\n </StyledRoot>\n );\n};\n\nexport type HvVerticalNavigationActionsProps = {\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvVerticalNavigationActionsClasses;\n /**\n * Id to be applied to the actions container.\n */\n id?: string;\n /**\n * Node to be rendered\n */\n children?: React.ReactNode;\n};\n"],"names":["HvVerticalNavigationActions","className","classes","id","children","others","isOpen","collapsedMode","useContext","VerticalNavigationContext","StyledRoot","clsx","actionsClasses","root","hide"],"mappings":";;;;;;;;;;AAQO,MAAMA,8BAA8BA,CAAC;AAAA,EAC1CC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AAC6B,MAAM;AAChC,QAAA;AAAA,IAAEC;AAAAA,IAAQC;AAAAA,EAAAA,IAAkBC,MAAAA,WAAWC,mBAAAA,yBAAyB;AAEtE,wCACGC,eAAAA,YAAU;AAAA,IACTP;AAAAA,IACAF,WAAWU,cACTV,QAAAA,WACAW,eAAeC,QAAAA,MACfX,mCAASW,MACT,CAACP,UACCC,iBAAiB,YACjBI,sBAAKC,eAAAA,QAAeE,MAAMZ,mCAASY,IAAI,CAAC;AAAA,IAC1C,GACET;AAAAA,IAAMD;AAAAA,EAAAA,CAGC;AAEjB;;"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const _styled = require("@emotion/styled/base");
4
+ const uikitStyles = require("@hitachivantara/uikit-styles");
5
+ const actionsClasses = require("./actionsClasses.cjs");
6
+ const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
7
+ const _styled__default = /* @__PURE__ */ _interopDefault(_styled);
8
+ const StyledRoot = /* @__PURE__ */ _styled__default.default("div", process.env.NODE_ENV === "production" ? {
9
+ target: "e11q2fjk0"
10
+ } : {
11
+ target: "e11q2fjk0",
12
+ label: "StyledRoot"
13
+ })({
14
+ display: "block",
15
+ background: uikitStyles.theme.colors.atmo1,
16
+ marginTop: uikitStyles.theme.verticalNavigation.actionsMarginTop,
17
+ "& :not(:last-child)": {
18
+ // theme.verticalNavigation.actionsMarginTop,
19
+ marginBottom: "8px"
20
+ },
21
+ [`&.${actionsClasses.default.hide}`]: {
22
+ display: "none"
23
+ }
24
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvVmVydGljYWxOYXZpZ2F0aW9uL0FjdGlvbnMvQWN0aW9ucy5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUkwQiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL1ZlcnRpY2FsTmF2aWdhdGlvbi9BY3Rpb25zL0FjdGlvbnMuc3R5bGVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tIFwiQGhpdGFjaGl2YW50YXJhL3Vpa2l0LXN0eWxlc1wiO1xuaW1wb3J0IGFjdGlvbnNDbGFzc2VzIGZyb20gXCIuL2FjdGlvbnNDbGFzc2VzXCI7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRSb290ID0gc3R5bGVkKFwiZGl2XCIpKHtcbiAgZGlzcGxheTogXCJibG9ja1wiLFxuICBiYWNrZ3JvdW5kOiB0aGVtZS5jb2xvcnMuYXRtbzEsXG4gIG1hcmdpblRvcDogdGhlbWUudmVydGljYWxOYXZpZ2F0aW9uLmFjdGlvbnNNYXJnaW5Ub3AsXG5cbiAgXCImIDpub3QoOmxhc3QtY2hpbGQpXCI6IHtcbiAgICAvLyB0aGVtZS52ZXJ0aWNhbE5hdmlnYXRpb24uYWN0aW9uc01hcmdpblRvcCxcbiAgICBtYXJnaW5Cb3R0b206IFwiOHB4XCIsXG4gIH0sXG5cbiAgW2AmLiR7YWN0aW9uc0NsYXNzZXMuaGlkZX1gXToge1xuICAgIGRpc3BsYXk6IFwibm9uZVwiLFxuICB9LFxufSk7XG4iXX0= */");
25
+ exports.StyledRoot = StyledRoot;
26
+ //# sourceMappingURL=Actions.styles.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Actions.styles.cjs","sources":["../../../../../src/components/VerticalNavigation/Actions/Actions.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport actionsClasses from \"./actionsClasses\";\n\nexport const StyledRoot = styled(\"div\")({\n display: \"block\",\n background: theme.colors.atmo1,\n marginTop: theme.verticalNavigation.actionsMarginTop,\n\n \"& :not(:last-child)\": {\n // theme.verticalNavigation.actionsMarginTop,\n marginBottom: \"8px\",\n },\n\n [`&.${actionsClasses.hide}`]: {\n display: \"none\",\n },\n});\n"],"names":["StyledRoot","_styled","process","env","NODE_ENV","target","label","display","background","theme","colors","atmo1","marginTop","verticalNavigation","actionsMarginTop","marginBottom","actionsClasses","hide"],"mappings":";;;;;;;AAIO,MAAMA,aAAoBC,iCAAA,QAAA,OAAKC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAAE;AAAA,EACtCC,SAAS;AAAA,EACTC,YAAYC,YAAAA,MAAMC,OAAOC;AAAAA,EACzBC,WAAWH,YAAAA,MAAMI,mBAAmBC;AAAAA,EAEpC,uBAAuB;AAAA;AAAA,IAErBC,cAAc;AAAA,EAChB;AAAA,EAEA,CAAE,KAAIC,uBAAeC,MAAM,GAAG;AAAA,IAC5BV,SAAS;AAAA,EACX;AACF,GAACL,QAAAC,IAAAC,aAAC,eAAA,KAAA,6pCAAA;;"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const classes = require("../../../utils/classes.cjs");
4
+ const classKeys = ["action", "noIcon", "minimized"];
5
+ const actionClasses = classes.getClasses(classKeys, "HvVerticalNavigationAction");
6
+ const actionClasses$1 = actionClasses;
7
+ exports.default = actionClasses$1;
8
+ //# sourceMappingURL=actionClasses.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionClasses.cjs","sources":["../../../../../src/components/VerticalNavigation/Actions/actionClasses.ts"],"sourcesContent":["import { getClasses } from \"utils\";\n\nexport type HvVerticalNavigationActionClasses = {\n action?: string;\n noIcon?: string;\n minimized?: string;\n};\n\nconst classKeys: string[] = [\"action\", \"noIcon\", \"minimized\"];\n\nconst actionClasses = getClasses<HvVerticalNavigationActionClasses>(\n classKeys,\n \"HvVerticalNavigationAction\"\n);\n\nexport default actionClasses;\n"],"names":["classKeys","actionClasses","getClasses"],"mappings":";;;AAQA,MAAMA,YAAsB,CAAC,UAAU,UAAU,WAAW;AAE5D,MAAMC,gBAAgBC,QACpBF,WAAAA,WACA,4BAA4B;AAG9B,MAAA,kBAAeC;;"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const classes = require("../../../utils/classes.cjs");
4
+ const classKeys = ["root", "hide"];
5
+ const actionsClasses = classes.getClasses(classKeys, "HvVerticalNavigationActions");
6
+ const actionsClasses$1 = actionsClasses;
7
+ exports.default = actionsClasses$1;
8
+ //# sourceMappingURL=actionsClasses.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionsClasses.cjs","sources":["../../../../../src/components/VerticalNavigation/Actions/actionsClasses.ts"],"sourcesContent":["import { getClasses } from \"utils\";\n\nexport type HvVerticalNavigationActionsClasses = {\n root?: string;\n hide?: string;\n};\n\nconst classKeys: string[] = [\"root\", \"hide\"];\n\nconst actionsClasses = getClasses<HvVerticalNavigationActionsClasses>(\n classKeys,\n \"HvVerticalNavigationActions\"\n);\n\nexport default actionsClasses;\n"],"names":["classKeys","actionsClasses","getClasses"],"mappings":";;;AAOA,MAAMA,YAAsB,CAAC,QAAQ,MAAM;AAE3C,MAAMC,iBAAiBC,QACrBF,WAAAA,WACA,6BAA6B;AAG/B,MAAA,mBAAeC;;"}