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

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 (130) hide show
  1. package/dist/cjs/components/WhatsAppTextEditor/AIRephraseButton.js +2 -2
  2. package/dist/cjs/components/WhatsAppTextEditor/AIRephraseButton.js.map +1 -1
  3. package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditor.js +4 -4
  4. package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditor.js.map +1 -1
  5. package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js +2 -2
  6. package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js.map +1 -1
  7. package/dist/cjs/components/accordion/Accordion.style.js +1 -1
  8. package/dist/cjs/components/accordion/Accordion.style.js.map +1 -1
  9. package/dist/cjs/components/action-button/ActionButton.styled.js +1 -1
  10. package/dist/cjs/components/action-button/ActionButton.styled.js.map +1 -1
  11. package/dist/cjs/components/analytics-chips-and-dropdowns/CommonStyles.js +1 -1
  12. package/dist/cjs/components/analytics-chips-and-dropdowns/CommonStyles.js.map +1 -1
  13. package/dist/cjs/components/bik-layout/SidebarStyles.js +1 -1
  14. package/dist/cjs/components/bik-layout/SidebarStyles.js.map +1 -1
  15. package/dist/cjs/components/button/Button.styled.js +3 -3
  16. package/dist/cjs/components/button/Button.styled.js.map +1 -1
  17. package/dist/cjs/components/buttonGroup/ButtonGroupStyle.js +1 -1
  18. package/dist/cjs/components/buttonGroup/ButtonGroupStyle.js.map +1 -1
  19. package/dist/cjs/components/card-selector/CardSelector.styled.js +1 -1
  20. package/dist/cjs/components/card-selector/CardSelector.styled.js.map +1 -1
  21. package/dist/cjs/components/carousel-preview/CarouselPreview.style.js +2 -2
  22. package/dist/cjs/components/carousel-preview/CarouselPreview.style.js.map +1 -1
  23. package/dist/cjs/components/checkBox/CheckBox.styled.js +1 -1
  24. package/dist/cjs/components/checkBox/CheckBox.styled.js.map +1 -1
  25. package/dist/cjs/components/dropdown/MenuItem/MenuItem.js +1 -1
  26. package/dist/cjs/components/dropdown/MenuItem/MenuItem.js.map +1 -1
  27. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +1 -1
  28. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  29. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +10 -27
  30. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
  31. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js +1 -1
  32. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
  33. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +1 -1
  34. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
  35. package/dist/cjs/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js +1 -1
  36. package/dist/cjs/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js.map +1 -1
  37. package/dist/cjs/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js +1 -1
  38. package/dist/cjs/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js.map +1 -1
  39. package/dist/cjs/components/dropdown/hooks/useDropdown.js +1 -1
  40. package/dist/cjs/components/dropdown/hooks/useDropdown.js.map +1 -1
  41. package/dist/cjs/components/dual-icon-button/DualIconButton.styled.js +2 -2
  42. package/dist/cjs/components/dual-icon-button/DualIconButton.styled.js.map +1 -1
  43. package/dist/cjs/components/floating-action-button/FloatingActionButton.styles.js +1 -1
  44. package/dist/cjs/components/floating-action-button/FloatingActionButton.styles.js.map +1 -1
  45. package/dist/cjs/components/icon-button/IconButton.styled.js +4 -4
  46. package/dist/cjs/components/icon-button/IconButton.styled.js.map +1 -1
  47. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.js +1 -1
  48. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
  49. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js +11 -14
  50. package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
  51. package/dist/cjs/components/plans/SubscriptionPlanSelector.js +1 -1
  52. package/dist/cjs/components/plans/SubscriptionPlanSelector.js.map +1 -1
  53. package/dist/cjs/components/product-picker-v2/style.js +2 -2
  54. package/dist/cjs/components/product-picker-v2/style.js.map +1 -1
  55. package/dist/cjs/components/switch/Switch.js +2 -2
  56. package/dist/cjs/components/switch/Switch.js.map +1 -1
  57. package/dist/cjs/components/template-preview/RCS/RCSPreview.styled.js +1 -1
  58. package/dist/cjs/components/template-preview/RCS/RCSPreview.styled.js.map +1 -1
  59. package/dist/cjs/components/template-preview/WhatsApp/ChatUI.style.js +1 -1
  60. package/dist/cjs/components/template-preview/WhatsApp/ChatUI.style.js.map +1 -1
  61. package/dist/esm/components/WhatsAppTextEditor/AIRephraseButton.js +2 -2
  62. package/dist/esm/components/WhatsAppTextEditor/AIRephraseButton.js.map +1 -1
  63. package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditor.js +4 -4
  64. package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditor.js.map +1 -1
  65. package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js +2 -2
  66. package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js.map +1 -1
  67. package/dist/esm/components/accordion/Accordion.style.js +1 -1
  68. package/dist/esm/components/accordion/Accordion.style.js.map +1 -1
  69. package/dist/esm/components/action-button/ActionButton.styled.js +1 -1
  70. package/dist/esm/components/action-button/ActionButton.styled.js.map +1 -1
  71. package/dist/esm/components/analytics-chips-and-dropdowns/CommonStyles.js +1 -1
  72. package/dist/esm/components/analytics-chips-and-dropdowns/CommonStyles.js.map +1 -1
  73. package/dist/esm/components/bik-layout/SidebarStyles.js +1 -1
  74. package/dist/esm/components/bik-layout/SidebarStyles.js.map +1 -1
  75. package/dist/esm/components/button/Button.styled.js +3 -3
  76. package/dist/esm/components/button/Button.styled.js.map +1 -1
  77. package/dist/esm/components/buttonGroup/ButtonGroupStyle.js +1 -1
  78. package/dist/esm/components/buttonGroup/ButtonGroupStyle.js.map +1 -1
  79. package/dist/esm/components/card-selector/CardSelector.styled.js +1 -1
  80. package/dist/esm/components/card-selector/CardSelector.styled.js.map +1 -1
  81. package/dist/esm/components/carousel-preview/CarouselPreview.style.js +2 -2
  82. package/dist/esm/components/carousel-preview/CarouselPreview.style.js.map +1 -1
  83. package/dist/esm/components/checkBox/CheckBox.styled.js +1 -1
  84. package/dist/esm/components/checkBox/CheckBox.styled.js.map +1 -1
  85. package/dist/esm/components/dropdown/MenuItem/MenuItem.js +1 -1
  86. package/dist/esm/components/dropdown/MenuItem/MenuItem.js.map +1 -1
  87. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +278 -300
  88. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  89. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.d.ts +0 -8
  90. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +126 -170
  91. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
  92. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.d.ts +0 -4
  93. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js +112 -144
  94. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
  95. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.d.ts +0 -1
  96. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +31 -32
  97. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
  98. package/dist/esm/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.d.ts +0 -2
  99. package/dist/esm/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js +39 -54
  100. package/dist/esm/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js.map +1 -1
  101. package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.d.ts +16 -18
  102. package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js +27 -73
  103. package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js.map +1 -1
  104. package/dist/esm/components/dropdown/hooks/useDropdown.d.ts +17 -4
  105. package/dist/esm/components/dropdown/hooks/useDropdown.js +163 -176
  106. package/dist/esm/components/dropdown/hooks/useDropdown.js.map +1 -1
  107. package/dist/esm/components/dropdown/type.d.ts +0 -22
  108. package/dist/esm/components/dual-icon-button/DualIconButton.styled.js +2 -2
  109. package/dist/esm/components/dual-icon-button/DualIconButton.styled.js.map +1 -1
  110. package/dist/esm/components/floating-action-button/FloatingActionButton.styles.js +1 -1
  111. package/dist/esm/components/floating-action-button/FloatingActionButton.styles.js.map +1 -1
  112. package/dist/esm/components/icon-button/IconButton.styled.js +4 -4
  113. package/dist/esm/components/icon-button/IconButton.styled.js.map +1 -1
  114. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js +44 -46
  115. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
  116. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.d.ts +0 -3
  117. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js +25 -29
  118. package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
  119. package/dist/esm/components/multi-level-dropdown/type.d.ts +0 -5
  120. package/dist/esm/components/plans/SubscriptionPlanSelector.js +1 -1
  121. package/dist/esm/components/plans/SubscriptionPlanSelector.js.map +1 -1
  122. package/dist/esm/components/product-picker-v2/style.js +2 -2
  123. package/dist/esm/components/product-picker-v2/style.js.map +1 -1
  124. package/dist/esm/components/switch/Switch.js +2 -2
  125. package/dist/esm/components/switch/Switch.js.map +1 -1
  126. package/dist/esm/components/template-preview/RCS/RCSPreview.styled.js +1 -1
  127. package/dist/esm/components/template-preview/RCS/RCSPreview.styled.js.map +1 -1
  128. package/dist/esm/components/template-preview/WhatsApp/ChatUI.style.js +1 -1
  129. package/dist/esm/components/template-preview/WhatsApp/ChatUI.style.js.map +1 -1
  130. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/menu/MenuItem.tsx"],"sourcesContent":["import ChevronDownIcon from '@src/assets/icons/chevronDownOutline.svg';\nimport ChevronRightIcon from '@src/assets/icons/chevronRight.svg';\nimport ChevronUpIcon from '@src/assets/icons/chevronUpOutline.svg';\nimport { forwardRef, useState } from 'react';\nimport styled from 'styled-components';\nimport { CheckBox } from '@src/components/checkBox';\nimport { ListItem } from '@src/components/list-item';\nimport { Tooltip } from '@src/components/tooltips';\nimport { BodyCaption } from '@src/components/TypographyStyle';\nimport { COLORS, DEFAULT_THEME } from '@src/constants/Theme';\nimport { MultiSelectOption, SingleOption } from '../../../type';\nimport { FreeFormContainer } from './FreeFormMenu.styled';\n\nconst StyledListItem = styled(ListItem)<{\n\tversion?: '1.0' | '2.0' | '3.0';\n\tbrandSelectedRow?: boolean;\n}>`\n\tpadding: ${(props) =>\n\t\tprops.version === '3.0'\n\t\t\t? '8px'\n\t\t\t: props.version === '2.0'\n\t\t\t? '8px 12px'\n\t\t\t: '14px 16px'} !important;\n\tcursor: pointer;\n\tmargin-top: ${(props) =>\n\t\tprops.brandSelectedRow ? '0' : props.version === '2.0' ? '2px' : '0'};\n`;\n\n// The elbow connector geometry is fixed, so nested rows pin their own metrics\n// instead of varying with `version`.\nconst StyledNestedListItem = styled(StyledListItem)`\n\tpadding: 8px !important;\n\tmargin-top: 0;\n\tborder-radius: 0;\n`;\n\nconst StyledChildDropdownContainer = styled.div<{ version: string }>`\n\tbox-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.12);\n\tborder-radius: ${({ version }) => (version === '1.0' ? '0' : '8px')};\n\tpadding: ${({ version }) => (version === '1.0' ? '0' : '4px')};\n\tmin-width: 148px;\n\tborder: ${({ version }) =>\n\t\tversion === '1.0'\n\t\t\t? `1px solid ${DEFAULT_THEME.colorsV2.stroke.primary}`\n\t\t\t: 'none'};\n\tmax-height: 248px;\n\toverflow-y: auto;\n`;\n\nconst DragHandleContainer = styled.div`\n\tdisplay: grid;\n\tgrid-template-columns: repeat(2, 2.86px);\n\tgrid-template-rows: repeat(3, 2.86px);\n\tcolumn-gap: 3.8px;\n\trow-gap: 4px;\n\tmargin-right: 8px;\n\tcursor: move;\n\tflex-shrink: 0;\n\talign-self: center;\n\theight: fit-content;\n\tmin-height: 18px;\n`;\n\nconst DragDot = styled.div`\n\twidth: 2.86px;\n\theight: 2.86px;\n\tborder-radius: 50%;\n\tbackground-color: ${COLORS.content.inactive};\n\tflex-shrink: 0;\n`;\n\nconst RowLeadingContainer = styled.div`\n\tdisplay: flex;\n\talign-content: center;\n\tjustify-content: center;\n\tgap: 8px;\n`;\n\n/** Elbow joining a nested child row back to its parent. */\nconst Connector = styled.span`\n\talign-self: flex-start;\n\tflex-shrink: 0;\n\twidth: 11px;\n\theight: 9px;\n\tmargin-left: 4px;\n\tborder-left: 1px solid ${COLORS.content.placeholder};\n\tborder-bottom: 1px solid ${COLORS.content.placeholder};\n\tborder-bottom-left-radius: 4px;\n`;\n\n/** Separate hit area so clicking the chevron never toggles selection. */\nconst CollapseToggle = styled.span`\n\tdisplay: flex;\n\talign-items: center;\n\tcursor: pointer;\n`;\n\nconst LeadingIconWrapper = styled.div`\n\tmargin-right: -4px;\n`;\n\nconst SingleSelectDragContainer = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tflex-direction: column;\n\tflex: 1;\n`;\n\ninterface DragHandleIconProps {\n\tonDragStart?: (e: React.DragEvent<HTMLDivElement>) => void;\n\tonDragEnd?: (e: React.DragEvent<HTMLDivElement>) => void;\n}\n\nconst DragHandleIcon = ({ onDragStart, onDragEnd }: DragHandleIconProps) => (\n\t<DragHandleContainer\n\t\tdraggable\n\t\tonDragStart={onDragStart}\n\t\tonDragEnd={onDragEnd}\n\t>\n\t\t<DragDot />\n\t\t<DragDot />\n\t\t<DragDot />\n\t\t<DragDot />\n\t\t<DragDot />\n\t\t<DragDot />\n\t</DragHandleContainer>\n);\n\ninterface MenuItemProps {\n\toption: SingleOption | MultiSelectOption;\n\tisMultiSelect?: boolean;\n\tshowDescription: (title?: string, description?: string) => void;\n\tonSelect: (option: SingleOption) => void;\n\tonDropdownItemClick?: (option: SingleOption) => void;\n\tlast?: boolean;\n\tversion?: '1.0' | '2.0' | '3.0';\n\tuseDefaultCursor?: boolean;\n\tisFocused?: boolean;\n\tdataIndex?: number;\n\tisDraggable?: boolean;\n\tonDragStart?: (e: React.DragEvent<HTMLDivElement>) => void;\n\tonDragOver?: (e: React.DragEvent<HTMLDivElement>) => void;\n\tonDrop?: (e: React.DragEvent<HTMLDivElement>) => void;\n\tonDragEnd?: (e: React.DragEvent<HTMLDivElement>) => void;\n\tisDraggedOver?: boolean;\n\tshowCheckboxForCustomElement?: boolean;\n\tcheckboxActiveColor?: string;\n\tbrandSelectedRow?: boolean;\n\tchildrenLayout?: 'flyout' | 'nested';\n\t/** Indents the row under its parent and draws the elbow connector. */\n\tisChildRow?: boolean;\n\t/** Renders the parent checkbox in its indeterminate state. */\n\tisPartiallyChecked?: boolean;\n\tisCollapsible?: boolean;\n\tisCollapsed?: boolean;\n\tonToggleCollapse?: () => void;\n}\n// eslint-disable-next-line react/display-name\nexport const MenuItem = forwardRef<HTMLDivElement, MenuItemProps>(\n\t(\n\t\t{\n\t\t\toption,\n\t\t\tisMultiSelect,\n\t\t\tshowDescription,\n\t\t\tonSelect,\n\t\t\tlast,\n\t\t\tversion,\n\t\t\tonDropdownItemClick,\n\t\t\tuseDefaultCursor,\n\t\t\tisFocused = false,\n\t\t\tdataIndex = -1,\n\t\t\tisDraggable = false,\n\t\t\tonDragStart,\n\t\t\tonDragOver,\n\t\t\tonDrop,\n\t\t\tonDragEnd,\n\t\t\tisDraggedOver = false,\n\t\t\tshowCheckboxForCustomElement = false,\n\t\t\tcheckboxActiveColor,\n\t\t\tbrandSelectedRow,\n\t\t\tchildrenLayout = 'flyout',\n\t\t\tisChildRow = false,\n\t\t\tisPartiallyChecked = false,\n\t\t\tisCollapsible = false,\n\t\t\tisCollapsed = false,\n\t\t\tonToggleCollapse,\n\t\t},\n\t\tchildRef,\n\t) => {\n\t\tconst [isChildOptionHovered, setIsChildOptionHovered] = useState(\n\t\t\toption.selected,\n\t\t);\n\n\t\t// MenuList renders nested children inline, so there is no flyout and the\n\t\t// parent row is itself selectable.\n\t\tconst isNested = childrenLayout === 'nested';\n\t\tconst RowListItem = isNested ? StyledNestedListItem : StyledListItem;\n\n\t\tconst handleOptionClick = (option: SingleOption, parent?: SingleOption) => {\n\t\t\tif (!option.children || isNested) {\n\t\t\t\tonCheckHandler(!option.selected);\n\t\t\t\tconst updatedOption = parent ? { ...option, parent } : option;\n\t\t\t\tonDropdownItemClick?.(updatedOption);\n\t\t\t}\n\t\t};\n\n\t\tconst onCheckHandler = (checked: boolean) => {\n\t\t\tif (!option.disabled) {\n\t\t\t\tonSelect({ ...option, selected: checked });\n\t\t\t}\n\t\t};\n\n\t\tconst onHoverIn = () => {\n\t\t\tif (option.description) {\n\t\t\t\tshowDescription(option.label, option.description);\n\t\t\t} else {\n\t\t\t\tshowDescription();\n\t\t\t}\n\t\t};\n\n\t\tconst cursorConfig = useDefaultCursor ? { cursor: 'default' } : {};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Tooltip\n\t\t\t\t\tbody={''}\n\t\t\t\t\ttooltipContent={\n\t\t\t\t\t\toption.children && !isNested ? (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tbackgroundColor: DEFAULT_THEME.colorsV2.surface.standard,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tref={childRef}\n\t\t\t\t\t\t\t\tonMouseEnter={() => setIsChildOptionHovered(true)}\n\t\t\t\t\t\t\t\tonMouseLeave={() => setIsChildOptionHovered(false)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<StyledChildDropdownContainer version={version ?? '2.0'}>\n\t\t\t\t\t\t\t\t\t{option.children.map((child) => (\n\t\t\t\t\t\t\t\t\t\t<StyledListItem\n\t\t\t\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t\t\t\t\tkey={child.value}\n\t\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\t\tversion !== '1.0' && (option?.children ?? []).length - 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { borderBottom: 0 }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\thandleOptionClick(child, option);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tlistItem={{ value: child.value, label: child.label }}\n\t\t\t\t\t\t\t\t\t\t\tsubText={child.subText}\n\t\t\t\t\t\t\t\t\t\t\tleadingIcon={child.leadingIcon || undefined}\n\t\t\t\t\t\t\t\t\t\t\tcustomComponent={child.customComponent}\n\t\t\t\t\t\t\t\t\t\t\ttrailingIcon={child.trailingIcon || undefined}\n\t\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\t\toption.disabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'inactive'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: child.selected\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'selected'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 'default'\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</StyledChildDropdownContainer>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<></>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tplacement={'right-start'}\n\t\t\t\t\thideArrow={true}\n\t\t\t\t>\n\t\t\t\t\t<RowListItem\n\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\tlast\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\tborderBottom: 0,\n\t\t\t\t\t\t\t\t\t\t...cursorConfig,\n\t\t\t\t\t\t\t\t\t\t...(isDraggedOver\n\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderTop: `2px solid ${COLORS.content.brand}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\topacity: 0.5,\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t...cursorConfig,\n\t\t\t\t\t\t\t\t\t\t...(isDraggedOver\n\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderTop: `2px solid ${COLORS.content.brand}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\topacity: 0.5,\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\thandleOptionClick(option);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseOver={onHoverIn}\n\t\t\t\t\t\tlistItem={{ value: option.value, label: option.label }}\n\t\t\t\t\t\tsubText={option.subText}\n\t\t\t\t\t\tdata-option-index={dataIndex}\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\tid={`dropdown-option-${dataIndex}`}\n\t\t\t\t\t\taria-selected={!!option.selected}\n\t\t\t\t\t\tonDragOver={isDraggable ? onDragOver : undefined}\n\t\t\t\t\t\tonDrop={isDraggable ? onDrop : undefined}\n\t\t\t\t\t\tleadingIcon={\n\t\t\t\t\t\t\tisMultiSelect &&\n\t\t\t\t\t\t\t!(showCheckboxForCustomElement && option.customComponent) ? (\n\t\t\t\t\t\t\t\t<RowLeadingContainer>\n\t\t\t\t\t\t\t\t\t{isChildRow && <Connector />}\n\t\t\t\t\t\t\t\t\t{isDraggable && (\n\t\t\t\t\t\t\t\t\t\t<DragHandleIcon\n\t\t\t\t\t\t\t\t\t\t\tonDragStart={onDragStart}\n\t\t\t\t\t\t\t\t\t\t\tonDragEnd={onDragEnd}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<CheckBox\n\t\t\t\t\t\t\t\t\t\tsize={!isNested && version === '2.0' ? 'SMALL' : 'DEFAULT'}\n\t\t\t\t\t\t\t\t\t\tisDisabled={option.disabled ?? false}\n\t\t\t\t\t\t\t\t\t\tisChecked={!!option.selected || isPartiallyChecked}\n\t\t\t\t\t\t\t\t\t\tisPartiallyChecked={isPartiallyChecked}\n\t\t\t\t\t\t\t\t\t\t// A partial parent renders checked while unselected, so\n\t\t\t\t\t\t\t\t\t\t// deriving the next value from isChecked would clear the\n\t\t\t\t\t\t\t\t\t\t// group while the row click selects it.\n\t\t\t\t\t\t\t\t\t\tonValueChange={() => onCheckHandler(!option.selected)}\n\t\t\t\t\t\t\t\t\t\tactiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<LeadingIconWrapper>{option.leadingIcon}</LeadingIconWrapper>\n\t\t\t\t\t\t\t\t</RowLeadingContainer>\n\t\t\t\t\t\t\t) : isChildRow ? (\n\t\t\t\t\t\t\t\t<RowLeadingContainer>\n\t\t\t\t\t\t\t\t\t<Connector />\n\t\t\t\t\t\t\t\t\t{option.leadingIcon}\n\t\t\t\t\t\t\t\t</RowLeadingContainer>\n\t\t\t\t\t\t\t) : isDraggable ? (\n\t\t\t\t\t\t\t\t<SingleSelectDragContainer>\n\t\t\t\t\t\t\t\t\t<DragHandleIcon\n\t\t\t\t\t\t\t\t\t\tonDragStart={onDragStart}\n\t\t\t\t\t\t\t\t\t\tonDragEnd={onDragEnd}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{option.leadingIcon && <div>{option.leadingIcon}</div>}\n\t\t\t\t\t\t\t\t</SingleSelectDragContainer>\n\t\t\t\t\t\t\t) : option.leadingIcon ? (\n\t\t\t\t\t\t\t\t<>{option.leadingIcon}</>\n\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcustomComponent={\n\t\t\t\t\t\t\tisMultiSelect &&\n\t\t\t\t\t\t\tshowCheckboxForCustomElement &&\n\t\t\t\t\t\t\toption.customComponent ? (\n\t\t\t\t\t\t\t\t<RowLeadingContainer>\n\t\t\t\t\t\t\t\t\t{isDraggable && (\n\t\t\t\t\t\t\t\t\t\t<DragHandleIcon\n\t\t\t\t\t\t\t\t\t\t\tonDragStart={onDragStart}\n\t\t\t\t\t\t\t\t\t\t\tonDragEnd={onDragEnd}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<CheckBox\n\t\t\t\t\t\t\t\t\t\tsize={version === '2.0' ? 'SMALL' : 'DEFAULT'}\n\t\t\t\t\t\t\t\t\t\tisDisabled={option.disabled ?? false}\n\t\t\t\t\t\t\t\t\t\tisChecked={!!option.selected}\n\t\t\t\t\t\t\t\t\t\tonValueChange={onCheckHandler}\n\t\t\t\t\t\t\t\t\t\tactiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{option.customComponent}\n\t\t\t\t\t\t\t\t</RowLeadingContainer>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\toption.customComponent\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttrailingIcon={\n\t\t\t\t\t\t\toption.isFreeForm ? (\n\t\t\t\t\t\t\t\t<FreeFormContainer>\n\t\t\t\t\t\t\t\t\t<BodyCaption style={{ color: COLORS.content.secondary }}>\n\t\t\t\t\t\t\t\t\t\tFreeform\n\t\t\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t\t\t</FreeFormContainer>\n\t\t\t\t\t\t\t) : isCollapsible ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{option.trailingIcon}\n\t\t\t\t\t\t\t\t\t<CollapseToggle\n\t\t\t\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\t\t\t\taria-expanded={!isCollapsed}\n\t\t\t\t\t\t\t\t\t\taria-label={`${isCollapsed ? 'Expand' : 'Collapse'} ${\n\t\t\t\t\t\t\t\t\t\t\toption.label\n\t\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\tonToggleCollapse?.();\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{isCollapsed ? (\n\t\t\t\t\t\t\t\t\t\t\t<ChevronDownIcon width={16} height={16} />\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<ChevronUpIcon width={16} height={16} />\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</CollapseToggle>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) : option.children && !isNested ? (\n\t\t\t\t\t\t\t\t<ChevronRightIcon width={12} height={12} />\n\t\t\t\t\t\t\t) : option.trailingIcon ? (\n\t\t\t\t\t\t\t\t<>{option.trailingIcon}</>\n\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\toption.disabled\n\t\t\t\t\t\t\t\t? 'inactive'\n\t\t\t\t\t\t\t\t: option.selected || (!isMultiSelect && isChildOptionHovered)\n\t\t\t\t\t\t\t\t? 'selected'\n\t\t\t\t\t\t\t\t: isFocused\n\t\t\t\t\t\t\t\t? 'focused'\n\t\t\t\t\t\t\t\t: 'default'\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t</>\n\t\t);\n\t},\n);\n"],"names":["StyledListItem","styled","ListItem","props","StyledNestedListItem","StyledChildDropdownContainer","version","DEFAULT_THEME","DragHandleContainer","DragDot","COLORS","RowLeadingContainer","Connector","CollapseToggle","LeadingIconWrapper","SingleSelectDragContainer","DragHandleIcon","onDragStart","onDragEnd","jsxs","jsx","MenuItem","forwardRef","option","isMultiSelect","showDescription","onSelect","last","onDropdownItemClick","useDefaultCursor","isFocused","dataIndex","isDraggable","onDragOver","onDrop","isDraggedOver","showCheckboxForCustomElement","checkboxActiveColor","brandSelectedRow","childrenLayout","isChildRow","isPartiallyChecked","isCollapsible","isCollapsed","onToggleCollapse","childRef","isChildOptionHovered","setIsChildOptionHovered","useState","isNested","RowListItem","handleOptionClick","parent","onCheckHandler","updatedOption","checked","onHoverIn","cursorConfig","Fragment","Tooltip","child","e","CheckBox","FreeFormContainer","BodyCaption","ChevronDownIcon","ChevronUpIcon","ChevronRightIcon"],"mappings":"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"}
