@bikdotai/bik-component-library 0.0.876-beta.1 → 0.0.876-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/README.md +1 -0
  2. package/dist/cjs/components/WhatsAppTextEditor/AIRephraseButton.js +2 -2
  3. package/dist/cjs/components/WhatsAppTextEditor/AIRephraseButton.js.map +1 -1
  4. package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditor.js +4 -4
  5. package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditor.js.map +1 -1
  6. package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js +2 -2
  7. package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js.map +1 -1
  8. package/dist/cjs/components/accordion/Accordion.style.js +1 -1
  9. package/dist/cjs/components/accordion/Accordion.style.js.map +1 -1
  10. package/dist/cjs/components/action-button/ActionButton.styled.js +1 -1
  11. package/dist/cjs/components/action-button/ActionButton.styled.js.map +1 -1
  12. package/dist/cjs/components/analytics-chips-and-dropdowns/CommonStyles.js +1 -1
  13. package/dist/cjs/components/analytics-chips-and-dropdowns/CommonStyles.js.map +1 -1
  14. package/dist/cjs/components/bik-layout/SidebarStyles.js +1 -1
  15. package/dist/cjs/components/bik-layout/SidebarStyles.js.map +1 -1
  16. package/dist/cjs/components/button/Button.styled.js +3 -3
  17. package/dist/cjs/components/button/Button.styled.js.map +1 -1
  18. package/dist/cjs/components/buttonGroup/ButtonGroupStyle.js +1 -1
  19. package/dist/cjs/components/buttonGroup/ButtonGroupStyle.js.map +1 -1
  20. package/dist/cjs/components/card-selector/CardSelector.styled.js +1 -1
  21. package/dist/cjs/components/card-selector/CardSelector.styled.js.map +1 -1
  22. package/dist/cjs/components/carousel-preview/CarouselPreview.style.js +2 -2
  23. package/dist/cjs/components/carousel-preview/CarouselPreview.style.js.map +1 -1
  24. package/dist/cjs/components/checkBox/CheckBox.styled.js +1 -1
  25. package/dist/cjs/components/checkBox/CheckBox.styled.js.map +1 -1
  26. package/dist/cjs/components/dropdown/MenuItem/MenuItem.js +1 -1
  27. package/dist/cjs/components/dropdown/MenuItem/MenuItem.js.map +1 -1
  28. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +1 -1
  29. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  30. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +27 -10
  31. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
  32. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js +1 -1
  33. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
  34. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +1 -1
  35. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
  36. package/dist/cjs/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js +1 -1
  37. package/dist/cjs/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js.map +1 -1
  38. package/dist/cjs/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js +1 -1
  39. package/dist/cjs/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js.map +1 -1
  40. package/dist/cjs/components/dropdown/hooks/useDropdown.js +1 -1
  41. package/dist/cjs/components/dropdown/hooks/useDropdown.js.map +1 -1
  42. package/dist/cjs/components/dual-icon-button/DualIconButton.styled.js +2 -2
  43. package/dist/cjs/components/dual-icon-button/DualIconButton.styled.js.map +1 -1
  44. package/dist/cjs/components/floating-action-button/FloatingActionButton.styles.js +1 -1
  45. package/dist/cjs/components/floating-action-button/FloatingActionButton.styles.js.map +1 -1
  46. package/dist/cjs/components/icon-button/IconButton.styled.js +4 -4
  47. package/dist/cjs/components/icon-button/IconButton.styled.js.map +1 -1
  48. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.js +1 -1
  49. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
  50. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js +28 -19
  51. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
  52. package/dist/cjs/components/plans/SubscriptionPlanSelector.js +1 -1
  53. package/dist/cjs/components/plans/SubscriptionPlanSelector.js.map +1 -1
  54. package/dist/cjs/components/product-picker-v2/style.js +2 -2
  55. package/dist/cjs/components/product-picker-v2/style.js.map +1 -1
  56. package/dist/cjs/components/switch/Switch.js +2 -2
  57. package/dist/cjs/components/switch/Switch.js.map +1 -1
  58. package/dist/cjs/components/template-preview/RCS/RCSPreview.styled.js +1 -1
  59. package/dist/cjs/components/template-preview/RCS/RCSPreview.styled.js.map +1 -1
  60. package/dist/cjs/components/template-preview/WhatsApp/ChatUI.style.js +1 -1
  61. package/dist/cjs/components/template-preview/WhatsApp/ChatUI.style.js.map +1 -1
  62. package/dist/esm/components/WhatsAppTextEditor/AIRephraseButton.js +2 -2
  63. package/dist/esm/components/WhatsAppTextEditor/AIRephraseButton.js.map +1 -1
  64. package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditor.js +4 -4
  65. package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditor.js.map +1 -1
  66. package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js +2 -2
  67. package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js.map +1 -1
  68. package/dist/esm/components/accordion/Accordion.style.js +1 -1
  69. package/dist/esm/components/accordion/Accordion.style.js.map +1 -1
  70. package/dist/esm/components/action-button/ActionButton.styled.js +1 -1
  71. package/dist/esm/components/action-button/ActionButton.styled.js.map +1 -1
  72. package/dist/esm/components/analytics-chips-and-dropdowns/CommonStyles.js +1 -1
  73. package/dist/esm/components/analytics-chips-and-dropdowns/CommonStyles.js.map +1 -1
  74. package/dist/esm/components/bik-layout/SidebarStyles.js +1 -1
  75. package/dist/esm/components/bik-layout/SidebarStyles.js.map +1 -1
  76. package/dist/esm/components/button/Button.styled.js +3 -3
  77. package/dist/esm/components/button/Button.styled.js.map +1 -1
  78. package/dist/esm/components/buttonGroup/ButtonGroupStyle.js +1 -1
  79. package/dist/esm/components/buttonGroup/ButtonGroupStyle.js.map +1 -1
  80. package/dist/esm/components/card-selector/CardSelector.styled.js +1 -1
  81. package/dist/esm/components/card-selector/CardSelector.styled.js.map +1 -1
  82. package/dist/esm/components/carousel-preview/CarouselPreview.style.js +2 -2
  83. package/dist/esm/components/carousel-preview/CarouselPreview.style.js.map +1 -1
  84. package/dist/esm/components/checkBox/CheckBox.styled.js +1 -1
  85. package/dist/esm/components/checkBox/CheckBox.styled.js.map +1 -1
  86. package/dist/esm/components/dropdown/MenuItem/MenuItem.js +1 -1
  87. package/dist/esm/components/dropdown/MenuItem/MenuItem.js.map +1 -1
  88. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +300 -278
  89. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  90. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.d.ts +8 -0
  91. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +170 -126
  92. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
  93. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.d.ts +4 -0
  94. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js +144 -112
  95. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
  96. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.d.ts +1 -0
  97. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +32 -31
  98. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
  99. package/dist/esm/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.d.ts +2 -0
  100. package/dist/esm/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js +54 -39
  101. package/dist/esm/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js.map +1 -1
  102. package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.d.ts +18 -16
  103. package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js +73 -27
  104. package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js.map +1 -1
  105. package/dist/esm/components/dropdown/hooks/useDropdown.d.ts +4 -17
  106. package/dist/esm/components/dropdown/hooks/useDropdown.js +176 -163
  107. package/dist/esm/components/dropdown/hooks/useDropdown.js.map +1 -1
  108. package/dist/esm/components/dropdown/type.d.ts +22 -0
  109. package/dist/esm/components/dual-icon-button/DualIconButton.styled.js +2 -2
  110. package/dist/esm/components/dual-icon-button/DualIconButton.styled.js.map +1 -1
  111. package/dist/esm/components/floating-action-button/FloatingActionButton.styles.js +1 -1
  112. package/dist/esm/components/floating-action-button/FloatingActionButton.styles.js.map +1 -1
  113. package/dist/esm/components/icon-button/IconButton.styled.js +4 -4
  114. package/dist/esm/components/icon-button/IconButton.styled.js.map +1 -1
  115. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js +46 -44
  116. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
  117. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.d.ts +3 -0
  118. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js +25 -15
  119. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
  120. package/dist/esm/components/multi-level-dropdown/type.d.ts +5 -0
  121. package/dist/esm/components/plans/SubscriptionPlanSelector.js +1 -1
  122. package/dist/esm/components/plans/SubscriptionPlanSelector.js.map +1 -1
  123. package/dist/esm/components/product-picker-v2/style.js +2 -2
  124. package/dist/esm/components/product-picker-v2/style.js.map +1 -1
  125. package/dist/esm/components/switch/Switch.js +2 -2
  126. package/dist/esm/components/switch/Switch.js.map +1 -1
  127. package/dist/esm/components/template-preview/RCS/RCSPreview.styled.js +1 -1
  128. package/dist/esm/components/template-preview/RCS/RCSPreview.styled.js.map +1 -1
  129. package/dist/esm/components/template-preview/WhatsApp/ChatUI.style.js +1 -1
  130. package/dist/esm/components/template-preview/WhatsApp/ChatUI.style.js.map +1 -1
  131. package/package.json +1 -1
