@bikdotai/bik-component-library 0.0.805-beta.33 → 0.0.805-beta.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/cjs/components/BikGiftedChat/Bubble/Bubble.js +1 -1
  2. package/dist/cjs/components/BikGiftedChat/Bubble/Bubble.js.map +1 -1
  3. package/dist/cjs/components/BikGiftedChat/GiftedChat/GiftedChat.js +1 -1
  4. package/dist/cjs/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
  5. package/dist/cjs/components/checkBox/CheckBox.js +1 -1
  6. package/dist/cjs/components/checkBox/CheckBox.js.map +1 -1
  7. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +1 -1
  8. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  9. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js +1 -1
  10. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js.map +1 -1
  11. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +7 -7
  12. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
  13. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js +1 -1
  14. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
  15. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +1 -1
  16. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
  17. package/dist/cjs/components/list-item/ListItem.js +1 -1
  18. package/dist/cjs/components/list-item/ListItem.js.map +1 -1
  19. package/dist/cjs/components/list-item/ListItem.styled.js +1 -1
  20. package/dist/cjs/components/list-item/ListItem.styled.js.map +1 -1
  21. package/dist/cjs/components/list-item/themes.js +1 -1
  22. package/dist/cjs/components/list-item/themes.js.map +1 -1
  23. package/dist/cjs/src/components/checkBox/CheckBox.d.ts +1 -0
  24. package/dist/cjs/src/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.d.ts +2 -0
  25. package/dist/cjs/src/components/dropdown/OpenedDropdown/components/menu/MenuItem.d.ts +2 -0
  26. package/dist/cjs/src/components/dropdown/OpenedDropdown/components/menu/MenuList.d.ts +2 -0
  27. package/dist/cjs/src/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.d.ts +2 -0
  28. package/dist/cjs/src/components/dropdown/type.d.ts +4 -0
  29. package/dist/cjs/src/components/list-item/List.model.d.ts +1 -0
  30. package/dist/cjs/src/components/list-item/ListItem.styled.d.ts +1 -0
  31. package/dist/cjs/src/components/list-item/themes.d.ts +2 -2
  32. package/dist/esm/components/BikGiftedChat/Bubble/Bubble.js +1 -1
  33. package/dist/esm/components/BikGiftedChat/Bubble/Bubble.js.map +1 -1
  34. package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js +1 -1
  35. package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
  36. package/dist/esm/components/checkBox/CheckBox.js +1 -1
  37. package/dist/esm/components/checkBox/CheckBox.js.map +1 -1
  38. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +1 -1
  39. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  40. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js +1 -1
  41. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js.map +1 -1
  42. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +9 -9
  43. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
  44. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js +1 -1
  45. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
  46. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +1 -1
  47. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
  48. package/dist/esm/components/list-item/ListItem.js +1 -1
  49. package/dist/esm/components/list-item/ListItem.js.map +1 -1
  50. package/dist/esm/components/list-item/ListItem.styled.js +1 -1
  51. package/dist/esm/components/list-item/ListItem.styled.js.map +1 -1
  52. package/dist/esm/components/list-item/themes.js +1 -1
  53. package/dist/esm/components/list-item/themes.js.map +1 -1
  54. package/dist/esm/src/components/checkBox/CheckBox.d.ts +1 -0
  55. package/dist/esm/src/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.d.ts +2 -0
  56. package/dist/esm/src/components/dropdown/OpenedDropdown/components/menu/MenuItem.d.ts +2 -0
  57. package/dist/esm/src/components/dropdown/OpenedDropdown/components/menu/MenuList.d.ts +2 -0
  58. package/dist/esm/src/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.d.ts +2 -0
  59. package/dist/esm/src/components/dropdown/type.d.ts +4 -0
  60. package/dist/esm/src/components/list-item/List.model.d.ts +1 -0
  61. package/dist/esm/src/components/list-item/ListItem.styled.d.ts +1 -0
  62. package/dist/esm/src/components/list-item/themes.d.ts +2 -2
  63. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("react"),t=require("../../../constants/Theme.js"),n=require("../../../hooks/useWindowSize.js"),s=require("../GiftedChat/types.js"),l=require("../GiftedChat/utils.js"),r=require("./types.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}const a=o=>{var a,d,c,u,g,v;const{currentMessage:f,position:b,renderMessageText:h,renderTicks:y,renderTime:j,renderCustomView:p,isCustomViewBottom:m,isUnsatisfactoryMessageFn:O,messagesGroupedByAiTraceId:C,onPress:S,containerStyle:A,bubbleStyles:T,appType:x=r.GiftedChatAppType.Bik}=o,M=n.useWindowSize(),I=f,k=x===r.GiftedChatAppType.Manifest,E=i.useMemo((()=>I.category===l.Constants.ChatActivity.Category.ACTIVITY&&I.activityType===l.Constants.ChatActivity.Type.PRIVATE_NOTE),[I.category,I.activityType]),G=i.useMemo((()=>{const[e,i]=l.isStringifiedArray(null==I?void 0:I.message);return e&&i&&Array.isArray(i)}),[null==I?void 0:I.message]),L=(null==I?void 0:I.channelId)===s.MESSAGE_CHANNELS.SMTP||(null==I?void 0:I.channelName)===s.MESSAGE_CHANNELS.SMTP,N=i.useMemo((()=>{var e,i,n;const l={borderRadius:8,minHeight:20,margin:0,flexGrow:M?1:0,width:"100%"},r=(null==I?void 0:I.channelId)===s.MESSAGE_CHANNELS.GMAIL||(null==I?void 0:I.channelName)===s.MESSAGE_CHANNELS.GMAIL;let o={};if(k)return o="left"===b?T&&"object"==typeof T.left?T.left:{}:T&&"object"==typeof T.right?T.right:{},Object.assign({},o);if("left"===b)o=Object.assign(Object.assign({},M||r||L?{maxWidth:"100%"}:{}),E?{background:t.COLORS.background.warning.light}:{backgroundColor:(null==I?void 0:I.isPrivateMail)?t.COLORS.background.blue.light:t.COLORS.surface.standard});else{const i=O&&O({aiTraceId:null===(e=I.eventProperties)||void 0===e?void 0:e.aiTraceId,messagesGroupedByAiTraceId:C});o=Object.assign(Object.assign({backgroundColor:"failed"===I.status||i?t.COLORS.background.negative.light:t.COLORS.background.brandUltraLight},E?{background:t.COLORS.background.warning.light}:{}),!M&&G?{maxWidth:500}:{})}const a=T&&"object"==typeof T?"left"in T||"right"in T?"left"===b?null!==(i=T.left)&&void 0!==i?i:{}:null!==(n=T.right)&&void 0!==n?n:{}:T:{};return Object.assign(Object.assign(Object.assign({},l),o),a)}),[null==I?void 0:I.channelId,null==I?void 0:I.channelName,null===(a=null==I?void 0:I.meta)||void 0===a?void 0:a.aiUsed,null==I?void 0:I.status,null===(d=null==I?void 0:I.eventProperties)||void 0===d?void 0:d.aiTraceId,b,M,E,G,O,C,null==I?void 0:I.isPrivateMail,T,k]),w=i.useCallback((()=>e.jsxs("div",{children:[!m&&(null==p?void 0:p(o)),null==h?void 0:h(o),m&&(null==p?void 0:p(o))]})),[m,p,h,o]),P=i.useMemo((()=>k&&"object"==typeof A?"left"===b&&"left"in A&&A.left&&"object"==typeof A.left?A.left:"right"===b&&"right"in A&&A.right&&"object"==typeof A.right?A.right:{}:{}),[k,A,b]),q=!k&&A&&"object"==typeof A?"left"in A||"right"in A?"left"===b?null!==(c=A.left)&&void 0!==c?c:{}:null!==(u=A.right)&&void 0!==u?u:{}:A:{};return e.jsx("div",Object.assign({style:Object.assign(Object.assign(Object.assign({display:"flex",background:"red",marginTop:k?0:6,marginBottom:k?0:(null===(v=null===(g=null==f?void 0:f.messageInformation)||void 0===g?void 0:g.reactions)||void 0===v?void 0:v.length)>0?24:6,flexGrow:M?1:0},k?Object.assign({alignItems:"flex-end"},"right"===b?{cursor:"pointer"}:{}):{}),P),q)},k?{onClick:S}:{},{children:e.jsx("div",Object.assign({style:N},{children:e.jsxs("div",{children:[e.jsx("div",Object.assign({id:f.chatActivityId||`message-${f.psqlId}`},{children:w()})),e.jsxs("div",Object.assign({style:{display:"flex",flexDirection:"row",justifyContent:"flex-end"}},{children:[null==j?void 0:j(o),null==y?void 0:y(f)]}))]})}))}))},d=o(i).default.memo(a);exports.Bubble=d,exports.default=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("react"),t=require("../../../constants/Theme.js"),n=require("../../../hooks/useWindowSize.js"),s=require("../GiftedChat/types.js"),l=require("../GiftedChat/utils.js"),r=require("./types.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}const a=o=>{var a,d,c,u,g,v;const{currentMessage:f,position:b,renderMessageText:h,renderTicks:y,renderTime:j,renderCustomView:p,isCustomViewBottom:m,isUnsatisfactoryMessageFn:O,messagesGroupedByAiTraceId:C,onPress:S,containerStyle:A,bubbleStyles:T,appType:x=r.GiftedChatAppType.Bik}=o,M=n.useWindowSize(),I=f,k=x===r.GiftedChatAppType.Manifest,E=i.useMemo((()=>I.category===l.Constants.ChatActivity.Category.ACTIVITY&&I.activityType===l.Constants.ChatActivity.Type.PRIVATE_NOTE),[I.category,I.activityType]),G=i.useMemo((()=>{const[e,i]=l.isStringifiedArray(null==I?void 0:I.message);return e&&i&&Array.isArray(i)}),[null==I?void 0:I.message]),L=(null==I?void 0:I.channelId)===s.MESSAGE_CHANNELS.SMTP||(null==I?void 0:I.channelName)===s.MESSAGE_CHANNELS.SMTP,N=i.useMemo((()=>{var e,i,n;const l={borderRadius:8,minHeight:20,margin:0,flexGrow:M?1:0,width:"100%"},r=(null==I?void 0:I.channelId)===s.MESSAGE_CHANNELS.GMAIL||(null==I?void 0:I.channelName)===s.MESSAGE_CHANNELS.GMAIL;let o={};if(k)return o="left"===b?T&&"object"==typeof T.left?T.left:{}:T&&"object"==typeof T.right?T.right:{},Object.assign({},o);if("left"===b)o=Object.assign(Object.assign({},M||r||L?{maxWidth:"100%"}:{}),E?{background:t.COLORS.background.warning.light}:{backgroundColor:(null==I?void 0:I.isPrivateMail)?t.COLORS.background.blue.light:t.COLORS.surface.standard});else{const i=O&&O({aiTraceId:null===(e=I.eventProperties)||void 0===e?void 0:e.aiTraceId,messagesGroupedByAiTraceId:C});o=Object.assign(Object.assign({backgroundColor:"failed"===I.status||i?t.COLORS.background.negative.light:t.COLORS.background.brandUltraLight},E?{background:t.COLORS.background.warning.light}:{}),!M&&G?{maxWidth:500}:{})}const a=T&&"object"==typeof T?"left"in T||"right"in T?"left"===b?null!==(i=T.left)&&void 0!==i?i:{}:null!==(n=T.right)&&void 0!==n?n:{}:T:{};return Object.assign(Object.assign(Object.assign({},l),o),a)}),[null==I?void 0:I.channelId,null==I?void 0:I.channelName,null===(a=null==I?void 0:I.meta)||void 0===a?void 0:a.aiUsed,null==I?void 0:I.status,null===(d=null==I?void 0:I.eventProperties)||void 0===d?void 0:d.aiTraceId,b,M,E,G,O,C,null==I?void 0:I.isPrivateMail,T,k]),w=i.useCallback((()=>e.jsxs("div",{children:[!m&&(null==p?void 0:p(o)),null==h?void 0:h(o),m&&(null==p?void 0:p(o))]})),[m,p,h,o]),P=i.useMemo((()=>k&&"object"==typeof A?"left"===b&&"left"in A&&A.left&&"object"==typeof A.left?A.left:"right"===b&&"right"in A&&A.right&&"object"==typeof A.right?A.right:{}:{}),[k,A,b]),q=!k&&A&&"object"==typeof A?"left"in A||"right"in A?"left"===b?null!==(c=A.left)&&void 0!==c?c:{}:null!==(u=A.right)&&void 0!==u?u:{}:A:{};return e.jsx("div",Object.assign({style:Object.assign(Object.assign(Object.assign({display:"flex",marginTop:k?0:6,marginBottom:k?0:(null===(v=null===(g=null==f?void 0:f.messageInformation)||void 0===g?void 0:g.reactions)||void 0===v?void 0:v.length)>0?24:6,flexGrow:M?1:0},k?Object.assign({alignItems:"flex-end"},"right"===b?{cursor:"pointer"}:{}):{}),P),q)},k?{onClick:S}:{},{children:e.jsx("div",Object.assign({style:N},{children:e.jsxs("div",{children:[e.jsx("div",Object.assign({id:f.chatActivityId||`message-${f.psqlId}`},{children:w()})),e.jsxs("div",Object.assign({style:{display:"flex",flexDirection:"row",justifyContent:"flex-end"}},{children:[null==j?void 0:j(o),null==y?void 0:y(f)]}))]})}))}))},d=o(i).default.memo(a);exports.Bubble=d,exports.default=d;
