@bikdotai/bik-component-library 0.0.833 → 0.0.834
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 +41 -20
- package/dist/cjs/components/TypographyStyle.js.map +1 -1
- package/dist/cjs/components/WhatsAppTextEditor/AIRephraseButton.js +16 -5
- package/dist/cjs/components/WhatsAppTextEditor/AIRephraseButton.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 +4 -4
- 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 +293 -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/bik-layout/CommonStyles.js +1 -1
- package/dist/cjs/components/bik-layout/CommonStyles.js.map +1 -1
- 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 +13 -13
- package/dist/cjs/components/button/Button.styled.js.map +1 -1
- package/dist/cjs/components/button/themes.js +6 -6
- 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/checkBox/CheckBox.styled.js +21 -20
- package/dist/cjs/components/checkBox/CheckBox.styled.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/datePicker/DatePicker.styled.js +37 -4
- package/dist/cjs/components/datePicker/DatePicker.styled.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 +9 -8
- 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 +6 -2
- 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 +20 -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 +33 -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 +18 -12
- 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 +27 -16
- 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 +6 -6
- package/dist/cjs/components/list-item/ListItem.styled.js.map +1 -1
- package/dist/cjs/components/list-item/themes.js +40 -21
- 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 +32 -29
- 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 +4 -4
- 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/whats-new/WhatsNew.js +1 -1
- package/dist/cjs/components/whats-new/WhatsNew.js.map +1 -1
- package/dist/cjs/components/whats-new/WhatsNew.styles.js +12 -10
- package/dist/cjs/components/whats-new/WhatsNew.styles.js.map +1 -1
- package/dist/cjs/components/whats-new/WhatsNewButton.js +2 -2
- 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/editor/BikEditor.js +1 -1
- package/dist/cjs/editor/BikEditor.js.map +1 -1
- package/dist/cjs/editor/BikEditor.styles.js +30 -6
- package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
- package/dist/cjs/editor/BikEditor.types.js.map +1 -1
- package/dist/cjs/editor/extensions/buildExtensions.js +2 -2
- package/dist/cjs/editor/extensions/buildExtensions.js.map +1 -1
- package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js +8 -0
- package/dist/cjs/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -0
- package/dist/cjs/editor/extensions/editorDropdown.styles.js +10 -15
- package/dist/cjs/editor/extensions/editorDropdown.styles.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/esm/components/BikGiftedChat/Bubble/Bubble.js +81 -75
- package/dist/esm/components/BikGiftedChat/Bubble/Bubble.js.map +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/Day.d.ts +6 -0
- package/dist/esm/components/BikGiftedChat/GiftedChat/Day.js +127 -89
- package/dist/esm/components/BikGiftedChat/GiftedChat/Day.js.map +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js +232 -129
- package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/types.d.ts +6 -2
- package/dist/esm/components/BikGiftedChat/GiftedChat/types.js.map +1 -1
- package/dist/esm/components/TypographyStyle.d.ts +8 -0
- package/dist/esm/components/TypographyStyle.js +63 -40
- package/dist/esm/components/TypographyStyle.js.map +1 -1
- package/dist/esm/components/WhatsAppTextEditor/AIRephraseButton.js +54 -43
- package/dist/esm/components/WhatsAppTextEditor/AIRephraseButton.js.map +1 -1
- package/dist/esm/components/avatar/Avatar.d.ts +2 -1
- package/dist/esm/components/avatar/Avatar.js +54 -76
- package/dist/esm/components/avatar/Avatar.js.map +1 -1
- package/dist/esm/components/avatar/Avatar.styled.js +8 -8
- package/dist/esm/components/avatar/Avatar.styled.js.map +1 -1
- package/dist/esm/components/avatar/AvatarHelper.d.ts +5 -4
- package/dist/esm/components/avatar/AvatarHelper.js +4 -4
- 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.d.ts +33 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/BikSidebarV2.js +272 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/BikSidebarV2.js.map +1 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2.model.d.ts +27 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Popup.d.ts +12 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Popup.js +53 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Popup.js.map +1 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Styles.d.ts +44 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Styles.js +309 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SidebarV2Styles.js.map +1 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SimpleSidebarV2.d.ts +2 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js +107 -0
- package/dist/esm/components/bik-layout/BikSidebarV2/SimpleSidebarV2.js.map +1 -0
- package/dist/esm/components/bik-layout/CommonStyles.js +1 -1
- package/dist/esm/components/bik-layout/CommonStyles.js.map +1 -1
- package/dist/esm/components/bik-layout/index.d.ts +2 -0
- package/dist/esm/components/button/Button.js +31 -31
- package/dist/esm/components/button/Button.js.map +1 -1
- package/dist/esm/components/button/Button.styled.d.ts +1 -1
- package/dist/esm/components/button/Button.styled.js +20 -20
- package/dist/esm/components/button/Button.styled.js.map +1 -1
- package/dist/esm/components/button/model.d.ts +3 -3
- package/dist/esm/components/button/themes.d.ts +2 -2
- package/dist/esm/components/button/themes.js +31 -17
- package/dist/esm/components/button/themes.js.map +1 -1
- package/dist/esm/components/checkBox/CheckBox.d.ts +2 -1
- package/dist/esm/components/checkBox/CheckBox.js +124 -87
- package/dist/esm/components/checkBox/CheckBox.js.map +1 -1
- package/dist/esm/components/checkBox/CheckBox.styled.d.ts +1 -1
- package/dist/esm/components/checkBox/CheckBox.styled.js +10 -9
- package/dist/esm/components/checkBox/CheckBox.styled.js.map +1 -1
- package/dist/esm/components/country-code-picker/CountryCodePicker.d.ts +1 -1
- package/dist/esm/components/country-code-picker/CountryCodePicker.js.map +1 -1
- package/dist/esm/components/country-code-picker/CountryPicker.d.ts +1 -1
- package/dist/esm/components/country-code-picker/CountryPicker.js.map +1 -1
- package/dist/esm/components/datePicker/DatePicker.styled.js +39 -6
- package/dist/esm/components/datePicker/DatePicker.styled.js.map +1 -1
- package/dist/esm/components/dropdown/Dropdown.d.ts +2 -0
- package/dist/esm/components/dropdown/Dropdown.js +80 -77
- package/dist/esm/components/dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/dropdown/DropdownPopover/index.js +69 -56
- package/dist/esm/components/dropdown/DropdownPopover/index.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +183 -174
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.d.ts +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js +5 -4
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.d.ts +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.d.ts +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.d.ts +3 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js +29 -20
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.d.ts +3 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +80 -74
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.d.ts +3 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js +68 -61
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.d.ts +2 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js +7 -2
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.styled.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.d.ts +3 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +18 -10
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.d.ts +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +18 -18
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.d.ts +1 -0
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js +43 -17
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.d.ts +2 -0
- package/dist/esm/components/dropdown/hooks/useDropdown.d.ts +2 -0
- package/dist/esm/components/dropdown/type.d.ts +6 -1
- package/dist/esm/components/dropdown-button/DropdownButton.d.ts +13 -1
- package/dist/esm/components/dropdown-button/DropdownButton.js +83 -20
- package/dist/esm/components/dropdown-button/DropdownButton.js.map +1 -1
- package/dist/esm/components/dropdown-button/DropdownButton.style.d.ts +9 -2
- package/dist/esm/components/dropdown-button/DropdownButton.style.js +35 -9
- package/dist/esm/components/dropdown-button/DropdownButton.style.js.map +1 -1
- package/dist/esm/components/dual-icon-button/DualIconButton.d.ts +3 -0
- package/dist/esm/components/dual-icon-button/DualIconButton.js +53 -0
- package/dist/esm/components/dual-icon-button/DualIconButton.js.map +1 -0
- package/dist/esm/components/dual-icon-button/DualIconButton.styled.d.ts +7 -0
- package/dist/esm/components/dual-icon-button/DualIconButton.styled.js +40 -0
- package/dist/esm/components/dual-icon-button/DualIconButton.styled.js.map +1 -0
- package/dist/esm/components/dual-icon-button/index.d.ts +2 -0
- package/dist/esm/components/dual-icon-button/model.d.ts +12 -0
- package/dist/esm/components/fab-menu/FABMenu.d.ts +1 -1
- package/dist/esm/components/fab-menu/FABMenu.js.map +1 -1
- package/dist/esm/components/icon-button/IconButton.js +36 -32
- package/dist/esm/components/icon-button/IconButton.js.map +1 -1
- package/dist/esm/components/icon-button/IconButton.styled.d.ts +3 -1
- package/dist/esm/components/icon-button/IconButton.styled.js +20 -14
- package/dist/esm/components/icon-button/IconButton.styled.js.map +1 -1
- package/dist/esm/components/icon-button/model.d.ts +12 -1
- package/dist/esm/components/icon-button/theme.js +12 -10
- package/dist/esm/components/icon-button/theme.js.map +1 -1
- package/dist/esm/components/input/Input.js +130 -125
- package/dist/esm/components/input/Input.js.map +1 -1
- package/dist/esm/components/input/Input.model.d.ts +2 -1
- package/dist/esm/components/input/Input.styled.d.ts +8 -1
- package/dist/esm/components/input/Input.styled.js +34 -22
- package/dist/esm/components/input/Input.styled.js.map +1 -1
- package/dist/esm/components/list-item/List.model.d.ts +3 -2
- package/dist/esm/components/list-item/ListItem.js +40 -38
- package/dist/esm/components/list-item/ListItem.js.map +1 -1
- package/dist/esm/components/list-item/ListItem.styled.d.ts +2 -1
- package/dist/esm/components/list-item/ListItem.styled.js +8 -8
- package/dist/esm/components/list-item/ListItem.styled.js.map +1 -1
- package/dist/esm/components/list-item/themes.d.ts +2 -2
- package/dist/esm/components/list-item/themes.js +29 -6
- package/dist/esm/components/list-item/themes.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/GroupedMenuList.d.ts +1 -0
- package/dist/esm/components/multi-level-dropdown/GroupedMenuList.js +30 -28
- package/dist/esm/components/multi-level-dropdown/GroupedMenuList.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MenuItem.d.ts +1 -0
- package/dist/esm/components/multi-level-dropdown/MenuItem.js +57 -54
- package/dist/esm/components/multi-level-dropdown/MenuItem.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MenuList.d.ts +1 -0
- package/dist/esm/components/multi-level-dropdown/MenuList.js +46 -42
- package/dist/esm/components/multi-level-dropdown/MenuList.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js +95 -59
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.d.ts +13 -3
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js +50 -41
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/type.d.ts +1 -0
- package/dist/esm/components/tag/Tag.d.ts +1 -1
- package/dist/esm/components/tag/Tag.js +22 -18
- package/dist/esm/components/tag/Tag.js.map +1 -1
- package/dist/esm/components/tag/Tag.styled.d.ts +3 -1
- package/dist/esm/components/tag/Tag.styled.js +7 -7
- package/dist/esm/components/tag/Tag.styled.js.map +1 -1
- package/dist/esm/components/tag/model.d.ts +5 -1
- package/dist/esm/components/tag/model.js.map +1 -1
- package/dist/esm/components/whats-new/WhatsNew.d.ts +2 -0
- package/dist/esm/components/whats-new/WhatsNew.js +23 -19
- package/dist/esm/components/whats-new/WhatsNew.js.map +1 -1
- package/dist/esm/components/whats-new/WhatsNew.styles.js +8 -6
- package/dist/esm/components/whats-new/WhatsNew.styles.js.map +1 -1
- package/dist/esm/components/whats-new/WhatsNew.types.d.ts +2 -0
- package/dist/esm/components/whats-new/WhatsNewButton.js +62 -52
- 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.d.ts +36 -0
- package/dist/esm/constants/Theme.js +21 -1
- package/dist/esm/constants/Theme.js.map +1 -1
- package/dist/esm/editor/BikEditor.js +64 -62
- package/dist/esm/editor/BikEditor.js.map +1 -1
- package/dist/esm/editor/BikEditor.styles.js +32 -8
- package/dist/esm/editor/BikEditor.styles.js.map +1 -1
- package/dist/esm/editor/BikEditor.types.d.ts +8 -0
- package/dist/esm/editor/BikEditor.types.js.map +1 -1
- package/dist/esm/editor/extensions/buildExtensions.d.ts +8 -1
- package/dist/esm/editor/extensions/buildExtensions.js +42 -40
- package/dist/esm/editor/extensions/buildExtensions.js.map +1 -1
- package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.d.ts +19 -0
- package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js +62 -0
- package/dist/esm/editor/extensions/characterLimit/CharacterLimitExtension.js.map +1 -0
- package/dist/esm/editor/extensions/editorDropdown.styles.d.ts +8 -2
- package/dist/esm/editor/extensions/editorDropdown.styles.js +18 -22
- package/dist/esm/editor/extensions/editorDropdown.styles.js.map +1 -1
- package/dist/esm/icons/Arrows/Chevron/ChevronUp.d.ts +1 -2
- package/dist/esm/icons/Arrows/Chevron/ChevronUp.js +24 -28
- package/dist/esm/icons/Arrows/Chevron/ChevronUp.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +977 -971
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,143 +1,200 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import
|
|
3
|
-
import { COLORS as
|
|
4
|
-
import { useWindowSize as
|
|
5
|
-
import { BodySecondary as
|
|
6
|
-
import { GiftedChatAppType as
|
|
7
|
-
import { Day as
|
|
8
|
-
import { getMessagePlacement as
|
|
9
|
-
import { useScrollToBottom as
|
|
10
|
-
import { MESSAGE_CHANNELS as
|
|
11
|
-
import { TOP_THRESHOLD as
|
|
12
|
-
|
|
1
|
+
import { jsx as s, Fragment as X, jsxs as k } from "react/jsx-runtime";
|
|
2
|
+
import oe, { forwardRef as se, useRef as D, useState as q, useMemo as U, useImperativeHandle as ne, useCallback as I, useEffect as ie } from "react";
|
|
3
|
+
import { COLORS as M } from "../../../constants/Theme.js";
|
|
4
|
+
import { useWindowSize as le } from "../../../hooks/useWindowSize.js";
|
|
5
|
+
import { BodySecondary as ae } from "../../TypographyStyle.js";
|
|
6
|
+
import { GiftedChatAppType as u } from "../Bubble/types.js";
|
|
7
|
+
import { Day as ce } from "./Day.js";
|
|
8
|
+
import { getMessagePlacement as de, shouldCenterAlign as fe } from "./messageHelpers.js";
|
|
9
|
+
import { useScrollToBottom as ue, useInitialMountScroll as he, useScrollCleanup as ge, useRestoreScrollPosition as pe, useAutoScrollOnNewMessages as me, useResizeObserverForFirstMessage as ye, useScrollHandler as ve } from "./scrollHooks.js";
|
|
10
|
+
import { MESSAGE_CHANNELS as Y } from "./types.js";
|
|
11
|
+
import { TOP_THRESHOLD as Se, normalizeRef as xe, isSameDay as be, Constants as P } from "./utils.js";
|
|
12
|
+
import { Button as Te } from "../../button/Button.js";
|
|
13
|
+
const G = 204, Ae = ({ text: R, isExpanded: h, onToggle: n }) => {
|
|
14
|
+
const i = D(null), [S, x] = q(!1);
|
|
15
|
+
return ie(() => {
|
|
16
|
+
const g = i.current;
|
|
17
|
+
if (g) {
|
|
18
|
+
g.style.maxHeight = "none";
|
|
19
|
+
const $ = g.scrollHeight > G;
|
|
20
|
+
g.style.maxHeight = h ? "none" : `${G}px`, x($);
|
|
21
|
+
}
|
|
22
|
+
}, [R, h]), /* @__PURE__ */ k(X, { children: [
|
|
23
|
+
/* @__PURE__ */ s(
|
|
24
|
+
"div",
|
|
25
|
+
{
|
|
26
|
+
ref: i,
|
|
27
|
+
style: {
|
|
28
|
+
maxHeight: h ? "none" : G,
|
|
29
|
+
overflow: "hidden"
|
|
30
|
+
},
|
|
31
|
+
children: /* @__PURE__ */ s(ae, { children: R })
|
|
32
|
+
}
|
|
33
|
+
),
|
|
34
|
+
S && /* @__PURE__ */ s(
|
|
35
|
+
Te,
|
|
36
|
+
{
|
|
37
|
+
buttonType: "text",
|
|
38
|
+
size: "xs",
|
|
39
|
+
buttonText: h ? "Show less" : "Read more",
|
|
40
|
+
onClick: n
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
] });
|
|
44
|
+
}, Me = (R, h) => {
|
|
13
45
|
const {
|
|
14
|
-
messages:
|
|
15
|
-
user:
|
|
16
|
-
renderBubble:
|
|
17
|
-
renderAvatar:
|
|
18
|
-
renderDay:
|
|
19
|
-
renderLoading:
|
|
20
|
-
renderChatEmpty:
|
|
21
|
-
listViewProps:
|
|
22
|
-
renderAvatarOnTop:
|
|
23
|
-
showUserAvatar:
|
|
24
|
-
showAvatarForEveryMessage:
|
|
25
|
-
inverted:
|
|
26
|
-
messageIdGenerator:
|
|
27
|
-
topThreshold:
|
|
28
|
-
appType:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
46
|
+
messages: n = [],
|
|
47
|
+
user: i,
|
|
48
|
+
renderBubble: S,
|
|
49
|
+
renderAvatar: x,
|
|
50
|
+
renderDay: g,
|
|
51
|
+
renderLoading: $,
|
|
52
|
+
renderChatEmpty: N,
|
|
53
|
+
listViewProps: w = {},
|
|
54
|
+
renderAvatarOnTop: z = !1,
|
|
55
|
+
showUserAvatar: C = !1,
|
|
56
|
+
showAvatarForEveryMessage: _ = !1,
|
|
57
|
+
inverted: Re = !1,
|
|
58
|
+
messageIdGenerator: L,
|
|
59
|
+
topThreshold: J = Se,
|
|
60
|
+
appType: c = u.Bik,
|
|
61
|
+
maxHeight: O,
|
|
62
|
+
isActivityMessage: b,
|
|
63
|
+
...F
|
|
64
|
+
} = R || {}, v = le(), K = D(null), p = xe(
|
|
65
|
+
w.ref || h,
|
|
66
|
+
K
|
|
67
|
+
), m = D({
|
|
34
68
|
isInitialMount: !0,
|
|
35
69
|
isUserScrolling: !1,
|
|
36
70
|
isLoadingOldMessages: !1,
|
|
37
71
|
isAtBottom: !0,
|
|
38
72
|
hasTriggeredEndReached: !1,
|
|
39
|
-
lastMessagesLength:
|
|
73
|
+
lastMessagesLength: n?.length ?? 0,
|
|
40
74
|
previousScrollHeight: 0,
|
|
41
75
|
previousScrollTop: 0,
|
|
42
76
|
scrollTimeout: null
|
|
43
|
-
}),
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
77
|
+
}), [V, Q] = q(/* @__PURE__ */ new Set()), d = U(() => !n || n.length === 0 ? [] : [...n].reverse(), [n]), Z = U(() => {
|
|
78
|
+
const e = [];
|
|
79
|
+
return d.forEach((o, r) => {
|
|
80
|
+
const t = d[r - 1];
|
|
81
|
+
r === 0 || !be(o, t) ? e.push({ createdAt: o.createdAt, indices: [r] }) : e[e.length - 1].indices.push(r);
|
|
82
|
+
}), e;
|
|
83
|
+
}, [d]), E = ue(p, m);
|
|
84
|
+
ne(h, () => p.current), he(
|
|
85
|
+
p,
|
|
86
|
+
m,
|
|
87
|
+
d.length,
|
|
88
|
+
E
|
|
89
|
+
), ge(m), pe(p, m, d.length), me(
|
|
90
|
+
p,
|
|
91
|
+
m,
|
|
92
|
+
n.length,
|
|
93
|
+
E
|
|
94
|
+
), ye(
|
|
95
|
+
n?.[0],
|
|
96
|
+
m,
|
|
97
|
+
E,
|
|
98
|
+
L
|
|
59
99
|
);
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
),
|
|
66
|
-
(e) => !!(e &&
|
|
67
|
-
[
|
|
68
|
-
),
|
|
69
|
-
(e,
|
|
70
|
-
[
|
|
71
|
-
),
|
|
72
|
-
(e,
|
|
73
|
-
const
|
|
100
|
+
const ee = ve(
|
|
101
|
+
m,
|
|
102
|
+
w.onEndReached,
|
|
103
|
+
w.onScroll,
|
|
104
|
+
J
|
|
105
|
+
), T = I(
|
|
106
|
+
(e) => !!(e && i && e.user?._id === i._id),
|
|
107
|
+
[i]
|
|
108
|
+
), W = I(
|
|
109
|
+
(e, o) => C ? _ ? !0 : !o || (b ? b(e) : !1) || (b ? b(o) : !1) || o.user._id !== e.user._id : !1,
|
|
110
|
+
[C, _, b]
|
|
111
|
+
), te = I(
|
|
112
|
+
(e, o, r) => {
|
|
113
|
+
const t = T(e) ? "right" : "left", l = o?.user?._id !== e?.user?._id, f = r?.user?._id !== e?.user?._id, A = {
|
|
74
114
|
currentMessage: e,
|
|
75
|
-
previousMessage:
|
|
76
|
-
nextMessage:
|
|
77
|
-
position:
|
|
78
|
-
user:
|
|
79
|
-
...
|
|
115
|
+
previousMessage: o,
|
|
116
|
+
nextMessage: r,
|
|
117
|
+
position: t,
|
|
118
|
+
user: i,
|
|
119
|
+
...F
|
|
80
120
|
};
|
|
81
|
-
|
|
121
|
+
if (S)
|
|
122
|
+
return S(A);
|
|
123
|
+
const a = e._id, B = V.has(a);
|
|
124
|
+
return /* @__PURE__ */ s(
|
|
82
125
|
"div",
|
|
83
126
|
{
|
|
84
127
|
style: {
|
|
85
|
-
maxWidth:
|
|
128
|
+
maxWidth: c === u.Manifest ? "50%" : "70%",
|
|
86
129
|
width: "fit-content",
|
|
87
|
-
...
|
|
130
|
+
...c === u.Manifest ? { minWidth: "130px" } : {},
|
|
88
131
|
padding: "8px 12px",
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
132
|
+
borderTopLeftRadius: t === "left" ? l ? 12 : 2 : 12,
|
|
133
|
+
borderTopRightRadius: t === "right" ? l ? 12 : 2 : 12,
|
|
134
|
+
borderBottomLeftRadius: t === "left" ? f ? 12 : 2 : 12,
|
|
135
|
+
borderBottomRightRadius: t === "right" ? f ? 12 : 2 : 12,
|
|
136
|
+
border: t === "left" && c === u.Manifest ? "1px solid rgb(224, 224, 224)" : "none",
|
|
137
|
+
backgroundColor: t === "right" ? c === u.Manifest ? M.background.brandTint : M.background.brandLight : c === u.Manifest ? M.background.pureWhite : M.background.inactive,
|
|
138
|
+
color: M.content.primary,
|
|
93
139
|
wordBreak: "break-word"
|
|
94
140
|
},
|
|
95
|
-
children: /* @__PURE__ */
|
|
141
|
+
children: /* @__PURE__ */ s(
|
|
142
|
+
Ae,
|
|
143
|
+
{
|
|
144
|
+
text: e.text ?? "",
|
|
145
|
+
isExpanded: B,
|
|
146
|
+
onToggle: () => Q((H) => {
|
|
147
|
+
const y = new Set(H);
|
|
148
|
+
return B ? y.delete(a) : y.add(a), y;
|
|
149
|
+
})
|
|
150
|
+
}
|
|
151
|
+
)
|
|
96
152
|
}
|
|
97
153
|
);
|
|
98
154
|
},
|
|
99
|
-
[
|
|
100
|
-
),
|
|
101
|
-
(e,
|
|
102
|
-
if (!
|
|
103
|
-
const
|
|
104
|
-
return
|
|
155
|
+
[T, i, S, F, V]
|
|
156
|
+
), j = I(
|
|
157
|
+
(e, o, r) => {
|
|
158
|
+
if (!W(e, o)) return null;
|
|
159
|
+
const l = T(e) ? "right" : "left";
|
|
160
|
+
return x ? x({
|
|
105
161
|
currentMessage: e,
|
|
106
|
-
previousMessage:
|
|
107
|
-
nextMessage:
|
|
108
|
-
position:
|
|
109
|
-
user:
|
|
110
|
-
renderAvatarOnTop:
|
|
111
|
-
showUserAvatar:
|
|
112
|
-
showAvatarForEveryMessage:
|
|
162
|
+
previousMessage: o,
|
|
163
|
+
nextMessage: r,
|
|
164
|
+
position: l,
|
|
165
|
+
user: i,
|
|
166
|
+
renderAvatarOnTop: z,
|
|
167
|
+
showUserAvatar: C,
|
|
168
|
+
showAvatarForEveryMessage: _
|
|
113
169
|
}) : null;
|
|
114
170
|
},
|
|
115
171
|
[
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
172
|
+
W,
|
|
173
|
+
T,
|
|
174
|
+
i,
|
|
175
|
+
z,
|
|
176
|
+
C,
|
|
177
|
+
_,
|
|
178
|
+
x
|
|
123
179
|
]
|
|
124
180
|
);
|
|
125
|
-
return !
|
|
181
|
+
return !n || n.length === 0 ? N ? /* @__PURE__ */ s(X, { children: N() }) : null : /* @__PURE__ */ k(
|
|
126
182
|
"div",
|
|
127
183
|
{
|
|
128
|
-
ref:
|
|
184
|
+
ref: p,
|
|
129
185
|
style: {
|
|
130
186
|
flex: 1,
|
|
131
187
|
overflowY: "auto",
|
|
132
188
|
overflowX: "hidden",
|
|
133
189
|
display: "flex",
|
|
134
190
|
flexDirection: "column",
|
|
135
|
-
...
|
|
191
|
+
...O ? { maxHeight: O, height: O } : {},
|
|
192
|
+
...w.style
|
|
136
193
|
},
|
|
137
|
-
onScroll:
|
|
194
|
+
onScroll: ee,
|
|
138
195
|
children: [
|
|
139
|
-
/* @__PURE__ */
|
|
140
|
-
/* @__PURE__ */
|
|
196
|
+
/* @__PURE__ */ s("div", { style: { flex: "1 0 auto" } }),
|
|
197
|
+
/* @__PURE__ */ s(
|
|
141
198
|
"div",
|
|
142
199
|
{
|
|
143
200
|
style: {
|
|
@@ -145,52 +202,98 @@ const ue = (G, C) => {
|
|
|
145
202
|
flexDirection: "column",
|
|
146
203
|
flex: "0 0 auto"
|
|
147
204
|
},
|
|
148
|
-
children:
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
V.Fragment,
|
|
205
|
+
children: Z.map((e, o) => /* @__PURE__ */ k("div", { children: [
|
|
206
|
+
g ? /* @__PURE__ */ s("div", { style: { position: "sticky", top: 0, zIndex: 2 }, children: g({ createdAt: e.createdAt }) }) : /* @__PURE__ */ s(
|
|
207
|
+
ce,
|
|
152
208
|
{
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
209
|
+
createdAt: e.createdAt,
|
|
210
|
+
appType: c,
|
|
211
|
+
scrollRootRef: p
|
|
212
|
+
}
|
|
213
|
+
),
|
|
214
|
+
e.indices.map((r) => {
|
|
215
|
+
const t = d[r], l = t?.channelId === Y.SMTP || t?.channelName === Y.SMTP, f = l ? "left" : T(t) ? "right" : "left", A = d[r - 1], a = d[r + 1], B = de(t, f), H = fe(t), y = t.category === P.ChatActivity.Category.ACTIVITY && t.activityType === P.ChatActivity.Type.PRIVATE_NOTE, re = t.category === P.ChatActivity.Category.ACTIVITY && !y;
|
|
216
|
+
return /* @__PURE__ */ s(
|
|
217
|
+
oe.Fragment,
|
|
218
|
+
{
|
|
219
|
+
children: /* @__PURE__ */ k(
|
|
156
220
|
"div",
|
|
157
221
|
{
|
|
158
222
|
style: {
|
|
159
|
-
...
|
|
160
|
-
...
|
|
161
|
-
...
|
|
162
|
-
...
|
|
163
|
-
|
|
164
|
-
|
|
223
|
+
...v ? { margin: "0 4px" } : {},
|
|
224
|
+
...H ? {} : { display: "flex", alignItems: "flex-start" },
|
|
225
|
+
...c !== u.Manifest ? !v && f === "right" ? { marginLeft: 8 } : { marginRight: 8 } : {},
|
|
226
|
+
...l && !y && v ? { marginLeft: 8, marginRight: 8 } : {},
|
|
227
|
+
...l && y ? { marginRight: 16 } : {},
|
|
228
|
+
justifyContent: B,
|
|
229
|
+
marginBottom: l ? (
|
|
230
|
+
// SMTP: flat 24px between mails, no same/different-user split.
|
|
231
|
+
a ? 24 : 0
|
|
232
|
+
) : a ? a?.user?._id === t?.user?._id ? 4 : 20 : 0,
|
|
233
|
+
// Activity cards: no left/bottom margin.
|
|
234
|
+
...re ? { marginLeft: 0, marginBottom: 0 } : {}
|
|
165
235
|
},
|
|
166
236
|
children: [
|
|
167
|
-
!
|
|
168
|
-
|
|
237
|
+
!v && f === "left" && /* @__PURE__ */ s(
|
|
238
|
+
"div",
|
|
239
|
+
{
|
|
240
|
+
style: {
|
|
241
|
+
marginRight: "4px",
|
|
242
|
+
width: "24px",
|
|
243
|
+
flexShrink: 0
|
|
244
|
+
},
|
|
245
|
+
children: j(
|
|
246
|
+
t,
|
|
247
|
+
A,
|
|
248
|
+
a
|
|
249
|
+
)
|
|
250
|
+
}
|
|
251
|
+
),
|
|
252
|
+
/* @__PURE__ */ s(
|
|
169
253
|
"div",
|
|
170
254
|
{
|
|
171
|
-
id: `message-bubble-${
|
|
172
|
-
style:
|
|
173
|
-
children:
|
|
255
|
+
id: `message-bubble-${t._id ?? `${r}-${L?.() ?? "id"}`}`,
|
|
256
|
+
style: c === u.Manifest ? { width: "100%" } : v || l ? { display: "flex", flexGrow: 1, width: "100%" } : {},
|
|
257
|
+
children: te(
|
|
258
|
+
t,
|
|
259
|
+
A,
|
|
260
|
+
a
|
|
261
|
+
)
|
|
174
262
|
}
|
|
175
263
|
),
|
|
176
|
-
!
|
|
264
|
+
!v && f === "right" && /* @__PURE__ */ s(
|
|
265
|
+
"div",
|
|
266
|
+
{
|
|
267
|
+
style: {
|
|
268
|
+
marginLeft: "4px",
|
|
269
|
+
width: "24px",
|
|
270
|
+
flexShrink: 0,
|
|
271
|
+
alignSelf: "flex-start"
|
|
272
|
+
},
|
|
273
|
+
children: j(
|
|
274
|
+
t,
|
|
275
|
+
A,
|
|
276
|
+
a
|
|
277
|
+
)
|
|
278
|
+
}
|
|
279
|
+
)
|
|
177
280
|
]
|
|
178
281
|
}
|
|
179
282
|
)
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
)
|
|
184
|
-
})
|
|
283
|
+
},
|
|
284
|
+
t._id ?? `${r}-${L?.() ?? "id"}`
|
|
285
|
+
);
|
|
286
|
+
})
|
|
287
|
+
] }, `day-group-${o}`))
|
|
185
288
|
}
|
|
186
289
|
)
|
|
187
290
|
]
|
|
188
291
|
}
|
|
189
292
|
);
|
|
190
|
-
},
|
|
191
|
-
|
|
293
|
+
}, De = se(
|
|
294
|
+
Me
|
|
192
295
|
);
|
|
193
296
|
export {
|
|
194
|
-
|
|
297
|
+
De as default
|
|
195
298
|
};
|
|
196
299
|
//# sourceMappingURL=GiftedChat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GiftedChat.js","sources":["../../../../../src/components/BikGiftedChat/GiftedChat/GiftedChat.tsx"],"sourcesContent":["import React, {\n\tforwardRef,\n\tuseCallback,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n} from 'react';\nimport { COLORS } from '../../../constants/Theme';\nimport { useWindowSize } from '../../../hooks/useWindowSize';\nimport { BodySecondary } from '../../TypographyStyle';\nimport { BubbleProps, GiftedChatAppType } from '../Bubble/types';\nimport { IMessage } from '../types';\nimport { Day } from './Day';\nimport { getMessagePlacement, shouldCenterAlign } from './messageHelpers';\nimport {\n\tuseAutoScrollOnNewMessages,\n\tuseInitialMountScroll,\n\tuseResizeObserverForFirstMessage,\n\tuseRestoreScrollPosition,\n\tuseScrollCleanup,\n\tuseScrollHandler,\n\tuseScrollToBottom,\n} from './scrollHooks';\nimport { AvatarProps, GiftedChatProps, MESSAGE_CHANNELS } from './types';\nimport { isSameDay, normalizeRef } from './utils';\nimport { Constants, TOP_THRESHOLD } from './utils';\n\nconst GiftedChatInner = (\n\tprops: Omit<GiftedChatProps<IMessage>, 'ref'>,\n\tforwardedRef: React.Ref<HTMLDivElement>,\n) => {\n\tconst {\n\t\tmessages = [],\n\t\tuser,\n\t\trenderBubble,\n\t\trenderAvatar,\n\t\trenderDay,\n\t\trenderLoading,\n\t\trenderChatEmpty,\n\t\tlistViewProps = {},\n\t\trenderAvatarOnTop = false,\n\t\tshowUserAvatar = false,\n\t\tshowAvatarForEveryMessage = false,\n\t\tinverted = false,\n\t\tmessageIdGenerator,\n\t\ttopThreshold = TOP_THRESHOLD,\n\t\tappType = GiftedChatAppType.Bik,\n\t\t...extraProps\n\t} = props || {};\n\n\tconst isMobile = useWindowSize();\n\n\tconst internalScrollRef = useRef<HTMLDivElement | null>(null);\n\tconst scrollRef = normalizeRef(\n\t\tlistViewProps.ref || forwardedRef,\n\t\tinternalScrollRef,\n\t);\n\n\tconst scrollState = useRef({\n\t\tisInitialMount: true,\n\t\tisUserScrolling: false,\n\t\tisLoadingOldMessages: false,\n\t\tisAtBottom: true,\n\t\thasTriggeredEndReached: false,\n\t\tlastMessagesLength: messages?.length ?? 0,\n\t\tpreviousScrollHeight: 0,\n\t\tpreviousScrollTop: 0,\n\t\tscrollTimeout: null,\n\t});\n\n\t// Reverse messages so newest appears last in DOM (natural reading order)\n\tconst reversedMessages = useMemo(() => {\n\t\tif (!messages || messages.length === 0) return [] as IMessage[];\n\t\treturn [...messages].reverse() as IMessage[];\n\t}, [messages]);\n\n\tconst scrollToBottom = useScrollToBottom(scrollRef, scrollState);\n\n\tuseImperativeHandle(forwardedRef, () => scrollRef.current!);\n\n\tuseInitialMountScroll(\n\t\tscrollRef,\n\t\tscrollState,\n\t\treversedMessages.length,\n\t\tscrollToBottom,\n\t);\n\n\tuseScrollCleanup(scrollState);\n\n\tuseRestoreScrollPosition(scrollRef, scrollState, reversedMessages.length);\n\n\tuseAutoScrollOnNewMessages(\n\t\tscrollRef,\n\t\tscrollState,\n\t\tmessages.length,\n\t\tscrollToBottom,\n\t);\n\n\tuseResizeObserverForFirstMessage(\n\t\tmessages?.[0],\n\t\tscrollState,\n\t\tscrollToBottom,\n\t\tmessageIdGenerator,\n\t);\n\n\tconst handleScroll = useScrollHandler(\n\t\tscrollState,\n\t\tlistViewProps.onEndReached,\n\t\tlistViewProps.onScroll,\n\t\ttopThreshold,\n\t);\n\n\t// Check if a message belongs to the current user\n\tconst isUserMessage = useCallback(\n\t\t(message: IMessage) => {\n\t\t\treturn Boolean(message && user && message.user?._id === user._id);\n\t\t},\n\t\t[user],\n\t);\n\n\t// Determine if avatar should be shown for this message\n\tconst shouldShowAvatar = useCallback(\n\t\t(message: IMessage, nextMessage?: IMessage) => {\n\t\t\tif (!showUserAvatar) return false;\n\t\t\tif (showAvatarForEveryMessage) return true;\n\n\t\t\t// Show avatar only when next message is from different user\n\t\t\treturn !nextMessage || nextMessage.user._id !== message.user._id;\n\t\t},\n\t\t[showUserAvatar, showAvatarForEveryMessage],\n\t);\n\n\t// Render a message bubble (or call custom renderBubble)\n\tconst renderMessageBubble = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage, nextMessage?: IMessage) => {\n\t\t\tconst position = isUserMessage(message) ? 'right' : 'left';\n\n\t\t\tconst bubbleProps: BubbleProps<IMessage> = {\n\t\t\t\tcurrentMessage: message,\n\t\t\t\tpreviousMessage,\n\t\t\t\tnextMessage,\n\t\t\t\tposition,\n\t\t\t\tuser,\n\t\t\t\t...extraProps,\n\t\t\t};\n\n\t\t\t// Use custom render function if provided\n\t\t\tif (renderBubble) {\n\t\t\t\treturn renderBubble(bubbleProps);\n\t\t\t}\n\n\t\t\t// Default bubble rendering\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tmaxWidth: appType === GiftedChatAppType.Manifest ? '50%' : '70%',\n\t\t\t\t\t\twidth: 'fit-content',\n\t\t\t\t\t\t...(appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t? { minWidth: '130px' }\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\tpadding: '8px 12px',\n\t\t\t\t\t\tborderRadius: appType === GiftedChatAppType.Manifest ? 16 : 4,\n\t\t\t\t\t\tborder:\n\t\t\t\t\t\t\tposition === 'left' && appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t? '1px solid rgb(224, 224, 224)'\n\t\t\t\t\t\t\t\t: 'none',\n\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\tposition === 'right'\n\t\t\t\t\t\t\t\t? appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t? COLORS.background.brandTint\n\t\t\t\t\t\t\t\t\t: COLORS.background.brandLight\n\t\t\t\t\t\t\t\t: appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t? COLORS.background.pureWhite\n\t\t\t\t\t\t\t\t: COLORS.background.inactive,\n\t\t\t\t\t\tcolor: COLORS.content.primary,\n\t\t\t\t\t\twordBreak: 'break-word',\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<BodySecondary>{message.text}</BodySecondary>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\t[isUserMessage, user, renderBubble, extraProps],\n\t);\n\n\t// Render a message avatar (or call custom renderAvatar)\n\tconst renderMessageAvatar = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage, nextMessage?: IMessage) => {\n\t\t\tconst shouldShow = shouldShowAvatar(message, nextMessage);\n\n\t\t\tif (!shouldShow) return null;\n\n\t\t\tconst position = isUserMessage(message) ? 'right' : 'left';\n\n\t\t\tconst avatarProps: AvatarProps<IMessage> = {\n\t\t\t\tcurrentMessage: message,\n\t\t\t\tpreviousMessage,\n\t\t\t\tnextMessage,\n\t\t\t\tposition,\n\t\t\t\tuser,\n\t\t\t\trenderAvatarOnTop,\n\t\t\t\tshowUserAvatar,\n\t\t\t\tshowAvatarForEveryMessage,\n\t\t\t};\n\n\t\t\treturn renderAvatar ? renderAvatar(avatarProps) : null;\n\t\t},\n\t\t[\n\t\t\tshouldShowAvatar,\n\t\t\tisUserMessage,\n\t\t\tuser,\n\t\t\trenderAvatarOnTop,\n\t\t\tshowUserAvatar,\n\t\t\tshowAvatarForEveryMessage,\n\t\t\trenderAvatar,\n\t\t],\n\t);\n\n\t// Render: Empty State\n\tif (!messages || messages.length === 0) {\n\t\treturn renderChatEmpty ? <>{renderChatEmpty()}</> : null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tref={scrollRef as React.RefObject<HTMLDivElement>}\n\t\t\tstyle={{\n\t\t\t\tflex: 1,\n\t\t\t\toverflowY: 'auto',\n\t\t\t\toverflowX: 'hidden',\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\t...listViewProps.style,\n\t\t\t}}\n\t\t\tonScroll={handleScroll}\n\t\t>\n\t\t\t{/* Spacer to push messages to bottom (newest appears last in DOM) */}\n\t\t\t<div style={{ flex: '1 0 auto' }} />\n\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tflex: '0 0 auto',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{reversedMessages.map((message, index) => {\n\t\t\t\t\tconst position = isUserMessage(message) ? 'right' : 'left';\n\t\t\t\t\tconst previousMessage = reversedMessages[index - 1];\n\t\t\t\t\tconst nextMessage = reversedMessages[index + 1];\n\t\t\t\t\tconst shouldShowDay = !isSameDay(message, previousMessage);\n\t\t\t\t\tconst placement = getMessagePlacement(message, position);\n\t\t\t\t\tconst isCentered = shouldCenterAlign(message);\n\t\t\t\t\tconst isSmtp =\n\t\t\t\t\t\tmessage?.['channelId'] === MESSAGE_CHANNELS.SMTP ||\n\t\t\t\t\t\tmessage?.['channelName'] === MESSAGE_CHANNELS.SMTP;\n\t\t\t\t\t// Check if message is a private note\n\t\t\t\t\tconst isPrivateNote =\n\t\t\t\t\t\tmessage['category'] === Constants.ChatActivity.Category.ACTIVITY &&\n\t\t\t\t\t\tmessage['activityType'] ===\n\t\t\t\t\t\t\tConstants.ChatActivity.Type.PRIVATE_NOTE;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<React.Fragment\n\t\t\t\t\t\t\tkey={message._id ?? `${index}-${messageIdGenerator?.() ?? 'id'}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* Day separator */}\n\t\t\t\t\t\t\t{shouldShowDay &&\n\t\t\t\t\t\t\t\t(renderDay ? (\n\t\t\t\t\t\t\t\t\trenderDay({ createdAt: message.createdAt })\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<Day createdAt={message.createdAt} appType={appType} />\n\t\t\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t\t{/* Message container */}\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\t...(isMobile ? { margin: '0 4px' } : {}),\n\t\t\t\t\t\t\t\t\t...(isCentered ? {} : { display: 'flex' }),\n\t\t\t\t\t\t\t\t\t...(appType !== GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t\t? !isMobile && message?.user?._id === 2\n\t\t\t\t\t\t\t\t\t\t\t? { marginLeft: 8 }\n\t\t\t\t\t\t\t\t\t\t\t: { marginRight: 8 }\n\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t\t...(isSmtp && !isPrivateNote && isMobile\n\t\t\t\t\t\t\t\t\t\t? { marginLeft: 8, marginRight: 8 }\n\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t\tjustifyContent: placement,\n\t\t\t\t\t\t\t\t\tmarginBottom: 8,\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\t{/* Left avatar (for mobile, avatar is hidden) */}\n\t\t\t\t\t\t\t\t{!isMobile && position === 'left' && (\n\t\t\t\t\t\t\t\t\t<div style={{ margin: '0 8px' }}>\n\t\t\t\t\t\t\t\t\t\t{renderMessageAvatar(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{/* Message bubble */}\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tid={`message-bubble-${\n\t\t\t\t\t\t\t\t\t\tmessage._id ?? `${index}-${messageIdGenerator?.() ?? 'id'}`\n\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\tappType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t\t\t? { width: '100%' }\n\t\t\t\t\t\t\t\t\t\t\t: isMobile && isSmtp\n\t\t\t\t\t\t\t\t\t\t\t? { display: 'flex', flexGrow: 1 }\n\t\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\t{renderMessageBubble(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t{/* Right avatar (for mobile, avatar is hidden) */}\n\t\t\t\t\t\t\t\t{!isMobile && position === 'right' && (\n\t\t\t\t\t\t\t\t\t<div style={{ margin: '0 8px' }}>\n\t\t\t\t\t\t\t\t\t\t{renderMessageAvatar(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</React.Fragment>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default forwardRef<HTMLDivElement, GiftedChatProps<IMessage>>(\n\tGiftedChatInner,\n);\n"],"names":["GiftedChatInner","props","forwardedRef","messages","user","renderBubble","renderAvatar","renderDay","renderLoading","renderChatEmpty","listViewProps","renderAvatarOnTop","showUserAvatar","showAvatarForEveryMessage","inverted","messageIdGenerator","topThreshold","TOP_THRESHOLD","appType","GiftedChatAppType","extraProps","isMobile","useWindowSize","internalScrollRef","useRef","scrollRef","normalizeRef","scrollState","reversedMessages","useMemo","scrollToBottom","useScrollToBottom","useImperativeHandle","useInitialMountScroll","useScrollCleanup","useRestoreScrollPosition","useAutoScrollOnNewMessages","useResizeObserverForFirstMessage","handleScroll","useScrollHandler","isUserMessage","useCallback","message","shouldShowAvatar","nextMessage","renderMessageBubble","previousMessage","position","bubbleProps","jsx","COLORS","BodySecondary","renderMessageAvatar","Fragment","jsxs","index","shouldShowDay","isSameDay","placement","getMessagePlacement","isCentered","shouldCenterAlign","isSmtp","MESSAGE_CHANNELS","isPrivateNote","Constants","React","Day","GiftedChat","forwardRef"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GiftedChat.js","sources":["../../../../../src/components/BikGiftedChat/GiftedChat/GiftedChat.tsx"],"sourcesContent":["import React, {\n\tforwardRef,\n\tuseCallback,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport { COLORS } from '../../../constants/Theme';\nimport { useWindowSize } from '../../../hooks/useWindowSize';\nimport { Button } from '../../button';\nimport { BodySecondary } from '../../TypographyStyle';\nimport { BubbleProps, GiftedChatAppType } from '../Bubble/types';\nimport { IMessage } from '../types';\nimport { Day } from './Day';\nimport { getMessagePlacement, shouldCenterAlign } from './messageHelpers';\nimport {\n\tuseAutoScrollOnNewMessages,\n\tuseInitialMountScroll,\n\tuseResizeObserverForFirstMessage,\n\tuseRestoreScrollPosition,\n\tuseScrollCleanup,\n\tuseScrollHandler,\n\tuseScrollToBottom,\n} from './scrollHooks';\nimport { AvatarProps, GiftedChatProps, MESSAGE_CHANNELS } from './types';\nimport { isSameDay, normalizeRef } from './utils';\nimport { Constants, TOP_THRESHOLD } from './utils';\n\nconst COLLAPSED_MAX_HEIGHT = 204;\n\nconst CollapsibleBubbleText: React.FC<{\n\ttext: string;\n\tisExpanded: boolean;\n\tonToggle: () => void;\n}> = ({ text, isExpanded, onToggle }) => {\n\tconst textRef = useRef<HTMLDivElement>(null);\n\tconst [isOverflowing, setIsOverflowing] = useState(false);\n\n\tuseEffect(() => {\n\t\tconst el = textRef.current;\n\t\tif (el) {\n\t\t\t// Temporarily remove max-height to measure true scroll height\n\t\t\tel.style.maxHeight = 'none';\n\t\t\tconst overflows = el.scrollHeight > COLLAPSED_MAX_HEIGHT;\n\t\t\tel.style.maxHeight = isExpanded ? 'none' : `${COLLAPSED_MAX_HEIGHT}px`;\n\t\t\tsetIsOverflowing(overflows);\n\t\t}\n\t}, [text, isExpanded]);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={textRef}\n\t\t\t\tstyle={{\n\t\t\t\t\tmaxHeight: isExpanded ? 'none' : COLLAPSED_MAX_HEIGHT,\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<BodySecondary>{text}</BodySecondary>\n\t\t\t</div>\n\t\t\t{isOverflowing && (\n\t\t\t\t<Button\n\t\t\t\t\tbuttonType=\"text\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\tbuttonText={isExpanded ? 'Show less' : 'Read more'}\n\t\t\t\t\tonClick={onToggle}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n};\n\nconst GiftedChatInner = (\n\tprops: Omit<GiftedChatProps<IMessage>, 'ref'>,\n\tforwardedRef: React.Ref<HTMLDivElement>,\n) => {\n\tconst {\n\t\tmessages = [],\n\t\tuser,\n\t\trenderBubble,\n\t\trenderAvatar,\n\t\trenderDay,\n\t\trenderLoading,\n\t\trenderChatEmpty,\n\t\tlistViewProps = {},\n\t\trenderAvatarOnTop = false,\n\t\tshowUserAvatar = false,\n\t\tshowAvatarForEveryMessage = false,\n\t\tinverted = false,\n\t\tmessageIdGenerator,\n\t\ttopThreshold = TOP_THRESHOLD,\n\t\tappType = GiftedChatAppType.Bik,\n\t\tmaxHeight,\n\t\tisActivityMessage,\n\t\t...extraProps\n\t} = props || {};\n\n\tconst isMobile = useWindowSize();\n\n\tconst internalScrollRef = useRef<HTMLDivElement | null>(null);\n\tconst scrollRef = normalizeRef(\n\t\tlistViewProps.ref || forwardedRef,\n\t\tinternalScrollRef,\n\t);\n\n\tconst scrollState = useRef({\n\t\tisInitialMount: true,\n\t\tisUserScrolling: false,\n\t\tisLoadingOldMessages: false,\n\t\tisAtBottom: true,\n\t\thasTriggeredEndReached: false,\n\t\tlastMessagesLength: messages?.length ?? 0,\n\t\tpreviousScrollHeight: 0,\n\t\tpreviousScrollTop: 0,\n\t\tscrollTimeout: null,\n\t});\n\n\tconst [expandedMessages, setExpandedMessages] = useState<\n\t\tSet<string | number>\n\t>(new Set());\n\n\t// Reverse messages so newest appears last in DOM (natural reading order)\n\tconst reversedMessages = useMemo(() => {\n\t\tif (!messages || messages.length === 0) return [] as IMessage[];\n\t\treturn [...messages].reverse() as IMessage[];\n\t}, [messages]);\n\n\t// Group consecutive same-day messages so each day separator can stick\n\t// within its own section and get pushed out by the next day's separator.\n\tconst dayGroups = useMemo(() => {\n\t\tconst groups: { createdAt: IMessage['createdAt']; indices: number[] }[] =\n\t\t\t[];\n\t\treversedMessages.forEach((message, index) => {\n\t\t\tconst previousMessage = reversedMessages[index - 1];\n\t\t\tif (index === 0 || !isSameDay(message, previousMessage)) {\n\t\t\t\tgroups.push({ createdAt: message.createdAt, indices: [index] });\n\t\t\t} else {\n\t\t\t\tgroups[groups.length - 1].indices.push(index);\n\t\t\t}\n\t\t});\n\t\treturn groups;\n\t}, [reversedMessages]);\n\n\tconst scrollToBottom = useScrollToBottom(scrollRef, scrollState);\n\n\tuseImperativeHandle(forwardedRef, () => scrollRef.current!);\n\n\tuseInitialMountScroll(\n\t\tscrollRef,\n\t\tscrollState,\n\t\treversedMessages.length,\n\t\tscrollToBottom,\n\t);\n\n\tuseScrollCleanup(scrollState);\n\n\tuseRestoreScrollPosition(scrollRef, scrollState, reversedMessages.length);\n\n\tuseAutoScrollOnNewMessages(\n\t\tscrollRef,\n\t\tscrollState,\n\t\tmessages.length,\n\t\tscrollToBottom,\n\t);\n\n\tuseResizeObserverForFirstMessage(\n\t\tmessages?.[0],\n\t\tscrollState,\n\t\tscrollToBottom,\n\t\tmessageIdGenerator,\n\t);\n\n\tconst handleScroll = useScrollHandler(\n\t\tscrollState,\n\t\tlistViewProps.onEndReached,\n\t\tlistViewProps.onScroll,\n\t\ttopThreshold,\n\t);\n\n\t// Check if a message belongs to the current user\n\tconst isUserMessage = useCallback(\n\t\t(message: IMessage) => {\n\t\t\treturn Boolean(message && user && message.user?._id === user._id);\n\t\t},\n\t\t[user],\n\t);\n\n\t// Determine if avatar should be shown for this message\n\tconst shouldShowAvatar = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage) => {\n\t\t\tif (!showUserAvatar) return false;\n\t\t\tif (showAvatarForEveryMessage) return true;\n\n\t\t\t// Show avatar on the first message in a consecutive sender stack,\n\t\t\t// or when an activity interrupts the stack, or when the current message itself is an activity\n\t\t\treturn (\n\t\t\t\t!previousMessage ||\n\t\t\t\t(isActivityMessage ? isActivityMessage(message) : false) ||\n\t\t\t\t(isActivityMessage ? isActivityMessage(previousMessage) : false) ||\n\t\t\t\tpreviousMessage.user._id !== message.user._id\n\t\t\t);\n\t\t},\n\t\t[showUserAvatar, showAvatarForEveryMessage, isActivityMessage],\n\t);\n\n\t// Render a message bubble (or call custom renderBubble)\n\tconst renderMessageBubble = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage, nextMessage?: IMessage) => {\n\t\t\tconst position = isUserMessage(message) ? 'right' : 'left';\n\t\t\tconst isTopOfStack = previousMessage?.user?._id !== message?.user?._id;\n\t\t\tconst isBottomOfStack = nextMessage?.user?._id !== message?.user?._id;\n\n\t\t\tconst bubbleProps: BubbleProps<IMessage> = {\n\t\t\t\tcurrentMessage: message,\n\t\t\t\tpreviousMessage,\n\t\t\t\tnextMessage,\n\t\t\t\tposition,\n\t\t\t\tuser,\n\t\t\t\t...extraProps,\n\t\t\t};\n\n\t\t\t// Use custom render function if provided\n\t\t\tif (renderBubble) {\n\t\t\t\treturn renderBubble(bubbleProps);\n\t\t\t}\n\n\t\t\t// Default bubble rendering\n\t\t\tconst messageId = message._id;\n\t\t\tconst isExpanded = expandedMessages.has(messageId);\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tmaxWidth: appType === GiftedChatAppType.Manifest ? '50%' : '70%',\n\t\t\t\t\t\twidth: 'fit-content',\n\t\t\t\t\t\t...(appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t? { minWidth: '130px' }\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\tpadding: '8px 12px',\n\t\t\t\t\t\tborderTopLeftRadius:\n\t\t\t\t\t\t\tposition === 'left' ? (isTopOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\t\tposition === 'right' ? (isTopOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\t\tposition === 'left' ? (isBottomOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\t\tposition === 'right' ? (isBottomOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborder:\n\t\t\t\t\t\t\tposition === 'left' && appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t? '1px solid rgb(224, 224, 224)'\n\t\t\t\t\t\t\t\t: 'none',\n\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\tposition === 'right'\n\t\t\t\t\t\t\t\t? appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t? COLORS.background.brandTint\n\t\t\t\t\t\t\t\t\t: COLORS.background.brandLight\n\t\t\t\t\t\t\t\t: appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t? COLORS.background.pureWhite\n\t\t\t\t\t\t\t\t: COLORS.background.inactive,\n\t\t\t\t\t\tcolor: COLORS.content.primary,\n\t\t\t\t\t\twordBreak: 'break-word',\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<CollapsibleBubbleText\n\t\t\t\t\t\ttext={message.text ?? ''}\n\t\t\t\t\t\tisExpanded={isExpanded}\n\t\t\t\t\t\tonToggle={() =>\n\t\t\t\t\t\t\tsetExpandedMessages((prev) => {\n\t\t\t\t\t\t\t\tconst next = new Set(prev);\n\t\t\t\t\t\t\t\tif (isExpanded) next.delete(messageId);\n\t\t\t\t\t\t\t\telse next.add(messageId);\n\t\t\t\t\t\t\t\treturn next;\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</div>\n\t\t\t);\n\t\t},\n\t\t[isUserMessage, user, renderBubble, extraProps, expandedMessages],\n\t);\n\n\t// Render a message avatar (or call custom renderAvatar)\n\tconst renderMessageAvatar = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage, nextMessage?: IMessage) => {\n\t\t\tconst shouldShow = shouldShowAvatar(message, previousMessage);\n\n\t\t\tif (!shouldShow) return null;\n\n\t\t\tconst position = isUserMessage(message) ? 'right' : 'left';\n\n\t\t\tconst avatarProps: AvatarProps<IMessage> = {\n\t\t\t\tcurrentMessage: message,\n\t\t\t\tpreviousMessage,\n\t\t\t\tnextMessage,\n\t\t\t\tposition,\n\t\t\t\tuser,\n\t\t\t\trenderAvatarOnTop,\n\t\t\t\tshowUserAvatar,\n\t\t\t\tshowAvatarForEveryMessage,\n\t\t\t};\n\n\t\t\treturn renderAvatar ? renderAvatar(avatarProps) : null;\n\t\t},\n\t\t[\n\t\t\tshouldShowAvatar,\n\t\t\tisUserMessage,\n\t\t\tuser,\n\t\t\trenderAvatarOnTop,\n\t\t\tshowUserAvatar,\n\t\t\tshowAvatarForEveryMessage,\n\t\t\trenderAvatar,\n\t\t],\n\t);\n\n\t// Render: Empty State\n\tif (!messages || messages.length === 0) {\n\t\treturn renderChatEmpty ? <>{renderChatEmpty()}</> : null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tref={scrollRef as React.RefObject<HTMLDivElement>}\n\t\t\tstyle={{\n\t\t\t\tflex: 1,\n\t\t\t\toverflowY: 'auto',\n\t\t\t\toverflowX: 'hidden',\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\t...(maxHeight ? { maxHeight, height: maxHeight } : {}),\n\t\t\t\t...listViewProps.style,\n\t\t\t}}\n\t\t\tonScroll={handleScroll}\n\t\t>\n\t\t\t{/* Spacer to push messages to bottom (newest appears last in DOM) */}\n\t\t\t<div style={{ flex: '1 0 auto' }} />\n\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tflex: '0 0 auto',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{dayGroups.map((group, groupIndex) => (\n\t\t\t\t\t<div key={`day-group-${groupIndex}`}>\n\t\t\t\t\t\t{/* Day separator — sticks to top while this day scrolls past */}\n\t\t\t\t\t\t{renderDay ? (\n\t\t\t\t\t\t\t<div style={{ position: 'sticky', top: 0, zIndex: 2 }}>\n\t\t\t\t\t\t\t\t{renderDay({ createdAt: group.createdAt })}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Day\n\t\t\t\t\t\t\t\tcreatedAt={group.createdAt}\n\t\t\t\t\t\t\t\tappType={appType}\n\t\t\t\t\t\t\t\tscrollRootRef={scrollRef}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{group.indices.map((index) => {\n\t\t\t\t\t\t\tconst message = reversedMessages[index];\n\t\t\t\t\t\t\tconst isSmtp =\n\t\t\t\t\t\t\t\tmessage?.['channelId'] === MESSAGE_CHANNELS.SMTP ||\n\t\t\t\t\t\t\t\tmessage?.['channelName'] === MESSAGE_CHANNELS.SMTP;\n\t\t\t\t\t\t\tconst position = isSmtp\n\t\t\t\t\t\t\t\t? 'left'\n\t\t\t\t\t\t\t\t: isUserMessage(message)\n\t\t\t\t\t\t\t\t? 'right'\n\t\t\t\t\t\t\t\t: 'left';\n\t\t\t\t\t\t\tconst previousMessage = reversedMessages[index - 1];\n\t\t\t\t\t\t\tconst nextMessage = reversedMessages[index + 1];\n\t\t\t\t\t\t\tconst placement = getMessagePlacement(message, position);\n\t\t\t\t\t\t\tconst isCentered = shouldCenterAlign(message);\n\t\t\t\t\t\t\t// Check if message is a private note\n\t\t\t\t\t\t\tconst isPrivateNote =\n\t\t\t\t\t\t\t\tmessage['category'] ===\n\t\t\t\t\t\t\t\t\tConstants.ChatActivity.Category.ACTIVITY &&\n\t\t\t\t\t\t\t\tmessage['activityType'] ===\n\t\t\t\t\t\t\t\t\tConstants.ChatActivity.Type.PRIVATE_NOTE;\n\t\t\t\t\t\t\tconst isActivity =\n\t\t\t\t\t\t\t\tmessage['category'] ===\n\t\t\t\t\t\t\t\t\tConstants.ChatActivity.Category.ACTIVITY && !isPrivateNote;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<React.Fragment\n\t\t\t\t\t\t\t\t\tkey={\n\t\t\t\t\t\t\t\t\t\tmessage._id ?? `${index}-${messageIdGenerator?.() ?? 'id'}`\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\t{/* Message container */}\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t...(isMobile ? { margin: '0 4px' } : {}),\n\t\t\t\t\t\t\t\t\t\t\t...(isCentered\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\t: { display: 'flex', alignItems: 'flex-start' }),\n\t\t\t\t\t\t\t\t\t\t\t...(appType !== GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t\t\t\t? !isMobile && position === 'right'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { marginLeft: 8 }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: { marginRight: 8 }\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...(isSmtp && !isPrivateNote && isMobile\n\t\t\t\t\t\t\t\t\t\t\t\t? { marginLeft: 8, marginRight: 8 }\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...(isSmtp && isPrivateNote\n\t\t\t\t\t\t\t\t\t\t\t\t? { marginRight: 16 }\n\t\t\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: placement,\n\t\t\t\t\t\t\t\t\t\t\tmarginBottom: isSmtp\n\t\t\t\t\t\t\t\t\t\t\t\t? // SMTP: flat 24px between mails, no same/different-user split.\n\t\t\t\t\t\t\t\t\t\t\t\t nextMessage\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 24\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t\t: nextMessage\n\t\t\t\t\t\t\t\t\t\t\t\t? nextMessage?.user?._id === message?.user?._id\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 4\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 20\n\t\t\t\t\t\t\t\t\t\t\t\t: 0,\n\t\t\t\t\t\t\t\t\t\t\t// Activity cards: no left/bottom margin.\n\t\t\t\t\t\t\t\t\t\t\t...(isActivity ? { marginLeft: 0, marginBottom: 0 } : {}),\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{/* Left avatar or placeholder (for mobile, avatar is hidden) */}\n\t\t\t\t\t\t\t\t\t\t{!isMobile && position === 'left' && (\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tmarginRight: '4px',\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: '24px',\n\t\t\t\t\t\t\t\t\t\t\t\t\tflexShrink: 0,\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\t\t{renderMessageAvatar(\n\t\t\t\t\t\t\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\t\t\t\t\t\t\tpreviousMessage,\n\t\t\t\t\t\t\t\t\t\t\t\t\tnextMessage,\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</div>\n\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t{/* Message bubble */}\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tid={`message-bubble-${\n\t\t\t\t\t\t\t\t\t\t\t\tmessage._id ??\n\t\t\t\t\t\t\t\t\t\t\t\t`${index}-${messageIdGenerator?.() ?? 'id'}`\n\t\t\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\t\tappType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { width: '100%' }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: isMobile || isSmtp\n\t\t\t\t\t\t\t\t\t\t\t\t\t? { display: 'flex', flexGrow: 1, width: '100%' }\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>\n\t\t\t\t\t\t\t\t\t\t\t{renderMessageBubble(\n\t\t\t\t\t\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\t\t\t\t\t\tpreviousMessage,\n\t\t\t\t\t\t\t\t\t\t\t\tnextMessage,\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t{/* Right avatar or placeholder (for mobile, avatar is hidden) */}\n\t\t\t\t\t\t\t\t\t\t{!isMobile && position === 'right' && (\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tmarginLeft: '4px',\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: '24px',\n\t\t\t\t\t\t\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\talignSelf: 'flex-start',\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\t\t{renderMessageAvatar(\n\t\t\t\t\t\t\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\t\t\t\t\t\t\tpreviousMessage,\n\t\t\t\t\t\t\t\t\t\t\t\t\tnextMessage,\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</div>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</React.Fragment>\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</div>\n\t\t</div>\n\t);\n};\n\nexport default forwardRef<HTMLDivElement, GiftedChatProps<IMessage>>(\n\tGiftedChatInner,\n);\n"],"names":["COLLAPSED_MAX_HEIGHT","CollapsibleBubbleText","text","isExpanded","onToggle","textRef","useRef","isOverflowing","setIsOverflowing","useState","useEffect","el","overflows","jsxs","Fragment","jsx","BodySecondary","Button","GiftedChatInner","props","forwardedRef","messages","user","renderBubble","renderAvatar","renderDay","renderLoading","renderChatEmpty","listViewProps","renderAvatarOnTop","showUserAvatar","showAvatarForEveryMessage","inverted","messageIdGenerator","topThreshold","TOP_THRESHOLD","appType","GiftedChatAppType","maxHeight","isActivityMessage","extraProps","isMobile","useWindowSize","internalScrollRef","scrollRef","normalizeRef","scrollState","expandedMessages","setExpandedMessages","reversedMessages","useMemo","dayGroups","groups","message","index","previousMessage","isSameDay","scrollToBottom","useScrollToBottom","useImperativeHandle","useInitialMountScroll","useScrollCleanup","useRestoreScrollPosition","useAutoScrollOnNewMessages","useResizeObserverForFirstMessage","handleScroll","useScrollHandler","isUserMessage","useCallback","shouldShowAvatar","renderMessageBubble","nextMessage","position","isTopOfStack","isBottomOfStack","bubbleProps","messageId","COLORS","prev","next","renderMessageAvatar","group","groupIndex","Day","isSmtp","MESSAGE_CHANNELS","placement","getMessagePlacement","isCentered","shouldCenterAlign","isPrivateNote","Constants","isActivity","React","GiftedChat","forwardRef"],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ export interface AvatarProps<TMessage extends IMessage = IMessage> {
|
|
|
28
28
|
renderAvatarOnTop?: boolean;
|
|
29
29
|
/** Whether to show user avatar. */
|
|
30
30
|
showUserAvatar?: boolean;
|
|
31
|
-
/** Show avatar for every message. */
|
|
31
|
+
/** Show avatar for every message; when false, show only on the first message of each consecutive sender group. */
|
|
32
32
|
showAvatarForEveryMessage?: boolean;
|
|
33
33
|
/** Custom styles for avatar image. */
|
|
34
34
|
imageStyle?: LeftRightStyle<React.CSSProperties>;
|
|
@@ -80,7 +80,7 @@ export interface GiftedChatProps<TMessage extends IMessage = IMessage> {
|
|
|
80
80
|
renderAvatarOnTop?: boolean;
|
|
81
81
|
/** Whether to show user avatar. */
|
|
82
82
|
showUserAvatar?: boolean;
|
|
83
|
-
/** Show avatar for every message. */
|
|
83
|
+
/** Show avatar for every message; when false, show only on the first message of each consecutive sender group. */
|
|
84
84
|
showAvatarForEveryMessage?: boolean;
|
|
85
85
|
/** Whether to invert the message list. */
|
|
86
86
|
inverted?: boolean;
|
|
@@ -91,6 +91,10 @@ export interface GiftedChatProps<TMessage extends IMessage = IMessage> {
|
|
|
91
91
|
/** Function to generate message IDs. */
|
|
92
92
|
messageIdGenerator?: (message?: TMessage) => string;
|
|
93
93
|
appType?: GiftedChatAppType;
|
|
94
|
+
/** Maximum height of the chat messages container in pixels. When set, the container clips overflow and scrolls within that height. */
|
|
95
|
+
maxHeight?: number;
|
|
96
|
+
/** Returns true if a message is a non-chat activity (e.g. assignment, status change). Used to break sender stacks for avatar and border-radius logic. */
|
|
97
|
+
isActivityMessage?: (message: TMessage) => boolean;
|
|
94
98
|
[key: string]: any;
|
|
95
99
|
}
|
|
96
100
|
export interface ScrollState {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../../src/components/BikGiftedChat/GiftedChat/types.ts"],"sourcesContent":["import React from 'react';\nimport { BubbleProps, GiftedChatAppType } from '../Bubble/types';\nimport { IMessage, LeftRightStyle, User } from '../types';\n\nexport interface ListViewProps {\n\t/** Custom styles for the container. */\n\tstyle?: React.CSSProperties;\n\t/** Callback when end of list is reached. */\n\tonEndReached?: () => void;\n\t/** Threshold for triggering end reached. */\n\tonEndReachedThreshold?: number;\n\t/** Scroll event handler. */\n\tonScroll?: (event: React.UIEvent<HTMLDivElement>) => void;\n\t/** Ref for the scrollable container. */\n\tref?:\n\t\t| React.RefObject<HTMLDivElement>\n\t\t| React.MutableRefObject<HTMLDivElement | null>;\n}\n\nexport interface AvatarProps<TMessage extends IMessage = IMessage> {\n\t/** The current message for the avatar. */\n\tcurrentMessage: TMessage;\n\t/** The previous message. */\n\tpreviousMessage?: TMessage;\n\t/** The next message. */\n\tnextMessage?: TMessage;\n\t/** Position of the avatar ('left' or 'right'). */\n\tposition: 'left' | 'right';\n\t/** The user object. */\n\tuser: User;\n\t/** Whether to render avatar on top. */\n\trenderAvatarOnTop?: boolean;\n\t/** Whether to show user avatar. */\n\tshowUserAvatar?: boolean;\n\t/** Show avatar for every message. */\n\tshowAvatarForEveryMessage?: boolean;\n\t/** Custom styles for avatar image. */\n\timageStyle?: LeftRightStyle<React.CSSProperties>;\n\t/** Custom styles for avatar container. */\n\tcontainerStyle?: LeftRightStyle<React.CSSProperties>;\n\t[key: string]: any;\n}\n\nexport interface DayProps {\n\t/** Date/time for the separator. */\n\tcreatedAt?: Date | number | string;\n\t/** Format for displaying the date. */\n\tdateFormat?: string;\n\t/** Calendar format options. */\n\tdateFormatCalendar?: {\n\t\t/** Format for same day. */\n\t\tsameDay?: string;\n\t\t/** Format for next day. */\n\t\tnextDay?: string;\n\t\t/** Format for next week. */\n\t\tnextWeek?: string;\n\t\t/** Format for last day. */\n\t\tlastDay?: string;\n\t\t/** Format for last week. */\n\t\tlastWeek?: string;\n\t\t/** Format for other days. */\n\t\tsameElse?: string;\n\t};\n}\n\nexport interface GiftedChatProps<TMessage extends IMessage = IMessage> {\n\t/** Array of chat messages. */\n\tmessages: TMessage[];\n\t/** The current user object. */\n\tuser: User;\n\n\t/** Custom bubble renderer. */\n\trenderBubble?: (props: BubbleProps<TMessage>) => React.ReactNode;\n\t/** Custom avatar renderer. */\n\trenderAvatar?: (props: AvatarProps<TMessage>) => React.ReactNode;\n\t/** Custom day separator renderer. */\n\trenderDay?: (props: DayProps) => React.ReactNode;\n\t/** Custom loading renderer. */\n\trenderLoading?: () => React.ReactNode;\n\t/** Custom empty chat renderer. */\n\trenderChatEmpty?: () => React.ReactNode;\n\n\t/** Props for the scrollable list view. */\n\tlistViewProps?: ListViewProps;\n\n\t/** Scroll threshold for loading old messages. */\n\ttopThreshold?: number;\n\n\t/** Whether to render avatar on top. */\n\trenderAvatarOnTop?: boolean;\n\t/** Whether to show user avatar. */\n\tshowUserAvatar?: boolean;\n\t/** Show avatar for every message. */\n\tshowAvatarForEveryMessage?: boolean;\n\t/** Whether to invert the message list. */\n\tinverted?: boolean;\n\n\t/** Handler for long press on message. */\n\tonLongPress?: (context?: any, message?: TMessage) => void;\n\t/** Handler for press on message. */\n\tonPress?: (context?: any, message?: TMessage) => void;\n\n\t/** Function to generate message IDs. */\n\tmessageIdGenerator?: (message?: TMessage) => string;\n\tappType?: GiftedChatAppType;\n\n\t[key: string]: any;\n}\n\nexport interface ScrollState {\n\t/** Is initial mount of the component. */\n\tisInitialMount: boolean;\n\t/** Is user currently scrolling. */\n\tisUserScrolling: boolean;\n\t/** Is loading old messages. */\n\tisLoadingOldMessages: boolean;\n\n\t/** Is scroll at bottom. */\n\tisAtBottom: boolean;\n\t/** Has end reached been triggered. */\n\thasTriggeredEndReached: boolean;\n\n\t/** Last known messages length. */\n\tlastMessagesLength: number;\n\n\t/** Previous scroll height. */\n\tpreviousScrollHeight: number;\n\t/** Previous scroll top position. */\n\tpreviousScrollTop: number;\n\n\t/** Debounce timer for scroll events. */\n\tscrollTimeout: number | null;\n}\n\nexport enum CHAT_ACTIVITY_TYPES_FOR_CALL_BUBBLE {\n\t/** User is calling another user. */\n\tCALLING_CALL = 'CALLING_CALL',\n\t/** Call is ringing for the recipient. */\n\tRINGING_CALL = 'RINGING_CALL',\n\t/** Call is ongoing between users. */\n\tONGOING_CALL = 'ONGOING_CALL',\n\t/** Call has been completed. */\n\tCOMPLETED_CALL = 'COMPLETED_CALL',\n\t/** Call was missed by the recipient. */\n\tMISSED_CALL = 'MISSED_CALL',\n\t/** Callback was requested. */\n\tREQUESTED_CALLBACK = 'REQUESTED_CALLBACK',\n\t/** Call was declined by the recipient. */\n\tDECLINED_CALL = 'DECLINED_CALL',\n\t/** Call was disconnected. */\n\tDISCONNECTED_CALL = 'DISCONNECTED_CALL',\n\t/** Call was unanswered. */\n\tUNANSWERED_CALL = 'UNANSWERED_CALL',\n}\n\nexport const enum MESSAGE_CHANNELS {\n\tINSTAGRAM = 'instagram',\n\tMESSENGER = 'messenger',\n\tWHATSAPP = 'whatsapp',\n\tGMAIL = 'gmail',\n\tLIVECHAT = 'livechat',\n\tGOOGLE_BUSINESS_CHAT = 'gbm',\n\tSHOPIFY = 'shopify',\n\tFACEBOOK = 'facebook',\n\tEMAIL = 'email',\n\tSMTP = 'smtp',\n\tFACEBOOK_CATALOG = 'facebook-catalog',\n\tWHATSAPP_VOICE_CALL = 'whatsapp-voice-call',\n\tCREATE_SIGNATURE = 'create-signature',\n\tEDIT_SIGNATURE = 'edit-signature',\n\tWEBPUSH = 'webpush',\n\tTASKS = 'tasks',\n\tRCS = 'rcs',\n}\n"],"names":["CHAT_ACTIVITY_TYPES_FOR_CALL_BUBBLE","MESSAGE_CHANNELS"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../src/components/BikGiftedChat/GiftedChat/types.ts"],"sourcesContent":["import React from 'react';\nimport { BubbleProps, GiftedChatAppType } from '../Bubble/types';\nimport { IMessage, LeftRightStyle, User } from '../types';\n\nexport interface ListViewProps {\n\t/** Custom styles for the container. */\n\tstyle?: React.CSSProperties;\n\t/** Callback when end of list is reached. */\n\tonEndReached?: () => void;\n\t/** Threshold for triggering end reached. */\n\tonEndReachedThreshold?: number;\n\t/** Scroll event handler. */\n\tonScroll?: (event: React.UIEvent<HTMLDivElement>) => void;\n\t/** Ref for the scrollable container. */\n\tref?:\n\t\t| React.RefObject<HTMLDivElement>\n\t\t| React.MutableRefObject<HTMLDivElement | null>;\n}\n\nexport interface AvatarProps<TMessage extends IMessage = IMessage> {\n\t/** The current message for the avatar. */\n\tcurrentMessage: TMessage;\n\t/** The previous message. */\n\tpreviousMessage?: TMessage;\n\t/** The next message. */\n\tnextMessage?: TMessage;\n\t/** Position of the avatar ('left' or 'right'). */\n\tposition: 'left' | 'right';\n\t/** The user object. */\n\tuser: User;\n\t/** Whether to render avatar on top. */\n\trenderAvatarOnTop?: boolean;\n\t/** Whether to show user avatar. */\n\tshowUserAvatar?: boolean;\n\t/** Show avatar for every message; when false, show only on the first message of each consecutive sender group. */\n\tshowAvatarForEveryMessage?: boolean;\n\t/** Custom styles for avatar image. */\n\timageStyle?: LeftRightStyle<React.CSSProperties>;\n\t/** Custom styles for avatar container. */\n\tcontainerStyle?: LeftRightStyle<React.CSSProperties>;\n\t[key: string]: any;\n}\n\nexport interface DayProps {\n\t/** Date/time for the separator. */\n\tcreatedAt?: Date | number | string;\n\t/** Format for displaying the date. */\n\tdateFormat?: string;\n\t/** Calendar format options. */\n\tdateFormatCalendar?: {\n\t\t/** Format for same day. */\n\t\tsameDay?: string;\n\t\t/** Format for next day. */\n\t\tnextDay?: string;\n\t\t/** Format for next week. */\n\t\tnextWeek?: string;\n\t\t/** Format for last day. */\n\t\tlastDay?: string;\n\t\t/** Format for last week. */\n\t\tlastWeek?: string;\n\t\t/** Format for other days. */\n\t\tsameElse?: string;\n\t};\n}\n\nexport interface GiftedChatProps<TMessage extends IMessage = IMessage> {\n\t/** Array of chat messages. */\n\tmessages: TMessage[];\n\t/** The current user object. */\n\tuser: User;\n\n\t/** Custom bubble renderer. */\n\trenderBubble?: (props: BubbleProps<TMessage>) => React.ReactNode;\n\t/** Custom avatar renderer. */\n\trenderAvatar?: (props: AvatarProps<TMessage>) => React.ReactNode;\n\t/** Custom day separator renderer. */\n\trenderDay?: (props: DayProps) => React.ReactNode;\n\t/** Custom loading renderer. */\n\trenderLoading?: () => React.ReactNode;\n\t/** Custom empty chat renderer. */\n\trenderChatEmpty?: () => React.ReactNode;\n\n\t/** Props for the scrollable list view. */\n\tlistViewProps?: ListViewProps;\n\n\t/** Scroll threshold for loading old messages. */\n\ttopThreshold?: number;\n\n\t/** Whether to render avatar on top. */\n\trenderAvatarOnTop?: boolean;\n\t/** Whether to show user avatar. */\n\tshowUserAvatar?: boolean;\n\t/** Show avatar for every message; when false, show only on the first message of each consecutive sender group. */\n\tshowAvatarForEveryMessage?: boolean;\n\t/** Whether to invert the message list. */\n\tinverted?: boolean;\n\n\t/** Handler for long press on message. */\n\tonLongPress?: (context?: any, message?: TMessage) => void;\n\t/** Handler for press on message. */\n\tonPress?: (context?: any, message?: TMessage) => void;\n\n\t/** Function to generate message IDs. */\n\tmessageIdGenerator?: (message?: TMessage) => string;\n\tappType?: GiftedChatAppType;\n\t/** Maximum height of the chat messages container in pixels. When set, the container clips overflow and scrolls within that height. */\n\tmaxHeight?: number;\n\t/** Returns true if a message is a non-chat activity (e.g. assignment, status change). Used to break sender stacks for avatar and border-radius logic. */\n\tisActivityMessage?: (message: TMessage) => boolean;\n\n\t[key: string]: any;\n}\n\nexport interface ScrollState {\n\t/** Is initial mount of the component. */\n\tisInitialMount: boolean;\n\t/** Is user currently scrolling. */\n\tisUserScrolling: boolean;\n\t/** Is loading old messages. */\n\tisLoadingOldMessages: boolean;\n\n\t/** Is scroll at bottom. */\n\tisAtBottom: boolean;\n\t/** Has end reached been triggered. */\n\thasTriggeredEndReached: boolean;\n\n\t/** Last known messages length. */\n\tlastMessagesLength: number;\n\n\t/** Previous scroll height. */\n\tpreviousScrollHeight: number;\n\t/** Previous scroll top position. */\n\tpreviousScrollTop: number;\n\n\t/** Debounce timer for scroll events. */\n\tscrollTimeout: number | null;\n}\n\nexport enum CHAT_ACTIVITY_TYPES_FOR_CALL_BUBBLE {\n\t/** User is calling another user. */\n\tCALLING_CALL = 'CALLING_CALL',\n\t/** Call is ringing for the recipient. */\n\tRINGING_CALL = 'RINGING_CALL',\n\t/** Call is ongoing between users. */\n\tONGOING_CALL = 'ONGOING_CALL',\n\t/** Call has been completed. */\n\tCOMPLETED_CALL = 'COMPLETED_CALL',\n\t/** Call was missed by the recipient. */\n\tMISSED_CALL = 'MISSED_CALL',\n\t/** Callback was requested. */\n\tREQUESTED_CALLBACK = 'REQUESTED_CALLBACK',\n\t/** Call was declined by the recipient. */\n\tDECLINED_CALL = 'DECLINED_CALL',\n\t/** Call was disconnected. */\n\tDISCONNECTED_CALL = 'DISCONNECTED_CALL',\n\t/** Call was unanswered. */\n\tUNANSWERED_CALL = 'UNANSWERED_CALL',\n}\n\nexport const enum MESSAGE_CHANNELS {\n\tINSTAGRAM = 'instagram',\n\tMESSENGER = 'messenger',\n\tWHATSAPP = 'whatsapp',\n\tGMAIL = 'gmail',\n\tLIVECHAT = 'livechat',\n\tGOOGLE_BUSINESS_CHAT = 'gbm',\n\tSHOPIFY = 'shopify',\n\tFACEBOOK = 'facebook',\n\tEMAIL = 'email',\n\tSMTP = 'smtp',\n\tFACEBOOK_CATALOG = 'facebook-catalog',\n\tWHATSAPP_VOICE_CALL = 'whatsapp-voice-call',\n\tCREATE_SIGNATURE = 'create-signature',\n\tEDIT_SIGNATURE = 'edit-signature',\n\tWEBPUSH = 'webpush',\n\tTASKS = 'tasks',\n\tRCS = 'rcs',\n}\n"],"names":["CHAT_ACTIVITY_TYPES_FOR_CALL_BUBBLE","MESSAGE_CHANNELS"],"mappings":"AA0IO,IAAKA,sBAAAA,OAEXA,EAAA,eAAe,gBAEfA,EAAA,eAAe,gBAEfA,EAAA,eAAe,gBAEfA,EAAA,iBAAiB,kBAEjBA,EAAA,cAAc,eAEdA,EAAA,qBAAqB,sBAErBA,EAAA,gBAAgB,iBAEhBA,EAAA,oBAAoB,qBAEpBA,EAAA,kBAAkB,mBAlBPA,IAAAA,KAAA,CAAA,CAAA,GAqBMC,sBAAAA,OACjBA,EAAA,YAAY,aACZA,EAAA,YAAY,aACZA,EAAA,WAAW,YACXA,EAAA,QAAQ,SACRA,EAAA,WAAW,YACXA,EAAA,uBAAuB,OACvBA,EAAA,UAAU,WACVA,EAAA,WAAW,YACXA,EAAA,QAAQ,SACRA,EAAA,OAAO,QACPA,EAAA,mBAAmB,oBACnBA,EAAA,sBAAsB,uBACtBA,EAAA,mBAAmB,oBACnBA,EAAA,iBAAiB,kBACjBA,EAAA,UAAU,WACVA,EAAA,QAAQ,SACRA,EAAA,MAAM,OAjBWA,IAAAA,KAAA,CAAA,CAAA;"}
|
|
@@ -27,6 +27,10 @@ export declare const TitleSmall: import('styled-components').StyledComponent<"di
|
|
|
27
27
|
numberOfLines?: number | undefined;
|
|
28
28
|
color?: string | undefined;
|
|
29
29
|
}, never>;
|
|
30
|
+
export declare const TitleTiny: import('styled-components').StyledComponent<"div", any, {
|
|
31
|
+
numberOfLines?: number | undefined;
|
|
32
|
+
color?: string | undefined;
|
|
33
|
+
}, never>;
|
|
30
34
|
export declare const Display: import('styled-components').StyledComponent<"div", any, {
|
|
31
35
|
numberOfLines?: number | undefined;
|
|
32
36
|
color?: string | undefined;
|
|
@@ -70,6 +74,10 @@ export declare const BodyTiny: import('styled-components').StyledComponent<"div"
|
|
|
70
74
|
numberOfLines?: number | undefined;
|
|
71
75
|
color?: string | undefined;
|
|
72
76
|
}, never>;
|
|
77
|
+
export declare const BodyTinySemiBold: import('styled-components').StyledComponent<"div", any, {
|
|
78
|
+
numberOfLines?: number | undefined;
|
|
79
|
+
color?: string | undefined;
|
|
80
|
+
}, never>;
|
|
73
81
|
export declare const AiBodyTiny: import('styled-components').StyledComponent<"div", any, {
|
|
74
82
|
numberOfLines?: number | undefined;
|
|
75
83
|
color?: string | undefined;
|