1
+ {"version":3,"file":"MenuItem.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/menu/MenuItem.tsx"],"sourcesContent":["import ChevronRightIcon from '@src/assets/icons/chevronRight.svg';\nimport { forwardRef, useState } from 'react';\nimport styled from 'styled-components';\nimport { CheckBox } from '@src/components/checkBox';\nimport { ListItem } from '@src/components/list-item';\nimport { Tooltip } from '@src/components/tooltips';\nimport { BodyCaption } from '@src/components/TypographyStyle';\nimport { COLORS, DEFAULT_THEME } from '@src/constants/Theme';\nimport { MultiSelectOption, SingleOption } from '../../../type';\nimport { FreeFormContainer } from './FreeFormMenu.styled';\n\nconst StyledListItem = styled(ListItem)<{\n\tversion?: '1.0' | '2.0' | '3.0';\n\tbrandSelectedRow?: boolean;\n}>`\n\tpadding: ${(props) =>\n\t\tprops.version === '3.0'\n\t\t\t? '8px'\n\t\t\t: props.version === '2.0'\n\t\t\t? '8px 12px'\n\t\t\t: '14px 16px'} !important;\n\tcursor: pointer;\n\tmargin-top: ${(props) =>\n\t\tprops.brandSelectedRow ? '0' : props.version === '2.0' ? '2px' : '0'};\n`;\n\nconst StyledChildDropdownContainer = styled.div<{ version: string }>`\n\tbox-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.12);\n\tborder-radius: ${({ version }) => (version === '1.0' ? '0' : '8px')};\n\tpadding: ${({ version }) => (version === '1.0' ? '0' : '4px')};\n\tmin-width: 148px;\n\tborder: ${({ version }) =>\n\t\tversion === '1.0'\n\t\t\t? `1px solid ${DEFAULT_THEME.colorsV2.stroke.primary}`\n\t\t\t: 'none'};\n\tmax-height: 248px;\n\toverflow-y: auto;\n`;\n\nconst DragHandleContainer = styled.div`\n\tdisplay: grid;\n\tgrid-template-columns: repeat(2, 2.86px);\n\tgrid-template-rows: repeat(3, 2.86px);\n\tcolumn-gap: 3.8px;\n\trow-gap: 4px;\n\tmargin-right: 8px;\n\tcursor: move;\n\tflex-shrink: 0;\n\talign-self: center;\n\theight: fit-content;\n\tmin-height: 18px;\n`;\n\nconst DragDot = styled.div`\n\twidth: 2.86px;\n\theight: 2.86px;\n\tborder-radius: 50%;\n\tbackground-color: ${COLORS.content.inactive};\n\tflex-shrink: 0;\n`;\n\nconst MultiSelectLeadingContainer = styled.div`\n\tdisplay: flex;\n\talign-content: center;\n\tjustify-content: center;\n\tgap: 8px;\n`;\n\nconst LeadingIconWrapper = styled.div`\n\tmargin-right: -4px;\n`;\n\nconst SingleSelectDragContainer = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tflex-direction: column;\n\tflex: 1;\n`;\n\ninterface DragHandleIconProps {\n\tonDragStart?: (e: React.DragEvent<HTMLDivElement>) => void;\n\tonDragEnd?: (e: React.DragEvent<HTMLDivElement>) => void;\n}\n\nconst DragHandleIcon = ({ onDragStart, onDragEnd }: DragHandleIconProps) => (\n\t<DragHandleContainer\n\t\tdraggable\n\t\tonDragStart={onDragStart}\n\t\tonDragEnd={onDragEnd}\n\t>\n\t\t<DragDot />\n\t\t<DragDot />\n\t\t<DragDot />\n\t\t<DragDot />\n\t\t<DragDot />\n\t\t<DragDot />\n\t</DragHandleContainer>\n);\n\ninterface MenuItemProps {\n\toption: SingleOption | MultiSelectOption;\n\tisMultiSelect?: boolean;\n\tshowDescription: (title?: string, description?: string) => void;\n\tonSelect: (option: SingleOption) => void;\n\tonDropdownItemClick?: (option: SingleOption) => void;\n\tlast?: boolean;\n\tversion?: '1.0' | '2.0' | '3.0';\n\tuseDefaultCursor?: boolean;\n\tisFocused?: boolean;\n\tdataIndex?: number;\n\tisDraggable?: boolean;\n\tonDragStart?: (e: React.DragEvent<HTMLDivElement>) => void;\n\tonDragOver?: (e: React.DragEvent<HTMLDivElement>) => void;\n\tonDrop?: (e: React.DragEvent<HTMLDivElement>) => void;\n\tonDragEnd?: (e: React.DragEvent<HTMLDivElement>) => void;\n\tisDraggedOver?: boolean;\n\tshowCheckboxForCustomElement?: boolean;\n\tcheckboxActiveColor?: string;\n\tbrandSelectedRow?: boolean;\n}\n// eslint-disable-next-line react/display-name\nexport const MenuItem = forwardRef<HTMLDivElement, MenuItemProps>(\n\t(\n\t\t{\n\t\t\toption,\n\t\t\tisMultiSelect,\n\t\t\tshowDescription,\n\t\t\tonSelect,\n\t\t\tlast,\n\t\t\tversion,\n\t\t\tonDropdownItemClick,\n\t\t\tuseDefaultCursor,\n\t\t\tisFocused = false,\n\t\t\tdataIndex = -1,\n\t\t\tisDraggable = false,\n\t\t\tonDragStart,\n\t\t\tonDragOver,\n\t\t\tonDrop,\n\t\t\tonDragEnd,\n\t\t\tisDraggedOver = false,\n\t\t\tshowCheckboxForCustomElement = false,\n\t\t\tcheckboxActiveColor,\n\t\t\tbrandSelectedRow,\n\t\t},\n\t\tchildRef,\n\t) => {\n\t\tconst [isChildOptionHovered, setIsChildOptionHovered] = useState(\n\t\t\toption.selected,\n\t\t);\n\n\t\tconst handleOptionClick = (option: SingleOption, parent?: SingleOption) => {\n\t\t\tif (!option.children) {\n\t\t\t\tonCheckHandler(!option.selected);\n\t\t\t\tconst updatedOption = parent ? { ...option, parent } : option;\n\t\t\t\tonDropdownItemClick?.(updatedOption);\n\t\t\t}\n\t\t};\n\n\t\tconst onCheckHandler = (checked: boolean) => {\n\t\t\tif (!option.disabled) {\n\t\t\t\tonSelect({ ...option, selected: checked });\n\t\t\t}\n\t\t};\n\n\t\tconst onHoverIn = () => {\n\t\t\tif (option.description) {\n\t\t\t\tshowDescription(option.label, option.description);\n\t\t\t} else {\n\t\t\t\tshowDescription();\n\t\t\t}\n\t\t};\n\n\t\tconst cursorConfig = useDefaultCursor ? { cursor: 'default' } : {};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Tooltip\n\t\t\t\t\tbody={''}\n\t\t\t\t\ttooltipContent={\n\t\t\t\t\t\toption.children ? (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tbackgroundColor: DEFAULT_THEME.colorsV2.surface.standard,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tref={childRef}\n\t\t\t\t\t\t\t\tonMouseEnter={() => setIsChildOptionHovered(true)}\n\t\t\t\t\t\t\t\tonMouseLeave={() => setIsChildOptionHovered(false)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<StyledChildDropdownContainer version={version ?? '2.0'}>\n\t\t\t\t\t\t\t\t\t{option.children.map((child) => (\n\t\t\t\t\t\t\t\t\t\t<StyledListItem\n\t\t\t\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t\t\t\t\tkey={child.value}\n\t\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\t\tversion !== '1.0' && (option?.children ?? []).length - 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { borderBottom: 0 }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\thandleOptionClick(child, option);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tlistItem={{ value: child.value, label: child.label }}\n\t\t\t\t\t\t\t\t\t\t\tsubText={child.subText}\n\t\t\t\t\t\t\t\t\t\t\tleadingIcon={child.leadingIcon || undefined}\n\t\t\t\t\t\t\t\t\t\t\tcustomComponent={child.customComponent}\n\t\t\t\t\t\t\t\t\t\t\ttrailingIcon={child.trailingIcon || undefined}\n\t\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\t\toption.disabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'inactive'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: child.selected\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'selected'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 'default'\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</StyledChildDropdownContainer>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<></>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tplacement={'right-start'}\n\t\t\t\t\thideArrow={true}\n\t\t\t\t>\n\t\t\t\t\t<StyledListItem\n\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\tlast\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\tborderBottom: 0,\n\t\t\t\t\t\t\t\t\t\t...cursorConfig,\n\t\t\t\t\t\t\t\t\t\t...(isDraggedOver\n\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderTop: `2px solid ${COLORS.content.brand}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\topacity: 0.5,\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t...cursorConfig,\n\t\t\t\t\t\t\t\t\t\t...(isDraggedOver\n\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderTop: `2px solid ${COLORS.content.brand}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\topacity: 0.5,\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\thandleOptionClick(option);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseOver={onHoverIn}\n\t\t\t\t\t\tlistItem={{ value: option.value, label: option.label }}\n\t\t\t\t\t\tsubText={option.subText}\n\t\t\t\t\t\tdata-option-index={dataIndex}\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\tid={`dropdown-option-${dataIndex}`}\n\t\t\t\t\t\taria-selected={!!option.selected}\n\t\t\t\t\t\tonDragOver={isDraggable ? onDragOver : undefined}\n\t\t\t\t\t\tonDrop={isDraggable ? onDrop : undefined}\n\t\t\t\t\t\tleadingIcon={\n\t\t\t\t\t\t\tisMultiSelect &&\n\t\t\t\t\t\t\t!(showCheckboxForCustomElement && option.customComponent) ? (\n\t\t\t\t\t\t\t\t<MultiSelectLeadingContainer>\n\t\t\t\t\t\t\t\t\t{isDraggable && (\n\t\t\t\t\t\t\t\t\t\t<DragHandleIcon\n\t\t\t\t\t\t\t\t\t\t\tonDragStart={onDragStart}\n\t\t\t\t\t\t\t\t\t\t\tonDragEnd={onDragEnd}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<CheckBox\n\t\t\t\t\t\t\t\t\t\tsize={version === '2.0' ? 'SMALL' : 'DEFAULT'}\n\t\t\t\t\t\t\t\t\t\tisDisabled={option.disabled ?? false}\n\t\t\t\t\t\t\t\t\t\tisChecked={!!option.selected}\n\t\t\t\t\t\t\t\t\t\tonValueChange={onCheckHandler}\n\t\t\t\t\t\t\t\t\t\tactiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<LeadingIconWrapper>{option.leadingIcon}</LeadingIconWrapper>\n\t\t\t\t\t\t\t\t</MultiSelectLeadingContainer>\n\t\t\t\t\t\t\t) : isDraggable ? (\n\t\t\t\t\t\t\t\t<SingleSelectDragContainer>\n\t\t\t\t\t\t\t\t\t<DragHandleIcon\n\t\t\t\t\t\t\t\t\t\tonDragStart={onDragStart}\n\t\t\t\t\t\t\t\t\t\tonDragEnd={onDragEnd}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{option.leadingIcon && <div>{option.leadingIcon}</div>}\n\t\t\t\t\t\t\t\t</SingleSelectDragContainer>\n\t\t\t\t\t\t\t) : option.leadingIcon ? (\n\t\t\t\t\t\t\t\t<>{option.leadingIcon}</>\n\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcustomComponent={\n\t\t\t\t\t\t\tisMultiSelect &&\n\t\t\t\t\t\t\tshowCheckboxForCustomElement &&\n\t\t\t\t\t\t\toption.customComponent ? (\n\t\t\t\t\t\t\t\t<MultiSelectLeadingContainer>\n\t\t\t\t\t\t\t\t\t{isDraggable && (\n\t\t\t\t\t\t\t\t\t\t<DragHandleIcon\n\t\t\t\t\t\t\t\t\t\t\tonDragStart={onDragStart}\n\t\t\t\t\t\t\t\t\t\t\tonDragEnd={onDragEnd}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<CheckBox\n\t\t\t\t\t\t\t\t\t\tsize={version === '2.0' ? 'SMALL' : 'DEFAULT'}\n\t\t\t\t\t\t\t\t\t\tisDisabled={option.disabled ?? false}\n\t\t\t\t\t\t\t\t\t\tisChecked={!!option.selected}\n\t\t\t\t\t\t\t\t\t\tonValueChange={onCheckHandler}\n\t\t\t\t\t\t\t\t\t\tactiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{option.customComponent}\n\t\t\t\t\t\t\t\t</MultiSelectLeadingContainer>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\toption.customComponent\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttrailingIcon={\n\t\t\t\t\t\t\toption.isFreeForm ? (\n\t\t\t\t\t\t\t\t<FreeFormContainer>\n\t\t\t\t\t\t\t\t\t<BodyCaption style={{ color: COLORS.content.secondary }}>\n\t\t\t\t\t\t\t\t\t\tFreeform\n\t\t\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t\t\t</FreeFormContainer>\n\t\t\t\t\t\t\t) : option.children ? (\n\t\t\t\t\t\t\t\t<ChevronRightIcon width={12} height={12} />\n\t\t\t\t\t\t\t) : option.trailingIcon ? (\n\t\t\t\t\t\t\t\t<>{option.trailingIcon}</>\n\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\toption.disabled\n\t\t\t\t\t\t\t\t? 'inactive'\n\t\t\t\t\t\t\t\t: option.selected || (!isMultiSelect && isChildOptionHovered)\n\t\t\t\t\t\t\t\t? 'selected'\n\t\t\t\t\t\t\t\t: isFocused\n\t\t\t\t\t\t\t\t? 'focused'\n\t\t\t\t\t\t\t\t: 'default'\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t</>\n\t\t);\n\t},\n);\n"],"names":["StyledListItem","styled","ListItem","props","StyledChildDropdownContainer","version","DEFAULT_THEME","DragHandleContainer","DragDot","COLORS","MultiSelectLeadingContainer","LeadingIconWrapper","SingleSelectDragContainer","DragHandleIcon","onDragStart","onDragEnd","jsxs","jsx","MenuItem","forwardRef","option","isMultiSelect","showDescription","onSelect","last","onDropdownItemClick","useDefaultCursor","isFocused","dataIndex","isDraggable","onDragOver","onDrop","isDraggedOver","showCheckboxForCustomElement","checkboxActiveColor","brandSelectedRow","childRef","isChildOptionHovered","setIsChildOptionHovered","useState","handleOptionClick","parent","onCheckHandler","updatedOption","checked","onHoverIn","cursorConfig","Fragment","Tooltip","child","e","CheckBox","FreeFormContainer","BodyCaption","ChevronRightIcon"],"mappings":";;;;;;;;;;AAWA,MAAMA,IAAiBC,EAAOC,CAAQ;AAAA,YAI1B,CAACC,MACXA,EAAM,YAAY,QACf,QACAA,EAAM,YAAY,QAClB,aACA,WAAW;AAAA;AAAA,eAED,CAACA,MACdA,EAAM,mBAAmB,MAAMA,EAAM,YAAY,QAAQ,QAAQ,GAAG;AAAA,GAGhEC,IAA+BH,EAAO;AAAA;AAAA,kBAE1B,CAAC,EAAE,SAAAI,EAAA,MAAeA,MAAY,QAAQ,MAAM,KAAM;AAAA,YACxD,CAAC,EAAE,SAAAA,EAAA,MAAeA,MAAY,QAAQ,MAAM,KAAM;AAAA;AAAA,WAEnD,CAAC,EAAE,SAAAA,EAAA,MACZA,MAAY,QACT,aAAaC,EAAc,SAAS,OAAO,OAAO,KAClD,MAAM;AAAA;AAAA;AAAA,GAKLC,IAAsBN,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAc7BO,IAAUP,EAAO;AAAA;AAAA;AAAA;AAAA,qBAIFQ,EAAO,QAAQ,QAAQ;AAAA;AAAA,GAItCC,IAA8BT,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOrCU,IAAqBV,EAAO;AAAA;AAAA,GAI5BW,IAA4BX,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAYnCY,IAAiB,CAAC,EAAE,aAAAC,GAAa,WAAAC,QACtC,gBAAAC;AAAA,EAACT;AAAA,EAAA;AAAA,IACA,WAAS;AAAA,IACT,aAAAO;AAAA,IACA,WAAAC;AAAA,IAEA,UAAA;AAAA,MAAA,gBAAAE,EAACT,GAAA,EAAQ;AAAA,wBACRA,GAAA,EAAQ;AAAA,wBACRA,GAAA,EAAQ;AAAA,wBACRA,GAAA,EAAQ;AAAA,wBACRA,GAAA,EAAQ;AAAA,wBACRA,GAAA,CAAA,CAAQ;AAAA,IAAA;AAAA,EAAA;AACV,GAyBYU,KAAWC;AAAA,EACvB,CACC;AAAA,IACC,QAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAAC;AAAA,IACA,SAAAnB;AAAA,IACA,qBAAAoB;AAAA,IACA,kBAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,WAAAC,IAAY;AAAA,IACZ,aAAAC,IAAc;AAAA,IACd,aAAAf;AAAA,IACA,YAAAgB;AAAA,IACA,QAAAC;AAAA,IACA,WAAAhB;AAAA,IACA,eAAAiB,IAAgB;AAAA,IAChB,8BAAAC,IAA+B;AAAA,IAC/B,qBAAAC;AAAA,IACA,kBAAAC;AAAA,EAAA,GAEDC,MACI;AACJ,UAAM,CAACC,GAAsBC,CAAuB,IAAIC;AAAA,MACvDnB,EAAO;AAAA,IAAA,GAGFoB,IAAoB,CAACpB,GAAsBqB,MAA0B;AAC1E,UAAI,CAACrB,EAAO,UAAU;AACrB,QAAAsB,EAAe,CAACtB,EAAO,QAAQ;AAC/B,cAAMuB,IAAgBF,IAAS,EAAE,GAAGrB,GAAQ,QAAAqB,MAAWrB;AACvD,QAAAK,IAAsBkB,CAAa;AAAA,MACpC;AAAA,IACD,GAEMD,IAAiB,CAACE,MAAqB;AAC5C,MAAKxB,EAAO,YACXG,EAAS,EAAE,GAAGH,GAAQ,UAAUwB,GAAS;AAAA,IAE3C,GAEMC,IAAY,MAAM;AACvB,MAAIzB,EAAO,cACVE,EAAgBF,EAAO,OAAOA,EAAO,WAAW,IAEhDE,EAAA;AAAA,IAEF,GAEMwB,IAAepB,IAAmB,EAAE,QAAQ,UAAA,IAAc,CAAA;AAEhE,WACC,gBAAAT,EAAA8B,GAAA,EACC,UAAA,gBAAA9B;AAAA,MAAC+B;AAAA,MAAA;AAAA,QACA,MAAM;AAAA,QACN,gBACC5B,EAAO,WACN,gBAAAH;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,OAAO;AAAA,cACN,iBAAiBX,EAAc,SAAS,QAAQ;AAAA,YAAA;AAAA,YAEjD,KAAK8B;AAAA,YACL,cAAc,MAAME,EAAwB,EAAI;AAAA,YAChD,cAAc,MAAMA,EAAwB,EAAK;AAAA,YAEjD,UAAA,gBAAArB,EAACb,KAA6B,SAASC,KAAW,OAChD,UAAAe,EAAO,SAAS,IAAI,CAAC6B,MACrB,gBAAAhC;AAAA,cAACjB;AAAA,cAAA;AAAA,gBACA,SAAAK;AAAA,gBACA,kBAAA8B;AAAA,gBAEA,OACC9B,MAAY,UAAUe,GAAQ,YAAY,IAAI,SAAS,IACpD,EAAE,cAAc,EAAA,IAChB,CAAA;AAAA,gBAEJ,SAAS,CAAC8B,MAAM;AACf,kBAAAA,EAAE,eAAA,GACFV,EAAkBS,GAAO7B,CAAM;AAAA,gBAChC;AAAA,gBACA,UAAU,EAAE,OAAO6B,EAAM,OAAO,OAAOA,EAAM,MAAA;AAAA,gBAC7C,SAASA,EAAM;AAAA,gBACf,aAAaA,EAAM,eAAe;AAAA,gBAClC,iBAAiBA,EAAM;AAAA,gBACvB,cAAcA,EAAM,gBAAgB;AAAA,gBACpC,SACC7B,EAAO,WACJ,aACA6B,EAAM,WACN,aACA;AAAA,cAAA;AAAA,cApBCA,EAAM;AAAA,YAAA,CAuBZ,EAAA,CACF;AAAA,UAAA;AAAA,QAAA,IAGD,gBAAAhC,EAAA8B,GAAA,EAAE;AAAA,QAGJ,WAAW;AAAA,QACX,WAAW;AAAA,QAEX,UAAA,gBAAA9B;AAAA,UAACjB;AAAA,UAAA;AAAA,YACA,SAAAK;AAAA,YACA,kBAAA8B;AAAA,YACA,OACCX,IACG;AAAA,cACA,cAAc;AAAA,cACd,GAAGsB;AAAA,cACH,GAAId,IACD;AAAA,gBACA,WAAW,aAAavB,EAAO,QAAQ,KAAK;AAAA,gBAC5C,SAAS;AAAA,cAAA,IAET,CAAA;AAAA,YAAC,IAEJ;AAAA,cACA,GAAGqC;AAAA,cACH,GAAId,IACD;AAAA,gBACA,WAAW,aAAavB,EAAO,QAAQ,KAAK;AAAA,gBAC5C,SAAS;AAAA,cAAA,IAET,CAAA;AAAA,YAAC;AAAA,YAGR,SAAS,CAACyC,MAAM;AACf,cAAAA,EAAE,eAAA,GACFV,EAAkBpB,CAAM;AAAA,YACzB;AAAA,YACA,aAAayB;AAAA,YACb,UAAU,EAAE,OAAOzB,EAAO,OAAO,OAAOA,EAAO,MAAA;AAAA,YAC/C,SAASA,EAAO;AAAA,YAChB,qBAAmBQ;AAAA,YACnB,MAAK;AAAA,YACL,IAAI,mBAAmBA,CAAS;AAAA,YAChC,iBAAe,CAAC,CAACR,EAAO;AAAA,YACxB,YAAYS,IAAcC,IAAa;AAAA,YACvC,QAAQD,IAAcE,IAAS;AAAA,YAC/B,aACCV,KACA,EAAEY,KAAgCb,EAAO,qCACvCV,GAAA,EACC,UAAA;AAAA,cAAAmB,KACA,gBAAAZ;AAAA,gBAACJ;AAAA,gBAAA;AAAA,kBACA,aAAAC;AAAA,kBACA,WAAAC;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGF,gBAAAE;AAAA,gBAACkC;AAAA,gBAAA;AAAA,kBACA,MAAM9C,MAAY,QAAQ,UAAU;AAAA,kBACpC,YAAYe,EAAO,YAAY;AAAA,kBAC/B,WAAW,CAAC,CAACA,EAAO;AAAA,kBACpB,eAAesB;AAAA,kBACf,aAAaR;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEd,gBAAAjB,EAACN,GAAA,EAAoB,UAAAS,EAAO,YAAA,CAAY;AAAA,YAAA,EAAA,CACzC,IACGS,IACH,gBAAAb,EAACJ,GAAA,EACA,UAAA;AAAA,cAAA,gBAAAK;AAAA,gBAACJ;AAAA,gBAAA;AAAA,kBACA,aAAAC;AAAA,kBACA,WAAAC;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEAK,EAAO,eAAe,gBAAAH,EAAC,OAAA,EAAK,YAAO,YAAA,CAAY;AAAA,YAAA,EAAA,CACjD,IACGG,EAAO,cACV,gBAAAH,EAAA8B,GAAA,EAAG,UAAA3B,EAAO,aAAY,IACnB;AAAA,YAEL,iBACCC,KACAY,KACAb,EAAO,oCACLV,GAAA,EACC,UAAA;AAAA,cAAAmB,KACA,gBAAAZ;AAAA,gBAACJ;AAAA,gBAAA;AAAA,kBACA,aAAAC;AAAA,kBACA,WAAAC;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGF,gBAAAE;AAAA,gBAACkC;AAAA,gBAAA;AAAA,kBACA,MAAM9C,MAAY,QAAQ,UAAU;AAAA,kBACpC,YAAYe,EAAO,YAAY;AAAA,kBAC/B,WAAW,CAAC,CAACA,EAAO;AAAA,kBACpB,eAAesB;AAAA,kBACf,aAAaR;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEbd,EAAO;AAAA,YAAA,EAAA,CACT,IAEAA,EAAO;AAAA,YAGT,cACCA,EAAO,aACN,gBAAAH,EAACmC,GAAA,EACA,UAAA,gBAAAnC,EAACoC,GAAA,EAAY,OAAO,EAAE,OAAO5C,EAAO,QAAQ,aAAa,UAAA,WAAA,CAEzD,EAAA,CACD,IACGW,EAAO,WACV,gBAAAH,EAACqC,GAAA,EAAiB,OAAO,IAAI,QAAQ,GAAA,CAAI,IACtClC,EAAO,eACV,gBAAAH,EAAA8B,GAAA,EAAG,UAAA3B,EAAO,cAAa,IACpB;AAAA,YAEL,SACCA,EAAO,WACJ,aACAA,EAAO,YAAa,CAACC,KAAiBgB,IACtC,aACAV,IACA,YACA;AAAA,UAAA;AAAA,QAAA;AAAA,MAEL;AAAA,IAAA,GAEF;AAAA,EAEF;AACD;"}
@@ -14,10 +14,6 @@ interface MenuListProps {
14
14
  showCheckboxForCustomElement?: boolean;
15
15
  checkboxActiveColor?: string;
16
16
  brandSelectedRow?: boolean;
17
- childrenLayout?: 'flyout' | 'nested';
18
- collapsibleChildren?: boolean;
19
- collapsedParents: string[];
20
- onToggleCollapsed: (value: string) => void;
21
17
  }
