@hitachivantara/uikit-react-core 5.24.5 → 5.24.6

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 (58) hide show
  1. package/dist/cjs/components/BaseDropdown/BaseDropdown.cjs +5 -0
  2. package/dist/cjs/components/BaseDropdown/BaseDropdown.cjs.map +1 -1
  3. package/dist/cjs/components/Dropdown/Dropdown.cjs +1 -0
  4. package/dist/cjs/components/Dropdown/Dropdown.cjs.map +1 -1
  5. package/dist/cjs/components/Focus/Focus.cjs +25 -39
  6. package/dist/cjs/components/Focus/Focus.cjs.map +1 -1
  7. package/dist/cjs/components/Focus/Focus.styles.cjs +43 -40
  8. package/dist/cjs/components/Focus/Focus.styles.cjs.map +1 -1
  9. package/dist/cjs/components/List/List.cjs +38 -28
  10. package/dist/cjs/components/List/List.cjs.map +1 -1
  11. package/dist/cjs/components/List/List.styles.cjs +38 -149
  12. package/dist/cjs/components/List/List.styles.cjs.map +1 -1
  13. package/dist/cjs/components/MultiButton/MultiButton.cjs +15 -11
  14. package/dist/cjs/components/MultiButton/MultiButton.cjs.map +1 -1
  15. package/dist/cjs/components/MultiButton/MultiButton.styles.cjs +109 -151
  16. package/dist/cjs/components/MultiButton/MultiButton.styles.cjs.map +1 -1
  17. package/dist/cjs/components/SimpleGrid/SimpleGrid.cjs +11 -3
  18. package/dist/cjs/components/SimpleGrid/SimpleGrid.cjs.map +1 -1
  19. package/dist/cjs/components/SimpleGrid/SimpleGrid.styles.cjs +29 -28
  20. package/dist/cjs/components/SimpleGrid/SimpleGrid.styles.cjs.map +1 -1
  21. package/dist/cjs/components/VerticalNavigation/NavigationSlider/NavigationSlider.styles.cjs +1 -1
  22. package/dist/cjs/index.cjs +6 -6
  23. package/dist/esm/components/BaseDropdown/BaseDropdown.js +5 -0
  24. package/dist/esm/components/BaseDropdown/BaseDropdown.js.map +1 -1
  25. package/dist/esm/components/Dropdown/Dropdown.js +1 -0
  26. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  27. package/dist/esm/components/Focus/Focus.js +27 -41
  28. package/dist/esm/components/Focus/Focus.js.map +1 -1
  29. package/dist/esm/components/Focus/Focus.styles.js +43 -38
  30. package/dist/esm/components/Focus/Focus.styles.js.map +1 -1
  31. package/dist/esm/components/List/List.js +39 -28
  32. package/dist/esm/components/List/List.js.map +1 -1
  33. package/dist/esm/components/List/List.styles.js +38 -147
  34. package/dist/esm/components/List/List.styles.js.map +1 -1
  35. package/dist/esm/components/MultiButton/MultiButton.js +18 -13
  36. package/dist/esm/components/MultiButton/MultiButton.js.map +1 -1
  37. package/dist/esm/components/MultiButton/MultiButton.styles.js +109 -149
  38. package/dist/esm/components/MultiButton/MultiButton.styles.js.map +1 -1
  39. package/dist/esm/components/SimpleGrid/SimpleGrid.js +12 -4
  40. package/dist/esm/components/SimpleGrid/SimpleGrid.js.map +1 -1
  41. package/dist/esm/components/SimpleGrid/SimpleGrid.styles.js +29 -26
  42. package/dist/esm/components/SimpleGrid/SimpleGrid.styles.js.map +1 -1
  43. package/dist/esm/components/VerticalNavigation/NavigationSlider/NavigationSlider.styles.js +1 -1
  44. package/dist/esm/index.js +238 -238
  45. package/dist/types/index.d.ts +395 -374
  46. package/package.json +5 -5
  47. package/dist/cjs/components/Focus/focusClasses.cjs +0 -8
  48. package/dist/cjs/components/Focus/focusClasses.cjs.map +0 -1
  49. package/dist/cjs/components/List/listClasses.cjs +0 -8
  50. package/dist/cjs/components/List/listClasses.cjs.map +0 -1
  51. package/dist/cjs/components/MultiButton/multiButtonClasses.cjs +0 -8
  52. package/dist/cjs/components/MultiButton/multiButtonClasses.cjs.map +0 -1
  53. package/dist/esm/components/Focus/focusClasses.js +0 -8
  54. package/dist/esm/components/Focus/focusClasses.js.map +0 -1
  55. package/dist/esm/components/List/listClasses.js +0 -8
  56. package/dist/esm/components/List/listClasses.js.map +0 -1
  57. package/dist/esm/components/MultiButton/multiButtonClasses.js +0 -8
  58. package/dist/esm/components/MultiButton/multiButtonClasses.js.map +0 -1
@@ -1,45 +1,48 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const _styled = require("@emotion/styled/base");
4
3
  const focusUtils = require("../../utils/focusUtils.cjs");
