@bikdotai/bik-component-library 0.0.813 → 0.0.814-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.
- package/dist/cjs/components/BikGiftedChat/Bubble/Bubble.js +1 -1
- package/dist/cjs/components/BikGiftedChat/Bubble/Bubble.js.map +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/Day.js +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/Day.js.map +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/GiftedChat.js +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/types.js.map +1 -1
- package/dist/cjs/components/TypographyStyle.js +22 -13
- package/dist/cjs/components/TypographyStyle.js.map +1 -1
- package/dist/cjs/components/avatar/Avatar.js +1 -1
- package/dist/cjs/components/avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/avatar/Avatar.styled.js +3 -3
- package/dist/cjs/components/avatar/Avatar.styled.js.map +1 -1
- package/dist/cjs/components/avatar/AvatarHelper.js +1 -1
- package/dist/cjs/components/avatar/AvatarHelper.js.map +1 -1
- package/dist/cjs/components/bik-layout/BikSidebar.js.map +1 -1
- package/dist/cjs/components/bik-layout/BikSidebarV2/BikSidebarV2.js +2 -0
- package/dist/cjs/components/bik-layout/BikSidebarV2/BikSidebarV2.js.map +1 -0
- package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Popup.js +2 -0
- package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Popup.js.map +1 -0
- package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Styles.js +294 -0
- package/dist/cjs/components/bik-layout/BikSidebarV2/SidebarV2Styles.js.map +1 -0
- package/dist/cjs/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js +2 -0
- package/dist/cjs/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js.map +1 -0
- package/dist/cjs/components/button/Button.js +1 -1
- package/dist/cjs/components/button/Button.js.map +1 -1
- package/dist/cjs/components/button/Button.styled.js +1 -1
- package/dist/cjs/components/button/Button.styled.js.map +1 -1
- package/dist/cjs/components/button/themes.js +1 -1
- package/dist/cjs/components/button/themes.js.map +1 -1
- package/dist/cjs/components/checkBox/CheckBox.js +1 -1
- package/dist/cjs/components/checkBox/CheckBox.js.map +1 -1
- package/dist/cjs/components/country-code-picker/CountryCodePicker.js.map +1 -1
- package/dist/cjs/components/country-code-picker/CountryPicker.js.map +1 -1
- package/dist/cjs/components/dropdown/Dropdown.js +1 -1
- package/dist/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/dist/cjs/components/dropdown/DropdownPopover/index.js +1 -1
- package/dist/cjs/components/dropdown/DropdownPopover/index.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/OpennedDropdown.styled.js +6 -5
- package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/description/Description.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/description/Description.styled.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +9 -9
- 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/MenuList.styled.js +8 -4
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.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/searchbox/SearchBox.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js.map +1 -1
- package/dist/cjs/components/dropdown-button/DropdownButton.js +1 -1
- package/dist/cjs/components/dropdown-button/DropdownButton.js.map +1 -1
- package/dist/cjs/components/dropdown-button/DropdownButton.style.js +10 -6
- package/dist/cjs/components/dropdown-button/DropdownButton.style.js.map +1 -1
- package/dist/cjs/components/dual-icon-button/DualIconButton.js +2 -0
- package/dist/cjs/components/dual-icon-button/DualIconButton.js.map +1 -0
- package/dist/cjs/components/dual-icon-button/DualIconButton.styled.js +26 -0
- package/dist/cjs/components/dual-icon-button/DualIconButton.styled.js.map +1 -0
- package/dist/cjs/components/fab-menu/FABMenu.js.map +1 -1
- package/dist/cjs/components/icon-button/IconButton.js +1 -1
- package/dist/cjs/components/icon-button/IconButton.js.map +1 -1
- package/dist/cjs/components/icon-button/IconButton.styled.js +3 -3
- package/dist/cjs/components/icon-button/IconButton.styled.js.map +1 -1
- package/dist/cjs/components/icon-button/theme.js +1 -1
- package/dist/cjs/components/icon-button/theme.js.map +1 -1
- package/dist/cjs/components/input/Input.js +1 -1
- package/dist/cjs/components/input/Input.js.map +1 -1
- package/dist/cjs/components/input/Input.styled.js +1 -1
- package/dist/cjs/components/input/Input.styled.js.map +1 -1
- package/dist/cjs/components/list-item/ListItem.js +1 -1
- package/dist/cjs/components/list-item/ListItem.js.map +1 -1
- package/dist/cjs/components/list-item/ListItem.styled.js +1 -1
- package/dist/cjs/components/list-item/ListItem.styled.js.map +1 -1
- package/dist/cjs/components/list-item/themes.js +1 -1
- package/dist/cjs/components/list-item/themes.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/GroupedMenuList.js +1 -1
- package/dist/cjs/components/multi-level-dropdown/GroupedMenuList.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/MenuItem.js +1 -1
- package/dist/cjs/components/multi-level-dropdown/MenuItem.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/MenuList.js +1 -1
- package/dist/cjs/components/multi-level-dropdown/MenuList.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 +33 -30
- package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
- package/dist/cjs/components/tag/Tag.js +1 -1
- package/dist/cjs/components/tag/Tag.js.map +1 -1
- package/dist/cjs/components/tag/Tag.styled.js +1 -1
- package/dist/cjs/components/tag/Tag.styled.js.map +1 -1
- package/dist/cjs/components/tag/model.js.map +1 -1
- package/dist/cjs/components/variable-picker-v3/SubHeaderItems.js.map +1 -1
- package/dist/cjs/components/whats-new/WhatsNew.js +1 -1
- package/dist/cjs/components/whats-new/WhatsNew.js.map +1 -1
- package/dist/cjs/components/whats-new/WhatsNewButton.js +1 -1
- package/dist/cjs/components/whats-new/WhatsNewButton.js.map +1 -1
- package/dist/cjs/components/whats-new/WhatsNewPanel.js.map +1 -1
- package/dist/cjs/constants/Theme.js +1 -1
- package/dist/cjs/constants/Theme.js.map +1 -1
- package/dist/cjs/icons/Arrows/Chevron/ChevronUp.js +1 -1
- package/dist/cjs/icons/Arrows/Chevron/ChevronUp.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/src/components/BikGiftedChat/GiftedChat/types.d.ts +6 -2
- package/dist/cjs/src/components/QueryBuilder/Triggers/EVENTS/components/EventsTrigger.d.ts +1 -1
- package/dist/cjs/src/components/QueryBuilder/Triggers/EVENTS/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
- package/dist/cjs/src/components/QueryBuilder/Triggers/IG/components/IGTrigger.d.ts +1 -1
- package/dist/cjs/src/components/QueryBuilder/Triggers/IG/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
- package/dist/cjs/src/components/QueryBuilder/Triggers/components/BaseTriggerQueryBuilderNode.d.ts +2 -2
- package/dist/cjs/src/components/TypographyStyle.d.ts +4 -0
- package/dist/cjs/src/components/avatar/Avatar.d.ts +3 -2
- package/dist/cjs/src/components/avatar/AvatarHelper.d.ts +5 -4
- package/dist/cjs/src/components/bik-layout/BikSidebarV2/BikSidebarV2.d.ts +33 -0
- package/dist/cjs/src/components/bik-layout/BikSidebarV2/SidebarV2.model.d.ts +27 -0
- package/dist/cjs/src/components/bik-layout/BikSidebarV2/SidebarV2Popup.d.ts +13 -0
- package/dist/cjs/src/components/bik-layout/BikSidebarV2/SidebarV2Styles.d.ts +44 -0
- package/dist/cjs/src/components/bik-layout/BikSidebarV2/SimpleSidebarV2.d.ts +3 -0
- package/dist/cjs/src/components/bik-layout/index.d.ts +2 -0
- package/dist/cjs/src/components/button/Button.styled.d.ts +1 -1
- package/dist/cjs/src/components/button/model.d.ts +3 -3
- package/dist/cjs/src/components/button/themes.d.ts +2 -2
- package/dist/cjs/src/components/checkBox/CheckBox.d.ts +1 -0
- package/dist/cjs/src/components/country-code-picker/CountryCodePicker.d.ts +1 -1
- package/dist/cjs/src/components/country-code-picker/CountryPicker.d.ts +1 -1
- package/dist/cjs/src/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.d.ts +1 -1
- package/dist/cjs/src/components/dropdown/OpenedDropdown/components/description/Description.d.ts +1 -1
- package/dist/cjs/src/components/dropdown/OpenedDropdown/components/description/Description.styled.d.ts +1 -1
- package/dist/cjs/src/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.d.ts +3 -1
- package/dist/cjs/src/components/dropdown/OpenedDropdown/components/menu/MenuItem.d.ts +3 -1
- package/dist/cjs/src/components/dropdown/OpenedDropdown/components/menu/MenuList.d.ts +3 -1
- package/dist/cjs/src/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.d.ts +2 -1
- package/dist/cjs/src/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.d.ts +3 -1
- package/dist/cjs/src/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.d.ts +1 -1
- package/dist/cjs/src/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.d.ts +1 -0
- package/dist/cjs/src/components/dropdown/OpenedDropdown/utils/iterationOnOptions.d.ts +2 -0
- package/dist/cjs/src/components/dropdown/hooks/useDropdown.d.ts +2 -0
- package/dist/cjs/src/components/dropdown/type.d.ts +6 -1
- package/dist/cjs/src/components/dropdown-button/DropdownButton.d.ts +3 -1
- package/dist/cjs/src/components/dropdown-button/DropdownButton.style.d.ts +9 -2
- package/dist/cjs/src/components/dual-icon-button/DualIconButton.d.ts +3 -0
- package/dist/cjs/src/components/dual-icon-button/DualIconButton.styled.d.ts +7 -0
- package/dist/cjs/src/components/dual-icon-button/index.d.ts +2 -0
- package/dist/cjs/src/components/dual-icon-button/model.d.ts +12 -0
- package/dist/cjs/src/components/fab-menu/FABMenu.d.ts +1 -1
- package/dist/cjs/src/components/icon-button/IconButton.styled.d.ts +3 -1
- package/dist/cjs/src/components/icon-button/model.d.ts +12 -1
- package/dist/cjs/src/components/input/Input.model.d.ts +2 -1
- package/dist/cjs/src/components/input/Input.styled.d.ts +16 -1
- package/dist/cjs/src/components/list-item/List.model.d.ts +2 -1
- package/dist/cjs/src/components/list-item/ListItem.styled.d.ts +2 -1
- package/dist/cjs/src/components/list-item/themes.d.ts +2 -2
- package/dist/cjs/src/components/multi-level-dropdown/GroupedMenuList.d.ts +1 -0
- package/dist/cjs/src/components/multi-level-dropdown/MenuItem.d.ts +1 -0
- package/dist/cjs/src/components/multi-level-dropdown/MenuList.d.ts +1 -0
- package/dist/cjs/src/components/multi-level-dropdown/MultiLevelDropdown.styled.d.ts +13 -3
- package/dist/cjs/src/components/multi-level-dropdown/type.d.ts +1 -0
- package/dist/cjs/src/components/tag/Tag.d.ts +1 -1
- package/dist/cjs/src/components/tag/Tag.stories.d.ts +5 -5
- package/dist/cjs/src/components/tag/Tag.styled.d.ts +3 -1
- package/dist/cjs/src/components/tag/model.d.ts +5 -1
- package/dist/cjs/src/components/whats-new/WhatsNew.d.ts +2 -0
- package/dist/cjs/src/components/whats-new/WhatsNew.types.d.ts +2 -0
- package/dist/cjs/src/constants/Theme.d.ts +24 -0
- package/dist/cjs/src/icons/Arrows/Chevron/ChevronUp.d.ts +1 -2
- package/dist/cjs/src/icons/index.d.ts +24 -24
- package/dist/cjs/src/index.d.ts +1 -0
- package/dist/esm/components/BikGiftedChat/Bubble/Bubble.js +1 -1
- package/dist/esm/components/BikGiftedChat/Bubble/Bubble.js.map +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/Day.js +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/Day.js.map +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/types.js.map +1 -1
- package/dist/esm/components/TypographyStyle.js +21 -12
- package/dist/esm/components/TypographyStyle.js.map +1 -1
- package/dist/esm/components/avatar/Avatar.js +1 -1
- package/dist/esm/components/avatar/Avatar.js.map +1 -1
- package/dist/esm/components/avatar/Avatar.styled.js +6 -6
- package/dist/esm/components/avatar/Avatar.styled.js.map +1 -1
- package/dist/esm/components/avatar/AvatarHelper.js +1 -1
- package/dist/esm/components/avatar/AvatarHelper.js.map +1 -1
- package/dist/esm/components/bik-layout/BikSidebar.js.map +1 -1
- package/dist/esm/components/bik-layout/BikSidebarV2/BikSidebarV2.js +2 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/BikSidebarV2.js.map +1 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Popup.js +2 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Popup.js.map +1 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Styles.js +294 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Styles.js.map +1 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js +2 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js.map +1 -0
- package/dist/esm/components/button/Button.js +1 -1
- package/dist/esm/components/button/Button.js.map +1 -1
- package/dist/esm/components/button/Button.styled.js +1 -1
- package/dist/esm/components/button/Button.styled.js.map +1 -1
- package/dist/esm/components/button/themes.js +1 -1
- package/dist/esm/components/button/themes.js.map +1 -1
- package/dist/esm/components/checkBox/CheckBox.js +1 -1
- package/dist/esm/components/checkBox/CheckBox.js.map +1 -1
- package/dist/esm/components/country-code-picker/CountryCodePicker.js.map +1 -1
- package/dist/esm/components/country-code-picker/CountryPicker.js.map +1 -1
- package/dist/esm/components/dropdown/Dropdown.js +1 -1
- package/dist/esm/components/dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/dropdown/DropdownPopover/index.js +1 -1
- package/dist/esm/components/dropdown/DropdownPopover/index.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js +3 -2
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.styled.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +10 -10
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js +6 -2
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js.map +1 -1
- package/dist/esm/components/dropdown-button/DropdownButton.js +1 -1
- package/dist/esm/components/dropdown-button/DropdownButton.js.map +1 -1
- package/dist/esm/components/dropdown-button/DropdownButton.style.js +8 -4
- package/dist/esm/components/dropdown-button/DropdownButton.style.js.map +1 -1
- package/dist/esm/components/dual-icon-button/DualIconButton.js +2 -0
- package/dist/esm/components/dual-icon-button/DualIconButton.js.map +1 -0
- package/dist/esm/components/dual-icon-button/DualIconButton.styled.js +26 -0
- package/dist/esm/components/dual-icon-button/DualIconButton.styled.js.map +1 -0
- package/dist/esm/components/fab-menu/FABMenu.js.map +1 -1
- package/dist/esm/components/icon-button/IconButton.js +1 -1
- package/dist/esm/components/icon-button/IconButton.js.map +1 -1
- package/dist/esm/components/icon-button/IconButton.styled.js +1 -1
- package/dist/esm/components/icon-button/IconButton.styled.js.map +1 -1
- package/dist/esm/components/icon-button/theme.js +1 -1
- package/dist/esm/components/icon-button/theme.js.map +1 -1
- package/dist/esm/components/input/Input.js +1 -1
- package/dist/esm/components/input/Input.js.map +1 -1
- package/dist/esm/components/input/Input.styled.js +1 -1
- package/dist/esm/components/input/Input.styled.js.map +1 -1
- package/dist/esm/components/list-item/ListItem.js +1 -1
- package/dist/esm/components/list-item/ListItem.js.map +1 -1
- package/dist/esm/components/list-item/ListItem.styled.js +1 -1
- package/dist/esm/components/list-item/ListItem.styled.js.map +1 -1
- package/dist/esm/components/list-item/themes.js +1 -1
- package/dist/esm/components/list-item/themes.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/GroupedMenuList.js +1 -1
- package/dist/esm/components/multi-level-dropdown/GroupedMenuList.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MenuItem.js +1 -1
- package/dist/esm/components/multi-level-dropdown/MenuItem.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MenuList.js +1 -1
- package/dist/esm/components/multi-level-dropdown/MenuList.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js +1 -1
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js +32 -29
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
- package/dist/esm/components/tag/Tag.js +1 -1
- package/dist/esm/components/tag/Tag.js.map +1 -1
- package/dist/esm/components/tag/Tag.styled.js +1 -1
- package/dist/esm/components/tag/Tag.styled.js.map +1 -1
- package/dist/esm/components/tag/model.js.map +1 -1
- package/dist/esm/components/variable-picker-v3/SubHeaderItems.js.map +1 -1
- package/dist/esm/components/whats-new/WhatsNew.js +1 -1
- package/dist/esm/components/whats-new/WhatsNew.js.map +1 -1
- package/dist/esm/components/whats-new/WhatsNewButton.js +1 -1
- package/dist/esm/components/whats-new/WhatsNewButton.js.map +1 -1
- package/dist/esm/components/whats-new/WhatsNewPanel.js.map +1 -1
- package/dist/esm/constants/Theme.js +1 -1
- package/dist/esm/constants/Theme.js.map +1 -1
- package/dist/esm/icons/Arrows/Chevron/ChevronUp.js +1 -1
- package/dist/esm/icons/Arrows/Chevron/ChevronUp.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/src/components/BikGiftedChat/GiftedChat/types.d.ts +6 -2
- package/dist/esm/src/components/QueryBuilder/Triggers/EVENTS/components/EventsTrigger.d.ts +1 -1
- package/dist/esm/src/components/QueryBuilder/Triggers/EVENTS/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
- package/dist/esm/src/components/QueryBuilder/Triggers/IG/components/IGTrigger.d.ts +1 -1
- package/dist/esm/src/components/QueryBuilder/Triggers/IG/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
- package/dist/esm/src/components/QueryBuilder/Triggers/components/BaseTriggerQueryBuilderNode.d.ts +2 -2
- package/dist/esm/src/components/TypographyStyle.d.ts +4 -0
- package/dist/esm/src/components/avatar/Avatar.d.ts +3 -2
- package/dist/esm/src/components/avatar/AvatarHelper.d.ts +5 -4
- package/dist/esm/src/components/bik-layout/BikSidebarV2/BikSidebarV2.d.ts +33 -0
- package/dist/esm/src/components/bik-layout/BikSidebarV2/SidebarV2.model.d.ts +27 -0
- package/dist/esm/src/components/bik-layout/BikSidebarV2/SidebarV2Popup.d.ts +13 -0
- package/dist/esm/src/components/bik-layout/BikSidebarV2/SidebarV2Styles.d.ts +44 -0
- package/dist/esm/src/components/bik-layout/BikSidebarV2/SimpleSidebarV2.d.ts +3 -0
- package/dist/esm/src/components/bik-layout/index.d.ts +2 -0
- package/dist/esm/src/components/button/Button.styled.d.ts +1 -1
- package/dist/esm/src/components/button/model.d.ts +3 -3
- package/dist/esm/src/components/button/themes.d.ts +2 -2
- package/dist/esm/src/components/checkBox/CheckBox.d.ts +1 -0
- package/dist/esm/src/components/country-code-picker/CountryCodePicker.d.ts +1 -1
- package/dist/esm/src/components/country-code-picker/CountryPicker.d.ts +1 -1
- package/dist/esm/src/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.d.ts +1 -1
- package/dist/esm/src/components/dropdown/OpenedDropdown/components/description/Description.d.ts +1 -1
- package/dist/esm/src/components/dropdown/OpenedDropdown/components/description/Description.styled.d.ts +1 -1
- package/dist/esm/src/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.d.ts +3 -1
- package/dist/esm/src/components/dropdown/OpenedDropdown/components/menu/MenuItem.d.ts +3 -1
- package/dist/esm/src/components/dropdown/OpenedDropdown/components/menu/MenuList.d.ts +3 -1
- package/dist/esm/src/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.d.ts +2 -1
- package/dist/esm/src/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.d.ts +3 -1
- package/dist/esm/src/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.d.ts +1 -1
- package/dist/esm/src/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.d.ts +1 -0
- package/dist/esm/src/components/dropdown/OpenedDropdown/utils/iterationOnOptions.d.ts +2 -0
- package/dist/esm/src/components/dropdown/hooks/useDropdown.d.ts +2 -0
- package/dist/esm/src/components/dropdown/type.d.ts +6 -1
- package/dist/esm/src/components/dropdown-button/DropdownButton.d.ts +3 -1
- package/dist/esm/src/components/dropdown-button/DropdownButton.style.d.ts +9 -2
- package/dist/esm/src/components/dual-icon-button/DualIconButton.d.ts +3 -0
- package/dist/esm/src/components/dual-icon-button/DualIconButton.styled.d.ts +7 -0
- package/dist/esm/src/components/dual-icon-button/index.d.ts +2 -0
- package/dist/esm/src/components/dual-icon-button/model.d.ts +12 -0
- package/dist/esm/src/components/fab-menu/FABMenu.d.ts +1 -1
- package/dist/esm/src/components/icon-button/IconButton.styled.d.ts +3 -1
- package/dist/esm/src/components/icon-button/model.d.ts +12 -1
- package/dist/esm/src/components/input/Input.model.d.ts +2 -1
- package/dist/esm/src/components/input/Input.styled.d.ts +16 -1
- package/dist/esm/src/components/list-item/List.model.d.ts +2 -1
- package/dist/esm/src/components/list-item/ListItem.styled.d.ts +2 -1
- package/dist/esm/src/components/list-item/themes.d.ts +2 -2
- package/dist/esm/src/components/multi-level-dropdown/GroupedMenuList.d.ts +1 -0
- package/dist/esm/src/components/multi-level-dropdown/MenuItem.d.ts +1 -0
- package/dist/esm/src/components/multi-level-dropdown/MenuList.d.ts +1 -0
- package/dist/esm/src/components/multi-level-dropdown/MultiLevelDropdown.styled.d.ts +13 -3
- package/dist/esm/src/components/multi-level-dropdown/type.d.ts +1 -0
- package/dist/esm/src/components/tag/Tag.d.ts +1 -1
- package/dist/esm/src/components/tag/Tag.stories.d.ts +5 -5
- package/dist/esm/src/components/tag/Tag.styled.d.ts +3 -1
- package/dist/esm/src/components/tag/model.d.ts +5 -1
- package/dist/esm/src/components/whats-new/WhatsNew.d.ts +2 -0
- package/dist/esm/src/components/whats-new/WhatsNew.types.d.ts +2 -0
- package/dist/esm/src/constants/Theme.d.ts +24 -0
- package/dist/esm/src/icons/Arrows/Chevron/ChevronUp.d.ts +1 -2
- package/dist/esm/src/icons/index.d.ts +24 -24
- package/dist/esm/src/index.d.ts +1 -0
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpennedDropdown.js","sources":["../../../../../../src/components/dropdown/OpenedDropdown/components/OpennedDropdown.tsx"],"sourcesContent":["import ErrorInfoIcon from '@src/assets/icons/errorInfo.svg';\nimport RetryIcon from '@src/assets/icons/refresh-purple.svg';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { ZeroState } from '@src/components/zeroState/ZeroState';\nimport { useOutside } from '@src/hooks/useOutside';\nimport { COLORS } from '@src/constants/Theme';\nimport { useDropdown } from '../../hooks/useDropdown';\nimport {\n\tDropdownOption,\n\tGroupedOption,\n\tMultiSelectOption,\n\tOpenDropdownProps,\n\tSingleOption,\n} from '../../type';\nimport { Description } from './description/Description';\nimport { FreeFormMenu } from './menu/FreeFormMenu';\nimport { MenuList } from './menu/MenuList';\nimport { SelectAllMenu } from './menu/SelectAllMenu';\nimport MultiSelectDropdownBottomBar from './multiSelect/MultiSelectDropdownBottomBar';\nimport {\n\tMenuListContainer,\n\tOpennedDropdownContainer,\n} from './OpennedDropdown.styled';\nimport { SearchBox } from './searchbox/SearchBox';\nimport { SearchZeroState } from './searchbox/SearchZeroState';\n\n/** CONSTANTS */\nconst defaults = {\n\theight: 304,\n\twidth: 290,\n};\n\nexport const OpenedDropdown: React.FC<OpenDropdownProps> = ({\n\toptions,\n\tisSearchable,\n\tisMultiSelect,\n\tmaxSelections,\n\twidth,\n\tallowFreeForm,\n\theight,\n\tonClose,\n\tonSelect,\n\tonSearch,\n\tversion,\n\tskipSorting,\n\theaderRef,\n\thideSelectAll,\n\tprimaryButtonText,\n\tonInfiniteScroll,\n\tonMultiSelectClear: onMultiSelectClearProp,\n\tonDropdownItemClick,\n\tbuttonOptions,\n\tisSearchLoading,\n\tisOptionsLoading,\n\toptionsErrorState,\n\tdisableSearchOptions,\n\tdisableSearchedOptionExcept,\n\tuseDefaultCursor,\n\tcontainerStyle = {},\n\tzeroState = undefined,\n\tisDraggable = false,\n\tonOptionsReorder,\n\thideClearButton = false,\n\tshowCheckboxForCustomElement = false,\n}) => {\n\t// Sort options with selected at top, unselected at bottom, maintaining order within groups\n\tconst sortOptionsWithSelectedOnTop = useCallback(\n\t\t(opts: DropdownOption[]): DropdownOption[] => {\n\t\t\tif (!isDraggable || !isMultiSelect) return opts;\n\n\t\t\tconst selected: DropdownOption[] = [];\n\t\t\tconst unselected: DropdownOption[] = [];\n\n\t\t\topts.forEach((option) => {\n\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t// Handle grouped options - maintain grouping\n\t\t\t\t\tunselected.push(option);\n\t\t\t\t} else {\n\t\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\t\tif (singleOption.selected) {\n\t\t\t\t\t\tselected.push(option);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tunselected.push(option);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn [...selected, ...unselected];\n\t\t},\n\t\t[isDraggable, isMultiSelect],\n\t);\n\n\tconst [localOptions, setLocalOptions] = useState<DropdownOption[]>(() =>\n\t\tsortOptionsWithSelectedOnTop(options),\n\t);\n\tconst localOptionsRef = useRef<DropdownOption[]>(localOptions);\n\tconst hasReorderedRef = useRef(false);\n\tconst onOptionsReorderRef = useRef(onOptionsReorder);\n\n\tuseEffect(() => {\n\t\tsetLocalOptions(sortOptionsWithSelectedOnTop(options));\n\t}, [options, sortOptionsWithSelectedOnTop]);\n\n\tuseEffect(() => {\n\t\tlocalOptionsRef.current = localOptions;\n\t}, [localOptions]);\n\n\tuseEffect(() => {\n\t\tonOptionsReorderRef.current = onOptionsReorder;\n\t}, [onOptionsReorder]);\n\n\t// Fire onOptionsReorder on unmount (dropdown close from Apply or click-outside)\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (hasReorderedRef.current && onOptionsReorderRef.current) {\n\t\t\t\tonOptionsReorderRef.current(localOptionsRef.current);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\tconst handleOptionsReorder = useCallback(\n\t\t(reorderedOptions: DropdownOption[]) => {\n\t\t\tsetLocalOptions(reorderedOptions);\n\t\t\t// For version 2.0 (no Apply button), apply reorder immediately\n\t\t\tif (version === '2.0') {\n\t\t\t\tonOptionsReorder?.(reorderedOptions);\n\t\t\t} else {\n\t\t\t\t// For version 1.0, defer until Apply/close (handled by unmount cleanup)\n\t\t\t\thasReorderedRef.current = true;\n\t\t\t}\n\t\t},\n\t\t[onOptionsReorder, version],\n\t);\n\n\tconst optionsToUse = isDraggable ? localOptions : options;\n\tconst {\n\t\tdropdownOptions,\n\t\tsearch,\n\t\tsearchedString,\n\t\tsearchedOptions,\n\t\tsearchError,\n\t\tretrySearch,\n\t\tonApplyHandler,\n\t\tselectAllHandler,\n\t\tonMultiSelectClear,\n\t\tonFreeFormSelect,\n\t\tonMultiSelectApply,\n\t\tlatestDropdownOptionsRef,\n\t\tgetSelectedOptions,\n\t\tgetCurrentSelectionCount,\n\t} = useDropdown(\n\t\tversion,\n\t\toptionsToUse,\n\t\tonSelect,\n\t\tskipSorting || isDraggable,\n\t\tisMultiSelect,\n\t\tonSearch,\n\t\tdisableSearchOptions,\n\t\tdisableSearchedOptionExcept,\n\t\tmaxSelections,\n\t);\n\tconst [widthState, setWidthState] = useState(width ?? defaults.width);\n\tconst [descriptionInfo, setDescription] = useState<{\n\t\ttitle: string;\n\t\tdescription: string;\n\t} | null>(null);\n\tconst [focusedIndex, setFocusedIndex] = useState<number>(-1);\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst childRefs = useRef([]);\n\tconst menuListRef = useRef<HTMLDivElement>(null);\n\tuseOutside(\n\t\tref,\n\t\t() => {\n\t\t\tsetDescription(null);\n\t\t\tif (isMultiSelect && version === '2.0') {\n\t\t\t\tconst optionsToSend = getSelectedOptions(\n\t\t\t\t\tlatestDropdownOptionsRef.current,\n\t\t\t\t);\n\t\t\t\tonClose?.(optionsToSend);\n\t\t\t} else {\n\t\t\t\tonClose?.(dropdownOptions);\n\t\t\t}\n\t\t},\n\t\t[headerRef, childRefs],\n\t);\n\n\t// Auto-focus dropdown when it opens for keyboard navigation while preventing scroll to maintain popper positioning\n\tuseEffect(() => {\n\t\tconst timer = setTimeout(() => {\n\t\t\tif (ref.current) {\n\t\t\t\tref.current.focus({ preventScroll: true });\n\t\t\t}\n\t\t}, 0);\n\t\treturn () => clearTimeout(timer);\n\t}, []);\n\n\t// Get flattened selectable options\n\tconst getFlattenedOptions = (opts: DropdownOption[]): SingleOption[] => {\n\t\tconst flattened: SingleOption[] = [];\n\t\topts.forEach((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\tconst groupedOption = option as GroupedOption;\n\t\t\t\tgroupedOption.options.forEach((nestedOption) => {\n\t\t\t\t\tif (!nestedOption.disabled) {\n\t\t\t\t\t\tflattened.push(nestedOption);\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\tflattened.push(singleOption);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn flattened;\n\t};\n\n\t/** Keyboard navigation handler */\n\tuseEffect(() => {\n\t\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t\tconst currentOptions =\n\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions;\n\t\t\tconst flattenedOptions = getFlattenedOptions(currentOptions);\n\n\t\t\tif (flattenedOptions.length === 0) return;\n\n\t\t\tif (e.key === 'ArrowDown') {\n\t\t\t\te.preventDefault();\n\t\t\t\tsetFocusedIndex((prev) => {\n\t\t\t\t\tconst newIndex = prev < flattenedOptions.length - 1 ? prev + 1 : 0;\n\t\t\t\t\t// Scroll to the focused item\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tconst focusedElement = menuListRef.current?.querySelector(\n\t\t\t\t\t\t\t`[data-option-index=\"${newIndex}\"]`,\n\t\t\t\t\t\t) as HTMLElement;\n\t\t\t\t\t\tif (focusedElement) {\n\t\t\t\t\t\t\tfocusedElement.scrollIntoView({\n\t\t\t\t\t\t\t\tblock: 'nearest',\n\t\t\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t\treturn newIndex;\n\t\t\t\t});\n\t\t\t} else if (e.key === 'ArrowUp') {\n\t\t\t\te.preventDefault();\n\t\t\t\tsetFocusedIndex((prev) => {\n\t\t\t\t\tconst newIndex = prev > 0 ? prev - 1 : flattenedOptions.length - 1;\n\t\t\t\t\t// Scroll to the focused item\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tconst focusedElement = menuListRef.current?.querySelector(\n\t\t\t\t\t\t\t`[data-option-index=\"${newIndex}\"]`,\n\t\t\t\t\t\t) as HTMLElement;\n\t\t\t\t\t\tif (focusedElement) {\n\t\t\t\t\t\t\tfocusedElement.scrollIntoView({\n\t\t\t\t\t\t\t\tblock: 'nearest',\n\t\t\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t\treturn newIndex;\n\t\t\t\t});\n\t\t\t} else if (e.key === 'Enter' && focusedIndex >= 0) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst focusedOption = flattenedOptions[focusedIndex];\n\t\t\t\tif (focusedOption) {\n\t\t\t\t\t// onApplyHandler handles the selection state and calls onSelect internally\n\t\t\t\t\tonApplyHandler({\n\t\t\t\t\t\t...focusedOption,\n\t\t\t\t\t\tselected: !focusedOption.selected,\n\t\t\t\t\t});\n\t\t\t\t\t// Also trigger onDropdownItemClick if provided\n\t\t\t\t\tif (onDropdownItemClick) {\n\t\t\t\t\t\tonDropdownItemClick(focusedOption);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst dropdownElement = ref.current;\n\t\tif (dropdownElement) {\n\t\t\tdropdownElement.addEventListener('keydown', handleKeyDown);\n\t\t\treturn () => {\n\t\t\t\tdropdownElement.removeEventListener('keydown', handleKeyDown);\n\t\t\t};\n\t\t}\n\t}, [\n\t\tfocusedIndex,\n\t\tsearchedString,\n\t\tsearchedOptions,\n\t\tdropdownOptions,\n\t\tonSearch,\n\t\tonApplyHandler,\n\t\tonDropdownItemClick,\n\t]);\n\n\t// LOCAL CONSTANTS\n\tconst heightToUse = height ?? defaults.height;\n\tconst menuListMaxHeight =\n\t\ttypeof heightToUse === 'number'\n\t\t\t? isSearchable && isMultiSelect\n\t\t\t\t? heightToUse - 96\n\t\t\t\t: (isSearchable && !isMultiSelect) || (!isSearchable && isMultiSelect)\n\t\t\t\t? heightToUse - 48\n\t\t\t\t: heightToUse\n\t\t\t: heightToUse;\n\n\tfunction showDescription(title?: string, description?: string) {\n\t\tif (title && description) {\n\t\t\tsetDescription({\n\t\t\t\ttitle,\n\t\t\t\tdescription,\n\t\t\t});\n\t\t} else {\n\t\t\tsetDescription(null);\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tconst widthToUse = width ?? defaults.width;\n\t\tif (descriptionInfo === null) {\n\t\t\tsetWidthState(widthToUse);\n\t\t} else if (typeof widthToUse === 'number') {\n\t\t\tsetWidthState(widthToUse * 2);\n\t\t} else if (typeof widthToUse === 'string') {\n\t\t\tif (widthToUse.endsWith('px')) {\n\t\t\t\tconst newWidth = parseInt(widthToUse.replace('px', '')) * 2;\n\t\t\t\tsetWidthState(newWidth);\n\t\t\t}\n\t\t}\n\t}, [descriptionInfo]);\n\n\t/**\n\t * This is to show the search result in a stateless way\n\t */\n\n\tconst exactMatchFound: boolean[] = [];\n\n\tconst processOptionsWithMaxSelections = (\n\t\toptionsToProcess: DropdownOption[],\n\t) => {\n\t\tif (!isMultiSelect || (!maxSelections && maxSelections !== 0)) {\n\t\t\treturn optionsToProcess;\n\t\t}\n\n\t\t// Count from the full options list (not the filtered subset) so selections\n\t\t// hidden by a search query are still included in the limit check.\n\t\tconst currentSelectionCount = getCurrentSelectionCount(dropdownOptions);\n\t\tconst maxSelectionsReached = currentSelectionCount >= maxSelections;\n\n\t\tif (!maxSelectionsReached) {\n\t\t\treturn optionsToProcess;\n\t\t}\n\n\t\t// Disable unselected options when max selections is reached\n\t\treturn optionsToProcess.map((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\treturn {\n\t\t\t\t\t...option,\n\t\t\t\t\toptions: (option as GroupedOption).options.map((nestedOption) => ({\n\t\t\t\t\t\t...nestedOption,\n\t\t\t\t\t\tdisabled:\n\t\t\t\t\t\t\tnestedOption.disabled ||\n\t\t\t\t\t\t\t(!nestedOption.selected && maxSelectionsReached),\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\treturn {\n\t\t\t\t\t...singleOption,\n\t\t\t\t\tdisabled:\n\t\t\t\t\t\tsingleOption.disabled ||\n\t\t\t\t\t\t(!singleOption.selected && maxSelectionsReached),\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t};\n\n\tconst optionsToShow = processOptionsWithMaxSelections(\n\t\t(searchedString && onSearch ? searchedOptions : dropdownOptions)\n\t\t\t.map((option) => {\n\t\t\t\tif (searchedString && !onSearch) {\n\t\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t\tconst groupedOption = { ...option } as GroupedOption;\n\t\t\t\t\t\tgroupedOption.options = groupedOption.options.filter((op) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\top.label?.toLowerCase().includes(searchedString.toLowerCase())\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\texactMatchFound.push(\n\t\t\t\t\t\t\t\t\t!searchedString || op.label === searchedString,\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn groupedOption.options.length > 0 ? groupedOption : null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toption.label\n\t\t\t\t\t\t\t\t?.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(searchedString.toLowerCase()) ||\n\t\t\t\t\t\t\t(option as SingleOption | MultiSelectOption).searchKey\n\t\t\t\t\t\t\t\t?.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(searchedString.toLowerCase())\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\texactMatchFound.push(\n\t\t\t\t\t\t\t\t!searchedString || option.label === searchedString,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn option;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn option;\n\t\t\t})\n\t\t\t.filter((option) => option !== null) as DropdownOption[],\n\t);\n\n\tconst noResultForSearch =\n\t\t!!isSearchable && searchedString && optionsToShow.length === 0;\n\tconst showLoadingState = !searchedString && !!isOptionsLoading;\n\tconst showErrorState =\n\t\t!searchedString && !!optionsErrorState && !showLoadingState;\n\tconst showEmptyState =\n\t\t!searchedString &&\n\t\t!optionsToShow.length &&\n\t\t!showLoadingState &&\n\t\t!showErrorState;\n\tconst showTopLevelZeroState =\n\t\tshowLoadingState || showErrorState || showEmptyState;\n\n\tconst emptyStateTitle = zeroState?.title || 'No results found';\n\tconst emptyStateSubTitle =\n\t\tzeroState?.subTitle ||\n\t\t`Please try again later or contact us at support@bik.ai if you require further assistance.`;\n\tconst errorStateTitle = optionsErrorState?.title || 'Failed to load options';\n\tconst errorStateSubTitle =\n\t\toptionsErrorState?.subTitle ||\n\t\t'Something went wrong while fetching the list. Please try again';\n\tconst defaultErrorActionButton = {\n\t\tbuttonText: 'Try again',\n\t\tbuttonType: 'text' as const,\n\t\tsize: 'small' as const,\n\t\tbuttonTextColor: COLORS.background.inverseLight,\n\t\tcustomIconColor: COLORS.background.inverseLight,\n\t\tLeadingIcon: RetryIcon,\n\t};\n\n\tconst mergedErrorState = {\n\t\tIconHolderStyle: {\n\t\t\tbackground: COLORS.background.negative.light,\n\t\t},\n\t\tIcon: (\n\t\t\t<ErrorInfoIcon color={COLORS.content.negative} width={24} height={24} />\n\t\t),\n\t\t...optionsErrorState,\n\t};\n\tmergedErrorState.actionButton = {\n\t\t...defaultErrorActionButton,\n\t\t...(optionsErrorState?.actionButton ?? {}),\n\t};\n\tconst zeroStateProps = showLoadingState\n\t\t? undefined\n\t\t: showErrorState\n\t\t? mergedErrorState\n\t\t: zeroState;\n\n\treturn (\n\t\t<OpennedDropdownContainer\n\t\t\tversion={version}\n\t\t\tref={ref}\n\t\t\ttabIndex={-1}\n\t\t\tstyle={{\n\t\t\t\t// maxWidth: descriptionInfo ? 800 : 400,\n\t\t\t\twidth: widthState,\n\t\t\t\t...containerStyle,\n\t\t\t\toutline: 'none',\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: descriptionInfo ? '50%' : '100%',\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tbackground: 'white',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{!!isSearchable && <SearchBox onSearch={search} version={version} />}\n\n\t\t\t\t{showTopLevelZeroState ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: heightToUse,\n\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\tbackground: COLORS.background.base,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ZeroState\n\t\t\t\t\t\t\t{...(zeroStateProps ?? {})}\n\t\t\t\t\t\t\tisLoading={showLoadingState}\n\t\t\t\t\t\t\ttitle={showErrorState ? errorStateTitle : emptyStateTitle}\n\t\t\t\t\t\t\tsubTitle={\n\t\t\t\t\t\t\t\tshowErrorState ? errorStateSubTitle : emptyStateSubTitle\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<MenuListContainer\n\t\t\t\t\t\tminHeight={heightToUse}\n\t\t\t\t\t\tmaxHeight={menuListMaxHeight}\n\t\t\t\t\t\tref={menuListRef}\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!isMultiSelect && !noResultForSearch && !hideSelectAll && (\n\t\t\t\t\t\t\t<SelectAllMenu\n\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\toptions={\n\t\t\t\t\t\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonSelect={selectAllHandler}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{!allowFreeForm && noResultForSearch && (\n\t\t\t\t\t\t\t<SearchZeroState\n\t\t\t\t\t\t\t\tisLoading={isSearchLoading}\n\t\t\t\t\t\t\t\terrorMessage={searchError}\n\t\t\t\t\t\t\t\tonRetry={retrySearch}\n\t\t\t\t\t\t\t\theight={menuListMaxHeight as number}\n\t\t\t\t\t\t\t\tsearchedString={searchedString}\n\t\t\t\t\t\t\t\tcontainerWidth={width}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{allowFreeForm &&\n\t\t\t\t\t\t\t(noResultForSearch ||\n\t\t\t\t\t\t\t\t(!!exactMatchFound.length &&\n\t\t\t\t\t\t\t\t\texactMatchFound.every((val) => val === false))) && (\n\t\t\t\t\t\t\t\t<FreeFormMenu\n\t\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\t\t\tonSelect={onFreeFormSelect}\n\t\t\t\t\t\t\t\t\tsearchedString={searchedString}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<MenuList\n\t\t\t\t\t\t\tonInfiniteScroll={onInfiniteScroll}\n\t\t\t\t\t\t\tonDropdownItemClick={onDropdownItemClick}\n\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\tonSelect={onApplyHandler}\n\t\t\t\t\t\t\tshowDescription={showDescription}\n\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\toptions={optionsToShow}\n\t\t\t\t\t\t\tuseDefaultCursor={useDefaultCursor}\n\t\t\t\t\t\t\tref={childRefs}\n\t\t\t\t\t\t\tfocusedIndex={focusedIndex}\n\t\t\t\t\t\t\tisDraggable={isDraggable}\n\t\t\t\t\t\t\tonOptionsReorder={handleOptionsReorder}\n\t\t\t\t\t\t\tshowCheckboxForCustomElement={showCheckboxForCustomElement}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuListContainer>\n\t\t\t\t)}\n\t\t\t\t{!!isMultiSelect && !showTopLevelZeroState && version !== '2.0' && (\n\t\t\t\t\t<MultiSelectDropdownBottomBar\n\t\t\t\t\t\tonClear={() => {\n\t\t\t\t\t\t\tonMultiSelectClear();\n\t\t\t\t\t\t\tonMultiSelectClearProp?.();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonApply={onMultiSelectApply}\n\t\t\t\t\t\tlist={\n\t\t\t\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbuttonText={primaryButtonText}\n\t\t\t\t\t\tbuttonOptions={buttonOptions}\n\t\t\t\t\t\thideClearButton={hideClearButton}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!descriptionInfo && (\n\t\t\t\t<Description\n\t\t\t\t\ttitle={descriptionInfo.title}\n\t\t\t\t\tdescription={descriptionInfo.description}\n\t\t\t\t\tversion={version}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</OpennedDropdownContainer>\n\t);\n};\n"],"names":["defaults","OpenedDropdown","_ref","options","isSearchable","isMultiSelect","maxSelections","width","allowFreeForm","height","onClose","onSelect","onSearch","version","skipSorting","headerRef","hideSelectAll","primaryButtonText","onInfiniteScroll","onMultiSelectClear","onMultiSelectClearProp","onDropdownItemClick","buttonOptions","isSearchLoading","isOptionsLoading","optionsErrorState","disableSearchOptions","disableSearchedOptionExcept","useDefaultCursor","containerStyle","zeroState","isDraggable","onOptionsReorder","hideClearButton","showCheckboxForCustomElement","sortOptionsWithSelectedOnTop","useCallback","opts","selected","unselected","forEach","option","push","localOptions","setLocalOptions","useState","localOptionsRef","useRef","hasReorderedRef","onOptionsReorderRef","useEffect","current","handleOptionsReorder","reorderedOptions","optionsToUse","dropdownOptions","search","searchedString","searchedOptions","searchError","retrySearch","onApplyHandler","selectAllHandler","onFreeFormSelect","onMultiSelectApply","latestDropdownOptionsRef","getSelectedOptions","getCurrentSelectionCount","useDropdown","widthState","setWidthState","descriptionInfo","setDescription","focusedIndex","setFocusedIndex","ref","childRefs","menuListRef","useOutside","optionsToSend","timer","setTimeout","focus","preventScroll","clearTimeout","handleKeyDown","e","flattenedOptions","flattened","nestedOption","disabled","singleOption","getFlattenedOptions","length","key","preventDefault","prev","newIndex","focusedElement","_a","querySelector","scrollIntoView","block","behavior","focusedOption","Object","assign","dropdownElement","addEventListener","removeEventListener","heightToUse","menuListMaxHeight","widthToUse","endsWith","newWidth","parseInt","replace","exactMatchFound","optionsToShow","optionsToProcess","maxSelectionsReached","map","processOptionsWithMaxSelections","groupedOption","filter","op","label","toLowerCase","includes","_b","searchKey","noResultForSearch","showLoadingState","showErrorState","showEmptyState","showTopLevelZeroState","emptyStateTitle","title","emptyStateSubTitle","subTitle","errorStateTitle","errorStateSubTitle","defaultErrorActionButton","buttonText","buttonType","size","buttonTextColor","COLORS","background","inverseLight","customIconColor","LeadingIcon","RetryIcon","mergedErrorState","IconHolderStyle","negative","light","Icon","_jsx","ErrorInfoIcon","color","content","actionButton","zeroStateProps","undefined","_jsxs","OpennedDropdownContainer","tabIndex","style","outline","children","display","flexDirection","SearchBox","base","ZeroState","isLoading","MenuListContainer","minHeight","maxHeight","SelectAllMenu","SearchZeroState","errorMessage","onRetry","containerWidth","every","val","FreeFormMenu","MenuList","showDescription","description","MultiSelectDropdownBottomBar","onClear","onApply","list","Description"],"mappings":"w8BA2BA,MAAMA,EACG,IADHA,EAEE,IAGKC,EAA8CC,IAgCtD,IAhCuDC,QAC3DA,EAAOC,aACPA,EAAYC,cACZA,EAAaC,cACbA,EAAaC,MACbA,EAAKC,cACLA,EAAaC,OACbA,EAAMC,QACNA,EAAOC,SACPA,EAAQC,SACRA,EAAQC,QACRA,EAAOC,YACPA,EAAWC,UACXA,EAASC,cACTA,EAAaC,kBACbA,EAAiBC,iBACjBA,EACAC,mBAAoBC,EAAsBC,oBAC1CA,EAAmBC,cACnBA,EAAaC,gBACbA,EAAeC,iBACfA,EAAgBC,kBAChBA,EAAiBC,qBACjBA,EAAoBC,4BACpBA,EAA2BC,iBAC3BA,EAAgBC,eAChBA,EAAiB,CAAE,EAAAC,UACnBA,EAAqBC,YACrBA,GAAc,EAAKC,iBACnBA,EAAgBC,gBAChBA,GAAkB,EAAKC,6BACvBA,IAA+B,GAC/BhC,SAEA,MAAMiC,GAA+BC,GACnCC,IACA,IAAKN,IAAgB1B,EAAe,OAAOgC,EAE3C,MAAMC,EAA6B,GAC7BC,EAA+B,GAgBrC,OAdAF,EAAKG,SAASC,IACb,GAAKA,EAAyBtC,QAE7BoC,EAAWG,KAAKD,OACV,CACeA,EACJH,SAChBA,EAASI,KAAKD,GAEdF,EAAWG,KAAKD,EAEjB,KAGK,IAAIH,KAAaC,EAAW,GAEpC,CAACR,EAAa1B,KAGRsC,GAAcC,IAAmBC,GAA2B,IAClEV,GAA6BhC,KAExB2C,GAAkBC,EAAyBJ,IAC3CK,GAAkBD,GAAO,GACzBE,GAAsBF,EAAOf,GAEnCkB,GAAU,KACTN,GAAgBT,GAA6BhC,GAAS,GACpD,CAACA,EAASgC,KAEbe,GAAU,KACTJ,GAAgBK,QAAUR,EAAY,GACpC,CAACA,KAEJO,GAAU,KACTD,GAAoBE,QAAUnB,CAAgB,GAC5C,CAACA,IAGJkB,GAAU,IACF,KACFF,GAAgBG,SAAWF,GAAoBE,SAClDF,GAAoBE,QAAQL,GAAgBK,QAC5C,GAEA,IAEH,MAAMC,GAAuBhB,GAC3BiB,IACAT,GAAgBS,GAEA,QAAZxC,EACHmB,SAAAA,EAAmBqB,GAGnBL,GAAgBG,SAAU,CAC1B,GAEF,CAACnB,EAAkBnB,IAGdyC,GAAevB,EAAcY,GAAexC,GAC5CoD,gBACLA,GAAeC,OACfA,GAAMC,eACNA,GAAcC,gBACdA,GAAeC,YACfA,GAAWC,YACXA,GAAWC,eACXA,GAAcC,iBACdA,GAAgB3C,mBAChBA,GAAkB4C,iBAClBA,GAAgBC,mBAChBA,GAAkBC,yBAClBA,GAAwBC,mBACxBA,GAAkBC,yBAClBA,IACGC,EACHvD,EACAyC,GACA3C,EACAG,GAAeiB,EACf1B,EACAO,EACAc,EACAC,EACArB,IAEM+D,GAAYC,IAAiBzB,EAAStC,QAAAA,EAASP,IAC/CuE,GAAiBC,IAAkB3B,EAGhC,OACH4B,GAAcC,IAAmB7B,GAAkB,GACpD8B,GAAM5B,EAAuB,MAC7B6B,GAAY7B,EAAO,IACnB8B,GAAc9B,EAAuB,MAC3C+B,EACCH,IACA,KAEC,GADAH,GAAe,MACXnE,GAA6B,QAAZQ,EAAmB,CACvC,MAAMkE,EAAgBb,GACrBD,GAAyBd,SAE1BzC,SAAAA,EAAUqE,EACV,MACArE,SAAAA,EAAU6C,GACV,GAEF,CAACxC,EAAW6D,KAIb1B,GAAU,KACT,MAAM8B,EAAQC,YAAW,KACpBN,GAAIxB,SACPwB,GAAIxB,QAAQ+B,MAAM,CAAEC,eAAe,GACnC,GACC,GACH,MAAO,IAAMC,aAAaJ,EAAM,GAC9B,IAwBH9B,GAAU,KACT,MAAMmC,EAAiBC,IACtB,MAEMC,EAzBqBlD,KAC5B,MAAMmD,EAA4B,GAgBlC,OAfAnD,EAAKG,SAASC,IACb,GAAKA,EAAyBtC,QACPsC,EACRtC,QAAQqC,SAASiD,IACzBA,EAAaC,UACjBF,EAAU9C,KAAK+C,EACf,QAEI,CACN,MAAME,EAAelD,EAChBkD,EAAaD,UACjBF,EAAU9C,KAAKiD,EAEhB,KAEKH,CAAS,EAQUI,CADxBnC,IAAkB7C,EAAW8C,GAAkBH,IAGhD,GAAgC,IAA5BgC,EAAiBM,OAErB,GAAc,cAAVP,EAAEQ,IACLR,EAAES,iBACFrB,IAAiBsB,IAChB,MAAMC,EAAWD,EAAOT,EAAiBM,OAAS,EAAIG,EAAO,EAAI,EAajE,OAXAf,YAAW,WACV,MAAMiB,EAAsC,QAArBC,EAAAtB,GAAY1B,eAAS,IAAAgD,OAAA,EAAAA,EAAAC,cAC3C,uBAAuBH,OAEpBC,GACHA,EAAeG,eAAe,CAC7BC,MAAO,UACPC,SAAU,UAEX,GACC,GACIN,CAAQ,SAEV,GAAc,YAAVX,EAAEQ,IACZR,EAAES,iBACFrB,IAAiBsB,IAChB,MAAMC,EAAWD,EAAO,EAAIA,EAAO,EAAIT,EAAiBM,OAAS,EAajE,OAXAZ,YAAW,WACV,MAAMiB,EAAsC,QAArBC,EAAAtB,GAAY1B,eAAS,IAAAgD,OAAA,EAAAA,EAAAC,cAC3C,uBAAuBH,OAEpBC,GACHA,EAAeG,eAAe,CAC7BC,MAAO,UACPC,SAAU,UAEX,GACC,GACIN,CAAQ,SAEV,GAAc,UAAVX,EAAEQ,KAAmBrB,IAAgB,EAAG,CAClDa,EAAES,iBACF,MAAMS,EAAgBjB,EAAiBd,IACnC+B,IAEH3C,GAAc4C,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACVF,GAAa,CAChBlE,UAAWkE,EAAclE,YAGtBjB,GACHA,EAAoBmF,GAGtB,GAGIG,EAAkBhC,GAAIxB,QAC5B,GAAIwD,EAEH,OADAA,EAAgBC,iBAAiB,UAAWvB,GACrC,KACNsB,EAAgBE,oBAAoB,UAAWxB,EAAc,CAE9D,GACC,CACFZ,GACAhB,GACAC,GACAH,GACA3C,EACAiD,GACAxC,IAID,MAAMyF,GAAcrG,QAAAA,EAAUT,EACxB+G,GACkB,iBAAhBD,GACJ1G,GAAgBC,EACfyG,GAAc,GACb1G,IAAiBC,IAAoBD,GAAgBC,EACtDyG,GAAc,GACdA,GACDA,GAaJ5D,GAAU,KACT,MAAM8D,EAAazG,QAAAA,EAASP,EAC5B,GAAwB,OAApBuE,GACHD,GAAc0C,QACR,GAA0B,iBAAfA,EACjB1C,GAA2B,EAAb0C,QACR,GAA0B,iBAAfA,GACbA,EAAWC,SAAS,MAAO,CAC9B,MAAMC,EAAoD,EAAzCC,SAASH,EAAWI,QAAQ,KAAM,KACnD9C,GAAc4C,EACd,CACD,GACC,CAAC3C,KAMJ,MAAM8C,GAA6B,GA0C7BC,GAvCLC,KAEA,IAAKlH,IAAmBC,GAAmC,IAAlBA,EACxC,OAAOiH,EAKR,MACMC,EADwBrD,GAAyBZ,KACDjD,EAEtD,OAAKkH,EAKED,EAAiBE,KAAKhF,IAC5B,GAAKA,EAAyBtC,QAC7B,OACIsG,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAjE,IACHtC,QAAUsC,EAAyBtC,QAAQsH,KAAKhC,GAC5CgB,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAjB,IACHC,SACCD,EAAaC,WACXD,EAAanD,UAAYkF,QAGxB,CACN,MAAM7B,EAAelD,EACrB,OAAAgE,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACIf,GACH,CAAAD,SACCC,EAAaD,WACXC,EAAarD,UAAYkF,GAE7B,KAvBMD,CAwBN,EAGmBG,EACpBjE,IAAkB7C,EAAW8C,GAAkBH,IAC9CkE,KAAKhF,YACL,GAAIgB,KAAmB7C,EAAU,CAChC,GAAK6B,EAAyBtC,QAAS,CACtC,MAAMwH,EAAgBlB,OAAKC,OAAA,CAAA,EAAAjE,GAe3B,OAdAkF,EAAcxH,QAAUwH,EAAcxH,QAAQyH,QAAQC,UACrD,iBACC1B,EAAA0B,EAAGC,4BAAOC,cAAcC,SAASvE,GAAesE,kBAEhDV,GAAgB3E,MACde,IAAkBoE,EAAGC,QAAUrE,KAG1B,EAGI,IAGNkE,EAAcxH,QAAQ0F,OAAS,EAAI8B,EAAgB,IAC1D,CACA,OAEI,QADHxB,EAAA1D,EAAOqF,aACJ,IAAA3B,OAAA,EAAAA,EAAA4B,cACDC,SAASvE,GAAesE,kBAC4B,QAAtDE,EAACxF,EAA4CyF,iBAAS,IAAAD,OAAA,EAAAA,EACnDF,cACDC,SAASvE,GAAesE,iBAE1BV,GAAgB3E,MACde,IAAkBhB,EAAOqF,QAAUrE,IAE9BhB,GAEA,IAGT,CAED,OAAOA,CAAM,IAEbmF,QAAQnF,GAAsB,OAAXA,KAGhB0F,KACH/H,GAAgBqD,IAA2C,IAAzB6D,GAAczB,OAC7CuC,IAAoB3E,MAAoBjC,EACxC6G,IACJ5E,MAAoBhC,IAAsB2G,GACtCE,KACJ7E,IACA6D,GAAczB,QACduC,IACAC,IACIE,GACLH,IAAoBC,IAAkBC,GAEjCE,IAAkB1G,aAAA,EAAAA,EAAW2G,QAAS,mBACtCC,IACL5G,aAAS,EAATA,EAAW6G,WACX,4FACKC,IAAkBnH,aAAA,EAAAA,EAAmBgH,QAAS,yBAC9CI,IACLpH,aAAiB,EAAjBA,EAAmBkH,WACnB,iEACKG,GAA2B,CAChCC,WAAY,YACZC,WAAY,OACZC,KAAM,QACNC,gBAAiBC,EAAOC,WAAWC,aACnCC,gBAAiBH,EAAOC,WAAWC,aACnCE,YAAaC,GAGRC,GACLhD,OAAAC,OAAA,CAAAgD,gBAAiB,CAChBN,WAAYD,EAAOC,WAAWO,SAASC,OAExCC,KACCC,EAACC,EAAc,CAAAC,MAAOb,EAAOc,QAAQN,SAAUpJ,MAAO,GAAIE,OAAQ,MAEhEgB,GAEJgI,GAAiBS,aAAYzD,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACzBoC,eACCrH,aAAiB,EAAjBA,EAAmByI,8BAAgB,CAAG,GAE3C,MAAMC,GAAiB/B,QACpBgC,EACA/B,GACAoB,GACA3H,EAEH,OACCuI,EAACC,EACA7D,OAAAC,OAAA,CAAA7F,QAASA,EACT8D,IAAKA,GACL4F,UAAW,EACXC,MAAK/D,OAAAC,OAAAD,OAAAC,OAAA,CAEJnG,MAAO8D,IACJxC,GAAc,CACjB4I,QAAS,UAAM,CAAAC,SAAA,CAGhBL,EACC,MAAA5D,OAAAC,OAAA,CAAA8D,MAAO,CACNjK,MAAOgE,GAAkB,MAAQ,OACjCoG,QAAS,OACTC,cAAe,SACfxB,WAAY,UAGZ,CAAAsB,SAAA,GAAEtK,GAAgB0J,EAACe,EAAS,CAACjK,SAAU4C,GAAQ3C,QAASA,IAExD0H,GACAuB,EACC,MAAArD,OAAAC,OAAA,CAAA8D,MAAO,CACN/J,OAAQqG,GACR6D,QAAS,OACTvB,WAAYD,EAAOC,WAAW0B,OAC9B,CAAAJ,SAEDZ,EAACiB,EACItE,OAAAC,OAAA,CAAA,EAACyD,SAAAA,GAAkB,CAAA,GACvBa,UAAW5C,GACXK,MAAOJ,GAAiBO,GAAkBJ,GAC1CG,SACCN,GAAiBQ,GAAqBH,SAKzC2B,EAACY,EACAxE,OAAAC,OAAA,CAAAwE,UAAWpE,GACXqE,UAAWpE,GACXpC,IAAKE,IAAW,CAAA6F,SAAA,GAEbrK,IAAkB8H,KAAsBnH,GAC1C8I,EAACsB,EACA,CAAAvK,QAASA,EACTV,QACCsD,IAAkB7C,EAAW8C,GAAkBH,GAEhD5C,SAAUmD,MAIVtD,GAAiB2H,IAClB2B,EAACuB,EACA,CAAAL,UAAWzJ,EACX+J,aAAc3H,GACd4H,QAAS3H,GACTnD,OAAQsG,GACRtD,eAAgBA,GAChB+H,eAAgBjL,IAGjBC,IACC2H,MACGd,GAAgBxB,QAClBwB,GAAgBoE,OAAOC,IAAgB,IAARA,MAChC5B,EAAC6B,EAAY,CACZ9K,QAASA,EACTR,cAAeA,EACfM,SAAUoD,GACVN,eAAgBA,KAInBqG,EAAC8B,EACA,CAAA1K,iBAAkBA,EAClBG,oBAAqBA,EACrBR,QAASA,EACTF,SAAUkD,GACVgI,gBAvPN,SAAyBpD,EAAgBqD,GAEvCtH,GADGiE,GAASqD,EACG,CACdrD,QACAqD,eAGc,KAEjB,EA+OMzL,cAAeA,EACfF,QAASmH,GACT1F,iBAAkBA,EAClB+C,IAAKC,GACLH,aAAcA,GACd1C,YAAaA,EACbC,iBAAkBoB,GAClBlB,6BAA8BA,WAI9B7B,IAAkBkI,IAAqC,QAAZ1H,GAC7CiJ,EAACiC,EACA,CAAAC,QAASA,KACR7K,KACAC,SAAAA,GAA0B,EAE3B6K,QAASjI,GACTkI,KACCzI,IAAkB7C,EAAW8C,GAAkBH,GAEhDwF,WAAY9H,EACZK,cAAeA,EACfW,gBAAiBA,UAIjBsC,IACFuF,EAACqC,EAAW,CACX1D,MAAOlE,GAAgBkE,MACvBqD,YAAavH,GAAgBuH,YAC7BjL,QAASA,OAGe"}
|
|
1
|
+
{"version":3,"file":"OpennedDropdown.js","sources":["../../../../../../src/components/dropdown/OpenedDropdown/components/OpennedDropdown.tsx"],"sourcesContent":["import ErrorInfoIcon from '@src/assets/icons/errorInfo.svg';\nimport RetryIcon from '@src/assets/icons/refresh-purple.svg';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { ZeroState } from '@src/components/zeroState/ZeroState';\nimport { useOutside } from '@src/hooks/useOutside';\nimport { COLORS } from '@src/constants/Theme';\nimport { useDropdown } from '../../hooks/useDropdown';\nimport {\n\tDropdownOption,\n\tGroupedOption,\n\tMultiSelectOption,\n\tOpenDropdownProps,\n\tSingleOption,\n} from '../../type';\nimport { Description } from './description/Description';\nimport { FreeFormMenu } from './menu/FreeFormMenu';\nimport { MenuList } from './menu/MenuList';\nimport { SelectAllMenu } from './menu/SelectAllMenu';\nimport MultiSelectDropdownBottomBar from './multiSelect/MultiSelectDropdownBottomBar';\nimport {\n\tMenuListContainer,\n\tOpennedDropdownContainer,\n} from './OpennedDropdown.styled';\nimport { SearchBox } from './searchbox/SearchBox';\nimport { SearchZeroState } from './searchbox/SearchZeroState';\n\n/** CONSTANTS */\nconst defaults = {\n\theight: 304,\n\twidth: 290,\n};\n\nexport const OpenedDropdown: React.FC<OpenDropdownProps> = ({\n\toptions,\n\tisSearchable,\n\tisMultiSelect,\n\tmaxSelections,\n\twidth,\n\tallowFreeForm,\n\theight,\n\tonClose,\n\tonSelect,\n\tonSearch,\n\tversion,\n\tskipSorting,\n\theaderRef,\n\thideSelectAll,\n\tprimaryButtonText,\n\tonInfiniteScroll,\n\tonMultiSelectClear: onMultiSelectClearProp,\n\tonDropdownItemClick,\n\tbuttonOptions,\n\tisSearchLoading,\n\tisOptionsLoading,\n\toptionsErrorState,\n\tdisableSearchOptions,\n\tdisableSearchedOptionExcept,\n\tuseDefaultCursor,\n\tcontainerStyle = {},\n\tzeroState = undefined,\n\tisDraggable = false,\n\tonOptionsReorder,\n\thideClearButton = false,\n\tshowCheckboxForCustomElement = false,\n\tcheckboxActiveColor,\n\tbrandSelectedRow,\n}) => {\n\t// Sort options with selected at top, unselected at bottom, maintaining order within groups\n\tconst sortOptionsWithSelectedOnTop = useCallback(\n\t\t(opts: DropdownOption[]): DropdownOption[] => {\n\t\t\tif (!isDraggable || !isMultiSelect) return opts;\n\n\t\t\tconst selected: DropdownOption[] = [];\n\t\t\tconst unselected: DropdownOption[] = [];\n\n\t\t\topts.forEach((option) => {\n\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t// Handle grouped options - maintain grouping\n\t\t\t\t\tunselected.push(option);\n\t\t\t\t} else {\n\t\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\t\tif (singleOption.selected) {\n\t\t\t\t\t\tselected.push(option);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tunselected.push(option);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn [...selected, ...unselected];\n\t\t},\n\t\t[isDraggable, isMultiSelect],\n\t);\n\n\tconst [localOptions, setLocalOptions] = useState<DropdownOption[]>(() =>\n\t\tsortOptionsWithSelectedOnTop(options),\n\t);\n\tconst localOptionsRef = useRef<DropdownOption[]>(localOptions);\n\tconst hasReorderedRef = useRef(false);\n\tconst onOptionsReorderRef = useRef(onOptionsReorder);\n\n\tuseEffect(() => {\n\t\tsetLocalOptions(sortOptionsWithSelectedOnTop(options));\n\t}, [options, sortOptionsWithSelectedOnTop]);\n\n\tuseEffect(() => {\n\t\tlocalOptionsRef.current = localOptions;\n\t}, [localOptions]);\n\n\tuseEffect(() => {\n\t\tonOptionsReorderRef.current = onOptionsReorder;\n\t}, [onOptionsReorder]);\n\n\t// Fire onOptionsReorder on unmount (dropdown close from Apply or click-outside)\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (hasReorderedRef.current && onOptionsReorderRef.current) {\n\t\t\t\tonOptionsReorderRef.current(localOptionsRef.current);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\tconst handleOptionsReorder = useCallback(\n\t\t(reorderedOptions: DropdownOption[]) => {\n\t\t\tsetLocalOptions(reorderedOptions);\n\t\t\t// For version 2.0 (no Apply button), apply reorder immediately\n\t\t\tif (version === '2.0') {\n\t\t\t\tonOptionsReorder?.(reorderedOptions);\n\t\t\t} else {\n\t\t\t\t// For version 1.0, defer until Apply/close (handled by unmount cleanup)\n\t\t\t\thasReorderedRef.current = true;\n\t\t\t}\n\t\t},\n\t\t[onOptionsReorder, version],\n\t);\n\n\tconst optionsToUse = isDraggable ? localOptions : options;\n\tconst {\n\t\tdropdownOptions,\n\t\tsearch,\n\t\tsearchedString,\n\t\tsearchedOptions,\n\t\tsearchError,\n\t\tretrySearch,\n\t\tonApplyHandler,\n\t\tselectAllHandler,\n\t\tonMultiSelectClear,\n\t\tonFreeFormSelect,\n\t\tonMultiSelectApply,\n\t\tlatestDropdownOptionsRef,\n\t\tgetSelectedOptions,\n\t\tgetCurrentSelectionCount,\n\t} = useDropdown(\n\t\tversion,\n\t\toptionsToUse,\n\t\tonSelect,\n\t\tskipSorting || isDraggable,\n\t\tisMultiSelect,\n\t\tonSearch,\n\t\tdisableSearchOptions,\n\t\tdisableSearchedOptionExcept,\n\t\tmaxSelections,\n\t);\n\tconst [widthState, setWidthState] = useState(width ?? defaults.width);\n\tconst [descriptionInfo, setDescription] = useState<{\n\t\ttitle: string;\n\t\tdescription: string;\n\t} | null>(null);\n\tconst [focusedIndex, setFocusedIndex] = useState<number>(-1);\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst childRefs = useRef([]);\n\tconst menuListRef = useRef<HTMLDivElement>(null);\n\tuseOutside(\n\t\tref,\n\t\t() => {\n\t\t\tsetDescription(null);\n\t\t\tif (isMultiSelect && version === '2.0') {\n\t\t\t\tconst optionsToSend = getSelectedOptions(\n\t\t\t\t\tlatestDropdownOptionsRef.current,\n\t\t\t\t);\n\t\t\t\tonClose?.(optionsToSend);\n\t\t\t} else {\n\t\t\t\tonClose?.(dropdownOptions);\n\t\t\t}\n\t\t},\n\t\t[headerRef, childRefs],\n\t);\n\n\t// Auto-focus dropdown when it opens for keyboard navigation while preventing scroll to maintain popper positioning\n\tuseEffect(() => {\n\t\tconst timer = setTimeout(() => {\n\t\t\tif (ref.current) {\n\t\t\t\tref.current.focus({ preventScroll: true });\n\t\t\t}\n\t\t}, 0);\n\t\treturn () => clearTimeout(timer);\n\t}, []);\n\n\t// Get flattened selectable options\n\tconst getFlattenedOptions = (opts: DropdownOption[]): SingleOption[] => {\n\t\tconst flattened: SingleOption[] = [];\n\t\topts.forEach((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\tconst groupedOption = option as GroupedOption;\n\t\t\t\tgroupedOption.options.forEach((nestedOption) => {\n\t\t\t\t\tif (!nestedOption.disabled) {\n\t\t\t\t\t\tflattened.push(nestedOption);\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\tflattened.push(singleOption);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn flattened;\n\t};\n\n\t/** Keyboard navigation handler */\n\tuseEffect(() => {\n\t\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t\tconst currentOptions =\n\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions;\n\t\t\tconst flattenedOptions = getFlattenedOptions(currentOptions);\n\n\t\t\tif (flattenedOptions.length === 0) return;\n\n\t\t\tif (e.key === 'ArrowDown') {\n\t\t\t\te.preventDefault();\n\t\t\t\tsetFocusedIndex((prev) => {\n\t\t\t\t\tconst newIndex = prev < flattenedOptions.length - 1 ? prev + 1 : 0;\n\t\t\t\t\t// Scroll to the focused item\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tconst focusedElement = menuListRef.current?.querySelector(\n\t\t\t\t\t\t\t`[data-option-index=\"${newIndex}\"]`,\n\t\t\t\t\t\t) as HTMLElement;\n\t\t\t\t\t\tif (focusedElement) {\n\t\t\t\t\t\t\tfocusedElement.scrollIntoView({\n\t\t\t\t\t\t\t\tblock: 'nearest',\n\t\t\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t\treturn newIndex;\n\t\t\t\t});\n\t\t\t} else if (e.key === 'ArrowUp') {\n\t\t\t\te.preventDefault();\n\t\t\t\tsetFocusedIndex((prev) => {\n\t\t\t\t\tconst newIndex = prev > 0 ? prev - 1 : flattenedOptions.length - 1;\n\t\t\t\t\t// Scroll to the focused item\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tconst focusedElement = menuListRef.current?.querySelector(\n\t\t\t\t\t\t\t`[data-option-index=\"${newIndex}\"]`,\n\t\t\t\t\t\t) as HTMLElement;\n\t\t\t\t\t\tif (focusedElement) {\n\t\t\t\t\t\t\tfocusedElement.scrollIntoView({\n\t\t\t\t\t\t\t\tblock: 'nearest',\n\t\t\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t\treturn newIndex;\n\t\t\t\t});\n\t\t\t} else if (e.key === 'Enter' && focusedIndex >= 0) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst focusedOption = flattenedOptions[focusedIndex];\n\t\t\t\tif (focusedOption) {\n\t\t\t\t\t// onApplyHandler handles the selection state and calls onSelect internally\n\t\t\t\t\tonApplyHandler({\n\t\t\t\t\t\t...focusedOption,\n\t\t\t\t\t\tselected: !focusedOption.selected,\n\t\t\t\t\t});\n\t\t\t\t\t// Also trigger onDropdownItemClick if provided\n\t\t\t\t\tif (onDropdownItemClick) {\n\t\t\t\t\t\tonDropdownItemClick(focusedOption);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst dropdownElement = ref.current;\n\t\tif (dropdownElement) {\n\t\t\tdropdownElement.addEventListener('keydown', handleKeyDown);\n\t\t\treturn () => {\n\t\t\t\tdropdownElement.removeEventListener('keydown', handleKeyDown);\n\t\t\t};\n\t\t}\n\t}, [\n\t\tfocusedIndex,\n\t\tsearchedString,\n\t\tsearchedOptions,\n\t\tdropdownOptions,\n\t\tonSearch,\n\t\tonApplyHandler,\n\t\tonDropdownItemClick,\n\t]);\n\n\t// LOCAL CONSTANTS\n\tconst heightToUse = height ?? defaults.height;\n\tconst menuListMaxHeight =\n\t\ttypeof heightToUse === 'number'\n\t\t\t? isSearchable && isMultiSelect\n\t\t\t\t? heightToUse - 96\n\t\t\t\t: (isSearchable && !isMultiSelect) || (!isSearchable && isMultiSelect)\n\t\t\t\t? heightToUse - 48\n\t\t\t\t: heightToUse\n\t\t\t: heightToUse;\n\n\tfunction showDescription(title?: string, description?: string) {\n\t\tif (title && description) {\n\t\t\tsetDescription({\n\t\t\t\ttitle,\n\t\t\t\tdescription,\n\t\t\t});\n\t\t} else {\n\t\t\tsetDescription(null);\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tconst widthToUse = width ?? defaults.width;\n\t\tif (descriptionInfo === null) {\n\t\t\tsetWidthState(widthToUse);\n\t\t} else if (typeof widthToUse === 'number') {\n\t\t\tsetWidthState(widthToUse * 2);\n\t\t} else if (typeof widthToUse === 'string') {\n\t\t\tif (widthToUse.endsWith('px')) {\n\t\t\t\tconst newWidth = parseInt(widthToUse.replace('px', '')) * 2;\n\t\t\t\tsetWidthState(newWidth);\n\t\t\t}\n\t\t}\n\t}, [descriptionInfo]);\n\n\t/**\n\t * This is to show the search result in a stateless way\n\t */\n\n\tconst exactMatchFound: boolean[] = [];\n\n\tconst processOptionsWithMaxSelections = (\n\t\toptionsToProcess: DropdownOption[],\n\t) => {\n\t\tif (!isMultiSelect || (!maxSelections && maxSelections !== 0)) {\n\t\t\treturn optionsToProcess;\n\t\t}\n\n\t\t// Count from the full options list (not the filtered subset) so selections\n\t\t// hidden by a search query are still included in the limit check.\n\t\tconst currentSelectionCount = getCurrentSelectionCount(dropdownOptions);\n\t\tconst maxSelectionsReached = currentSelectionCount >= maxSelections;\n\n\t\tif (!maxSelectionsReached) {\n\t\t\treturn optionsToProcess;\n\t\t}\n\n\t\t// Disable unselected options when max selections is reached\n\t\treturn optionsToProcess.map((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\treturn {\n\t\t\t\t\t...option,\n\t\t\t\t\toptions: (option as GroupedOption).options.map((nestedOption) => ({\n\t\t\t\t\t\t...nestedOption,\n\t\t\t\t\t\tdisabled:\n\t\t\t\t\t\t\tnestedOption.disabled ||\n\t\t\t\t\t\t\t(!nestedOption.selected && maxSelectionsReached),\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\treturn {\n\t\t\t\t\t...singleOption,\n\t\t\t\t\tdisabled:\n\t\t\t\t\t\tsingleOption.disabled ||\n\t\t\t\t\t\t(!singleOption.selected && maxSelectionsReached),\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t};\n\n\tconst optionsToShow = processOptionsWithMaxSelections(\n\t\t(searchedString && onSearch ? searchedOptions : dropdownOptions)\n\t\t\t.map((option) => {\n\t\t\t\tif (searchedString && !onSearch) {\n\t\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t\tconst groupedOption = { ...option } as GroupedOption;\n\t\t\t\t\t\tgroupedOption.options = groupedOption.options.filter((op) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\top.label?.toLowerCase().includes(searchedString.toLowerCase())\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\texactMatchFound.push(\n\t\t\t\t\t\t\t\t\t!searchedString || op.label === searchedString,\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn groupedOption.options.length > 0 ? groupedOption : null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toption.label\n\t\t\t\t\t\t\t\t?.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(searchedString.toLowerCase()) ||\n\t\t\t\t\t\t\t(option as SingleOption | MultiSelectOption).searchKey\n\t\t\t\t\t\t\t\t?.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(searchedString.toLowerCase())\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\texactMatchFound.push(\n\t\t\t\t\t\t\t\t!searchedString || option.label === searchedString,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn option;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn option;\n\t\t\t})\n\t\t\t.filter((option) => option !== null) as DropdownOption[],\n\t);\n\n\tconst noResultForSearch =\n\t\t!!isSearchable && searchedString && optionsToShow.length === 0;\n\tconst showLoadingState = !searchedString && !!isOptionsLoading;\n\tconst showErrorState =\n\t\t!searchedString && !!optionsErrorState && !showLoadingState;\n\tconst showEmptyState =\n\t\t!searchedString &&\n\t\t!optionsToShow.length &&\n\t\t!showLoadingState &&\n\t\t!showErrorState;\n\tconst showTopLevelZeroState =\n\t\tshowLoadingState || showErrorState || showEmptyState;\n\n\tconst emptyStateTitle = zeroState?.title || 'No results found';\n\tconst emptyStateSubTitle =\n\t\tzeroState?.subTitle ||\n\t\t`Please try again later or contact us at support@bik.ai if you require further assistance.`;\n\tconst errorStateTitle = optionsErrorState?.title || 'Failed to load options';\n\tconst errorStateSubTitle =\n\t\toptionsErrorState?.subTitle ||\n\t\t'Something went wrong while fetching the list. Please try again';\n\tconst defaultErrorActionButton = {\n\t\tbuttonText: 'Try again',\n\t\tbuttonType: 'text' as const,\n\t\tsize: 'small' as const,\n\t\tbuttonTextColor: COLORS.background.inverseLight,\n\t\tcustomIconColor: COLORS.background.inverseLight,\n\t\tLeadingIcon: RetryIcon,\n\t};\n\n\tconst mergedErrorState = {\n\t\tIconHolderStyle: {\n\t\t\tbackground: COLORS.background.negative.light,\n\t\t},\n\t\tIcon: (\n\t\t\t<ErrorInfoIcon color={COLORS.content.negative} width={24} height={24} />\n\t\t),\n\t\t...optionsErrorState,\n\t};\n\tmergedErrorState.actionButton = {\n\t\t...defaultErrorActionButton,\n\t\t...(optionsErrorState?.actionButton ?? {}),\n\t};\n\tconst zeroStateProps = showLoadingState\n\t\t? undefined\n\t\t: showErrorState\n\t\t? mergedErrorState\n\t\t: zeroState;\n\n\treturn (\n\t\t<OpennedDropdownContainer\n\t\t\tversion={version}\n\t\t\tref={ref}\n\t\t\ttabIndex={-1}\n\t\t\tstyle={{\n\t\t\t\t// maxWidth: descriptionInfo ? 800 : 400,\n\t\t\t\twidth: widthState,\n\t\t\t\t...containerStyle,\n\t\t\t\toutline: 'none',\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: descriptionInfo ? '50%' : '100%',\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tbackground: 'white',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{!!isSearchable && <SearchBox onSearch={search} version={version} />}\n\n\t\t\t\t{showTopLevelZeroState ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: heightToUse,\n\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\tbackground: COLORS.background.base,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ZeroState\n\t\t\t\t\t\t\t{...(zeroStateProps ?? {})}\n\t\t\t\t\t\t\tisLoading={showLoadingState}\n\t\t\t\t\t\t\ttitle={showErrorState ? errorStateTitle : emptyStateTitle}\n\t\t\t\t\t\t\tsubTitle={\n\t\t\t\t\t\t\t\tshowErrorState ? errorStateSubTitle : emptyStateSubTitle\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<MenuListContainer\n\t\t\t\t\t\tminHeight={heightToUse}\n\t\t\t\t\t\tmaxHeight={menuListMaxHeight}\n\t\t\t\t\t\tref={menuListRef}\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!isMultiSelect && !noResultForSearch && !hideSelectAll && (\n\t\t\t\t\t\t\t<SelectAllMenu\n\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\toptions={\n\t\t\t\t\t\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonSelect={selectAllHandler}\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/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{!allowFreeForm && noResultForSearch && (\n\t\t\t\t\t\t\t<SearchZeroState\n\t\t\t\t\t\t\t\tisLoading={isSearchLoading}\n\t\t\t\t\t\t\t\terrorMessage={searchError}\n\t\t\t\t\t\t\t\tonRetry={retrySearch}\n\t\t\t\t\t\t\t\theight={menuListMaxHeight as number}\n\t\t\t\t\t\t\t\tsearchedString={searchedString}\n\t\t\t\t\t\t\t\tcontainerWidth={width}\n\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{allowFreeForm &&\n\t\t\t\t\t\t\t(noResultForSearch ||\n\t\t\t\t\t\t\t\t(!!exactMatchFound.length &&\n\t\t\t\t\t\t\t\t\texactMatchFound.every((val) => val === false))) && (\n\t\t\t\t\t\t\t\t<FreeFormMenu\n\t\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\t\t\tonSelect={onFreeFormSelect}\n\t\t\t\t\t\t\t\t\tsearchedString={searchedString}\n\t\t\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<MenuList\n\t\t\t\t\t\t\tonInfiniteScroll={onInfiniteScroll}\n\t\t\t\t\t\t\tonDropdownItemClick={onDropdownItemClick}\n\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\tonSelect={onApplyHandler}\n\t\t\t\t\t\t\tshowDescription={showDescription}\n\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\toptions={optionsToShow}\n\t\t\t\t\t\t\tuseDefaultCursor={useDefaultCursor}\n\t\t\t\t\t\t\tref={childRefs}\n\t\t\t\t\t\t\tfocusedIndex={focusedIndex}\n\t\t\t\t\t\t\tisDraggable={isDraggable}\n\t\t\t\t\t\t\tonOptionsReorder={handleOptionsReorder}\n\t\t\t\t\t\t\tshowCheckboxForCustomElement={showCheckboxForCustomElement}\n\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuListContainer>\n\t\t\t\t)}\n\t\t\t\t{!!isMultiSelect && !showTopLevelZeroState && version !== '2.0' && (\n\t\t\t\t\t<MultiSelectDropdownBottomBar\n\t\t\t\t\t\tonClear={() => {\n\t\t\t\t\t\t\tonMultiSelectClear();\n\t\t\t\t\t\t\tonMultiSelectClearProp?.();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonApply={onMultiSelectApply}\n\t\t\t\t\t\tlist={\n\t\t\t\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbuttonText={primaryButtonText}\n\t\t\t\t\t\tbuttonOptions={buttonOptions}\n\t\t\t\t\t\thideClearButton={hideClearButton}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!descriptionInfo && (\n\t\t\t\t<Description\n\t\t\t\t\ttitle={descriptionInfo.title}\n\t\t\t\t\tdescription={descriptionInfo.description}\n\t\t\t\t\tversion={version}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</OpennedDropdownContainer>\n\t);\n};\n"],"names":["defaults","OpenedDropdown","_ref","options","isSearchable","isMultiSelect","maxSelections","width","allowFreeForm","height","onClose","onSelect","onSearch","version","skipSorting","headerRef","hideSelectAll","primaryButtonText","onInfiniteScroll","onMultiSelectClear","onMultiSelectClearProp","onDropdownItemClick","buttonOptions","isSearchLoading","isOptionsLoading","optionsErrorState","disableSearchOptions","disableSearchedOptionExcept","useDefaultCursor","containerStyle","zeroState","isDraggable","onOptionsReorder","hideClearButton","showCheckboxForCustomElement","checkboxActiveColor","brandSelectedRow","sortOptionsWithSelectedOnTop","useCallback","opts","selected","unselected","forEach","option","push","localOptions","setLocalOptions","useState","localOptionsRef","useRef","hasReorderedRef","onOptionsReorderRef","useEffect","current","handleOptionsReorder","reorderedOptions","optionsToUse","dropdownOptions","search","searchedString","searchedOptions","searchError","retrySearch","onApplyHandler","selectAllHandler","onFreeFormSelect","onMultiSelectApply","latestDropdownOptionsRef","getSelectedOptions","getCurrentSelectionCount","useDropdown","widthState","setWidthState","descriptionInfo","setDescription","focusedIndex","setFocusedIndex","ref","childRefs","menuListRef","useOutside","optionsToSend","timer","setTimeout","focus","preventScroll","clearTimeout","handleKeyDown","e","flattenedOptions","flattened","nestedOption","disabled","singleOption","getFlattenedOptions","length","key","preventDefault","prev","newIndex","focusedElement","_a","querySelector","scrollIntoView","block","behavior","focusedOption","Object","assign","dropdownElement","addEventListener","removeEventListener","heightToUse","menuListMaxHeight","widthToUse","endsWith","newWidth","parseInt","replace","exactMatchFound","optionsToShow","optionsToProcess","maxSelectionsReached","map","processOptionsWithMaxSelections","groupedOption","filter","op","label","toLowerCase","includes","_b","searchKey","noResultForSearch","showLoadingState","showErrorState","showEmptyState","showTopLevelZeroState","emptyStateTitle","title","emptyStateSubTitle","subTitle","errorStateTitle","errorStateSubTitle","defaultErrorActionButton","buttonText","buttonType","size","buttonTextColor","COLORS","background","inverseLight","customIconColor","LeadingIcon","RetryIcon","mergedErrorState","IconHolderStyle","negative","light","Icon","_jsx","ErrorInfoIcon","color","content","actionButton","zeroStateProps","undefined","_jsxs","OpennedDropdownContainer","tabIndex","style","outline","children","display","flexDirection","SearchBox","base","ZeroState","isLoading","MenuListContainer","minHeight","maxHeight","SelectAllMenu","SearchZeroState","errorMessage","onRetry","containerWidth","every","val","FreeFormMenu","MenuList","showDescription","description","MultiSelectDropdownBottomBar","onClear","onApply","list","Description"],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import o from"styled-components";import{COLORS as r}from"../../../../constants/Theme.js";const e=o.div`
|
|
2
2
|
border-radius: ${o=>"2.0"===o.version?8:4}px;
|
|
3
|
-
border: ${o=>"2.0"===o.version?0:1}px
|
|
4
|
-
${r.stroke.primary};
|
|
3
|
+
border: ${o=>"2.0"===o.version||"3.0"===o.version?0:1}px
|
|
4
|
+
solid ${r.stroke.primary};
|
|
5
|
+
box-shadow: ${o=>"3.0"===o.version?"0px 2px 8px 0px rgba(0, 0, 0, 0.12)":"none"};
|
|
5
6
|
max-height: 480px;
|
|
6
7
|
overflow: hidden;
|
|
7
8
|
display: flex;
|
package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpennedDropdown.styled.js","sources":["../../../../../../src/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { COLORS } from '@src/constants/Theme';\n\nexport const OpennedDropdownContainer = styled.div<{
|
|
1
|
+
{"version":3,"file":"OpennedDropdown.styled.js","sources":["../../../../../../src/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { COLORS } from '@src/constants/Theme';\n\nexport const OpennedDropdownContainer = styled.div<{\n\tversion?: '1.0' | '2.0' | '3.0';\n}>`\n\tborder-radius: ${(props) => (props.version === '2.0' ? 8 : 4)}px;\n\tborder: ${(props) =>\n\t\t\tprops.version === '2.0' || props.version === '3.0' ? 0 : 1}px\n\t\tsolid ${COLORS.stroke.primary};\n\tbox-shadow: ${(props) =>\n\t\tprops.version === '3.0' ? '0px 2px 8px 0px rgba(0, 0, 0, 0.12)' : 'none'};\n\tmax-height: 480px;\n\toverflow: hidden;\n\tdisplay: flex;\n\tflex-direction: row;\n\tposition: relative;\n\tpadding: ${(props) => (props.version === '2.0' ? 4 : 0)}px;\n\tbackground-color: ${COLORS.surface.standard};\n`;\n\nexport const ItemContainer = styled.div`\n\tpadding: 14px 16px 14px 18px;\n\tflex-direction: row;\n\talign-items: center;\n\tborder-bottom-width: 1px;\n\tborder-bottom-style: solid;\n\tborder-bottom-color: ${COLORS.stroke.primary};\n\twidth: 100%;\n\theight: 100%;\n`;\n\nexport const MenuListContainer = styled.div<{\n\tmaxHeight: number | string;\n\tminHeight: number | string;\n}>`\n\tmax-height: ${(props) =>\n\t\ttypeof props.maxHeight === 'number'\n\t\t\t? `${props.maxHeight}px`\n\t\t\t: props.maxHeight};\n\toverflow-y: auto;\n\tposition: relative;\n\t&::-webkit-scrollbar-thumb {\n\t\tbackground: #e0e0e0;\n\t\tborder-radius: 8px;\n\t}\n\t&::-webkit-scrollbar {\n\t\theight: 5px;\n\t\tdisplay: block;\n\t\twidth: 8px;\n\t}\n\t&::-webkit-scrollbar-thumb:horizontal {\n\t\twidth: 8px;\n\t}\n`;\n"],"names":["OpennedDropdownContainer","styled","div","props","version","COLORS","stroke","primary","surface","standard","MenuListContainer","maxHeight"],"mappings":"yFAGaA,MAAAA,EAA2BC,EAAOC,GAE7C;kBACiBC,GAA6B,QAAlBA,EAAMC,QAAoB,EAAI;WAChDD,GACS,QAAlBA,EAAMC,SAAuC,QAAlBD,EAAMC,QAAoB,EAAI;UAClDC,EAAOC,OAAOC;eACRJ,GACI,QAAlBA,EAAMC,QAAoB,sCAAwC;;;;;;YAMvDD,GAA6B,QAAlBA,EAAMC,QAAoB,EAAI;qBACjCC,EAAOG,QAAQC;EAGPR,EAAOC,GAAG;;;;;;wBAMfG,EAAOC,OAAOC;;;EAKzBG,MAAAA,EAAoBT,EAAOC,GAGtC;eACcC,GACa,iBAApBA,EAAMQ,UACV,GAAGR,EAAMQ,cACTR,EAAMQ;;;;;;;;;;;;;;;"}
|
package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Description.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/description/Description.tsx"],"sourcesContent":["import React from 'react';\nimport { BodySecondary, TitleRegular } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { DescriptionContainer } from './Description.styled';\n\nexport const Description: React.FC<{\n\ttitle: string;\n\tdescription: string;\n\tversion?: '1.0' | '2.0';\n}> = ({ title, description, version }) => {\n\treturn (\n\t\t<DescriptionContainer version={version}>\n\t\t\t<div style={{ padding: version === '2.0' ? 12 : 24 }}>\n\t\t\t\t<TitleRegular\n\t\t\t\t\tstyle={{ color: COLORS.content.primary, marginBottom: 4 }}\n\t\t\t\t>\n\t\t\t\t\t{title}\n\t\t\t\t</TitleRegular>\n\t\t\t\t<BodySecondary style={{ color: COLORS.content.secondary }}>\n\t\t\t\t\t{description}\n\t\t\t\t</BodySecondary>\n\t\t\t</div>\n\t\t</DescriptionContainer>\n\t);\n};\n"],"names":["Description","_ref","title","description","version","_jsx","DescriptionContainer","Object","assign","children","_jsxs","style","padding","TitleRegular","color","COLORS","content","primary","marginBottom","BodySecondary","secondary"],"mappings":"6PAKaA,MAAAA,EAIRC,IAAoC,IAAnCC,MAAEA,EAAKC,YAAEA,EAAWC,QAAEA,GAASH,EACpC,OACCI,EAACC,EAAoBC,OAAAC,OAAA,CAACJ,QAASA,GAC9B,CAAAK,SAAAC,EAAA,MAAAH,OAAAC,OAAA,CAAKG,MAAO,CAAEC,QAAqB,QAAZR,EAAoB,GAAK,KAAI,CAAAK,SAAA,CACnDJ,EAACQ,EACAN,OAAAC,OAAA,CAAAG,MAAO,CAAEG,MAAOC,EAAOC,QAAQC,QAASC,aAAc,IAErD,CAAAT,SAAAP,KAEFG,EAACc,EAAaZ,OAAAC,OAAA,CAACG,MAAO,CAAEG,MAAOC,EAAOC,QAAQI,sBAC5CjB,WAGmB"}
|
|
1
|
+
{"version":3,"file":"Description.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/description/Description.tsx"],"sourcesContent":["import React from 'react';\nimport { BodySecondary, TitleRegular } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { DescriptionContainer } from './Description.styled';\n\nexport const Description: React.FC<{\n\ttitle: string;\n\tdescription: string;\n\tversion?: '1.0' | '2.0' | '3.0';\n}> = ({ title, description, version }) => {\n\treturn (\n\t\t<DescriptionContainer version={version}>\n\t\t\t<div style={{ padding: version === '2.0' ? 12 : 24 }}>\n\t\t\t\t<TitleRegular\n\t\t\t\t\tstyle={{ color: COLORS.content.primary, marginBottom: 4 }}\n\t\t\t\t>\n\t\t\t\t\t{title}\n\t\t\t\t</TitleRegular>\n\t\t\t\t<BodySecondary style={{ color: COLORS.content.secondary }}>\n\t\t\t\t\t{description}\n\t\t\t\t</BodySecondary>\n\t\t\t</div>\n\t\t</DescriptionContainer>\n\t);\n};\n"],"names":["Description","_ref","title","description","version","_jsx","DescriptionContainer","Object","assign","children","_jsxs","style","padding","TitleRegular","color","COLORS","content","primary","marginBottom","BodySecondary","secondary"],"mappings":"6PAKaA,MAAAA,EAIRC,IAAoC,IAAnCC,MAAEA,EAAKC,YAAEA,EAAWC,QAAEA,GAASH,EACpC,OACCI,EAACC,EAAoBC,OAAAC,OAAA,CAACJ,QAASA,GAC9B,CAAAK,SAAAC,EAAA,MAAAH,OAAAC,OAAA,CAAKG,MAAO,CAAEC,QAAqB,QAAZR,EAAoB,GAAK,KAAI,CAAAK,SAAA,CACnDJ,EAACQ,EACAN,OAAAC,OAAA,CAAAG,MAAO,CAAEG,MAAOC,EAAOC,QAAQC,QAASC,aAAc,IAErD,CAAAT,SAAAP,KAEFG,EAACc,EAAaZ,OAAAC,OAAA,CAACG,MAAO,CAAEG,MAAOC,EAAOC,QAAQI,sBAC5CjB,WAGmB"}
|
package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.styled.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Description.styled.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/description/Description.styled.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { COLORS } from '@src/constants/Theme';\n\nexport const DescriptionContainer = styled.div<{
|
|
1
|
+
{"version":3,"file":"Description.styled.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/description/Description.styled.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { COLORS } from '@src/constants/Theme';\n\nexport const DescriptionContainer = styled.div<{\n\tversion?: '1.0' | '2.0' | '3.0';\n}>`\n\tbackground: ${COLORS.surface.standard};\n\tborder-left: ${(props) => (props.version === '2.0' ? 0.5 : 1)}px solid\n\t\t${COLORS.stroke.primary};\n\twidth: 50%;\n`;\n"],"names":["DescriptionContainer","styled","div","COLORS","surface","standard","props","version","stroke","primary"],"mappings":"4FAGaA,MAAAA,EAAuBC,EAAOC,GAEzC;eACaC,EAAOC,QAAQC;gBACbC,GAA6B,QAAlBA,EAAMC,QAAoB,GAAM;IACxDJ,EAAOK,OAAOC;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,Fragment as
|
|
1
|
+
import{jsx as e,Fragment as o}from"react/jsx-runtime";import{useState as t}from"react";import{CheckBox as r}from"../../../../checkBox/CheckBox.js";import{ListItem as i}from"../../../../list-item/ListItem.js";import{BodyCaption as n}from"../../../../TypographyStyle.js";import{COLORS as c}from"../../../../../constants/Theme.js";import{FreeFormContainer as l}from"./FreeFormMenu.styled.js";const s=s=>{let{searchedString:m,onSelect:a,isMultiSelect:d,version:p,checkboxActiveColor:f,brandSelectedRow:h}=s;const[u,j]=t(!1);function S(){j(!u),a(!u)}return e(i,{version:p,brandSelectedRow:h,onClick:e=>{e.preventDefault(),S()},listItem:{label:m,value:m},leadingIcon:d?e(r,{size:"2.0"===p?"SMALL":"DEFAULT",isChecked:u,onValueChange:S,activeColor:f}):e(o,{}),trailingIcon:e(l,{children:e(n,Object.assign({style:{color:c.content.secondary}},{children:"Freeform"}))})})};export{s as FreeFormMenu};
|
|
2
2
|
//# sourceMappingURL=FreeFormMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FreeFormMenu.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { CheckBox } from '@src/components/checkBox';\nimport { ListItem } from '@src/components/list-item';\nimport { BodyCaption } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { FreeFormContainer } from './FreeFormMenu.styled';\n\nexport const FreeFormMenu: React.FC<{\n\tisMultiSelect?: boolean;\n\tsearchedString: string;\n\tonSelect: (isChecked: boolean) => void;\n\tversion?: '1.0' | '2.0';\n}> = ({
|
|
1
|
+
{"version":3,"file":"FreeFormMenu.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { CheckBox } from '@src/components/checkBox';\nimport { ListItem } from '@src/components/list-item';\nimport { BodyCaption } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport { FreeFormContainer } from './FreeFormMenu.styled';\n\nexport const FreeFormMenu: React.FC<{\n\tisMultiSelect?: boolean;\n\tsearchedString: string;\n\tonSelect: (isChecked: boolean) => void;\n\tversion?: '1.0' | '2.0' | '3.0';\n\tcheckboxActiveColor?: string;\n\tbrandSelectedRow?: boolean;\n}> = ({\n\tsearchedString,\n\tonSelect,\n\tisMultiSelect,\n\tversion,\n\tcheckboxActiveColor,\n\tbrandSelectedRow,\n}) => {\n\tconst [isChecked, setChecked] = useState(false);\n\tfunction onCheckHandler() {\n\t\tsetChecked(!isChecked);\n\t\tonSelect(!isChecked);\n\t}\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: searchedString,\n\t\t\t\tvalue: searchedString,\n\t\t\t}}\n\t\t\tleadingIcon={\n\t\t\t\tisMultiSelect ? (\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={isChecked}\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) : (\n\t\t\t\t\t<></>\n\t\t\t\t)\n\t\t\t}\n\t\t\ttrailingIcon={\n\t\t\t\t<FreeFormContainer>\n\t\t\t\t\t<BodyCaption\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tcolor: COLORS.content.secondary,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tFreeform\n\t\t\t\t\t</BodyCaption>\n\t\t\t\t</FreeFormContainer>\n\t\t\t}\n\t\t/>\n\t);\n};\n"],"names":["FreeFormMenu","_ref","searchedString","onSelect","isMultiSelect","version","checkboxActiveColor","brandSelectedRow","isChecked","setChecked","useState","onCheckHandler","_jsx","ListItem","onClick","e","preventDefault","listItem","label","value","leadingIcon","CheckBox","size","onValueChange","activeColor","_Fragment","trailingIcon","FreeFormContainer","children","BodyCaption","Object","assign","style","color","COLORS","content","secondary"],"mappings":"qYAOaA,MAAAA,EAORC,IAOA,IAPCC,eACLA,EAAcC,SACdA,EAAQC,cACRA,EAAaC,QACbA,EAAOC,oBACPA,EAAmBC,iBACnBA,GACAN,EACA,MAAOO,EAAWC,GAAcC,GAAS,GACzC,SAASC,IACRF,GAAYD,GACZL,GAAUK,EACX,CAEA,OACCI,EAACC,EACA,CAAAR,QAASA,EACTE,iBAAkBA,EAClBO,QAAUC,IACTA,EAAEC,iBACFL,GAAgB,EAEjBM,SAAU,CACTC,MAAOhB,EACPiB,MAAOjB,GAERkB,YACChB,EACCQ,EAACS,EAAQ,CACRC,KAAkB,QAAZjB,EAAoB,QAAU,UACpCG,UAAWA,EACXe,cAAeZ,EACfa,YAAalB,IAGdM,EAAKa,EAAA,IAGPC,aACCd,EAACe,EAAiB,CAAAC,SACjBhB,EAACiB,EACAC,OAAAC,OAAA,CAAAC,MAAO,CACNC,MAAOC,EAAOC,QAAQC,YAIV,CAAAR,SAAA,iBAGf"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{jsx as e,Fragment as o,jsxs as n}from"react/jsx-runtime";import t from"../../../../../assets/icons/chevronRight.svg.js";import{forwardRef as r,useState as i}from"react";import
|
|
2
|
-
padding: ${e=>"2.0"===e.version?"8px 12px":"14px 16px"} !important;
|
|
1
|
+
import{jsx as e,Fragment as o,jsxs as n}from"react/jsx-runtime";import t from"../../../../../assets/icons/chevronRight.svg.js";import{forwardRef as r,useState as i}from"react";import l from"styled-components";import{CheckBox as a}from"../../../../checkBox/CheckBox.js";import{ListItem as s}from"../../../../list-item/ListItem.js";import{Tooltip as d}from"../../../../tooltips/Tooltip.js";import{BodyCaption as c}from"../../../../TypographyStyle.js";import{DEFAULT_THEME as p,COLORS as g}from"../../../../../constants/Theme.js";import{FreeFormContainer as m}from"./FreeFormMenu.styled.js";const u=l(s)`
|
|
2
|
+
padding: ${e=>"3.0"===e.version?"8px":"2.0"===e.version?"8px 12px":"14px 16px"} !important;
|
|
3
3
|
cursor: pointer;
|
|
4
|
-
margin-top: ${e=>"2.0"===e.version?"2px":"0"};
|
|
5
|
-
`,h=
|
|
4
|
+
margin-top: ${e=>e.brandSelectedRow?"0":"2.0"===e.version?"2px":"0"};
|
|
5
|
+
`,h=l.div`
|
|
6
6
|
box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.12);
|
|
7
7
|
border-radius: ${e=>{let{version:o}=e;return"1.0"===o?"0":"8px"}};
|
|
8
8
|
padding: ${e=>{let{version:o}=e;return"1.0"===o?"0":"4px"}};
|
|
@@ -10,7 +10,7 @@ import{jsx as e,Fragment as o,jsxs as n}from"react/jsx-runtime";import t from"..
|
|
|
10
10
|
border: ${e=>{let{version:o}=e;return"1.0"===o?`1px solid ${p.colorsV2.stroke.primary}`:"none"}};
|
|
11
11
|
max-height: 248px;
|
|
12
12
|
overflow-y: auto;
|
|
13
|
-
`,v=
|
|
13
|
+
`,v=l.div`
|
|
14
14
|
display: grid;
|
|
15
15
|
grid-template-columns: repeat(2, 2.86px);
|
|
16
16
|
grid-template-rows: repeat(3, 2.86px);
|
|
@@ -22,23 +22,23 @@ import{jsx as e,Fragment as o,jsxs as n}from"react/jsx-runtime";import t from"..
|
|
|
22
22
|
align-self: center;
|
|
23
23
|
height: fit-content;
|
|
24
24
|
min-height: 18px;
|
|
25
|
-
`,b=
|
|
25
|
+
`,b=l.div`
|
|
26
26
|
width: 2.86px;
|
|
27
27
|
height: 2.86px;
|
|
28
28
|
border-radius: 50%;
|
|
29
29
|
background-color: ${g.content.inactive};
|
|
30
30
|
flex-shrink: 0;
|
|
31
|
-
`,x=
|
|
31
|
+
`,x=l.div`
|
|
32
32
|
display: flex;
|
|
33
33
|
align-content: center;
|
|
34
34
|
justify-content: center;
|
|
35
35
|
gap: 8px;
|
|
36
|
-
`,f=
|
|
36
|
+
`,f=l.div`
|
|
37
37
|
margin-right: -4px;
|
|
38
|
-
`,D=
|
|
38
|
+
`,D=l.div`
|
|
39
39
|
display: flex;
|
|
40
40
|
align-items: center;
|
|
41
41
|
flex-direction: column;
|
|
42
42
|
flex: 1;
|
|
43
|
-
`,
|
|
43
|
+
`,C=o=>{let{onDragStart:t,onDragEnd:r}=o;return n(v,Object.assign({draggable:!0,onDragStart:t,onDragEnd:r},{children:[e(b,{}),e(b,{}),e(b,{}),e(b,{}),e(b,{}),e(b,{})]}))},j=r(((r,l)=>{let{option:s,isMultiSelect:v,showDescription:b,onSelect:j,last:y,version:I,onDropdownItemClick:O,useDefaultCursor:w,isFocused:S=!1,dataIndex:k=-1,isDraggable:T=!1,onDragStart:E,onDragOver:$,onDrop:F,onDragEnd:L,isDraggedOver:M=!1,showCheckboxForCustomElement:A=!1,checkboxActiveColor:R,brandSelectedRow:B}=r;var V,z;const[U,q]=i(s.selected),G=(e,o)=>{if(!e.children){H(!e.selected);const n=o?Object.assign(Object.assign({},e),{parent:o}):e;null==O||O(n)}},H=e=>{s.disabled||j(Object.assign(Object.assign({},s),{selected:e}))},J=w?{cursor:"default"}:{};return e(o,{children:e(d,Object.assign({body:"",tooltipContent:s.children?e("div",Object.assign({style:{backgroundColor:p.colorsV2.surface.standard},ref:l,onMouseEnter:()=>q(!0),onMouseLeave:()=>q(!1)},{children:e(h,Object.assign({version:null!=I?I:"2.0"},{children:s.children.map((o=>{var n;return e(u,{version:I,brandSelectedRow:B,style:"1.0"!==I&&(null!==(n=null==s?void 0:s.children)&&void 0!==n?n:[]).length-1?{borderBottom:0}:{},onClick:e=>{e.preventDefault(),G(o,s)},listItem:{value:o.value,label:o.label},subText:o.subText,leadingIcon:o.leadingIcon||void 0,customComponent:o.customComponent,trailingIcon:o.trailingIcon||void 0,variant:s.disabled?"inactive":o.selected?"selected":"default"},o.value)}))}))})):e(o,{}),placement:"right-start",hideArrow:!0},{children:e(u,{version:I,brandSelectedRow:B,style:y?Object.assign(Object.assign({borderBottom:0},J),M?{borderTop:`2px solid ${g.content.brand}`,opacity:.5}:{}):Object.assign(Object.assign({},J),M?{borderTop:`2px solid ${g.content.brand}`,opacity:.5}:{}),onClick:e=>{e.preventDefault(),G(s)},onMouseOver:()=>{s.description?b(s.label,s.description):b()},listItem:{value:s.value,label:s.label},subText:s.subText,"data-option-index":k,role:"option",id:`dropdown-option-${k}`,"aria-selected":!!s.selected,onDragOver:T?$:void 0,onDrop:T?F:void 0,leadingIcon:!v||A&&s.customComponent?T?n(D,{children:[e(C,{onDragStart:E,onDragEnd:L}),s.leadingIcon&&e("div",{children:s.leadingIcon})]}):s.leadingIcon?e(o,{children:s.leadingIcon}):void 0:n(x,{children:[T&&e(C,{onDragStart:E,onDragEnd:L}),e(a,{size:"2.0"===I?"SMALL":"DEFAULT",isDisabled:null!==(V=s.disabled)&&void 0!==V&&V,isChecked:!!s.selected,onValueChange:H,activeColor:R}),e(f,{children:s.leadingIcon})]}),customComponent:v&&A&&s.customComponent?n(x,{children:[T&&e(C,{onDragStart:E,onDragEnd:L}),e(a,{size:"2.0"===I?"SMALL":"DEFAULT",isDisabled:null!==(z=s.disabled)&&void 0!==z&&z,isChecked:!!s.selected,onValueChange:H,activeColor:R}),s.customComponent]}):s.customComponent,trailingIcon:s.isFreeForm?e(m,{children:e(c,Object.assign({style:{color:g.content.secondary}},{children:"Freeform"}))}):s.children?e(t,{width:12,height:12}):s.trailingIcon?e(o,{children:s.trailingIcon}):void 0,variant:s.disabled?"inactive":S||s.selected||!v&&U?"selected":"default"})}))})}));export{j as MenuItem};
|
|
44
44
|
//# sourceMappingURL=MenuItem.js.map
|
|
@@ -1 +1 @@
|
|
|
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)<{ version?: '1.0' | '2.0' }>`\n\tpadding: ${(props) =>\n\t\tprops.version === '2.0' ? '8px 12px' : '14px 16px'} !important;\n\tcursor: pointer;\n\tmargin-top: ${(props) => (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';\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}\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},\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\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\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/>\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/>\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: isFocused ||\n\t\t\t\t\t\t\t\t option.selected ||\n\t\t\t\t\t\t\t\t (!isMultiSelect && isChildOptionHovered)\n\t\t\t\t\t\t\t\t? 'selected'\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","version","StyledChildDropdownContainer","div","_ref","_ref2","_ref3","DEFAULT_THEME","colorsV2","stroke","primary","DragHandleContainer","DragDot","COLORS","content","inactive","MultiSelectLeadingContainer","LeadingIconWrapper","SingleSelectDragContainer","DragHandleIcon","_ref4","onDragStart","onDragEnd","_jsxs","Object","assign","draggable","children","_jsx","MenuItem","forwardRef","_ref5","childRef","option","isMultiSelect","showDescription","onSelect","last","onDropdownItemClick","useDefaultCursor","isFocused","dataIndex","isDraggable","onDragOver","onDrop","isDraggedOver","showCheckboxForCustomElement","isChildOptionHovered","setIsChildOptionHovered","useState","selected","handleOptionClick","parent","onCheckHandler","updatedOption","checked","disabled","cursorConfig","cursor","Tooltip","body","tooltipContent","style","backgroundColor","surface","standard","ref","onMouseEnter","onMouseLeave","map","child","_a","length","borderBottom","onClick","e","preventDefault","listItem","value","label","subText","leadingIcon","undefined","customComponent","trailingIcon","variant","_Fragment","placement","hideArrow","borderTop","brand","opacity","onMouseOver","onHoverIn","description","role","id","CheckBox","size","isDisabled","isChecked","onValueChange","_b","isFreeForm","FreeFormContainer","BodyCaption","color","secondary","ChevronRightIcon","width","height"],"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: isFocused ||\n\t\t\t\t\t\t\t\t option.selected ||\n\t\t\t\t\t\t\t\t (!isMultiSelect && isChildOptionHovered)\n\t\t\t\t\t\t\t\t? 'selected'\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","version","brandSelectedRow","StyledChildDropdownContainer","div","_ref","_ref2","_ref3","DEFAULT_THEME","colorsV2","stroke","primary","DragHandleContainer","DragDot","COLORS","content","inactive","MultiSelectLeadingContainer","LeadingIconWrapper","SingleSelectDragContainer","DragHandleIcon","_ref4","onDragStart","onDragEnd","_jsxs","Object","assign","draggable","children","_jsx","MenuItem","forwardRef","_ref5","childRef","option","isMultiSelect","showDescription","onSelect","last","onDropdownItemClick","useDefaultCursor","isFocused","dataIndex","isDraggable","onDragOver","onDrop","isDraggedOver","showCheckboxForCustomElement","checkboxActiveColor","isChildOptionHovered","setIsChildOptionHovered","useState","selected","handleOptionClick","parent","onCheckHandler","updatedOption","checked","disabled","cursorConfig","cursor","Tooltip","body","tooltipContent","style","backgroundColor","surface","standard","ref","onMouseEnter","onMouseLeave","map","child","_a","length","borderBottom","onClick","e","preventDefault","listItem","value","label","subText","leadingIcon","undefined","customComponent","trailingIcon","variant","_Fragment","placement","hideArrow","borderTop","brand","opacity","onMouseOver","onHoverIn","description","role","id","CheckBox","size","isDisabled","isChecked","onValueChange","activeColor","_b","isFreeForm","FreeFormContainer","BodyCaption","color","secondary","ChevronRightIcon","width","height"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,Fragment as n,jsxs as t}from"react/jsx-runtime";import{forwardRef as
|
|
1
|
+
import{jsx as e,Fragment as n,jsxs as t}from"react/jsx-runtime";import{forwardRef as o,useRef as r,useState as l,useCallback as s,useEffect as c}from"react";import{MenuItem as i}from"./MenuItem.js";import{StyledGroupedLabel as a,Divider as u}from"./MenuList.styled.js";const d=o(((o,d)=>{let{options:p,isMultiSelect:f,showDescription:m,onSelect:b,version:g,onInfiniteScroll:h,onDropdownItemClick:D,useDefaultCursor:v,focusedIndex:w=-1,isDraggable:C=!1,onOptionsReorder:I,showCheckboxForCustomElement:x=!1,checkboxActiveColor:S,brandSelectedRow:k}=o;const j=r(null),E=r(null),[O,M]=l(null),[y,F]=l(null),R=s((()=>{j.current&&j.current.disconnect(),j.current=new IntersectionObserver((e=>{e[0].isIntersecting&&(null==h||h())})),E.current&&j.current.observe(E.current)}),[h]);c((()=>(R(),()=>{j.current&&j.current.disconnect()})),[R,p]);const A=s((e=>n=>{C&&(M(e),n.dataTransfer.effectAllowed="move")}),[C]),T=s((e=>n=>{C&&(n.preventDefault(),n.dataTransfer.dropEffect="move",F(e))}),[C]),$=s((e=>n=>{if(C&&null!==O){if(n.preventDefault(),O!==e){const n=[...p],[t]=n.splice(O,1);n.splice(e,0,t),null==I||I(n)}M(null),F(null)}}),[C,O,p,I]),L=s((()=>{M(null),F(null)}),[]),q=new Map;let z=-1;return p.forEach((e=>{if(e.options)e.options.forEach((e=>{e.disabled||(z++,q.set(e,z))}));else{const n=e;n.disabled||(z++,q.set(n,z))}})),e(n,{children:p.map(((n,o)=>{const r=o===p.length-1;if(n.options){const l=n;return t("div",Object.assign({style:{marginTop:"2.0"===g?2:0}},{children:[t(a,Object.assign({version:g},{children:[l.leadingIcon?e("span",Object.assign({style:{marginRight:8}},{children:l.leadingIcon})):null,l.label]})),l.options.map(((n,t)=>{const r=q.get(n),s=r===w&&!n.disabled;return e(i,{version:g,last:t===l.options.length-1,onSelect:b,showDescription:m,onDropdownItemClick:D,isMultiSelect:f,option:n,useDefaultCursor:v,isFocused:s,dataIndex:r,isDraggable:!1,showCheckboxForCustomElement:x,checkboxActiveColor:S,brandSelectedRow:k,ref:e=>{d&&"object"==typeof d&&d.current&&e&&e&&e&&e&&(d.current[o]=e)}},`${o}-${t}`)})),r?e("span",{ref:E}):null]}),o)}const l=n,s=q.get(l),c=s===w&&!l.disabled;return t("div",{children:[l.hasDivider&&e(u,{}),e(i,{version:g,last:r,onSelect:b,showDescription:m,onDropdownItemClick:D,isMultiSelect:f,option:l,useDefaultCursor:v,isFocused:c,dataIndex:s,isDraggable:C,onDragStart:A(o),onDragOver:T(o),onDrop:$(o),onDragEnd:L,isDraggedOver:y===o,showCheckboxForCustomElement:x,checkboxActiveColor:S,brandSelectedRow:k,ref:e=>{d&&"object"==typeof d&&d.current&&e&&(d.current[o]=e)}},l.value),r?e("span",{ref:E}):null]},o)}))})}));export{d as MenuList};
|
|
2
2
|
//# 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 { MenuItem } from './MenuItem';\nimport { 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';\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}\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},\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\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<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\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","_ref","ref","options","isMultiSelect","showDescription","onSelect","version","onInfiniteScroll","onDropdownItemClick","useDefaultCursor","focusedIndex","isDraggable","onOptionsReorder","showCheckboxForCustomElement","observer","useRef","spanRef","draggedIndex","setDraggedIndex","useState","draggedOverIndex","setDraggedOverIndex","setupObserver","useCallback","current","disconnect","IntersectionObserver","entries","isIntersecting","observe","useEffect","handleDragStart","index","e","dataTransfer","effectAllowed","handleDragOver","preventDefault","dropEffect","handleDrop","dropIndex","newOptions","item","splice","handleDragEnd","flatIndices","Map","currentIndex","forEach","option","menuOption","disabled","set","singleOption","_jsx","_Fragment","children","map","i","last","length","groupedOption","_jsxs","Object","assign","style","marginTop","StyledGroupedLabel","leadingIcon","marginRight","label","idx","currentFlatIndex","get","isFocused","MenuItem","dataIndex","el","onDragStart","onDragOver","onDrop","onDragEnd","isDraggedOver","value"],"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","_ref","ref","options","isMultiSelect","showDescription","onSelect","version","onInfiniteScroll","onDropdownItemClick","useDefaultCursor","focusedIndex","isDraggable","onOptionsReorder","showCheckboxForCustomElement","checkboxActiveColor","brandSelectedRow","observer","useRef","spanRef","draggedIndex","setDraggedIndex","useState","draggedOverIndex","setDraggedOverIndex","setupObserver","useCallback","current","disconnect","IntersectionObserver","entries","isIntersecting","observe","useEffect","handleDragStart","index","e","dataTransfer","effectAllowed","handleDragOver","preventDefault","dropEffect","handleDrop","dropIndex","newOptions","item","splice","handleDragEnd","flatIndices","Map","currentIndex","forEach","option","menuOption","disabled","set","singleOption","_jsx","_Fragment","children","map","i","last","length","groupedOption","_jsxs","Object","assign","style","marginTop","StyledGroupedLabel","leadingIcon","marginRight","label","idx","currentFlatIndex","get","isFocused","MenuItem","dataIndex","el","hasDivider","Divider","onDragStart","onDragOver","onDrop","onDragEnd","isDraggedOver","value"],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import o from"styled-components";import{BodyCaption as r}from"../../../../TypographyStyle.js";import{COLORS as n}from"../../../../../constants/Theme.js";const e=o
|
|
1
|
+
import o from"styled-components";import{BodyCaption as r}from"../../../../TypographyStyle.js";import{COLORS as n}from"../../../../../constants/Theme.js";const e=o.div`
|
|
2
|
+
height: 1px;
|
|
3
|
+
background-color: ${n.stroke.primary};
|
|
4
|
+
margin: 4px 8px;
|
|
5
|
+
`,t=o(r)`
|
|
2
6
|
padding: 8px ${o=>"2.0"===o.version?12:16}px;
|
|
3
7
|
color: ${o=>"2.0"===o.version?n.content.placeholder:n.content.secondary};
|
|
4
8
|
background-color: ${o=>"2.0"===o.version?n.surface.standard:n.background.base};
|
|
5
9
|
font-size: ${o=>"2.0"===o.version?10:12}px;
|
|
6
|
-
`;export{e as StyledGroupedLabel};
|
|
10
|
+
`;export{e as Divider,t as StyledGroupedLabel};
|
|
7
11
|
//# sourceMappingURL=MenuList.styled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuList.styled.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { BodyCaption } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\n\nexport const StyledGroupedLabel = styled(BodyCaption)<{\n\tversion?: '1.0' | '2.0';\n}>`\n\tpadding: 8px ${(props) => (props.version === '2.0' ? 12 : 16)}px;\n\tcolor: ${(props) =>\n\t\tprops.version === '2.0'\n\t\t\t? COLORS.content.placeholder\n\t\t\t: COLORS.content.secondary};\n\tbackground-color: ${(props) =>\n\t\tprops.version === '2.0' ? COLORS.surface.standard : COLORS.background.base};\n\tfont-size: ${(props) => (props.version === '2.0' ? 10 : 12)}px;\n`;\n"],"names":["
|
|
1
|
+
{"version":3,"file":"MenuList.styled.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { BodyCaption } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\n\nexport const Divider = styled.div`\n\theight: 1px;\n\tbackground-color: ${COLORS.stroke.primary};\n\tmargin: 4px 8px;\n`;\n\nexport const StyledGroupedLabel = styled(BodyCaption)<{\n\tversion?: '1.0' | '2.0' | '3.0';\n}>`\n\tpadding: 8px ${(props) => (props.version === '2.0' ? 12 : 16)}px;\n\tcolor: ${(props) =>\n\t\tprops.version === '2.0'\n\t\t\t? COLORS.content.placeholder\n\t\t\t: COLORS.content.secondary};\n\tbackground-color: ${(props) =>\n\t\tprops.version === '2.0' ? COLORS.surface.standard : COLORS.background.base};\n\tfont-size: ${(props) => (props.version === '2.0' ? 10 : 12)}px;\n`;\n"],"names":["Divider","styled","div","COLORS","stroke","primary","StyledGroupedLabel","BodyCaption","props","version","content","placeholder","secondary","surface","standard","background","base"],"mappings":"yJAIaA,MAAAA,EAAUC,EAAOC,GAAG;;qBAEZC,EAAOC,OAAOC;;EAItBC,EAAqBL,EAAOM,EAEvC;gBACeC,GAA6B,QAAlBA,EAAMC,QAAoB,GAAK;UAChDD,GACS,QAAlBA,EAAMC,QACHN,EAAOO,QAAQC,YACfR,EAAOO,QAAQE;qBACEJ,GACF,QAAlBA,EAAMC,QAAoBN,EAAOU,QAAQC,SAAWX,EAAOY,WAAWC;cACzDR,GAA6B,QAAlBA,EAAMC,QAAoB,GAAK;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{useState as t,useEffect as l}from"react";import{CheckBox as o}from"../../../../checkBox/CheckBox.js";import{ListItem as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useState as t,useEffect as l}from"react";import{CheckBox as o}from"../../../../checkBox/CheckBox.js";import{ListItem as c}from"../../../../list-item/ListItem.js";const i=i=>{let{options:r,onSelect:n,version:a,checkboxActiveColor:s,brandSelectedRow:d}=i;const[h,p]=t("notSelected");function S(){"partiallySelected"===h&&n("notSelected"),"selectAll"===h&&n("notSelected"),"notSelected"===h&&n("selectAll")}return l((()=>{const e=[];r.filter((e=>!e.disabled)).forEach((t=>{t.options?t.options.filter((e=>!e.disabled)).forEach((t=>{e.push(t.selected||!1)})):e.push(t.selected||!1)})),e.every(Boolean)?p("selectAll"):e.filter(Boolean).length>0?p("partiallySelected"):p("notSelected")}),[r]),e(c,{version:a,brandSelectedRow:d,onClick:e=>{e.preventDefault(),S()},listItem:{label:"Select All",value:"All"},leadingIcon:e("div",Object.assign({style:{width:18,height:18}},{children:e(o,{size:"2.0"===a?"SMALL":"DEFAULT",isChecked:"selectAll"===h||"partiallySelected"===h,isPartiallyChecked:"partiallySelected"===h,onValueChange:S,activeColor:s})})),variant:"default"})};export{i as SelectAllMenu};
|
|
2
2
|
//# 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, 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';\n}> = ({
|
|
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","_ref","options","onSelect","version","checkboxActiveColor","brandSelectedRow","checkStatus","setCheckStatus","useState","onCheckHandler","useEffect","allOptions","filter","option","disabled","forEach","op","nestedOption","push","selected","every","Boolean","length","_jsx","ListItem","onClick","e","preventDefault","listItem","label","value","leadingIcon","Object","assign","style","width","height","children","CheckBox","size","isChecked","isPartiallyChecked","onValueChange","activeColor","variant"],"mappings":"iNAUaA,MAAAA,EAMRC,IAMA,IANCC,QACLA,EAAOC,SACPA,EAAQC,QACRA,EAAOC,oBACPA,EAAmBC,iBACnBA,GACAL,EACA,MAAOM,EAAaC,GACnBC,EAAiC,eAElC,SAASC,IACY,sBAAhBH,GACHJ,EAAS,eAGU,cAAhBI,GACHJ,EAAS,eAGU,gBAAhBI,GACHJ,EAAS,YAEX,CA4BA,OA1BAQ,GAAU,KACT,MAAMC,EAAwB,GAE9BV,EACEW,QAAQC,IAAaA,EAAwBC,WAC7CC,SAASF,IACJA,EAAyBZ,QAC5BY,EAAyBZ,QACxBW,QAAQI,IAAQA,EAAGF,WACnBC,SAASE,IACTN,EAAWO,KAAKD,EAAaE,WAAY,EAAM,IAGjDR,EAAWO,KAAML,EAAwBM,WAAY,EACrD,IAGCR,EAAWS,MAAMC,SACpBd,EAAe,aACLI,EAAWC,OAAOS,SAASC,OAAS,EAC9Cf,EAAe,qBAEfA,EAAe,cACf,GACC,CAACN,IAGHsB,EAACC,EACA,CAAArB,QAASA,EACTE,iBAAkBA,EAClBoB,QAAUC,IACTA,EAAEC,iBACFlB,GAAgB,EAEjBmB,SAAU,CACTC,MAAO,aACPC,MAAO,OAERC,YACCR,EAAK,MAAAS,OAAAC,OAAA,CAAAC,MAAO,CAAEC,MAAO,GAAIC,OAAQ,KAChC,CAAAC,SAAAd,EAACe,EAAQ,CACRC,KAAkB,QAAZpC,EAAoB,QAAU,UACpCqC,UACiB,cAAhBlC,GAA+C,sBAAhBA,EAEhCmC,mBAAoC,sBAAhBnC,EACpBoC,cAAejC,EACfkC,YAAavC,OAIhBwC,QAAS,WACR"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as o,Fragment as r}from"react/jsx-runtime";import{useState as t}from"react";import{IconButton as e}from"../../../../icon-button/IconButton.js";import{Input as n}from"../../../../input/Input.js";import{InputStyleContext as i}from"../../../../input/context/InputStyleProvider.js";import{COLORS as s}from"../../../../../constants/Theme.js";import c from"../../../../../assets/icons/cross.svg.js";import p from"../../../../../assets/icons/search.svg.js";const a=a=>{let{onSearch:m,version:l}=a;const[h,d]=t(""),[u,f]=t(!1);return o(i.Provider,Object.assign({value:{InputWrapper:{borderRadius:0,border:0,borderBottom:`${"2.0"===l?.5:1}px solid ${s.stroke.primary}`,padding:""+("2.0"===l?"6px 8px":"14px 16px")},IconHolder:{marginLeft:0},input:{marginLeft:4,minHeight:"100%"}}},{children:o(n,{noKeyDownChange:!0,skipFocus:!0,placeholder:"Search",variant:"2.0"===l?"small":"default",leftIcon:{icon:()=>o(p,{width:"2.0"===l?18:24,height:"2.0"===l?18:24,color:s.content.placeholder})},rightIcon:{icon:()=>h?o(e,{onClick:()=>{f(!0),m(""),d("")},Icon:c,width:"2.0"===l?18:24,height:"2.0"===l?18:24,iconColor:s.content.placeholder}):o(r,{})},reset:u,onChangeText:o=>{f(!1),d(o),m(o)}})}))};export{a as SearchBox};
|
|
1
|
+
import{jsx as o,Fragment as r}from"react/jsx-runtime";import{useState as t}from"react";import{IconButton as e}from"../../../../icon-button/IconButton.js";import{Input as n}from"../../../../input/Input.js";import{InputStyleContext as i}from"../../../../input/context/InputStyleProvider.js";import{COLORS as s}from"../../../../../constants/Theme.js";import c from"../../../../../assets/icons/cross.svg.js";import p from"../../../../../assets/icons/search.svg.js";const a=a=>{let{onSearch:m,version:l}=a;const[h,d]=t(""),[u,f]=t(!1);return o(i.Provider,Object.assign({value:{InputWrapper:{borderRadius:0,border:0,borderBottom:`${"2.0"===l||"3.0"===l?.5:1}px solid ${s.stroke.primary}`,padding:""+("2.0"===l||"3.0"===l?"6px 8px":"14px 16px")},IconHolder:{marginLeft:0},input:{marginLeft:4,minHeight:"100%"}}},{children:o(n,{noKeyDownChange:!0,skipFocus:!0,placeholder:"Search",variant:"2.0"===l||"3.0"===l?"small":"default",leftIcon:{icon:()=>o(p,{width:"2.0"===l||"3.0"===l?18:24,height:"2.0"===l||"3.0"===l?18:24,color:s.content.placeholder})},rightIcon:{icon:()=>h?o(e,{onClick:()=>{f(!0),m(""),d("")},Icon:c,width:"2.0"===l||"3.0"===l?18:24,height:"2.0"===l||"3.0"===l?18:24,iconColor:s.content.placeholder}):o(r,{})},reset:u,onChangeText:o=>{f(!1),d(o),m(o)}})}))};export{a as SearchBox};
|
|
2
2
|
//# sourceMappingURL=SearchBox.js.map
|