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

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 (131) 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/Table/TableRow/TableRow.cjs +4 -1
  12. package/dist/cjs/components/Table/TableRow/TableRow.cjs.map +1 -1
  13. package/dist/cjs/components/VerticalNavigation/Actions/Action.cjs +45 -0
  14. package/dist/cjs/components/VerticalNavigation/Actions/Action.cjs.map +1 -0
  15. package/dist/cjs/components/VerticalNavigation/Actions/Action.styles.cjs +51 -0
  16. package/dist/cjs/components/VerticalNavigation/Actions/Action.styles.cjs.map +1 -0
  17. package/dist/cjs/components/VerticalNavigation/Actions/Actions.cjs +30 -0
  18. package/dist/cjs/components/VerticalNavigation/Actions/Actions.cjs.map +1 -0
  19. package/dist/cjs/components/VerticalNavigation/Actions/Actions.styles.cjs +26 -0
  20. package/dist/cjs/components/VerticalNavigation/Actions/Actions.styles.cjs.map +1 -0
  21. package/dist/cjs/components/VerticalNavigation/Actions/actionClasses.cjs +8 -0
  22. package/dist/cjs/components/VerticalNavigation/Actions/actionClasses.cjs.map +1 -0
  23. package/dist/cjs/components/VerticalNavigation/Actions/actionsClasses.cjs +8 -0
  24. package/dist/cjs/components/VerticalNavigation/Actions/actionsClasses.cjs.map +1 -0
  25. package/dist/cjs/components/VerticalNavigation/Header/Header.cjs +45 -0
  26. package/dist/cjs/components/VerticalNavigation/Header/Header.cjs.map +1 -0
  27. package/dist/cjs/components/VerticalNavigation/Header/Header.styles.cjs +23 -0
  28. package/dist/cjs/components/VerticalNavigation/Header/Header.styles.cjs.map +1 -0
  29. package/dist/cjs/components/VerticalNavigation/Header/headerClasses.cjs +8 -0
  30. package/dist/cjs/components/VerticalNavigation/Header/headerClasses.cjs.map +1 -0
  31. package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.cjs +134 -0
  32. package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.cjs.map +1 -0
  33. package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.styles.cjs +22 -0
  34. package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.styles.cjs.map +1 -0
  35. package/dist/cjs/components/VerticalNavigation/Navigation/navigationClasses.cjs +8 -0
  36. package/dist/cjs/components/VerticalNavigation/Navigation/navigationClasses.cjs.map +1 -0
  37. package/dist/cjs/components/VerticalNavigation/TreeView/TreeView.cjs +643 -0
  38. package/dist/cjs/components/VerticalNavigation/TreeView/TreeView.cjs.map +1 -0
  39. package/dist/cjs/components/VerticalNavigation/TreeView/TreeView.styles.cjs +21 -0
  40. package/dist/cjs/components/VerticalNavigation/TreeView/TreeView.styles.cjs.map +1 -0
  41. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewContext.cjs +10 -0
  42. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewContext.cjs.map +1 -0
  43. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.cjs +282 -0
  44. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.cjs.map +1 -0
  45. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.styles.cjs +132 -0
  46. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.styles.cjs.map +1 -0
  47. package/dist/cjs/components/VerticalNavigation/TreeView/descendants.cjs +134 -0
  48. package/dist/cjs/components/VerticalNavigation/TreeView/descendants.cjs.map +1 -0
  49. package/dist/cjs/components/VerticalNavigation/TreeView/treeViewClasses.cjs +8 -0
  50. package/dist/cjs/components/VerticalNavigation/TreeView/treeViewClasses.cjs.map +1 -0
  51. package/dist/cjs/components/VerticalNavigation/TreeView/treeViewItemClasses.cjs +8 -0
  52. package/dist/cjs/components/VerticalNavigation/TreeView/treeViewItemClasses.cjs.map +1 -0
  53. package/dist/cjs/components/VerticalNavigation/VerticalNavigation.cjs +40 -0
  54. package/dist/cjs/components/VerticalNavigation/VerticalNavigation.cjs.map +1 -0
  55. package/dist/cjs/components/VerticalNavigation/VerticalNavigation.styles.cjs +43 -0
  56. package/dist/cjs/components/VerticalNavigation/VerticalNavigation.styles.cjs.map +1 -0
  57. package/dist/cjs/components/VerticalNavigation/verticalNavigationClasses.cjs +8 -0
  58. package/dist/cjs/components/VerticalNavigation/verticalNavigationClasses.cjs.map +1 -0
  59. package/dist/cjs/hocs/withTooltip.cjs.map +1 -1
  60. package/dist/cjs/hooks/useEnhancedEffect.cjs +6 -0
  61. package/dist/cjs/hooks/useEnhancedEffect.cjs.map +1 -0
  62. package/dist/cjs/index.cjs +37 -0
  63. package/dist/cjs/index.cjs.map +1 -1
  64. package/dist/cjs/utils/wrapperTooltip.cjs +13 -0
  65. package/dist/cjs/utils/wrapperTooltip.cjs.map +1 -0
  66. package/dist/esm/components/BaseDropdown/BaseDropdown.js +1 -1
  67. package/dist/esm/components/DropDownMenu/DropDownMenu.js +1 -1
  68. package/dist/esm/components/DropDownMenu/DropDownMenu.js.map +1 -1
  69. package/dist/esm/components/FileUploader/DropZone/DropZone.js +1 -1
  70. package/dist/esm/components/FileUploader/DropZone/DropZone.js.map +1 -1
  71. package/dist/esm/components/List/List.js +2 -1
  72. package/dist/esm/components/List/List.js.map +1 -1
  73. package/dist/esm/components/List/utils.js +1 -11
  74. package/dist/esm/components/List/utils.js.map +1 -1
  75. package/dist/esm/components/Table/TableRow/TableRow.js +4 -1
  76. package/dist/esm/components/Table/TableRow/TableRow.js.map +1 -1
  77. package/dist/esm/components/VerticalNavigation/Actions/Action.js +43 -0
  78. package/dist/esm/components/VerticalNavigation/Actions/Action.js.map +1 -0
  79. package/dist/esm/components/VerticalNavigation/Actions/Action.styles.js +49 -0
  80. package/dist/esm/components/VerticalNavigation/Actions/Action.styles.js.map +1 -0
  81. package/dist/esm/components/VerticalNavigation/Actions/Actions.js +28 -0
  82. package/dist/esm/components/VerticalNavigation/Actions/Actions.js.map +1 -0
  83. package/dist/esm/components/VerticalNavigation/Actions/Actions.styles.js +24 -0
  84. package/dist/esm/components/VerticalNavigation/Actions/Actions.styles.js.map +1 -0
  85. package/dist/esm/components/VerticalNavigation/Actions/actionClasses.js +8 -0
  86. package/dist/esm/components/VerticalNavigation/Actions/actionClasses.js.map +1 -0
  87. package/dist/esm/components/VerticalNavigation/Actions/actionsClasses.js +8 -0
  88. package/dist/esm/components/VerticalNavigation/Actions/actionsClasses.js.map +1 -0
  89. package/dist/esm/components/VerticalNavigation/Header/Header.js +43 -0
  90. package/dist/esm/components/VerticalNavigation/Header/Header.js.map +1 -0
  91. package/dist/esm/components/VerticalNavigation/Header/Header.styles.js +21 -0
  92. package/dist/esm/components/VerticalNavigation/Header/Header.styles.js.map +1 -0
  93. package/dist/esm/components/VerticalNavigation/Header/headerClasses.js +8 -0
  94. package/dist/esm/components/VerticalNavigation/Header/headerClasses.js.map +1 -0
  95. package/dist/esm/components/VerticalNavigation/Navigation/Navigation.js +132 -0
  96. package/dist/esm/components/VerticalNavigation/Navigation/Navigation.js.map +1 -0
  97. package/dist/esm/components/VerticalNavigation/Navigation/Navigation.styles.js +20 -0
  98. package/dist/esm/components/VerticalNavigation/Navigation/Navigation.styles.js.map +1 -0
  99. package/dist/esm/components/VerticalNavigation/Navigation/navigationClasses.js +8 -0
  100. package/dist/esm/components/VerticalNavigation/Navigation/navigationClasses.js.map +1 -0
  101. package/dist/esm/components/VerticalNavigation/TreeView/TreeView.js +641 -0
  102. package/dist/esm/components/VerticalNavigation/TreeView/TreeView.js.map +1 -0
  103. package/dist/esm/components/VerticalNavigation/TreeView/TreeView.styles.js +19 -0
  104. package/dist/esm/components/VerticalNavigation/TreeView/TreeView.styles.js.map +1 -0
  105. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewContext.js +10 -0
  106. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewContext.js.map +1 -0
  107. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.js +280 -0
  108. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -0
  109. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.styles.js +130 -0
  110. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.styles.js.map +1 -0
  111. package/dist/esm/components/VerticalNavigation/TreeView/descendants.js +134 -0
  112. package/dist/esm/components/VerticalNavigation/TreeView/descendants.js.map +1 -0
  113. package/dist/esm/components/VerticalNavigation/TreeView/treeViewClasses.js +8 -0
  114. package/dist/esm/components/VerticalNavigation/TreeView/treeViewClasses.js.map +1 -0
  115. package/dist/esm/components/VerticalNavigation/TreeView/treeViewItemClasses.js +8 -0
  116. package/dist/esm/components/VerticalNavigation/TreeView/treeViewItemClasses.js.map +1 -0
  117. package/dist/esm/components/VerticalNavigation/VerticalNavigation.js +38 -0
  118. package/dist/esm/components/VerticalNavigation/VerticalNavigation.js.map +1 -0
  119. package/dist/esm/components/VerticalNavigation/VerticalNavigation.styles.js +41 -0
  120. package/dist/esm/components/VerticalNavigation/VerticalNavigation.styles.js.map +1 -0
  121. package/dist/esm/components/VerticalNavigation/verticalNavigationClasses.js +8 -0
  122. package/dist/esm/components/VerticalNavigation/verticalNavigationClasses.js.map +1 -0
  123. package/dist/esm/hocs/withTooltip.js.map +1 -1
  124. package/dist/esm/hooks/useEnhancedEffect.js +6 -0
  125. package/dist/esm/hooks/useEnhancedEffect.js.map +1 -0
  126. package/dist/esm/index.js +55 -18
  127. package/dist/esm/index.js.map +1 -1
  128. package/dist/esm/utils/wrapperTooltip.js +13 -0
  129. package/dist/esm/utils/wrapperTooltip.js.map +1 -0
  130. package/dist/types/index.d.ts +502 -0
  131. package/package.json +6 -6
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":"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"}
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;;;"}
@@ -117,8 +117,11 @@ const StyledTableRow = (c) => /* @__PURE__ */ _styled__default.default(c, proces
117
117
  "tr&:first-of-type": {
118
118
  height: 16
119
119
  }
120
+ },
121
+ "&.HvIsFocused": {
122
+ borderRadius: uikitStyles.theme.table.rowBorderRadius
120
123
  }
