@hitachivantara/uikit-react-core 3.63.0 → 3.66.0

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 (172) hide show
  1. package/dist/AssetInventory/ListView/ListView.js +1 -1
  2. package/dist/AssetInventory/ListView/ListView.js.map +1 -1
  3. package/dist/Chart/Plot/Plot.d.ts +3 -3
  4. package/dist/SimpleGrid/SimpleGrid.d.ts +17 -0
  5. package/dist/SimpleGrid/SimpleGrid.js +73 -0
  6. package/dist/SimpleGrid/SimpleGrid.js.map +1 -0
  7. package/dist/SimpleGrid/index.d.ts +2 -0
  8. package/dist/SimpleGrid/index.js +16 -0
  9. package/dist/SimpleGrid/index.js.map +1 -0
  10. package/dist/SimpleGrid/styles.js +99 -0
  11. package/dist/SimpleGrid/styles.js.map +1 -0
  12. package/dist/Stack/Stack.d.ts +46 -0
  13. package/dist/Stack/Stack.js +195 -0
  14. package/dist/Stack/Stack.js.map +1 -0
  15. package/dist/Stack/index.d.ts +2 -0
  16. package/dist/Stack/index.js +16 -0
  17. package/dist/Stack/index.js.map +1 -0
  18. package/dist/Stack/styles.js +39 -0
  19. package/dist/Stack/styles.js.map +1 -0
  20. package/dist/TimePicker/PeriodPicker/PeriodPicker.js +112 -0
  21. package/dist/TimePicker/PeriodPicker/PeriodPicker.js.map +1 -0
  22. package/dist/TimePicker/PeriodPicker/index.js +21 -0
  23. package/dist/TimePicker/PeriodPicker/index.js.map +1 -0
  24. package/dist/TimePicker/PeriodPicker/styles.js +32 -0
  25. package/dist/TimePicker/PeriodPicker/styles.js.map +1 -0
  26. package/dist/TimePicker/TimePicker.d.ts +140 -0
  27. package/dist/TimePicker/TimePicker.js +748 -0
  28. package/dist/TimePicker/TimePicker.js.map +1 -0
  29. package/dist/TimePicker/UnitTimePicker/UnitTimePicker.js +243 -0
  30. package/dist/TimePicker/UnitTimePicker/UnitTimePicker.js.map +1 -0
  31. package/dist/TimePicker/UnitTimePicker/index.js +21 -0
  32. package/dist/TimePicker/UnitTimePicker/index.js.map +1 -0
  33. package/dist/TimePicker/UnitTimePicker/styles.js +75 -0
  34. package/dist/TimePicker/UnitTimePicker/styles.js.map +1 -0
  35. package/dist/TimePicker/enums.js +43 -0
  36. package/dist/TimePicker/enums.js.map +1 -0
  37. package/dist/TimePicker/index.d.ts +2 -0
  38. package/dist/TimePicker/index.js +16 -0
  39. package/dist/TimePicker/index.js.map +1 -0
  40. package/dist/TimePicker/styles.js +134 -0
  41. package/dist/TimePicker/styles.js.map +1 -0
  42. package/dist/TimePicker/timePickerConverter.js +90 -0
  43. package/dist/TimePicker/timePickerConverter.js.map +1 -0
  44. package/dist/TimePicker/timePickerFormatter.js +81 -0
  45. package/dist/TimePicker/timePickerFormatter.js.map +1 -0
  46. package/dist/TimePicker/timePickerUtils.js +36 -0
  47. package/dist/TimePicker/timePickerUtils.js.map +1 -0
  48. package/dist/index.d.ts +3 -0
  49. package/dist/index.js +9 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/legacy/AssetInventory/ListView/ListView.js +1 -1
  52. package/dist/legacy/AssetInventory/ListView/ListView.js.map +1 -1
  53. package/dist/legacy/Chart/Plot/Plot.d.ts +3 -3
  54. package/dist/legacy/SimpleGrid/SimpleGrid.d.ts +17 -0
  55. package/dist/legacy/SimpleGrid/SimpleGrid.js +59 -0
  56. package/dist/legacy/SimpleGrid/SimpleGrid.js.map +1 -0
  57. package/dist/legacy/SimpleGrid/index.d.ts +2 -0
  58. package/dist/legacy/SimpleGrid/index.js +2 -0
  59. package/dist/legacy/SimpleGrid/index.js.map +1 -0
  60. package/dist/legacy/SimpleGrid/styles.js +81 -0
  61. package/dist/legacy/SimpleGrid/styles.js.map +1 -0
  62. package/dist/legacy/Stack/Stack.d.ts +46 -0
  63. package/dist/legacy/Stack/Stack.js +156 -0
  64. package/dist/legacy/Stack/Stack.js.map +1 -0
  65. package/dist/legacy/Stack/index.d.ts +2 -0
  66. package/dist/legacy/Stack/index.js +2 -0
  67. package/dist/legacy/Stack/index.js.map +1 -0
  68. package/dist/legacy/Stack/styles.js +31 -0
  69. package/dist/legacy/Stack/styles.js.map +1 -0
  70. package/dist/legacy/TimePicker/PeriodPicker/PeriodPicker.js +78 -0
  71. package/dist/legacy/TimePicker/PeriodPicker/PeriodPicker.js.map +1 -0
  72. package/dist/legacy/TimePicker/PeriodPicker/index.js +7 -0
  73. package/dist/legacy/TimePicker/PeriodPicker/index.js.map +1 -0
  74. package/dist/legacy/TimePicker/PeriodPicker/styles.js +24 -0
  75. package/dist/legacy/TimePicker/PeriodPicker/styles.js.map +1 -0
  76. package/dist/legacy/TimePicker/TimePicker.d.ts +140 -0
  77. package/dist/legacy/TimePicker/TimePicker.js +696 -0
  78. package/dist/legacy/TimePicker/TimePicker.js.map +1 -0
  79. package/dist/legacy/TimePicker/UnitTimePicker/UnitTimePicker.js +206 -0
  80. package/dist/legacy/TimePicker/UnitTimePicker/UnitTimePicker.js.map +1 -0
  81. package/dist/legacy/TimePicker/UnitTimePicker/index.js +7 -0
  82. package/dist/legacy/TimePicker/UnitTimePicker/index.js.map +1 -0
  83. package/dist/legacy/TimePicker/UnitTimePicker/styles.js +58 -0
  84. package/dist/legacy/TimePicker/UnitTimePicker/styles.js.map +1 -0
  85. package/dist/legacy/TimePicker/enums.js +33 -0
  86. package/dist/legacy/TimePicker/enums.js.map +1 -0
  87. package/dist/legacy/TimePicker/index.d.ts +2 -0
  88. package/dist/legacy/TimePicker/index.js +2 -0
  89. package/dist/legacy/TimePicker/index.js.map +1 -0
  90. package/dist/legacy/TimePicker/styles.js +117 -0
  91. package/dist/legacy/TimePicker/styles.js.map +1 -0
  92. package/dist/legacy/TimePicker/timePickerConverter.js +71 -0
  93. package/dist/legacy/TimePicker/timePickerConverter.js.map +1 -0
  94. package/dist/legacy/TimePicker/timePickerFormatter.js +66 -0
  95. package/dist/legacy/TimePicker/timePickerFormatter.js.map +1 -0
  96. package/dist/legacy/TimePicker/timePickerUtils.js +27 -0
  97. package/dist/legacy/TimePicker/timePickerUtils.js.map +1 -0
  98. package/dist/legacy/index.d.ts +3 -0
  99. package/dist/legacy/index.js +1 -0
  100. package/dist/legacy/index.js.map +1 -1
  101. package/dist/modern/AssetInventory/AssetInventory.js +1 -0
  102. package/dist/modern/AssetInventory/AssetInventory.js.map +1 -1
  103. package/dist/modern/AssetInventory/ListView/ListView.js +2 -1
  104. package/dist/modern/AssetInventory/ListView/ListView.js.map +1 -1
  105. package/dist/modern/AssetInventory/Search/Search.js +1 -0
  106. package/dist/modern/AssetInventory/Search/Search.js.map +1 -1
  107. package/dist/modern/BaseDropdown/BaseDropdown.js +1 -0
  108. package/dist/modern/BaseDropdown/BaseDropdown.js.map +1 -1
  109. package/dist/modern/BreadCrumb/utils.js +1 -0
  110. package/dist/modern/BreadCrumb/utils.js.map +1 -1
  111. package/dist/modern/Chart/Plot/Plot.d.ts +3 -3
  112. package/dist/modern/FilterGroup/RightPanel/RightPanel.js +1 -0
  113. package/dist/modern/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  114. package/dist/modern/Focus/Focus.js +1 -0
  115. package/dist/modern/Focus/Focus.js.map +1 -1
  116. package/dist/modern/List/List.js +5 -2
  117. package/dist/modern/List/List.js.map +1 -1
  118. package/dist/modern/SimpleGrid/SimpleGrid.d.ts +17 -0
  119. package/dist/modern/SimpleGrid/SimpleGrid.js +60 -0
  120. package/dist/modern/SimpleGrid/SimpleGrid.js.map +1 -0
  121. package/dist/modern/SimpleGrid/index.d.ts +2 -0
  122. package/dist/modern/SimpleGrid/index.js +2 -0
  123. package/dist/modern/SimpleGrid/index.js.map +1 -0
  124. package/dist/modern/SimpleGrid/styles.js +68 -0
  125. package/dist/modern/SimpleGrid/styles.js.map +1 -0
  126. package/dist/modern/Stack/Stack.d.ts +46 -0
  127. package/dist/modern/Stack/Stack.js +145 -0
  128. package/dist/modern/Stack/Stack.js.map +1 -0
  129. package/dist/modern/Stack/index.d.ts +2 -0
  130. package/dist/modern/Stack/index.js +2 -0
  131. package/dist/modern/Stack/index.js.map +1 -0
  132. package/dist/modern/Stack/styles.js +29 -0
  133. package/dist/modern/Stack/styles.js.map +1 -0
  134. package/dist/modern/Table/Table.js +1 -0
  135. package/dist/modern/Table/Table.js.map +1 -1
  136. package/dist/modern/Table/checkBoxUtils.js +1 -0
  137. package/dist/modern/Table/checkBoxUtils.js.map +1 -1
  138. package/dist/modern/TagsInput/TagsInput.js +1 -0
  139. package/dist/modern/TagsInput/TagsInput.js.map +1 -1
  140. package/dist/modern/TimePicker/PeriodPicker/PeriodPicker.js +75 -0
  141. package/dist/modern/TimePicker/PeriodPicker/PeriodPicker.js.map +1 -0
  142. package/dist/modern/TimePicker/PeriodPicker/index.js +7 -0
  143. package/dist/modern/TimePicker/PeriodPicker/index.js.map +1 -0
  144. package/dist/modern/TimePicker/PeriodPicker/styles.js +22 -0
  145. package/dist/modern/TimePicker/PeriodPicker/styles.js.map +1 -0
  146. package/dist/modern/TimePicker/TimePicker.d.ts +140 -0
  147. package/dist/modern/TimePicker/TimePicker.js +659 -0
  148. package/dist/modern/TimePicker/TimePicker.js.map +1 -0
  149. package/dist/modern/TimePicker/UnitTimePicker/UnitTimePicker.js +191 -0
  150. package/dist/modern/TimePicker/UnitTimePicker/UnitTimePicker.js.map +1 -0
  151. package/dist/modern/TimePicker/UnitTimePicker/index.js +7 -0
  152. package/dist/modern/TimePicker/UnitTimePicker/index.js.map +1 -0
  153. package/dist/modern/TimePicker/UnitTimePicker/styles.js +49 -0
  154. package/dist/modern/TimePicker/UnitTimePicker/styles.js.map +1 -0
  155. package/dist/modern/TimePicker/enums.js +32 -0
  156. package/dist/modern/TimePicker/enums.js.map +1 -0
  157. package/dist/modern/TimePicker/index.d.ts +2 -0
  158. package/dist/modern/TimePicker/index.js +2 -0
  159. package/dist/modern/TimePicker/index.js.map +1 -0
  160. package/dist/modern/TimePicker/styles.js +108 -0
  161. package/dist/modern/TimePicker/styles.js.map +1 -0
  162. package/dist/modern/TimePicker/timePickerConverter.js +66 -0
  163. package/dist/modern/TimePicker/timePickerConverter.js.map +1 -0
  164. package/dist/modern/TimePicker/timePickerFormatter.js +65 -0
  165. package/dist/modern/TimePicker/timePickerFormatter.js.map +1 -0
  166. package/dist/modern/TimePicker/timePickerUtils.js +26 -0
  167. package/dist/modern/TimePicker/timePickerUtils.js.map +1 -0
  168. package/dist/modern/index.d.ts +3 -0
  169. package/dist/modern/index.js +1 -0
  170. package/dist/modern/index.js.map +1 -1
  171. package/package.json +19 -20
  172. package/CHANGELOG.md +0 -4480
@@ -9,6 +9,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
9
9
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
10
 
11
11
  import "core-js/modules/web.dom-collections.iterator.js";
12
+ import "core-js/modules/es.array.includes.js";
12
13
 
13
14
  /* eslint-disable jsx-a11y/no-noninteractive-tabindex */