2
2
  //# sourceMappingURL=Bubble.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Bubble.js","sources":["../../../../../src/components/BikGiftedChat/Bubble/Bubble.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport { COLORS } from '../../../constants/Theme';\nimport { useWindowSize } from '../../../hooks/useWindowSize';\nimport { MESSAGE_CHANNELS } from '../GiftedChat/types';\nimport { Constants, isStringifiedArray } from '../GiftedChat/utils';\nimport { IMessage } from '../types';\nimport { BubbleProps, GiftedChatAppType } from './types';\n\nconst BubbleComponent = <TMessage extends IMessage = IMessage>(\n\tprops: BubbleProps<TMessage>,\n): React.ReactElement => {\n\tconst {\n\t\tcurrentMessage,\n\t\tposition,\n\t\trenderMessageText,\n\t\trenderTicks,\n\t\trenderTime,\n\t\trenderCustomView,\n\t\tisCustomViewBottom,\n\t\tisUnsatisfactoryMessageFn,\n\t\tmessagesGroupedByAiTraceId,\n\t\tonPress,\n\t\tcontainerStyle,\n\t\tbubbleStyles,\n\t\tappType = GiftedChatAppType.Bik,\n\t} = props;\n\n\tconst isMobile = useWindowSize();\n\tconst message = currentMessage as any;\n\tconst isManifestApp = appType === GiftedChatAppType.Manifest;\n\n\t// Check if message is a private note\n\tconst isPrivateNote = useMemo(\n\t\t() =>\n\t\t\tmessage.category === Constants.ChatActivity.Category.ACTIVITY &&\n\t\t\tmessage.activityType === Constants.ChatActivity.Type.PRIVATE_NOTE,\n\t\t[message.category, message.activityType],\n\t);\n\n\t// Check if message is a carousel (array of items)\n\tconst isCarouselMessage = useMemo(() => {\n\t\tconst [parsedSuccessfully, parsedMessage] = isStringifiedArray(\n\t\t\tmessage?.message,\n\t\t);\n\t\treturn parsedSuccessfully && parsedMessage && Array.isArray(parsedMessage);\n\t}, [message?.message]);\n\tconst isSmtp =\n\t\tmessage?.channelId === MESSAGE_CHANNELS.SMTP ||\n\t\tmessage?.channelName === MESSAGE_CHANNELS.SMTP;\n\n\t// Generates wrapper styles for the message bubble\n\t// Handles position-based styling, channel-specific layouts, and message states\n\tconst wrapperStyles = useMemo((): React.CSSProperties => {\n\t\tconst baseStyles: React.CSSProperties = {\n\t\t\tborderRadius: 8,\n\t\t\tminHeight: 20,\n\t\t\tmargin: 0,\n\t\t\tflexGrow: isMobile ? 1 : 0,\n\t\t\twidth: '100%',\n\t\t};\n\n\t\t// Check if message is from email channels\n\t\tconst isGmail =\n\t\t\tmessage?.channelId === MESSAGE_CHANNELS.GMAIL ||\n\t\t\tmessage?.channelName === MESSAGE_CHANNELS.GMAIL;\n\n\t\tlet dynamicStyles: React.CSSProperties = {};\n\n\t\tif (isManifestApp) {\n\t\t\tif (position === 'left') {\n\t\t\t\tdynamicStyles =\n\t\t\t\t\tbubbleStyles && typeof bubbleStyles.left === 'object'\n\t\t\t\t\t\t? bubbleStyles.left\n\t\t\t\t\t\t: {};\n\t\t\t} else {\n\t\t\t\tdynamicStyles =\n\t\t\t\t\tbubbleStyles && typeof bubbleStyles.right === 'object'\n\t\t\t\t\t\t? bubbleStyles.right\n\t\t\t\t\t\t: {};\n\t\t\t}\n\t\t\treturn { ...dynamicStyles };\n\t\t} else {\n\t\t\tif (position === 'left') {\n\t\t\t\tdynamicStyles = {\n\t\t\t\t\t...(isMobile || isGmail || isSmtp ? { maxWidth: '100%' } : {}),\n\t\t\t\t\t...(isPrivateNote\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbackground: COLORS.background.warning.light,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tbackgroundColor: message?.isPrivateMail\n\t\t\t\t\t\t\t\t\t? COLORS.background.blue.light\n\t\t\t\t\t\t\t\t\t: COLORS.surface.standard,\n\t\t\t\t\t\t }),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tconst isUnsatisfactory =\n\t\t\t\t\tisUnsatisfactoryMessageFn &&\n\t\t\t\t\tisUnsatisfactoryMessageFn({\n\t\t\t\t\t\taiTraceId: message.eventProperties?.aiTraceId,\n\t\t\t\t\t\tmessagesGroupedByAiTraceId,\n\t\t\t\t\t});\n\n\t\t\t\tdynamicStyles = {\n\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\tmessage.status === 'failed' || isUnsatisfactory\n\t\t\t\t\t\t\t? COLORS.background.negative.light\n\t\t\t\t\t\t\t: COLORS.background.brandUltraLight,\n\t\t\t\t\t...(isPrivateNote\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbackground: COLORS.background.warning.light,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {}),\n\t\t\t\t\t...(!isMobile && isCarouselMessage ? { maxWidth: 500 } : {}),\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tconst extraBubbleStyles: React.CSSProperties =\n\t\t\tbubbleStyles && typeof bubbleStyles === 'object'\n\t\t\t\t? 'left' in bubbleStyles || 'right' in bubbleStyles\n\t\t\t\t\t? position === 'left'\n\t\t\t\t\t\t? (bubbleStyles as { left?: React.CSSProperties }).left ?? {}\n\t\t\t\t\t\t: (bubbleStyles as { right?: React.CSSProperties }).right ?? {}\n\t\t\t\t\t: (bubbleStyles as React.CSSProperties)\n\t\t\t\t: {};\n\n\t\treturn { ...baseStyles, ...dynamicStyles, ...extraBubbleStyles };\n\t}, [\n\t\tmessage?.channelId,\n\t\tmessage?.channelName,\n\t\tmessage?.meta?.aiUsed,\n\t\tmessage?.status,\n\t\tmessage?.eventProperties?.aiTraceId,\n\t\tposition,\n\t\tisMobile,\n\t\tisPrivateNote,\n\t\tisCarouselMessage,\n\t\tisUnsatisfactoryMessageFn,\n\t\tmessagesGroupedByAiTraceId,\n\t\tmessage?.isPrivateMail,\n\t\tbubbleStyles,\n\t\tisManifestApp,\n\t]);\n\n\t// Renders the content of the message bubble\n\t// Handles custom views and message text in the correct order\n\tconst renderContent = useCallback(() => {\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t{!isCustomViewBottom && renderCustomView?.(props)}\n\n\t\t\t\t{renderMessageText?.(props)}\n\n\t\t\t\t{isCustomViewBottom && renderCustomView?.(props)}\n\t\t\t</div>\n\t\t);\n\t}, [isCustomViewBottom, renderCustomView, renderMessageText, props]);\n\n\tconst manifestContainerStyle = useMemo(() => {\n\t\tif (!isManifestApp || typeof containerStyle !== 'object') return {};\n\t\tif (\n\t\t\tposition === 'left' &&\n\t\t\t'left' in containerStyle &&\n\t\t\tcontainerStyle.left &&\n\t\t\ttypeof containerStyle.left === 'object'\n\t\t) {\n\t\t\treturn containerStyle.left;\n\t\t}\n\t\tif (\n\t\t\tposition === 'right' &&\n\t\t\t'right' in containerStyle &&\n\t\t\tcontainerStyle.right &&\n\t\t\ttypeof containerStyle.right === 'object'\n\t\t) {\n\t\t\treturn containerStyle.right;\n\t\t}\n\t\treturn {};\n\t}, [isManifestApp, containerStyle, position]);\n\n\tconst extraContainerStyle: React.CSSProperties =\n\t\t!isManifestApp && containerStyle && typeof containerStyle === 'object'\n\t\t\t? 'left' in containerStyle || 'right' in containerStyle\n\t\t\t\t? position === 'left'\n\t\t\t\t\t? (containerStyle as { left?: React.CSSProperties }).left ?? {}\n\t\t\t\t\t: (containerStyle as { right?: React.CSSProperties }).right ?? {}\n\t\t\t\t: (containerStyle as React.CSSProperties)\n\t\t\t: {};\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tbackground: 'red',\n\t\t\t\tmarginTop: isManifestApp ? 0 : 6,\n\t\t\t\tmarginBottom: isManifestApp\n\t\t\t\t\t? 0\n\t\t\t\t\t: currentMessage?.['messageInformation']?.reactions?.length > 0\n\t\t\t\t\t? 24\n\t\t\t\t\t: 6,\n\t\t\t\tflexGrow: isMobile ? 1 : 0,\n\t\t\t\t...(isManifestApp\n\t\t\t\t\t? {\n\t\t\t\t\t\t\talignItems: 'flex-end',\n\t\t\t\t\t\t\t...(position === 'right' ? { cursor: 'pointer' } : {}),\n\t\t\t\t\t }\n\t\t\t\t\t: {}),\n\t\t\t\t...manifestContainerStyle,\n\t\t\t\t...extraContainerStyle,\n\t\t\t}}\n\t\t\t{...(isManifestApp ? { onClick: onPress } : {})}\n\t\t>\n\t\t\t<div style={wrapperStyles}>\n\t\t\t\t<div>\n\t\t\t\t\t{/* Message content */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={\n\t\t\t\t\t\t\tcurrentMessage['chatActivityId'] ||\n\t\t\t\t\t\t\t`message-${currentMessage['psqlId']}`\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderContent()}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Message metadata (time and status) */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\tflexDirection: 'row',\n\t\t\t\t\t\t\tjustifyContent: 'flex-end',\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderTime?.(props)}\n\t\t\t\t\t\t{renderTicks?.(currentMessage)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n// Export memoized version for performance\nexport const Bubble = React.memo(BubbleComponent) as typeof BubbleComponent;\n\nexport default Bubble;\n"],"names":["BubbleComponent","props","currentMessage","position","renderMessageText","renderTicks","renderTime","renderCustomView","isCustomViewBottom","isUnsatisfactoryMessageFn","messagesGroupedByAiTraceId","onPress","containerStyle","bubbleStyles","appType","GiftedChatAppType","Bik","isMobile","useWindowSize","message","isManifestApp","Manifest","isPrivateNote","useMemo","category","Constants","ChatActivity","Category","ACTIVITY","activityType","Type","PRIVATE_NOTE","isCarouselMessage","parsedSuccessfully","parsedMessage","isStringifiedArray","Array","isArray","isSmtp","channelId","MESSAGE_CHANNELS","SMTP","channelName","wrapperStyles","baseStyles","borderRadius","minHeight","margin","flexGrow","width","isGmail","GMAIL","dynamicStyles","left","right","Object","assign","maxWidth","background","COLORS","warning","light","backgroundColor","isPrivateMail","blue","surface","standard","isUnsatisfactory","aiTraceId","_a","eventProperties","status","negative","brandUltraLight","extraBubbleStyles","_b","_c","meta","aiUsed","renderContent","useCallback","_jsxs","children","manifestContainerStyle","extraContainerStyle","_d","_jsx","style","display","marginTop","marginBottom","_f","_e","reactions","length","alignItems","cursor","onClick","jsx","jsxs","id","flexDirection","justifyContent","Bubble","React","memo"],"mappings":"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"}