121
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvVGFibGUvVGFibGVSb3cvVGFibGVSb3cudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlDRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL1RhYmxlL1RhYmxlUm93L1RhYmxlUm93LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjbHN4IGZyb20gXCJjbHN4XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGhleFRvUmdiLCBhbHBoYSB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5pbXBvcnQgeyBIdkJhc2VQcm9wcyB9IGZyb20gXCIuLi8uLi8uLi90eXBlcy9pbmRleFwiO1xuaW1wb3J0IHsgdGFibGVSb3dDbGFzc2VzLCBIdlRhYmxlUm93Q2xhc3NlcyB9IGZyb20gXCIuXCI7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgVGFibGVDb250ZXh0IGZyb20gXCIuLi9UYWJsZUNvbnRleHRcIjtcbmltcG9ydCB7IHRyYW5zaWVudE9wdGlvbnMgfSBmcm9tIFwidXRpbHMvdHJhbnNpZW50T3B0aW9uc1wiO1xuaW1wb3J0IFRhYmxlU2VjdGlvbkNvbnRleHQgZnJvbSBcIi4uL1RhYmxlU2VjdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1zdHlsZXNcIjtcbmltcG9ydCB7IGdldEJvcmRlclN0eWxlcyB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tIFwiaG9va3NcIjtcblxuZXhwb3J0IHR5cGUgSHZUYWJsZVJvd1Byb3BzID0gT21pdDxIdkJhc2VQcm9wcywgXCJjaGlsZHJlblwiPiAmIHtcbiAgLyoqIENvbnRlbnQgdG8gYmUgcmVuZGVyZWQgKi9cbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqIFRoZSBjb21wb25lbnQgdXNlZCBmb3IgdGhlIHJvb3Qgbm9kZS4gRWl0aGVyIGEgc3RyaW5nIHRvIHVzZSBhIEhUTUwgZWxlbWVudCBvciBhIGNvbXBvbmVudC4gRGVmYXVsdHMgdG8gdGJvZHkuICovXG4gIGNvbXBvbmVudD86IFJlYWN0LkVsZW1lbnRUeXBlO1xuICAvKiogV2hldGhlciB0aGUgdGFibGUgcm93IHdpbGwgc2hhZGUgb24gaG92ZXIuICovXG4gIGhvdmVyPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdGhlIHRhYmxlIHJvdyB3aWxsIGhhdmUgdGhlIHNlbGVjdGVkIHNoYWRpbmcuICovXG4gIHNlbGVjdGVkPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdGhlIHRhYmxlIHJvdyBpcyBleHBhbmRlZC4gKi9cbiAgZXhwYW5kZWQ/OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGUgdGFibGUgcm93IGJhY2tncm91bmQgaXMgc3RyaXBlZC4gKi9cbiAgc3RyaXBlZD86IGJvb2xlYW47XG4gIC8qKiBBIEpzcyBPYmplY3QgdXNlZCB0byBvdmVycmlkZSBvciBleHRlbmQgdGhlIHN0eWxlcyBhcHBsaWVkIHRvIHRoZSBjb21wb25lbnQuICovXG4gIGNsYXNzZXM/OiBIdlRhYmxlUm93Q2xhc3Nlcztcbn07XG5cbmNvbnN0IGRlZmF1bHRDb21wb25lbnQgPSBcInRyXCI7XG5cbmNvbnN0IFN0eWxlZFRhYmxlUm93ID0gKGM6IGFueSkgPT5cbiAgc3R5bGVkKFxuICAgIGMsXG4gICAgdHJhbnNpZW50T3B0aW9uc1xuICApKFxuICAgICh7XG4gICAgICAkaG92ZXIsXG4gICAgICAkc2VsZWN0ZWQsXG4gICAgICAkZXhwYW5kZWQsXG4gICAgICAkc3RyaXBlZCxcbiAgICAgICR2YXJpYW50TGlzdCxcbiAgICAgICR2YXJpYW50TGlzdEhlYWQsXG4gICAgICAkc3RyaXBlZENvbG9yLFxuICAgICAgJHR5cGUsXG4gICAgfToge1xuICAgICAgJGhvdmVyOiBib29sZWFuO1xuICAgICAgJHNlbGVjdGVkOiBib29sZWFuO1xuICAgICAgJGV4cGFuZGVkOiBib29sZWFuO1xuICAgICAgJHN0cmlwZWQ6IGJvb2xlYW47XG4gICAgICAkdmFyaWFudExpc3Q6IGJvb2xlYW47XG4gICAgICAkdmFyaWFudExpc3RIZWFkOiBib29sZWFuO1xuICAgICAgJHR5cGU6IHN0cmluZztcbiAgICAgICRzdHJpcGVkQ29sb3I6IHN0cmluZztcbiAgICB9KSA9PiAoe1xuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS50YWJsZS5yb3dCYWNrZ3JvdW5kQ29sb3IsXG4gICAgICBjb2xvcjogXCJpbmhlcml0XCIsXG4gICAgICB2ZXJ0aWNhbEFsaWduOiBcIm1pZGRsZVwiLFxuICAgICAgb3V0bGluZTogMCxcbiAgICAgIG1pbkhlaWdodDogMzIsXG4gICAgICBcInRyJlwiOiB7XG4gICAgICAgIGhlaWdodDogMzIsXG4gICAgICB9LFxuXG4gICAgICBcIjpob3ZlclwiOiB7XG4gICAgICAgIC4uLigkdHlwZSA9PT0gXCJib2R5XCIgJiYge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUudGFibGUucm93SG92ZXJDb2xvcixcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgICAgLi4uKCRob3ZlciAmJiB7XG4gICAgICAgIHRyYW5zaXRpb246IFwiYmFja2dyb3VuZC1jb2xvciAxNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIDBtc1wiLFxuICAgICAgICBcIiY6aG92ZXJcIjoge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUudGFibGUucm93SG92ZXJDb2xvcixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgLi4uKCRzZWxlY3RlZCAmJiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUudGFibGUuc2VsZWN0ZWRSb3dCYWNrZ3JvdW5kQ29sb3IsXG4gICAgICB9KSxcbiAgICAgIC4uLigkZXhwYW5kZWQgJiYge1xuICAgICAgICBcIiYgPiAqW3JvbGU9Y2VsbF1cIjoge1xuICAgICAgICAgIGJvcmRlckJvdHRvbTogXCJub25lXCIsXG4gICAgICAgIH0sXG4gICAgICAgIFtgJi4ke3RhYmxlUm93Q2xhc3Nlcy5leHBhbmRlZH1gXToge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLmF0bW8xLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICAuLi4oJHN0cmlwZWQgJiYge1xuICAgICAgICBcIiY6bnRoLW9mLXR5cGUoZXZlbilcIjoge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJHN0cmlwZWRDb2xvcixcbiAgICAgICAgICBcIiY6aG92ZXJcIjoge1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS50YWJsZS5yb3dIb3ZlckNvbG9yLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcblxuICAgICAgLy8gdHlwZVxuICAgICAgLi4uKCR0eXBlID09PSBcImhlYWRcIiAmJiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgICBcIiY6Zmlyc3Qtb2YtdHlwZVwiOiB7XG4gICAgICAgICAgaGVpZ2h0OiA1MixcbiAgICAgICAgfSxcblxuICAgICAgICBcInRyJjpmaXJzdC1vZi10eXBlXCI6IHtcbiAgICAgICAgICBoZWlnaHQ6IDUyLFxuICAgICAgICB9LFxuICAgICAgfSksXG5cbiAgICAgIC4uLigkdmFyaWFudExpc3QgJiYge1xuICAgICAgICBib3JkZXJCb3R0b206IDAsXG4gICAgICAgIC4uLighJHNlbGVjdGVkICYmIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5hdG1vMSxcbiAgICAgICAgfSksXG4gICAgICAgIGhlaWdodDogNTIsXG4gICAgICAgIFwiJjpob3ZlclwiOiB7XG4gICAgICAgICAgLi4uZ2V0Qm9yZGVyU3R5bGVzKFwicm93XCIsIHRoZW1lLnRhYmxlLnJvd0hvdmVyQm9yZGVyQ29sb3IpLFxuICAgICAgICB9LFxuICAgICAgICBbYCYuJHt0YWJsZVJvd0NsYXNzZXMuc2VsZWN0ZWR9YF06IHtcbiAgICAgICAgICAuLi5nZXRCb3JkZXJTdHlsZXMoXCJyb3dcIiwgdGhlbWUuY29sb3JzLmFjY2UxKSxcblxuICAgICAgICAgIFwiJjpob3ZlclwiOiB7XG4gICAgICAgICAgICAuLi5nZXRCb3JkZXJTdHlsZXMoXCJyb3dcIiwgdGhlbWUudGFibGUucm93SG92ZXJCb3JkZXJDb2xvciksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgLi4uKCR2YXJpYW50TGlzdEhlYWQgJiYge1xuICAgICAgICBoZWlnaHQ6IDE2LFxuICAgICAgICBcIiY6Zmlyc3Qtb2YtdHlwZVwiOiB7XG4gICAgICAgICAgaGVpZ2h0OiAxNixcbiAgICAgICAgfSxcblxuICAgICAgICBcInRyJjpmaXJzdC1vZi10eXBlXCI6IHtcbiAgICAgICAgICBoZWlnaHQ6IDE2LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSlcbiAgKTtcblxuLyoqXG4gKiBgSHZUYWJsZVJvd2AgYWN0cyBhcyBhIGB0cmAgZWxlbWVudCBhbmQgaW5oZXJpdHMgc3R5bGVzIGZyb20gaXRzIGNvbnRleHRcbiAqL1xuZXhwb3J0IGNvbnN0IEh2VGFibGVSb3cgPSBmb3J3YXJkUmVmPEhUTUxFbGVtZW50LCBIdlRhYmxlUm93UHJvcHM+KFxuICAoXG4gICAge1xuICAgICAgY2xhc3NlcyxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNvbXBvbmVudCxcbiAgICAgIGhvdmVyID0gZmFsc2UsXG4gICAgICBzZWxlY3RlZCA9IGZhbHNlLFxuICAgICAgZXhwYW5kZWQgPSBmYWxzZSxcbiAgICAgIHN0cmlwZWQgPSBmYWxzZSxcbiAgICAgIC4uLm90aGVyc1xuICAgIH0sXG4gICAgZXh0ZXJuYWxSZWZcbiAgKSA9PiB7XG4gICAgY29uc3QgeyBhY3RpdmVUaGVtZSwgc2VsZWN0ZWRNb2RlIH0gPSB1c2VUaGVtZSgpO1xuICAgIGNvbnN0IHRhYmxlQ29udGV4dCA9IHVzZUNvbnRleHQoVGFibGVDb250ZXh0KTtcbiAgICBjb25zdCB0YWJsZVNlY3Rpb25Db250ZXh0ID0gdXNlQ29udGV4dChUYWJsZVNlY3Rpb25Db250ZXh0KTtcblxuICAgIGNvbnN0IHR5cGUgPSB0YWJsZVNlY3Rpb25Db250ZXh0Py50eXBlIHx8IFwiYm9keVwiO1xuXG4gICAgY29uc3QgaXNMaXN0ID0gdGFibGVDb250ZXh0LnZhcmlhbnQgPT09IFwibGlzdHJvd1wiO1xuXG4gICAgY29uc3QgQ29tcG9uZW50ID1cbiAgICAgIGNvbXBvbmVudCB8fCB0YWJsZUNvbnRleHQ/LmNvbXBvbmVudHM/LlRyIHx8IGRlZmF1bHRDb21wb25lbnQ7XG5cbiAgICBjb25zdCBUYWJsZVJvdyA9IHVzZU1lbW8oKCkgPT4gU3R5bGVkVGFibGVSb3coQ29tcG9uZW50KSwgW0NvbXBvbmVudF0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUYWJsZVJvd1xuICAgICAgICByZWY9e2V4dGVybmFsUmVmfVxuICAgICAgICBjbGFzc05hbWU9e2Nsc3goXG4gICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgIHRhYmxlU2VjdGlvbkNvbnRleHQuZmlsdGVyQ2xhc3NOYW1lLFxuICAgICAgICAgIHRhYmxlUm93Q2xhc3Nlcy5yb290LFxuICAgICAgICAgIGNsYXNzZXM/LnJvb3QsXG4gICAgICAgICAgdGFibGVSb3dDbGFzc2VzW3R5cGVdLFxuICAgICAgICAgIGNsYXNzZXM/Llt0eXBlXSxcbiAgICAgICAgICBob3ZlciAmJiBjbHN4KHRhYmxlUm93Q2xhc3Nlcy5ob3ZlciwgY2xhc3Nlcz8uaG92ZXIpLFxuICAgICAgICAgIHNlbGVjdGVkICYmIGNsc3godGFibGVSb3dDbGFzc2VzLnNlbGVjdGVkLCBjbGFzc2VzPy5zZWxlY3RlZCksXG4gICAgICAgICAgZXhwYW5kZWQgJiYgY2xzeCh0YWJsZVJvd0NsYXNzZXMuZXhwYW5kZWQsIGNsYXNzZXM/LmV4cGFuZGVkKSxcbiAgICAgICAgICBzdHJpcGVkICYmIGNsc3godGFibGVSb3dDbGFzc2VzLnN0cmlwZWQsIGNsYXNzZXM/LnN0cmlwZWQpLFxuICAgICAgICAgIGlzTGlzdCAmJlxuICAgICAgICAgICAgdHlwZSA9PT0gXCJib2R5XCIgJiZcbiAgICAgICAgICAgIGNsc3godGFibGVSb3dDbGFzc2VzLnZhcmlhbnRMaXN0LCBjbGFzc2VzPy52YXJpYW50TGlzdCksXG4gICAgICAgICAgaXNMaXN0ICYmXG4gICAgICAgICAgICB0eXBlID09PSBcImhlYWRcIiAmJlxuICAgICAgICAgICAgY2xzeCh0YWJsZVJvd0NsYXNzZXMudmFyaWFudExpc3RIZWFkLCBjbGFzc2VzPy52YXJpYW50TGlzdEhlYWQpXG4gICAgICAgICl9XG4gICAgICAgIHJvbGU9e0NvbXBvbmVudCA9PT0gZGVmYXVsdENvbXBvbmVudCA/IG51bGwgOiBcInJvd1wifVxuICAgICAgICAkaG92ZXI9e2hvdmVyfVxuICAgICAgICAkc2VsZWN0ZWQ9e3NlbGVjdGVkfVxuICAgICAgICAkZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAkc3RyaXBlZD17c3RyaXBlZH1cbiAgICAgICAgJHZhcmlhbnRMaXN0PXtpc0xpc3QgJiYgdHlwZSA9PT0gXCJib2R5XCJ9XG4gICAgICAgICR2YXJpYW50TGlzdEhlYWQ9e2lzTGlzdCAmJiB0eXBlID09PSBcImhlYWRcIn1cbiAgICAgICAgJHR5cGU9e3R5cGV9XG4gICAgICAgICRzdHJpcGVkQ29sb3I9e2FscGhhKFxuICAgICAgICAgIGhleFRvUmdiKFxuICAgICAgICAgICAgYWN0aXZlVGhlbWU/LmNvbG9ycz8ubW9kZXNbc2VsZWN0ZWRNb2RlXS5hdG1vMSB8fCB0aGVtZS5jb2xvcnMuYXRtbzFcbiAgICAgICAgICApLFxuICAgICAgICAgIDAuNlxuICAgICAgICApfVxuICAgICAgICB7Li4ub3RoZXJzfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuIl19 */");
124
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvVGFibGUvVGFibGVSb3cvVGFibGVSb3cudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlDRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL1RhYmxlL1RhYmxlUm93L1RhYmxlUm93LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjbHN4IGZyb20gXCJjbHN4XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IGhleFRvUmdiLCBhbHBoYSB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5pbXBvcnQgeyBIdkJhc2VQcm9wcyB9IGZyb20gXCIuLi8uLi8uLi90eXBlcy9pbmRleFwiO1xuaW1wb3J0IHsgdGFibGVSb3dDbGFzc2VzLCBIdlRhYmxlUm93Q2xhc3NlcyB9IGZyb20gXCIuXCI7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgVGFibGVDb250ZXh0IGZyb20gXCIuLi9UYWJsZUNvbnRleHRcIjtcbmltcG9ydCB7IHRyYW5zaWVudE9wdGlvbnMgfSBmcm9tIFwidXRpbHMvdHJhbnNpZW50T3B0aW9uc1wiO1xuaW1wb3J0IFRhYmxlU2VjdGlvbkNvbnRleHQgZnJvbSBcIi4uL1RhYmxlU2VjdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1zdHlsZXNcIjtcbmltcG9ydCB7IGdldEJvcmRlclN0eWxlcyB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tIFwiaG9va3NcIjtcblxuZXhwb3J0IHR5cGUgSHZUYWJsZVJvd1Byb3BzID0gT21pdDxIdkJhc2VQcm9wcywgXCJjaGlsZHJlblwiPiAmIHtcbiAgLyoqIENvbnRlbnQgdG8gYmUgcmVuZGVyZWQgKi9cbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqIFRoZSBjb21wb25lbnQgdXNlZCBmb3IgdGhlIHJvb3Qgbm9kZS4gRWl0aGVyIGEgc3RyaW5nIHRvIHVzZSBhIEhUTUwgZWxlbWVudCBvciBhIGNvbXBvbmVudC4gRGVmYXVsdHMgdG8gdGJvZHkuICovXG4gIGNvbXBvbmVudD86IFJlYWN0LkVsZW1lbnRUeXBlO1xuICAvKiogV2hldGhlciB0aGUgdGFibGUgcm93IHdpbGwgc2hhZGUgb24gaG92ZXIuICovXG4gIGhvdmVyPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdGhlIHRhYmxlIHJvdyB3aWxsIGhhdmUgdGhlIHNlbGVjdGVkIHNoYWRpbmcuICovXG4gIHNlbGVjdGVkPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdGhlIHRhYmxlIHJvdyBpcyBleHBhbmRlZC4gKi9cbiAgZXhwYW5kZWQ/OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGUgdGFibGUgcm93IGJhY2tncm91bmQgaXMgc3RyaXBlZC4gKi9cbiAgc3RyaXBlZD86IGJvb2xlYW47XG4gIC8qKiBBIEpzcyBPYmplY3QgdXNlZCB0byBvdmVycmlkZSBvciBleHRlbmQgdGhlIHN0eWxlcyBhcHBsaWVkIHRvIHRoZSBjb21wb25lbnQuICovXG4gIGNsYXNzZXM/OiBIdlRhYmxlUm93Q2xhc3Nlcztcbn07XG5cbmNvbnN0IGRlZmF1bHRDb21wb25lbnQgPSBcInRyXCI7XG5cbmNvbnN0IFN0eWxlZFRhYmxlUm93ID0gKGM6IGFueSkgPT5cbiAgc3R5bGVkKFxuICAgIGMsXG4gICAgdHJhbnNpZW50T3B0aW9uc1xuICApKFxuICAgICh7XG4gICAgICAkaG92ZXIsXG4gICAgICAkc2VsZWN0ZWQsXG4gICAgICAkZXhwYW5kZWQsXG4gICAgICAkc3RyaXBlZCxcbiAgICAgICR2YXJpYW50TGlzdCxcbiAgICAgICR2YXJpYW50TGlzdEhlYWQsXG4gICAgICAkc3RyaXBlZENvbG9yLFxuICAgICAgJHR5cGUsXG4gICAgfToge1xuICAgICAgJGhvdmVyOiBib29sZWFuO1xuICAgICAgJHNlbGVjdGVkOiBib29sZWFuO1xuICAgICAgJGV4cGFuZGVkOiBib29sZWFuO1xuICAgICAgJHN0cmlwZWQ6IGJvb2xlYW47XG4gICAgICAkdmFyaWFudExpc3Q6IGJvb2xlYW47XG4gICAgICAkdmFyaWFudExpc3RIZWFkOiBib29sZWFuO1xuICAgICAgJHR5cGU6IHN0cmluZztcbiAgICAgICRzdHJpcGVkQ29sb3I6IHN0cmluZztcbiAgICB9KSA9PiAoe1xuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS50YWJsZS5yb3dCYWNrZ3JvdW5kQ29sb3IsXG4gICAgICBjb2xvcjogXCJpbmhlcml0XCIsXG4gICAgICB2ZXJ0aWNhbEFsaWduOiBcIm1pZGRsZVwiLFxuICAgICAgb3V0bGluZTogMCxcbiAgICAgIG1pbkhlaWdodDogMzIsXG4gICAgICBcInRyJlwiOiB7XG4gICAgICAgIGhlaWdodDogMzIsXG4gICAgICB9LFxuXG4gICAgICBcIjpob3ZlclwiOiB7XG4gICAgICAgIC4uLigkdHlwZSA9PT0gXCJib2R5XCIgJiYge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUudGFibGUucm93SG92ZXJDb2xvcixcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgICAgLi4uKCRob3ZlciAmJiB7XG4gICAgICAgIHRyYW5zaXRpb246IFwiYmFja2dyb3VuZC1jb2xvciAxNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIDBtc1wiLFxuICAgICAgICBcIiY6aG92ZXJcIjoge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUudGFibGUucm93SG92ZXJDb2xvcixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgLi4uKCRzZWxlY3RlZCAmJiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUudGFibGUuc2VsZWN0ZWRSb3dCYWNrZ3JvdW5kQ29sb3IsXG4gICAgICB9KSxcbiAgICAgIC4uLigkZXhwYW5kZWQgJiYge1xuICAgICAgICBcIiYgPiAqW3JvbGU9Y2VsbF1cIjoge1xuICAgICAgICAgIGJvcmRlckJvdHRvbTogXCJub25lXCIsXG4gICAgICAgIH0sXG4gICAgICAgIFtgJi4ke3RhYmxlUm93Q2xhc3Nlcy5leHBhbmRlZH1gXToge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLmF0bW8xLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICAuLi4oJHN0cmlwZWQgJiYge1xuICAgICAgICBcIiY6bnRoLW9mLXR5cGUoZXZlbilcIjoge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJHN0cmlwZWRDb2xvcixcbiAgICAgICAgICBcIiY6aG92ZXJcIjoge1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS50YWJsZS5yb3dIb3ZlckNvbG9yLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcblxuICAgICAgLy8gdHlwZVxuICAgICAgLi4uKCR0eXBlID09PSBcImhlYWRcIiAmJiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgICBcIiY6Zmlyc3Qtb2YtdHlwZVwiOiB7XG4gICAgICAgICAgaGVpZ2h0OiA1MixcbiAgICAgICAgfSxcblxuICAgICAgICBcInRyJjpmaXJzdC1vZi10eXBlXCI6IHtcbiAgICAgICAgICBoZWlnaHQ6IDUyLFxuICAgICAgICB9LFxuICAgICAgfSksXG5cbiAgICAgIC4uLigkdmFyaWFudExpc3QgJiYge1xuICAgICAgICBib3JkZXJCb3R0b206IDAsXG4gICAgICAgIC4uLighJHNlbGVjdGVkICYmIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5hdG1vMSxcbiAgICAgICAgfSksXG4gICAgICAgIGhlaWdodDogNTIsXG4gICAgICAgIFwiJjpob3ZlclwiOiB7XG4gICAgICAgICAgLi4uZ2V0Qm9yZGVyU3R5bGVzKFwicm93XCIsIHRoZW1lLnRhYmxlLnJvd0hvdmVyQm9yZGVyQ29sb3IpLFxuICAgICAgICB9LFxuICAgICAgICBbYCYuJHt0YWJsZVJvd0NsYXNzZXMuc2VsZWN0ZWR9YF06IHtcbiAgICAgICAgICAuLi5nZXRCb3JkZXJTdHlsZXMoXCJyb3dcIiwgdGhlbWUuY29sb3JzLmFjY2UxKSxcblxuICAgICAgICAgIFwiJjpob3ZlclwiOiB7XG4gICAgICAgICAgICAuLi5nZXRCb3JkZXJTdHlsZXMoXCJyb3dcIiwgdGhlbWUudGFibGUucm93SG92ZXJCb3JkZXJDb2xvciksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgLi4uKCR2YXJpYW50TGlzdEhlYWQgJiYge1xuICAgICAgICBoZWlnaHQ6IDE2LFxuICAgICAgICBcIiY6Zmlyc3Qtb2YtdHlwZVwiOiB7XG4gICAgICAgICAgaGVpZ2h0OiAxNixcbiAgICAgICAgfSxcblxuICAgICAgICBcInRyJjpmaXJzdC1vZi10eXBlXCI6IHtcbiAgICAgICAgICBoZWlnaHQ6IDE2LFxuICAgICAgICB9LFxuICAgICAgfSksXG5cbiAgICAgIFwiJi5IdklzRm9jdXNlZFwiOiB7XG4gICAgICAgIGJvcmRlclJhZGl1czogdGhlbWUudGFibGUucm93Qm9yZGVyUmFkaXVzLFxuICAgICAgfSxcbiAgICB9KVxuICApO1xuXG4vKipcbiAqIGBIdlRhYmxlUm93YCBhY3RzIGFzIGEgYHRyYCBlbGVtZW50IGFuZCBpbmhlcml0cyBzdHlsZXMgZnJvbSBpdHMgY29udGV4dFxuICovXG5leHBvcnQgY29uc3QgSHZUYWJsZVJvdyA9IGZvcndhcmRSZWY8SFRNTEVsZW1lbnQsIEh2VGFibGVSb3dQcm9wcz4oXG4gIChcbiAgICB7XG4gICAgICBjbGFzc2VzLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29tcG9uZW50LFxuICAgICAgaG92ZXIgPSBmYWxzZSxcbiAgICAgIHNlbGVjdGVkID0gZmFsc2UsXG4gICAgICBleHBhbmRlZCA9IGZhbHNlLFxuICAgICAgc3RyaXBlZCA9IGZhbHNlLFxuICAgICAgLi4ub3RoZXJzXG4gICAgfSxcbiAgICBleHRlcm5hbFJlZlxuICApID0+IHtcbiAgICBjb25zdCB7IGFjdGl2ZVRoZW1lLCBzZWxlY3RlZE1vZGUgfSA9IHVzZVRoZW1lKCk7XG4gICAgY29uc3QgdGFibGVDb250ZXh0ID0gdXNlQ29udGV4dChUYWJsZUNvbnRleHQpO1xuICAgIGNvbnN0IHRhYmxlU2VjdGlvbkNvbnRleHQgPSB1c2VDb250ZXh0KFRhYmxlU2VjdGlvbkNvbnRleHQpO1xuXG4gICAgY29uc3QgdHlwZSA9IHRhYmxlU2VjdGlvbkNvbnRleHQ/LnR5cGUgfHwgXCJib2R5XCI7XG5cbiAgICBjb25zdCBpc0xpc3QgPSB0YWJsZUNvbnRleHQudmFyaWFudCA9PT0gXCJsaXN0cm93XCI7XG5cbiAgICBjb25zdCBDb21wb25lbnQgPVxuICAgICAgY29tcG9uZW50IHx8IHRhYmxlQ29udGV4dD8uY29tcG9uZW50cz8uVHIgfHwgZGVmYXVsdENvbXBvbmVudDtcblxuICAgIGNvbnN0IFRhYmxlUm93ID0gdXNlTWVtbygoKSA9PiBTdHlsZWRUYWJsZVJvdyhDb21wb25lbnQpLCBbQ29tcG9uZW50XSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFRhYmxlUm93XG4gICAgICAgIHJlZj17ZXh0ZXJuYWxSZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xzeChcbiAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgdGFibGVTZWN0aW9uQ29udGV4dC5maWx0ZXJDbGFzc05hbWUsXG4gICAgICAgICAgdGFibGVSb3dDbGFzc2VzLnJvb3QsXG4gICAgICAgICAgY2xhc3Nlcz8ucm9vdCxcbiAgICAgICAgICB0YWJsZVJvd0NsYXNzZXNbdHlwZV0sXG4gICAgICAgICAgY2xhc3Nlcz8uW3R5cGVdLFxuICAgICAgICAgIGhvdmVyICYmIGNsc3godGFibGVSb3dDbGFzc2VzLmhvdmVyLCBjbGFzc2VzPy5ob3ZlciksXG4gICAgICAgICAgc2VsZWN0ZWQgJiYgY2xzeCh0YWJsZVJvd0NsYXNzZXMuc2VsZWN0ZWQsIGNsYXNzZXM/LnNlbGVjdGVkKSxcbiAgICAgICAgICBleHBhbmRlZCAmJiBjbHN4KHRhYmxlUm93Q2xhc3Nlcy5leHBhbmRlZCwgY2xhc3Nlcz8uZXhwYW5kZWQpLFxuICAgICAgICAgIHN0cmlwZWQgJiYgY2xzeCh0YWJsZVJvd0NsYXNzZXMuc3RyaXBlZCwgY2xhc3Nlcz8uc3RyaXBlZCksXG4gICAgICAgICAgaXNMaXN0ICYmXG4gICAgICAgICAgICB0eXBlID09PSBcImJvZHlcIiAmJlxuICAgICAgICAgICAgY2xzeCh0YWJsZVJvd0NsYXNzZXMudmFyaWFudExpc3QsIGNsYXNzZXM/LnZhcmlhbnRMaXN0KSxcbiAgICAgICAgICBpc0xpc3QgJiZcbiAgICAgICAgICAgIHR5cGUgPT09IFwiaGVhZFwiICYmXG4gICAgICAgICAgICBjbHN4KHRhYmxlUm93Q2xhc3Nlcy52YXJpYW50TGlzdEhlYWQsIGNsYXNzZXM/LnZhcmlhbnRMaXN0SGVhZClcbiAgICAgICAgKX1cbiAgICAgICAgcm9sZT17Q29tcG9uZW50ID09PSBkZWZhdWx0Q29tcG9uZW50ID8gbnVsbCA6IFwicm93XCJ9XG4gICAgICAgICRob3Zlcj17aG92ZXJ9XG4gICAgICAgICRzZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICRleHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICAgICRzdHJpcGVkPXtzdHJpcGVkfVxuICAgICAgICAkdmFyaWFudExpc3Q9e2lzTGlzdCAmJiB0eXBlID09PSBcImJvZHlcIn1cbiAgICAgICAgJHZhcmlhbnRMaXN0SGVhZD17aXNMaXN0ICYmIHR5cGUgPT09IFwiaGVhZFwifVxuICAgICAgICAkdHlwZT17dHlwZX1cbiAgICAgICAgJHN0cmlwZWRDb2xvcj17YWxwaGEoXG4gICAgICAgICAgaGV4VG9SZ2IoXG4gICAgICAgICAgICBhY3RpdmVUaGVtZT8uY29sb3JzPy5tb2Rlc1tzZWxlY3RlZE1vZGVdLmF0bW8xIHx8IHRoZW1lLmNvbG9ycy5hdG1vMVxuICAgICAgICAgICksXG4gICAgICAgICAgMC42XG4gICAgICAgICl9XG4gICAgICAgIHsuLi5vdGhlcnN9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbik7XG4iXX0= */");
122
125
  const HvTableRow = React.forwardRef(({
123
126
  classes,
124
127
  className,
@@ -1 +1 @@
1
- {"version":3,"file":"TableRow.cjs","sources":["../../../../../src/components/Table/TableRow/TableRow.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport styled from \"@emotion/styled\";\nimport { hexToRgb, alpha } from \"@mui/material\";\nimport { HvBaseProps } from \"../../../types/index\";\nimport { tableRowClasses, HvTableRowClasses } from \".\";\nimport { forwardRef, useContext, useMemo } from \"react\";\nimport TableContext from \"../TableContext\";\nimport { transientOptions } from \"utils/transientOptions\";\nimport TableSectionContext from \"../TableSectionContext\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { getBorderStyles } from \"../utils/utils\";\nimport { useTheme } from \"hooks\";\n\nexport type HvTableRowProps = Omit<HvBaseProps, \"children\"> & {\n /** Content to be rendered */\n children: React.ReactNode;\n /** The component used for the root node. Either a string to use a HTML element or a component. Defaults to tbody. */\n component?: React.ElementType;\n /** Whether the table row will shade on hover. */\n hover?: boolean;\n /** Whether the table row will have the selected shading. */\n selected?: boolean;\n /** Whether the table row is expanded. */\n expanded?: boolean;\n /** Whether the table row background is striped. */\n striped?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvTableRowClasses;\n};\n\nconst defaultComponent = \"tr\";\n\nconst StyledTableRow = (c: any) =>\n styled(\n c,\n transientOptions\n )(\n ({\n $hover,\n $selected,\n $expanded,\n $striped,\n $variantList,\n $variantListHead,\n $stripedColor,\n $type,\n }: {\n $hover: boolean;\n $selected: boolean;\n $expanded: boolean;\n $striped: boolean;\n $variantList: boolean;\n $variantListHead: boolean;\n $type: string;\n $stripedColor: string;\n }) => ({\n backgroundColor: theme.table.rowBackgroundColor,\n color: \"inherit\",\n verticalAlign: \"middle\",\n outline: 0,\n minHeight: 32,\n \"tr&\": {\n height: 32,\n },\n\n \":hover\": {\n ...($type === \"body\" && {\n backgroundColor: theme.table.rowHoverColor,\n }),\n },\n ...($hover && {\n transition: \"background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms\",\n \"&:hover\": {\n backgroundColor: theme.table.rowHoverColor,\n },\n }),\n ...($selected && {\n backgroundColor: theme.table.selectedRowBackgroundColor,\n }),\n ...($expanded && {\n \"& > *[role=cell]\": {\n borderBottom: \"none\",\n },\n [`&.${tableRowClasses.expanded}`]: {\n backgroundColor: theme.colors.atmo1,\n },\n }),\n ...($striped && {\n \"&:nth-of-type(even)\": {\n backgroundColor: $stripedColor,\n \"&:hover\": {\n backgroundColor: theme.table.rowHoverColor,\n },\n },\n }),\n\n // type\n ...($type === \"head\" && {\n backgroundColor: \"transparent\",\n \"&:first-of-type\": {\n height: 52,\n },\n\n \"tr&:first-of-type\": {\n height: 52,\n },\n }),\n\n ...($variantList && {\n borderBottom: 0,\n ...(!$selected && {\n backgroundColor: theme.colors.atmo1,\n }),\n height: 52,\n \"&:hover\": {\n ...getBorderStyles(\"row\", theme.table.rowHoverBorderColor),\n },\n [`&.${tableRowClasses.selected}`]: {\n ...getBorderStyles(\"row\", theme.colors.acce1),\n\n \"&:hover\": {\n ...getBorderStyles(\"row\", theme.table.rowHoverBorderColor),\n },\n },\n }),\n ...($variantListHead && {\n height: 16,\n \"&:first-of-type\": {\n height: 16,\n },\n\n \"tr&:first-of-type\": {\n height: 16,\n },\n }),\n })\n );\n\n/**\n * `HvTableRow` acts as a `tr` element and inherits styles from its context\n */\nexport const HvTableRow = forwardRef<HTMLElement, HvTableRowProps>(\n (\n {\n classes,\n className,\n component,\n hover = false,\n selected = false,\n expanded = false,\n striped = false,\n ...others\n },\n externalRef\n ) => {\n const { activeTheme, selectedMode } = useTheme();\n const tableContext = useContext(TableContext);\n const tableSectionContext = useContext(TableSectionContext);\n\n const type = tableSectionContext?.type || \"body\";\n\n const isList = tableContext.variant === \"listrow\";\n\n const Component =\n component || tableContext?.components?.Tr || defaultComponent;\n\n const TableRow = useMemo(() => StyledTableRow(Component), [Component]);\n\n return (\n <TableRow\n ref={externalRef}\n className={clsx(\n className,\n tableSectionContext.filterClassName,\n tableRowClasses.root,\n classes?.root,\n tableRowClasses[type],\n classes?.[type],\n hover && clsx(tableRowClasses.hover, classes?.hover),\n selected && clsx(tableRowClasses.selected, classes?.selected),\n expanded && clsx(tableRowClasses.expanded, classes?.expanded),\n striped && clsx(tableRowClasses.striped, classes?.striped),\n isList &&\n type === \"body\" &&\n clsx(tableRowClasses.variantList, classes?.variantList),\n isList &&\n type === \"head\" &&\n clsx(tableRowClasses.variantListHead, classes?.variantListHead)\n )}\n role={Component === defaultComponent ? null : \"row\"}\n $hover={hover}\n $selected={selected}\n $expanded={expanded}\n $striped={striped}\n $variantList={isList && type === \"body\"}\n $variantListHead={isList && type === \"head\"}\n $type={type}\n $stripedColor={alpha(\n hexToRgb(\n activeTheme?.colors?.modes[selectedMode].atmo1 || theme.colors.atmo1\n ),\n 0.6\n )}\n {...others}\n />\n );\n }\n);\n"],"names":["defaultComponent","StyledTableRow","c","process","env","NODE_ENV","_extends","target","transientOptions","label","$hover","$selected","$expanded","$striped","$variantList","$variantListHead","$stripedColor","$type","backgroundColor","theme","table","rowBackgroundColor","color","verticalAlign","outline","minHeight","height","rowHoverColor","transition","selectedRowBackgroundColor","borderBottom","tableRowClasses","expanded","colors","atmo1","getBorderStyles","rowHoverBorderColor","selected","acce1","HvTableRow","forwardRef","classes","className","component","hover","striped","others","externalRef","activeTheme","selectedMode","useTheme","tableContext","useContext","TableContext","tableSectionContext","TableSectionContext","type","isList","variant","Component","components","Tr","TableRow","useMemo","ref","clsx","filterClassName","root","variantList","variantListHead","role","alpha","hexToRgb","modes"],"mappings":"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"}
1
+ {"version":3,"file":"TableRow.cjs","sources":["../../../../../src/components/Table/TableRow/TableRow.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport styled from \"@emotion/styled\";\nimport { hexToRgb, alpha } from \"@mui/material\";\nimport { HvBaseProps } from \"../../../types/index\";\nimport { tableRowClasses, HvTableRowClasses } from \".\";\nimport { forwardRef, useContext, useMemo } from \"react\";\nimport TableContext from \"../TableContext\";\nimport { transientOptions } from \"utils/transientOptions\";\nimport TableSectionContext from \"../TableSectionContext\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { getBorderStyles } from \"../utils/utils\";\nimport { useTheme } from \"hooks\";\n\nexport type HvTableRowProps = Omit<HvBaseProps, \"children\"> & {\n /** Content to be rendered */\n children: React.ReactNode;\n /** The component used for the root node. Either a string to use a HTML element or a component. Defaults to tbody. */\n component?: React.ElementType;\n /** Whether the table row will shade on hover. */\n hover?: boolean;\n /** Whether the table row will have the selected shading. */\n selected?: boolean;\n /** Whether the table row is expanded. */\n expanded?: boolean;\n /** Whether the table row background is striped. */\n striped?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvTableRowClasses;\n};\n\nconst defaultComponent = \"tr\";\n\nconst StyledTableRow = (c: any) =>\n styled(\n c,\n transientOptions\n )(\n ({\n $hover,\n $selected,\n $expanded,\n $striped,\n $variantList,\n $variantListHead,\n $stripedColor,\n $type,\n }: {\n $hover: boolean;\n $selected: boolean;\n $expanded: boolean;\n $striped: boolean;\n $variantList: boolean;\n $variantListHead: boolean;\n $type: string;\n $stripedColor: string;\n }) => ({\n backgroundColor: theme.table.rowBackgroundColor,\n color: \"inherit\",\n verticalAlign: \"middle\",\n outline: 0,\n minHeight: 32,\n \"tr&\": {\n height: 32,\n },\n\n \":hover\": {\n ...($type === \"body\" && {\n backgroundColor: theme.table.rowHoverColor,\n }),\n },\n ...($hover && {\n transition: \"background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms\",\n \"&:hover\": {\n backgroundColor: theme.table.rowHoverColor,\n },\n }),\n ...($selected && {\n backgroundColor: theme.table.selectedRowBackgroundColor,\n }),\n ...($expanded && {\n \"& > *[role=cell]\": {\n borderBottom: \"none\",\n },\n [`&.${tableRowClasses.expanded}`]: {\n backgroundColor: theme.colors.atmo1,\n },\n }),\n ...($striped && {\n \"&:nth-of-type(even)\": {\n backgroundColor: $stripedColor,\n \"&:hover\": {\n backgroundColor: theme.table.rowHoverColor,\n },\n },\n }),\n\n // type\n ...($type === \"head\" && {\n backgroundColor: \"transparent\",\n \"&:first-of-type\": {\n height: 52,\n },\n\n \"tr&:first-of-type\": {\n height: 52,\n },\n }),\n\n ...($variantList && {\n borderBottom: 0,\n ...(!$selected && {\n backgroundColor: theme.colors.atmo1,\n }),\n height: 52,\n \"&:hover\": {\n ...getBorderStyles(\"row\", theme.table.rowHoverBorderColor),\n },\n [`&.${tableRowClasses.selected}`]: {\n ...getBorderStyles(\"row\", theme.colors.acce1),\n\n \"&:hover\": {\n ...getBorderStyles(\"row\", theme.table.rowHoverBorderColor),\n },\n },\n }),\n ...($variantListHead && {\n height: 16,\n \"&:first-of-type\": {\n height: 16,\n },\n\n \"tr&:first-of-type\": {\n height: 16,\n },\n }),\n\n \"&.HvIsFocused\": {\n borderRadius: theme.table.rowBorderRadius,\n },\n })\n );\n\n/**\n * `HvTableRow` acts as a `tr` element and inherits styles from its context\n */\nexport const HvTableRow = forwardRef<HTMLElement, HvTableRowProps>(\n (\n {\n classes,\n className,\n component,\n hover = false,\n selected = false,\n expanded = false,\n striped = false,\n ...others\n },\n externalRef\n ) => {\n const { activeTheme, selectedMode } = useTheme();\n const tableContext = useContext(TableContext);\n const tableSectionContext = useContext(TableSectionContext);\n\n const type = tableSectionContext?.type || \"body\";\n\n const isList = tableContext.variant === \"listrow\";\n\n const Component =\n component || tableContext?.components?.Tr || defaultComponent;\n\n const TableRow = useMemo(() => StyledTableRow(Component), [Component]);\n\n return (\n <TableRow\n ref={externalRef}\n className={clsx(\n className,\n tableSectionContext.filterClassName,\n tableRowClasses.root,\n classes?.root,\n tableRowClasses[type],\n classes?.[type],\n hover && clsx(tableRowClasses.hover, classes?.hover),\n selected && clsx(tableRowClasses.selected, classes?.selected),\n expanded && clsx(tableRowClasses.expanded, classes?.expanded),\n striped && clsx(tableRowClasses.striped, classes?.striped),\n isList &&\n type === \"body\" &&\n clsx(tableRowClasses.variantList, classes?.variantList),\n isList &&\n type === \"head\" &&\n clsx(tableRowClasses.variantListHead, classes?.variantListHead)\n )}\n role={Component === defaultComponent ? null : \"row\"}\n $hover={hover}\n $selected={selected}\n $expanded={expanded}\n $striped={striped}\n $variantList={isList && type === \"body\"}\n $variantListHead={isList && type === \"head\"}\n $type={type}\n $stripedColor={alpha(\n hexToRgb(\n activeTheme?.colors?.modes[selectedMode].atmo1 || theme.colors.atmo1\n ),\n 0.6\n )}\n {...others}\n />\n );\n }\n);\n"],"names":["defaultComponent","StyledTableRow","c","process","env","NODE_ENV","_extends","target","transientOptions","label","$hover","$selected","$expanded","$striped","$variantList","$variantListHead","$stripedColor","$type","backgroundColor","theme","table","rowBackgroundColor","color","verticalAlign","outline","minHeight","height","rowHoverColor","transition","selectedRowBackgroundColor","borderBottom","tableRowClasses","expanded","colors","atmo1","getBorderStyles","rowHoverBorderColor","selected","acce1","borderRadius","rowBorderRadius","HvTableRow","forwardRef","classes","className","component","hover","striped","others","externalRef","activeTheme","selectedMode","useTheme","tableContext","useContext","TableContext","tableSectionContext","TableSectionContext","type","isList","variant","Component","components","Tr","TableRow","useMemo","ref","clsx","filterClassName","root","variantList","variantListHead","role","alpha","hexToRgb","modes"],"mappings":"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"}
@@ -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