14
15
  import ReactDOM from "react-dom";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/BaseDropdown/BaseDropdown.js"],"names":["ReactDOM","React","useState","useCallback","useMemo","PropTypes","ClickAwayListener","withStyles","usePopper","maxSize","clsx","DropUpXS","DropDownXS","HvTypography","useUniqueId","getFirstAndLastFocus","isKeypress","KeyboardCodes","setId","refType","useControlled","useForkRef","styles","BaseDropdownContext","Tab","Enter","Esc","Space","ArrowDown","HvBaseDropdown","id","role","classes","className","placeholder","disabled","expanded","defaultExpanded","placement","popperProps","onToggle","onClickOutside","onContainerCreation","disablePortal","component","adornment","children","variableWidth","dropdownHeaderProps","dropdownHeaderRef","dropdownHeaderRefProp","others","isOpen","setIsOpen","Boolean","bottom","referenceElement","setReferenceElement","popperMaxSize","setPopperMaxSize","handleDropdownHeaderRefProp","ref","handleDropdownHeaderRef","popperElement","setPopperElement","extensionWidth","offsetWidth","modifiers","popperPropsModifiers","otherPopperProps","onFirstUpdate","widthCalculator","state","popper","width","rects","reference","widthCalculatorEffect","elements","style","maxSizeCalculator","height","modifiersData","maxWidth","maxHeight","name","enabled","phase","requires","fn","effect","popperStyles","attributes","elementId","ariaRole","undefined","popperPlacement","handleToggle","event","preventDefault","notControlKey","every","key","ignoredCombinations","newOpen","focusHeader","focus","preventScroll","headerComponent","cloneElement","header","headerOpen","includes","headerOpenUp","headerOpenDown","headerDisabled","pointerEvents","selection","selectionDisabled","arrow","containerComponent","handleContainerKeyDown","shiftKey","focusList","document","activeElement","last","first","handleOutside","isButtonClick","contains","target","container","inputExtensionOpen","inputExtensionLeftPosition","panel","inputExtensionOpenShadow","inputExtensionFloatRight","inputExtensionFloatLeft","createPortal","body","root","anchor","rootDisabled","propTypes","string","shape","isRequired","oneOfType","node","bool","oneOf","func","onFlip","instanceOf","Object"],"mappings":"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","sourcesContent":["/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\nimport ReactDOM from \"react-dom\";\nimport React, { useState, useCallback, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { ClickAwayListener, withStyles } from \"@material-ui/core\";\nimport { usePopper } from \"react-popper\";\nimport maxSize from \"popper-max-size-modifier\";\nimport clsx from \"clsx\";\nimport { DropUpXS, DropDownXS } from \"@hitachivantara/uikit-react-icons\";\nimport { HvTypography, useUniqueId } from \"..\";\nimport {\n getFirstAndLastFocus,\n isKeypress,\n KeyboardCodes,\n setId,\n refType,\n useControlled,\n useForkRef,\n} from \"../utils\";\nimport styles from \"./styles\";\n\nimport BaseDropdownContext from \"./BaseDropdownContext\";\n\nconst { Tab, Enter, Esc, Space, ArrowDown } = KeyboardCodes;\n\nconst HvBaseDropdown = ({\n id,\n role,\n classes,\n className,\n placeholder,\n disabled = false,\n expanded,\n defaultExpanded = false,\n placement = \"right\",\n popperProps = {},\n onToggle,\n onClickOutside,\n onContainerCreation,\n disablePortal = false,\n component,\n adornment,\n children,\n variableWidth = false,\n dropdownHeaderProps,\n dropdownHeaderRef: dropdownHeaderRefProp,\n ...others\n}) => {\n const [isOpen, setIsOpen] = useControlled(expanded, Boolean(defaultExpanded));\n\n const bottom = placement && `bottom-${placement === \"right\" ? \"start\" : \"end\"}`;\n\n const [referenceElement, setReferenceElement] = useState(null);\n const [popperMaxSize, setPopperMaxSize] = useState({});\n\n const handleDropdownHeaderRefProp = useForkRef(dropdownHeaderRefProp, dropdownHeaderProps?.ref);\n const handleDropdownHeaderRef = useForkRef(setReferenceElement, handleDropdownHeaderRefProp);\n\n const [popperElement, setPopperElement] = useState(null);\n\n const extensionWidth = referenceElement ? referenceElement.offsetWidth : \"inherit\";\n const { modifiers: popperPropsModifiers = [], ...otherPopperProps } = popperProps;\n\n const onFirstUpdate = useCallback(() => {\n if (onContainerCreation) onContainerCreation(popperElement);\n }, [onContainerCreation, popperElement]);\n\n const widthCalculator = useCallback(({ state }) => {\n // eslint-disable-next-line no-param-reassign\n state.styles.popper.width = `${state.rects.reference.width}px`;\n }, []);\n\n const widthCalculatorEffect = useCallback(({ state }) => {\n // eslint-disable-next-line no-param-reassign\n state.elements.popper.style.width = `${state.elements.reference.offsetWidth}px`;\n }, []);\n\n const maxSizeCalculator = useCallback(\n ({ state }) => {\n // The `maxSize` modifier provides this data\n const { width, height } = state.modifiersData.maxSize;\n if (width !== popperMaxSize.width || height !== popperMaxSize.height) {\n setPopperMaxSize({ width, height });\n }\n\n // eslint-disable-next-line no-param-reassign\n state.styles.popper = {\n ...state.styles.popper,\n maxWidth: `${width}px`,\n maxHeight: `${height}px`,\n };\n },\n [popperMaxSize]\n );\n\n const modifiers = useMemo(\n () => [\n {\n name: \"variableWidth\",\n enabled: !variableWidth,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: widthCalculator,\n effect: widthCalculatorEffect,\n },\n maxSize,\n {\n name: \"applyMaxSize\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"maxSize\"],\n fn: maxSizeCalculator,\n },\n ...popperPropsModifiers,\n ],\n [maxSizeCalculator, popperPropsModifiers, variableWidth, widthCalculator, widthCalculatorEffect]\n );\n\n const { styles: popperStyles, attributes } = usePopper(referenceElement, popperElement, {\n placement: bottom,\n modifiers,\n onFirstUpdate,\n ...otherPopperProps,\n });\n\n const elementId = useUniqueId(id, \"hvbasedropdown\");\n\n const ariaRole = role || (component == null ? \"combobox\" : undefined);\n\n let popperPlacement = \"bottom\";\n if (attributes.popper) {\n popperPlacement = attributes.popper[\"data-popper-placement\"];\n }\n\n const handleToggle = useCallback(\n (event) => {\n if (event && !isKeypress(event, Tab)) {\n event.preventDefault();\n }\n // we are checking specifically for false because if \"isKeypress\" returns true or undefined it should continue\n const notControlKey = [Tab, Enter, Esc, ArrowDown, Space].every(\n (key) => isKeypress(event, key) === false\n );\n\n const ignoredCombinations =\n (isKeypress(event, Esc) && !isOpen) ||\n (isKeypress(event, ArrowDown) && isOpen) ||\n (isKeypress(event, Tab) && !isOpen);\n\n if (disabled || notControlKey || ignoredCombinations) return;\n\n const newOpen = !isOpen;\n\n /* If about to close focus on the header component. */\n const focusHeader = () => {\n if (!newOpen) {\n // focus-ring won't be visible even if using the keyboard:\n // https://github.com/WICG/focus-visible/issues/88\n referenceElement.focus({ preventScroll: true });\n }\n\n return newOpen;\n };\n setIsOpen(focusHeader());\n\n onToggle?.(event, newOpen);\n },\n [isOpen, disabled, setIsOpen, onToggle, referenceElement]\n );\n\n const headerComponent = (() => {\n if (component) {\n return React.cloneElement(component, {\n ref: handleDropdownHeaderRef,\n });\n }\n\n return (\n <div\n id={setId(id, \"header\")}\n className={clsx(classes.header, {\n [classes.headerDisabled]: disabled,\n [classes.headerOpen]: isOpen,\n [classes.headerOpenUp]: isOpen && popperPlacement.includes(\"top\"),\n [classes.headerOpenDown]: isOpen && popperPlacement.includes(\"bottom\"),\n })}\n role={ariaRole === \"combobox\" ? \"textbox\" : undefined}\n style={disabled ? { pointerEvents: \"none\" } : undefined}\n aria-controls={isOpen ? setId(elementId, \"children-container\") : undefined}\n aria-label={others[\"aria-label\"] ?? undefined}\n aria-labelledby={others[\"aria-labelledby\"] ?? undefined}\n tabIndex={disabled ? -1 : 0}\n ref={handleDropdownHeaderRef}\n {...dropdownHeaderProps}\n >\n <div className={classes.selection}>\n {placeholder && typeof placeholder === \"string\" ? (\n <HvTypography\n noWrap\n className={clsx(classes.placeholder, {\n [classes.selectionDisabled]: disabled,\n })}\n variant=\"placeholderText\"\n >\n {placeholder}\n </HvTypography>\n ) : (\n placeholder\n )}\n </div>\n {adornment ||\n (isOpen ? (\n <DropUpXS iconSize=\"XS\" className={classes.arrow} />\n ) : (\n <DropDownXS\n iconSize=\"XS\"\n className={classes.arrow}\n color={disabled ? \"atmo5\" : undefined}\n />\n ))}\n </div>\n );\n })();\n\n const containerComponent = (() => {\n /**\n * Handle keyboard inside children container.\n */\n const handleContainerKeyDown = (event) => {\n if (isKeypress(event, Esc)) {\n handleToggle(event);\n }\n if (isKeypress(event, Tab) && !event.shiftKey) {\n const focusList = getFirstAndLastFocus(popperElement);\n if (document.activeElement === focusList?.last) {\n event.preventDefault();\n focusList?.first?.focus();\n }\n }\n };\n\n const handleOutside = (event) => {\n const isButtonClick = referenceElement?.contains(event.target);\n if (!isButtonClick) {\n onClickOutside?.(event);\n setIsOpen(false);\n onToggle?.(event, false);\n }\n };\n\n const container = (\n <div\n role=\"tooltip\"\n ref={setPopperElement}\n className={classes.container}\n style={popperStyles.popper}\n {...attributes.popper}\n >\n <ClickAwayListener onClickAway={handleOutside}>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div onKeyDown={handleContainerKeyDown}>\n {popperPlacement.includes(\"bottom\") && (\n <div\n style={{ width: extensionWidth }}\n className={clsx(classes.inputExtensionOpen, {\n [classes.inputExtensionLeftPosition]: popperPlacement.includes(\"end\"),\n })}\n />\n )}\n <BaseDropdownContext.Provider value={popperMaxSize}>\n <div id={setId(elementId, \"children-container\")} className={classes.panel}>\n {children}\n </div>\n </BaseDropdownContext.Provider>\n {popperPlacement.includes(\"top\") && (\n <div\n style={{ width: extensionWidth }}\n className={clsx(classes.inputExtensionOpen, classes.inputExtensionOpenShadow, {\n [classes.inputExtensionFloatRight]: popperPlacement.includes(\"start\"),\n [classes.inputExtensionFloatLeft]: popperPlacement.includes(\"end\"),\n })}\n />\n )}\n </div>\n </ClickAwayListener>\n </div>\n );\n\n if (disablePortal) return container;\n\n return ReactDOM.createPortal(container, document.body);\n })();\n\n return (\n <div className={classes.root}>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n id={id}\n role={ariaRole}\n aria-expanded={!!isOpen}\n aria-owns={isOpen ? setId(elementId, \"children-container\") : undefined}\n className={clsx(className, classes.anchor, {\n [classes.rootDisabled]: disabled,\n })}\n onKeyDown={handleToggle}\n onClick={handleToggle}\n tabIndex={-1}\n {...others}\n >\n {headerComponent}\n </div>\n {isOpen ? containerComponent : null}\n </div>\n );\n};\n\nHvBaseDropdown.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * The role of the element that triggers the popup.\n *\n * Defaults to \"combobox\" if `component` and the default\n * \"textbox\" header is used, undefined otherwise.\n */\n role: PropTypes.string,\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the root when disabled.\n */\n rootDisabled: PropTypes.string,\n /**\n * Styles applied to the element that serves as reference for the popper when disabled.\n */\n anchor: PropTypes.string,\n /**\n * Styles applied to the popper element when it is inside the root element hierarchy.\n */\n container: PropTypes.string,\n /**\n * Styles applied to the header\n */\n header: PropTypes.string,\n /**\n * Styles applied to the component when is open.\n */\n headerOpen: PropTypes.string,\n /**\n * Styles applied to the header when the container is opened up.\n */\n headerOpenUp: PropTypes.string,\n /**\n * Styles applied to the header when the container is opened down.\n */\n headerOpenDown: PropTypes.string,\n /**\n * Styles applied to the header when is disable.\n */\n headerDisabled: PropTypes.string,\n /**\n * Styles applied to the arrow\n */\n arrow: PropTypes.string,\n /**\n * Styles applied to the selection\n */\n selection: PropTypes.string,\n /**\n * Styles applied for truncating the container elements.\n */\n placeholder: PropTypes.string,\n /**\n * Styles applied when the selection is disabled.\n */\n selectionDisabled: PropTypes.string,\n /**\n * Styles applied to the dropdown panel.\n */\n panel: PropTypes.string,\n /**\n * Styles applied to the extension when open.\n */\n inputExtensionOpen: PropTypes.string,\n /**\n * Styles applied when position is left.\n */\n inputExtensionLeftPosition: PropTypes.string,\n /**\n * Styles applied to set the shadow when open.\n */\n inputExtensionOpenShadow: PropTypes.string,\n /**\n * Styles applied when position is right and the position is up.\n */\n inputExtensionFloatRight: PropTypes.string,\n /**\n * Styles applied when position is left and the position is up.\n */\n inputExtensionFloatLeft: PropTypes.string,\n }).isRequired,\n /**\n * Header placeholder. String or node.\n */\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n /**\n * If `true` the dropdown is disabled unable to be interacted, if `false` it is enabled.\n */\n disabled: PropTypes.bool,\n /**\n * Disable the portal behavior.\n * The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n /**\n * If `true` the dropdown width depends size of content if `false` the width depends on the header size.\n * Defaults to `false`.\n */\n variableWidth: PropTypes.bool,\n /**\n * If `true` the dropdown starts opened if `false` it starts closed.\n */\n expanded: PropTypes.bool,\n /**\n * When uncontrolled, defines the initial expanded state.\n */\n defaultExpanded: PropTypes.bool,\n /**\n * An object containing props to be wired to the popper component.\n */\n popperProps: PropTypes.shape(),\n /**\n * Node to be rendered.\n */\n children: PropTypes.node,\n /**\n * Placement of the dropdown.\n */\n placement: PropTypes.oneOf([\"left\", \"right\"]),\n /**\n * Replacement for the header component.\n */\n component: PropTypes.node,\n /**\n * Adornment to replace the default arrows.\n */\n adornment: PropTypes.node,\n /**\n * When dropdown changes the expanded state.\n */\n onToggle: PropTypes.func,\n /**\n * When user click outside the open container.\n */\n onClickOutside: PropTypes.func,\n /**\n * Callback called when the dropdown is opened and ready,\n * commonly used to set focus to the content.\n */\n onContainerCreation: PropTypes.func,\n /**\n * When expanded dropdown flips position.\n */\n onFlip: PropTypes.func,\n /**\n * Attributes applied to the dropdown header element.\n */\n dropdownHeaderProps: PropTypes.instanceOf(Object),\n /**\n * Pass a ref to the dropdown header element.\n */\n dropdownHeaderRef: refType,\n};\n\nexport default withStyles(styles, { name: \"HvBaseDropdown\" })(HvBaseDropdown);\n"],"file":"BaseDropdown.js"}
