@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.
- package/README.md +1 -0
- package/dist/cjs/components/WhatsAppTextEditor/AIRephraseButton.js +2 -2
- package/dist/cjs/components/WhatsAppTextEditor/AIRephraseButton.js.map +1 -1
- package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditor.js +4 -4
- package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditor.js.map +1 -1
- package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js +2 -2
- package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js.map +1 -1
- package/dist/cjs/components/accordion/Accordion.style.js +1 -1
- package/dist/cjs/components/accordion/Accordion.style.js.map +1 -1
- package/dist/cjs/components/action-button/ActionButton.styled.js +1 -1
- package/dist/cjs/components/action-button/ActionButton.styled.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/CommonStyles.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/CommonStyles.js.map +1 -1
- package/dist/cjs/components/bik-layout/SidebarStyles.js +1 -1
- package/dist/cjs/components/bik-layout/SidebarStyles.js.map +1 -1
- package/dist/cjs/components/button/Button.styled.js +3 -3
- package/dist/cjs/components/button/Button.styled.js.map +1 -1
- package/dist/cjs/components/buttonGroup/ButtonGroupStyle.js +1 -1
- package/dist/cjs/components/buttonGroup/ButtonGroupStyle.js.map +1 -1
- package/dist/cjs/components/card-selector/CardSelector.styled.js +1 -1
- package/dist/cjs/components/card-selector/CardSelector.styled.js.map +1 -1
- package/dist/cjs/components/carousel-preview/CarouselPreview.style.js +2 -2
- package/dist/cjs/components/carousel-preview/CarouselPreview.style.js.map +1 -1
- package/dist/cjs/components/checkBox/CheckBox.styled.js +1 -1
- package/dist/cjs/components/checkBox/CheckBox.styled.js.map +1 -1
- package/dist/cjs/components/dropdown/MenuItem/MenuItem.js +1 -1
- package/dist/cjs/components/dropdown/MenuItem/MenuItem.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +27 -10
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js.map +1 -1
- package/dist/cjs/components/dropdown/hooks/useDropdown.js +1 -1
- package/dist/cjs/components/dropdown/hooks/useDropdown.js.map +1 -1
- package/dist/cjs/components/dual-icon-button/DualIconButton.styled.js +2 -2
- package/dist/cjs/components/dual-icon-button/DualIconButton.styled.js.map +1 -1
- package/dist/cjs/components/floating-action-button/FloatingActionButton.styles.js +1 -1
- package/dist/cjs/components/floating-action-button/FloatingActionButton.styles.js.map +1 -1
- package/dist/cjs/components/icon-button/IconButton.styled.js +4 -4
- package/dist/cjs/components/icon-button/IconButton.styled.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.js +1 -1
- package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js +28 -19
- package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
- package/dist/cjs/components/plans/SubscriptionPlanSelector.js +1 -1
- package/dist/cjs/components/plans/SubscriptionPlanSelector.js.map +1 -1
- package/dist/cjs/components/product-picker-v2/style.js +2 -2
- package/dist/cjs/components/product-picker-v2/style.js.map +1 -1
- package/dist/cjs/components/switch/Switch.js +2 -2
- package/dist/cjs/components/switch/Switch.js.map +1 -1
- package/dist/cjs/components/template-preview/RCS/RCSPreview.styled.js +1 -1
- package/dist/cjs/components/template-preview/RCS/RCSPreview.styled.js.map +1 -1
- package/dist/cjs/components/template-preview/WhatsApp/ChatUI.style.js +1 -1
- package/dist/cjs/components/template-preview/WhatsApp/ChatUI.style.js.map +1 -1
- package/dist/esm/components/WhatsAppTextEditor/AIRephraseButton.js +2 -2
- package/dist/esm/components/WhatsAppTextEditor/AIRephraseButton.js.map +1 -1
- package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditor.js +4 -4
- package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditor.js.map +1 -1
- package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js +2 -2
- package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js.map +1 -1
- package/dist/esm/components/accordion/Accordion.style.js +1 -1
- package/dist/esm/components/accordion/Accordion.style.js.map +1 -1
- package/dist/esm/components/action-button/ActionButton.styled.js +1 -1
- package/dist/esm/components/action-button/ActionButton.styled.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/CommonStyles.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/CommonStyles.js.map +1 -1
- package/dist/esm/components/bik-layout/SidebarStyles.js +1 -1
- package/dist/esm/components/bik-layout/SidebarStyles.js.map +1 -1
- package/dist/esm/components/button/Button.styled.js +3 -3
- package/dist/esm/components/button/Button.styled.js.map +1 -1
- package/dist/esm/components/buttonGroup/ButtonGroupStyle.js +1 -1
- package/dist/esm/components/buttonGroup/ButtonGroupStyle.js.map +1 -1
- package/dist/esm/components/card-selector/CardSelector.styled.js +1 -1
- package/dist/esm/components/card-selector/CardSelector.styled.js.map +1 -1
- package/dist/esm/components/carousel-preview/CarouselPreview.style.js +2 -2
- package/dist/esm/components/carousel-preview/CarouselPreview.style.js.map +1 -1
- package/dist/esm/components/checkBox/CheckBox.styled.js +1 -1
- package/dist/esm/components/checkBox/CheckBox.styled.js.map +1 -1
- package/dist/esm/components/dropdown/MenuItem/MenuItem.js +1 -1
- package/dist/esm/components/dropdown/MenuItem/MenuItem.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +300 -278
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.d.ts +8 -0
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +170 -126
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.d.ts +4 -0
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js +144 -112
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.d.ts +1 -0
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +32 -31
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.d.ts +2 -0
- package/dist/esm/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js +54 -39
- package/dist/esm/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.d.ts +18 -16
- package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js +73 -27
- package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js.map +1 -1
- package/dist/esm/components/dropdown/hooks/useDropdown.d.ts +4 -17
- package/dist/esm/components/dropdown/hooks/useDropdown.js +176 -163
- package/dist/esm/components/dropdown/hooks/useDropdown.js.map +1 -1
- package/dist/esm/components/dropdown/type.d.ts +22 -0
- package/dist/esm/components/dual-icon-button/DualIconButton.styled.js +2 -2
- package/dist/esm/components/dual-icon-button/DualIconButton.styled.js.map +1 -1
- package/dist/esm/components/floating-action-button/FloatingActionButton.styles.js +1 -1
- package/dist/esm/components/floating-action-button/FloatingActionButton.styles.js.map +1 -1
- package/dist/esm/components/icon-button/IconButton.styled.js +4 -4
- package/dist/esm/components/icon-button/IconButton.styled.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js +46 -44
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.d.ts +3 -0
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js +25 -15
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/type.d.ts +5 -0
- package/dist/esm/components/plans/SubscriptionPlanSelector.js +1 -1
- package/dist/esm/components/plans/SubscriptionPlanSelector.js.map +1 -1
- package/dist/esm/components/product-picker-v2/style.js +2 -2
- package/dist/esm/components/product-picker-v2/style.js.map +1 -1
- package/dist/esm/components/switch/Switch.js +2 -2
- package/dist/esm/components/switch/Switch.js.map +1 -1
- package/dist/esm/components/template-preview/RCS/RCSPreview.styled.js +1 -1
- package/dist/esm/components/template-preview/RCS/RCSPreview.styled.js.map +1 -1
- package/dist/esm/components/template-preview/WhatsApp/ChatUI.style.js +1 -1
- package/dist/esm/components/template-preview/WhatsApp/ChatUI.style.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,47 +1,62 @@
|
|
|
1
|
-
import { jsxs as
|
|
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
|
|
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
|
|
6
|
-
const k = (
|
|
7
|
-
const {
|
|
8
|
-
|
|
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 ?? {},
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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 {
|
|
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
|
|
2
|
-
return
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
|
20
|
-
t.
|
|
21
|
-
|
|
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
|
|
25
|
-
if (!(!
|
|
26
|
-
return
|
|
27
|
-
const
|
|
28
|
-
return
|
|
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
|
-
|
|
33
|
-
|
|
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\
|
|
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;
|