1
+ {"version":3,"file":"Bubble.js","sources":["../../../../../src/components/BikGiftedChat/Bubble/Bubble.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport { COLORS } from '../../../constants/Theme';\nimport { useWindowSize } from '../../../hooks/useWindowSize';\nimport { MESSAGE_CHANNELS } from '../GiftedChat/types';\nimport { Constants, isStringifiedArray } from '../GiftedChat/utils';\nimport { IMessage } from '../types';\nimport { BubbleProps, GiftedChatAppType } from './types';\n\nconst BubbleComponent = <TMessage extends IMessage = IMessage>(\n\tprops: BubbleProps<TMessage>,\n): React.ReactElement => {\n\tconst {\n\t\tcurrentMessage,\n\t\tposition,\n\t\trenderMessageText,\n\t\trenderTicks,\n\t\trenderTime,\n\t\trenderCustomView,\n\t\tisCustomViewBottom,\n\t\tisUnsatisfactoryMessageFn,\n\t\tmessagesGroupedByAiTraceId,\n\t\tonPress,\n\t\tcontainerStyle,\n\t\tbubbleStyles,\n\t\tappType = GiftedChatAppType.Bik,\n\t} = props;\n\n\tconst isMobile = useWindowSize();\n\tconst message = currentMessage as any;\n\tconst isManifestApp = appType === GiftedChatAppType.Manifest;\n\n\t// Check if message is a private note\n\tconst isPrivateNote = useMemo(\n\t\t() =>\n\t\t\tmessage.category === Constants.ChatActivity.Category.ACTIVITY &&\n\t\t\tmessage.activityType === Constants.ChatActivity.Type.PRIVATE_NOTE,\n\t\t[message.category, message.activityType],\n\t);\n\n\t// Check if message is a carousel (array of items)\n\tconst isCarouselMessage = useMemo(() => {\n\t\tconst [parsedSuccessfully, parsedMessage] = isStringifiedArray(\n\t\t\tmessage?.message,\n\t\t);\n\t\treturn parsedSuccessfully && parsedMessage && Array.isArray(parsedMessage);\n\t}, [message?.message]);\n\tconst isSmtp =\n\t\tmessage?.channelId === MESSAGE_CHANNELS.SMTP ||\n\t\tmessage?.channelName === MESSAGE_CHANNELS.SMTP;\n\n\t// Generates wrapper styles for the message bubble\n\t// Handles position-based styling, channel-specific layouts, and message states\n\tconst wrapperStyles = useMemo((): React.CSSProperties => {\n\t\tconst baseStyles: React.CSSProperties = {\n\t\t\tborderRadius: 8,\n\t\t\tminHeight: 20,\n\t\t\tmargin: 0,\n\t\t\tflexGrow: isMobile ? 1 : 0,\n\t\t\twidth: '100%',\n\t\t};\n\n\t\t// Check if message is from email channels\n\t\tconst isGmail =\n\t\t\tmessage?.channelId === MESSAGE_CHANNELS.GMAIL ||\n\t\t\tmessage?.channelName === MESSAGE_CHANNELS.GMAIL;\n\n\t\tlet dynamicStyles: React.CSSProperties = {};\n\n\t\tif (isManifestApp) {\n\t\t\tif (position === 'left') {\n\t\t\t\tdynamicStyles =\n\t\t\t\t\tbubbleStyles && typeof bubbleStyles.left === 'object'\n\t\t\t\t\t\t? bubbleStyles.left\n\t\t\t\t\t\t: {};\n\t\t\t} else {\n\t\t\t\tdynamicStyles =\n\t\t\t\t\tbubbleStyles && typeof bubbleStyles.right === 'object'\n\t\t\t\t\t\t? bubbleStyles.right\n\t\t\t\t\t\t: {};\n\t\t\t}\n\t\t\treturn { ...dynamicStyles };\n\t\t} else {\n\t\t\tif (position === 'left') {\n\t\t\t\tdynamicStyles = {\n\t\t\t\t\t...(isMobile || isGmail || isSmtp ? { maxWidth: '100%' } : {}),\n\t\t\t\t\t...(isPrivateNote\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbackground: COLORS.background.warning.light,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tbackgroundColor: message?.isPrivateMail\n\t\t\t\t\t\t\t\t\t? COLORS.background.blue.light\n\t\t\t\t\t\t\t\t\t: COLORS.surface.standard,\n\t\t\t\t\t\t }),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tconst isUnsatisfactory =\n\t\t\t\t\tisUnsatisfactoryMessageFn &&\n\t\t\t\t\tisUnsatisfactoryMessageFn({\n\t\t\t\t\t\taiTraceId: message.eventProperties?.aiTraceId,\n\t\t\t\t\t\tmessagesGroupedByAiTraceId,\n\t\t\t\t\t});\n\n\t\t\t\tdynamicStyles = {\n\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\tmessage.status === 'failed' || isUnsatisfactory\n\t\t\t\t\t\t\t? COLORS.background.negative.light\n\t\t\t\t\t\t\t: COLORS.background.brandUltraLight,\n\t\t\t\t\t...(isPrivateNote\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbackground: COLORS.background.warning.light,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {}),\n\t\t\t\t\t...(!isMobile && isCarouselMessage ? { maxWidth: 500 } : {}),\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tconst extraBubbleStyles: React.CSSProperties =\n\t\t\tbubbleStyles && typeof bubbleStyles === 'object'\n\t\t\t\t? 'left' in bubbleStyles || 'right' in bubbleStyles\n\t\t\t\t\t? position === 'left'\n\t\t\t\t\t\t? (bubbleStyles as { left?: React.CSSProperties }).left ?? {}\n\t\t\t\t\t\t: (bubbleStyles as { right?: React.CSSProperties }).right ?? {}\n\t\t\t\t\t: (bubbleStyles as React.CSSProperties)\n\t\t\t\t: {};\n\n\t\treturn { ...baseStyles, ...dynamicStyles, ...extraBubbleStyles };\n\t}, [\n\t\tmessage?.channelId,\n\t\tmessage?.channelName,\n\t\tmessage?.meta?.aiUsed,\n\t\tmessage?.status,\n\t\tmessage?.eventProperties?.aiTraceId,\n\t\tposition,\n\t\tisMobile,\n\t\tisPrivateNote,\n\t\tisCarouselMessage,\n\t\tisUnsatisfactoryMessageFn,\n\t\tmessagesGroupedByAiTraceId,\n\t\tmessage?.isPrivateMail,\n\t\tbubbleStyles,\n\t\tisManifestApp,\n\t]);\n\n\t// Renders the content of the message bubble\n\t// Handles custom views and message text in the correct order\n\tconst renderContent = useCallback(() => {\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t{!isCustomViewBottom && renderCustomView?.(props)}\n\n\t\t\t\t{renderMessageText?.(props)}\n\n\t\t\t\t{isCustomViewBottom && renderCustomView?.(props)}\n\t\t\t</div>\n\t\t);\n\t}, [isCustomViewBottom, renderCustomView, renderMessageText, props]);\n\n\tconst manifestContainerStyle = useMemo(() => {\n\t\tif (!isManifestApp || typeof containerStyle !== 'object') return {};\n\t\tif (\n\t\t\tposition === 'left' &&\n\t\t\t'left' in containerStyle &&\n\t\t\tcontainerStyle.left &&\n\t\t\ttypeof containerStyle.left === 'object'\n\t\t) {\n\t\t\treturn containerStyle.left;\n\t\t}\n\t\tif (\n\t\t\tposition === 'right' &&\n\t\t\t'right' in containerStyle &&\n\t\t\tcontainerStyle.right &&\n\t\t\ttypeof containerStyle.right === 'object'\n\t\t) {\n\t\t\treturn containerStyle.right;\n\t\t}\n\t\treturn {};\n\t}, [isManifestApp, containerStyle, position]);\n\n\tconst extraContainerStyle: React.CSSProperties =\n\t\t!isManifestApp && containerStyle && typeof containerStyle === 'object'\n\t\t\t? 'left' in containerStyle || 'right' in containerStyle\n\t\t\t\t? position === 'left'\n\t\t\t\t\t? (containerStyle as { left?: React.CSSProperties }).left ?? {}\n\t\t\t\t\t: (containerStyle as { right?: React.CSSProperties }).right ?? {}\n\t\t\t\t: (containerStyle as React.CSSProperties)\n\t\t\t: {};\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tmarginTop: isManifestApp ? 0 : 6,\n\t\t\t\tmarginBottom: isManifestApp\n\t\t\t\t\t? 0\n\t\t\t\t\t: currentMessage?.['messageInformation']?.reactions?.length > 0\n\t\t\t\t\t? 24\n\t\t\t\t\t: 6,\n\t\t\t\tflexGrow: isMobile ? 1 : 0,\n\t\t\t\t...(isManifestApp\n\t\t\t\t\t? {\n\t\t\t\t\t\t\talignItems: 'flex-end',\n\t\t\t\t\t\t\t...(position === 'right' ? { cursor: 'pointer' } : {}),\n\t\t\t\t\t }\n\t\t\t\t\t: {}),\n\t\t\t\t...manifestContainerStyle,\n\t\t\t\t...extraContainerStyle,\n\t\t\t}}\n\t\t\t{...(isManifestApp ? { onClick: onPress } : {})}\n\t\t>\n\t\t\t<div style={wrapperStyles}>\n\t\t\t\t<div>\n\t\t\t\t\t{/* Message content */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={\n\t\t\t\t\t\t\tcurrentMessage['chatActivityId'] ||\n\t\t\t\t\t\t\t`message-${currentMessage['psqlId']}`\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderContent()}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Message metadata (time and status) */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\tflexDirection: 'row',\n\t\t\t\t\t\t\tjustifyContent: 'flex-end',\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderTime?.(props)}\n\t\t\t\t\t\t{renderTicks?.(currentMessage)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n// Export memoized version for performance\nexport const Bubble = React.memo(BubbleComponent) as typeof BubbleComponent;\n\nexport default Bubble;\n"],"names":["BubbleComponent","props","currentMessage","position","renderMessageText","renderTicks","renderTime","renderCustomView","isCustomViewBottom","isUnsatisfactoryMessageFn","messagesGroupedByAiTraceId","onPress","containerStyle","bubbleStyles","appType","GiftedChatAppType","Bik","isMobile","useWindowSize","message","isManifestApp","Manifest","isPrivateNote","useMemo","category","Constants","ChatActivity","Category","ACTIVITY","activityType","Type","PRIVATE_NOTE","isCarouselMessage","parsedSuccessfully","parsedMessage","isStringifiedArray","Array","isArray","isSmtp","channelId","MESSAGE_CHANNELS","SMTP","channelName","wrapperStyles","baseStyles","borderRadius","minHeight","margin","flexGrow","width","isGmail","GMAIL","dynamicStyles","left","right","Object","assign","maxWidth","background","COLORS","warning","light","backgroundColor","isPrivateMail","blue","surface","standard","isUnsatisfactory","aiTraceId","_a","eventProperties","status","negative","brandUltraLight","extraBubbleStyles","_b","_c","meta","aiUsed","renderContent","useCallback","_jsxs","children","manifestContainerStyle","extraContainerStyle","_d","_jsx","style","display","marginTop","marginBottom","_f","_e","reactions","length","alignItems","cursor","onClick","jsx","jsxs","id","flexDirection","justifyContent","Bubble","React","memo"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),s=require("react"),r=require("../../../constants/Theme.js"),i=require("../../../hooks/useWindowSize.js"),n=require("../../button/Button.js"),l=require("../../TypographyStyle.js"),a=require("../Bubble/types.js"),o=require("./Day.js"),d=require("./messageHelpers.js"),u=require("./scrollHooks.js"),g=require("./types.js"),c=require("./utils.js");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=h(s);const v=e=>{let{text:r,isExpanded:i,onToggle:a}=e;const o=s.useRef(null),[d,u]=s.useState(!1);return s.useEffect((()=>{const e=o.current;if(e){e.style.maxHeight="none";const t=e.scrollHeight>204;e.style.maxHeight=i?"none":"204px",u(t)}}),[r,i]),t.jsxs(t.Fragment,{children:[t.jsx("div",Object.assign({ref:o,style:{maxHeight:i?"none":204,overflow:"hidden"}},{children:t.jsx(l.BodySecondary,{children:r})})),d&&t.jsx(n.Button,{buttonType:"text",size:"xs",buttonText:i?"Show less":"Read more",onClick:a})]})},f=(n,l)=>{var h;const f=n||{},{messages:x=[],user:y,renderBubble:b,renderAvatar:j,renderDay:m,renderLoading:T,renderChatEmpty:O,listViewProps:S={},renderAvatarOnTop:A=!1,showUserAvatar:C=!1,showAvatarForEveryMessage:M=!1,inverted:w=!1,messageIdGenerator:R,topThreshold:_=c.TOP_THRESHOLD,appType:E=a.GiftedChatAppType.Bik,maxHeight:L,isActivityMessage:k}=f,H=e.__rest(f,["messages","user","renderBubble","renderAvatar","renderDay","renderLoading","renderChatEmpty","listViewProps","renderAvatarOnTop","showUserAvatar","showAvatarForEveryMessage","inverted","messageIdGenerator","topThreshold","appType","maxHeight","isActivityMessage"]),B=i.useWindowSize(),q=s.useRef(null),G=c.normalizeRef(S.ref||l,q),I=s.useRef({isInitialMount:!0,isUserScrolling:!1,isLoadingOldMessages:!1,isAtBottom:!0,hasTriggeredEndReached:!1,lastMessagesLength:null!==(h=null==x?void 0:x.length)&&void 0!==h?h:0,previousScrollHeight:0,previousScrollTop:0,scrollTimeout:null}),[P,D]=s.useState(new Set),F=s.useMemo((()=>x&&0!==x.length?[...x].reverse():[]),[x]),N=u.useScrollToBottom(G,I);s.useImperativeHandle(l,(()=>G.current)),u.useInitialMountScroll(G,I,F.length,N),u.useScrollCleanup(I),u.useRestoreScrollPosition(G,I,F.length),u.useAutoScrollOnNewMessages(G,I,x.length,N),u.useResizeObserverForFirstMessage(null==x?void 0:x[0],I,N,R);const z=u.useScrollHandler(I,S.onEndReached,S.onScroll,_),W=s.useCallback((e=>{var t;return Boolean(e&&y&&(null===(t=e.user)||void 0===t?void 0:t._id)===y._id)}),[y]),$=s.useCallback(((e,t)=>!!C&&(!!M||(!t||!!k&&k(e)||!!k&&k(t)||t.user._id!==e.user._id))),[C,M,k]),U=s.useCallback(((e,s,i)=>{var n,l,o,d,u;const g=W(e)?"right":"left",c=(null===(n=null==s?void 0:s.user)||void 0===n?void 0:n._id)!==(null===(l=null==e?void 0:e.user)||void 0===l?void 0:l._id),h=(null===(o=null==i?void 0:i.user)||void 0===o?void 0:o._id)!==(null===(d=null==e?void 0:e.user)||void 0===d?void 0:d._id),p=Object.assign({currentMessage:e,previousMessage:s,nextMessage:i,position:g,user:y},H);if(b)return b(p);const f=e._id,x=P.has(f);return t.jsx("div",Object.assign({style:Object.assign(Object.assign({maxWidth:E===a.GiftedChatAppType.Manifest?"50%":"70%",width:"fit-content"},E===a.GiftedChatAppType.Manifest?{minWidth:"130px"}:{}),{padding:"8px 12px",borderTopLeftRadius:"left"===g?c?12:2:12,borderTopRightRadius:"right"===g?c?12:2:12,borderBottomLeftRadius:"left"===g?h?12:2:12,borderBottomRightRadius:"right"===g?h?12:2:12,border:"left"===g&&E===a.GiftedChatAppType.Manifest?"1px solid rgb(224, 224, 224)":"none",backgroundColor:"right"===g?E===a.GiftedChatAppType.Manifest?r.COLORS.background.brandTint:r.COLORS.background.brandLight:E===a.GiftedChatAppType.Manifest?r.COLORS.background.pureWhite:r.COLORS.background.inactive,color:r.COLORS.content.primary,wordBreak:"break-word"})},{children:t.jsx(v,{text:null!==(u=e.text)&&void 0!==u?u:"",isExpanded:x,onToggle:()=>D((e=>{const t=new Set(e);return x?t.delete(f):t.add(f),t}))})}))}),[W,y,b,H,P]),V=s.useCallback(((e,t,s)=>{if(!$(e,t))return null;const r=W(e)?"right":"left";return j?j({currentMessage:e,previousMessage:t,nextMessage:s,position:r,user:y,renderAvatarOnTop:A,showUserAvatar:C,showAvatarForEveryMessage:M}):null}),[$,W,y,A,C,M,j]);return x&&0!==x.length?t.jsxs("div",Object.assign({ref:G,style:Object.assign(Object.assign({flex:1,overflowY:"auto",overflowX:"hidden",display:"flex",flexDirection:"column"},L?{maxHeight:L,height:L}:{}),S.style),onScroll:z},{children:[t.jsx("div",{style:{flex:"1 0 auto"}}),t.jsx("div",Object.assign({style:{display:"flex",flexDirection:"column",flex:"0 0 auto"}},{children:F.map(((e,s)=>{var r,i,n,l,u,h;const v=(null==e?void 0:e.channelId)===g.MESSAGE_CHANNELS.SMTP||(null==e?void 0:e.channelName)===g.MESSAGE_CHANNELS.SMTP,f=v?"left":W(e)?"right":"left",x=F[s-1],y=F[s+1],b=!c.isSameDay(e,x),j=d.getMessagePlacement(e,f),T=d.shouldCenterAlign(e),O=e.category===c.Constants.ChatActivity.Category.ACTIVITY&&e.activityType===c.Constants.ChatActivity.Type.PRIVATE_NOTE;return t.jsxs(p.default.Fragment,{children:[b&&(m?m({createdAt:e.createdAt}):t.jsx(o.Day,{createdAt:e.createdAt,appType:E})),t.jsxs("div",Object.assign({style:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},B?{margin:"0 4px"}:{}),T?{}:{display:"flex",alignItems:"flex-start"}),E!==a.GiftedChatAppType.Manifest?B||"right"!==f?{marginRight:8}:{marginLeft:8}:{}),v&&!O&&B?{marginLeft:8,marginRight:8}:{}),{justifyContent:j,marginBottom:y?(null===(r=null==y?void 0:y.user)||void 0===r?void 0:r._id)===(null===(i=null==e?void 0:e.user)||void 0===i?void 0:i._id)?4:20:0})},{children:[!B&&"left"===f&&t.jsx("div",Object.assign({style:{marginRight:v?"0px":"4px",width:"24px",flexShrink:0}},{children:V(e,x,y)})),t.jsx("div",Object.assign({id:`message-bubble-${null!==(n=e._id)&&void 0!==n?n:`${s}-${null!==(l=null==R?void 0:R())&&void 0!==l?l:"id"}`}`,style:E===a.GiftedChatAppType.Manifest?{width:"100%"}:v?{display:"flex",flexGrow:1,width:"100%"}:{}},{children:U(e,x,y)})),!B&&"right"===f&&t.jsx("div",Object.assign({style:{marginLeft:"4px",width:"24px",flexShrink:0,alignSelf:"flex-start"}},{children:V(e,x,y)}))]}))]},null!==(u=e._id)&&void 0!==u?u:`${s}-${null!==(h=null==R?void 0:R())&&void 0!==h?h:"id"}`)}))}))]})):O?t.jsx(t.Fragment,{children:O()}):null};var x=s.forwardRef(f);exports.default=x;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),s=require("react"),r=require("../../../constants/Theme.js"),i=require("../../../hooks/useWindowSize.js"),n=require("../../button/Button.js"),l=require("../../TypographyStyle.js"),a=require("../Bubble/types.js"),o=require("./Day.js"),d=require("./messageHelpers.js"),u=require("./scrollHooks.js"),g=require("./types.js"),c=require("./utils.js");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=h(s);const v=e=>{let{text:r,isExpanded:i,onToggle:a}=e;const o=s.useRef(null),[d,u]=s.useState(!1);return s.useEffect((()=>{const e=o.current;if(e){e.style.maxHeight="none";const t=e.scrollHeight>204;e.style.maxHeight=i?"none":"204px",u(t)}}),[r,i]),t.jsxs(t.Fragment,{children:[t.jsx("div",Object.assign({ref:o,style:{maxHeight:i?"none":204,overflow:"hidden"}},{children:t.jsx(l.BodySecondary,{children:r})})),d&&t.jsx(n.Button,{buttonType:"text",size:"xs",buttonText:i?"Show less":"Read more",onClick:a})]})},f=(n,l)=>{var h;const f=n||{},{messages:x=[],user:y,renderBubble:b,renderAvatar:j,renderDay:m,renderLoading:T,renderChatEmpty:O,listViewProps:S={},renderAvatarOnTop:A=!1,showUserAvatar:C=!1,showAvatarForEveryMessage:M=!1,inverted:w=!1,messageIdGenerator:R,topThreshold:_=c.TOP_THRESHOLD,appType:E=a.GiftedChatAppType.Bik,maxHeight:L,isActivityMessage:k}=f,H=e.__rest(f,["messages","user","renderBubble","renderAvatar","renderDay","renderLoading","renderChatEmpty","listViewProps","renderAvatarOnTop","showUserAvatar","showAvatarForEveryMessage","inverted","messageIdGenerator","topThreshold","appType","maxHeight","isActivityMessage"]),B=i.useWindowSize(),q=s.useRef(null),G=c.normalizeRef(S.ref||l,q),I=s.useRef({isInitialMount:!0,isUserScrolling:!1,isLoadingOldMessages:!1,isAtBottom:!0,hasTriggeredEndReached:!1,lastMessagesLength:null!==(h=null==x?void 0:x.length)&&void 0!==h?h:0,previousScrollHeight:0,previousScrollTop:0,scrollTimeout:null}),[P,D]=s.useState(new Set),F=s.useMemo((()=>x&&0!==x.length?[...x].reverse():[]),[x]),N=u.useScrollToBottom(G,I);s.useImperativeHandle(l,(()=>G.current)),u.useInitialMountScroll(G,I,F.length,N),u.useScrollCleanup(I),u.useRestoreScrollPosition(G,I,F.length),u.useAutoScrollOnNewMessages(G,I,x.length,N),u.useResizeObserverForFirstMessage(null==x?void 0:x[0],I,N,R);const z=u.useScrollHandler(I,S.onEndReached,S.onScroll,_),W=s.useCallback((e=>{var t;return Boolean(e&&y&&(null===(t=e.user)||void 0===t?void 0:t._id)===y._id)}),[y]),$=s.useCallback(((e,t)=>!!C&&(!!M||(!t||!!k&&k(e)||!!k&&k(t)||t.user._id!==e.user._id))),[C,M,k]),U=s.useCallback(((e,s,i)=>{var n,l,o,d,u;const g=W(e)?"right":"left",c=(null===(n=null==s?void 0:s.user)||void 0===n?void 0:n._id)!==(null===(l=null==e?void 0:e.user)||void 0===l?void 0:l._id),h=(null===(o=null==i?void 0:i.user)||void 0===o?void 0:o._id)!==(null===(d=null==e?void 0:e.user)||void 0===d?void 0:d._id),p=Object.assign({currentMessage:e,previousMessage:s,nextMessage:i,position:g,user:y},H);if(b)return b(p);const f=e._id,x=P.has(f);return t.jsx("div",Object.assign({style:Object.assign(Object.assign({maxWidth:E===a.GiftedChatAppType.Manifest?"50%":"70%",width:"fit-content"},E===a.GiftedChatAppType.Manifest?{minWidth:"130px"}:{}),{padding:"8px 12px",borderTopLeftRadius:"left"===g?c?12:2:12,borderTopRightRadius:"right"===g?c?12:2:12,borderBottomLeftRadius:"left"===g?h?12:2:12,borderBottomRightRadius:"right"===g?h?12:2:12,border:"left"===g&&E===a.GiftedChatAppType.Manifest?"1px solid rgb(224, 224, 224)":"none",backgroundColor:"right"===g?E===a.GiftedChatAppType.Manifest?r.COLORS.background.brandTint:r.COLORS.background.brandLight:E===a.GiftedChatAppType.Manifest?r.COLORS.background.pureWhite:r.COLORS.background.inactive,color:r.COLORS.content.primary,wordBreak:"break-word"})},{children:t.jsx(v,{text:null!==(u=e.text)&&void 0!==u?u:"",isExpanded:x,onToggle:()=>D((e=>{const t=new Set(e);return x?t.delete(f):t.add(f),t}))})}))}),[W,y,b,H,P]),V=s.useCallback(((e,t,s)=>{if(!$(e,t))return null;const r=W(e)?"right":"left";return j?j({currentMessage:e,previousMessage:t,nextMessage:s,position:r,user:y,renderAvatarOnTop:A,showUserAvatar:C,showAvatarForEveryMessage:M}):null}),[$,W,y,A,C,M,j]);return x&&0!==x.length?t.jsxs("div",Object.assign({ref:G,style:Object.assign(Object.assign({flex:1,overflowY:"auto",overflowX:"hidden",display:"flex",flexDirection:"column"},L?{maxHeight:L,height:L}:{}),S.style),onScroll:z},{children:[t.jsx("div",{style:{flex:"1 0 auto"}}),t.jsx("div",Object.assign({style:{display:"flex",flexDirection:"column",flex:"0 0 auto"}},{children:F.map(((e,s)=>{var r,i,n,l,u,h;const v=(null==e?void 0:e.channelId)===g.MESSAGE_CHANNELS.SMTP||(null==e?void 0:e.channelName)===g.MESSAGE_CHANNELS.SMTP,f=v?"left":W(e)?"right":"left",x=F[s-1],y=F[s+1],b=!c.isSameDay(e,x),j=d.getMessagePlacement(e,f),T=d.shouldCenterAlign(e),O=e.category===c.Constants.ChatActivity.Category.ACTIVITY&&e.activityType===c.Constants.ChatActivity.Type.PRIVATE_NOTE;return t.jsxs(p.default.Fragment,{children:[b&&(m?m({createdAt:e.createdAt}):t.jsx(o.Day,{createdAt:e.createdAt,appType:E})),t.jsxs("div",Object.assign({style:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},B?{margin:"0 4px"}:{}),T?{}:{display:"flex",alignItems:"flex-start"}),E!==a.GiftedChatAppType.Manifest?B||"right"!==f?{marginRight:8}:{marginLeft:8}:{}),v&&!O&&B?{marginLeft:8,marginRight:8}:{}),{justifyContent:j,marginBottom:y?(null===(r=null==y?void 0:y.user)||void 0===r?void 0:r._id)===(null===(i=null==e?void 0:e.user)||void 0===i?void 0:i._id)?4:20:0})},{children:[!B&&"left"===f&&t.jsx("div",Object.assign({style:{marginRight:"4px",width:"24px",flexShrink:0}},{children:V(e,x,y)})),t.jsx("div",Object.assign({id:`message-bubble-${null!==(n=e._id)&&void 0!==n?n:`${s}-${null!==(l=null==R?void 0:R())&&void 0!==l?l:"id"}`}`,style:E===a.GiftedChatAppType.Manifest?{width:"100%"}:B&&v?{display:"flex",flexGrow:1,width:"100%"}:{}},{children:U(e,x,y)})),!B&&"right"===f&&t.jsx("div",Object.assign({style:{marginLeft:"4px",width:"24px",flexShrink:0,alignSelf:"flex-start"}},{children:V(e,x,y)}))]}))]},null!==(u=e._id)&&void 0!==u?u:`${s}-${null!==(h=null==R?void 0:R())&&void 0!==h?h:"id"}`)}))}))]})):O?t.jsx(t.Fragment,{children:O()}):null};var x=s.forwardRef(f);exports.default=x;
2
2
  //# 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\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\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{reversedMessages.map((message, index) => {\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\tconst position = isSmtp\n\t\t\t\t\t\t? 'left'\n\t\t\t\t\t\t: isUserMessage(message)\n\t\t\t\t\t\t? 'right'\n\t\t\t\t\t\t: '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\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\n\t\t\t\t\t\t\t\t\t\t? {}\n\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...(appType !== GiftedChatAppType.Manifest\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? { 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: nextMessage\n\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? 4\n\t\t\t\t\t\t\t\t\t\t\t: 20\n\t\t\t\t\t\t\t\t\t\t: 0,\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 or placeholder (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\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tmarginRight: isSmtp ? '0px' : '4px',\n\t\t\t\t\t\t\t\t\t\t\twidth: '24px',\n\t\t\t\t\t\t\t\t\t\t\tflexShrink: 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{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: isSmtp\n\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: {}\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 or placeholder (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\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tmarginLeft: '4px',\n\t\t\t\t\t\t\t\t\t\t\twidth: '24px',\n\t\t\t\t\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t\t\t\t\t\talignSelf: 'flex-start',\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{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":["CollapsibleBubbleText","_ref","text","isExpanded","onToggle","textRef","useRef","isOverflowing","setIsOverflowing","useState","useEffect","el","current","style","maxHeight","overflows","scrollHeight","_jsxs","_jsx","jsx","Object","assign","ref","overflow","children","BodySecondary","Button","buttonType","size","buttonText","onClick","GiftedChatInner","props","forwardedRef","_b","messages","user","renderBubble","renderAvatar","renderDay","renderLoading","renderChatEmpty","listViewProps","renderAvatarOnTop","showUserAvatar","showAvatarForEveryMessage","inverted","messageIdGenerator","topThreshold","TOP_THRESHOLD","appType","GiftedChatAppType","Bik","isActivityMessage","extraProps","__rest","isMobile","useWindowSize","internalScrollRef","scrollRef","normalizeRef","scrollState","isInitialMount","isUserScrolling","isLoadingOldMessages","isAtBottom","hasTriggeredEndReached","lastMessagesLength","_a","length","previousScrollHeight","previousScrollTop","scrollTimeout","expandedMessages","setExpandedMessages","Set","reversedMessages","useMemo","reverse","scrollToBottom","useScrollToBottom","useImperativeHandle","useInitialMountScroll","useScrollCleanup","useRestoreScrollPosition","useAutoScrollOnNewMessages","useResizeObserverForFirstMessage","handleScroll","useScrollHandler","onEndReached","onScroll","isUserMessage","useCallback","message","Boolean","_id","shouldShowAvatar","previousMessage","renderMessageBubble","nextMessage","position","isTopOfStack","isBottomOfStack","_c","_d","bubbleProps","currentMessage","messageId","has","maxWidth","Manifest","width","minWidth","padding","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","border","backgroundColor","COLORS","background","brandTint","brandLight","pureWhite","inactive","color","content","primary","wordBreak","_e","prev","next","delete","add","renderMessageAvatar","flex","overflowY","overflowX","display","flexDirection","height","map","index","isSmtp","MESSAGE_CHANNELS","SMTP","shouldShowDay","isSameDay","placement","getMessagePlacement","isCentered","shouldCenterAlign","isPrivateNote","Constants","ChatActivity","Category","ACTIVITY","Type","PRIVATE_NOTE","jsxs","React","Fragment","createdAt","Day","margin","alignItems","marginRight","marginLeft","justifyContent","marginBottom","flexShrink","id","flexGrow","alignSelf","_f","_Fragment","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\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{reversedMessages.map((message, index) => {\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\tconst position = isSmtp\n\t\t\t\t\t\t? 'left'\n\t\t\t\t\t\t: isUserMessage(message)\n\t\t\t\t\t\t? 'right'\n\t\t\t\t\t\t: '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\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\n\t\t\t\t\t\t\t\t\t\t? {}\n\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...(appType !== GiftedChatAppType.Manifest\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? { 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: nextMessage\n\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? 4\n\t\t\t\t\t\t\t\t\t\t\t: 20\n\t\t\t\t\t\t\t\t\t\t: 0,\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 or placeholder (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\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tmarginRight: '4px',\n\t\t\t\t\t\t\t\t\t\t\twidth: '24px',\n\t\t\t\t\t\t\t\t\t\t\tflexShrink: 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{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, width: '100%' }\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 or placeholder (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\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tmarginLeft: '4px',\n\t\t\t\t\t\t\t\t\t\t\twidth: '24px',\n\t\t\t\t\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t\t\t\t\t\talignSelf: 'flex-start',\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{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":["CollapsibleBubbleText","_ref","text","isExpanded","onToggle","textRef","useRef","isOverflowing","setIsOverflowing","useState","useEffect","el","current","style","maxHeight","overflows","scrollHeight","_jsxs","_jsx","jsx","Object","assign","ref","overflow","children","BodySecondary","Button","buttonType","size","buttonText","onClick","GiftedChatInner","props","forwardedRef","_b","messages","user","renderBubble","renderAvatar","renderDay","renderLoading","renderChatEmpty","listViewProps","renderAvatarOnTop","showUserAvatar","showAvatarForEveryMessage","inverted","messageIdGenerator","topThreshold","TOP_THRESHOLD","appType","GiftedChatAppType","Bik","isActivityMessage","extraProps","__rest","isMobile","useWindowSize","internalScrollRef","scrollRef","normalizeRef","scrollState","isInitialMount","isUserScrolling","isLoadingOldMessages","isAtBottom","hasTriggeredEndReached","lastMessagesLength","_a","length","previousScrollHeight","previousScrollTop","scrollTimeout","expandedMessages","setExpandedMessages","Set","reversedMessages","useMemo","reverse","scrollToBottom","useScrollToBottom","useImperativeHandle","useInitialMountScroll","useScrollCleanup","useRestoreScrollPosition","useAutoScrollOnNewMessages","useResizeObserverForFirstMessage","handleScroll","useScrollHandler","onEndReached","onScroll","isUserMessage","useCallback","message","Boolean","_id","shouldShowAvatar","previousMessage","renderMessageBubble","nextMessage","position","isTopOfStack","isBottomOfStack","_c","_d","bubbleProps","currentMessage","messageId","has","maxWidth","Manifest","width","minWidth","padding","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","border","backgroundColor","COLORS","background","brandTint","brandLight","pureWhite","inactive","color","content","primary","wordBreak","_e","prev","next","delete","add","renderMessageAvatar","flex","overflowY","overflowX","display","flexDirection","height","map","index","isSmtp","MESSAGE_CHANNELS","SMTP","shouldShowDay","isSameDay","placement","getMessagePlacement","isCentered","shouldCenterAlign","isPrivateNote","Constants","ChatActivity","Category","ACTIVITY","Type","PRIVATE_NOTE","jsxs","React","Fragment","createdAt","Day","margin","alignItems","marginRight","marginLeft","justifyContent","marginBottom","flexShrink","id","flexGrow","alignSelf","_f","_Fragment","GiftedChat","forwardRef"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("react"),s=require("./CheckBox.styled.js"),l=require("../TypographyStyle.js"),t=require("../../constants/Theme.js");const a=s=>{const l=i.useMemo((()=>s.activeColor||t.COLORS.background.positive.vibrant),[s.activeColor]);return e.jsxs("svg",Object.assign({width:s.isSmall?"16":"18",height:s.isSmall?"16":"18",viewBox:s.isSmall?"0 0 16 16":"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg"},{children:[e.jsx("rect",{x:"0",y:"0",width:s.isSmall?"16":"18",height:s.isSmall?"16":"18",rx:"4",fill:s.isDisabled?t.COLORS.content.inactive:l}),!s.isPartial&&e.jsx("svg",Object.assign({width:s.isSmall?"8":"10",height:s.isSmall?"7":"9",x:"4",y:"4",viewBox:"0 0 10 9",fill:"none",xmlns:"http://www.w3.org/2000/svg"},{children:e.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.68189 1.06043C10.0724 1.45096 10.0724 2.08412 9.68189 2.47464L4.02501 8.13152C3.63449 8.52205 3.00132 8.52205 2.6108 8.13152L0.489684 6.01041C0.0991601 5.61988 0.0991598 4.98672 0.489684 4.59619C0.880209 4.20567 1.51337 4.20567 1.9039 4.59619L3.31791 6.0102L8.26768 1.06043C8.6582 0.669907 9.29137 0.669907 9.68189 1.06043Z",fill:"white"})})),s.isPartial&&e.jsx("rect",{x:"5",y:s.isSmall?"7":"8",width:s.isSmall?"6":"8",height:"2",rx:"1",fill:t.COLORS.surface.standard})]}))};exports.CheckBox=r=>{var o;const[c,d]=i.useState(r.isChecked||!1),[n,b]=i.useState(r.isPartiallyChecked||!1),[h,x]=i.useState(r.isDisabled||!1),[C,S]=i.useState(!1),[u,O]=i.useState(!1);i.useEffect((()=>{d(r.isChecked)}),[r.isChecked]),i.useEffect((()=>{x(r.isDisabled||!1)}),[r.isDisabled]),i.useEffect((()=>{b(r.isPartiallyChecked||!1)}),[r.isPartiallyChecked]);return e.jsxs(s.CheckboxContainer,Object.assign({onClick:e=>{var i;if(!r.isDisabled){const s=!c;n?b(!n):d(s),null===(i=r.onValueChange)||void 0===i||i.call(r,s,r.value,e)}},onMouseEnter:()=>S(!r.skipHoverState),onMouseLeave:()=>S(!1),onMouseDown:()=>O(!r.skipHoverState),onMouseUp:()=>O(!1),isDisabled:h,enableHover:r.enableHover,style:null!==(o=r.style)&&void 0!==o?o:{}},{children:[e.jsx(s.CheckboxIcon,Object.assign({checked:c,hovered:C,clicked:u,isDisabled:h,size:r.size,borderColor:r.checkboxBorderColor},{children:c&&e.jsx(a,{isPartial:n||!1,isDisabled:h,isSmall:"SMALL"===r.size,activeColor:null==r?void 0:r.activeColor})})),r.label?r.boldOnChecked&&c||r.bold?"DEFAULT"===r.labelSize?e.jsx(l.TitleRegular,Object.assign({color:r.isDisabled?t.COLORS.text.disabled:t.COLORS.text.primary},{children:r.label})):e.jsx(l.TitleSmall,Object.assign({color:r.isDisabled?t.COLORS.text.disabled:t.COLORS.text.primary},{children:r.label})):"SMALL"===r.size||"SMALL"===r.labelSize?e.jsx(l.BodySecondary,Object.assign({color:r.isDisabled?t.COLORS.text.disabled:t.COLORS.text.primary},{children:r.label})):e.jsx(l.BodyPrimary,Object.assign({color:r.isDisabled?t.COLORS.text.disabled:t.COLORS.text.primary},{children:r.label})):e.jsx(e.Fragment,{}),r.rightComponent]}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("react"),l=require("./CheckBox.styled.js"),s=require("../TypographyStyle.js"),t=require("../../constants/Theme.js");const a=l=>{const s=i.useMemo((()=>l.activeColor||t.COLORS.background.positive.vibrant),[l.activeColor]);return e.jsxs("svg",Object.assign({width:l.isSmall?"16":"18",height:l.isSmall?"16":"18",viewBox:l.isSmall?"0 0 16 16":"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg"},{children:[e.jsx("rect",{x:"0",y:"0",width:l.isSmall?"16":"18",height:l.isSmall?"16":"18",rx:"4",fill:l.isDisabled?t.COLORS.content.inactive:s}),!l.isPartial&&e.jsx("svg",Object.assign({width:l.isSmall?"8":"10",height:l.isSmall?"7":"9",x:"4",y:"4",viewBox:"0 0 10 9",fill:"none",xmlns:"http://www.w3.org/2000/svg"},{children:e.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.68189 1.06043C10.0724 1.45096 10.0724 2.08412 9.68189 2.47464L4.02501 8.13152C3.63449 8.52205 3.00132 8.52205 2.6108 8.13152L0.489684 6.01041C0.0991601 5.61988 0.0991598 4.98672 0.489684 4.59619C0.880209 4.20567 1.51337 4.20567 1.9039 4.59619L3.31791 6.0102L8.26768 1.06043C8.6582 0.669907 9.29137 0.669907 9.68189 1.06043Z",fill:"white"})})),l.isPartial&&e.jsx("rect",{x:"5",y:l.isSmall?"7":"8",width:l.isSmall?"6":"8",height:"2",rx:"1",fill:t.COLORS.surface.standard})]}))};exports.CheckBox=r=>{var o;const[d,n]=i.useState(r.isChecked||!1),[c,b]=i.useState(r.isPartiallyChecked||!1),[h,S]=i.useState(r.isDisabled||!1),[x,C]=i.useState(!1),[u,O]=i.useState(!1);i.useEffect((()=>{n(r.isChecked)}),[r.isChecked]),i.useEffect((()=>{S(r.isDisabled||!1)}),[r.isDisabled]),i.useEffect((()=>{b(r.isPartiallyChecked||!1)}),[r.isPartiallyChecked]);return e.jsxs(l.CheckboxContainer,Object.assign({onClick:e=>{var i;if(!r.isDisabled){const l=!d;c?b(!c):n(l),null===(i=r.onValueChange)||void 0===i||i.call(r,l,r.value,e)}},onMouseEnter:()=>C(!r.skipHoverState),onMouseLeave:()=>C(!1),onMouseDown:()=>O(!r.skipHoverState),onMouseUp:()=>O(!1),isDisabled:h,enableHover:r.enableHover,style:null!==(o=r.style)&&void 0!==o?o:{}},{children:[e.jsx(l.CheckboxIcon,Object.assign({checked:d,hovered:x,clicked:u,isDisabled:h,size:r.size,borderColor:r.checkboxBorderColor},{children:d&&e.jsx(a,{isPartial:c||!1,isDisabled:h,isSmall:"SMALL"===r.size,activeColor:null==r?void 0:r.activeColor})})),(()=>{if(!r.label)return e.jsx(e.Fragment,{});if(r.labelTypography){const i={bodyCaption:s.BodyCaption,bodySecondary:s.BodySecondary,bodyPrimary:s.BodyPrimary,titleSmall:s.TitleSmall}[r.labelTypography];return e.jsx(i,Object.assign({color:r.isDisabled?t.COLORS.text.disabled:t.COLORS.text.primary},{children:r.label}))}return r.boldOnChecked&&d||r.bold?"DEFAULT"===r.labelSize?e.jsx(s.TitleRegular,Object.assign({color:r.isDisabled?t.COLORS.text.disabled:t.COLORS.text.primary},{children:r.label})):e.jsx(s.TitleSmall,Object.assign({color:r.isDisabled?t.COLORS.text.disabled:t.COLORS.text.primary},{children:r.label})):"SMALL"===r.size||"SMALL"===r.labelSize?e.jsx(s.BodySecondary,Object.assign({color:r.isDisabled?t.COLORS.text.disabled:t.COLORS.text.primary},{children:r.label})):e.jsx(s.BodyPrimary,Object.assign({color:r.isDisabled?t.COLORS.text.disabled:t.COLORS.text.primary},{children:r.label}))})(),r.rightComponent]}))};