@@ -1,47 +1,62 @@
1
- import { jsxs as n, jsx as o } from "react/jsx-runtime";
1
+ import { jsxs as o, jsx as t } from "react/jsx-runtime";
2
2
  import { BodySecondary as C } from "../../../../TypographyStyle.js";
3
- import { COLORS as b } from "../../../../../constants/Theme.js";
3
+ import { COLORS as T } from "../../../../../constants/Theme.js";
4
+ import { getSelectionLeaves as b } from "../../utils/iterationOnOptions.js";
4
5
  import { BottomBarContainer as h } from "./MultiSelectDropdownBottomBar.styled.js";
5
- import { Button as l } from "../../../../button/Button.js";
6
- const k = (i) => {
7
- const { onClear: s, onApply: p, list: c, buttonText: u, buttonOptions: a, hideClearButton: y } = i, {
8
- primaryButtonText: m,
6
+ import { Button as n } from "../../../../button/Button.js";
7
+ const k = (r) => {
8
+ const {
9
+ onClear: l,
10
+ onApply: i,
11
+ list: s,
12
+ buttonText: p,
13
+ buttonOptions: a,
14
+ hideClearButton: c,
15
+ hideSelectedCount: m,
16
+ childrenLayout: y
17
+ } = r, {
18
+ primaryButtonText: u,
9
19
  primaryButtonType: d,
10
20
  secondaryButtonText: f,
11
21
  secondaryButtonType: x
12
- } = a ?? {}, r = c.reduce((t, e) => {
13
- if (e.options) {
14
- const B = e.options.filter(
15
- (T) => T.selected === !0
16
- ).length;
17
- return t + B;
18
- }
19
- return e.selected ? t + 1 : t;
20
- }, 0);
21
- return /* @__PURE__ */ n(h, { style: { justifyContent: "space-between" }, children: [
22
- /* @__PURE__ */ o(C, { style: { flex: 1, color: b.content.primary }, children: r ? `${r} selected` : "" }),
23
- /* @__PURE__ */ n("div", { style: { flexDirection: "row", display: "flex", gap: 12 }, children: [
24
- !y && /* @__PURE__ */ o(
25
- l,
26
- {
27
- size: "small",
28
- buttonType: x || "primary",
29
- buttonText: f || "Clear",
30
- onClick: s
31
- }
32
- ),
33
- /* @__PURE__ */ o(
34
- l,
35
- {
36
- size: "small",
37
- buttonText: m || u || "Apply",
38
- buttonType: d || "primary",
39
- onClick: () => {
40
- p();
41
- }
42
- }
43
- )
44
- ] })
22
+ } = a ?? {}, e = b(s, y === "nested").filter(
23
+ (B) => B.selected
24
+ ).length;
25
+ return /* @__PURE__ */ o(h, { style: { justifyContent: "space-between" }, children: [
26
+ /* @__PURE__ */ t(C, { style: { flex: 1, color: T.content.primary }, children: e && !m ? `${e} selected` : "" }),
27
+ /* @__PURE__ */ o(
28
+ "div",
29
+ {
30
+ style: {
31
+ flexDirection: "row",
32
+ display: "flex",
33
+ alignItems: "center",
34
+ gap: 12
35
+ },
36
+ children: [
37
+ !c && /* @__PURE__ */ t(
38
+ n,
39
+ {
40
+ size: "small",
41
+ buttonType: x || "primary",
42
+ buttonText: f || "Clear",
43
+ onClick: l
44
+ }
45
+ ),
46
+ /* @__PURE__ */ t(
47
+ n,
48
+ {
49
+ size: "small",
50
+ buttonText: u || p || "Apply",
51
+ buttonType: d || "primary",
52
+ onClick: () => {
53
+ i();
54
+ }
55
+ }
56
+ )
57
+ ]
58
+ }
59
+ )
45
60
  ] });
46
61
  };
47
62
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectDropdownBottomBar.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.tsx"],"sourcesContent":["import React from 'react';\nimport { Button } from '@src/components/button';\nimport { BodySecondary } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport {\n\tButtonOptions,\n\tDropdownOption,\n\tGroupedOption,\n\tSingleOption,\n} from '../../../type';\nimport { BottomBarContainer } from './MultiSelectDropdownBottomBar.styled';\n\ninterface MultiSelectDropdownBottomBarProps {\n\tonClear?: () => void;\n\tonApply: () => void;\n\tlist: DropdownOption[];\n\tbuttonText?: string;\n\tbuttonOptions?: ButtonOptions;\n\thideClearButton?: boolean;\n}\nconst MultiSelectDropdownBottomBar: React.FC<\n\tMultiSelectDropdownBottomBarProps\n> = (props) => {\n\tconst { onClear, onApply, list, buttonText, buttonOptions, hideClearButton } =\n\t\tprops;\n\tconst {\n\t\tprimaryButtonText,\n\t\tprimaryButtonType,\n\t\tsecondaryButtonText,\n\t\tsecondaryButtonType,\n\t} = buttonOptions ?? {};\n\tconst count = list.reduce((total, option) => {\n\t\tif ((option as GroupedOption).options) {\n\t\t\tconst groupedTotal = (option as GroupedOption).options.filter(\n\t\t\t\t(op) => op.selected === true,\n\t\t\t).length;\n\t\t\treturn total + groupedTotal;\n\t\t}\n\n\t\treturn (option as SingleOption).selected ? total + 1 : total;\n\t}, 0);\n\n\treturn (\n\t\t<BottomBarContainer style={{ justifyContent: 'space-between' }}>\n\t\t\t<BodySecondary style={{ flex: 1, color: COLORS.content.primary }}>\n\t\t\t\t{count ? `${count} selected` : ''}\n\t\t\t</BodySecondary>\n\n\t\t\t<div style={{ flexDirection: 'row', display: 'flex', gap: 12 }}>\n\t\t\t\t{!hideClearButton && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tbuttonType={secondaryButtonType || 'primary'}\n\t\t\t\t\t\tbuttonText={secondaryButtonText || 'Clear'}\n\t\t\t\t\t\tonClick={onClear}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tbuttonText={primaryButtonText || buttonText || 'Apply'}\n\t\t\t\t\tbuttonType={primaryButtonType || 'primary'}\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tonApply();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</BottomBarContainer>\n\t);\n};\n\nexport default MultiSelectDropdownBottomBar;\n"],"names":["MultiSelectDropdownBottomBar","props","onClear","onApply","list","buttonText","buttonOptions","hideClearButton","primaryButtonText","primaryButtonType","secondaryButtonText","secondaryButtonType","count","total","option","groupedTotal","op","BottomBarContainer","jsx","BodySecondary","COLORS","jsxs","Button"],"mappings":";;;;;AAoBA,MAAMA,IAEF,CAACC,MAAU;AACd,QAAM,EAAE,SAAAC,GAAS,SAAAC,GAAS,MAAAC,GAAM,YAAAC,GAAY,eAAAC,GAAe,iBAAAC,MAC1DN,GACK;AAAA,IACL,mBAAAO;AAAA,IACA,mBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,qBAAAC;AAAA,EAAA,IACGL,KAAiB,CAAA,GACfM,IAAQR,EAAK,OAAO,CAACS,GAAOC,MAAW;AAC5C,QAAKA,EAAyB,SAAS;AACtC,YAAMC,IAAgBD,EAAyB,QAAQ;AAAA,QACtD,CAACE,MAAOA,EAAG,aAAa;AAAA,MAAA,EACvB;AACF,aAAOH,IAAQE;AAAA,IAChB;AAEA,WAAQD,EAAwB,WAAWD,IAAQ,IAAIA;AAAA,EACxD,GAAG,CAAC;AAEJ,2BACEI,GAAA,EAAmB,OAAO,EAAE,gBAAgB,mBAC5C,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAc,OAAO,EAAE,MAAM,GAAG,OAAOC,EAAO,QAAQ,QAAA,GACrD,UAAAR,IAAQ,GAAGA,CAAK,cAAc,IAChC;AAAA,IAEA,gBAAAS,EAAC,OAAA,EAAI,OAAO,EAAE,eAAe,OAAO,SAAS,QAAQ,KAAK,GAAA,GACxD,UAAA;AAAA,MAAA,CAACd,KACD,gBAAAW;AAAA,QAACI;AAAA,QAAA;AAAA,UACA,MAAK;AAAA,UACL,YAAYX,KAAuB;AAAA,UACnC,YAAYD,KAAuB;AAAA,UACnC,SAASR;AAAA,QAAA;AAAA,MAAA;AAAA,MAGX,gBAAAgB;AAAA,QAACI;AAAA,QAAA;AAAA,UACA,MAAK;AAAA,UACL,YAAYd,KAAqBH,KAAc;AAAA,UAC/C,YAAYI,KAAqB;AAAA,UACjC,SAAS,MAAM;AACd,YAAAN,EAAA;AAAA,UACD;AAAA,QAAA;AAAA,MAAA;AAAA,IACD,EAAA,CACD;AAAA,EAAA,GACD;AAEF;"}
1
+ {"version":3,"file":"MultiSelectDropdownBottomBar.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.tsx"],"sourcesContent":["import React from 'react';\nimport { Button } from '@src/components/button';\nimport { BodySecondary } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { ButtonOptions, DropdownOption } from '../../../type';\nimport { getSelectionLeaves } from '../../utils/iterationOnOptions';\nimport { BottomBarContainer } from './MultiSelectDropdownBottomBar.styled';\n\ninterface MultiSelectDropdownBottomBarProps {\n\tonClear?: () => void;\n\tonApply: () => void;\n\tlist: DropdownOption[];\n\tbuttonText?: string;\n\tbuttonOptions?: ButtonOptions;\n\thideClearButton?: boolean;\n\thideSelectedCount?: boolean;\n\tchildrenLayout?: 'flyout' | 'nested';\n}\nconst MultiSelectDropdownBottomBar: React.FC<\n\tMultiSelectDropdownBottomBarProps\n> = (props) => {\n\tconst {\n\t\tonClear,\n\t\tonApply,\n\t\tlist,\n\t\tbuttonText,\n\t\tbuttonOptions,\n\t\thideClearButton,\n\t\thideSelectedCount,\n\t\tchildrenLayout,\n\t} = props;\n\tconst {\n\t\tprimaryButtonText,\n\t\tprimaryButtonType,\n\t\tsecondaryButtonText,\n\t\tsecondaryButtonType,\n\t} = buttonOptions ?? {};\n\tconst count = getSelectionLeaves(list, childrenLayout === 'nested').filter(\n\t\t(leaf) => leaf.selected,\n\t).length;\n\n\treturn (\n\t\t<BottomBarContainer style={{ justifyContent: 'space-between' }}>\n\t\t\t<BodySecondary style={{ flex: 1, color: COLORS.content.primary }}>\n\t\t\t\t{count && !hideSelectedCount ? `${count} selected` : ''}\n\t\t\t</BodySecondary>\n\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tflexDirection: 'row',\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\talignItems: 'center',\n\t\t\t\t\tgap: 12,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{!hideClearButton && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tbuttonType={secondaryButtonType || 'primary'}\n\t\t\t\t\t\tbuttonText={secondaryButtonText || 'Clear'}\n\t\t\t\t\t\tonClick={onClear}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tbuttonText={primaryButtonText || buttonText || 'Apply'}\n\t\t\t\t\tbuttonType={primaryButtonType || 'primary'}\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tonApply();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</BottomBarContainer>\n\t);\n};\n\nexport default MultiSelectDropdownBottomBar;\n"],"names":["MultiSelectDropdownBottomBar","props","onClear","onApply","list","buttonText","buttonOptions","hideClearButton","hideSelectedCount","childrenLayout","primaryButtonText","primaryButtonType","secondaryButtonText","secondaryButtonType","count","getSelectionLeaves","leaf","BottomBarContainer","jsx","BodySecondary","COLORS","jsxs","Button"],"mappings":";;;;;;AAkBA,MAAMA,IAEF,CAACC,MAAU;AACd,QAAM;AAAA,IACL,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,MAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,IACGR,GACE;AAAA,IACL,mBAAAS;AAAA,IACA,mBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,qBAAAC;AAAA,EAAA,IACGP,KAAiB,CAAA,GACfQ,IAAQC,EAAmBX,GAAMK,MAAmB,QAAQ,EAAE;AAAA,IACnE,CAACO,MAASA,EAAK;AAAA,EAAA,EACd;AAEF,2BACEC,GAAA,EAAmB,OAAO,EAAE,gBAAgB,mBAC5C,UAAA;AAAA,IAAA,gBAAAC,EAACC,KAAc,OAAO,EAAE,MAAM,GAAG,OAAOC,EAAO,QAAQ,QAAA,GACrD,eAAS,CAACZ,IAAoB,GAAGM,CAAK,cAAc,IACtD;AAAA,IAEA,gBAAAO;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,OAAO;AAAA,UACN,eAAe;AAAA,UACf,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,KAAK;AAAA,QAAA;AAAA,QAGL,UAAA;AAAA,UAAA,CAACd,KACD,gBAAAW;AAAA,YAACI;AAAA,YAAA;AAAA,cACA,MAAK;AAAA,cACL,YAAYT,KAAuB;AAAA,cACnC,YAAYD,KAAuB;AAAA,cACnC,SAASV;AAAA,YAAA;AAAA,UAAA;AAAA,UAGX,gBAAAgB;AAAA,YAACI;AAAA,YAAA;AAAA,cACA,MAAK;AAAA,cACL,YAAYZ,KAAqBL,KAAc;AAAA,cAC/C,YAAYM,KAAqB;AAAA,cACjC,SAAS,MAAM;AACd,gBAAAR,EAAA;AAAA,cACD;AAAA,YAAA;AAAA,UAAA;AAAA,QACD;AAAA,MAAA;AAAA,IAAA;AAAA,EACD,GACD;AAEF;"}
@@ -1,5 +1,6 @@
1
1
  import { DropdownOption, SingleOption } from '../../type';
2
- export declare function iterateOnOptions(options: DropdownOption[], newVal: Partial<SingleOption>, checkCB?: (optionForValidation: SingleOption) => boolean): ({
2
+ export declare function iterateOnOptions(options: DropdownOption[], newVal: Partial<SingleOption>, checkCB?: (optionForValidation: SingleOption) => boolean, nestedChildren?: boolean): (SingleOption | {
3
+ options: SingleOption[];
3
4
  label: string;
4
5
  value: string;
5
6
  description?: string | null | undefined;
@@ -17,24 +18,25 @@ export declare function iterateOnOptions(options: DropdownOption[], newVal: Part
17
18
  'data-test'?: string | undefined;
18
19
  hasDivider?: boolean | undefined;
19
20
  } | {
21
+ options: SingleOption[];
20
22
  label?: string | undefined;
21
- value?: string | undefined;
22
- description?: string | null | undefined;
23
- selected?: boolean | undefined;
24
- disabled?: boolean | undefined;
25
- isFreeForm?: boolean | undefined;
26
- subText?: string | undefined;
27
- trailingIcon?: JSX.Element | undefined;
28
23
  leadingIcon?: JSX.Element | undefined;
29
- customComponent?: JSX.Element | undefined;
30
- searchKey?: string | undefined;
31
- selectedLabel?: string | undefined;
32
- children?: SingleOption[] | undefined;
33
- parent?: SingleOption | undefined;
34
- 'data-test'?: string | undefined;
35
- hasDivider?: boolean | undefined;
36
- options: SingleOption[];
37
24
  })[];
38
25
  export declare function iterateOnOptionsRaw(options: DropdownOption[], cb: (option: SingleOption) => void): void;
39
26
  export declare function getSelectedOptionsAsText(selectedOption: DropdownOption[]): string | undefined;
40
27
  export declare function getSelectedOptionsAsArray(selectedOption: DropdownOption[]): string[];
28
+ export declare function getNestedParentValues(options: DropdownOption[]): string[];
29
+ /**
30
+ * Selectable rows in the order they are rendered, so keyboard focus indices line
31
+ * up with the rows MenuList numbers - otherwise arrow keys highlight one option
32
+ * while Enter toggles another.
33
+ */
34
+ export declare function flattenSelectableOptions(options: DropdownOption[], nestedChildren?: {
35
+ collapsedParents: string[];
36
+ }): SingleOption[];
37
+ /**
38
+ * The rows a selection count is about. Only the nested layout makes children
39
+ * selectable - in the flyout layout a submenu click marks the parent, so the
40
+ * parent stays the row that counts. Disabled rows are kept for the caller to filter.
41
+ */
42
+ export declare function getSelectionLeaves(options: DropdownOption[], nestedChildren?: boolean): SingleOption[];
@@ -1,36 +1,82 @@
1
- function o(t, r, n) {
2
- return t.map((e) => {
3
- if (e.options) {
4
- const i = e.options.map((s) => !n || n(s) ? {
5
- ...s,
6
- ...r
7
- } : { ...s });
8
- return {
9
- ...e,
10
- options: [...i]
11
- };
12
- }
13
- return !n || n(e) ? {
14
- ...e,
15
- ...r
16
- } : { ...e };
17
- });
1
+ function a(n, s, e) {
2
+ return !e || !n.children?.length ? { ...n, ...s } : {
3
+ ...n,
4
+ ...s,
5
+ children: n.children.map(
6
+ (t) => t.disabled ? { ...t } : a(t, s, e)
7
+ )
8
+ };
9
+ }
10
+ function u(n, s, e) {
11
+ const t = (n.children ?? []).map(
12
+ (r) => !e || e(r) ? a(r, s, !0) : r.children?.length ? u(r, s, e) : { ...r }
13
+ ), l = t.filter((r) => !r.disabled);
14
+ return {
15
+ ...n,
16
+ children: t,
17
+ // `every` on an empty list reports selected, so keep what the parent had.
18
+ selected: l.length ? l.every((r) => r.selected) : n.selected
19
+ };
18
20
  }
19
- function f(t, r) {
20
- t.forEach((n) => {
21
- n.options ? n.options.forEach(r) : r(n);
21
+ function i(n, s, e, t = !1) {
22
+ const l = (r) => !e || e(r) ? a(r, s, t) : t && r.children?.length ? u(r, s, e) : { ...r };
23
+ return n.map((r) => r.options ? {
24
+ ...r,
25
+ options: r.options.map(l)
26
+ } : l(r));
27
+ }
28
+ function f(n, s) {
29
+ const e = (t) => {
30
+ s(t), t.children?.forEach(e);
31
+ };
32
+ n.forEach((t) => {
33
+ t.options ? t.options.forEach(e) : e(t);
22
34
  });
23
35
  }
24
- function a(t) {
25
- if (!(!t || !t.length))
26
- return t.map((r) => {
27
- const n = r;
28
- return n.selectedLabel ?? n.label;
36
+ function c(n) {
37
+ if (!(!n || !n.length))
38
+ return n.map((s) => {
39
+ const e = s;
40
+ return e.selectedLabel ?? e.label;
29
41
  }).join(", ");
30
42
  }
43
+ function h(n) {
44
+ return n.filter((s) => s.children?.length).map((s) => s.value);
45
+ }
46
+ function d(n, s) {
47
+ const e = [];
48
+ return n.forEach((t) => {
49
+ if (t.options) {
50
+ t.options.forEach((r) => {
51
+ r.disabled || e.push(r);
52
+ });
53
+ return;
54
+ }
55
+ const l = t;
56
+ l.disabled || e.push(l), !(!s || s.collapsedParents.includes(l.value)) && l.children?.forEach((r) => {
57
+ r.disabled || e.push(r);
58
+ });
59
+ }), e;
60
+ }
61
+ function o(n, s = !1) {
62
+ const e = [];
63
+ return n.forEach((t) => {
64
+ if (t.options) {
65
+ e.push(...t.options);
66
+ return;
67
+ }
68
+ const l = t;
69
+ e.push(
70
+ ...s && l.children?.length ? l.children : [l]
71
+ );
72
+ }), e;
73
+ }
31
74
  export {
32
- a as getSelectedOptionsAsText,
33
- o as iterateOnOptions,
75
+ d as flattenSelectableOptions,
76
+ h as getNestedParentValues,
77
+ c as getSelectedOptionsAsText,
78
+ o as getSelectionLeaves,
79
+ i as iterateOnOptions,
34
80
  f as iterateOnOptionsRaw
35
81
  };
36
82
  //# sourceMappingURL=iterationOnOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"iterationOnOptions.js","sources":["../../../../../../src/components/dropdown/OpenedDropdown/utils/iterationOnOptions.ts"],"sourcesContent":["import { DropdownOption, GroupedOption, SingleOption } from '../../type';\n\nexport function iterateOnOptions(\n\toptions: DropdownOption[],\n\tnewVal: Partial<SingleOption>,\n\tcheckCB?: (optionForValidation: SingleOption) => boolean,\n) {\n\tconst newOptions = options.map((option) => {\n\t\tif ((option as GroupedOption).options) {\n\t\t\tconst groupedOptions = (option as GroupedOption).options.map((op) => {\n\t\t\t\tif (!checkCB || checkCB(op)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...op,\n\t\t\t\t\t\t...newVal,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn { ...op };\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\t...option,\n\t\t\t\toptions: [...groupedOptions],\n\t\t\t};\n\t\t}\n\n\t\tif (!checkCB || checkCB(option as SingleOption)) {\n\t\t\treturn {\n\t\t\t\t...option,\n\t\t\t\t...newVal,\n\t\t\t};\n\t\t}\n\n\t\treturn { ...option };\n\t});\n\n\treturn newOptions;\n}\n\nexport function iterateOnOptionsRaw(\n\toptions: DropdownOption[],\n\tcb: (option: SingleOption) => void,\n) {\n\toptions.forEach((option) => {\n\t\tif ((option as GroupedOption).options) {\n\t\t\t(option as GroupedOption).options.forEach(cb);\n\t\t} else {\n\t\t\tcb(option as SingleOption);\n\t\t}\n\t});\n}\n\nexport function getSelectedOptionsAsText(selectedOption: DropdownOption[]) {\n\tif (!selectedOption || !selectedOption.length) return undefined;\n\treturn selectedOption\n\t\t.map((option) => {\n\t\t\tconst op = option as SingleOption;\n\t\t\treturn op.selectedLabel ?? op.label;\n\t\t})\n\t\t.join(', ');\n}\n\n// get selected options as array of string\nexport function getSelectedOptionsAsArray(selectedOption: DropdownOption[]) {\n\tif (!selectedOption || !selectedOption.length) return [];\n\treturn selectedOption.map((option) => {\n\t\tconst op = option as SingleOption;\n\t\treturn op.selectedLabel ?? op.label;\n\t});\n}\n"],"names":["iterateOnOptions","options","newVal","checkCB","option","groupedOptions","op","iterateOnOptionsRaw","cb","getSelectedOptionsAsText","selectedOption"],"mappings":"AAEO,SAASA,EACfC,GACAC,GACAC,GACC;AA8BD,SA7BmBF,EAAQ,IAAI,CAACG,MAAW;AAC1C,QAAKA,EAAyB,SAAS;AACtC,YAAMC,IAAkBD,EAAyB,QAAQ,IAAI,CAACE,MACzD,CAACH,KAAWA,EAAQG,CAAE,IAClB;AAAA,QACN,GAAGA;AAAA,QACH,GAAGJ;AAAA,MAAA,IAIE,EAAE,GAAGI,EAAA,CACZ;AAED,aAAO;AAAA,QACN,GAAGF;AAAA,QACH,SAAS,CAAC,GAAGC,CAAc;AAAA,MAAA;AAAA,IAE7B;AAEA,WAAI,CAACF,KAAWA,EAAQC,CAAsB,IACtC;AAAA,MACN,GAAGA;AAAA,MACH,GAAGF;AAAA,IAAA,IAIE,EAAE,GAAGE,EAAA;AAAA,EACb,CAAC;AAGF;AAEO,SAASG,EACfN,GACAO,GACC;AACD,EAAAP,EAAQ,QAAQ,CAACG,MAAW;AAC3B,IAAKA,EAAyB,UAC5BA,EAAyB,QAAQ,QAAQI,CAAE,IAE5CA,EAAGJ,CAAsB;AAAA,EAE3B,CAAC;AACF;AAEO,SAASK,EAAyBC,GAAkC;AAC1E,MAAI,GAACA,KAAkB,CAACA,EAAe;AACvC,WAAOA,EACL,IAAI,CAACN,MAAW;AAChB,YAAME,IAAKF;AACX,aAAOE,EAAG,iBAAiBA,EAAG;AAAA,IAC/B,CAAC,EACA,KAAK,IAAI;AACZ;"}
1
+ {"version":3,"file":"iterationOnOptions.js","sources":["../../../../../../src/components/dropdown/OpenedDropdown/utils/iterationOnOptions.ts"],"sourcesContent":["import { DropdownOption, GroupedOption, SingleOption } from '../../type';\n\nfunction applyToSubtree(\n\toption: SingleOption,\n\tnewVal: Partial<SingleOption>,\n\tnestedChildren: boolean,\n): SingleOption {\n\tif (!nestedChildren || !option.children?.length) {\n\t\treturn { ...option, ...newVal };\n\t}\n\n\treturn {\n\t\t...option,\n\t\t...newVal,\n\t\tchildren: option.children.map((child) =>\n\t\t\tchild.disabled\n\t\t\t\t? { ...child }\n\t\t\t\t: applyToSubtree(child, newVal, nestedChildren),\n\t\t),\n\t};\n}\n\n/**\n * A parent is selected only when every selectable child is. Disabled children are\n * excluded because applyToSubtree never selects them - counting them would leave\n * the parent stuck on the indeterminate dash.\n */\nfunction walkChildren(\n\toption: SingleOption,\n\tnewVal: Partial<SingleOption>,\n\tcheckCB?: (optionForValidation: SingleOption) => boolean,\n): SingleOption {\n\tconst children = (option.children ?? []).map((child) =>\n\t\t!checkCB || checkCB(child)\n\t\t\t? applyToSubtree(child, newVal, true)\n\t\t\t: child.children?.length\n\t\t\t? walkChildren(child, newVal, checkCB)\n\t\t\t: { ...child },\n\t);\n\n\tconst selectableChildren = children.filter((child) => !child.disabled);\n\n\treturn {\n\t\t...option,\n\t\tchildren,\n\t\t// `every` on an empty list reports selected, so keep what the parent had.\n\t\tselected: selectableChildren.length\n\t\t\t? selectableChildren.every((child) => child.selected)\n\t\t\t: option.selected,\n\t};\n}\n\nexport function iterateOnOptions(\n\toptions: DropdownOption[],\n\tnewVal: Partial<SingleOption>,\n\tcheckCB?: (optionForValidation: SingleOption) => boolean,\n\tnestedChildren = false,\n) {\n\tconst applyToOption = (option: SingleOption): SingleOption => {\n\t\tif (!checkCB || checkCB(option)) {\n\t\t\treturn applyToSubtree(option, newVal, nestedChildren);\n\t\t}\n\n\t\tif (nestedChildren && option.children?.length) {\n\t\t\treturn walkChildren(option, newVal, checkCB);\n\t\t}\n\n\t\treturn { ...option };\n\t};\n\n\treturn options.map((option) => {\n\t\tif ((option as GroupedOption).options) {\n\t\t\treturn {\n\t\t\t\t...option,\n\t\t\t\toptions: (option as GroupedOption).options.map(applyToOption),\n\t\t\t};\n\t\t}\n\n\t\treturn applyToOption(option as SingleOption);\n\t});\n}\n\nexport function iterateOnOptionsRaw(\n\toptions: DropdownOption[],\n\tcb: (option: SingleOption) => void,\n) {\n\tconst visit = (option: SingleOption) => {\n\t\tcb(option);\n\t\toption.children?.forEach(visit);\n\t};\n\n\toptions.forEach((option) => {\n\t\tif ((option as GroupedOption).options) {\n\t\t\t(option as GroupedOption).options.forEach(visit);\n\t\t} else {\n\t\t\tvisit(option as SingleOption);\n\t\t}\n\t});\n}\n\nexport function getSelectedOptionsAsText(selectedOption: DropdownOption[]) {\n\tif (!selectedOption || !selectedOption.length) return undefined;\n\treturn selectedOption\n\t\t.map((option) => {\n\t\t\tconst op = option as SingleOption;\n\t\t\treturn op.selectedLabel ?? op.label;\n\t\t})\n\t\t.join(', ');\n}\n\n// get selected options as array of string\nexport function getSelectedOptionsAsArray(selectedOption: DropdownOption[]) {\n\tif (!selectedOption || !selectedOption.length) return [];\n\treturn selectedOption.map((option) => {\n\t\tconst op = option as SingleOption;\n\t\treturn op.selectedLabel ?? op.label;\n\t});\n}\n\nexport function getNestedParentValues(options: DropdownOption[]): string[] {\n\treturn options\n\t\t.filter((option) => (option as SingleOption).children?.length)\n\t\t.map((option) => (option as SingleOption).value);\n}\n\n/**\n * Selectable rows in the order they are rendered, so keyboard focus indices line\n * up with the rows MenuList numbers - otherwise arrow keys highlight one option\n * while Enter toggles another.\n */\nexport function flattenSelectableOptions(\n\toptions: DropdownOption[],\n\tnestedChildren?: { collapsedParents: string[] },\n): SingleOption[] {\n\tconst flattened: SingleOption[] = [];\n\n\toptions.forEach((option) => {\n\t\tif ((option as GroupedOption).options) {\n\t\t\t(option as GroupedOption).options.forEach((groupedOption) => {\n\t\t\t\tif (!groupedOption.disabled) {\n\t\t\t\t\tflattened.push(groupedOption);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst singleOption = option as SingleOption;\n\t\tif (!singleOption.disabled) {\n\t\t\tflattened.push(singleOption);\n\t\t}\n\n\t\tif (\n\t\t\t!nestedChildren ||\n\t\t\tnestedChildren.collapsedParents.includes(singleOption.value)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsingleOption.children?.forEach((child) => {\n\t\t\tif (!child.disabled) {\n\t\t\t\tflattened.push(child);\n\t\t\t}\n\t\t});\n\t});\n\n\treturn flattened;\n}\n\n/**\n * The rows a selection count is about. Only the nested layout makes children\n * selectable - in the flyout layout a submenu click marks the parent, so the\n * parent stays the row that counts. Disabled rows are kept for the caller to filter.\n */\nexport function getSelectionLeaves(\n\toptions: DropdownOption[],\n\tnestedChildren = false,\n): SingleOption[] {\n\tconst leaves: SingleOption[] = [];\n\n\toptions.forEach((option) => {\n\t\tif ((option as GroupedOption).options) {\n\t\t\tleaves.push(...(option as GroupedOption).options);\n\t\t\treturn;\n\t\t}\n\n\t\tconst singleOption = option as SingleOption;\n\t\tleaves.push(\n\t\t\t...(nestedChildren && singleOption.children?.length\n\t\t\t\t? singleOption.children\n\t\t\t\t: [singleOption]),\n\t\t);\n\t});\n\n\treturn leaves;\n}\n"],"names":["applyToSubtree","option","newVal","nestedChildren","child","walkChildren","checkCB","children","selectableChildren","iterateOnOptions","options","applyToOption","iterateOnOptionsRaw","cb","visit","getSelectedOptionsAsText","selectedOption","op","getNestedParentValues","flattenSelectableOptions","flattened","groupedOption","singleOption","getSelectionLeaves","leaves"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { SelectAllCheckboxState } from '../OpenedDropdown/components/menu/SelectAllMenu';
2
2
  import { DropdownOption, SingleOption } from '../type';
3
- export declare const useDropdown: (version: string | undefined, options: DropdownOption[], onSelect: ((option: DropdownOption | DropdownOption[]) => void) | undefined, skipSorting?: boolean, isMultiSelect?: boolean, onSearch?: ((searchKey: string) => Promise<DropdownOption[]>) | undefined, disableOtherSearchedOption?: boolean, disableSearchedOptionExcept?: string[], maxSelections?: number) => {
3
+ export declare const useDropdown: (version: string | undefined, options: DropdownOption[], onSelect: ((option: DropdownOption | DropdownOption[]) => void) | undefined, skipSorting?: boolean, isMultiSelect?: boolean, onSearch?: ((searchKey: string) => Promise<DropdownOption[]>) | undefined, disableOtherSearchedOption?: boolean, disableSearchedOptionExcept?: string[], maxSelections?: number, childrenLayout?: 'flyout' | 'nested') => {
4
4
  latestDropdownOptionsRef: import('react').MutableRefObject<DropdownOption[]>;
5
5
  dropdownOptions: DropdownOption[];
6
6
  search: (searchKey: string) => void;
@@ -8,7 +8,8 @@ export declare const useDropdown: (version: string | undefined, options: Dropdow
8
8
  searchedOptions: DropdownOption[];
9
9
  searchError: string | undefined;
10
10
  retrySearch: () => void;
11
- onApplyHandler: (optionSelect: SingleOption, returnOnly?: boolean) => ({
11
+ onApplyHandler: (optionSelect: SingleOption, returnOnly?: boolean) => (SingleOption | {
12
+ options: SingleOption[];
12
13
  label: string;
13
14
  value: string;
14
15
  description?: string | null | undefined;
@@ -26,23 +27,9 @@ export declare const useDropdown: (version: string | undefined, options: Dropdow
26
27
  'data-test'?: string | undefined;
27
28
  hasDivider?: boolean | undefined;
28
29
  } | {
30
+ options: SingleOption[];
29
31
  label?: string | undefined;
30
- value?: string | undefined;
31
- description?: string | null | undefined;
32
- selected?: boolean | undefined;
33
- disabled?: boolean | undefined;
34
- isFreeForm?: boolean | undefined;
35
- subText?: string | undefined;
36
- trailingIcon?: JSX.Element | undefined;
37
32
  leadingIcon?: JSX.Element | undefined;
38
- customComponent?: JSX.Element | undefined;
39
- searchKey?: string | undefined;
40
- selectedLabel?: string | undefined;
41
- children?: SingleOption[] | undefined;
42
- parent?: SingleOption | undefined;
43
- 'data-test'?: string | undefined;
44
- hasDivider?: boolean | undefined;
45
- options: SingleOption[];
46
33
  })[] | undefined;
47
34
  selectAllHandler: (newState: SelectAllCheckboxState) => void;
48
35
  onMultiSelectClear: () => void;