1
+ {"version":3,"sources":["../../../src/BaseDropdown/BaseDropdown.js"],"names":["ReactDOM","React","useState","useCallback","useMemo","PropTypes","ClickAwayListener","withStyles","usePopper","maxSize","clsx","DropUpXS","DropDownXS","HvTypography","useUniqueId","getFirstAndLastFocus","isKeypress","KeyboardCodes","setId","refType","useControlled","useForkRef","styles","BaseDropdownContext","Tab","Enter","Esc","Space","ArrowDown","HvBaseDropdown","id","role","classes","className","placeholder","disabled","expanded","defaultExpanded","placement","popperProps","onToggle","onClickOutside","onContainerCreation","disablePortal","component","adornment","children","variableWidth","dropdownHeaderProps","dropdownHeaderRef","dropdownHeaderRefProp","others","isOpen","setIsOpen","Boolean","bottom","referenceElement","setReferenceElement","popperMaxSize","setPopperMaxSize","handleDropdownHeaderRefProp","ref","handleDropdownHeaderRef","popperElement","setPopperElement","extensionWidth","offsetWidth","modifiers","popperPropsModifiers","otherPopperProps","onFirstUpdate","widthCalculator","state","popper","width","rects","reference","widthCalculatorEffect","elements","style","maxSizeCalculator","height","modifiersData","maxWidth","maxHeight","name","enabled","phase","requires","fn","effect","popperStyles","attributes","elementId","ariaRole","undefined","popperPlacement","handleToggle","event","preventDefault","notControlKey","every","key","ignoredCombinations","newOpen","focusHeader","focus","preventScroll","headerComponent","cloneElement","header","headerOpen","includes","headerOpenUp","headerOpenDown","headerDisabled","pointerEvents","selection","selectionDisabled","arrow","containerComponent","handleContainerKeyDown","shiftKey","focusList","document","activeElement","last","first","handleOutside","isButtonClick","contains","target","container","inputExtensionOpen","inputExtensionLeftPosition","panel","inputExtensionOpenShadow","inputExtensionFloatRight","inputExtensionFloatLeft","createPortal","body","root","anchor","rootDisabled","propTypes","string","shape","isRequired","oneOfType","node","bool","oneOf","func","onFlip","instanceOf","Object"],"mappings":"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","sourcesContent":["/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\nimport ReactDOM from \"react-dom\";\nimport React, { useState, useCallback, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { ClickAwayListener, withStyles } from \"@material-ui/core\";\nimport { usePopper } from \"react-popper\";\nimport maxSize from \"popper-max-size-modifier\";\nimport clsx from \"clsx\";\nimport { DropUpXS, DropDownXS } from \"@hitachivantara/uikit-react-icons\";\nimport { HvTypography, useUniqueId } from \"..\";\nimport {\n getFirstAndLastFocus,\n isKeypress,\n KeyboardCodes,\n setId,\n refType,\n useControlled,\n useForkRef,\n} from \"../utils\";\nimport styles from \"./styles\";\n\nimport BaseDropdownContext from \"./BaseDropdownContext\";\n\nconst { Tab, Enter, Esc, Space, ArrowDown } = KeyboardCodes;\n\nconst HvBaseDropdown = ({\n id,\n role,\n classes,\n className,\n placeholder,\n disabled = false,\n expanded,\n defaultExpanded = false,\n placement = \"right\",\n popperProps = {},\n onToggle,\n onClickOutside,\n onContainerCreation,\n disablePortal = false,\n component,\n adornment,\n children,\n variableWidth = false,\n dropdownHeaderProps,\n dropdownHeaderRef: dropdownHeaderRefProp,\n ...others\n}) => {\n const [isOpen, setIsOpen] = useControlled(expanded, Boolean(defaultExpanded));\n\n const bottom = placement && `bottom-${placement === \"right\" ? \"start\" : \"end\"}`;\n\n const [referenceElement, setReferenceElement] = useState(null);\n const [popperMaxSize, setPopperMaxSize] = useState({});\n\n const handleDropdownHeaderRefProp = useForkRef(dropdownHeaderRefProp, dropdownHeaderProps?.ref);\n const handleDropdownHeaderRef = useForkRef(setReferenceElement, handleDropdownHeaderRefProp);\n\n const [popperElement, setPopperElement] = useState(null);\n\n const extensionWidth = referenceElement ? referenceElement.offsetWidth : \"inherit\";\n const { modifiers: popperPropsModifiers = [], ...otherPopperProps } = popperProps;\n\n const onFirstUpdate = useCallback(() => {\n if (onContainerCreation) onContainerCreation(popperElement);\n }, [onContainerCreation, popperElement]);\n\n const widthCalculator = useCallback(({ state }) => {\n // eslint-disable-next-line no-param-reassign\n state.styles.popper.width = `${state.rects.reference.width}px`;\n }, []);\n\n const widthCalculatorEffect = useCallback(({ state }) => {\n // eslint-disable-next-line no-param-reassign\n state.elements.popper.style.width = `${state.elements.reference.offsetWidth}px`;\n }, []);\n\n const maxSizeCalculator = useCallback(\n ({ state }) => {\n // The `maxSize` modifier provides this data\n const { width, height } = state.modifiersData.maxSize;\n if (width !== popperMaxSize.width || height !== popperMaxSize.height) {\n setPopperMaxSize({ width, height });\n }\n\n // eslint-disable-next-line no-param-reassign\n state.styles.popper = {\n ...state.styles.popper,\n maxWidth: `${width}px`,\n maxHeight: `${height}px`,\n };\n },\n [popperMaxSize]\n );\n\n const modifiers = useMemo(\n () => [\n {\n name: \"variableWidth\",\n enabled: !variableWidth,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: widthCalculator,\n effect: widthCalculatorEffect,\n },\n maxSize,\n {\n name: \"applyMaxSize\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"maxSize\"],\n fn: maxSizeCalculator,\n },\n ...popperPropsModifiers,\n ],\n [maxSizeCalculator, popperPropsModifiers, variableWidth, widthCalculator, widthCalculatorEffect]\n );\n\n const { styles: popperStyles, attributes } = usePopper(referenceElement, popperElement, {\n placement: bottom,\n modifiers,\n onFirstUpdate,\n ...otherPopperProps,\n });\n\n const elementId = useUniqueId(id, \"hvbasedropdown\");\n\n const ariaRole = role || (component == null ? \"combobox\" : undefined);\n\n let popperPlacement = \"bottom\";\n if (attributes.popper) {\n popperPlacement = attributes.popper[\"data-popper-placement\"];\n }\n\n const handleToggle = useCallback(\n (event) => {\n if (event && !isKeypress(event, Tab)) {\n event.preventDefault();\n }\n // we are checking specifically for false because if \"isKeypress\" returns true or undefined it should continue\n const notControlKey = [Tab, Enter, Esc, ArrowDown, Space].every(\n (key) => isKeypress(event, key) === false\n );\n\n const ignoredCombinations =\n (isKeypress(event, Esc) && !isOpen) ||\n (isKeypress(event, ArrowDown) && isOpen) ||\n (isKeypress(event, Tab) && !isOpen);\n\n if (disabled || notControlKey || ignoredCombinations) return;\n\n const newOpen = !isOpen;\n\n /* If about to close focus on the header component. */\n const focusHeader = () => {\n if (!newOpen) {\n // focus-ring won't be visible even if using the keyboard:\n // https://github.com/WICG/focus-visible/issues/88\n referenceElement.focus({ preventScroll: true });\n }\n\n return newOpen;\n };\n setIsOpen(focusHeader());\n\n onToggle?.(event, newOpen);\n },\n [isOpen, disabled, setIsOpen, onToggle, referenceElement]\n );\n\n const headerComponent = (() => {\n if (component) {\n return React.cloneElement(component, {\n ref: handleDropdownHeaderRef,\n });\n }\n\n return (\n <div\n id={setId(id, \"header\")}\n className={clsx(classes.header, {\n [classes.headerDisabled]: disabled,\n [classes.headerOpen]: isOpen,\n [classes.headerOpenUp]: isOpen && popperPlacement.includes(\"top\"),\n [classes.headerOpenDown]: isOpen && popperPlacement.includes(\"bottom\"),\n })}\n role={ariaRole === \"combobox\" ? \"textbox\" : undefined}\n style={disabled ? { pointerEvents: \"none\" } : undefined}\n aria-controls={isOpen ? setId(elementId, \"children-container\") : undefined}\n aria-label={others[\"aria-label\"] ?? undefined}\n aria-labelledby={others[\"aria-labelledby\"] ?? undefined}\n tabIndex={disabled ? -1 : 0}\n ref={handleDropdownHeaderRef}\n {...dropdownHeaderProps}\n >\n <div className={classes.selection}>\n {placeholder && typeof placeholder === \"string\" ? (\n <HvTypography\n noWrap\n className={clsx(classes.placeholder, {\n [classes.selectionDisabled]: disabled,\n })}\n variant=\"placeholderText\"\n >\n {placeholder}\n </HvTypography>\n ) : (\n placeholder\n )}\n </div>\n {adornment ||\n (isOpen ? (\n <DropUpXS iconSize=\"XS\" className={classes.arrow} />\n ) : (\n <DropDownXS\n iconSize=\"XS\"\n className={classes.arrow}\n color={disabled ? \"atmo5\" : undefined}\n />\n ))}\n </div>\n );\n })();\n\n const containerComponent = (() => {\n /**\n * Handle keyboard inside children container.\n */\n const handleContainerKeyDown = (event) => {\n if (isKeypress(event, Esc)) {\n handleToggle(event);\n }\n if (isKeypress(event, Tab) && !event.shiftKey) {\n const focusList = getFirstAndLastFocus(popperElement);\n if (document.activeElement === focusList?.last) {\n event.preventDefault();\n focusList?.first?.focus();\n }\n }\n };\n\n const handleOutside = (event) => {\n const isButtonClick = referenceElement?.contains(event.target);\n if (!isButtonClick) {\n onClickOutside?.(event);\n setIsOpen(false);\n onToggle?.(event, false);\n }\n };\n\n const container = (\n <div\n role=\"tooltip\"\n ref={setPopperElement}\n className={classes.container}\n style={popperStyles.popper}\n {...attributes.popper}\n >\n <ClickAwayListener onClickAway={handleOutside}>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div onKeyDown={handleContainerKeyDown}>\n {popperPlacement.includes(\"bottom\") && (\n <div\n style={{ width: extensionWidth }}\n className={clsx(classes.inputExtensionOpen, {\n [classes.inputExtensionLeftPosition]: popperPlacement.includes(\"end\"),\n })}\n />\n )}\n <BaseDropdownContext.Provider value={popperMaxSize}>\n <div id={setId(elementId, \"children-container\")} className={classes.panel}>\n {children}\n </div>\n </BaseDropdownContext.Provider>\n {popperPlacement.includes(\"top\") && (\n <div\n style={{ width: extensionWidth }}\n className={clsx(classes.inputExtensionOpen, classes.inputExtensionOpenShadow, {\n [classes.inputExtensionFloatRight]: popperPlacement.includes(\"start\"),\n [classes.inputExtensionFloatLeft]: popperPlacement.includes(\"end\"),\n })}\n />\n )}\n </div>\n </ClickAwayListener>\n </div>\n );\n\n if (disablePortal) return container;\n\n return ReactDOM.createPortal(container, document.body);\n })();\n\n return (\n <div className={classes.root}>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n id={id}\n role={ariaRole}\n aria-expanded={!!isOpen}\n aria-owns={isOpen ? setId(elementId, \"children-container\") : undefined}\n className={clsx(className, classes.anchor, {\n [classes.rootDisabled]: disabled,\n })}\n onKeyDown={handleToggle}\n onClick={handleToggle}\n tabIndex={-1}\n {...others}\n >\n {headerComponent}\n </div>\n {isOpen ? containerComponent : null}\n </div>\n );\n};\n\nHvBaseDropdown.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * The role of the element that triggers the popup.\n *\n * Defaults to \"combobox\" if `component` and the default\n * \"textbox\" header is used, undefined otherwise.\n */\n role: PropTypes.string,\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the root when disabled.\n */\n rootDisabled: PropTypes.string,\n /**\n * Styles applied to the element that serves as reference for the popper when disabled.\n */\n anchor: PropTypes.string,\n /**\n * Styles applied to the popper element when it is inside the root element hierarchy.\n */\n container: PropTypes.string,\n /**\n * Styles applied to the header\n */\n header: PropTypes.string,\n /**\n * Styles applied to the component when is open.\n */\n headerOpen: PropTypes.string,\n /**\n * Styles applied to the header when the container is opened up.\n */\n headerOpenUp: PropTypes.string,\n /**\n * Styles applied to the header when the container is opened down.\n */\n headerOpenDown: PropTypes.string,\n /**\n * Styles applied to the header when is disable.\n */\n headerDisabled: PropTypes.string,\n /**\n * Styles applied to the arrow\n */\n arrow: PropTypes.string,\n /**\n * Styles applied to the selection\n */\n selection: PropTypes.string,\n /**\n * Styles applied for truncating the container elements.\n */\n placeholder: PropTypes.string,\n /**\n * Styles applied when the selection is disabled.\n */\n selectionDisabled: PropTypes.string,\n /**\n * Styles applied to the dropdown panel.\n */\n panel: PropTypes.string,\n /**\n * Styles applied to the extension when open.\n */\n inputExtensionOpen: PropTypes.string,\n /**\n * Styles applied when position is left.\n */\n inputExtensionLeftPosition: PropTypes.string,\n /**\n * Styles applied to set the shadow when open.\n */\n inputExtensionOpenShadow: PropTypes.string,\n /**\n * Styles applied when position is right and the position is up.\n */\n inputExtensionFloatRight: PropTypes.string,\n /**\n * Styles applied when position is left and the position is up.\n */\n inputExtensionFloatLeft: PropTypes.string,\n }).isRequired,\n /**\n * Header placeholder. String or node.\n */\n placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n /**\n * If `true` the dropdown is disabled unable to be interacted, if `false` it is enabled.\n */\n disabled: PropTypes.bool,\n /**\n * Disable the portal behavior.\n * The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n /**\n * If `true` the dropdown width depends size of content if `false` the width depends on the header size.\n * Defaults to `false`.\n */\n variableWidth: PropTypes.bool,\n /**\n * If `true` the dropdown starts opened if `false` it starts closed.\n */\n expanded: PropTypes.bool,\n /**\n * When uncontrolled, defines the initial expanded state.\n */\n defaultExpanded: PropTypes.bool,\n /**\n * An object containing props to be wired to the popper component.\n */\n popperProps: PropTypes.shape(),\n /**\n * Node to be rendered.\n */\n children: PropTypes.node,\n /**\n * Placement of the dropdown.\n */\n placement: PropTypes.oneOf([\"left\", \"right\"]),\n /**\n * Replacement for the header component.\n */\n component: PropTypes.node,\n /**\n * Adornment to replace the default arrows.\n */\n adornment: PropTypes.node,\n /**\n * When dropdown changes the expanded state.\n */\n onToggle: PropTypes.func,\n /**\n * When user click outside the open container.\n */\n onClickOutside: PropTypes.func,\n /**\n * Callback called when the dropdown is opened and ready,\n * commonly used to set focus to the content.\n */\n onContainerCreation: PropTypes.func,\n /**\n * When expanded dropdown flips position.\n */\n onFlip: PropTypes.func,\n /**\n * Attributes applied to the dropdown header element.\n */\n dropdownHeaderProps: PropTypes.instanceOf(Object),\n /**\n * Pass a ref to the dropdown header element.\n */\n dropdownHeaderRef: refType,\n};\n\nexport default withStyles(styles, { name: \"HvBaseDropdown\" })(HvBaseDropdown);\n"],"file":"BaseDropdown.js"}
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
 