2
2
  //# sourceMappingURL=CheckBox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckBox.js","sources":["../../../../src/components/checkBox/CheckBox.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport {\n\tCheckboxContainer,\n\tCheckboxIcon,\n} from '@src/components/checkBox/CheckBox.styled';\nimport {\n\tBodyPrimary,\n\tBodySecondary,\n\tTitleRegular,\n\tTitleSmall,\n} from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\n\nexport type CheckBoxProps = {\n\tisChecked: boolean;\n\tisPartiallyChecked?: boolean;\n\tisDisabled?: boolean;\n\tvalue?: string;\n\tonValueChange: (\n\t\tchecked: boolean,\n\t\tvalue?: string,\n\t\tevent?: React.MouseEvent,\n\t) => void;\n\tlabel?: string;\n\tsize?: 'DEFAULT' | 'SMALL';\n\tskipHoverState?: boolean;\n\tlabelSize?: 'DEFAULT' | 'SMALL';\n\trightComponent?: JSX.Element;\n\tcheckboxBorderColor?: string;\n\tboldOnChecked?: boolean;\n\tbold?: boolean;\n\tstyle?: React.CSSProperties;\n\tenableHover?: boolean;\n\tactiveColor?: string;\n};\n\nconst CheckMark: React.FC<{\n\tisPartial: boolean;\n\tisDisabled: boolean;\n\tisSmall: boolean;\n\tactiveColor?: string;\n}> = (props) => {\n\tconst fillColor = useMemo(\n\t\t() => props.activeColor || COLORS.background.positive.vibrant,\n\t\t[props.activeColor],\n\t);\n\n\treturn (\n\t\t<svg\n\t\t\twidth={props.isSmall ? '16' : '18'}\n\t\t\theight={props.isSmall ? '16' : '18'}\n\t\t\tviewBox={props.isSmall ? '0 0 16 16' : '0 0 18 18'}\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<rect\n\t\t\t\tx=\"0\"\n\t\t\t\ty=\"0\"\n\t\t\t\twidth={props.isSmall ? '16' : '18'}\n\t\t\t\theight={props.isSmall ? '16' : '18'}\n\t\t\t\trx=\"4\"\n\t\t\t\tfill={props.isDisabled ? COLORS.content.inactive : fillColor}\n\t\t\t/>\n\t\t\t{!props.isPartial && (\n\t\t\t\t<svg\n\t\t\t\t\twidth={props.isSmall ? '8' : '10'}\n\t\t\t\t\theight={props.isSmall ? '7' : '9'}\n\t\t\t\t\tx=\"4\"\n\t\t\t\t\ty=\"4\"\n\t\t\t\t\tviewBox=\"0 0 10 9\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\t\t\td=\"M9.68189 1.06043C10.0724 1.45096 10.0724 2.08412 9.68189 2.47464L4.02501 8.13152C3.63449 8.52205 3.00132 8.52205 2.6108 8.13152L0.489684 6.01041C0.0991601 5.61988 0.0991598 4.98672 0.489684 4.59619C0.880209 4.20567 1.51337 4.20567 1.9039 4.59619L3.31791 6.0102L8.26768 1.06043C8.6582 0.669907 9.29137 0.669907 9.68189 1.06043Z\"\n\t\t\t\t\t\tfill=\"white\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t)}\n\t\t\t{props.isPartial && (\n\t\t\t\t<rect\n\t\t\t\t\tx=\"5\"\n\t\t\t\t\ty={props.isSmall ? '7' : '8'}\n\t\t\t\t\twidth={props.isSmall ? '6' : '8'}\n\t\t\t\t\theight=\"2\"\n\t\t\t\t\trx=\"1\"\n\t\t\t\t\tfill={COLORS.surface.standard}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</svg>\n\t);\n};\n\nexport const CheckBox: React.FC<CheckBoxProps> = (props) => {\n\tconst [isChecked, setIsChecked] = useState(props.isChecked || false);\n\tconst [isPartiallyChecked, setIsPartiallyChecked] = useState(\n\t\tprops.isPartiallyChecked || false,\n\t);\n\tconst [isDisabled, setIsDisabled] = useState(props.isDisabled || false);\n\tconst [isHovered, setIsHovered] = useState(false);\n\tconst [isClicked, setIsClicked] = useState(false);\n\n\tconst handleCheck = (event: React.MouseEvent) => {\n\t\tif (!props.isDisabled) {\n\t\t\tconst newVal = !isChecked;\n\t\t\tif (isPartiallyChecked) {\n\t\t\t\tsetIsPartiallyChecked(!isPartiallyChecked);\n\t\t\t} else {\n\t\t\t\tsetIsChecked(newVal);\n\t\t\t}\n\t\t\tprops.onValueChange?.(newVal, props.value, event);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tsetIsChecked(props.isChecked);\n\t}, [props.isChecked]);\n\n\tuseEffect(() => {\n\t\tsetIsDisabled(props.isDisabled || false);\n\t}, [props.isDisabled]);\n\n\tuseEffect(() => {\n\t\tsetIsPartiallyChecked(props.isPartiallyChecked || false);\n\t}, [props.isPartiallyChecked]);\n\n\tconst renderLabel = () => {\n\t\tif (!props.label) {\n\t\t\treturn <></>;\n\t\t}\n\n\t\tif ((props.boldOnChecked && isChecked) || props.bold) {\n\t\t\tif (props.labelSize === 'DEFAULT') {\n\t\t\t\treturn (\n\t\t\t\t\t<TitleRegular\n\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\tprops.isDisabled ? COLORS.text.disabled : COLORS.text.primary\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{props.label}\n\t\t\t\t\t</TitleRegular>\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<TitleSmall\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</TitleSmall>\n\t\t\t);\n\t\t}\n\n\t\tif (props.size === 'SMALL') {\n\t\t\treturn (\n\t\t\t\t<BodySecondary\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</BodySecondary>\n\t\t\t);\n\t\t}\n\n\t\tif (props.labelSize === 'SMALL') {\n\t\t\treturn (\n\t\t\t\t<BodySecondary\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</BodySecondary>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<BodyPrimary\n\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t>\n\t\t\t\t{props.label}\n\t\t\t</BodyPrimary>\n\t\t);\n\t};\n\n\treturn (\n\t\t<CheckboxContainer\n\t\t\tonClick={handleCheck}\n\t\t\tonMouseEnter={() => setIsHovered(!props.skipHoverState)}\n\t\t\tonMouseLeave={() => setIsHovered(false)}\n\t\t\tonMouseDown={() => setIsClicked(!props.skipHoverState)}\n\t\t\tonMouseUp={() => setIsClicked(false)}\n\t\t\tisDisabled={isDisabled}\n\t\t\tenableHover={props.enableHover}\n\t\t\tstyle={props.style ?? {}}\n\t\t>\n\t\t\t<CheckboxIcon\n\t\t\t\tchecked={isChecked}\n\t\t\t\thovered={isHovered}\n\t\t\t\tclicked={isClicked}\n\t\t\t\tisDisabled={isDisabled}\n\t\t\t\tsize={props.size}\n\t\t\t\tborderColor={props.checkboxBorderColor}\n\t\t\t>\n\t\t\t\t{isChecked && (\n\t\t\t\t\t<CheckMark\n\t\t\t\t\t\tisPartial={isPartiallyChecked || false}\n\t\t\t\t\t\tisDisabled={isDisabled}\n\t\t\t\t\t\tisSmall={props.size === 'SMALL'}\n\t\t\t\t\t\tactiveColor={props?.activeColor}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</CheckboxIcon>\n\t\t\t{renderLabel()}\n\t\t\t{props.rightComponent}\n\t\t</CheckboxContainer>\n\t);\n};\n"],"names":["CheckMark","props","fillColor","useMemo","activeColor","COLORS","background","positive","vibrant","_jsxs","Object","assign","width","isSmall","height","viewBox","fill","xmlns","children","_jsx","jsx","x","y","rx","isDisabled","content","inactive","isPartial","fillRule","clipRule","d","surface","standard","isChecked","setIsChecked","useState","isPartiallyChecked","setIsPartiallyChecked","setIsDisabled","isHovered","setIsHovered","isClicked","setIsClicked","useEffect","CheckboxContainer","onClick","event","newVal","_a","onValueChange","call","value","onMouseEnter","skipHoverState","onMouseLeave","onMouseDown","onMouseUp","enableHover","style","CheckboxIcon","checked","hovered","clicked","size","borderColor","checkboxBorderColor","label","boldOnChecked","bold","labelSize","TitleRegular","color","text","disabled","primary","TitleSmall","BodySecondary","BodyPrimary","rightComponent"],"mappings":"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"}