22
18
  export declare const MenuList: import('react').ForwardRefExoticComponent<MenuListProps & import('react').RefAttributes<HTMLDivElement[]>>;
23
19
  export {};
@@ -1,175 +1,143 @@
1
- import { jsx as a, Fragment as k, jsxs as L } from "react/jsx-runtime";
2
- import { forwardRef as ee, useRef as U, useState as V, useCallback as p, useEffect as ne } from "react";
3
- import { flattenSelectableOptions as te } from "../../utils/iterationOnOptions.js";
4
- import { MenuItem as M } from "./MenuItem.js";
5
- import { StyledGroupedLabel as re, Divider as se } from "./MenuList.styled.js";
6
- const fe = ee(
1
+ import { jsx as d, Fragment as V, jsxs as D } from "react/jsx-runtime";
2
+ import { forwardRef as W, useRef as A, useState as B, useCallback as o, useEffect as X } from "react";
3
+ import { MenuItem as H } from "./MenuItem.js";
4
+ import { StyledGroupedLabel as Y, Divider as Z } from "./MenuList.styled.js";
5
+ const ne = W(
7
6
  ({
8
- options: c,
9
- isMultiSelect: h,
10
- showDescription: O,
7
+ options: l,
8
+ isMultiSelect: O,
9
+ showDescription: b,
11
10
  onSelect: y,
12
- version: f,
13
- onInfiniteScroll: N,
14
- onDropdownItemClick: b,
15
- useDefaultCursor: F,
16
- focusedIndex: x = -1,
17
- isDraggable: d = !1,
18
- onOptionsReorder: q,
19
- showCheckboxForCustomElement: D = !1,
20
- checkboxActiveColor: j,
21
- brandSelectedRow: T,
22
- childrenLayout: E = "flyout",
23
- collapsibleChildren: W = !1,
24
- collapsedParents: z,
25
- onToggleCollapsed: X
26
- }, s) => {
27
- const u = U(null), v = U(null), [m, R] = V(null), [Y, $] = V(
11
+ version: i,
12
+ onInfiniteScroll: E,
13
+ onDropdownItemClick: F,
14
+ useDefaultCursor: j,
15
+ focusedIndex: T = -1,
16
+ isDraggable: s = !1,
17
+ onOptionsReorder: L,
18
+ showCheckboxForCustomElement: M = !1,
19
+ checkboxActiveColor: R,
20
+ brandSelectedRow: $
21
+ }, t) => {
22
+ const u = A(null), g = A(null), [p, m] = B(null), [J, I] = B(
28
23
  null
29
- ), B = p(() => {
30
- u.current && u.current.disconnect(), u.current = new IntersectionObserver((t) => {
31
- t[0].isIntersecting && N?.();
32
- }), v.current && u.current.observe(v.current);
33
- }, [N]);
34
- ne(() => (B(), () => {
24
+ ), w = o(() => {
25
+ u.current && u.current.disconnect(), u.current = new IntersectionObserver((n) => {
26
+ n[0].isIntersecting && E?.();
27
+ }), g.current && u.current.observe(g.current);
28
+ }, [E]);
29
+ X(() => (w(), () => {
35
30
  u.current && u.current.disconnect();
36
- }), [B, c]);
37
- const Z = p(
38
- (t) => (e) => {
39
- d && (R(t), e.dataTransfer.effectAllowed = "move");
31
+ }), [w, l]);
32
+ const K = o(
33
+ (n) => (e) => {
34
+ s && (m(n), e.dataTransfer.effectAllowed = "move");
40
35
  },
41
- [d]
42
- ), _ = p(
43
- (t) => (e) => {
44
- d && (e.preventDefault(), e.dataTransfer.dropEffect = "move", $(t));
36
+ [s]
37
+ ), N = o(
38
+ (n) => (e) => {
39
+ s && (e.preventDefault(), e.dataTransfer.dropEffect = "move", I(n));
45
40
  },
46
- [d]
47
- ), A = p(
48
- (t) => (e) => {
49
- if (!(!d || m === null)) {
50
- if (e.preventDefault(), m !== t) {
51
- const l = [...c], [r] = l.splice(m, 1);
52
- l.splice(t, 0, r), q?.(l);
41
+ [s]
42
+ ), P = o(
43
+ (n) => (e) => {
44
+ if (!(!s || p === null)) {
45
+ if (e.preventDefault(), p !== n) {
46
+ const c = [...l], [a] = c.splice(p, 1);
47
+ c.splice(n, 0, a), L?.(c);
53
48
  }
54
- R(null), $(null);
49
+ m(null), I(null);
55
50
  }
56
51
  },
57
- [d, m, c, q]
58
- ), w = p(() => {
59
- R(null), $(null);
60
- }, []), H = E === "nested", G = new Map(
61
- te(
62
- c,
63
- H ? { collapsedParents: z } : void 0
64
- ).map((t, e) => [t, e])
65
- );
66
- return /* @__PURE__ */ a(k, { children: c.map((t, e) => {
67
- const l = e === c.length - 1;
68
- if (t.options) {
69
- const n = t;
70
- return /* @__PURE__ */ L("div", { style: { marginTop: f === "2.0" ? 2 : 0 }, children: [
71
- /* @__PURE__ */ L(re, { version: f, children: [
72
- n.leadingIcon ? /* @__PURE__ */ a("span", { style: { marginRight: 8 }, children: n.leadingIcon }) : null,
73
- n.label
52
+ [s, p, l, L]
53
+ ), Q = o(() => {
54
+ m(null), I(null);
55
+ }, []), v = /* @__PURE__ */ new Map();
56
+ let h = -1;
57
+ return l.forEach((n) => {
58
+ if (n.options)
59
+ n.options.forEach((e) => {
60
+ e.disabled || (h++, v.set(e, h));
61
+ });
62
+ else {
63
+ const e = n;
64
+ e.disabled || (h++, v.set(e, h));
65
+ }
66
+ }), /* @__PURE__ */ d(V, { children: l.map((n, e) => {
67
+ const c = e === l.length - 1;
68
+ if (n.options) {
69
+ const r = n;
70
+ return /* @__PURE__ */ D("div", { style: { marginTop: i === "2.0" ? 2 : 0 }, children: [
71
+ /* @__PURE__ */ D(Y, { version: i, children: [
72
+ r.leadingIcon ? /* @__PURE__ */ d("span", { style: { marginRight: 8 }, children: r.leadingIcon }) : null,
73
+ r.label
74
74
  ] }),
75
- n.options.map((i, o) => {
76
- const Q = G.get(i), S = Q === x && !i.disabled;
77
- return /* @__PURE__ */ a(
78
- M,
75
+ r.options.map((x, q) => {
76
+ const z = v.get(x), U = z === T && !x.disabled;
77
+ return /* @__PURE__ */ d(
78
+ H,
79
79
  {
80
- version: f,
81
- last: o === n.options.length - 1,
80
+ version: i,
81
+ last: q === r.options.length - 1,
82
82
  onSelect: y,
83
- showDescription: O,
84
- onDropdownItemClick: b,
85
- isMultiSelect: h,
86
- option: i,
87
- useDefaultCursor: F,
88
- isFocused: S,
89
- dataIndex: Q,
83
+ showDescription: b,
84
+ onDropdownItemClick: F,
85
+ isMultiSelect: O,
86
+ option: x,
87
+ useDefaultCursor: j,
88
+ isFocused: U,
89
+ dataIndex: z,
90
90
  isDraggable: !1,
91
- showCheckboxForCustomElement: D,
92
- checkboxActiveColor: j,
93
- brandSelectedRow: T,
94
- ref: (g) => {
95
- s && typeof s == "object" && s.current && g && g && g && g && (s.current[e] = g);
91
+ showCheckboxForCustomElement: M,
92
+ checkboxActiveColor: R,
93
+ brandSelectedRow: $,
94
+ ref: (f) => {
95
+ t && typeof t == "object" && t.current && f && f && f && f && (t.current[e] = f);
96
96
  }
97
97
  },
98
- `${e}-${o}`
98
+ `${e}-${q}`
99
99
  );
100
100
  }),
101
- l ? /* @__PURE__ */ a("span", { ref: v }) : null
101
+ c ? /* @__PURE__ */ d("span", { ref: g }) : null
102
102
  ] }, e);
103
103
  }
104
- const r = t, J = G.get(r), C = J === x && !r.disabled, I = H ? r.children ?? [] : [], K = z.includes(r.value), P = I.filter(
105
- (n) => !n.disabled
106
- );
107
- return /* @__PURE__ */ L("div", { children: [
108
- r.hasDivider && /* @__PURE__ */ a(se, {}),
109
- /* @__PURE__ */ a(
110
- M,
104
+ const a = n, G = v.get(a), S = G === T && !a.disabled;
105
+ return /* @__PURE__ */ D("div", { children: [
106
+ a.hasDivider && /* @__PURE__ */ d(Z, {}),
107
+ /* @__PURE__ */ d(
108
+ H,
111
109
  {
112
- version: f,
113
- last: l,
110
+ version: i,
111
+ last: c,
114
112
  onSelect: y,
115
- showDescription: O,
116
- onDropdownItemClick: b,
117
- isMultiSelect: h,
118
- option: r,
119
- useDefaultCursor: F,
120
- isFocused: C,
121
- dataIndex: J,
122
- isDraggable: d,
123
- onDragStart: Z(e),
124
- onDragOver: _(e),
125
- onDrop: A(e),
126
- onDragEnd: w,
127
- isDraggedOver: Y === e,
128
- showCheckboxForCustomElement: D,
129
- checkboxActiveColor: j,
130
- brandSelectedRow: T,
131
- childrenLayout: E,
132
- isPartiallyChecked: P.some((n) => n.selected) && !P.every((n) => n.selected),
133
- isCollapsible: W && !!I.length,
134
- isCollapsed: K,
135
- onToggleCollapse: () => X(r.value),
136
- ref: (n) => {
137
- s && typeof s == "object" && s.current && n && (s.current[e] = n);
113
+ showDescription: b,
114
+ onDropdownItemClick: F,
115
+ isMultiSelect: O,
116
+ option: a,
117
+ useDefaultCursor: j,
118
+ isFocused: S,
119
+ dataIndex: G,
120
+ isDraggable: s,
121
+ onDragStart: K(e),
122
+ onDragOver: N(e),
123
+ onDrop: P(e),
124
+ onDragEnd: Q,
125
+ isDraggedOver: J === e,
126
+ showCheckboxForCustomElement: M,
127
+ checkboxActiveColor: R,
128
+ brandSelectedRow: $,
129
+ ref: (r) => {
130
+ t && typeof t == "object" && t.current && r && (t.current[e] = r);
138
131
  }
139
132
  },
140
- r.value
133
+ a.value
141
134
  ),
142
- !K && I.map((n, i) => {
143
- const o = G.get(n);
144
- return /* @__PURE__ */ a(
145
- M,
146
- {
147
- version: f,
148
- last: l && i === I.length - 1,
149
- onSelect: y,
150
- showDescription: O,
151
- onDropdownItemClick: b,
152
- isMultiSelect: h,
153
- option: n,
154
- useDefaultCursor: F,
155
- isFocused: o === x && !n.disabled,
156
- dataIndex: o,
157
- isDraggable: !1,
158
- showCheckboxForCustomElement: D,
159
- checkboxActiveColor: j,
160
- brandSelectedRow: T,
161
- childrenLayout: E,
162
- isChildRow: !0
163
- },
164
- n.value
165
- );
166
- }),
167
- l ? /* @__PURE__ */ a("span", { ref: v }) : null
135
+ c ? /* @__PURE__ */ d("span", { ref: g }) : null
168
136
  ] }, e);
169
137
  }) });
170
138
  }
171
139
  );
172
140
  export {
173
- fe as MenuList
141
+ ne as MenuList
174
142
  };
175
143
  //# sourceMappingURL=MenuList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuList.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/menu/MenuList.tsx"],"sourcesContent":["import { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\nimport { DropdownOption, GroupedOption, SingleOption } from '../../../type';\nimport { flattenSelectableOptions } from '../../utils/iterationOnOptions';\nimport { MenuItem } from './MenuItem';\nimport { Divider, StyledGroupedLabel } from './MenuList.styled';\n\ninterface MenuListProps {\n\toptions: DropdownOption[];\n\tisMultiSelect?: boolean;\n\tshowDescription: (title?: string, description?: string) => void;\n\tonSelect: (optionSelect: SingleOption) => void;\n\tversion?: '1.0' | '2.0' | '3.0';\n\tonInfiniteScroll?: () => void;\n\tonDropdownItemClick?: (option: DropdownOption) => void;\n\tuseDefaultCursor?: boolean;\n\tfocusedIndex?: number;\n\tisDraggable?: boolean;\n\tonOptionsReorder?: (reorderedOptions: DropdownOption[]) => void;\n\tshowCheckboxForCustomElement?: boolean;\n\tcheckboxActiveColor?: string;\n\tbrandSelectedRow?: boolean;\n\tchildrenLayout?: 'flyout' | 'nested';\n\tcollapsibleChildren?: boolean;\n\t// Collapse state lives in OpenedDropdown, which also drives keyboard focus:\n\t// the flat row order both sides use depends on which children are visible.\n\tcollapsedParents: string[];\n\tonToggleCollapsed: (value: string) => void;\n}\n// eslint-disable-next-line react/display-name\nexport const MenuList = forwardRef<HTMLDivElement[], MenuListProps>(\n\t(\n\t\t{\n\t\t\toptions,\n\t\t\tisMultiSelect,\n\t\t\tshowDescription,\n\t\t\tonSelect,\n\t\t\tversion,\n\t\t\tonInfiniteScroll,\n\t\t\tonDropdownItemClick,\n\t\t\tuseDefaultCursor,\n\t\t\tfocusedIndex = -1,\n\t\t\tisDraggable = false,\n\t\t\tonOptionsReorder,\n\t\t\tshowCheckboxForCustomElement = false,\n\t\t\tcheckboxActiveColor,\n\t\t\tbrandSelectedRow,\n\t\t\tchildrenLayout = 'flyout',\n\t\t\tcollapsibleChildren = false,\n\t\t\tcollapsedParents,\n\t\t\tonToggleCollapsed,\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst observer = useRef<IntersectionObserver | null>(null);\n\t\tconst spanRef = useRef<HTMLSpanElement | null>(null);\n\t\tconst [draggedIndex, setDraggedIndex] = useState<number | null>(null);\n\t\tconst [draggedOverIndex, setDraggedOverIndex] = useState<number | null>(\n\t\t\tnull,\n\t\t);\n\n\t\tconst setupObserver = useCallback(() => {\n\t\t\tif (observer.current) {\n\t\t\t\tobserver.current.disconnect();\n\t\t\t}\n\t\t\tobserver.current = new IntersectionObserver((entries) => {\n\t\t\t\tif (entries[0].isIntersecting) {\n\t\t\t\t\tonInfiniteScroll?.();\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (spanRef.current) {\n\t\t\t\tobserver.current.observe(spanRef.current);\n\t\t\t}\n\t\t}, [onInfiniteScroll]);\n\n\t\tuseEffect(() => {\n\t\t\tsetupObserver();\n\t\t\treturn () => {\n\t\t\t\tif (observer.current) {\n\t\t\t\t\tobserver.current.disconnect();\n\t\t\t\t}\n\t\t\t};\n\t\t}, [setupObserver, options]);\n\n\t\tconst handleDragStart = useCallback(\n\t\t\t(index: number) => (e: React.DragEvent<HTMLDivElement>) => {\n\t\t\t\tif (!isDraggable) return;\n\t\t\t\tsetDraggedIndex(index);\n\t\t\t\te.dataTransfer.effectAllowed = 'move';\n\t\t\t},\n\t\t\t[isDraggable],\n\t\t);\n\n\t\tconst handleDragOver = useCallback(\n\t\t\t(index: number) => (e: React.DragEvent<HTMLDivElement>) => {\n\t\t\t\tif (!isDraggable) return;\n\t\t\t\te.preventDefault();\n\t\t\t\te.dataTransfer.dropEffect = 'move';\n\t\t\t\tsetDraggedOverIndex(index);\n\t\t\t},\n\t\t\t[isDraggable],\n\t\t);\n\n\t\tconst handleDrop = useCallback(\n\t\t\t(dropIndex: number) => (e: React.DragEvent<HTMLDivElement>) => {\n\t\t\t\tif (!isDraggable || draggedIndex === null) return;\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif (draggedIndex !== dropIndex) {\n\t\t\t\t\tconst newOptions = [...options];\n\t\t\t\t\tconst [item] = newOptions.splice(draggedIndex, 1);\n\t\t\t\t\tnewOptions.splice(dropIndex, 0, item);\n\t\t\t\t\tonOptionsReorder?.(newOptions);\n\t\t\t\t}\n\n\t\t\t\tsetDraggedIndex(null);\n\t\t\t\tsetDraggedOverIndex(null);\n\t\t\t},\n\t\t\t[isDraggable, draggedIndex, options, onOptionsReorder],\n\t\t);\n\n\t\tconst handleDragEnd = useCallback(() => {\n\t\t\tsetDraggedIndex(null);\n\t\t\tsetDraggedOverIndex(null);\n\t\t}, []);\n\n\t\tconst isNestedLayout = childrenLayout === 'nested';\n\n\t\tconst flatIndices = new Map<SingleOption, number>(\n\t\t\tflattenSelectableOptions(\n\t\t\t\toptions,\n\t\t\t\tisNestedLayout ? { collapsedParents } : undefined,\n\t\t\t).map((option, index) => [option, index]),\n\t\t);\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{options.map((option, i) => {\n\t\t\t\t\tconst last = i === options.length - 1;\n\t\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t\tconst groupedOption = option as GroupedOption;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div key={i} style={{ marginTop: version === '2.0' ? 2 : 0 }}>\n\t\t\t\t\t\t\t\t<StyledGroupedLabel version={version}>\n\t\t\t\t\t\t\t\t\t{groupedOption.leadingIcon ? (\n\t\t\t\t\t\t\t\t\t\t<span style={{ marginRight: 8 }}>\n\t\t\t\t\t\t\t\t\t\t\t{groupedOption.leadingIcon}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t{groupedOption.label}\n\t\t\t\t\t\t\t\t</StyledGroupedLabel>\n\t\t\t\t\t\t\t\t{groupedOption.options.map((menuOption, idx) => {\n\t\t\t\t\t\t\t\t\tconst currentFlatIndex = flatIndices.get(menuOption);\n\t\t\t\t\t\t\t\t\tconst isFocused =\n\t\t\t\t\t\t\t\t\t\tcurrentFlatIndex === focusedIndex && !menuOption.disabled;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\t\t\t\tlast={idx === groupedOption.options.length - 1}\n\t\t\t\t\t\t\t\t\t\t\tonSelect={onSelect}\n\t\t\t\t\t\t\t\t\t\t\tshowDescription={showDescription}\n\t\t\t\t\t\t\t\t\t\t\tonDropdownItemClick={onDropdownItemClick}\n\t\t\t\t\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\t\t\t\t\toption={menuOption}\n\t\t\t\t\t\t\t\t\t\t\tuseDefaultCursor={useDefaultCursor}\n\t\t\t\t\t\t\t\t\t\t\tkey={`${i}-${idx}`}\n\t\t\t\t\t\t\t\t\t\t\tisFocused={isFocused}\n\t\t\t\t\t\t\t\t\t\t\tdataIndex={currentFlatIndex}\n\t\t\t\t\t\t\t\t\t\t\tisDraggable={false}\n\t\t\t\t\t\t\t\t\t\t\tshowCheckboxForCustomElement={\n\t\t\t\t\t\t\t\t\t\t\t\tshowCheckboxForCustomElement\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (ref && typeof ref === 'object' && ref.current) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (el) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (el) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (el) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (el) ref.current[i] = el;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t{last ? <span ref={spanRef} /> : null}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\t\tconst currentFlatIndex = flatIndices.get(singleOption);\n\t\t\t\t\tconst isFocused =\n\t\t\t\t\t\tcurrentFlatIndex === focusedIndex && !singleOption.disabled;\n\t\t\t\t\tconst nestedChildren = isNestedLayout\n\t\t\t\t\t\t? singleOption.children ?? []\n\t\t\t\t\t\t: [];\n\t\t\t\t\tconst collapsed = collapsedParents.includes(singleOption.value);\n\t\t\t\t\t// iterateOnOptions derives the parent from its selectable children,\n\t\t\t\t\t// so the dash has to ignore disabled ones as well.\n\t\t\t\t\tconst selectableChildren = nestedChildren.filter(\n\t\t\t\t\t\t(child) => !child.disabled,\n\t\t\t\t\t);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div key={i}>\n\t\t\t\t\t\t\t{singleOption.hasDivider && <Divider />}\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\tlast={last}\n\t\t\t\t\t\t\t\tonSelect={onSelect}\n\t\t\t\t\t\t\t\tshowDescription={showDescription}\n\t\t\t\t\t\t\t\tonDropdownItemClick={onDropdownItemClick}\n\t\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\t\toption={singleOption}\n\t\t\t\t\t\t\t\tuseDefaultCursor={useDefaultCursor}\n\t\t\t\t\t\t\t\tkey={singleOption.value}\n\t\t\t\t\t\t\t\tisFocused={isFocused}\n\t\t\t\t\t\t\t\tdataIndex={currentFlatIndex}\n\t\t\t\t\t\t\t\tisDraggable={isDraggable}\n\t\t\t\t\t\t\t\tonDragStart={handleDragStart(i)}\n\t\t\t\t\t\t\t\tonDragOver={handleDragOver(i)}\n\t\t\t\t\t\t\t\tonDrop={handleDrop(i)}\n\t\t\t\t\t\t\t\tonDragEnd={handleDragEnd}\n\t\t\t\t\t\t\t\tisDraggedOver={draggedOverIndex === i}\n\t\t\t\t\t\t\t\tshowCheckboxForCustomElement={showCheckboxForCustomElement}\n\t\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t\tchildrenLayout={childrenLayout}\n\t\t\t\t\t\t\t\tisPartiallyChecked={\n\t\t\t\t\t\t\t\t\tselectableChildren.some((child) => child.selected) &&\n\t\t\t\t\t\t\t\t\t!selectableChildren.every((child) => child.selected)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisCollapsible={collapsibleChildren && !!nestedChildren.length}\n\t\t\t\t\t\t\t\tisCollapsed={collapsed}\n\t\t\t\t\t\t\t\tonToggleCollapse={() => onToggleCollapsed(singleOption.value)}\n\t\t\t\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\t\t\t\tif (ref && typeof ref === 'object' && ref.current && el) {\n\t\t\t\t\t\t\t\t\t\tref.current[i] = el;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{!collapsed &&\n\t\t\t\t\t\t\t\tnestedChildren.map((child, childIdx) => {\n\t\t\t\t\t\t\t\t\tconst childFlatIndex = flatIndices.get(child);\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\t\t\t\tlast={last && childIdx === nestedChildren.length - 1}\n\t\t\t\t\t\t\t\t\t\t\tonSelect={onSelect}\n\t\t\t\t\t\t\t\t\t\t\tshowDescription={showDescription}\n\t\t\t\t\t\t\t\t\t\t\tonDropdownItemClick={onDropdownItemClick}\n\t\t\t\t\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\t\t\t\t\toption={child}\n\t\t\t\t\t\t\t\t\t\t\tuseDefaultCursor={useDefaultCursor}\n\t\t\t\t\t\t\t\t\t\t\tkey={child.value}\n\t\t\t\t\t\t\t\t\t\t\tisFocused={\n\t\t\t\t\t\t\t\t\t\t\t\tchildFlatIndex === focusedIndex && !child.disabled\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdataIndex={childFlatIndex}\n\t\t\t\t\t\t\t\t\t\t\tisDraggable={false}\n\t\t\t\t\t\t\t\t\t\t\tshowCheckboxForCustomElement={\n\t\t\t\t\t\t\t\t\t\t\t\tshowCheckboxForCustomElement\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t\t\t\t\tchildrenLayout={childrenLayout}\n\t\t\t\t\t\t\t\t\t\t\tisChildRow\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t{last ? <span ref={spanRef} /> : null}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</>\n\t\t);\n\t},\n);\n"],"names":["MenuList","forwardRef","options","isMultiSelect","showDescription","onSelect","version","onInfiniteScroll","onDropdownItemClick","useDefaultCursor","focusedIndex","isDraggable","onOptionsReorder","showCheckboxForCustomElement","checkboxActiveColor","brandSelectedRow","childrenLayout","collapsibleChildren","collapsedParents","onToggleCollapsed","ref","observer","useRef","spanRef","draggedIndex","setDraggedIndex","useState","draggedOverIndex","setDraggedOverIndex","setupObserver","useCallback","entries","useEffect","handleDragStart","index","handleDragOver","handleDrop","dropIndex","newOptions","item","handleDragEnd","isNestedLayout","flatIndices","flattenSelectableOptions","option","jsx","Fragment","i","last","groupedOption","jsxs","StyledGroupedLabel","menuOption","idx","currentFlatIndex","isFocused","MenuItem","el","singleOption","nestedChildren","collapsed","selectableChildren","child","Divider","childIdx","childFlatIndex"],"mappings":"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"}
1
+ {"version":3,"file":"MenuList.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/menu/MenuList.tsx"],"sourcesContent":["import { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\nimport { DropdownOption, GroupedOption, SingleOption } from '../../../type';\nimport { MenuItem } from './MenuItem';\nimport { Divider, StyledGroupedLabel } from './MenuList.styled';\n\ninterface MenuListProps {\n\toptions: DropdownOption[];\n\tisMultiSelect?: boolean;\n\tshowDescription: (title?: string, description?: string) => void;\n\tonSelect: (optionSelect: SingleOption) => void;\n\tversion?: '1.0' | '2.0' | '3.0';\n\tonInfiniteScroll?: () => void;\n\tonDropdownItemClick?: (option: DropdownOption) => void;\n\tuseDefaultCursor?: boolean;\n\tfocusedIndex?: number;\n\tisDraggable?: boolean;\n\tonOptionsReorder?: (reorderedOptions: DropdownOption[]) => void;\n\tshowCheckboxForCustomElement?: boolean;\n\tcheckboxActiveColor?: string;\n\tbrandSelectedRow?: boolean;\n}\n// eslint-disable-next-line react/display-name\nexport const MenuList = forwardRef<HTMLDivElement[], MenuListProps>(\n\t(\n\t\t{\n\t\t\toptions,\n\t\t\tisMultiSelect,\n\t\t\tshowDescription,\n\t\t\tonSelect,\n\t\t\tversion,\n\t\t\tonInfiniteScroll,\n\t\t\tonDropdownItemClick,\n\t\t\tuseDefaultCursor,\n\t\t\tfocusedIndex = -1,\n\t\t\tisDraggable = false,\n\t\t\tonOptionsReorder,\n\t\t\tshowCheckboxForCustomElement = false,\n\t\t\tcheckboxActiveColor,\n\t\t\tbrandSelectedRow,\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst observer = useRef<IntersectionObserver | null>(null);\n\t\tconst spanRef = useRef<HTMLSpanElement | null>(null);\n\t\tconst [draggedIndex, setDraggedIndex] = useState<number | null>(null);\n\t\tconst [draggedOverIndex, setDraggedOverIndex] = useState<number | null>(\n\t\t\tnull,\n\t\t);\n\n\t\tconst setupObserver = useCallback(() => {\n\t\t\tif (observer.current) {\n\t\t\t\tobserver.current.disconnect();\n\t\t\t}\n\t\t\tobserver.current = new IntersectionObserver((entries) => {\n\t\t\t\tif (entries[0].isIntersecting) {\n\t\t\t\t\tonInfiniteScroll?.();\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (spanRef.current) {\n\t\t\t\tobserver.current.observe(spanRef.current);\n\t\t\t}\n\t\t}, [onInfiniteScroll]);\n\n\t\tuseEffect(() => {\n\t\t\tsetupObserver();\n\t\t\treturn () => {\n\t\t\t\tif (observer.current) {\n\t\t\t\t\tobserver.current.disconnect();\n\t\t\t\t}\n\t\t\t};\n\t\t}, [setupObserver, options]);\n\n\t\tconst handleDragStart = useCallback(\n\t\t\t(index: number) => (e: React.DragEvent<HTMLDivElement>) => {\n\t\t\t\tif (!isDraggable) return;\n\t\t\t\tsetDraggedIndex(index);\n\t\t\t\te.dataTransfer.effectAllowed = 'move';\n\t\t\t},\n\t\t\t[isDraggable],\n\t\t);\n\n\t\tconst handleDragOver = useCallback(\n\t\t\t(index: number) => (e: React.DragEvent<HTMLDivElement>) => {\n\t\t\t\tif (!isDraggable) return;\n\t\t\t\te.preventDefault();\n\t\t\t\te.dataTransfer.dropEffect = 'move';\n\t\t\t\tsetDraggedOverIndex(index);\n\t\t\t},\n\t\t\t[isDraggable],\n\t\t);\n\n\t\tconst handleDrop = useCallback(\n\t\t\t(dropIndex: number) => (e: React.DragEvent<HTMLDivElement>) => {\n\t\t\t\tif (!isDraggable || draggedIndex === null) return;\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif (draggedIndex !== dropIndex) {\n\t\t\t\t\tconst newOptions = [...options];\n\t\t\t\t\tconst [item] = newOptions.splice(draggedIndex, 1);\n\t\t\t\t\tnewOptions.splice(dropIndex, 0, item);\n\t\t\t\t\tonOptionsReorder?.(newOptions);\n\t\t\t\t}\n\n\t\t\t\tsetDraggedIndex(null);\n\t\t\t\tsetDraggedOverIndex(null);\n\t\t\t},\n\t\t\t[isDraggable, draggedIndex, options, onOptionsReorder],\n\t\t);\n\n\t\tconst handleDragEnd = useCallback(() => {\n\t\t\tsetDraggedIndex(null);\n\t\t\tsetDraggedOverIndex(null);\n\t\t}, []);\n\n\t\t// Calculate flat indices for all options\n\t\tconst flatIndices = new Map<SingleOption, number>();\n\t\tlet currentIndex = -1;\n\t\toptions.forEach((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t(option as GroupedOption).options.forEach((menuOption) => {\n\t\t\t\t\tif (!menuOption.disabled) {\n\t\t\t\t\t\tcurrentIndex++;\n\t\t\t\t\t\tflatIndices.set(menuOption, currentIndex);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\tif (!singleOption.disabled) {\n\t\t\t\t\tcurrentIndex++;\n\t\t\t\t\tflatIndices.set(singleOption, currentIndex);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{options.map((option, i) => {\n\t\t\t\t\tconst last = i === options.length - 1;\n\t\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t\tconst groupedOption = option as GroupedOption;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div key={i} style={{ marginTop: version === '2.0' ? 2 : 0 }}>\n\t\t\t\t\t\t\t\t<StyledGroupedLabel version={version}>\n\t\t\t\t\t\t\t\t\t{groupedOption.leadingIcon ? (\n\t\t\t\t\t\t\t\t\t\t<span style={{ marginRight: 8 }}>\n\t\t\t\t\t\t\t\t\t\t\t{groupedOption.leadingIcon}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t{groupedOption.label}\n\t\t\t\t\t\t\t\t</StyledGroupedLabel>\n\t\t\t\t\t\t\t\t{groupedOption.options.map((menuOption, idx) => {\n\t\t\t\t\t\t\t\t\tconst currentFlatIndex = flatIndices.get(menuOption);\n\t\t\t\t\t\t\t\t\tconst isFocused =\n\t\t\t\t\t\t\t\t\t\tcurrentFlatIndex === focusedIndex && !menuOption.disabled;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\t\t\t\tlast={idx === groupedOption.options.length - 1}\n\t\t\t\t\t\t\t\t\t\t\tonSelect={onSelect}\n\t\t\t\t\t\t\t\t\t\t\tshowDescription={showDescription}\n\t\t\t\t\t\t\t\t\t\t\tonDropdownItemClick={onDropdownItemClick}\n\t\t\t\t\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\t\t\t\t\toption={menuOption}\n\t\t\t\t\t\t\t\t\t\t\tuseDefaultCursor={useDefaultCursor}\n\t\t\t\t\t\t\t\t\t\t\tkey={`${i}-${idx}`}\n\t\t\t\t\t\t\t\t\t\t\tisFocused={isFocused}\n\t\t\t\t\t\t\t\t\t\t\tdataIndex={currentFlatIndex}\n\t\t\t\t\t\t\t\t\t\t\tisDraggable={false}\n\t\t\t\t\t\t\t\t\t\t\tshowCheckboxForCustomElement={\n\t\t\t\t\t\t\t\t\t\t\t\tshowCheckboxForCustomElement\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (ref && typeof ref === 'object' && ref.current) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (el) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (el) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (el) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (el) ref.current[i] = el;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t{last ? <span ref={spanRef} /> : null}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\t\tconst currentFlatIndex = flatIndices.get(singleOption);\n\t\t\t\t\tconst isFocused =\n\t\t\t\t\t\tcurrentFlatIndex === focusedIndex && !singleOption.disabled;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div key={i}>\n\t\t\t\t\t\t\t{singleOption.hasDivider && <Divider />}\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\tlast={last}\n\t\t\t\t\t\t\t\tonSelect={onSelect}\n\t\t\t\t\t\t\t\tshowDescription={showDescription}\n\t\t\t\t\t\t\t\tonDropdownItemClick={onDropdownItemClick}\n\t\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\t\toption={singleOption}\n\t\t\t\t\t\t\t\tuseDefaultCursor={useDefaultCursor}\n\t\t\t\t\t\t\t\tkey={singleOption.value}\n\t\t\t\t\t\t\t\tisFocused={isFocused}\n\t\t\t\t\t\t\t\tdataIndex={currentFlatIndex}\n\t\t\t\t\t\t\t\tisDraggable={isDraggable}\n\t\t\t\t\t\t\t\tonDragStart={handleDragStart(i)}\n\t\t\t\t\t\t\t\tonDragOver={handleDragOver(i)}\n\t\t\t\t\t\t\t\tonDrop={handleDrop(i)}\n\t\t\t\t\t\t\t\tonDragEnd={handleDragEnd}\n\t\t\t\t\t\t\t\tisDraggedOver={draggedOverIndex === i}\n\t\t\t\t\t\t\t\tshowCheckboxForCustomElement={showCheckboxForCustomElement}\n\t\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\t\t\t\tif (ref && typeof ref === 'object' && ref.current && el) {\n\t\t\t\t\t\t\t\t\t\tref.current[i] = el;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{last ? <span ref={spanRef} /> : null}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</>\n\t\t);\n\t},\n);\n"],"names":["MenuList","forwardRef","options","isMultiSelect","showDescription","onSelect","version","onInfiniteScroll","onDropdownItemClick","useDefaultCursor","focusedIndex","isDraggable","onOptionsReorder","showCheckboxForCustomElement","checkboxActiveColor","brandSelectedRow","ref","observer","useRef","spanRef","draggedIndex","setDraggedIndex","useState","draggedOverIndex","setDraggedOverIndex","setupObserver","useCallback","entries","useEffect","handleDragStart","index","handleDragOver","handleDrop","dropIndex","newOptions","item","handleDragEnd","flatIndices","currentIndex","option","menuOption","singleOption","jsx","Fragment","i","last","groupedOption","jsxs","StyledGroupedLabel","idx","currentFlatIndex","isFocused","MenuItem","el","Divider"],"mappings":"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"}
@@ -7,5 +7,4 @@ export declare const SelectAllMenu: React.FC<{
7
7
  version?: '1.0' | '2.0' | '3.0';
8
8
  checkboxActiveColor?: string;
9
9
  brandSelectedRow?: boolean;
10
- childrenLayout?: 'flyout' | 'nested';
11
10
  }>;
@@ -1,46 +1,45 @@
1
- import { jsx as c } from "react/jsx-runtime";
2
- import { useState as S, useEffect as m } from "react";
3
- import { getSelectionLeaves as p } from "../../utils/iterationOnOptions.js";
4
- import { ListItem as h } from "../../../../list-item/ListItem.js";
5
- import { CheckBox as u } from "../../../../checkBox/CheckBox.js";
6
- const g = ({
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import { useState as h, useEffect as u } from "react";
3
+ import { ListItem as S } from "../../../../list-item/ListItem.js";
4
+ import { CheckBox as p } from "../../../../checkBox/CheckBox.js";
5
+ const y = ({
7
6
  options: o,
8
- onSelect: i,
9
- version: s,
10
- checkboxActiveColor: d,
11
- brandSelectedRow: f,
12
- childrenLayout: r
7
+ onSelect: a,
8
+ version: r,
9
+ checkboxActiveColor: f,
10
+ brandSelectedRow: n
13
11
  }) => {
14
- const [e, a] = S("notSelected");
15
- function n() {
16
- e === "partiallySelected" && i("notSelected"), e === "selectAll" && i("notSelected"), e === "notSelected" && i("selectAll");
12
+ const [e, c] = h("notSelected");
13
+ function d() {
14
+ e === "partiallySelected" && a("notSelected"), e === "selectAll" && a("notSelected"), e === "notSelected" && a("selectAll");
17
15
  }
18
- return m(() => {
19
- const t = p(
20
- o.filter((l) => !l.disabled),
21
- r === "nested"
22
- ).filter((l) => !l.disabled).map((l) => l.selected || !1);
23
- t.every(Boolean) ? a("selectAll") : t.filter(Boolean).length > 0 ? a("partiallySelected") : a("notSelected");
24
- }, [o, r]), /* @__PURE__ */ c(
25
- h,
16
+ return u(() => {
17
+ const l = [];
18
+ o.filter((t) => !t.disabled).forEach((t) => {
19
+ t.options ? t.options.filter((i) => !i.disabled).forEach((i) => {
20
+ l.push(i.selected || !1);
21
+ }) : l.push(t.selected || !1);
22
+ }), l.every(Boolean) ? c("selectAll") : l.filter(Boolean).length > 0 ? c("partiallySelected") : c("notSelected");
23
+ }, [o]), /* @__PURE__ */ s(
24
+ S,
26
25
  {
27
- version: s,
28
- brandSelectedRow: f,
29
- onClick: (t) => {
30
- t.preventDefault(), n();
26
+ version: r,
27
+ brandSelectedRow: n,
28
+ onClick: (l) => {
29
+ l.preventDefault(), d();
31
30
  },
32
31
  listItem: {
33
32
  label: "Select All",
34
33
  value: "All"
35
34
  },
36
- leadingIcon: /* @__PURE__ */ c("div", { style: { width: 18, height: 18 }, children: /* @__PURE__ */ c(
37
- u,
35
+ leadingIcon: /* @__PURE__ */ s("div", { style: { width: 18, height: 18 }, children: /* @__PURE__ */ s(
36
+ p,
38
37
  {
39
- size: s === "2.0" ? "SMALL" : "DEFAULT",
38
+ size: r === "2.0" ? "SMALL" : "DEFAULT",
40
39
  isChecked: e === "selectAll" || e === "partiallySelected",
41
40
  isPartiallyChecked: e === "partiallySelected",
42
- onValueChange: n,
43
- activeColor: d
41
+ onValueChange: d,
42
+ activeColor: f
44
43
  }
45
44
  ) }),
46
45
  variant: "default"
@@ -48,6 +47,6 @@ const g = ({
48
47
  );
49
48
  };
50
49
  export {
51
- g as SelectAllMenu
50
+ y as SelectAllMenu
52
51
  };
53
52
  //# sourceMappingURL=SelectAllMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectAllMenu.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { CheckBox } from '@src/components/checkBox';\nimport { ListItem } from '@src/components/list-item';\nimport { DropdownOption, SingleOption } from '../../../type';\nimport { getSelectionLeaves } from '../../utils/iterationOnOptions';\n\nexport type SelectAllCheckboxState =\n\t| 'notSelected'\n\t| 'selectAll'\n\t| 'partiallySelected';\n\nexport const SelectAllMenu: React.FC<{\n\toptions: DropdownOption[];\n\tonSelect: (newState: SelectAllCheckboxState) => void;\n\tversion?: '1.0' | '2.0' | '3.0';\n\tcheckboxActiveColor?: string;\n\tbrandSelectedRow?: boolean;\n\tchildrenLayout?: 'flyout' | 'nested';\n}> = ({\n\toptions,\n\tonSelect,\n\tversion,\n\tcheckboxActiveColor,\n\tbrandSelectedRow,\n\tchildrenLayout,\n}) => {\n\tconst [checkStatus, setCheckStatus] =\n\t\tuseState<SelectAllCheckboxState>('notSelected');\n\n\tfunction onCheckHandler() {\n\t\tif (checkStatus === 'partiallySelected') {\n\t\t\tonSelect('notSelected');\n\t\t}\n\n\t\tif (checkStatus === 'selectAll') {\n\t\t\tonSelect('notSelected');\n\t\t}\n\n\t\tif (checkStatus === 'notSelected') {\n\t\t\tonSelect('selectAll');\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tconst allOptions = getSelectionLeaves(\n\t\t\toptions.filter((option) => !(option as SingleOption).disabled),\n\t\t\tchildrenLayout === 'nested',\n\t\t)\n\t\t\t.filter((leaf) => !leaf.disabled)\n\t\t\t.map((leaf) => leaf.selected || false);\n\n\t\tif (allOptions.every(Boolean)) {\n\t\t\tsetCheckStatus('selectAll');\n\t\t} else if (allOptions.filter(Boolean).length > 0) {\n\t\t\tsetCheckStatus('partiallySelected');\n\t\t} else {\n\t\t\tsetCheckStatus('notSelected');\n\t\t}\n\t}, [options, childrenLayout]);\n\n\treturn (\n\t\t<ListItem\n\t\t\tversion={version}\n\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\tonClick={(e) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tonCheckHandler();\n\t\t\t}}\n\t\t\tlistItem={{\n\t\t\t\tlabel: 'Select All',\n\t\t\t\tvalue: 'All',\n\t\t\t}}\n\t\t\tleadingIcon={\n\t\t\t\t<div style={{ width: 18, height: 18 }}>\n\t\t\t\t\t<CheckBox\n\t\t\t\t\t\tsize={version === '2.0' ? 'SMALL' : 'DEFAULT'}\n\t\t\t\t\t\tisChecked={\n\t\t\t\t\t\t\tcheckStatus === 'selectAll' || checkStatus === 'partiallySelected'\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisPartiallyChecked={checkStatus === 'partiallySelected'}\n\t\t\t\t\t\tonValueChange={onCheckHandler}\n\t\t\t\t\t\tactiveColor={checkboxActiveColor}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\tvariant={'default'}\n\t\t/>\n\t);\n};\n"],"names":["SelectAllMenu","options","onSelect","version","checkboxActiveColor","brandSelectedRow","childrenLayout","checkStatus","setCheckStatus","useState","onCheckHandler","useEffect","allOptions","getSelectionLeaves","option","leaf","jsx","ListItem","e","CheckBox"],"mappings":";;;;;AAWO,MAAMA,IAOR,CAAC;AAAA,EACL,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,gBAAAC;AACD,MAAM;AACL,QAAM,CAACC,GAAaC,CAAc,IACjCC,EAAiC,aAAa;AAE/C,WAASC,IAAiB;AACzB,IAAIH,MAAgB,uBACnBL,EAAS,aAAa,GAGnBK,MAAgB,eACnBL,EAAS,aAAa,GAGnBK,MAAgB,iBACnBL,EAAS,WAAW;AAAA,EAEtB;AAEA,SAAAS,EAAU,MAAM;AACf,UAAMC,IAAaC;AAAA,MAClBZ,EAAQ,OAAO,CAACa,MAAW,CAAEA,EAAwB,QAAQ;AAAA,MAC7DR,MAAmB;AAAA,IAAA,EAElB,OAAO,CAACS,MAAS,CAACA,EAAK,QAAQ,EAC/B,IAAI,CAACA,MAASA,EAAK,YAAY,EAAK;AAEtC,IAAIH,EAAW,MAAM,OAAO,IAC3BJ,EAAe,WAAW,IAChBI,EAAW,OAAO,OAAO,EAAE,SAAS,IAC9CJ,EAAe,mBAAmB,IAElCA,EAAe,aAAa;AAAA,EAE9B,GAAG,CAACP,GAASK,CAAc,CAAC,GAG3B,gBAAAU;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,SAAAd;AAAA,MACA,kBAAAE;AAAA,MACA,SAAS,CAACa,MAAM;AACf,QAAAA,EAAE,eAAA,GACFR,EAAA;AAAA,MACD;AAAA,MACA,UAAU;AAAA,QACT,OAAO;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,MAER,+BACE,OAAA,EAAI,OAAO,EAAE,OAAO,IAAI,QAAQ,GAAA,GAChC,UAAA,gBAAAM;AAAA,QAACG;AAAA,QAAA;AAAA,UACA,MAAMhB,MAAY,QAAQ,UAAU;AAAA,UACpC,WACCI,MAAgB,eAAeA,MAAgB;AAAA,UAEhD,oBAAoBA,MAAgB;AAAA,UACpC,eAAeG;AAAA,UACf,aAAaN;AAAA,QAAA;AAAA,MAAA,GAEf;AAAA,MAED,SAAS;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
1
+ {"version":3,"file":"SelectAllMenu.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { CheckBox } from '@src/components/checkBox';\nimport { ListItem } from '@src/components/list-item';\nimport { DropdownOption, GroupedOption, SingleOption } from '../../../type';\n\nexport type SelectAllCheckboxState =\n\t| 'notSelected'\n\t| 'selectAll'\n\t| 'partiallySelected';\n\nexport const SelectAllMenu: React.FC<{\n\toptions: DropdownOption[];\n\tonSelect: (newState: SelectAllCheckboxState) => void;\n\tversion?: '1.0' | '2.0' | '3.0';\n\tcheckboxActiveColor?: string;\n\tbrandSelectedRow?: boolean;\n}> = ({\n\toptions,\n\tonSelect,\n\tversion,\n\tcheckboxActiveColor,\n\tbrandSelectedRow,\n}) => {\n\tconst [checkStatus, setCheckStatus] =\n\t\tuseState<SelectAllCheckboxState>('notSelected');\n\n\tfunction onCheckHandler() {\n\t\tif (checkStatus === 'partiallySelected') {\n\t\t\tonSelect('notSelected');\n\t\t}\n\n\t\tif (checkStatus === 'selectAll') {\n\t\t\tonSelect('notSelected');\n\t\t}\n\n\t\tif (checkStatus === 'notSelected') {\n\t\t\tonSelect('selectAll');\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tconst allOptions: boolean[] = [];\n\n\t\toptions\n\t\t\t.filter((option) => !(option as SingleOption).disabled)\n\t\t\t.forEach((option) => {\n\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t(option as GroupedOption).options\n\t\t\t\t\t\t.filter((op) => !op.disabled)\n\t\t\t\t\t\t.forEach((nestedOption) => {\n\t\t\t\t\t\t\tallOptions.push(nestedOption.selected || false);\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tallOptions.push((option as SingleOption).selected || false);\n\t\t\t\t}\n\t\t\t});\n\n\t\tif (allOptions.every(Boolean)) {\n\t\t\tsetCheckStatus('selectAll');\n\t\t} else if (allOptions.filter(Boolean).length > 0) {\n\t\t\tsetCheckStatus('partiallySelected');\n\t\t} else {\n\t\t\tsetCheckStatus('notSelected');\n\t\t}\n\t}, [options]);\n\n\treturn (\n\t\t<ListItem\n\t\t\tversion={version}\n\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\tonClick={(e) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tonCheckHandler();\n\t\t\t}}\n\t\t\tlistItem={{\n\t\t\t\tlabel: 'Select All',\n\t\t\t\tvalue: 'All',\n\t\t\t}}\n\t\t\tleadingIcon={\n\t\t\t\t<div style={{ width: 18, height: 18 }}>\n\t\t\t\t\t<CheckBox\n\t\t\t\t\t\tsize={version === '2.0' ? 'SMALL' : 'DEFAULT'}\n\t\t\t\t\t\tisChecked={\n\t\t\t\t\t\t\tcheckStatus === 'selectAll' || checkStatus === 'partiallySelected'\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisPartiallyChecked={checkStatus === 'partiallySelected'}\n\t\t\t\t\t\tonValueChange={onCheckHandler}\n\t\t\t\t\t\tactiveColor={checkboxActiveColor}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\tvariant={'default'}\n\t\t/>\n\t);\n};\n"],"names":["SelectAllMenu","options","onSelect","version","checkboxActiveColor","brandSelectedRow","checkStatus","setCheckStatus","useState","onCheckHandler","useEffect","allOptions","option","op","nestedOption","jsx","ListItem","e","CheckBox"],"mappings":";;;;AAUO,MAAMA,IAMR,CAAC;AAAA,EACL,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,kBAAAC;AACD,MAAM;AACL,QAAM,CAACC,GAAaC,CAAc,IACjCC,EAAiC,aAAa;AAE/C,WAASC,IAAiB;AACzB,IAAIH,MAAgB,uBACnBJ,EAAS,aAAa,GAGnBI,MAAgB,eACnBJ,EAAS,aAAa,GAGnBI,MAAgB,iBACnBJ,EAAS,WAAW;AAAA,EAEtB;AAEA,SAAAQ,EAAU,MAAM;AACf,UAAMC,IAAwB,CAAA;AAE9B,IAAAV,EACE,OAAO,CAACW,MAAW,CAAEA,EAAwB,QAAQ,EACrD,QAAQ,CAACA,MAAW;AACpB,MAAKA,EAAyB,UAC5BA,EAAyB,QACxB,OAAO,CAACC,MAAO,CAACA,EAAG,QAAQ,EAC3B,QAAQ,CAACC,MAAiB;AAC1B,QAAAH,EAAW,KAAKG,EAAa,YAAY,EAAK;AAAA,MAC/C,CAAC,IAEFH,EAAW,KAAMC,EAAwB,YAAY,EAAK;AAAA,IAE5D,CAAC,GAEED,EAAW,MAAM,OAAO,IAC3BJ,EAAe,WAAW,IAChBI,EAAW,OAAO,OAAO,EAAE,SAAS,IAC9CJ,EAAe,mBAAmB,IAElCA,EAAe,aAAa;AAAA,EAE9B,GAAG,CAACN,CAAO,CAAC,GAGX,gBAAAc;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,SAAAb;AAAA,MACA,kBAAAE;AAAA,MACA,SAAS,CAACY,MAAM;AACf,QAAAA,EAAE,eAAA,GACFR,EAAA;AAAA,MACD;AAAA,MACA,UAAU;AAAA,QACT,OAAO;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,MAER,+BACE,OAAA,EAAI,OAAO,EAAE,OAAO,IAAI,QAAQ,GAAA,GAChC,UAAA,gBAAAM;AAAA,QAACG;AAAA,QAAA;AAAA,UACA,MAAMf,MAAY,QAAQ,UAAU;AAAA,UACpC,WACCG,MAAgB,eAAeA,MAAgB;AAAA,UAEhD,oBAAoBA,MAAgB;AAAA,UACpC,eAAeG;AAAA,UACf,aAAaL;AAAA,QAAA;AAAA,MAAA,GAEf;AAAA,MAED,SAAS;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
@@ -7,8 +7,6 @@ interface MultiSelectDropdownBottomBarProps {
7
7
  buttonText?: string;
8
8
  buttonOptions?: ButtonOptions;
9
9
  hideClearButton?: boolean;
10
- hideSelectedCount?: boolean;
11
- childrenLayout?: 'flyout' | 'nested';
12
10
  }
13
11
  declare const MultiSelectDropdownBottomBar: React.FC<MultiSelectDropdownBottomBarProps>;
14
12
  export default MultiSelectDropdownBottomBar;