3
3
  var _MoreOptionsHorizonta;
4
4
 
5
+ import "core-js/modules/es.array.includes.js";
5
6
  import React from "react";
6
7
  import { MoreOptionsHorizontal } from "@hitachivantara/uikit-react-icons";
7
8
  import { HvDropDownMenu } from "..";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/BreadCrumb/utils.js"],"names":["React","MoreOptionsHorizontal","HvDropDownMenu","setId","removeExtension","label","includes","substring","lastIndexOf","pathWithSubMenu","id","classes","listRoute","maxVisible","dropDownMenuProps","nbrElemToSubMenu","length","subMenuList","slice","splice"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,qBAAT,QAAsC,mCAAtC;AACA,SAASC,cAAT,QAA+B,IAA/B;AACA,SAASC,KAAT,QAAsB,UAAtB;AAEA,OAAO,MAAMC,eAAe,GAAIC,KAAD,IAC7BA,KAAK,CAACC,QAAN,CAAe,GAAf,IAAsBD,KAAK,CAACE,SAAN,CAAgB,CAAhB,EAAmBF,KAAK,CAACG,WAAN,CAAkB,GAAlB,CAAnB,CAAtB,GAAmEH,KAD9D;AAGP,OAAO,MAAMI,eAAe,GAAG,CAACC,EAAD,EAAKC,OAAL,EAAcC,SAAd,EAAyBC,UAAzB,EAAqCC,iBAArC,KAA2D;AACxF,QAAMC,gBAAgB,GAAGH,SAAS,CAACI,MAAV,GAAmBH,UAA5C;AACA,QAAMI,WAAW,GAAGL,SAAS,CAACM,KAAV,CAAgB,CAAhB,EAAmBH,gBAAgB,GAAG,CAAtC,CAApB;AAEAH,EAAAA,SAAS,CAACO,MAAV,CACE,CADF,EAEEJ,gBAFF,eAGE,oBAAC,cAAD;AACE,IAAA,EAAE,EAAEZ,KAAK,CAACO,EAAD,EAAK,SAAL,CADX;AAEE,IAAA,IAAI,iEAAE,oBAAC,qBAAD;AAAuB,MAAA,QAAQ,EAAC,GAAhC;AAAoC,MAAA,KAAK,EAAC;AAA1C,MAAF,CAFN;AAGE,IAAA,QAAQ,EAAEO;AAHZ,KAIMH,iBAJN,EAHF;AAWA,SAAOF,SAAP;AACD,CAhBM","sourcesContent":["import React from \"react\";\nimport { MoreOptionsHorizontal } from \"@hitachivantara/uikit-react-icons\";\nimport { HvDropDownMenu } from \"..\";\nimport { setId } from \"../utils\";\n\nexport const removeExtension = (label) =>\n label.includes(\".\") ? label.substring(0, label.lastIndexOf(\".\")) : label;\n\nexport const pathWithSubMenu = (id, classes, listRoute, maxVisible, dropDownMenuProps) => {\n const nbrElemToSubMenu = listRoute.length - maxVisible;\n const subMenuList = listRoute.slice(1, nbrElemToSubMenu + 1);\n\n listRoute.splice(\n 1,\n nbrElemToSubMenu,\n <HvDropDownMenu\n id={setId(id, \"submenu\")}\n icon={<MoreOptionsHorizontal iconSize=\"S\" color=\"acce1\" />}\n dataList={subMenuList}\n {...dropDownMenuProps}\n />\n );\n\n return listRoute;\n};\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../../../src/BreadCrumb/utils.js"],"names":["React","MoreOptionsHorizontal","HvDropDownMenu","setId","removeExtension","label","includes","substring","lastIndexOf","pathWithSubMenu","id","classes","listRoute","maxVisible","dropDownMenuProps","nbrElemToSubMenu","length","subMenuList","slice","splice"],"mappings":";;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,qBAAT,QAAsC,mCAAtC;AACA,SAASC,cAAT,QAA+B,IAA/B;AACA,SAASC,KAAT,QAAsB,UAAtB;AAEA,OAAO,MAAMC,eAAe,GAAIC,KAAD,IAC7BA,KAAK,CAACC,QAAN,CAAe,GAAf,IAAsBD,KAAK,CAACE,SAAN,CAAgB,CAAhB,EAAmBF,KAAK,CAACG,WAAN,CAAkB,GAAlB,CAAnB,CAAtB,GAAmEH,KAD9D;AAGP,OAAO,MAAMI,eAAe,GAAG,CAACC,EAAD,EAAKC,OAAL,EAAcC,SAAd,EAAyBC,UAAzB,EAAqCC,iBAArC,KAA2D;AACxF,QAAMC,gBAAgB,GAAGH,SAAS,CAACI,MAAV,GAAmBH,UAA5C;AACA,QAAMI,WAAW,GAAGL,SAAS,CAACM,KAAV,CAAgB,CAAhB,EAAmBH,gBAAgB,GAAG,CAAtC,CAApB;AAEAH,EAAAA,SAAS,CAACO,MAAV,CACE,CADF,EAEEJ,gBAFF,eAGE,oBAAC,cAAD;AACE,IAAA,EAAE,EAAEZ,KAAK,CAACO,EAAD,EAAK,SAAL,CADX;AAEE,IAAA,IAAI,iEAAE,oBAAC,qBAAD;AAAuB,MAAA,QAAQ,EAAC,GAAhC;AAAoC,MAAA,KAAK,EAAC;AAA1C,MAAF,CAFN;AAGE,IAAA,QAAQ,EAAEO;AAHZ,KAIMH,iBAJN,EAHF;AAWA,SAAOF,SAAP;AACD,CAhBM","sourcesContent":["import React from \"react\";\nimport { MoreOptionsHorizontal } from \"@hitachivantara/uikit-react-icons\";\nimport { HvDropDownMenu } from \"..\";\nimport { setId } from \"../utils\";\n\nexport const removeExtension = (label) =>\n label.includes(\".\") ? label.substring(0, label.lastIndexOf(\".\")) : label;\n\nexport const pathWithSubMenu = (id, classes, listRoute, maxVisible, dropDownMenuProps) => {\n const nbrElemToSubMenu = listRoute.length - maxVisible;\n const subMenuList = listRoute.slice(1, nbrElemToSubMenu + 1);\n\n listRoute.splice(\n 1,\n nbrElemToSubMenu,\n <HvDropDownMenu\n id={setId(id, \"submenu\")}\n icon={<MoreOptionsHorizontal iconSize=\"S\" color=\"acce1\" />}\n dataList={subMenuList}\n {...dropDownMenuProps}\n />\n );\n\n return listRoute;\n};\n"],"file":"utils.js"}
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  import { StandardProps } from "@material-ui/core";
3
- import type { Config, Layout, PlotData as PlotlyPlotData } from "plotly.js";
3
+ import type { Config, Layout, Data as PlotlyPlotData } from "plotly.js";
4
4
 
5
5
  export type PlotData = PlotlyPlotData;
6
6
  export type PlotLayout = Layout;
@@ -17,11 +17,11 @@ export interface HvPlotProps
17
17
  /**
18
18
  * Plotly layout object.
19
19
  */
20
- layout?: PlotLayout;
20
+ layout?: Partial<PlotLayout>;
21
21
  /**
22
22
  * Plotly config object.
23
23
  */
24
- config?: PlotConfig;
24
+ config?: Partial<PlotConfig>;
25
25
  /**
26
26
  * OnHover function.
27
27
  */
@@ -5,6 +5,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
5
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
6
 
7
7
  import "core-js/modules/web.dom-collections.iterator.js";
8
+ import "core-js/modules/es.array.includes.js";
8
9
  import React, { useMemo, useContext, useState, useEffect, useCallback } from "react";
9
10
  import PropTypes from "prop-types";