1
+ {"version":3,"file":"CheckBox.js","sources":["../../../../src/components/checkBox/CheckBox.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport {\n\tCheckboxContainer,\n\tCheckboxIcon,\n} from '@src/components/checkBox/CheckBox.styled';\nimport {\n\tBodyCaption,\n\tBodyPrimary,\n\tBodySecondary,\n\tTitleRegular,\n\tTitleSmall,\n} from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\n\nexport type CheckBoxProps = {\n\tisChecked: boolean;\n\tisPartiallyChecked?: boolean;\n\tisDisabled?: boolean;\n\tvalue?: string;\n\tonValueChange: (\n\t\tchecked: boolean,\n\t\tvalue?: string,\n\t\tevent?: React.MouseEvent,\n\t) => void;\n\tlabel?: string;\n\tsize?: 'DEFAULT' | 'SMALL';\n\tskipHoverState?: boolean;\n\tlabelSize?: 'DEFAULT' | 'SMALL';\n\trightComponent?: JSX.Element;\n\tcheckboxBorderColor?: string;\n\tboldOnChecked?: boolean;\n\tbold?: boolean;\n\tstyle?: React.CSSProperties;\n\tenableHover?: boolean;\n\tactiveColor?: string;\n\tlabelTypography?:\n\t\t| 'bodyCaption'\n\t\t| 'bodySecondary'\n\t\t| 'bodyPrimary'\n\t\t| 'titleSmall';\n};\n\nconst CheckMark: React.FC<{\n\tisPartial: boolean;\n\tisDisabled: boolean;\n\tisSmall: boolean;\n\tactiveColor?: string;\n}> = (props) => {\n\tconst fillColor = useMemo(\n\t\t() => props.activeColor || COLORS.background.positive.vibrant,\n\t\t[props.activeColor],\n\t);\n\n\treturn (\n\t\t<svg\n\t\t\twidth={props.isSmall ? '16' : '18'}\n\t\t\theight={props.isSmall ? '16' : '18'}\n\t\t\tviewBox={props.isSmall ? '0 0 16 16' : '0 0 18 18'}\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<rect\n\t\t\t\tx=\"0\"\n\t\t\t\ty=\"0\"\n\t\t\t\twidth={props.isSmall ? '16' : '18'}\n\t\t\t\theight={props.isSmall ? '16' : '18'}\n\t\t\t\trx=\"4\"\n\t\t\t\tfill={props.isDisabled ? COLORS.content.inactive : fillColor}\n\t\t\t/>\n\t\t\t{!props.isPartial && (\n\t\t\t\t<svg\n\t\t\t\t\twidth={props.isSmall ? '8' : '10'}\n\t\t\t\t\theight={props.isSmall ? '7' : '9'}\n\t\t\t\t\tx=\"4\"\n\t\t\t\t\ty=\"4\"\n\t\t\t\t\tviewBox=\"0 0 10 9\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\t\t\td=\"M9.68189 1.06043C10.0724 1.45096 10.0724 2.08412 9.68189 2.47464L4.02501 8.13152C3.63449 8.52205 3.00132 8.52205 2.6108 8.13152L0.489684 6.01041C0.0991601 5.61988 0.0991598 4.98672 0.489684 4.59619C0.880209 4.20567 1.51337 4.20567 1.9039 4.59619L3.31791 6.0102L8.26768 1.06043C8.6582 0.669907 9.29137 0.669907 9.68189 1.06043Z\"\n\t\t\t\t\t\tfill=\"white\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t)}\n\t\t\t{props.isPartial && (\n\t\t\t\t<rect\n\t\t\t\t\tx=\"5\"\n\t\t\t\t\ty={props.isSmall ? '7' : '8'}\n\t\t\t\t\twidth={props.isSmall ? '6' : '8'}\n\t\t\t\t\theight=\"2\"\n\t\t\t\t\trx=\"1\"\n\t\t\t\t\tfill={COLORS.surface.standard}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</svg>\n\t);\n};\n\nexport const CheckBox: React.FC<CheckBoxProps> = (props) => {\n\tconst [isChecked, setIsChecked] = useState(props.isChecked || false);\n\tconst [isPartiallyChecked, setIsPartiallyChecked] = useState(\n\t\tprops.isPartiallyChecked || false,\n\t);\n\tconst [isDisabled, setIsDisabled] = useState(props.isDisabled || false);\n\tconst [isHovered, setIsHovered] = useState(false);\n\tconst [isClicked, setIsClicked] = useState(false);\n\n\tconst handleCheck = (event: React.MouseEvent) => {\n\t\tif (!props.isDisabled) {\n\t\t\tconst newVal = !isChecked;\n\t\t\tif (isPartiallyChecked) {\n\t\t\t\tsetIsPartiallyChecked(!isPartiallyChecked);\n\t\t\t} else {\n\t\t\t\tsetIsChecked(newVal);\n\t\t\t}\n\t\t\tprops.onValueChange?.(newVal, props.value, event);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tsetIsChecked(props.isChecked);\n\t}, [props.isChecked]);\n\n\tuseEffect(() => {\n\t\tsetIsDisabled(props.isDisabled || false);\n\t}, [props.isDisabled]);\n\n\tuseEffect(() => {\n\t\tsetIsPartiallyChecked(props.isPartiallyChecked || false);\n\t}, [props.isPartiallyChecked]);\n\n\tconst renderLabel = () => {\n\t\tif (!props.label) {\n\t\t\treturn <></>;\n\t\t}\n\n\t\tif (props.labelTypography) {\n\t\t\tconst LabelTypography = {\n\t\t\t\tbodyCaption: BodyCaption,\n\t\t\t\tbodySecondary: BodySecondary,\n\t\t\t\tbodyPrimary: BodyPrimary,\n\t\t\t\ttitleSmall: TitleSmall,\n\t\t\t}[props.labelTypography];\n\t\t\treturn (\n\t\t\t\t<LabelTypography\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</LabelTypography>\n\t\t\t);\n\t\t}\n\n\t\tif ((props.boldOnChecked && isChecked) || props.bold) {\n\t\t\tif (props.labelSize === 'DEFAULT') {\n\t\t\t\treturn (\n\t\t\t\t\t<TitleRegular\n\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\tprops.isDisabled ? COLORS.text.disabled : COLORS.text.primary\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{props.label}\n\t\t\t\t\t</TitleRegular>\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<TitleSmall\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</TitleSmall>\n\t\t\t);\n\t\t}\n\n\t\tif (props.size === 'SMALL') {\n\t\t\treturn (\n\t\t\t\t<BodySecondary\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</BodySecondary>\n\t\t\t);\n\t\t}\n\n\t\tif (props.labelSize === 'SMALL') {\n\t\t\treturn (\n\t\t\t\t<BodySecondary\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</BodySecondary>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<BodyPrimary\n\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t>\n\t\t\t\t{props.label}\n\t\t\t</BodyPrimary>\n\t\t);\n\t};\n\n\treturn (\n\t\t<CheckboxContainer\n\t\t\tonClick={handleCheck}\n\t\t\tonMouseEnter={() => setIsHovered(!props.skipHoverState)}\n\t\t\tonMouseLeave={() => setIsHovered(false)}\n\t\t\tonMouseDown={() => setIsClicked(!props.skipHoverState)}\n\t\t\tonMouseUp={() => setIsClicked(false)}\n\t\t\tisDisabled={isDisabled}\n\t\t\tenableHover={props.enableHover}\n\t\t\tstyle={props.style ?? {}}\n\t\t>\n\t\t\t<CheckboxIcon\n\t\t\t\tchecked={isChecked}\n\t\t\t\thovered={isHovered}\n\t\t\t\tclicked={isClicked}\n\t\t\t\tisDisabled={isDisabled}\n\t\t\t\tsize={props.size}\n\t\t\t\tborderColor={props.checkboxBorderColor}\n\t\t\t>\n\t\t\t\t{isChecked && (\n\t\t\t\t\t<CheckMark\n\t\t\t\t\t\tisPartial={isPartiallyChecked || false}\n\t\t\t\t\t\tisDisabled={isDisabled}\n\t\t\t\t\t\tisSmall={props.size === 'SMALL'}\n\t\t\t\t\t\tactiveColor={props?.activeColor}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</CheckboxIcon>\n\t\t\t{renderLabel()}\n\t\t\t{props.rightComponent}\n\t\t</CheckboxContainer>\n\t);\n};\n"],"names":["CheckMark","props","fillColor","useMemo","activeColor","COLORS","background","positive","vibrant","_jsxs","Object","assign","width","isSmall","height","viewBox","fill","xmlns","children","_jsx","jsx","x","y","rx","isDisabled","content","inactive","isPartial","fillRule","clipRule","d","surface","standard","isChecked","setIsChecked","useState","isPartiallyChecked","setIsPartiallyChecked","setIsDisabled","isHovered","setIsHovered","isClicked","setIsClicked","useEffect","CheckboxContainer","onClick","event","newVal","_a","onValueChange","call","value","onMouseEnter","skipHoverState","onMouseLeave","onMouseDown","onMouseUp","enableHover","style","CheckboxIcon","checked","hovered","clicked","size","borderColor","checkboxBorderColor","renderLabel","label","labelTypography","LabelTypography","bodyCaption","BodyCaption","bodySecondary","BodySecondary","bodyPrimary","BodyPrimary","titleSmall","TitleSmall","color","text","disabled","primary","boldOnChecked","bold","labelSize","TitleRegular","rightComponent"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("../../../../assets/icons/errorInfo.svg.js"),n=require("../../../../assets/icons/refresh-purple.svg.js"),o=require("react"),s=require("../../../zeroState/ZeroState.js"),r=require("../../../../hooks/useOutside.js"),i=require("../../../../constants/Theme.js"),l=require("../../hooks/useDropdown.js"),u=require("./description/Description.js"),c=require("./menu/FreeFormMenu.js"),a=require("./menu/MenuList.js"),d=require("./menu/SelectAllMenu.js"),p=require("./multiSelect/MultiSelectDropdownBottomBar.js"),h=require("./OpennedDropdown.styled.js"),f=require("./searchbox/SearchBox.js"),g=require("./searchbox/SearchZeroState.js");const b=304,S=290;exports.OpenedDropdown=v=>{let{options:j,isSearchable:O,isMultiSelect:x,maxSelections:m,width:w,allowFreeForm:C,height:y,onClose:k,onSelect:L,onSearch:D,version:q,skipSorting:E,headerRef:M,hideSelectAll:R,primaryButtonText:I,onInfiniteScroll:T,onMultiSelectClear:F,onDropdownItemClick:A,buttonOptions:B,isSearchLoading:H,isOptionsLoading:Z,optionsErrorState:z,disableSearchOptions:P,disableSearchedOptionExcept:V,useDefaultCursor:W,containerStyle:$={},zeroState:_,isDraggable:K=!1,onOptionsReorder:N,hideClearButton:U=!1,showCheckboxForCustomElement:G=!1}=v;var J;const Q=o.useCallback((e=>{if(!K||!x)return e;const t=[],n=[];return e.forEach((e=>{if(e.options)n.push(e);else{e.selected?t.push(e):n.push(e)}})),[...t,...n]}),[K,x]),[X,Y]=o.useState((()=>Q(j))),ee=o.useRef(X),te=o.useRef(!1),ne=o.useRef(N);o.useEffect((()=>{Y(Q(j))}),[j,Q]),o.useEffect((()=>{ee.current=X}),[X]),o.useEffect((()=>{ne.current=N}),[N]),o.useEffect((()=>()=>{te.current&&ne.current&&ne.current(ee.current)}),[]);const oe=o.useCallback((e=>{Y(e),"2.0"===q?null==N||N(e):te.current=!0}),[N,q]),se=K?X:j,{dropdownOptions:re,search:ie,searchedString:le,searchedOptions:ue,searchError:ce,retrySearch:ae,onApplyHandler:de,selectAllHandler:pe,onMultiSelectClear:he,onFreeFormSelect:fe,onMultiSelectApply:ge,latestDropdownOptionsRef:be,getSelectedOptions:Se,getCurrentSelectionCount:ve}=l.useDropdown(q,se,L,E||K,x,D,P,V,m),[je,Oe]=o.useState(null!=w?w:S),[xe,me]=o.useState(null),[we,Ce]=o.useState(-1),ye=o.useRef(null),ke=o.useRef([]),Le=o.useRef(null);r.useOutside(ye,(()=>{if(me(null),x&&"2.0"===q){const e=Se(be.current);null==k||k(e)}else null==k||k(re)}),[M,ke]),o.useEffect((()=>{const e=setTimeout((()=>{ye.current&&ye.current.focus({preventScroll:!0})}),0);return()=>clearTimeout(e)}),[]);o.useEffect((()=>{const e=e=>{const t=(e=>{const t=[];return e.forEach((e=>{if(e.options)e.options.forEach((e=>{e.disabled||t.push(e)}));else{const n=e;n.disabled||t.push(n)}})),t})(le&&D?ue:re);if(0!==t.length)if("ArrowDown"===e.key)e.preventDefault(),Ce((e=>{const n=e<t.length-1?e+1:0;return setTimeout((()=>{var e;const t=null===(e=Le.current)||void 0===e?void 0:e.querySelector(`[data-option-index="${n}"]`);t&&t.scrollIntoView({block:"nearest",behavior:"smooth"})}),0),n}));else if("ArrowUp"===e.key)e.preventDefault(),Ce((e=>{const n=e>0?e-1:t.length-1;return setTimeout((()=>{var e;const t=null===(e=Le.current)||void 0===e?void 0:e.querySelector(`[data-option-index="${n}"]`);t&&t.scrollIntoView({block:"nearest",behavior:"smooth"})}),0),n}));else if("Enter"===e.key&&we>=0){e.preventDefault();const n=t[we];n&&(de(Object.assign(Object.assign({},n),{selected:!n.selected})),A&&A(n))}},t=ye.current;if(t)return t.addEventListener("keydown",e),()=>{t.removeEventListener("keydown",e)}}),[we,le,ue,re,D,de,A]);const De=null!=y?y:b,qe="number"==typeof De?O&&x?De-96:O&&!x||!O&&x?De-48:De:De;o.useEffect((()=>{const e=null!=w?w:S;if(null===xe)Oe(e);else if("number"==typeof e)Oe(2*e);else if("string"==typeof e&&e.endsWith("px")){const t=2*parseInt(e.replace("px",""));Oe(t)}}),[xe]);const Ee=[],Me=(e=>{if(!x||!m&&0!==m)return e;const t=ve(re)>=m;return t?e.map((e=>{if(e.options)return Object.assign(Object.assign({},e),{options:e.options.map((e=>Object.assign(Object.assign({},e),{disabled:e.disabled||!e.selected&&t})))});{const n=e;return Object.assign(Object.assign({},n),{disabled:n.disabled||!n.selected&&t})}})):e})((le&&D?ue:re).map((e=>{var t,n;if(le&&!D){if(e.options){const t=Object.assign({},e);return t.options=t.options.filter((e=>{var t;return!!(null===(t=e.label)||void 0===t?void 0:t.toLowerCase().includes(le.toLowerCase()))&&(Ee.push(!le||e.label===le),!0)})),t.options.length>0?t:null}return(null===(t=e.label)||void 0===t?void 0:t.toLowerCase().includes(le.toLowerCase()))||(null===(n=e.searchKey)||void 0===n?void 0:n.toLowerCase().includes(le.toLowerCase()))?(Ee.push(!le||e.label===le),e):null}return e})).filter((e=>null!==e))),Re=!!O&&le&&0===Me.length,Ie=!le&&!!Z,Te=!le&&!!z&&!Ie,Fe=!(le||Me.length||Ie||Te),Ae=Ie||Te||Fe,Be=(null==_?void 0:_.title)||"No results found",He=(null==_?void 0:_.subTitle)||"Please try again later or contact us at support@bik.ai if you require further assistance.",Ze=(null==z?void 0:z.title)||"Failed to load options",ze=(null==z?void 0:z.subTitle)||"Something went wrong while fetching the list. Please try again",Pe={buttonText:"Try again",buttonType:"text",size:"small",buttonTextColor:i.COLORS.background.inverseLight,customIconColor:i.COLORS.background.inverseLight,LeadingIcon:n.default},Ve=Object.assign({IconHolderStyle:{background:i.COLORS.background.negative.light},Icon:e.jsx(t.default,{color:i.COLORS.content.negative,width:24,height:24})},z);Ve.actionButton=Object.assign(Object.assign({},Pe),null!==(J=null==z?void 0:z.actionButton)&&void 0!==J?J:{});const We=Ie?void 0:Te?Ve:_;return e.jsxs(h.OpennedDropdownContainer,Object.assign({version:q,ref:ye,tabIndex:-1,style:Object.assign(Object.assign({width:je},$),{outline:"none"})},{children:[e.jsxs("div",Object.assign({style:{width:xe?"50%":"100%",display:"flex",flexDirection:"column",background:"white"}},{children:[!!O&&e.jsx(f.SearchBox,{onSearch:ie,version:q}),Ae?e.jsx("div",Object.assign({style:{height:De,display:"flex",background:i.COLORS.background.base}},{children:e.jsx(s.ZeroState,Object.assign({},null!=We?We:{},{isLoading:Ie,title:Te?Ze:Be,subTitle:Te?ze:He}))})):e.jsxs(h.MenuListContainer,Object.assign({minHeight:De,maxHeight:qe,ref:Le},{children:[!!x&&!Re&&!R&&e.jsx(d.SelectAllMenu,{version:q,options:le&&D?ue:re,onSelect:pe}),!C&&Re&&e.jsx(g.SearchZeroState,{isLoading:H,errorMessage:ce,onRetry:ae,height:qe,searchedString:le,containerWidth:w,version:q}),C&&(Re||!!Ee.length&&Ee.every((e=>!1===e)))&&e.jsx(c.FreeFormMenu,{version:q,isMultiSelect:x,onSelect:fe,searchedString:le}),e.jsx(a.MenuList,{onInfiniteScroll:T,onDropdownItemClick:A,version:q,onSelect:de,showDescription:function(e,t){me(e&&t?{title:e,description:t}:null)},isMultiSelect:x,options:Me,useDefaultCursor:W,ref:ke,focusedIndex:we,isDraggable:K,onOptionsReorder:oe,showCheckboxForCustomElement:G})]})),!!x&&!Ae&&"2.0"!==q&&e.jsx(p.default,{onClear:()=>{he(),null==F||F()},onApply:ge,list:le&&D?ue:re,buttonText:I,buttonOptions:B,hideClearButton:U})]})),!!xe&&e.jsx(u.Description,{title:xe.title,description:xe.description,version:q})]}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("../../../../assets/icons/errorInfo.svg.js"),n=require("../../../../assets/icons/refresh-purple.svg.js"),o=require("react"),r=require("../../../zeroState/ZeroState.js"),s=require("../../../../hooks/useOutside.js"),i=require("../../../../constants/Theme.js"),l=require("../../hooks/useDropdown.js"),c=require("./description/Description.js"),u=require("./menu/FreeFormMenu.js"),a=require("./menu/MenuList.js"),d=require("./menu/SelectAllMenu.js"),p=require("./multiSelect/MultiSelectDropdownBottomBar.js"),h=require("./OpennedDropdown.styled.js"),b=require("./searchbox/SearchBox.js"),f=require("./searchbox/SearchZeroState.js");const g=304,S=290;exports.OpenedDropdown=v=>{let{options:j,isSearchable:O,isMultiSelect:x,maxSelections:w,width:m,allowFreeForm:C,height:y,onClose:k,onSelect:L,onSearch:D,version:R,skipSorting:q,headerRef:E,hideSelectAll:M,primaryButtonText:I,onInfiniteScroll:T,onMultiSelectClear:A,onDropdownItemClick:F,buttonOptions:B,isSearchLoading:H,isOptionsLoading:Z,optionsErrorState:z,disableSearchOptions:P,disableSearchedOptionExcept:V,useDefaultCursor:W,containerStyle:$={},zeroState:_,isDraggable:K=!1,onOptionsReorder:N,hideClearButton:U=!1,showCheckboxForCustomElement:G=!1,checkboxActiveColor:J,brandSelectedRow:Q}=v;var X;const Y=o.useCallback((e=>{if(!K||!x)return e;const t=[],n=[];return e.forEach((e=>{if(e.options)n.push(e);else{e.selected?t.push(e):n.push(e)}})),[...t,...n]}),[K,x]),[ee,te]=o.useState((()=>Y(j))),ne=o.useRef(ee),oe=o.useRef(!1),re=o.useRef(N);o.useEffect((()=>{te(Y(j))}),[j,Y]),o.useEffect((()=>{ne.current=ee}),[ee]),o.useEffect((()=>{re.current=N}),[N]),o.useEffect((()=>()=>{oe.current&&re.current&&re.current(ne.current)}),[]);const se=o.useCallback((e=>{te(e),"2.0"===R?null==N||N(e):oe.current=!0}),[N,R]),ie=K?ee:j,{dropdownOptions:le,search:ce,searchedString:ue,searchedOptions:ae,searchError:de,retrySearch:pe,onApplyHandler:he,selectAllHandler:be,onMultiSelectClear:fe,onFreeFormSelect:ge,onMultiSelectApply:Se,latestDropdownOptionsRef:ve,getSelectedOptions:je,getCurrentSelectionCount:Oe}=l.useDropdown(R,ie,L,q||K,x,D,P,V,w),[xe,we]=o.useState(null!=m?m:S),[me,Ce]=o.useState(null),[ye,ke]=o.useState(-1),Le=o.useRef(null),De=o.useRef([]),Re=o.useRef(null);s.useOutside(Le,(()=>{if(Ce(null),x&&"2.0"===R){const e=je(ve.current);null==k||k(e)}else null==k||k(le)}),[E,De]),o.useEffect((()=>{const e=setTimeout((()=>{Le.current&&Le.current.focus({preventScroll:!0})}),0);return()=>clearTimeout(e)}),[]);o.useEffect((()=>{const e=e=>{const t=(e=>{const t=[];return e.forEach((e=>{if(e.options)e.options.forEach((e=>{e.disabled||t.push(e)}));else{const n=e;n.disabled||t.push(n)}})),t})(ue&&D?ae:le);if(0!==t.length)if("ArrowDown"===e.key)e.preventDefault(),ke((e=>{const n=e<t.length-1?e+1:0;return setTimeout((()=>{var e;const t=null===(e=Re.current)||void 0===e?void 0:e.querySelector(`[data-option-index="${n}"]`);t&&t.scrollIntoView({block:"nearest",behavior:"smooth"})}),0),n}));else if("ArrowUp"===e.key)e.preventDefault(),ke((e=>{const n=e>0?e-1:t.length-1;return setTimeout((()=>{var e;const t=null===(e=Re.current)||void 0===e?void 0:e.querySelector(`[data-option-index="${n}"]`);t&&t.scrollIntoView({block:"nearest",behavior:"smooth"})}),0),n}));else if("Enter"===e.key&&ye>=0){e.preventDefault();const n=t[ye];n&&(he(Object.assign(Object.assign({},n),{selected:!n.selected})),F&&F(n))}},t=Le.current;if(t)return t.addEventListener("keydown",e),()=>{t.removeEventListener("keydown",e)}}),[ye,ue,ae,le,D,he,F]);const qe=null!=y?y:g,Ee="number"==typeof qe?O&&x?qe-96:O&&!x||!O&&x?qe-48:qe:qe;o.useEffect((()=>{const e=null!=m?m:S;if(null===me)we(e);else if("number"==typeof e)we(2*e);else if("string"==typeof e&&e.endsWith("px")){const t=2*parseInt(e.replace("px",""));we(t)}}),[me]);const Me=[],Ie=(e=>{if(!x||!w&&0!==w)return e;const t=Oe(le)>=w;return t?e.map((e=>{if(e.options)return Object.assign(Object.assign({},e),{options:e.options.map((e=>Object.assign(Object.assign({},e),{disabled:e.disabled||!e.selected&&t})))});{const n=e;return Object.assign(Object.assign({},n),{disabled:n.disabled||!n.selected&&t})}})):e})((ue&&D?ae:le).map((e=>{var t,n;if(ue&&!D){if(e.options){const t=Object.assign({},e);return t.options=t.options.filter((e=>{var t;return!!(null===(t=e.label)||void 0===t?void 0:t.toLowerCase().includes(ue.toLowerCase()))&&(Me.push(!ue||e.label===ue),!0)})),t.options.length>0?t:null}return(null===(t=e.label)||void 0===t?void 0:t.toLowerCase().includes(ue.toLowerCase()))||(null===(n=e.searchKey)||void 0===n?void 0:n.toLowerCase().includes(ue.toLowerCase()))?(Me.push(!ue||e.label===ue),e):null}return e})).filter((e=>null!==e))),Te=!!O&&ue&&0===Ie.length,Ae=!ue&&!!Z,Fe=!ue&&!!z&&!Ae,Be=!(ue||Ie.length||Ae||Fe),He=Ae||Fe||Be,Ze=(null==_?void 0:_.title)||"No results found",ze=(null==_?void 0:_.subTitle)||"Please try again later or contact us at support@bik.ai if you require further assistance.",Pe=(null==z?void 0:z.title)||"Failed to load options",Ve=(null==z?void 0:z.subTitle)||"Something went wrong while fetching the list. Please try again",We={buttonText:"Try again",buttonType:"text",size:"small",buttonTextColor:i.COLORS.background.inverseLight,customIconColor:i.COLORS.background.inverseLight,LeadingIcon:n.default},$e=Object.assign({IconHolderStyle:{background:i.COLORS.background.negative.light},Icon:e.jsx(t.default,{color:i.COLORS.content.negative,width:24,height:24})},z);$e.actionButton=Object.assign(Object.assign({},We),null!==(X=null==z?void 0:z.actionButton)&&void 0!==X?X:{});const _e=Ae?void 0:Fe?$e:_;return e.jsxs(h.OpennedDropdownContainer,Object.assign({version:R,ref:Le,tabIndex:-1,style:Object.assign(Object.assign({width:xe},$),{outline:"none"})},{children:[e.jsxs("div",Object.assign({style:{width:me?"50%":"100%",display:"flex",flexDirection:"column",background:"white"}},{children:[!!O&&e.jsx(b.SearchBox,{onSearch:ce,version:R}),He?e.jsx("div",Object.assign({style:{height:qe,display:"flex",background:i.COLORS.background.base}},{children:e.jsx(r.ZeroState,Object.assign({},null!=_e?_e:{},{isLoading:Ae,title:Fe?Pe:Ze,subTitle:Fe?Ve:ze}))})):e.jsxs(h.MenuListContainer,Object.assign({minHeight:qe,maxHeight:Ee,ref:Re},{children:[!!x&&!Te&&!M&&e.jsx(d.SelectAllMenu,{version:R,options:ue&&D?ae:le,onSelect:be,checkboxActiveColor:J,brandSelectedRow:Q}),!C&&Te&&e.jsx(f.SearchZeroState,{isLoading:H,errorMessage:de,onRetry:pe,height:Ee,searchedString:ue,containerWidth:m,version:R}),C&&(Te||!!Me.length&&Me.every((e=>!1===e)))&&e.jsx(u.FreeFormMenu,{version:R,isMultiSelect:x,onSelect:ge,searchedString:ue,checkboxActiveColor:J,brandSelectedRow:Q}),e.jsx(a.MenuList,{onInfiniteScroll:T,onDropdownItemClick:F,version:R,onSelect:he,showDescription:function(e,t){Ce(e&&t?{title:e,description:t}:null)},isMultiSelect:x,options:Ie,useDefaultCursor:W,ref:De,focusedIndex:ye,isDraggable:K,onOptionsReorder:se,showCheckboxForCustomElement:G,checkboxActiveColor:J,brandSelectedRow:Q})]})),!!x&&!He&&"2.0"!==R&&e.jsx(p.default,{onClear:()=>{fe(),null==A||A()},onApply:Se,list:ue&&D?ae:le,buttonText:I,buttonOptions:B,hideClearButton:U})]})),!!me&&e.jsx(c.Description,{title:me.title,description:me.description,version:R})]}))};
2
2
  //# sourceMappingURL=OpennedDropdown.js.map
@@ -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\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/>\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","_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","jsx","ErrorInfoIcon","color","content","actionButton","zeroStateProps","undefined","_jsxs","OpennedDropdownContainer","tabIndex","style","outline","children","jsxs","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
+ {"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","_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","jsx","ErrorInfoIcon","color","content","actionButton","zeroStateProps","undefined","_jsxs","OpennedDropdownContainer","tabIndex","style","outline","children","jsxs","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,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("../../../../checkBox/CheckBox.js"),s=require("../../../../list-item/ListItem.js"),i=require("../../../../TypographyStyle.js"),n=require("../../../../../constants/Theme.js"),o=require("./FreeFormMenu.styled.js");exports.FreeFormMenu=c=>{let{searchedString:l,onSelect:a,isMultiSelect:u,version:j}=c;const[m,x]=r.useState(!1);function d(){x(!m),a(!m)}return e.jsx(s.ListItem,{version:j,onClick:e=>{e.preventDefault(),d()},listItem:{label:l,value:l},leadingIcon:u?e.jsx(t.CheckBox,{size:"2.0"===j?"SMALL":"DEFAULT",isChecked:m,onValueChange:d}):e.jsx(e.Fragment,{}),trailingIcon:e.jsx(o.FreeFormContainer,{children:e.jsx(i.BodyCaption,Object.assign({style:{color:n.COLORS.content.secondary}},{children:"Freeform"}))})})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("../../../../checkBox/CheckBox.js"),o=require("../../../../list-item/ListItem.js"),s=require("../../../../TypographyStyle.js"),i=require("../../../../../constants/Theme.js"),n=require("./FreeFormMenu.styled.js");exports.FreeFormMenu=c=>{let{searchedString:l,onSelect:a,isMultiSelect:u,version:d,checkboxActiveColor:j,brandSelectedRow:x}=c;const[h,m]=r.useState(!1);function C(){m(!h),a(!h)}return e.jsx(o.ListItem,{version:d,brandSelectedRow:x,onClick:e=>{e.preventDefault(),C()},listItem:{label:l,value:l},leadingIcon:u?e.jsx(t.CheckBox,{size:"2.0"===d?"SMALL":"DEFAULT",isChecked:h,onValueChange:C,activeColor:j}):e.jsx(e.Fragment,{}),trailingIcon:e.jsx(n.FreeFormContainer,{children:e.jsx(s.BodyCaption,Object.assign({style:{color:i.COLORS.content.secondary}},{children:"Freeform"}))})})};
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' | '3.0';\n}> = ({ searchedString, onSelect, isMultiSelect, version }) => {\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\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/>\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":["_ref","searchedString","onSelect","isMultiSelect","version","isChecked","setChecked","useState","onCheckHandler","_jsx","ListItem","onClick","e","preventDefault","listItem","label","value","leadingIcon","jsx","CheckBox","size","onValueChange","trailingIcon","FreeFormContainer","BodyCaption","Object","assign","style","color","COLORS","content","secondary","children"],"mappings":"6WAYKA,IAAyD,IAAxDC,eAAEA,EAAcC,SAAEA,EAAQC,cAAEA,EAAaC,QAAEA,GAASJ,EACzD,MAAOK,EAAWC,GAAcC,EAAQA,UAAC,GACzC,SAASC,IACRF,GAAYD,GACZH,GAAUG,EACX,CAEA,OACCI,EAAAA,IAACC,EAAAA,SAAQ,CACRN,QAASA,EACTO,QAAUC,IACTA,EAAEC,iBACFL,GAAgB,EAEjBM,SAAU,CACTC,MAAOd,EACPe,MAAOf,GAERgB,YACCd,EACCM,EAACS,IAAAC,WACA,CAAAC,KAAkB,QAAZhB,EAAoB,QAAU,UACpCC,UAAWA,EACXgB,cAAeb,IAGhBC,EAAAA,mBAGFa,aACCb,EAACS,IAAAK,8BACAd,EAACS,IAAAM,cACAC,OAAAC,OAAA,CAAAC,MAAO,CACNC,MAAOC,EAAAA,OAAOC,QAAQC,YAIV,CAAAC,SAAA,iBAGf"}
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":["_ref","searchedString","onSelect","isMultiSelect","version","checkboxActiveColor","brandSelectedRow","isChecked","setChecked","useState","onCheckHandler","_jsx","ListItem","onClick","e","preventDefault","listItem","label","value","leadingIcon","jsx","CheckBox","size","onValueChange","activeColor","_Fragment","Fragment","trailingIcon","FreeFormContainer","children","BodyCaption","Object","assign","style","color","COLORS","content","secondary"],"mappings":"6WAcKA,IAOA,IAPCC,eACLA,EAAcC,SACdA,EAAQC,cACRA,EAAaC,QACbA,EAAOC,oBACPA,EAAmBC,iBACnBA,GACAN,EACA,MAAOO,EAAWC,GAAcC,EAAQA,UAAC,GACzC,SAASC,IACRF,GAAYD,GACZL,GAAUK,EACX,CAEA,OACCI,EAAAA,IAACC,EAAAA,SACA,CAAAR,QAASA,EACTE,iBAAkBA,EAClBO,QAAUC,IACTA,EAAEC,iBACFL,GAAgB,EAEjBM,SAAU,CACTC,MAAOhB,EACPiB,MAAOjB,GAERkB,YACChB,EACCQ,EAAAS,IAACC,WAAQ,CACRC,KAAkB,QAAZlB,EAAoB,QAAU,UACpCG,UAAWA,EACXgB,cAAeb,EACfc,YAAanB,IAGdM,EAAAA,IAAKc,EAAAC,SAAA,IAGPC,aACChB,EAAAS,IAACQ,oBAAiB,CAAAC,SACjBlB,EAACS,IAAAU,cACAC,OAAAC,OAAA,CAAAC,MAAO,CACNC,MAAOC,EAAAA,OAAOC,QAAQC,YAIV,CAAAR,SAAA,iBAGf"}