5
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
6
- const _styled__default = /* @__PURE__ */ _interopDefault(_styled);
7
- function _EMOTION_STRINGIFIED_CSS_ERROR__() {
8
- return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
9
- }
10
- const StyledFocusWrapper = /* @__PURE__ */ _styled__default.default("div", process.env.NODE_ENV === "production" ? {
11
- target: "ee8blvn1"
12
- } : {
13
- target: "ee8blvn1",
14
- label: "StyledFocusWrapper"
15
- })(process.env.NODE_ENV === "production" ? {
16
- name: "bjn8wh",
17
- styles: "position:relative"
18
- } : {
19
- name: "bjn8wh",
20
- styles: "position:relative",
21
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRm9jdXMvRm9jdXMuc3R5bGVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHa0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvaHYtdWlraXQtcmVhY3QvaHYtdWlraXQtcmVhY3QvcGFja2FnZXMvY29yZS9zcmMvY29tcG9uZW50cy9Gb2N1cy9Gb2N1cy5zdHlsZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBvdXRsaW5lU3R5bGVzIH0gZnJvbSBcIkBjb3JlL3V0aWxzL2ZvY3VzVXRpbHNcIjtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEZvY3VzV3JhcHBlciA9IHN0eWxlZChcImRpdlwiKSh7XG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEZhbHNlRm9jdXMgPSBzdHlsZWQoXCJkaXZcIikoe1xuICB3aWR0aDogXCI5OCVcIixcbiAgaGVpZ2h0OiBcIjk4JVwiLFxuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB6SW5kZXg6IFwiMVwiLFxuICAuLi5vdXRsaW5lU3R5bGVzLFxuICBcIkBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApXCI6IHtcbiAgICAuLi5vdXRsaW5lU3R5bGVzLFxuICB9LFxuICB0b3A6IDAsXG4gIGxlZnQ6IFwiMC41JVwiLFxuICBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG59KTtcbiJdfQ== */",
22
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
23
- });
24
- const StyledFalseFocus = /* @__PURE__ */ _styled__default.default("div", process.env.NODE_ENV === "production" ? {
25
- target: "ee8blvn0"
26
- } : {
27
- target: "ee8blvn0",
28
- label: "StyledFalseFocus"
29
- })({
30
- width: "98%",
31
- height: "98%",
32
- position: "absolute",
33
- zIndex: "1",
34
- ...focusUtils.outlineStyles,
35
- "@media (-webkit-min-device-pixel-ratio:0)": {
36
- ...focusUtils.outlineStyles
4
+ const classes = require("../../utils/classes.cjs");
5
+ const {
6
+ staticClasses,
7
+ useClasses
8
+ } = classes.createClasses("HvFocus", {
9
+ root: {},
10
+ selected: {},
11
+ disabled: {},
12
+ focusDisabled: {
13
+ outline: "none",
14
+ "& *:focus": {
15
+ outline: "none"
16
+ },
17
+ "& *": {
18
+ outline: "none !important"
19
+ }
20
+ },
21
+ focused: {
22
+ ...focusUtils.outlineStyles,
23
+ "@media (-webkit-min-device-pixel-ratio:0)": {
24
+ ...focusUtils.outlineStyles
25
+ }
26
+ },
27
+ externalReference: {
28
+ position: "relative"
37
29
  },
38
- top: 0,
39
- left: "0.5%",
40
- backgroundColor: "transparent",
41
- pointerEvents: "none"
42
- }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRm9jdXMvRm9jdXMuc3R5bGVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPZ0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvaHYtdWlraXQtcmVhY3QvaHYtdWlraXQtcmVhY3QvcGFja2FnZXMvY29yZS9zcmMvY29tcG9uZW50cy9Gb2N1cy9Gb2N1cy5zdHlsZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBvdXRsaW5lU3R5bGVzIH0gZnJvbSBcIkBjb3JlL3V0aWxzL2ZvY3VzVXRpbHNcIjtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEZvY3VzV3JhcHBlciA9IHN0eWxlZChcImRpdlwiKSh7XG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEZhbHNlRm9jdXMgPSBzdHlsZWQoXCJkaXZcIikoe1xuICB3aWR0aDogXCI5OCVcIixcbiAgaGVpZ2h0OiBcIjk4JVwiLFxuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB6SW5kZXg6IFwiMVwiLFxuICAuLi5vdXRsaW5lU3R5bGVzLFxuICBcIkBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApXCI6IHtcbiAgICAuLi5vdXRsaW5lU3R5bGVzLFxuICB9LFxuICB0b3A6IDAsXG4gIGxlZnQ6IFwiMC41JVwiLFxuICBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG59KTtcbiJdfQ== */");
43
- exports.StyledFalseFocus = StyledFalseFocus;
44
- exports.StyledFocusWrapper = StyledFocusWrapper;
30
+ falseFocus: {
31
+ width: "98%",
32
+ height: "98%",
33
+ position: "absolute",
34
+ zIndex: "1",
35
+ ...focusUtils.outlineStyles,
36
+ "@media (-webkit-min-device-pixel-ratio:0)": {
37
+ ...focusUtils.outlineStyles
38
+ },
39
+ top: 0,
40
+ left: "0.5%",
41
+ backgroundColor: "transparent",
42
+ pointerEvents: "none"
43
+ },
44
+ focus: {}
45
+ });
46
+ exports.staticClasses = staticClasses;
47
+ exports.useClasses = useClasses;
45
48
  //# sourceMappingURL=Focus.styles.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Focus.styles.cjs","sources":["../../../../src/components/Focus/Focus.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { outlineStyles } from \"@core/utils/focusUtils\";\n\nexport const StyledFocusWrapper = styled(\"div\")({\n position: \"relative\",\n});\n\nexport const StyledFalseFocus = styled(\"div\")({\n width: \"98%\",\n height: \"98%\",\n position: \"absolute\",\n zIndex: \"1\",\n ...outlineStyles,\n \"@media (-webkit-min-device-pixel-ratio:0)\": {\n ...outlineStyles,\n },\n top: 0,\n left: \"0.5%\",\n backgroundColor: \"transparent\",\n pointerEvents: \"none\",\n});\n"],"names":["StyledFocusWrapper","_styled","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","StyledFalseFocus","width","height","position","zIndex","outlineStyles","top","left","backgroundColor","pointerEvents"],"mappings":";;;;;;;;;AAGO,MAAMA,qBAA4BC,iCAAA,QAAA,OAAKC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAACJ,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAG,MAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAD,MAAA;AAAA,EAAAC,QAAA;AAAA,EAAAC,KAAA;AAAA,EAAAC,UAAAC;AAAA,CAE9C;AAEM,MAAMC,mBAA0BX,iCAAA,QAAA,OAAKC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAAE;AAAA,EAC5CO,OAAO;AAAA,EACPC,QAAQ;AAAA,EACRC,UAAU;AAAA,EACVC,QAAQ;AAAA,EACR,GAAGC,WAAAA;AAAAA,EACH,6CAA6C;AAAA,IAC3C,GAAGA,WAAAA;AAAAA,EACL;AAAA,EACAC,KAAK;AAAA,EACLC,MAAM;AAAA,EACNC,iBAAiB;AAAA,EACjBC,eAAe;AACjB,GAACnB,QAAAC,IAAAC,aAAC,eAAA,KAAA,qoCAAA;;;"}
1
+ {"version":3,"file":"Focus.styles.cjs","sources":["../../../../src/components/Focus/Focus.styles.tsx"],"sourcesContent":["import { outlineStyles } from \"@core/utils/focusUtils\";\nimport { createClasses } from \"@core/utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvFocus\", {\n root: {},\n selected: {},\n disabled: {},\n focusDisabled: {\n outline: \"none\",\n \"& *:focus\": {\n outline: \"none\",\n },\n \"& *\": {\n outline: \"none !important\",\n },\n },\n focused: {\n ...outlineStyles,\n \"@media (-webkit-min-device-pixel-ratio:0)\": {\n ...outlineStyles,\n },\n },\n externalReference: {\n position: \"relative\",\n },\n falseFocus: {\n width: \"98%\",\n height: \"98%\",\n position: \"absolute\",\n zIndex: \"1\",\n ...outlineStyles,\n \"@media (-webkit-min-device-pixel-ratio:0)\": {\n ...outlineStyles,\n },\n top: 0,\n left: \"0.5%\",\n backgroundColor: \"transparent\",\n pointerEvents: \"none\",\n },\n focus: {},\n});\n"],"names":["staticClasses","useClasses","createClasses","root","selected","disabled","focusDisabled","outline","focused","outlineStyles","externalReference","position","falseFocus","width","height","zIndex","top","left","backgroundColor","pointerEvents","focus"],"mappings":";;;;AAGa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,QAAAA,cAAc,WAAW;AAAA,EACpEC,MAAM,CAAC;AAAA,EACPC,UAAU,CAAC;AAAA,EACXC,UAAU,CAAC;AAAA,EACXC,eAAe;AAAA,IACbC,SAAS;AAAA,IACT,aAAa;AAAA,MACXA,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACLA,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACAC,SAAS;AAAA,IACP,GAAGC,WAAAA;AAAAA,IACH,6CAA6C;AAAA,MAC3C,GAAGA,WAAAA;AAAAA,IACL;AAAA,EACF;AAAA,EACAC,mBAAmB;AAAA,IACjBC,UAAU;AAAA,EACZ;AAAA,EACAC,YAAY;AAAA,IACVC,OAAO;AAAA,IACPC,QAAQ;AAAA,IACRH,UAAU;AAAA,IACVI,QAAQ;AAAA,IACR,GAAGN,WAAAA;AAAAA,IACH,6CAA6C;AAAA,MAC3C,GAAGA,WAAAA;AAAAA,IACL;AAAA,IACAO,KAAK;AAAA,IACLC,MAAM;AAAA,IACNC,iBAAiB;AAAA,IACjBC,eAAe;AAAA,EACjB;AAAA,EACAC,OAAO,CAAC;AACV,CAAC;;;"}
@@ -1,17 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const React = require("react");
4
+ const reactWindow = require("react-window");
5
+ const uikitReactIcons = require("@hitachivantara/uikit-react-icons");
4
6
  const useDefaultProps = require("../../hooks/useDefaultProps.cjs");
5
- const clsx = require("clsx");
6
7
  const setId = require("../../utils/setId.cjs");
7
8
  const wrapperTooltip = require("../../utils/wrapperTooltip.cjs");
8
9
  const List_styles = require("./List.styles.cjs");
9
- const listClasses = require("./listClasses.cjs");
10
10
  const useSelectableList = require("./useSelectableList.cjs");
11
11
  const utils = require("./utils.cjs");
12
12
  const jsxRuntime = require("@emotion/react/jsx-runtime");
13
+ const Radio = require("../Radio/Radio.cjs");
14
+ const Link = require("../Link/Link.cjs");
13
15
  const ListContainer = require("../ListContainer/ListContainer.cjs");
14
16
  const Typography = require("../Typography/Typography.cjs");
17
+ const CheckBox = require("../CheckBox/CheckBox.cjs");
18
+ const ListItem = require("../ListContainer/ListItem/ListItem.cjs");
15
19
  const DEFAULT_LABELS = {
16
20
  selectAll: "Select All",
17
21
  selectionConjunction: "/"
@@ -19,7 +23,7 @@ const DEFAULT_LABELS = {
19
23
  const HvList = (props) => {
20
24
  const {
21
25
  id,
22
- classes,
26
+ classes: classesProp,
23
27
  className,
24
28
  multiSelect = false,
25
29
  hasTooltips = false,
@@ -36,6 +40,10 @@ const HvList = (props) => {
36
40
  virtualized = false,
37
41
  ...others
38
42
  } = useDefaultProps.useDefaultProps("HvList", props);
43
+ const {
44
+ classes,
45
+ cx
46
+ } = List_styles.useClasses(classesProp);
39
47
  const [list, setList, selection] = useSelectableList.useSelectableList(valuesProp);
40
48
  const listRef = React.useRef(null);
41
49
  React.useEffect(() => {
@@ -99,37 +107,37 @@ const HvList = (props) => {
99
107
  }), ` ${selectionConjunction} `, list.length]
100
108
  })
101
109
  });
102
- return /* @__PURE__ */ jsxRuntime.jsx(List_styles.StyledSelectAllCheckBox, {
110
+ return /* @__PURE__ */ jsxRuntime.jsx(CheckBox.HvCheckBox, {
103
111
  id: setId.setId(id, "select-all"),
104
112
  label: selectionLabel,
105
113
  onChange: handleSelectAll,
106
- className: clsx.clsx(listClasses.default.selectAllSelector, classes == null ? void 0 : classes.selectAllSelector),
114
+ className: classes.selectAllSelector,
107
115
  indeterminate: anySelected2 && !allSelected,
108
116
  checked: allSelected
109
117
  });
110
118
  };
111
119
  const renderItemText = (item) => {
112
120
  const ItemText = wrapperTooltip.wrapperTooltip(hasTooltips, item.label, item.label);
113
- return !multiSelect && item.path ? /* @__PURE__ */ jsxRuntime.jsx(List_styles.StyledLink, {
121
+ return !multiSelect && item.path ? /* @__PURE__ */ jsxRuntime.jsx(Link.HvLink, {
114
122
  route: item.path,
115
123
  classes: {
116
- a: clsx.clsx(listClasses.default.link, classes == null ? void 0 : classes.link)
124
+ a: classes.link
117
125
  },
118
126
  children: /* @__PURE__ */ jsxRuntime.jsx(ItemText, {})
119
127
  }, item.label) : /* @__PURE__ */ jsxRuntime.jsx(ItemText, {});
120
128
  };
121
129
  const renderMultiSelectItem = (item, itemId) => {
122
130
  if (useSelector) {
123
- const Selection = wrapperTooltip.wrapperTooltip(hasTooltips, /* @__PURE__ */ jsxRuntime.jsx(List_styles.StyledMultiSelectCheckBox, {
131
+ const Selection = wrapperTooltip.wrapperTooltip(hasTooltips, /* @__PURE__ */ jsxRuntime.jsx(CheckBox.HvCheckBox, {
124
132
  id: setId.setId(itemId, "selector"),
125
133
  label: item.label,
126
134
  checked: item.selected,
127
135
  disabled: item.disabled,
128
136
  onChange: (evt) => handleSelect(evt, item),
129
137
  classes: {
130
- root: clsx.clsx(listClasses.default.selectorRoot, classes == null ? void 0 : classes.selectorRoot),
131
- container: clsx.clsx(listClasses.default.selectorContainer, classes == null ? void 0 : classes.selectorContainer),
132
- label: clsx.clsx(listClasses.default.truncate, classes == null ? void 0 : classes.truncate)
138
+ root: classes.selectorRoot,
139
+ container: classes.selectorContainer,
140
+ label: classes.truncate
133
141
  }
134
142
  }), item.label);
135
143
  return /* @__PURE__ */ jsxRuntime.jsx(Selection, {});
@@ -138,15 +146,15 @@ const HvList = (props) => {
138
146
  };
139
147
  const renderSingleSelectItem = (item, itemId) => {
140
148
  if (useSelector) {
141
- const Selection = wrapperTooltip.wrapperTooltip(hasTooltips, /* @__PURE__ */ jsxRuntime.jsx(List_styles.StyledSingleSelectRadio, {
149
+ const Selection = wrapperTooltip.wrapperTooltip(hasTooltips, /* @__PURE__ */ jsxRuntime.jsx(Radio.HvRadio, {
142
150
  id: setId.setId(itemId, "selector"),
143
151
  label: item.label,
144
152
  checked: item.selected,
145
153
  disabled: item.disabled,
146
154
  classes: {
147
- root: clsx.clsx(listClasses.default.selectorRoot, classes == null ? void 0 : classes.selectorRoot),
148
- container: clsx.clsx(listClasses.default.selectorContainer, classes == null ? void 0 : classes.selectorContainer),
149
- label: clsx.clsx(listClasses.default.truncate, classes == null ? void 0 : classes.truncate)
155
+ root: classes.selectorRoot,
156
+ container: classes.selectorContainer,
157
+ label: classes.truncate
150
158
  }
151
159
  }), item.label);
152
160
  return /* @__PURE__ */ jsxRuntime.jsx(Selection, {});
@@ -160,22 +168,23 @@ const HvList = (props) => {
160
168
  if (!useSelector && item.icon) {
161
169
  startAdornment = renderLeftIcon(item);
162
170
  }
163
- return /* @__PURE__ */ jsxRuntime.jsx(List_styles.StyledListItem, {
171
+ return /* @__PURE__ */ jsxRuntime.jsx(ListItem.HvListItem, {
164
172
  id: itemId,
165
173
  role: selectable ? "option" : "menuitem",
166
174
  disabled: item.disabled || void 0,
167
- className: clsx.clsx(listClasses.default.item, classes == null ? void 0 : classes.item),
175
+ className: classes.item,
168
176
  classes: {
169
- selected: useSelector || multiSelect ? clsx.clsx(listClasses.default.itemSelector, classes == null ? void 0 : classes.itemSelector) : void 0
177
+ selected: cx({
178
+ [classes.itemSelector]: useSelector || multiSelect
179
+ })
170
180
  },
171
181
  selected: multiSelect || selected ? selected : void 0,
172
182
  onClick: (evt) => handleSelect(evt, item),
173
183
  startAdornment,
174
- endAdornment: item.showNavIcon && /* @__PURE__ */ jsxRuntime.jsx(List_styles.StyledDropRightXS, {
175
- className: clsx.clsx(listClasses.default.box, classes == null ? void 0 : classes.box),
184
+ endAdornment: item.showNavIcon && /* @__PURE__ */ jsxRuntime.jsx(uikitReactIcons.DropRightXS, {
185
+ className: classes.box,
176
186
  iconSize: "XS"
177
187
  }),
178
- $applySelected: useSelector || multiSelect,
179
188
  ...otherProps,
180
189
  children: multiSelect ? renderMultiSelectItem(item, itemId) : renderSingleSelectItem(item, itemId)
181
190
  }, i);
@@ -188,7 +197,7 @@ const HvList = (props) => {
188
197
  listRef.current.scrollToItem(selectedItemIndex);
189
198
  }
190
199
  }, [listRef, selectedItemIndex]);
191
- const ListItem = ({
200
+ const ListItem$1 = ({
192
201
  index,
193
202
  style
194
203
  }) => {
@@ -212,7 +221,7 @@ const HvList = (props) => {
212
221
  ...rest
213
222
  }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ListContainer.HvListContainer, {
214
223
  id,
215
- className: clsx.clsx(className, listClasses.default.root, classes == null ? void 0 : classes.root),
224
+ className: cx(classes.root, className),
216
225
  role: selectable ? "listbox" : "menu",
217
226
  interactive: true,
218
227
  condensed,
@@ -221,11 +230,11 @@ const HvList = (props) => {
221
230
  ref,
222
231
  ...rest
223
232
  }));
224
- }, [id, useSelector, className, classes, condensed, selectable, multiSelect]);
233
+ }, [cx, id, useSelector, className, classes, condensed, selectable, multiSelect]);
225
234
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
226
235
  children: [multiSelect && useSelector && showSelectAll && renderSelectAll(), filteredList.length > 0 && !virtualized && /* @__PURE__ */ jsxRuntime.jsx(ListContainer.HvListContainer, {
227
236
  id,
228
- className: clsx.clsx(className, listClasses.default.root, classes == null ? void 0 : classes.root),
237
+ className: cx(classes.root, className),
229
238
  role: selectable ? "listbox" : "menu",
230
239
  interactive: true,
231
240
  condensed,
@@ -233,18 +242,19 @@ const HvList = (props) => {
233
242
  "aria-multiselectable": selectable && multiSelect || void 0,
234
243
  ...others,
235
244
  children: filteredList.map((item, i) => renderListItem(item, i))
236
- }), filteredList.length > 0 && virtualized && /* @__PURE__ */ jsxRuntime.jsx(List_styles.StyledFixedSizeList, {
245
+ }), filteredList.length > 0 && virtualized && /* @__PURE__ */ jsxRuntime.jsx(reactWindow.FixedSizeList, {
237
246
  ref: listRef,
238
- className: clsx.clsx(listClasses.default.virtualizedRoot, classes == null ? void 0 : classes.virtualizedRoot),
247
+ className: classes.virtualizedRoot,
239
248
  height: (height || 0) + 5,
240
249
  width: "100%",
241
250
  itemCount: filteredList.length,
242
251
  itemSize: condensed ? 32 : 40,
243
252
  innerElementType: renderFixedList,
244
253
  ...others,
245
- children: ListItem
254
+ children: ListItem$1
246
255
  })]
247
256
  });
248
257
  };
258
+ exports.listClasses = List_styles.staticClasses;
249
259
  exports.HvList = HvList;
250
260
  //# sourceMappingURL=List.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"List.cjs","sources":["../../../../src/components/List/List.tsx"],"sourcesContent":["import { forwardRef, isValidElement, useEffect, useMemo, useRef } from \"react\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport { clsx } from \"clsx\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvListContainer } from \"@core/components/ListContainer\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { setId } from \"@core/utils/setId\";\nimport { wrapperTooltip } from \"@core/utils/wrapperTooltip\";\n\nimport {\n StyledFixedSizeList,\n StyledSelectAllCheckBox,\n StyledLink,\n StyledMultiSelectCheckBox,\n StyledSingleSelectRadio,\n StyledListItem,\n StyledDropRightXS,\n} from \"./List.styles\";\nimport listClasses, { HvListClasses } from \"./listClasses\";\nimport { useSelectableList } from \"./useSelectableList\";\nimport { parseList } from \"./utils\";\nimport { HvListLabels, HvListValue } from \"./types\";\n\nexport interface HvListProps\n extends HvBaseProps<HTMLUListElement, \"onChange\" | \"onClick\"> {\n /**\n * A list containing the elements to be rendered.\n *\n * - id: The id of the item.\n * - label: The label of the element to be rendered.\n * - selected: The selection state of the element.\n * - disabled: The disabled state of the element.\n * - isHidden: Is item visible.\n * - icon: The icon.\n * - showNavIcon: If true renders the navigation icon on the right.\n * - path: The path to navigate to.\n */\n values: HvListValue[];\n /** If true renders a multi select list. */\n multiSelect?: boolean;\n /**\n * If true renders select all option for multi selection lists with selectors.\n * note: It will only be rendered if multiSelect and useSelector props are set to true.\n */\n showSelectAll?: boolean;\n /** An object containing all the labels for the dropdown. */\n labels?: HvListLabels;\n /** If true renders list items with radio or checkbox selectors. */\n useSelector?: boolean;\n /** Call back fired when list item is selected. Returns selection state. */\n onChange?: (value: HvListValue[]) => void;\n /** Call back fired when list item is selected. Returns selected item. */\n onClick?: (\n event: React.ChangeEvent<HTMLLIElement>,\n value: HvListValue\n ) => void;\n /** If `true` the list items will show the selection state. */\n selectable?: boolean;\n /** If `true`, selection can be toggled when single selection. */\n singleSelectionToggle?: boolean;\n /** If `true` the list will be rendered without vertical spacing. */\n condensed?: boolean;\n /** If `true` the dropdown will show tooltips when user mouseenter text in list */\n hasTooltips?: boolean;\n /** Experimental. Height of the dropdown, in case you want to control it from a prop. Styles can also be used through dropdownListContainer class. Required in case virtualized is used */\n height?: number;\n /** Experimental. Uses dropdown in a virtualized form, where not all options are rendered initially. Good for use cases with a lot of options. */\n virtualized?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvListClasses;\n}\n\nconst DEFAULT_LABELS = {\n selectAll: \"Select All\",\n selectionConjunction: \"/\",\n};\n\n/**\n * Component used to show a set of related data to the user.\n */\nexport const HvList = (props: HvListProps) => {\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 } = useDefaultProps(\"HvList\", props);\n\n const [list, setList, selection] = useSelectableList(valuesProp);\n const listRef = useRef<any>(null);\n\n useEffect(() => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList: HvListValue[] = parseList(\n undefined,\n passedProps,\n undefined,\n valuesProp\n );\n\n setList(parsedList);\n }, [valuesProp, multiSelect, selectable, singleSelectionToggle, setList]);\n\n const handleSelect = (evt, item) => {\n if (!item.path) evt.preventDefault();\n if (item.disabled) return;\n\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList = parseList(item, passedProps, undefined, list);\n setList(parsedList);\n\n onClick?.(evt, item);\n onChange?.(parsedList);\n };\n\n const handleSelectAll = () => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const anySelectableSelected = list.some(\n (elem) => elem.selected || elem.disabled\n );\n const parsedList = parseList(\n undefined,\n passedProps,\n !anySelectableSelected,\n list\n );\n setList(parsedList);\n\n onChange?.(parsedList);\n };\n\n const renderLeftIcon = (item) => {\n return isValidElement(item.icon)\n ? item.icon\n : item.icon?.({\n isSelected: item.selected,\n isDisabled: item.disabled,\n });\n };\n\n const renderSelectAll = () => {\n const { selectAll, selectionConjunction } = labels;\n\n const anySelected = !!selection?.length;\n const allSelected = selection.length === list.length;\n\n const selectionLabel = (\n <HvTypography component=\"span\">\n {!anySelected ? (\n <>\n <b>{selectAll}</b>\n {` (${list.length})`}\n </>\n ) : (\n <>\n <b>{selection.length}</b>\n {`\\xa0${selectionConjunction}\\xa0`}\n {list.length}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <StyledSelectAllCheckBox\n id={setId(id, \"select-all\")}\n label={selectionLabel}\n onChange={handleSelectAll}\n className={clsx(\n listClasses.selectAllSelector,\n classes?.selectAllSelector\n )}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n );\n };\n\n const renderItemText = (item) => {\n const ItemText = wrapperTooltip(hasTooltips, item.label, item.label);\n\n return !multiSelect && item.path ? (\n <StyledLink\n key={item.label}\n route={item.path}\n classes={{ a: clsx(listClasses.link, classes?.link) }}\n >\n <ItemText />\n </StyledLink>\n ) : (\n <ItemText />\n );\n };\n\n const renderMultiSelectItem = (item, itemId) => {\n if (useSelector) {\n const Selection = wrapperTooltip(\n hasTooltips,\n <StyledMultiSelectCheckBox\n id={setId(itemId, \"selector\")}\n label={item.label}\n checked={item.selected}\n disabled={item.disabled}\n onChange={(evt) => handleSelect(evt, item)}\n classes={{\n root: clsx(listClasses.selectorRoot, classes?.selectorRoot),\n container: clsx(\n listClasses.selectorContainer,\n classes?.selectorContainer\n ),\n label: clsx(listClasses.truncate, classes?.truncate),\n }}\n />,\n item.label\n );\n return <Selection />;\n }\n\n return renderItemText(item);\n };\n\n const renderSingleSelectItem = (item, itemId) => {\n if (useSelector) {\n const Selection = wrapperTooltip(\n hasTooltips,\n <StyledSingleSelectRadio\n id={setId(itemId, \"selector\")}\n label={item.label}\n checked={item.selected}\n disabled={item.disabled}\n classes={{\n root: clsx(listClasses.selectorRoot, classes?.selectorRoot),\n container: clsx(\n listClasses.selectorContainer,\n classes?.selectorContainer\n ),\n label: clsx(listClasses.truncate, classes?.truncate),\n }}\n />,\n item.label\n );\n return <Selection />;\n }\n return renderItemText(item);\n };\n\n const renderListItem = (item, i, otherProps = {}) => {\n const itemId = setId(id, \"item\", i);\n const selected = item.selected || false;\n\n let startAdornment = null;\n if (!useSelector && item.icon) {\n startAdornment = renderLeftIcon(item);\n }\n\n return (\n <StyledListItem\n key={i}\n id={itemId}\n role={selectable ? \"option\" : \"menuitem\"}\n disabled={item.disabled || undefined}\n className={clsx(listClasses.item, classes?.item)}\n classes={{\n selected:\n useSelector || multiSelect\n ? clsx(listClasses.itemSelector, classes?.itemSelector)\n : undefined,\n }}\n selected={multiSelect || selected ? selected : undefined}\n onClick={(evt) => handleSelect(evt, item)}\n startAdornment={startAdornment}\n endAdornment={\n item.showNavIcon && (\n <StyledDropRightXS\n className={clsx(listClasses.box, classes?.box)}\n iconSize=\"XS\"\n />\n )\n }\n $applySelected={useSelector || multiSelect}\n {...otherProps}\n >\n {multiSelect\n ? renderMultiSelectItem(item, itemId)\n : renderSingleSelectItem(item, itemId)}\n </StyledListItem>\n );\n };\n\n const filteredList = list.filter((it) => !it.isHidden);\n const anySelected = list\n .map((item) => item.selected && !item.disabled)\n .reduce((result, selected) => result || selected, false);\n\n const selectedItemIndex = list.findIndex((item) => item.selected);\n useEffect(() => {\n if (selectedItemIndex >= 0 && listRef.current !== null) {\n listRef.current.scrollToItem(selectedItemIndex);\n }\n }, [listRef, selectedItemIndex]);\n\n const ListItem = ({ index, style }) => {\n const item = filteredList[index];\n const tabIndex =\n item.tabIndex ||\n (!anySelected && index === 0) ||\n (item.selected && !item.disabled)\n ? 0\n : -1;\n\n return renderListItem(item, index, {\n style: {\n ...style,\n top: `${parseFloat(style.top) + 5}px`,\n left: `${parseFloat(style.left) + 5}px`,\n width: `calc(${parseFloat(style.width)}% - 10px)`,\n },\n tabIndex,\n interactive: true,\n condensed,\n disableGutters: useSelector,\n });\n };\n\n const renderFixedList = useMemo(() => {\n return forwardRef(({ ...rest }, ref) => (\n <HvListContainer\n id={id}\n className={clsx(className, listClasses.root, classes?.root)}\n role={selectable ? \"listbox\" : \"menu\"}\n interactive\n condensed={condensed}\n disableGutters={useSelector}\n aria-multiselectable={(selectable && multiSelect) || undefined}\n ref={ref}\n {...rest}\n />\n ));\n }, [id, useSelector, className, classes, condensed, selectable, multiSelect]);\n\n return (\n <>\n {multiSelect && useSelector && showSelectAll && renderSelectAll()}\n\n {filteredList.length > 0 && !virtualized && (\n <HvListContainer\n id={id}\n className={clsx(className, listClasses.root, classes?.root)}\n role={selectable ? \"listbox\" : \"menu\"}\n interactive\n condensed={condensed}\n disableGutters={useSelector}\n aria-multiselectable={(selectable && multiSelect) || undefined}\n {...others}\n >\n {filteredList.map((item, i) => renderListItem(item, i))}\n </HvListContainer>\n )}\n {filteredList.length > 0 && virtualized && (\n <StyledFixedSizeList\n ref={listRef}\n className={clsx(\n listClasses.virtualizedRoot,\n classes?.virtualizedRoot\n )}\n height={(height || 0) + 5}\n width=\"100%\"\n itemCount={filteredList.length}\n itemSize={condensed ? 32 : 40}\n innerElementType={renderFixedList}\n {...others}\n >\n {ListItem}\n </StyledFixedSizeList>\n )}\n </>\n );\n};\n"],"names":["DEFAULT_LABELS","selectAll","selectionConjunction","HvList","props","id","classes","className","multiSelect","hasTooltips","showSelectAll","labels","useSelector","selectable","singleSelectionToggle","condensed","onChange","onClick","values","valuesProp","height","virtualized","others","useDefaultProps","list","setList","selection","useSelectableList","listRef","useRef","useEffect","passedProps","parsedList","parseList","undefined","handleSelect","evt","item","path","preventDefault","disabled","handleSelectAll","anySelectableSelected","some","elem","selected","renderLeftIcon","isValidElement","icon","isSelected","isDisabled","renderSelectAll","anySelected","length","allSelected","selectionLabel","HvTypography","component","children","_jsxs","_Fragment","_jsx","StyledSelectAllCheckBox","setId","label","clsx","listClasses","selectAllSelector","indeterminate","checked","renderItemText","ItemText","wrapperTooltip","StyledLink","route","a","link","renderMultiSelectItem","itemId","Selection","StyledMultiSelectCheckBox","root","selectorRoot","container","selectorContainer","truncate","renderSingleSelectItem","StyledSingleSelectRadio","renderListItem","i","otherProps","startAdornment","StyledListItem","role","itemSelector","endAdornment","showNavIcon","StyledDropRightXS","box","iconSize","$applySelected","filteredList","filter","it","isHidden","map","reduce","result","selectedItemIndex","findIndex","current","scrollToItem","ListItem","index","style","tabIndex","top","parseFloat","left","width","interactive","disableGutters","renderFixedList","useMemo","forwardRef","rest","ref","HvListContainer","StyledFixedSizeList","virtualizedRoot","itemCount","itemSize","innerElementType"],"mappings":"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"}
1
+ {"version":3,"file":"List.cjs","sources":["../../../../src/components/List/List.tsx"],"sourcesContent":["import { forwardRef, isValidElement, useEffect, useMemo, useRef } from \"react\";\n\nimport { FixedSizeList } from \"react-window\";\n\nimport { DropRightXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvListContainer, HvListItem } from \"@core/components/ListContainer\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { setId } from \"@core/utils/setId\";\nimport { wrapperTooltip } from \"@core/utils/wrapperTooltip\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { HvCheckBox } from \"@core/components/CheckBox\";\nimport { HvLink } from \"@core/components/Link\";\nimport { HvRadio } from \"@core/components/Radio\";\n\nimport { staticClasses, useClasses } from \"./List.styles\";\nimport { useSelectableList } from \"./useSelectableList\";\nimport { parseList } from \"./utils\";\nimport { HvListLabels, HvListValue } from \"./types\";\n\nexport { staticClasses as listClasses };\n\nexport type HvListClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvListProps\n extends HvBaseProps<HTMLUListElement, \"onChange\" | \"onClick\"> {\n /**\n * A list containing the elements to be rendered.\n *\n * - id: The id of the item.\n * - label: The label of the element to be rendered.\n * - selected: The selection state of the element.\n * - disabled: The disabled state of the element.\n * - isHidden: Is item visible.\n * - icon: The icon.\n * - showNavIcon: If true renders the navigation icon on the right.\n * - path: The path to navigate to.\n */\n values: HvListValue[];\n /** If true renders a multi select list. */\n multiSelect?: boolean;\n /**\n * If true renders select all option for multi selection lists with selectors.\n * note: It will only be rendered if multiSelect and useSelector props are set to true.\n */\n showSelectAll?: boolean;\n /** An object containing all the labels for the dropdown. */\n labels?: HvListLabels;\n /** If true renders list items with radio or checkbox selectors. */\n useSelector?: boolean;\n /** Call back fired when list item is selected. Returns selection state. */\n onChange?: (value: HvListValue[]) => void;\n /** Call back fired when list item is selected. Returns selected item. */\n onClick?: (\n event: React.ChangeEvent<HTMLLIElement>,\n value: HvListValue\n ) => void;\n /** If `true` the list items will show the selection state. */\n selectable?: boolean;\n /** If `true`, selection can be toggled when single selection. */\n singleSelectionToggle?: boolean;\n /** If `true` the list will be rendered without vertical spacing. */\n condensed?: boolean;\n /** If `true` the dropdown will show tooltips when user mouseenter text in list */\n hasTooltips?: boolean;\n /** Experimental. Height of the dropdown, in case you want to control it from a prop. Styles can also be used through dropdownListContainer class. Required in case virtualized is used */\n height?: number;\n /** Experimental. Uses dropdown in a virtualized form, where not all options are rendered initially. Good for use cases with a lot of options. */\n virtualized?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvListClasses;\n}\n\nconst DEFAULT_LABELS = {\n selectAll: \"Select All\",\n selectionConjunction: \"/\",\n};\n\n/**\n * Component used to show a set of related data to the user.\n */\nexport const HvList = (props: HvListProps) => {\n const {\n id,\n classes: classesProp,\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 } = useDefaultProps(\"HvList\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const [list, setList, selection] = useSelectableList(valuesProp);\n const listRef = useRef<any>(null);\n\n useEffect(() => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList: HvListValue[] = parseList(\n undefined,\n passedProps,\n undefined,\n valuesProp\n );\n\n setList(parsedList);\n }, [valuesProp, multiSelect, selectable, singleSelectionToggle, setList]);\n\n const handleSelect = (evt, item) => {\n if (!item.path) evt.preventDefault();\n if (item.disabled) return;\n\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList = parseList(item, passedProps, undefined, list);\n setList(parsedList);\n\n onClick?.(evt, item);\n onChange?.(parsedList);\n };\n\n const handleSelectAll = () => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const anySelectableSelected = list.some(\n (elem) => elem.selected || elem.disabled\n );\n const parsedList = parseList(\n undefined,\n passedProps,\n !anySelectableSelected,\n list\n );\n setList(parsedList);\n\n onChange?.(parsedList);\n };\n\n const renderLeftIcon = (item) => {\n return isValidElement(item.icon)\n ? item.icon\n : item.icon?.({\n isSelected: item.selected,\n isDisabled: item.disabled,\n });\n };\n\n const renderSelectAll = () => {\n const { selectAll, selectionConjunction } = labels;\n\n const anySelected = !!selection?.length;\n const allSelected = selection.length === list.length;\n\n const selectionLabel = (\n <HvTypography component=\"span\">\n {!anySelected ? (\n <>\n <b>{selectAll}</b>\n {` (${list.length})`}\n </>\n ) : (\n <>\n <b>{selection.length}</b>\n {`\\xa0${selectionConjunction}\\xa0`}\n {list.length}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <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={{\n selected: cx({\n [classes.itemSelector]: useSelector || multiSelect,\n }),\n }}\n selected={multiSelect || selected ? selected : undefined}\n onClick={(evt) => handleSelect(evt, item)}\n startAdornment={startAdornment}\n endAdornment={\n item.showNavIcon && (\n <DropRightXS className={classes.box} iconSize=\"XS\" />\n )\n }\n {...otherProps}\n >\n {multiSelect\n ? renderMultiSelectItem(item, itemId)\n : 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 = ({ index, style }) => {\n const item = filteredList[index];\n const tabIndex =\n item.tabIndex ||\n (!anySelected && index === 0) ||\n (item.selected && !item.disabled)\n ? 0\n : -1;\n\n return renderListItem(item, index, {\n style: {\n ...style,\n top: `${parseFloat(style.top) + 5}px`,\n left: `${parseFloat(style.left) + 5}px`,\n width: `calc(${parseFloat(style.width)}% - 10px)`,\n },\n tabIndex,\n interactive: true,\n condensed,\n disableGutters: useSelector,\n });\n };\n\n const renderFixedList = useMemo(() => {\n return forwardRef(({ ...rest }, ref) => (\n <HvListContainer\n id={id}\n className={cx(classes.root, className)}\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 }, [\n cx,\n id,\n useSelector,\n className,\n classes,\n condensed,\n selectable,\n multiSelect,\n ]);\n\n return (\n <>\n {multiSelect && useSelector && showSelectAll && renderSelectAll()}\n\n {filteredList.length > 0 && !virtualized && (\n <HvListContainer\n id={id}\n className={cx(classes.root, className)}\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 || 0) + 5}\n width=\"100%\"\n itemCount={filteredList.length}\n itemSize={condensed ? 32 : 40}\n innerElementType={renderFixedList}\n {...others}\n >\n {ListItem}\n </FixedSizeList>\n )}\n </>\n );\n};\n"],"names":["DEFAULT_LABELS","selectAll","selectionConjunction","HvList","props","id","classes","classesProp","className","multiSelect","hasTooltips","showSelectAll","labels","useSelector","selectable","singleSelectionToggle","condensed","onChange","onClick","values","valuesProp","height","virtualized","others","useDefaultProps","cx","useClasses","list","setList","selection","useSelectableList","listRef","useRef","useEffect","passedProps","parsedList","parseList","undefined","handleSelect","evt","item","path","preventDefault","disabled","handleSelectAll","anySelectableSelected","some","elem","selected","renderLeftIcon","isValidElement","icon","isSelected","isDisabled","renderSelectAll","anySelected","length","allSelected","selectionLabel","HvTypography","component","children","_jsxs","_Fragment","_jsx","HvCheckBox","setId","label","selectAllSelector","indeterminate","checked","renderItemText","ItemText","wrapperTooltip","HvLink","route","a","link","renderMultiSelectItem","itemId","Selection","root","selectorRoot","container","selectorContainer","truncate","renderSingleSelectItem","HvRadio","renderListItem","i","otherProps","startAdornment","HvListItem","role","itemSelector","endAdornment","showNavIcon","DropRightXS","box","iconSize","filteredList","filter","it","isHidden","map","reduce","result","selectedItemIndex","findIndex","current","scrollToItem","ListItem","index","style","tabIndex","top","parseFloat","left","width","interactive","disableGutters","renderFixedList","useMemo","forwardRef","rest","ref","HvListContainer","FixedSizeList","virtualizedRoot","itemCount","itemSize","innerElementType"],"mappings":"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"}