10
11
  import cloneDeep from "lodash/cloneDeep";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/FilterGroup/RightPanel/RightPanel.js"],"names":["React","useMemo","useContext","useState","useEffect","useCallback","PropTypes","cloneDeep","clsx","FilterGroupContext","useStyles","setId","HvTypography","HvList","HvInput","HvPanel","HvCheckBox","RightPanel","id","className","labels","classes","searchStr","setSearchStr","allSelected","setAllSelected","anySelected","setAnySelected","filterOptions","filterValues","setFilterValues","activeGroup","activeGroupOptions","data","map","option","activeFilterValues","filter","value","includes","listValues","label","name","selected","isHidden","toLowerCase","indexOf","updateSelectAll","nbrSelected","length","hasSelection","allSelect","onChangeHandler","values","newFilterValues","i","v","handleSelectAll","SelectAll","selectAll","multiSelectionConjunction","defaultLabel","selectAllContainer","container","selection","root","search","searchBoxPlaceholder","event","str","list","propTypes","string","shape"],"mappings":"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","sourcesContent":["import React, { useMemo, useContext, useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport clsx from \"clsx\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport useStyles from \"./styles\";\nimport { setId, HvTypography, HvList, HvInput, HvPanel, HvCheckBox } from \"../..\";\n\nconst RightPanel = ({ id, className, labels }) => {\n const classes = useStyles();\n const [searchStr, setSearchStr] = useState(\"\");\n const [allSelected, setAllSelected] = useState(false);\n const [anySelected, setAnySelected] = useState(false);\n\n const { filterOptions, filterValues, setFilterValues, activeGroup } =\n useContext(FilterGroupContext);\n\n const activeGroupOptions = useMemo(\n () => filterOptions[activeGroup].data.map((option) => option.id),\n [filterOptions, activeGroup]\n );\n\n const activeFilterValues = useMemo(\n () => filterValues[activeGroup]?.filter((value) => activeGroupOptions.includes(value)),\n [filterValues, activeGroupOptions, activeGroup]\n );\n\n const listValues = useMemo(\n () =>\n filterOptions[activeGroup].data.map((option) => ({\n ...option,\n label: option.name,\n selected: filterValues[activeGroup]?.includes(option.id),\n isHidden: option.name.toLowerCase().indexOf(searchStr.toLowerCase()) < 0,\n })),\n [filterOptions, filterValues, activeGroup, searchStr]\n );\n\n const updateSelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === activeGroupOptions.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n }, [activeFilterValues, activeGroupOptions]);\n\n useEffect(() => {\n updateSelectAll();\n }, [activeFilterValues, updateSelectAll]);\n\n useEffect(() => setSearchStr(\"\"), [activeGroup]);\n\n const onChangeHandler = (values) => {\n const newFilterValues = filterOptions.map((option, i) =>\n activeGroup === i\n ? values.filter((v) => v.selected).map((v) => v.id)\n : [...(filterValues[i] || [])]\n );\n setFilterValues(newFilterValues);\n };\n\n const handleSelectAll = useCallback(() => {\n const newFilterValues = cloneDeep(filterValues);\n newFilterValues[activeGroup] = anySelected ? [] : activeGroupOptions;\n\n setFilterValues(newFilterValues);\n }, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues]);\n\n /**\n * Create selecteAll component.\n *\n * @returns {*}\n */\n const SelectAll = useCallback(() => {\n const { selectAll, multiSelectionConjunction } = labels;\n const nbrSelected = activeFilterValues?.length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${multiSelectionConjunction} ${activeGroupOptions.length}`}\n </>\n ) : (\n <>\n <b>{selectAll}</b>\n {` (${activeGroupOptions.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <div className={classes.selectAllContainer}>\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n classes={{ container: classes.selection }}\n className={classes.selectAll}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n );\n }, [\n activeFilterValues?.length,\n activeGroupOptions.length,\n allSelected,\n anySelected,\n classes.selectAll,\n classes.selectAllContainer,\n classes.selection,\n handleSelectAll,\n id,\n labels,\n ]);\n\n return (\n <HvPanel id={setId(id, \"rightPanel\")} className={clsx(className, classes.root)}>\n <HvInput\n id={setId(id, \"search\")}\n classes={{\n root: classes.search,\n }}\n type=\"search\"\n placeholder={labels.searchBoxPlaceholder}\n value={searchStr}\n onChange={(event, str) => setSearchStr(str)}\n />\n <SelectAll />\n <HvList\n key={activeGroup}\n id={setId(id, \"list\")}\n className={classes.list}\n values={listValues}\n multiSelect\n useSelector\n showSelectAll={false}\n onChange={onChangeHandler}\n selectable\n condensed\n hasTooltips\n />\n </HvPanel>\n );\n};\n\nRightPanel.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n labels: PropTypes.shape({\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n};\n\nexport default RightPanel;\n"],"file":"RightPanel.js"}
1
+ {"version":3,"sources":["../../../../src/FilterGroup/RightPanel/RightPanel.js"],"names":["React","useMemo","useContext","useState","useEffect","useCallback","PropTypes","cloneDeep","clsx","FilterGroupContext","useStyles","setId","HvTypography","HvList","HvInput","HvPanel","HvCheckBox","RightPanel","id","className","labels","classes","searchStr","setSearchStr","allSelected","setAllSelected","anySelected","setAnySelected","filterOptions","filterValues","setFilterValues","activeGroup","activeGroupOptions","data","map","option","activeFilterValues","filter","value","includes","listValues","label","name","selected","isHidden","toLowerCase","indexOf","updateSelectAll","nbrSelected","length","hasSelection","allSelect","onChangeHandler","values","newFilterValues","i","v","handleSelectAll","SelectAll","selectAll","multiSelectionConjunction","defaultLabel","selectAllContainer","container","selection","root","search","searchBoxPlaceholder","event","str","list","propTypes","string","shape"],"mappings":"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","sourcesContent":["import React, { useMemo, useContext, useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport clsx from \"clsx\";\nimport { FilterGroupContext } from \"../FilterGroupContext\";\nimport useStyles from \"./styles\";\nimport { setId, HvTypography, HvList, HvInput, HvPanel, HvCheckBox } from \"../..\";\n\nconst RightPanel = ({ id, className, labels }) => {\n const classes = useStyles();\n const [searchStr, setSearchStr] = useState(\"\");\n const [allSelected, setAllSelected] = useState(false);\n const [anySelected, setAnySelected] = useState(false);\n\n const { filterOptions, filterValues, setFilterValues, activeGroup } =\n useContext(FilterGroupContext);\n\n const activeGroupOptions = useMemo(\n () => filterOptions[activeGroup].data.map((option) => option.id),\n [filterOptions, activeGroup]\n );\n\n const activeFilterValues = useMemo(\n () => filterValues[activeGroup]?.filter((value) => activeGroupOptions.includes(value)),\n [filterValues, activeGroupOptions, activeGroup]\n );\n\n const listValues = useMemo(\n () =>\n filterOptions[activeGroup].data.map((option) => ({\n ...option,\n label: option.name,\n selected: filterValues[activeGroup]?.includes(option.id),\n isHidden: option.name.toLowerCase().indexOf(searchStr.toLowerCase()) < 0,\n })),\n [filterOptions, filterValues, activeGroup, searchStr]\n );\n\n const updateSelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === activeGroupOptions.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n }, [activeFilterValues, activeGroupOptions]);\n\n useEffect(() => {\n updateSelectAll();\n }, [activeFilterValues, updateSelectAll]);\n\n useEffect(() => setSearchStr(\"\"), [activeGroup]);\n\n const onChangeHandler = (values) => {\n const newFilterValues = filterOptions.map((option, i) =>\n activeGroup === i\n ? values.filter((v) => v.selected).map((v) => v.id)\n : [...(filterValues[i] || [])]\n );\n setFilterValues(newFilterValues);\n };\n\n const handleSelectAll = useCallback(() => {\n const newFilterValues = cloneDeep(filterValues);\n newFilterValues[activeGroup] = anySelected ? [] : activeGroupOptions;\n\n setFilterValues(newFilterValues);\n }, [activeGroup, activeGroupOptions, anySelected, filterValues, setFilterValues]);\n\n /**\n * Create selecteAll component.\n *\n * @returns {*}\n */\n const SelectAll = useCallback(() => {\n const { selectAll, multiSelectionConjunction } = labels;\n const nbrSelected = activeFilterValues?.length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${multiSelectionConjunction} ${activeGroupOptions.length}`}\n </>\n ) : (\n <>\n <b>{selectAll}</b>\n {` (${activeGroupOptions.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <div className={classes.selectAllContainer}>\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n classes={{ container: classes.selection }}\n className={classes.selectAll}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n );\n }, [\n activeFilterValues?.length,\n activeGroupOptions.length,\n allSelected,\n anySelected,\n classes.selectAll,\n classes.selectAllContainer,\n classes.selection,\n handleSelectAll,\n id,\n labels,\n ]);\n\n return (\n <HvPanel id={setId(id, \"rightPanel\")} className={clsx(className, classes.root)}>\n <HvInput\n id={setId(id, \"search\")}\n classes={{\n root: classes.search,\n }}\n type=\"search\"\n placeholder={labels.searchBoxPlaceholder}\n value={searchStr}\n onChange={(event, str) => setSearchStr(str)}\n />\n <SelectAll />\n <HvList\n key={activeGroup}\n id={setId(id, \"list\")}\n className={classes.list}\n values={listValues}\n multiSelect\n useSelector\n showSelectAll={false}\n onChange={onChangeHandler}\n selectable\n condensed\n hasTooltips\n />\n </HvPanel>\n );\n};\n\nRightPanel.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n labels: PropTypes.shape({\n searchBoxPlaceholder: PropTypes.string,\n selectAll: PropTypes.string,\n multiSelectionConjunction: PropTypes.string,\n }),\n};\n\nexport default RightPanel;\n"],"file":"RightPanel.js"}
@@ -1,4 +1,5 @@
1
1
  import "core-js/modules/web.dom-collections.iterator.js";
2
+ import "core-js/modules/es.array.includes.js";
2
3
  import React, { useState } from "react";
3
4
  import PropTypes from "prop-types";
4
5
  import clsx from "clsx";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Focus/Focus.js"],"names":["React","useState","PropTypes","clsx","isNil","withStyles","KeyboardCodes","isBrowser","refType","ConditionalWrapper","isKey","isOneOfKeys","setFocusTo","getFocusableChildren","styles","Focus","props","classes","children","configuration","disabledClass","selected","disabled","rootRef","focusOnClick","focusDisabled","strategy","useFalseFocus","filterClass","navigationJump","showFocus","setShowFocus","childFocus","setChildFocus","hasRunConfig","setHasRunConfig","getFocuses","current","Array","from","getElementsByClassName","root","setTabIndex","el","tabIndex","elChildFocus","setSelectedTabIndex","focuses","firstSelected","find","focus","classList","contains","forEach","clearTabSiblings","onFocusStrategy","evt","currentTarget","onBlurStrategy","document","activeElement","setTimeout","config","focusableChildren","length","child","addFocusClass","add","focused","split","c","removeFocusClass","element","remove","onFocus","onBlur","onMouseDown","hasCard","querySelector","focusAndUpdateIndex","nextFocus","previousFocus","focusesList","includes","getEnabledKeys","currentFocusIndex","jump","listSize","right","left","up","down","onGridKeyDownHandler","ArrowUp","ArrowDown","Home","End","ArrowLeft","ArrowRight","Enter","SpaceBar","childFocusIsInput","nodeName","preventDefault","stopPropagation","blockedKeys","keyCode","target","click","last","fall","first","previous","next","onVerticalArrangementHandler","onSingleHandler","onKeyDown","isDisabledFocusable","filter","currentFocus","indexOf","onKeyUp","focusWrapper","childrenToWrap","externalReference","falseFocus","cloneElement","className","ref","propTypes","shape","string","focusGridDisabled","isRequired","instanceOf","Object","bool","node","oneOf","number","name"],"mappings":"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","sourcesContent":["import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport isNil from \"lodash/isNil\";\nimport { withStyles } from \"@material-ui/core\";\nimport { KeyboardCodes, isBrowser, refType } from \"../utils\";\nimport ConditionalWrapper from \"../utils/ConditionalWrapper\";\nimport { isKey, isOneOfKeys, setFocusTo, getFocusableChildren } from \"./utils\";\nimport styles from \"./styles\";\n\n/* eslint-disable no-param-reassign */\nconst Focus = (props) => {\n const {\n classes,\n children,\n configuration = {},\n disabledClass = false,\n selected = false,\n disabled = false,\n rootRef = {},\n focusOnClick = false,\n focusDisabled = true,\n strategy = \"listbox\",\n useFalseFocus = false,\n filterClass,\n navigationJump = 4,\n } = props;\n const [showFocus, setShowFocus] = useState(null);\n const [childFocus, setChildFocus] = useState(null);\n const [hasRunConfig, setHasRunConfig] = useState(false);\n\n const getFocuses = () =>\n rootRef.current\n ? Array.from(rootRef.current.getElementsByClassName(filterClass || classes.root))\n : [];\n\n const setTabIndex = (el, tabIndex = 0) => {\n const elChildFocus = getFocusableChildren(el)[0];\n if (elChildFocus) {\n el.tabIndex = -1;\n elChildFocus.tabIndex = tabIndex;\n } else {\n el.tabIndex = tabIndex;\n }\n };\n\n const setSelectedTabIndex = () => {\n const focuses = getFocuses();\n const firstSelected = focuses.find((focus) => focus.classList.contains(classes.selected));\n\n if (!firstSelected) return;\n focuses.forEach((focus) => setTabIndex(focus, -1));\n setTabIndex(firstSelected, 0);\n };\n\n const clearTabSiblings = (el) => {\n getFocuses().forEach((focus) => setTabIndex(focus, -1));\n setTabIndex(el, 0);\n };\n\n const onFocusStrategy = (evt) => {\n if (strategy === \"listbox\") {\n clearTabSiblings(evt.currentTarget);\n }\n };\n\n const onBlurStrategy = () => {\n if (\n strategy === \"listbox\" &&\n rootRef.current &&\n !rootRef.current.contains(document.activeElement)\n ) {\n setTimeout(() => {\n setSelectedTabIndex();\n }, 10);\n }\n };\n\n const config = (el) => {\n const { tabIndex } = configuration;\n if (!el || hasRunConfig) return;\n if (strategy === \"card\") {\n setChildFocus(children);\n return;\n }\n\n if (strategy === \"grid\") {\n return;\n }\n\n const focusableChildren = getFocusableChildren(el);\n if (focusableChildren.length) {\n focusableChildren.forEach((child) => setTabIndex(child, -1));\n setChildFocus(focusableChildren[0]);\n }\n\n if (!isNil(tabIndex)) setTabIndex(el, tabIndex);\n setHasRunConfig(true);\n };\n\n const addFocusClass = (evt) => {\n if (!useFalseFocus) {\n evt.currentTarget.classList.add(classes.focused);\n // add global class HvIsFocused as a marker\n // not to be styled directly, only as helper in specific css queries\n evt.currentTarget.classList.add(\"HvIsFocused\");\n classes.focus.split(\" \").forEach((c) => evt.currentTarget.classList.add(c));\n }\n };\n\n const removeFocusClass = () => {\n if (!useFalseFocus) {\n getFocuses().forEach((element) => {\n element.classList.remove(classes.focused);\n // remove the global class HvIsFocused\n element.classList.remove(\"HvIsFocused\");\n classes.focus.split(\" \").forEach((c) => element.classList.remove(c));\n });\n }\n };\n\n const onFocus = (evt) => {\n addFocusClass(evt);\n setShowFocus(true);\n // give focus to child element if any focusable\n\n if (childFocus && childFocus.focus) childFocus.focus();\n onFocusStrategy(evt);\n };\n\n const onBlur = (evt) => {\n setShowFocus(false);\n removeFocusClass(evt);\n onBlurStrategy(evt);\n };\n\n const onMouseDown = (evt) => {\n const hasCard = !!evt.currentTarget?.querySelector(\".HvIsCardGridElement\");\n if (strategy === \"grid\" && hasCard) return;\n\n setFocusTo(evt.currentTarget);\n setTabIndex(evt.currentTarget, 0);\n // remove focus outline unless explicitly enabled\n if (!focusOnClick) {\n // TODO this piece of code works only because onMouseDown is happening after the focus event\n // There is nothing in here that guarantees the order of these events, so it may present a problem in the future\n removeFocusClass(evt);\n setShowFocus(false);\n }\n };\n\n const focusAndUpdateIndex = (nextFocus, previousFocus, focusesList) => {\n if (focusesList?.includes(previousFocus)) {\n setTabIndex(previousFocus, -1);\n }\n setTabIndex(nextFocus, 0);\n setFocusTo(nextFocus);\n };\n\n const getEnabledKeys = (currentFocusIndex, jump, listSize) => ({\n right: (currentFocusIndex + 1) % jump === 0 || currentFocusIndex + 1 > listSize - 1,\n left: currentFocusIndex % jump === 0,\n up: currentFocusIndex - jump < 0,\n down: currentFocusIndex + jump > listSize || currentFocusIndex + jump > listSize - 1,\n });\n\n const onGridKeyDownHandler = (evt, focuses, focusesList, currentFocusIndex, jump) => {\n const { ArrowUp, ArrowDown, Home, End, ArrowLeft, ArrowRight, Enter, SpaceBar } = KeyboardCodes;\n const childFocusIsInput = childFocus && childFocus.nodeName === \"INPUT\";\n\n if (\n !isOneOfKeys(evt, [ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Home, End, SpaceBar, Enter]) ||\n (childFocusIsInput && isKey(evt, Enter))\n ) {\n // nothing to do\n return;\n }\n\n // we'll do something with the key so prevent default and stop propagation\n // except for Enter and SpaceBar\n if (!isOneOfKeys(evt, [Enter, SpaceBar])) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n const blockedKeys = getEnabledKeys(currentFocusIndex, jump, focusesList.length);\n\n switch (evt.keyCode) {\n case SpaceBar:\n case Enter:\n if (isBrowser(\"firefox\")) {\n evt.target.click();\n } else {\n evt.currentTarget.click();\n }\n break;\n case ArrowUp:\n if (!blockedKeys.up) {\n focusAndUpdateIndex(focuses.jump || focuses.last, evt.current, focusesList);\n }\n break;\n case ArrowDown:\n if (!blockedKeys.down) {\n focusAndUpdateIndex(focuses.fall || focuses.first, evt.current, focusesList);\n }\n break;\n case ArrowLeft:\n if (!blockedKeys.left) {\n focusAndUpdateIndex(focuses.previous || focuses.last, evt.current, focusesList);\n }\n break;\n case ArrowRight:\n if (!blockedKeys.right) {\n focusAndUpdateIndex(focuses.next || focuses.first, evt.current, focusesList);\n }\n break;\n case Home:\n focusAndUpdateIndex(focuses.first, evt.current, focusesList);\n break;\n case End:\n focusAndUpdateIndex(focuses.last, evt.current, focusesList);\n break;\n default:\n }\n };\n\n const onVerticalArrangementHandler = (evt, focuses, focusesList) => {\n const { ArrowUp, ArrowDown, Home, End, Enter, SpaceBar } = KeyboardCodes;\n const childFocusIsInput = childFocus && childFocus.nodeName === \"INPUT\";\n\n if (\n !isOneOfKeys(evt, [ArrowUp, ArrowDown, Home, End, SpaceBar, Enter]) ||\n (childFocusIsInput && isKey(evt, Enter))\n ) {\n // nothing to do\n return;\n }\n\n // we'll do something with the key so prevent default and stop propagation\n evt.preventDefault();\n evt.stopPropagation();\n\n switch (evt.keyCode) {\n case SpaceBar:\n case Enter:\n evt.target.click();\n break;\n case ArrowUp:\n focusAndUpdateIndex(focuses.previous || focuses.last, evt.current, focusesList);\n break;\n case ArrowDown:\n focusAndUpdateIndex(focuses.next || focuses.first, evt.current, focusesList);\n break;\n case Home:\n focusAndUpdateIndex(focuses.first, evt.current, focusesList);\n break;\n case End:\n focusAndUpdateIndex(focuses.last, evt.current, focusesList);\n break;\n default:\n }\n };\n\n const onSingleHandler = (evt) => {\n const { Enter, SpaceBar } = KeyboardCodes;\n const childFocusIsInput = childFocus && childFocus.nodeName === \"INPUT\";\n\n if (!isOneOfKeys(evt, [SpaceBar, Enter]) || (childFocusIsInput && isKey(evt, Enter))) {\n // nothing to do\n return;\n }\n\n // we'll do something with the key so prevent default and stop propagation\n evt.preventDefault();\n evt.stopPropagation();\n\n evt.currentTarget.click();\n };\n\n const onKeyDown = (evt) => {\n if (rootRef.current == null) {\n // operating outside of a composite widget\n // nothing to manage, just style and trigger clicks\n onSingleHandler(evt);\n return;\n }\n\n // TODO keep the smart default, but allow to explictly override if disabled elements should be focusable\n const isDisabledFocusable = strategy === \"menu\";\n const focusesList = getFocuses().filter(\n (el) => isDisabledFocusable || !el.classList.contains(classes.disabled)\n );\n\n const currentFocus = focusesList.indexOf(evt.currentTarget);\n\n const focuses = {\n first: focusesList[0],\n last: focusesList[focusesList.length - 1],\n previous: focusesList[currentFocus - 1],\n next: focusesList[currentFocus + 1],\n fall: focusesList[currentFocus + navigationJump],\n jump: focusesList[currentFocus - navigationJump],\n };\n\n if (strategy === \"grid\") {\n onGridKeyDownHandler(evt, focuses, focusesList, currentFocus, navigationJump);\n return;\n }\n\n // TODO add property for specifing the composite widget orientation\n // TODO implement handler for horizontal orientation\n onVerticalArrangementHandler(evt, focuses, focusesList);\n };\n\n const onKeyUp = (evt) => {\n if (isBrowser(\"firefox\")) evt.preventDefault();\n };\n\n if (disabled) return children;\n\n const focusWrapper = (childrenToWrap) => (\n <div className={classes.externalReference}>\n {childrenToWrap}\n {showFocus && <div className={classes.falseFocus} />}\n </div>\n );\n\n return (\n <ConditionalWrapper condition={useFalseFocus} wrapper={focusWrapper}>\n {React.cloneElement(children, {\n className: clsx(children.props.className, [classes.root, filterClass], {\n [classes.selected]: selected,\n [classes.disabled]: disabledClass,\n [classes.focusDisabled]: focusDisabled,\n }),\n ref: config,\n onFocus,\n onBlur,\n onMouseDown,\n onKeyDown,\n onKeyUp,\n selected,\n })}\n </ConditionalWrapper>\n );\n};\n\nFocus.propTypes = {\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root.\n */\n root: PropTypes.string,\n /**\n * Styles applied when component is selected.\n */\n selected: PropTypes.string,\n /**\n * Styles applied when component is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Styles applied to external reference.\n */\n externalReference: PropTypes.string,\n /**\n * Styles applied when using the false focus.\n */\n falseFocus: PropTypes.string,\n /**\n * Styles applied when focus disabled.\n */\n focusDisabled: PropTypes.string,\n focusGridDisabled: PropTypes.string,\n /**\n * Styles applied when focus active.\n */\n focused: PropTypes.string,\n /**\n * Styles applied when focus customization is passed.\n */\n focus: PropTypes.string,\n }).isRequired,\n /**\n * The reference to the root element to hold all Focus' context.\n */\n rootRef: refType,\n /**\n * Extra configuration for the child element.\n */\n configuration: PropTypes.instanceOf(Object),\n /**\n * Whether the focus is selected.\n */\n selected: PropTypes.bool,\n /**\n * Whether the focus is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Child node to set the focus.\n */\n children: PropTypes.node.isRequired,\n /**\n * Focus and navigation strategy to be used.\n */\n strategy: PropTypes.oneOf([\"listbox\", \"menu\", \"card\", \"grid\"]),\n /**\n * Show focus when click element.\n */\n focusOnClick: PropTypes.bool,\n /**\n * Show focus when click element.\n */\n focusDisabled: PropTypes.bool,\n /**\n * Indicates that the disabled class should be applied.\n */\n disabledClass: PropTypes.bool,\n /**\n * Uses an absolute positioned div as a focus.\n */\n useFalseFocus: PropTypes.bool,\n /**\n * Narrows the results of the focus to only theses class\n */\n filterClass: PropTypes.string,\n /**\n * How much the navigation will skip when using the arrows.\n */\n navigationJump: PropTypes.number,\n};\n\nexport default withStyles(styles, { name: \"HvFocus\" })(Focus);\n"],"file":"Focus.js"}
1
+ {"version":3,"sources":["../../../src/Focus/Focus.js"],"names":["React","useState","PropTypes","clsx","isNil","withStyles","KeyboardCodes","isBrowser","refType","ConditionalWrapper","isKey","isOneOfKeys","setFocusTo","getFocusableChildren","styles","Focus","props","classes","children","configuration","disabledClass","selected","disabled","rootRef","focusOnClick","focusDisabled","strategy","useFalseFocus","filterClass","navigationJump","showFocus","setShowFocus","childFocus","setChildFocus","hasRunConfig","setHasRunConfig","getFocuses","current","Array","from","getElementsByClassName","root","setTabIndex","el","tabIndex","elChildFocus","setSelectedTabIndex","focuses","firstSelected","find","focus","classList","contains","forEach","clearTabSiblings","onFocusStrategy","evt","currentTarget","onBlurStrategy","document","activeElement","setTimeout","config","focusableChildren","length","child","addFocusClass","add","focused","split","c","removeFocusClass","element","remove","onFocus","onBlur","onMouseDown","hasCard","querySelector","focusAndUpdateIndex","nextFocus","previousFocus","focusesList","includes","getEnabledKeys","currentFocusIndex","jump","listSize","right","left","up","down","onGridKeyDownHandler","ArrowUp","ArrowDown","Home","End","ArrowLeft","ArrowRight","Enter","SpaceBar","childFocusIsInput","nodeName","preventDefault","stopPropagation","blockedKeys","keyCode","target","click","last","fall","first","previous","next","onVerticalArrangementHandler","onSingleHandler","onKeyDown","isDisabledFocusable","filter","currentFocus","indexOf","onKeyUp","focusWrapper","childrenToWrap","externalReference","falseFocus","cloneElement","className","ref","propTypes","shape","string","focusGridDisabled","isRequired","instanceOf","Object","bool","node","oneOf","number","name"],"mappings":"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","sourcesContent":["import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport isNil from \"lodash/isNil\";\nimport { withStyles } from \"@material-ui/core\";\nimport { KeyboardCodes, isBrowser, refType } from \"../utils\";\nimport ConditionalWrapper from \"../utils/ConditionalWrapper\";\nimport { isKey, isOneOfKeys, setFocusTo, getFocusableChildren } from \"./utils\";\nimport styles from \"./styles\";\n\n/* eslint-disable no-param-reassign */\nconst Focus = (props) => {\n const {\n classes,\n children,\n configuration = {},\n disabledClass = false,\n selected = false,\n disabled = false,\n rootRef = {},\n focusOnClick = false,\n focusDisabled = true,\n strategy = \"listbox\",\n useFalseFocus = false,\n filterClass,\n navigationJump = 4,\n } = props;\n const [showFocus, setShowFocus] = useState(null);\n const [childFocus, setChildFocus] = useState(null);\n const [hasRunConfig, setHasRunConfig] = useState(false);\n\n const getFocuses = () =>\n rootRef.current\n ? Array.from(rootRef.current.getElementsByClassName(filterClass || classes.root))\n : [];\n\n const setTabIndex = (el, tabIndex = 0) => {\n const elChildFocus = getFocusableChildren(el)[0];\n if (elChildFocus) {\n el.tabIndex = -1;\n elChildFocus.tabIndex = tabIndex;\n } else {\n el.tabIndex = tabIndex;\n }\n };\n\n const setSelectedTabIndex = () => {\n const focuses = getFocuses();\n const firstSelected = focuses.find((focus) => focus.classList.contains(classes.selected));\n\n if (!firstSelected) return;\n focuses.forEach((focus) => setTabIndex(focus, -1));\n setTabIndex(firstSelected, 0);\n };\n\n const clearTabSiblings = (el) => {\n getFocuses().forEach((focus) => setTabIndex(focus, -1));\n setTabIndex(el, 0);\n };\n\n const onFocusStrategy = (evt) => {\n if (strategy === \"listbox\") {\n clearTabSiblings(evt.currentTarget);\n }\n };\n\n const onBlurStrategy = () => {\n if (\n strategy === \"listbox\" &&\n rootRef.current &&\n !rootRef.current.contains(document.activeElement)\n ) {\n setTimeout(() => {\n setSelectedTabIndex();\n }, 10);\n }\n };\n\n const config = (el) => {\n const { tabIndex } = configuration;\n if (!el || hasRunConfig) return;\n if (strategy === \"card\") {\n setChildFocus(children);\n return;\n }\n\n if (strategy === \"grid\") {\n return;\n }\n\n const focusableChildren = getFocusableChildren(el);\n if (focusableChildren.length) {\n focusableChildren.forEach((child) => setTabIndex(child, -1));\n setChildFocus(focusableChildren[0]);\n }\n\n if (!isNil(tabIndex)) setTabIndex(el, tabIndex);\n setHasRunConfig(true);\n };\n\n const addFocusClass = (evt) => {\n if (!useFalseFocus) {\n evt.currentTarget.classList.add(classes.focused);\n // add global class HvIsFocused as a marker\n // not to be styled directly, only as helper in specific css queries\n evt.currentTarget.classList.add(\"HvIsFocused\");\n classes.focus.split(\" \").forEach((c) => evt.currentTarget.classList.add(c));\n }\n };\n\n const removeFocusClass = () => {\n if (!useFalseFocus) {\n getFocuses().forEach((element) => {\n element.classList.remove(classes.focused);\n // remove the global class HvIsFocused\n element.classList.remove(\"HvIsFocused\");\n classes.focus.split(\" \").forEach((c) => element.classList.remove(c));\n });\n }\n };\n\n const onFocus = (evt) => {\n addFocusClass(evt);\n setShowFocus(true);\n // give focus to child element if any focusable\n\n if (childFocus && childFocus.focus) childFocus.focus();\n onFocusStrategy(evt);\n };\n\n const onBlur = (evt) => {\n setShowFocus(false);\n removeFocusClass(evt);\n onBlurStrategy(evt);\n };\n\n const onMouseDown = (evt) => {\n const hasCard = !!evt.currentTarget?.querySelector(\".HvIsCardGridElement\");\n if (strategy === \"grid\" && hasCard) return;\n\n setFocusTo(evt.currentTarget);\n setTabIndex(evt.currentTarget, 0);\n // remove focus outline unless explicitly enabled\n if (!focusOnClick) {\n // TODO this piece of code works only because onMouseDown is happening after the focus event\n // There is nothing in here that guarantees the order of these events, so it may present a problem in the future\n removeFocusClass(evt);\n setShowFocus(false);\n }\n };\n\n const focusAndUpdateIndex = (nextFocus, previousFocus, focusesList) => {\n if (focusesList?.includes(previousFocus)) {\n setTabIndex(previousFocus, -1);\n }\n setTabIndex(nextFocus, 0);\n setFocusTo(nextFocus);\n };\n\n const getEnabledKeys = (currentFocusIndex, jump, listSize) => ({\n right: (currentFocusIndex + 1) % jump === 0 || currentFocusIndex + 1 > listSize - 1,\n left: currentFocusIndex % jump === 0,\n up: currentFocusIndex - jump < 0,\n down: currentFocusIndex + jump > listSize || currentFocusIndex + jump > listSize - 1,\n });\n\n const onGridKeyDownHandler = (evt, focuses, focusesList, currentFocusIndex, jump) => {\n const { ArrowUp, ArrowDown, Home, End, ArrowLeft, ArrowRight, Enter, SpaceBar } = KeyboardCodes;\n const childFocusIsInput = childFocus && childFocus.nodeName === \"INPUT\";\n\n if (\n !isOneOfKeys(evt, [ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Home, End, SpaceBar, Enter]) ||\n (childFocusIsInput && isKey(evt, Enter))\n ) {\n // nothing to do\n return;\n }\n\n // we'll do something with the key so prevent default and stop propagation\n // except for Enter and SpaceBar\n if (!isOneOfKeys(evt, [Enter, SpaceBar])) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n const blockedKeys = getEnabledKeys(currentFocusIndex, jump, focusesList.length);\n\n switch (evt.keyCode) {\n case SpaceBar:\n case Enter:\n if (isBrowser(\"firefox\")) {\n evt.target.click();\n } else {\n evt.currentTarget.click();\n }\n break;\n case ArrowUp:\n if (!blockedKeys.up) {\n focusAndUpdateIndex(focuses.jump || focuses.last, evt.current, focusesList);\n }\n break;\n case ArrowDown:\n if (!blockedKeys.down) {\n focusAndUpdateIndex(focuses.fall || focuses.first, evt.current, focusesList);\n }\n break;\n case ArrowLeft:\n if (!blockedKeys.left) {\n focusAndUpdateIndex(focuses.previous || focuses.last, evt.current, focusesList);\n }\n break;\n case ArrowRight:\n if (!blockedKeys.right) {\n focusAndUpdateIndex(focuses.next || focuses.first, evt.current, focusesList);\n }\n break;\n case Home:\n focusAndUpdateIndex(focuses.first, evt.current, focusesList);\n break;\n case End:\n focusAndUpdateIndex(focuses.last, evt.current, focusesList);\n break;\n default:\n }\n };\n\n const onVerticalArrangementHandler = (evt, focuses, focusesList) => {\n const { ArrowUp, ArrowDown, Home, End, Enter, SpaceBar } = KeyboardCodes;\n const childFocusIsInput = childFocus && childFocus.nodeName === \"INPUT\";\n\n if (\n !isOneOfKeys(evt, [ArrowUp, ArrowDown, Home, End, SpaceBar, Enter]) ||\n (childFocusIsInput && isKey(evt, Enter))\n ) {\n // nothing to do\n return;\n }\n\n // we'll do something with the key so prevent default and stop propagation\n evt.preventDefault();\n evt.stopPropagation();\n\n switch (evt.keyCode) {\n case SpaceBar:\n case Enter:\n evt.target.click();\n break;\n case ArrowUp:\n focusAndUpdateIndex(focuses.previous || focuses.last, evt.current, focusesList);\n break;\n case ArrowDown:\n focusAndUpdateIndex(focuses.next || focuses.first, evt.current, focusesList);\n break;\n case Home:\n focusAndUpdateIndex(focuses.first, evt.current, focusesList);\n break;\n case End:\n focusAndUpdateIndex(focuses.last, evt.current, focusesList);\n break;\n default:\n }\n };\n\n const onSingleHandler = (evt) => {\n const { Enter, SpaceBar } = KeyboardCodes;\n const childFocusIsInput = childFocus && childFocus.nodeName === \"INPUT\";\n\n if (!isOneOfKeys(evt, [SpaceBar, Enter]) || (childFocusIsInput && isKey(evt, Enter))) {\n // nothing to do\n return;\n }\n\n // we'll do something with the key so prevent default and stop propagation\n evt.preventDefault();\n evt.stopPropagation();\n\n evt.currentTarget.click();\n };\n\n const onKeyDown = (evt) => {\n if (rootRef.current == null) {\n // operating outside of a composite widget\n // nothing to manage, just style and trigger clicks\n onSingleHandler(evt);\n return;\n }\n\n // TODO keep the smart default, but allow to explictly override if disabled elements should be focusable\n const isDisabledFocusable = strategy === \"menu\";\n const focusesList = getFocuses().filter(\n (el) => isDisabledFocusable || !el.classList.contains(classes.disabled)\n );\n\n const currentFocus = focusesList.indexOf(evt.currentTarget);\n\n const focuses = {\n first: focusesList[0],\n last: focusesList[focusesList.length - 1],\n previous: focusesList[currentFocus - 1],\n next: focusesList[currentFocus + 1],\n fall: focusesList[currentFocus + navigationJump],\n jump: focusesList[currentFocus - navigationJump],\n };\n\n if (strategy === \"grid\") {\n onGridKeyDownHandler(evt, focuses, focusesList, currentFocus, navigationJump);\n return;\n }\n\n // TODO add property for specifing the composite widget orientation\n // TODO implement handler for horizontal orientation\n onVerticalArrangementHandler(evt, focuses, focusesList);\n };\n\n const onKeyUp = (evt) => {\n if (isBrowser(\"firefox\")) evt.preventDefault();\n };\n\n if (disabled) return children;\n\n const focusWrapper = (childrenToWrap) => (\n <div className={classes.externalReference}>\n {childrenToWrap}\n {showFocus && <div className={classes.falseFocus} />}\n </div>\n );\n\n return (\n <ConditionalWrapper condition={useFalseFocus} wrapper={focusWrapper}>\n {React.cloneElement(children, {\n className: clsx(children.props.className, [classes.root, filterClass], {\n [classes.selected]: selected,\n [classes.disabled]: disabledClass,\n [classes.focusDisabled]: focusDisabled,\n }),\n ref: config,\n onFocus,\n onBlur,\n onMouseDown,\n onKeyDown,\n onKeyUp,\n selected,\n })}\n </ConditionalWrapper>\n );\n};\n\nFocus.propTypes = {\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root.\n */\n root: PropTypes.string,\n /**\n * Styles applied when component is selected.\n */\n selected: PropTypes.string,\n /**\n * Styles applied when component is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Styles applied to external reference.\n */\n externalReference: PropTypes.string,\n /**\n * Styles applied when using the false focus.\n */\n falseFocus: PropTypes.string,\n /**\n * Styles applied when focus disabled.\n */\n focusDisabled: PropTypes.string,\n focusGridDisabled: PropTypes.string,\n /**\n * Styles applied when focus active.\n */\n focused: PropTypes.string,\n /**\n * Styles applied when focus customization is passed.\n */\n focus: PropTypes.string,\n }).isRequired,\n /**\n * The reference to the root element to hold all Focus' context.\n */\n rootRef: refType,\n /**\n * Extra configuration for the child element.\n */\n configuration: PropTypes.instanceOf(Object),\n /**\n * Whether the focus is selected.\n */\n selected: PropTypes.bool,\n /**\n * Whether the focus is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Child node to set the focus.\n */\n children: PropTypes.node.isRequired,\n /**\n * Focus and navigation strategy to be used.\n */\n strategy: PropTypes.oneOf([\"listbox\", \"menu\", \"card\", \"grid\"]),\n /**\n * Show focus when click element.\n */\n focusOnClick: PropTypes.bool,\n /**\n * Show focus when click element.\n */\n focusDisabled: PropTypes.bool,\n /**\n * Indicates that the disabled class should be applied.\n */\n disabledClass: PropTypes.bool,\n /**\n * Uses an absolute positioned div as a focus.\n */\n useFalseFocus: PropTypes.bool,\n /**\n * Narrows the results of the focus to only theses class\n */\n filterClass: PropTypes.string,\n /**\n * How much the navigation will skip when using the arrows.\n */\n navigationJump: PropTypes.number,\n};\n\nexport default withStyles(styles, { name: \"HvFocus\" })(Focus);\n"],"file":"Focus.js"}
@@ -1,6 +1,9 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
+
5
+ var _Selection, _Selection2;
6
+
4
7
  const _excluded = ["id", "classes", "className", "multiSelect", "hasTooltips", "showSelectAll", "labels", "useSelector", "selectable", "singleSelectionToggle", "condensed", "onChange", "onClick", "values", "height", "virtualized"];
5
8
 
6
9
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -139,7 +142,7 @@ const HvList = props => {
139
142
  label: classes.truncate
140
143
  }
141
144
  }), item.label);
142
- return /*#__PURE__*/React.createElement(Selection, null);
145
+ return _Selection || (_Selection = /*#__PURE__*/React.createElement(Selection, null));
143
146
  }
144
147
 
145
148
  return renderItemText(item);
@@ -158,7 +161,7 @@ const HvList = props => {
158
161
  label: classes.truncate
159
162
  }
160
163
  }), item.label);
161
- return /*#__PURE__*/React.createElement(Selection, null);
164
+ return _Selection2 || (_Selection2 = /*#__PURE__*/React.createElement(Selection, null));
162
165
  }
163
166
 
164
167
  return renderItemText(item);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/List/List.js"],"names":["React","isValidElement","useEffect","memo","PropTypes","clsx","FixedSizeList","areEqual","withStyles","DropRightXS","parseList","wrapperTooltip","useSelectableList","HvLink","HvCheckBox","HvListContainer","HvListItem","HvRadio","HvTypography","setId","styles","DEFAULT_LABELS","selectAll","selectionConjunction","HvList","props","id","classes","className","multiSelect","hasTooltips","showSelectAll","labels","useSelector","selectable","singleSelectionToggle","condensed","onChange","onClick","values","valuesProp","height","virtualized","others","list","setList","selection","listRef","useRef","passedProps","parsedList","handleSelect","evt","item","path","preventDefault","disabled","handleSelectAll","anySelectableSelected","some","elem","selected","renderLeftIcon","icon","isSelected","isDisabled","renderSelectAll","anySelected","length","allSelected","selectionLabel","selectAllSelector","renderItemText","ItemText","label","a","link","renderMultiSelectItem","itemId","Selection","root","selectorRoot","container","selectorContainer","truncate","renderSingleSelectItem","renderListItem","i","otherProps","startAdornment","undefined","itemSelector","showNavIcon","box","filteredList","filter","it","isHidden","map","reduce","result","selectedItemIndex","findIndex","current","scrollToItem","ListItem","index","style","tabIndex","top","parseFloat","left","width","interactive","disableGutters","propTypes","number","isRequired","shape","virtualizedRoot","forwardRef","ref","rest","string","arrayOf","oneOfType","node","bool","func","params","instanceOf","Object","name"],"mappings":"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","sourcesContent":["import React, { isValidElement, useEffect, memo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { FixedSizeList, areEqual } from \"react-window\";\n\nimport { withStyles } from \"@material-ui/core\";\nimport { DropRightXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport { parseList, wrapperTooltip } from \"./utils\";\nimport useSelectableList from \"./useSelectableList\";\n\nimport { HvLink, HvCheckBox, HvListContainer, HvListItem, HvRadio, HvTypography, setId } from \"..\";\n\nimport styles from \"./styles\";\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 */\nconst HvList = (props) => {\n const {\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 } = props;\n const [list, setList, selection] = useSelectableList(valuesProp);\n const listRef = React.useRef(null);\n\n useEffect(() => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList = parseList(valuesProp, null, passedProps);\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(list, item, passedProps);\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((elem) => elem.selected || elem.disabled);\n const parsedList = parseList(list, null, passedProps, !anySelectableSelected);\n setList(parsedList);\n\n onChange?.(parsedList);\n };\n\n const renderLeftIcon = (item) =>\n isValidElement(item.icon)\n ? item.icon\n : item.icon?.({\n isSelected: item.selected,\n isDisabled: item.disabled,\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 <HvCheckBox\n id={setId(id, \"select-all\")}\n label={selectionLabel}\n onChange={handleSelectAll}\n className={classes.selectAllSelector}\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 <HvLink key={item.label} route={item.path} classes={{ a: classes.link }}>\n <ItemText />\n </HvLink>\n ) : (\n <ItemText />\n );\n };\n\n const renderMultiSelectItem = (item, itemId) => {\n if (useSelector) {\n const Selection = wrapperTooltip(\n hasTooltips,\n <HvCheckBox\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: classes.selectorRoot,\n container: classes.selectorContainer,\n label: 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 <HvRadio\n id={setId(itemId, \"selector\")}\n label={item.label}\n checked={item.selected}\n disabled={item.disabled}\n classes={{\n root: classes.selectorRoot,\n container: classes.selectorContainer,\n label: 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 <HvListItem\n key={i}\n id={itemId}\n role={selectable ? \"option\" : \"menuitem\"}\n disabled={item.disabled || undefined}\n className={classes.item}\n classes={{ selected: useSelector || multiSelect ? classes.itemSelector : \"\" }}\n selected={multiSelect || selected ? selected : undefined}\n onClick={(evt) => handleSelect(evt, item)}\n startAdornment={startAdornment}\n endAdornment={item.showNavIcon && <DropRightXS className={classes.box} iconSize=\"XS\" />}\n {...otherProps}\n >\n {multiSelect ? renderMultiSelectItem(item, itemId) : renderSingleSelectItem(item, itemId)}\n </HvListItem>\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 = memo(({ index, style }) => {\n const item = filteredList[index];\n const tabIndex =\n item.tabIndex || (!anySelected && index === 0) || (item.selected && !item.disabled) ? 0 : -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 }, areEqual);\n ListItem.propTypes = {\n index: PropTypes.number.isRequired,\n style: PropTypes.shape({\n top: PropTypes.number.isRequired,\n left: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n }).isRequired,\n };\n\n return (\n <>\n {multiSelect && useSelector && showSelectAll && renderSelectAll()}\n\n {filteredList.length > 0 && !virtualized && (\n <HvListContainer\n id={id}\n className={clsx(className, 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 <FixedSizeList\n ref={listRef}\n className={classes.virtualizedRoot}\n height={height + 5}\n width=\"100%\"\n itemCount={filteredList.length}\n itemSize={condensed ? 32 : 40}\n innerElementType={React.forwardRef(({ ...rest }, ref) => (\n <HvListContainer\n id={id}\n className={clsx(className, 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 {...others}\n >\n {ListItem}\n </FixedSizeList>\n )}\n </>\n );\n};\n\nHvList.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the component root class in virtualized form.\n */\n virtualizedRoot: PropTypes.string,\n /**\n * Styles applied to the list item selector.\n */\n selectorRoot: PropTypes.string,\n /**\n * Styles applied to the list item selector label container.\n */\n selectorContainer: PropTypes.string,\n /**\n * Style applied to the icon box.\n */\n box: PropTypes.string,\n /**\n * Styles applied when the list item text when truncate.\n */\n truncate: PropTypes.string,\n /**\n * Styles applied to the list item.\n */\n item: PropTypes.string,\n /**\n * Styles applied to the list item when it has a selector.\n */\n itemSelector: PropTypes.string,\n /**\n * Styles applied to the list item when it has a link path.\n */\n link: PropTypes.string,\n /**\n * Styles applied to the select all selector.\n */\n selectAllSelector: PropTypes.string,\n }).isRequired,\n /**\n * The id of the root element\n */\n id: PropTypes.string,\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 // eslint-disable-next-line react/no-unused-prop-types\n values: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.node.isRequired,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n isHidden: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n showNavIcon: PropTypes.bool,\n path: PropTypes.string,\n params: PropTypes.instanceOf(Object),\n })\n ).isRequired,\n /**\n * If true renders a multi select list.\n */\n multiSelect: PropTypes.bool,\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: PropTypes.bool,\n /**\n * An object containing all the labels for the dropdown.\n */\n labels: PropTypes.shape({\n /**\n * The label used for the All checkbox action.\n */\n selectAll: PropTypes.string,\n /**\n * The label used in the middle of the multiselection count.\n */\n selectionConjunction: PropTypes.string,\n }),\n /**\n * If true renders list items with radio or checkbox selectors.\n */\n useSelector: PropTypes.bool,\n /**\n * Call back fired when list item is selected. Returns selection state.\n */\n onChange: PropTypes.func,\n /**\n * Call back fired when list item is selected. Returns selected item.\n */\n onClick: PropTypes.func,\n /**\n * If `true` the list items will show the selection state.\n */\n selectable: PropTypes.bool,\n /**\n * If `true`, selection can be toggled when single selection.\n */\n singleSelectionToggle: PropTypes.bool,\n /**\n * If `true` the list will be rendered without vertical spacing.\n */\n condensed: PropTypes.bool,\n /**\n * If `true` the dropdown will show tooltips when user mouseenter text in list\n */\n hasTooltips: PropTypes.bool,\n /**\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 */\n height: PropTypes.number,\n /**\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 */\n virtualized: PropTypes.bool,\n};\n\nexport default withStyles(styles, { name: \"HvList\" })(HvList);\n"],"file":"List.js"}
1
+ {"version":3,"sources":["../../../src/List/List.js"],"names":["React","isValidElement","useEffect","memo","PropTypes","clsx","FixedSizeList","areEqual","withStyles","DropRightXS","parseList","wrapperTooltip","useSelectableList","HvLink","HvCheckBox","HvListContainer","HvListItem","HvRadio","HvTypography","setId","styles","DEFAULT_LABELS","selectAll","selectionConjunction","HvList","props","id","classes","className","multiSelect","hasTooltips","showSelectAll","labels","useSelector","selectable","singleSelectionToggle","condensed","onChange","onClick","values","valuesProp","height","virtualized","others","list","setList","selection","listRef","useRef","passedProps","parsedList","handleSelect","evt","item","path","preventDefault","disabled","handleSelectAll","anySelectableSelected","some","elem","selected","renderLeftIcon","icon","isSelected","isDisabled","renderSelectAll","anySelected","length","allSelected","selectionLabel","selectAllSelector","renderItemText","ItemText","label","a","link","renderMultiSelectItem","itemId","Selection","root","selectorRoot","container","selectorContainer","truncate","renderSingleSelectItem","renderListItem","i","otherProps","startAdornment","undefined","itemSelector","showNavIcon","box","filteredList","filter","it","isHidden","map","reduce","result","selectedItemIndex","findIndex","current","scrollToItem","ListItem","index","style","tabIndex","top","parseFloat","left","width","interactive","disableGutters","propTypes","number","isRequired","shape","virtualizedRoot","forwardRef","ref","rest","string","arrayOf","oneOfType","node","bool","func","params","instanceOf","Object","name"],"mappings":"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","sourcesContent":["import React, { isValidElement, useEffect, memo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { FixedSizeList, areEqual } from \"react-window\";\n\nimport { withStyles } from \"@material-ui/core\";\nimport { DropRightXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport { parseList, wrapperTooltip } from \"./utils\";\nimport useSelectableList from \"./useSelectableList\";\n\nimport { HvLink, HvCheckBox, HvListContainer, HvListItem, HvRadio, HvTypography, setId } from \"..\";\n\nimport styles from \"./styles\";\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 */\nconst HvList = (props) => {\n const {\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 } = props;\n const [list, setList, selection] = useSelectableList(valuesProp);\n const listRef = React.useRef(null);\n\n useEffect(() => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList = parseList(valuesProp, null, passedProps);\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(list, item, passedProps);\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((elem) => elem.selected || elem.disabled);\n const parsedList = parseList(list, null, passedProps, !anySelectableSelected);\n setList(parsedList);\n\n onChange?.(parsedList);\n };\n\n const renderLeftIcon = (item) =>\n isValidElement(item.icon)\n ? item.icon\n : item.icon?.({\n isSelected: item.selected,\n isDisabled: item.disabled,\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 <HvCheckBox\n id={setId(id, \"select-all\")}\n label={selectionLabel}\n onChange={handleSelectAll}\n className={classes.selectAllSelector}\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 <HvLink key={item.label} route={item.path} classes={{ a: classes.link }}>\n <ItemText />\n </HvLink>\n ) : (\n <ItemText />\n );\n };\n\n const renderMultiSelectItem = (item, itemId) => {\n if (useSelector) {\n const Selection = wrapperTooltip(\n hasTooltips,\n <HvCheckBox\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: classes.selectorRoot,\n container: classes.selectorContainer,\n label: 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 <HvRadio\n id={setId(itemId, \"selector\")}\n label={item.label}\n checked={item.selected}\n disabled={item.disabled}\n classes={{\n root: classes.selectorRoot,\n container: classes.selectorContainer,\n label: 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 <HvListItem\n key={i}\n id={itemId}\n role={selectable ? \"option\" : \"menuitem\"}\n disabled={item.disabled || undefined}\n className={classes.item}\n classes={{ selected: useSelector || multiSelect ? classes.itemSelector : \"\" }}\n selected={multiSelect || selected ? selected : undefined}\n onClick={(evt) => handleSelect(evt, item)}\n startAdornment={startAdornment}\n endAdornment={item.showNavIcon && <DropRightXS className={classes.box} iconSize=\"XS\" />}\n {...otherProps}\n >\n {multiSelect ? renderMultiSelectItem(item, itemId) : renderSingleSelectItem(item, itemId)}\n </HvListItem>\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 = memo(({ index, style }) => {\n const item = filteredList[index];\n const tabIndex =\n item.tabIndex || (!anySelected && index === 0) || (item.selected && !item.disabled) ? 0 : -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 }, areEqual);\n ListItem.propTypes = {\n index: PropTypes.number.isRequired,\n style: PropTypes.shape({\n top: PropTypes.number.isRequired,\n left: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n }).isRequired,\n };\n\n return (\n <>\n {multiSelect && useSelector && showSelectAll && renderSelectAll()}\n\n {filteredList.length > 0 && !virtualized && (\n <HvListContainer\n id={id}\n className={clsx(className, 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 <FixedSizeList\n ref={listRef}\n className={classes.virtualizedRoot}\n height={height + 5}\n width=\"100%\"\n itemCount={filteredList.length}\n itemSize={condensed ? 32 : 40}\n innerElementType={React.forwardRef(({ ...rest }, ref) => (\n <HvListContainer\n id={id}\n className={clsx(className, 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 {...others}\n >\n {ListItem}\n </FixedSizeList>\n )}\n </>\n );\n};\n\nHvList.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the component root class in virtualized form.\n */\n virtualizedRoot: PropTypes.string,\n /**\n * Styles applied to the list item selector.\n */\n selectorRoot: PropTypes.string,\n /**\n * Styles applied to the list item selector label container.\n */\n selectorContainer: PropTypes.string,\n /**\n * Style applied to the icon box.\n */\n box: PropTypes.string,\n /**\n * Styles applied when the list item text when truncate.\n */\n truncate: PropTypes.string,\n /**\n * Styles applied to the list item.\n */\n item: PropTypes.string,\n /**\n * Styles applied to the list item when it has a selector.\n */\n itemSelector: PropTypes.string,\n /**\n * Styles applied to the list item when it has a link path.\n */\n link: PropTypes.string,\n /**\n * Styles applied to the select all selector.\n */\n selectAllSelector: PropTypes.string,\n }).isRequired,\n /**\n * The id of the root element\n */\n id: PropTypes.string,\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 // eslint-disable-next-line react/no-unused-prop-types\n values: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.node.isRequired,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n isHidden: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n showNavIcon: PropTypes.bool,\n path: PropTypes.string,\n params: PropTypes.instanceOf(Object),\n })\n ).isRequired,\n /**\n * If true renders a multi select list.\n */\n multiSelect: PropTypes.bool,\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: PropTypes.bool,\n /**\n * An object containing all the labels for the dropdown.\n */\n labels: PropTypes.shape({\n /**\n * The label used for the All checkbox action.\n */\n selectAll: PropTypes.string,\n /**\n * The label used in the middle of the multiselection count.\n */\n selectionConjunction: PropTypes.string,\n }),\n /**\n * If true renders list items with radio or checkbox selectors.\n */\n useSelector: PropTypes.bool,\n /**\n * Call back fired when list item is selected. Returns selection state.\n */\n onChange: PropTypes.func,\n /**\n * Call back fired when list item is selected. Returns selected item.\n */\n onClick: PropTypes.func,\n /**\n * If `true` the list items will show the selection state.\n */\n selectable: PropTypes.bool,\n /**\n * If `true`, selection can be toggled when single selection.\n */\n singleSelectionToggle: PropTypes.bool,\n /**\n * If `true` the list will be rendered without vertical spacing.\n */\n condensed: PropTypes.bool,\n /**\n * If `true` the dropdown will show tooltips when user mouseenter text in list\n */\n hasTooltips: PropTypes.bool,\n /**\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 */\n height: PropTypes.number,\n /**\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 */\n virtualized: PropTypes.bool,\n};\n\nexport default withStyles(styles, { name: \"HvList\" })(HvList);\n"],"file":"List.js"}