@sendbird/ai-agent-messenger-react 1.19.0 → 1.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{DmRtDiu3.cjs → 6Zr7tYRh.cjs} +6 -6
- package/dist/cjs/{B7RUkqyZ.cjs → CNK70fWM.cjs} +1 -1
- package/dist/cjs/{CDKvaFVD.cjs → CQd8GuWE.cjs} +1 -1
- package/dist/cjs/{Dn0HIoDs.cjs → CXfbOeBS.cjs} +1 -1
- package/dist/cjs/{BRiNYhzZ.cjs → Ct1aEvl9.cjs} +1 -1
- package/dist/cjs/{CkRtPYu2.cjs → DQCOoJ_z.cjs} +1 -1
- package/dist/cjs/{BHmi862p.cjs → DZS61iww.cjs} +1 -1
- package/dist/cjs/{DuYQj-T9.cjs → D___JlpJ.cjs} +1 -1
- package/dist/cjs/{ByGRYJVz.cjs → DghGvqtY.cjs} +1 -1
- package/dist/cjs/{KouyTorz.cjs → DlQtWfBS.cjs} +1 -1
- package/dist/cjs/{BWtj68w5.cjs → eRuO6jKx.cjs} +1 -1
- package/dist/es/{Pegg7Snc.js → 3MMW9yZj.js} +1 -1
- package/dist/es/{kEl07Dux.js → B328z7Yh.js} +1 -1
- package/dist/es/{Dqs_T84t.js → BQt0I0G7.js} +1 -1
- package/dist/es/{fyKo7Xbp.js → Bnz_J6Ij.js} +1 -1
- package/dist/es/{CWV-J3Ta.js → BrmYafuu.js} +1 -1
- package/dist/es/{BEvfkh3_.js → C0ROszna.js} +1 -1
- package/dist/es/{C-dJq_hf.js → CTiYbbZ0.js} +1 -1
- package/dist/es/{C4NDe7Wd.js → DGBsXgND.js} +1 -1
- package/dist/es/{DSsAaVrV.js → DKppAyK1.js} +1 -1
- package/dist/es/{Cmz3dl3b.js → DLrmbQi7.js} +1 -1
- package/dist/es/{cDVEvKPS.js → DbmXdAKl.js} +198 -194
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var Bo=Object.defineProperty;var Uo=(e,t,n)=>t in e?Bo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var F=(e,t,n)=>Uo(e,typeof t!="symbol"?t+"":t,n);const Y=require("@sendbird/chat"),c=require("react"),k=require("styled-components"),De=require("date-fns"),Ho=require("date-fns/locale/en-US"),Ie=require("@sendbird/chat/message"),se=require("@sendbird/chat/aiAgent"),bt=require("@sendbird/chat/groupChannel"),ve=require("@sendbird/uikit-tools"),zo=require("react-dom"),Vo=require("date-fns/isSameDay"),Kt=require("@sendbird/react-uikit-message-template-view"),Go=require("@sendbird/uikit-message-template"),Wo=require("dompurify"),qo=require("@emotion/is-prop-valid"),Tt=e=>e&&e.__esModule?e:{default:e};function jo(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const Ko=Tt(Y),o=jo(c),h=Tt(k),Cr=Tt(Wo),Yo=Tt(qo),ze="sb-agent",_r="KEY_IMG_ASPECT_RATIO",Yt="*/*",H={BODY_MAX_WIDTH:244,WIDE_BODY_MAX_WIDTH:640,AVATAR_SIZE:26,BODY_TIME_GAP:4,HORIZONTAL_PADDING:12,GAP_GROUPED:2,GAP_UNGROUPED:16},fe=e=>!!e&&"sender"in e,Xo=e=>fe(e)?e.sendingStatus==="succeeded"?String(e.messageId):e.reqId:String(e.messageId),Zo=(e,t,n,r=!0)=>{if(!r||!fe(e))return"single";const s=()=>{if(!t||!fe(t))return!1;const u=t.sender.userId===e.sender.userId,d=De.isSameMinute(t.createdAt,e.createdAt);return u&&d},a=()=>{if(!n||!fe(n))return!1;const u=n.sender.userId===e.sender.userId,d=De.isSameMinute(n.createdAt,e.createdAt);return u&&d},i=s(),l=a();return i&&l?"middle":i?"bottom":l?"top":"single"},Qe=(e,t)=>(()=>{var r;return fe(e)?e.sender.userId:((r=e==null?void 0:e.sender)==null?void 0:r.userId)??void 0})()===t,He={isAdmin:e=>e.isAdminMessage(),isCSAT:e=>{var t;return e.isAdminMessage()&&!!((t=e.extendedMessagePayload)!=null&&t.csat)},isIncoming:(e,t)=>fe(e)&&e.sender.userId!==t,isOutgoing:(e,t)=>fe(e)&&(e.sender.userId===t||e.sendingStatus===Ie.SendingStatus.PENDING)},we=e=>e.startsWith("image/"),vr=e=>e.startsWith("video/"),un=(e,t)=>{if(e&&!e.startsWith(".")){const n=e.split(".").pop();if(n&&n!==e)return n.toUpperCase()}if(t){const[,n]=t.split("/");if(n)return n.toUpperCase()}return"FILE"},yr=e=>{var t;return e.messageType==="file"?e.message.length>0&&e.file.name!==e.message:e.messageType==="multipleFiles"?e.message.length>0&&((t=e.files[0])==null?void 0:t.name)!==e.message:e.message.length>0},dn=e=>{switch(e){case"top":case"middle":return H.GAP_GROUPED;default:return H.GAP_UNGROUPED}},Jo=(e,t)=>{const n=/```(\w+)?\n([\s\S]*?)```/g,r=[];let s=0;return e.replace(n,(a,...i)=>{const[l,u,d]=i;return s<d&&r.push({type:"text",value:e.slice(s,d).trim()}),r.push({type:"code",value:u.trim(),language:l?l.trim():"plaintext"}),s=d+a.length,a}),s<e.length&&r.push({type:"text",value:e.slice(s).trim()}),t?r.map(a=>a.type!=="text"?a:{...a,value:t(a.value)}):r},Qo=e=>e.replace(/\[([^\]]+)\](?!\()/g,"\\[$1\\]"),es=e=>e.replace(/([a-zA-Z0-9])_(?=[a-zA-Z0-9])/g,"$1\\_"),ts=e=>e.replace(/~~/g,"\\~\\~"),ns=e=>{let t=e;return t=Qo(t),t=es(t),t=ts(t),t},rs=typeof navigator<"u"&&navigator.product==="ReactNative",On=(e,t)=>{const n=r=>!t||t.length===0?!0:fe(r)&&t.includes(r.sendingStatus);return rs?e.find(n):e.findLast(n)};function ye(){}function Sr(){const e=typeof navigator<"u"?navigator.userAgent:"",t=/iPad|iPhone|iPod/.test(e),n=/Android/.test(e);return t||n}function os(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return t.toString(16)}const Xt=e=>{try{return JSON.parse(e===""?"{}":e)}catch{return{}}},ke={isStreaming(e){const t=Xt(e.data);return typeof t=="object"&&!!t.stream},isWelcomeMessage(e,t){var n;if(((n=e.extendedMessagePayload)==null?void 0:n.bot_message_type)==="welcome")return!0;if(Qe(e,t)){const r=Xt(e.data);return!(r!=null&&r.respond_mesg_id)&&!(r!=null&&r.stream)}return!1},isGeneratedMessage(e){var t;return((t=e.extendedMessagePayload)==null?void 0:t.bot_message_type)==="generated"},hasFeedback(e){var t;return!!((t=e.extendedMessagePayload)!=null&&t.feedback)}},Bt=`@${ze}`,Rn=({appId:e,aiAgentId:t,storage:n})=>{const r={templateBase:`${Bt}-template`,template:s=>`${r.templateBase}/templates/${s}`,templateToken:()=>`${r.templateBase}/tokens`,messengerSession:s=>{const a=os(`${e}/${t}/${s}`);return`${Bt}-udata/${a}`},anonUserSession:()=>`${Bt}-session/${e}/${t}`};return{template:{set:(s,a)=>n.set(r.template(s),a),get:s=>n.get(r.template(s)),setCachedToken:s=>n.set(r.templateToken(),s),getCachedToken:()=>n.get(r.templateToken()),clear:()=>{n.getKeys(r.templateBase).forEach(n.delete)}},messenger:{getSettings:s=>{try{const a=n.get(r.messengerSession(s));return a?JSON.parse(a):null}catch{return null}},setSettings:(s,a)=>{try{delete a.auto_created_user;const i=JSON.stringify(a);n.set(r.messengerSession(s),i)}catch{return}},getAnonUser:()=>{try{const s=n.get(r.anonUserSession());return s?JSON.parse(s):null}catch{return null}},setAnonUser:s=>{try{const a=JSON.stringify(s);n.set(r.anonUserSession(),a)}catch{return}},clear:s=>{try{s&&n.delete(r.messengerSession(s)),n.delete(r.anonUserSession())}catch{return}}}}},Tr=(e,t,n={})=>{let r=null,s=null,a=null;const{leading:i=!0,trailing:l=!0}=n,u=(...d)=>{const m=Date.now();if(a===null||m-a>=t)i?(e(...d),a=m):(s=d,a=m);else if(s=d,l&&!r){const f=t-(m-a);r=setTimeout(()=>{s&&l&&(e(...s),a=Date.now()),r=null,s=null},f)}};return u.cancel=()=>{r&&(clearTimeout(r),r=null),s=null,a=null},u};class ss{constructor(t,{filter:n,limit:r=20}){F(this,"filter");F(this,"_sdk");F(this,"_pinnedChannels");F(this,"_channels");F(this,"_isDisposed",!1);F(this,"_handlerId",`handler-id-${Date.now()}`);F(this,"_order",bt.GroupChannelListOrder.LATEST_LAST_MESSAGE);F(this,"_limit");F(this,"_query");F(this,"_token");F(this,"_timestamp");F(this,"_isSyncing");F(this,"_channelHandler");F(this,"_connectionHandler");F(this,"_collectionEventHandler");F(this,"_throttledOnChannelChanged");var s,a,i,l,u,d,m;this.filter=n,this._sdk=t,this._pinnedChannels=[],this._channels=[],this._limit=r,this._query=this._sdk.aiAgent.createMyGroupChannelListQuery({aiAgentChannelFilter:(s=this.filter)==null?void 0:s.aiAgentChannelFilter,aiAgentConversationStatusFilter:(a=this.filter)==null?void 0:a.aiAgentConversationStatusFilter,aiAgentIds:(i=this.filter)==null?void 0:i.aiAgentIds,deskChannelFilter:(l=this.filter)==null?void 0:l.deskChannelFilter,pinnedChannelUrls:(u=this.filter)==null?void 0:u.pinnedChannelUrls,copilotConversationOnly:(d=this.filter)==null?void 0:d.copilotConversationOnly,copilotSupportChannelUrl:(m=this.filter)==null?void 0:m.copilotSupportChannelUrl,limit:this._limit}),this._token="",this._timestamp=Number.MAX_SAFE_INTEGER,this._isSyncing=!1,this._throttledOnChannelChanged=Tr(f=>{this._query.belongsTo(f)?this._addChannelsToView([f],!1):this._removeChannelsFromView([f.url])},250,{trailing:!1,leading:!0}),this._channelHandler=new bt.GroupChannelHandler({onChannelChanged:f=>{f.isGroupChannel()&&this._throttledOnChannelChanged(f)},onChannelDeleted:f=>{this._removeChannelsFromView([f])}}),this._connectionHandler=new Y.ConnectionHandler({onReconnectSucceeded:()=>{this._isDefaultChangelogSyncTimestampUpdated&&this._syncChannelChangelogs()}}),this._sdk.addConnectionHandler(this._handlerId,this._connectionHandler),this._sdk.groupChannel.addGroupChannelHandler(this._handlerId,this._channelHandler)}get _isDefaultChangelogSyncTimestampUpdated(){return this._timestamp!==Number.MAX_SAFE_INTEGER}_setDefaultChangelogsSyncTimestamp(t){var a,i;const n=new Set(((a=this.filter)==null?void 0:a.pinnedChannelUrls)??[]),r=t.find(l=>!n.has(l.url));let s;r?s=((i=r.lastMessage)==null?void 0:i.createdAt)??r.createdAt:s=this._query.lastResponseAt,this._timestamp>s&&(this._timestamp=s)}async _syncChannelChangelogs(){if(this._isDisposed)return[];if(this._isSyncing)return[];try{this._isSyncing=!0;let t;for(this._token?t=await this._sdk.aiAgent.getMyGroupChannelChangeLogsByToken(this._token,this.filter):t=await this._sdk.aiAgent.getMyGroupChannelChangeLogsByTimestamp(this._timestamp,this.filter),this._token=t.token,this._addChannelsToView(t.updatedChannels),this._removeChannelsFromView(t.deletedChannelUrls);t.hasMore&&t.token;)t=await this._sdk.aiAgent.getMyGroupChannelChangeLogsByToken(this._token,this.filter),this._token=t.token,this._addChannelsToView(t.updatedChannels),this._removeChannelsFromView(t.deletedChannelUrls)}catch{}finally{this._isSyncing=!1}return[]}_upsertPinnedChannelsToArray(t){var l;const n=((l=this.filter)==null?void 0:l.pinnedChannelUrls)??[],r=new Map(n.map((u,d)=>[u,d])),s=[],a=[],i=[];for(const u of t){if(!this._query.belongsTo(u)){i.push(u.url);continue}const d=r.get(u.url);if(d===void 0)continue;const m=Zt(this._pinnedChannels,u);m>=0?(this._pinnedChannels.splice(m,1),a.push(u)):s.push(u);const E=this._pinnedChannels.findIndex(_=>(r.get(_.url)??1/0)>d),v=E===-1?this._pinnedChannels.length:E;this._pinnedChannels.splice(v,0,u)}return{addedChannels:s,updatedChannels:a,unmatchedChannelUrls:i}}_upsertRegularChannelsToArray(t,n=!1){const r=[],s=[],a=[];for(const i of t){if(!this._query.belongsTo(i)){r.push(i.url);continue}const l=Zt(this._channels,i),u=l<0;!u&&this._channels.splice(l,1);const m=as(this._channels,i,this._order).place,f=m===this._channels.length;u?f?(n||!this.hasMore)&&(this._channels.push(i),s.push(i)):(this._channels.splice(m,0,i),s.push(i)):(this._channels.splice(m,0,i),a.push(i))}return{addedChannels:s,updatedChannels:a,unmatchedChannelUrls:r}}_addChannelsToView(t,n=!1){var f,E,v,_,b;const r=new Set(((f=this.filter)==null?void 0:f.pinnedChannelUrls)??[]),s=[],a=[];for(const p of t)r.has(p.url)?s.push(p):a.push(p);const i=this._upsertPinnedChannelsToArray(s),l=this._upsertRegularChannelsToArray(a,n),u=i.addedChannels.concat(l.addedChannels),d=i.updatedChannels.concat(l.updatedChannels),m=i.unmatchedChannelUrls.concat(l.unmatchedChannelUrls);u.length>0&&((v=(E=this._collectionEventHandler)==null?void 0:E.onChannelsAdded)==null||v.call(E,{},u)),d.length>0&&((b=(_=this._collectionEventHandler)==null?void 0:_.onChannelsUpdated)==null||b.call(_,{},d)),m.length>0&&this._removeChannelsFromView(m)}_removeChannelsFromView(t){var s,a,i;const n=new Set(((s=this.filter)==null?void 0:s.pinnedChannelUrls)??[]),r=[];for(const l of t)if(n.has(l)){const u=this._pinnedChannels.findIndex(d=>d.url===l);u>=0&&(r.push(l),this._pinnedChannels.splice(u,1))}else{const u=this._channels.findIndex(d=>d.url===l);u>=0&&(r.push(l),this._channels.splice(u,1))}r.length>0&&((i=(a=this._collectionEventHandler)==null?void 0:a.onChannelsDeleted)==null||i.call(a,{},r))}get channels(){return this._isDisposed?[]:[...this._pinnedChannels,...this._channels]}get hasMore(){return this._isDisposed?!1:this._query.hasNext}async loadMore(){if(this._isDisposed)return[];if(this.hasMore){const t=await this._query.next();return this._setDefaultChangelogsSyncTimestamp(t),this._addChannelsToView(t,!0),t}return[]}setConversationListCollectionHandler(t){this._collectionEventHandler=t}dispose(){this._isDisposed||(this._isDisposed=!0,this._throttledOnChannelChanged.cancel(),this._collectionEventHandler=void 0,this._sdk.removeConnectionHandler(this._handlerId),this._sdk.groupChannel.removeGroupChannelHandler(this._handlerId),this._pinnedChannels.length=0,this._channels.length=0)}}const Zt=(e,t)=>e.findIndex(n=>n.isIdentical(t)),as=(e,t,n)=>{if(e.length>0){const r=Zt(e,t);let s=0,a=e.length-1,i=Math.floor((s+a)/2);for(;s<a;){const u=Dn(e[i],t,n);if(u>0)a=i,i=Math.floor((s+a)/2);else if(u<0)s=i+1,i=Math.floor((s+a)/2);else return{place:i,oldPosition:r}}return{place:Dn(e[i],t,n)>=0?i:i+1,oldPosition:r}}return{place:e.length,oldPosition:-1}},Dn=(e,t,n)=>{switch(n){case bt.GroupChannelListOrder.LATEST_LAST_MESSAGE:if(e.lastMessage&&t.lastMessage){const r=t.lastMessage.createdAt-e.lastMessage.createdAt;return r===0?t.createdAt-e.createdAt:r}else return e.lastMessage?-1:t.lastMessage?1:t.createdAt-e.createdAt;default:return 0}};class Ar{constructor(t){F(this,"subscribers",{});this.logger=t}async send(t){const n=is(),r=this.subscribers[t.type];if(r){this.logger.debug(`messenger.dispatcher: dispatching command: ${t.type}`,t.payload);const s=r.map(a=>a(t.payload));await Promise.all(s).catch(a=>{this.logger.error(`messenger.dispatcher: error in callback for command: ${t.type}`,a)})}return n.resolve(),n.promise}subscribe(t,n){this.subscribers[t]||(this.subscribers[t]=[]),this.subscribers[t].push(n)}unsubscribe(t,n){const r=this.subscribers[t];r&&(this.subscribers[t]=r.filter(s=>s!==n))}}const is=()=>{let e=ye,t=ye;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}};var Ze=(e=>(e.ConversationClose="conv.close",e.MessengerSettingsUpdated="messenger.settings.updated",e.ActiveChannelUpdated="active.channel.updated",e.AnonymousSessionTokenExpired="anon.token.expired",e))(Ze||{});class At{constructor(t={}){F(this,"payload");this.payload=t}toJSON(){return JSON.stringify({type:this.type,payload:this.payload})}}const mn={CloseConversation:e=>new ls(e),MessengerSettingsUpdated:e=>new cs(e),ActiveChannelUpdated:e=>new us(e),AnonymousSessionTokenExpired:()=>new ds};class ls extends At{constructor(){super(...arguments);F(this,"type","conv.close")}}class cs extends At{constructor(){super(...arguments);F(this,"type","messenger.settings.updated")}}class us extends At{constructor(){super(...arguments);F(this,"type","active.channel.updated")}}class ds extends At{constructor(){super(...arguments);F(this,"type","anon.token.expired")}}var gn=(e=>(e[e.VERBOSE=0]="VERBOSE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.NONE=5]="NONE",e))(gn||{});class wr{constructor(t){F(this,"level");this.level=t}verbose(...t){this.level<=0&&console.log(`[${ze}/verbose]`,...t)}debug(...t){this.level<=1&&console.log(`[${ze}/debug]`,...t)}info(...t){this.level<=2&&console.log(`[${ze}/info]`,...t)}warn(...t){this.level<=3&&console.warn(`[${ze}/warn]`,...t)}error(...t){this.level<=4&&console.error(`[${ze}/error]`,...t)}}class Ir{constructor({userId:t,authToken:n,sessionHandler:r}){F(this,"userId");F(this,"authToken");F(this,"sessionHandler");this.userId=t,this.authToken=n,this.sessionHandler=r}}class Jt{constructor(){F(this,"userId");F(this,"authToken");F(this,"sessionHandler")}}const ms=e=>({onSessionTokenRequired:t=>{t(null),e.send(mn.AnonymousSessionTokenExpired())}}),gs="ai_agent:stats",hs="conversation_initial_render",ps=800220;var K=(e=>(e.AUTH="auth_duration",e.GET_CHANNEL="get_channel_duration",e.GET_MESSAGES="get_messages_duration",e.TOTAL_DURATION="total_duration",e.TOTAL_DURATION_FROM_CACHE="total_duration_from_cache",e))(K||{});class fs{constructor(){F(this,"timers",new Map);F(this,"committed",!1);F(this,"commitCallback",null);F(this,"conversationId",null);F(this,"channelUrl",null);F(this,"errorCode",null);F(this,"errorDescription",null);F(this,"extraData",{})}setCommitCallback(t){return this.commitCallback=t,this}setConversationId(t){return this.conversationId=t,this}setChannelUrl(t){return this.setExtra("channel_url",t),this}setError(t,n){return this.errorCode=t??ps,this.errorDescription=n,this}setExtra(t,n){return n!=null&&(this.extraData[t]=n),this}startTimer(t){if(this.committed)return this;const n=this.timers.get(t);return(n==null?void 0:n.startTime)!==null&&(n==null?void 0:n.startTime)!==void 0?this:(this.timers.set(t,{startTime:Date.now(),endTime:null}),this)}stopTimer(t){if(this.committed)return this;const n=this.timers.get(t);return!n||n.startTime===null||n.endTime!==null?this:(this.timers.set(t,{...n,endTime:Date.now()}),this)}getDuration(t){const n=this.timers.get(t);return!n||n.startTime===null||n.endTime===null?null:n.endTime-n.startTime}isCommitted(){return this.committed}commit(){if(this.committed||!this.commitCallback)return!1;const t=this.buildPayload();return t?(this.committed=!0,this.commitCallback(gs,t)):!1}}class Es extends fs{constructor(){super(...arguments);F(this,"presentMethod","direct_present")}setPresentMethod(n){return this.presentMethod=n,this}getMetricKey(){return hs}buildPayload(){const n=this.getDuration(K.AUTH),r=this.getDuration(K.GET_CHANNEL),s=this.getDuration(K.GET_MESSAGES),a=this.getDuration(K.TOTAL_DURATION_FROM_CACHE),i=this.getDuration(K.TOTAL_DURATION),l={...this.extraData,present_method:this.presentMethod,...n!==null&&{auth_duration:n},...r!==null&&{get_channel_duration:r},...s!==null&&{get_messages_duration:s},...a!==null&&{total_duration_from_cache:a}},u={key:this.getMetricKey(),value:i!==null?String(i):"0"};return this.conversationId!==null&&(u.conversation_id=this.conversationId),this.errorCode!==null&&(u.error_code=this.errorCode),this.errorDescription!==null&&(u.error_description=this.errorDescription),Object.keys(l).length>0&&(u.extra=l),u}}class bs{constructor(t){F(this,"commitCallback");F(this,"presentMethod","direct_present");F(this,"stats",null);this.commitCallback=t}getOrCreateStats(){return(!this.stats||this.stats.isCommitted())&&(this.stats=new Es().setCommitCallback(this.commitCallback).setPresentMethod(this.presentMethod)),this.stats}onAuthStart(){this.getOrCreateStats().startTimer(K.TOTAL_DURATION).startTimer(K.TOTAL_DURATION_FROM_CACHE).startTimer(K.AUTH)}onAuthComplete(){var t;(t=this.stats)==null||t.stopTimer(K.AUTH)}onAuthError(t){this.stats&&!this.stats.isCommitted()&&this.stats.stopTimer(K.AUTH).setError(t instanceof Y.SendbirdError?t.code:void 0,t.message).stopTimer(K.TOTAL_DURATION).commit()}onGetChannelStart(){var t;(t=this.stats)==null||t.startTimer(K.GET_CHANNEL)}onGetChannelComplete(t){this.stats&&(this.stats.stopTimer(K.GET_CHANNEL),t!==void 0&&this.stats.setConversationId(t),this.stats.startTimer(K.GET_MESSAGES))}onGetChannelError(t){this.stats&&!this.stats.isCommitted()&&this.stats.stopTimer(K.GET_CHANNEL).setError(t instanceof Y.SendbirdError?t.code:void 0,t.message).stopTimer(K.TOTAL_DURATION).commit()}onCacheResult(t){this.stats&&!this.stats.isCommitted()&&(t&&this.stats.setError(t instanceof Y.SendbirdError?t.code:void 0,t.message),this.stats.stopTimer(K.TOTAL_DURATION_FROM_CACHE))}onApiResult(t){this.stats&&!this.stats.isCommitted()&&(t&&this.stats.setError(t instanceof Y.SendbirdError?t.code:void 0,t.message),this.stats.stopTimer(K.TOTAL_DURATION).stopTimer(K.GET_MESSAGES).commit())}setChannelUrl(t){var n;(n=this.stats)==null||n.setChannelUrl(t)}cleanup(){var t;(t=this.stats)==null||t.commit()}setPresentMethod(t){var n;this.presentMethod=t,(n=this.stats)==null||n.setPresentMethod(t)}clear(){this.stats=null}}const Ae={conversation:{isTalkToAgentViewEnabled:!0,scrollMode:"auto",newMessageIndicatorEnabled:!0,senderAvatarEnabled:!0,messageAlertSoundEnabled:!1,header:{avatarEnabled:!0},input:{camera:{photoEnabled:!0},gallery:{photoEnabled:!0},fileEnabled:!0},fileViewer:{downloadEnabled:!0}}},xs=e=>{var t,n,r,s,a,i,l,u,d,m,f,E,v,_;return e?{...Ae,...e,conversation:{...Ae.conversation,...e==null?void 0:e.conversation,header:{...(t=Ae.conversation)==null?void 0:t.header,...(n=e==null?void 0:e.conversation)==null?void 0:n.header},input:{...(r=Ae.conversation)==null?void 0:r.input,...(s=e==null?void 0:e.conversation)==null?void 0:s.input,camera:{...(i=(a=Ae.conversation)==null?void 0:a.input)==null?void 0:i.camera,...(u=(l=e==null?void 0:e.conversation)==null?void 0:l.input)==null?void 0:u.camera},gallery:{...(m=(d=Ae.conversation)==null?void 0:d.input)==null?void 0:m.gallery,...(E=(f=e==null?void 0:e.conversation)==null?void 0:f.input)==null?void 0:E.gallery}},fileViewer:{...(v=Ae.conversation)==null?void 0:v.fileViewer,...(_=e==null?void 0:e.conversation)==null?void 0:_.fileViewer}}}:Ae},ue=e=>{var t,n;return!!(e!=null&&e.isAIAgent&&((t=e==null?void 0:e.conversation)==null?void 0:t.status)===se.ConversationStatus.CLOSED||e!=null&&e.isDesk&&((n=e==null?void 0:e.helpdeskInfo)==null?void 0:n.ticketStatus)==="closed")},hn=e=>{var t,n;return!!(e!=null&&e.isAIAgent&&((t=e==null?void 0:e.conversation)==null?void 0:t.status)===se.ConversationStatus.OPEN||e!=null&&e.isDesk&&((n=e==null?void 0:e.helpdeskInfo)==null?void 0:n.ticketStatus)==="open")};function Ve(e){var n,r,s;return typeof(((n=e==null?void 0:e.conversation)==null?void 0:n.handedOverAt)??((s=(r=e==null?void 0:e.conversation)==null?void 0:r.handoff)==null?void 0:s.timestamp))=="number"}function Cs(e){var t;if(((t=e==null?void 0:e.resolution)==null?void 0:t.determinedBy)==="user")return e.resolution.isResolved}function Nn(e){return!!e&&e<Date.now()}function _s(e){return!e.title}function vs(e,t){var n;if(e)return _s(e)?{...e,title:t.title,csat_question:t.question,csat_scores:[{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/angry-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/suspicious-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/neutral-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/smile-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/happy-active.png"}],cre:{required:((n=e.cre)==null?void 0:n.required)??!0,question:t.cre.question,positive_label:t.cre.positive_label,negative_label:t.cre.negative_label},follow_up:[{response_type:"free_text",scores:[1,2,3,4,5],question:t.followUp.question,always_visible:!1}],csat_submit_label:t.submit_label,csat_submitted_label:t.submitted_label}:e}const kr=e=>{try{const t=JSON.parse(e);return typeof t=="string"?JSON.stringify(t).slice(1,-1):e.trim()}catch{return JSON.stringify(e).slice(1,-1)}},et=e=>JSON.parse(e),wt=e=>JSON.parse(e);function ys(e,t){const[n,r]=t.split(",").map(s=>s.trim());return e==="dark"&&r||n}function Ss(e){const t={};function n(r,s=""){for(const[a,i]of Object.entries(r)){const l=s?`${s}.${a}`:a;i&&typeof i=="object"&&!Array.isArray(i)?n(i,l):t[l]=i}}return n(e),t}function pn({template:e,variables:t,variableKeyPattern:n,variableValueTransformer:r}){return Object.entries(t).reduce((s,[a,i])=>{if(!r&&!["number","boolean","string"].includes(typeof i))throw new Error(`If transformer is not provided, value(${a}:${i}) must be a {string, number, or boolean}`);const l=r?r(i):String(i),u=n(a);return s.replace(u,kr(l))},e)}async function Ts({template:e,variables:t,variableKeyPattern:n,variableValueTransformer:r}){return(await Promise.all(Object.entries(t).map(async([a,i])=>{const l=await r(i);return{regex:n(a),transformedValue:l}}))).reduce((a,{regex:i,transformedValue:l})=>a.replace(i,kr(l)),e)}var Qt=(e=>(e[e.EXTERNAL_AUTH_TOKEN_EXPIRED=1]="EXTERNAL_AUTH_TOKEN_EXPIRED",e))(Qt||{});const Mr=e=>typeof e=="object"&&e!==null,Pn=(e,t)=>t in e&&typeof e[t]=="string"&&e[t]!=="",As=e=>!Mr(e)||!Pn(e,"channel_url")||!Pn(e,"ai_agent_id")?null:{channelUrl:e.channel_url,aiAgentId:e.ai_agent_id},ws={1:As};function Is(e){if(!Mr(e)||!("cat"in e)||typeof e.cat!="number"||!("data"in e))return null;const t=e.cat,n=ws[t];if(!n)return null;const r=n(e.data);return r?{category:t,data:r}:null}function Fn(e,t,n,r){const s=Ko.default.init({appId:e,modules:[new bt.GroupChannelModule,new se.AIAgentModule],localCacheEnabled:!0,options:new Y.SendbirdChatOptions({typingIndicatorInvalidateTime:2e4}),...r});return s.addSendbirdExtensions([{version:n,product:Y.SendbirdProduct.AI_AGENT,platform:t.platform}],{platform:t.deviceOSPlatform,version:t.deviceOSVersion},t.customData)||console.warn("Invalid Sendbird Extensions",t),s}function ks(e){const t=n=>{throw new Error(`Please initialize chat sdk with ${n}`)};typeof e.groupChannel!="object"&&t("GroupChannelModule"),typeof e.aiAgent!="object"&&t("AIAgentModule")}const ct=new Map,Ms={set:(e,t)=>{ct.set(e,t)},get:e=>{if(ct.size===0)throw new Error("AIAgent platform not configured. Ensure you are using the correct package (@sendbird/ai-agent-messenger-react or @sendbird/ai-agent-messenger-react-native).");if(e){const n=ct.get(e);if(!n)throw new Error(`AIAgent platform "${e}" is not configured.`);return{platform:e,...n}}const t=ct.entries().next().value;return{platform:t[0],...t[1]}}},ee=(e,t)=>{const n=c.createContext(null),r=({children:i,value:l})=>o.createElement(n.Provider,{value:l},typeof i=="function"?i(l):i),s=({children:i})=>o.createElement(n.Consumer,null,l=>l?typeof i=="function"?i(l):i:null),a=()=>{const i=c.useContext(n);if(!i)throw new Error(`use${e}Context must be used within a ${e}Provider`);return i};return n.displayName=`${e}Context`,r.displayName=`${e}Provider`,s.displayName=`${e}Consumer`,a.displayName=`use${e}Context`,{Context:n,Provider:r,Consumer:s,useContext:a}};function Ee(e){const t=c.createContext({Template:e.template,updateTemplate:()=>{},components:e.components,updateComponent:()=>{}});function n({children:a}){const[i,l]=c.useState(()=>e.template),[u,d]=c.useState(e.components),m={Template:i,updateTemplate:f=>l(()=>f),components:u,updateComponent:(f,E)=>d(v=>({...v,[f]:E}))};return o.createElement(t.Provider,{value:m},a)}function r({template:a,children:i}){const{updateTemplate:l}=c.useContext(t);return c.useLayoutEffect(()=>{a&&l(a)},[a]),o.createElement(o.Fragment,null,i)}function s({children:a}){return o.createElement(n,null,a)}return s.defaults=e,s.useContext=()=>c.useContext(t),s.Context=t,s.Template=r,Object.keys(e.components).forEach(a=>{s[a]=function({component:l}){const{updateComponent:u}=c.useContext(t);return c.useLayoutEffect(()=>{l&&u(a,l)},[l]),null}}),s}function $s(...e){return function({children:n}){return e.reduce((r,s)=>o.createElement(s,null,r),n)}}function Ls(e,t){var r;const n=e.lastMessage;if(n!=null&&n.isUserMessage()||n!=null&&n.isAdminMessage())return n.message||"";if(n!=null&&n.isFileMessage())return n.message||n.name||"FILE";if(n!=null&&n.isMultipleFilesMessage()){if(n.message)return n.message;const s=n.fileInfoList.length;return((r=t==null?void 0:t.formatMultipleFilesCount)==null?void 0:r.call(t,s))??`${s} photos`}return e.name}function Os(e,t,n){var i;const r=new Date,s=new Date(((i=e.lastMessage)==null?void 0:i.createdAt)||e.createdAt),a=De.differenceInMinutes(r,s);return a<1?n.justNow:a<60?n.minutesAgo(a):De.isToday(s)?n.hoursAgo(De.differenceInHours(r,s)):t(s,n.dateShortFormat)}const{Provider:Rs,useContext:te}=ee("AIAgent");function Ds({appId:e,aiAgentId:t,keyValueStorage:n,networkStateAdapter:r,language:s,countryCode:a,context:i,queryParams:l,config:u,chatSDK:d,chatParams:m,children:f,logger:E,dispatcher:v,messengerVersion:_,extensions:b={platform:Y.SendbirdPlatform.JS,deviceOSPlatform:Sr()?Y.DeviceOsPlatform.MOBILE_WEB:Y.DeviceOsPlatform.WEB}}){const[p,x]=c.useState(()=>{const C=E??new wr(gn.WARN),y=v??new Ar(C);return{logger:C,dispatcher:y,chatSDK:d??Fn(e,b,_,m),cache:Rn({appId:e,aiAgentId:t,storage:n})}});return c.useEffect(()=>{x(C=>{let y=C.logger,T=C.dispatcher,I=C.chatSDK;return E&&E!==C.logger&&(y=E),v&&v!==C.dispatcher&&(T=v),d&&d!==C.chatSDK?I=d:!d&&C.chatSDK.appId!==e&&(I=Fn(e,b,_,{newInstance:!0,...m})),{...C,logger:y,dispatcher:T,chatSDK:I,cache:Rn({appId:e,aiAgentId:t,storage:n})}})},[e,t,E,v,d,n]),c.useEffect(()=>()=>{p.chatSDK.connectionState==="OPEN"&&p.chatSDK.disconnectWebSocket()},[p.chatSDK]),ks(p.chatSDK),o.createElement(Rs,{value:{...p,appId:e,aiAgentId:t,context:i,language:s,countryCode:a,queryParams:l,config:xs(u),networkStateAdapter:r}},f)}const Ns=(e,t,n)=>ve.useGroupChannelMessages(e,t,{...n,strictStreamingOrder:!0}),Je={DEFAULT_PRIMARY:"#000000",DEFAULT_BOT_MSG_BG:"#ECECEC",WHITE:"#ffffff",BLACK:"#000000"};function $r(e){return e.length===4?`#${[...e.slice(1)].map(t=>t+t).join("")}`:e}function Ps(e){const t=$r(e);return[parseInt(t.slice(1,3),16),parseInt(t.slice(3,5),16),parseInt(t.slice(5,7),16)]}function Fs(e){return`#${e.map(t=>t.toString(16).padStart(2,"0")).join("")}`}function Bs(e,t,n){e/=255,t/=255,n/=255;const r=Math.max(e,t,n),s=Math.min(e,t,n),a=r-s;let i=0,l=0;const u=(r+s)/2;return r!==s&&(l=u>.5?a/(2-r-s):a/(r+s)),r===e?i=(t-n)/a+(t<n?6:0):r===t?i=(n-e)/a+2:r===n&&(i=(e-t)/a+4),i/=6,[i,l,u]}function Us(e,t,n){let r,s,a;if(t===0)r=s=a=n;else{const i=function(m,f,E){return E<0&&(E+=1),E>1&&(E-=1),E<.16666666666666666?m+(f-m)*6*E:E<.5?f:E<.6666666666666666?m+(f-m)*(.6666666666666666-E)*6:m},l=n<.5?n*(1+t):n+t-n*t,u=2*n-l;r=i(u,l,e+1/3),s=i(u,l,e),a=i(u,l,e-1/3)}return[Math.round(r*255),Math.round(s*255),Math.round(a*255)]}function ut(e,t,n){const[r,s,a]=Ps(e),[i,l,u]=Bs(r,s,a),d=Math.max(0,Math.min(1,u*t)),m=Math.max(0,Math.min(1,l*n)),[f,E,v]=Us(i,m,d);return Fs([Math.round(f),Math.round(E),Math.round(v)])}function Hs(e,t="light"){return{extraDark:ut(e,.6,1.2),dark:ut(e,.85,1.1),main:e,light:ut(e,t==="dark"?1.1:1.5,t==="dark"?.95:.9),extraLight:ut(e,t==="dark"?1.2:1.75,t==="dark"?.9:.8)}}function en(e){const t=$r(e),n=149,r=+`0x${t[1]}${t[2]}`,s=+`0x${t[3]}${t[4]}`,a=+`0x${t[5]}${t[6]}`;return r*.299+s*.587+a*.114>n?Je.BLACK:Je.WHITE}function zs(e,t,n,r,s){return{base:{primary:t,primaryContrastContent:n,background:e.background50,headerBackground:e.background50,modalContentBackground:e.background50},messageInput:{text:e.onlight.textHighEmphasis,placeholderText:e.onlight.textLowEmphasis,background:e.background100},messageIncoming:{text:s,background:r},messageOutgoing:{text:n,background:t},csat:{background:e.background100}}}const Vs=(e,t,n,r,s)=>({base:{primary:t,primaryContrastContent:n,background:e.background600,headerBackground:e.background500,modalContentBackground:e.background500},messageInput:{text:e.ondark.textHighEmphasis,placeholderText:e.ondark.textLowEmphasis,background:e.background400},messageIncoming:{text:s,background:r},messageOutgoing:{text:n,background:t},csat:{background:e.background400}}),dt={primary:{extraDark:"#491389",dark:"#6211c8",main:"#742ddd",light:"#c2a9fa",extraLight:"#dbd1ff"},secondary:{extraDark:"#066858",dark:"#027d69",main:"#259c72",light:"#69c085",extraLight:"#a8e2ab"},error:{extraDark:"#9d091e",dark:"#bf0711",main:"#de360b",light:"#f66161",extraLight:"#fdaaaa"},information:{extraDark:"#241389",dark:"#362ca9",main:"#4a48cd",light:"#a9bbfa",extraLight:"#d1dbff"},background700:"#000000",background600:"#161616",background500:"#2c2c2c",background400:"#393939",background300:"#bdbdbd",background200:"#e0e0e0",background100:"#eeeeee",background50:"#ffffff",onlight:{textHighEmphasis:"rgba(0, 0, 0, 0.88)",textMidEmphasis:"rgba(0, 0, 0, 0.5)",textLowEmphasis:"rgba(0, 0, 0, 0.38)",textDisabled:"rgba(0, 0, 0, 0.12)"},ondark:{textHighEmphasis:"rgba(255, 255, 255, 0.88)",textMidEmphasis:"rgba(255, 255, 255, 0.5)",textLowEmphasis:"rgba(255, 255, 255, 0.38)",textDisabled:"rgba(255, 255, 255, 0.12)"},overlay:{dark:"rgba(0, 0, 0, 0.55)",light:"rgba(22, 22, 22, 0.32)"}},Ut={h1:{fontSize:18,fontWeight:700},h2:{fontSize:16,fontWeight:700},subtitle1:{fontSize:16,fontWeight:500},subtitle2:{fontSize:16,fontWeight:400},body1:{fontSize:16,fontWeight:400},body2:{fontSize:14,fontWeight:500},body3:{fontSize:14,fontWeight:400},button:{fontSize:14,fontWeight:700},caption1:{fontSize:12,fontWeight:700},caption2:{fontSize:12,fontWeight:400},caption3:{fontSize:11,fontWeight:700},caption4:{fontSize:11,fontWeight:400}};function Bn(e){const t=Gs(e),{colors:n,aiAgentColorVariables:r}=Ws(e,t),s=js(e);return{selectedTheme:e.selectedTheme,palette:t,colors:n,aiAgentColorVariables:r,typography:s}}function Gs({selectedTheme:e,palette:t,primary:n}){const r=t!=null&&t.primary?t.primary:n?n===dt.primary.main?dt.primary:Hs(n,e):dt.primary;return{...dt,primary:r,...t}}function Ws({selectedTheme:e,primaryContrast:t,botMessageBackground:n,botMessageBackgroundContrast:r},s){const a=s.primary.main,i=t??en(a),l=n??Je.DEFAULT_BOT_MSG_BG,u=r??en(l);return{colors:(e==="light"?zs:Vs)(s,a,i,l,u),aiAgentColorVariables:{primary_color:a,bot_message_bg_color:l,primary_contrast_color:i,bot_message_bg_contrast_color:u}}}function qs(e,t,n){const r={...e};return n.forEach(s=>{const a=t[s];a!=null&&(r[s]=a)}),r}function js({typography:e}){if(!e)return Ut;const t={...Ut};return Object.keys(e).forEach(n=>{const r=e[n];if(r&&typeof r=="object"){const s=Ut[n],a=["fontSize","fontWeight","fontFamily","lineHeight"];t[n]=qs(s,r,a)}}),t}const{Provider:Ks,useContext:fn}=ee("AIAgentTheme");function Ys({logger:e,palette:t,typography:n,appearance:r,children:s}){const a=c.useRef(null),[i,l]=c.useState(()=>Bn({selectedTheme:(r==null?void 0:r.theme)??"light",palette:t,typography:n,primary:r==null?void 0:r.primaryColor,botMessageBackground:r==null?void 0:r.botMessageBackgroundColor})),u=c.useCallback((d,m)=>{m&&(a.current=m);const f=(r==null?void 0:r.theme)??d,E=a.current?a.current.themes[f]:null,v={primary:r==null?void 0:r.primaryColor,primaryContrast:void 0,botMessageBackground:r==null?void 0:r.botMessageBackgroundColor,botMessageBackgroundContrast:void 0};!v.primary&&(E!=null&&E.primary_color)&&(v.primary=E.primary_color,v.primaryContrast=E.primary_contrast_color),!v.botMessageBackground&&(E!=null&&E.bot_message_bg_color)&&(v.botMessageBackground=E.bot_message_bg_color,v.botMessageBackgroundContrast=E.bot_message_bg_contrast_color);const _=Bn({selectedTheme:f,palette:t,typography:n,...v});l(_),e==null||e.info("theme.update:",f)},[r==null?void 0:r.theme,r==null?void 0:r.primaryColor,r==null?void 0:r.botMessageBackgroundColor,t,n,e]);return c.useEffect(()=>{(r!=null&&r.theme||r!=null&&r.primaryColor||r!=null&&r.botMessageBackgroundColor)&&u(i.selectedTheme)},[r==null?void 0:r.theme,r==null?void 0:r.primaryColor,r==null?void 0:r.botMessageBackgroundColor]),o.createElement(Ks,{value:{theme:i,updateTheme:u}},s)}const Ht=25*1024*1024,Un=1,Hn=new Set(["image/png","image/jpeg","image/jpg"]),zn=new Set(["application/pdf"]),Xs={off:"off",always:"always",handed_off_only:"handed_off_only"},Zs=()=>{const[e,t]=c.useState(()=>({maxAttachmentCount:Un,attachmentMode:"handed_off_only",defaultUploadSizeLimit:Ht,uploadSizeLimitPerType:new Map,supportedImageMimeTypes:Hn,supportedFileMimeTypes:zn})),n=c.useCallback(({active_channel:s,upload_restriction:a})=>{t({maxAttachmentCount:(a==null?void 0:a.max_attachment_count)??Un,attachmentMode:Xs[s.attachment_mode]??"handed_off_only",defaultUploadSizeLimit:(a==null?void 0:a.default_upload_size_limit)??Ht,uploadSizeLimitPerType:new Map(Object.entries((a==null?void 0:a.upload_size_limit_per_type)??[])),supportedImageMimeTypes:new Set((a==null?void 0:a.supported_image_mime_types)??Hn),supportedFileMimeTypes:new Set((a==null?void 0:a.supported_file_mime_types)??zn)})},[]),r=c.useCallback(s=>{const{channel:a,uploadSizeLimit:i=Ht}=s,l=(d=!0)=>a!=null&&a.isAIAgent?d?Ve(a):!1:!0,u=d=>{if(l())return e.defaultUploadSizeLimit??i;const m=e.defaultUploadSizeLimit??i,f=e.uploadSizeLimitPerType.get(d)??m;return Math.min(m,f)};return{maxAttachmentCount:e.maxAttachmentCount,isEnabled:()=>{if(l(!1))return!0;switch(e.attachmentMode){case"off":return!1;case"always":return!0;case"handed_off_only":return Ve(a);default:return!0}},get supportedMimeTypes(){return l()?[Yt]:[...e.supportedImageMimeTypes,...e.supportedFileMimeTypes]},isSupportedMimeType:d=>l()?!0:e.supportedImageMimeTypes.has(d)||e.supportedFileMimeTypes.has(d),getUploadSizeLimit:u,getUploadSizeLimitInMB:d=>u(d)/(1024*1024)}},[e]);return{updateBaseAttachmentRules:n,createAttachmentRules:r}};function Lr(){const{chatSDK:e,logger:t}=te();return c.useCallback(async n=>{if(n.userId===""){const r=new Error("userId cannot be empty string for messenger settings request");throw t.error("requestMessengerSettings: invalid userId",r),r}return await e.aiAgent.requestMessengerSettings({...n,shouldSendFirstMessage:!1})},[e,t])}function Js(){const{chatSDK:e,logger:t}=te(),n=c.useCallback(async(s,a,i)=>{if(t.debug("useChatConnection.connect: start, session",s.userId),a){const l=new Y.SessionHandler({...a,onSessionTokenRequired:Qs(a.onSessionTokenRequired,i)});e.setSessionHandler(l),e.aiAgent.addEventHandler(Qt.EXTERNAL_AUTH_TOKEN_EXPIRED.toString(),u=>{var m;t.debug("useChatConnection: EXTERNAL_AUTH_TOKEN_EXPIRED event received",u);const d=Is(u);(d==null?void 0:d.category)===Qt.EXTERNAL_AUTH_TOKEN_EXPIRED&&(t.debug("useChatConnection: calling onExternalAuthTokenExpired handler",d.data),(m=a==null?void 0:a.onExternalAuthTokenExpired)==null||m.call(a,d.data))})}try{return await e.connect(s.userId,s.authToken),t.debug("useChatConnection.connect: end, currentUser",e.currentUser),e.currentUser}catch(l){const u=l;if(e.isCacheEnabled){if(ta(u))t.warn("useChatConnection.connect","offline connect restricted",u.message,u.code),t.warn("useChatConnection.connect","clear cached-data"),await e.clearCachedData().catch(d=>t.warn("useChatConnection.connect","clear cached-data failure",d));else if(e.currentUser)return t.debug("useChatConnection.connect: end (offline), currentUser",e.currentUser),e.currentUser}throw t.warn("useChatConnection.connect","connect failure",u.message,u.code),u}},[e,t]),r=c.useCallback(async()=>{t.debug("useChatConnection.disconnect: start"),e.aiAgent.removeAllEventHandlers(),await e.disconnect(),t.debug("useChatConnection.disconnect: end")},[e,t]);return{connect:n,disconnect:r}}function Qs(e,t){if(e)return async(n,r)=>{new Promise((s,a)=>e==null?void 0:e(s,a)).then(s=>{s&&(t==null||t(s)),n(s)}).catch(s=>{r(s)})}}const ea=[400300,400301,400302,400310];function ta(e){return ea.some(t=>e.code===t)}const na=1440*60*1e3,ra=e=>{const{logger:t,cache:n}=te(),r=()=>{const a=n.messenger.getAnonUser();return a?a.expireAt-na<=Date.now()?(t.debug("useUserSessionCandidate.getAnonymousSessionInfo: auto session expired, clear cache"),n.messenger.clear(a.userId),null):(t.debug("useUserSessionCandidate.getAnonymousSessionInfo: auto session info detected"),a):null},s=()=>{if(!e||e instanceof Jt)throw new Error("userSessionInfo must be an instance of ManualSessionInfo");if(typeof e.userId!="string")throw new Error("userSessionInfo.userId must be a string");const a=["userId","authToken","sessionHandler"].filter(i=>!(i in e));return a.length>0&&t.error(`useUserSessionCandidate.getManualSessionInfo: missing required keys in userSessionInfo: ${a.join(", ")}`),t.debug("useUserSessionCandidate.getManualSessionInfo: manual session info detected"),e};return c.useMemo(()=>e instanceof Ir?{type:"manual",userSessionCandidate:s()}:e instanceof Jt?{type:"anonymous",userSessionCandidate:r()}:e&&typeof e=="object"?(t.warn("Please use ManualSessionInfo instead of the old userSessionInfo format."),{type:"manual",userSessionCandidate:s()}):e===void 0?(t.warn("Please use AnonymousSessionInfo instead of undefined userSessionInfo."),{type:"anonymous",userSessionCandidate:r()}):{type:"anonymous",userSessionCandidate:null},[t,e==null?void 0:e.userId,e==null?void 0:e.authToken,e==null?void 0:e.sessionHandler,n.messenger.getAnonUser,n.messenger.clear])};function oa({userSessionInfo:e,onUpdateMessengerSettings:t,onPreAuth:n,onPostAuth:r,onErrorAuth:s,onAuthTokenRefreshed:a,onPostDeauth:i,forceCreateChannel:l}){const{aiAgentId:u,language:d,context:m,countryCode:f,logger:E,cache:v,dispatcher:_}=te(),{connect:b,disconnect:p}=Js(),{type:x,userSessionCandidate:C}=ra(e),y=Lr(),T=c.useCallback(async()=>{var N;E.debug("useAuthentication.authenticate: start");const w=C!=null&&C.userId?v.messenger.getSettings(C.userId):null;w!=null&&w.bot&&(t(w),E.debug("useAuthentication.authenticate: cached messenger settings",w));const S=await y({aiAgentId:u,userId:C==null?void 0:C.userId,language:d,country:f,context:m,forceCreateChannel:l,knownActiveChannelUrl:(N=w==null?void 0:w.active_channel)==null?void 0:N.channel_url});E.debug("useAuthentication.authenticate: messenger settings response",S);let $=null;if(S.auto_created_user)if(x==="manual")E.warn("Received auto created user info but current session is manual. Ignoring auto created user info."),$={userId:C.userId,authToken:C.authToken};else{const{user_id:D,session_token:O,expire_at:z}=S.auto_created_user;v.messenger.setAnonUser({userId:D,authToken:O,expireAt:z}),$={userId:D,authToken:O}}else $={userId:(C==null?void 0:C.userId)??"",authToken:(C==null?void 0:C.authToken)??""};v.messenger.setSettings($.userId,S),t(S);try{await n(S,$);const D=x==="anonymous"?ms(_):C==null?void 0:C.sessionHandler;await b($,D,a),await r(S,$)}catch(D){throw D instanceof Error&&(s(D),E.error("useAuthentication.authenticate: failed to connect",D)),D}return S},[y,b,x,C==null?void 0:C.userId,C==null?void 0:C.sessionHandler,C==null?void 0:C.authToken,u,d,m,f,l,v.messenger.setAnonUser,v.messenger.getSettings,v.messenger.setSettings,t,n,r,s,a]),I=c.useCallback(async()=>{E.debug("useAuthentication.deauthenticate: start"),await p(),i(),E.debug("useAuthentication.deauthenticate: completed")},[p,E,i]);return{authenticate:T,deauthenticate:I,userSessionCandidate:C}}const sa=()=>{const{chatSDK:e,logger:t,cache:n}=te(),r=c.useCallback(()=>{var l,u;const a=(u=(l=e.appInfo)==null?void 0:l.aiAgentInfo)==null?void 0:u.templateListToken;if(!a)return!1;const i=n.template.getCachedToken();return i?a!==i:!0},[e,n.template.getCachedToken]),s=c.useCallback(async()=>{try{const{templates:a,token:i}=await e.aiAgent.getMessageTemplates({limit:20});for(const{template:l}of a){const{key:u}=et(l);n.template.set(u,l)}n.template.setCachedToken(i)}catch(a){t==null||t.error("messageTemplateContext.syncCachedTemplates: error:",a)}},[e,t,n.template.set,n.template.setCachedToken]);return{shouldSyncCachedTemplate:r,syncCachedTemplates:s}},Vn=(...e)=>{const[t,n,r]=e;if(e.length===1&&typeof t=="object"&&t!==null)return{type:"active",context:t};if(e.length===3&&typeof t=="string"&&typeof n=="string"&&typeof r=="object"&&r!==null)return{type:"specific",aiAgentId:t,channelUrl:n,context:r};throw new Error("Invalid arguments: expected (context) or (aiAgentId, channelUrl, context)")},je=e=>({...e,context:e.context??{}}),{Provider:aa,useContext:tt}=ee("AIAgentMessengerSession"),ia=c.forwardRef(function({userSessionInfo:e,forceCreateChannel:t,children:n},r){const{appId:s,aiAgentId:a,chatSDK:i,language:l,countryCode:u,context:d,cache:m,logger:f}=te(),{updateTheme:E}=fn(),[v,_]=c.useState(void 0),[b,p]=c.useState(void 0),[x,C]=c.useState(null),[y,T]=c.useState(null),[I,w]=c.useState(null),[S,$]=c.useState(null),[N]=c.useState(()=>({initialRender:new bs((A,R)=>i.aiAgent.appendStat(A,R))})),{updateBaseAttachmentRules:D,createAttachmentRules:O}=Zs(),{shouldSyncCachedTemplate:z,syncCachedTemplates:V}=sa(),j=Lr(),{authenticate:ae,deauthenticate:ie}=oa({userSessionInfo:e,forceCreateChannel:t,onUpdateMessengerSettings:c.useCallback(A=>{const{appearance:R,bot:P,launcher:X}=A;E(R.selected_theme,R),w({userId:P.bot_userid,profileUrl:P.bot_profile_url,nickname:P.bot_nickname,replyToFile:P.reply_to_file,specialNotice:P.special_notice,specialNoticeEnabled:P.is_special_notice_enabled,showHandoffButton:P.show_handoff_button??!0,isMultipleActiveConversationsEnabled:P.is_multiple_active_conversations_enabled??!0,isUserFeedbackEnabled:A.bot.is_user_feedback_enabled??!1,isUserFeedbackCommentOptionEnabled:A.bot.is_user_feedback_comment_option_enabled??!1}),$({type:X.image_type||"default_icon",imageUrl:X.image_url}),D(A)},[E]),onPreAuth:c.useCallback((A,R)=>{_(void 0),T(R),N.initialRender.onAuthStart()},[N]),onPostAuth:c.useCallback(async A=>{N.initialRender.onAuthComplete(),C(i.currentUser),z()&&await V(),p({url:A.active_channel.channel_url,status:"open"})},[i,z,V,N]),onErrorAuth:c.useCallback(A=>{N.initialRender.onAuthError(A),_(A)},[N]),onAuthTokenRefreshed:c.useCallback(A=>{T(R=>R?{...R,authToken:A}:null)},[]),onPostDeauth:c.useCallback(()=>{m.template.clear(),m.messenger.clear(y==null?void 0:y.userId),N.initialRender.clear(),C(null),p(void 0),T(null),w(null),$(null)},[m.template.clear,m.messenger.clear,y,N])}),Be=c.useCallback(async()=>{var A;if(y){f.debug("agentMessengerSession.refreshActiveChannel: try to refresh active channel"),p(void 0);const R=await j({aiAgentId:a,userId:y.userId,language:l,country:u,context:d,forceCreateChannel:t,knownActiveChannelUrl:(A=m.messenger.getSettings(y.userId))==null?void 0:A.active_channel.channel_url});return m.messenger.setSettings(y.userId,R),p({url:R.active_channel.channel_url,status:"open"}),f.info("agentMessengerSession.refreshActiveChannel: refreshed active channel",R.active_channel.channel_url),R.active_channel.channel_url}else throw f.error("agentMessengerSession.refreshActiveChannel: userSession is not ready"),new Error("userSession is not ready")},[j,s,a,y==null?void 0:y.userId,l,u,d,t,m.messenger.getSettings,m.messenger.setSettings]),qe=c.useCallback(async A=>{if(!(y!=null&&y.userId))throw new Error("Current user is not authenticated. Please authenticate first.");const R=await j({...A,userId:y.userId,knownActiveChannelUrl:void 0}),P=R.active_channel.channel_url;return m.messenger.setSettings(y.userId,R),P},[y==null?void 0:y.userId,j]),M=c.useCallback(async A=>{if(!i.currentUser)throw new Error("Current user is not authenticated. Please authenticate first.");if(Object.entries(A.context).length===0)return[];const R=i.aiAgent.createConversationListQuery({aiAgentId:A.aiAgentId,status:se.ConversationStatus.OPEN,limit:100}),P=[];for(;R.hasNext;){const X=await R.next();for(const J of X)la(J.context??{},A.context)&&P.push(J.channelInfo.url)}return P},[i]),[ce]=c.useState(()=>Tr(A=>{var R;f.info("agentMessengerSession.channelChanged: channel.conversation",A.conversation),p({url:A.url,status:ue(A)?"closed":"open",conversationStatus:(R=A.conversation)==null?void 0:R.status})},250,{trailing:!1,leading:!0}));return ve.useGroupChannelHandler(i,{onChannelChanged:A=>{A.isGroupChannel()&&A.url===(b==null?void 0:b.url)&&ce(A)}}),c.useEffect(()=>()=>{ce.cancel()},[ce]),c.useImperativeHandle(r,()=>{const A=async()=>{if(!b)throw new Error("No active conversation. Please start a conversation first.");return await i.groupChannel.getChannel(b.url)};return{activeChannel:b,chatSDK:i,authenticate:ae,deauthenticate:ie,updateContext:async(...R)=>{const P=Vn(...R);if(P.type==="active"){const Z=await(await A()).updateContext(a,P.context);return je(Z)}const X=await i.aiAgent.updateContext(P.aiAgentId,P.channelUrl,P.context);return je(X)},patchContext:async(...R)=>{const P=Vn(...R);if(P.type==="active"){const Z=await(await A()).patchContext(a,P.context);return je(Z)}const X=await i.aiAgent.patchContext(P.aiAgentId,P.channelUrl,P.context);return je(X)},getContextObject:async()=>{const P=await(await A()).getContextObject(a);return je(P)}}},[ae,ie,b,i,a,f]),o.createElement(aa,{value:{sdkUser:x,userSessionInfo:e,userSession:y,activeChannel:b,setActiveChannel:p,refreshActiveChannel:Be,createConversation:qe,searchConversation:M,connectionError:v,aiAgentInfo:I,launcherInfo:S,authenticate:ae,deauthenticate:ie,createAttachmentRules:O,statsTrackers:N}},n)}),la=(e,t)=>Object.entries(t).every(([n,r])=>e[n]===r),En=(e,t)=>{const n=c.useId(),r=c.useRef(t);c.useLayoutEffect(()=>{r.current=t}),c.useEffect(()=>{const s=new Y.ConnectionHandler({onDisconnected:a=>{var i,l;return(l=(i=r.current).onDisconnected)==null?void 0:l.call(i,a)},onConnected:a=>{var i,l;return(l=(i=r.current).onConnected)==null?void 0:l.call(i,a)},onReconnectStarted:()=>{var a,i;return(i=(a=r.current).onReconnectStarted)==null?void 0:i.call(a)},onReconnectSucceeded:()=>{var a,i;return(i=(a=r.current).onReconnectSucceeded)==null?void 0:i.call(a)},onReconnectFailed:()=>{var a,i;return(i=(a=r.current).onReconnectFailed)==null?void 0:i.call(a)},onConnectionLost:()=>{var a,i;return(i=(a=r.current).onConnectionLost)==null?void 0:i.call(a)},onConnectionDelayed:a=>{var i,l;return(l=(i=r.current).onConnectionDelayed)==null?void 0:l.call(i,a)}});return e.addConnectionHandler(n,s),()=>{e.removeConnectionHandler(n)}},[e,n])};function ca(e){const{chatSDK:t,logger:n,aiAgentId:r}=te(),{sdkUser:s,activeChannel:a,setActiveChannel:i,statsTrackers:l}=tt(),u=ve.useForceUpdate(),[d,m]=c.useState(void 0),[f,E]=c.useState(void 0),[v,_]=c.useState(!1);function b(x){if(x.isAIAgent&&!x.conversation){_(!0);const C=x.initConversation({aiAgentId:r});C.catch(y=>n.warn("useChannel.initConversation: initialization failed",y)),C.finally(()=>_(!1))}}async function p(){var x,C;if(!s){n.debug("useChannel.getChannel: no sdk user, skip fetching channel");return}if(n.debug("useChannel.getChannel: start"),m(void 0),E(void 0),_(!1),e){l.initialRender.onGetChannelStart();try{n.debug("useChannel.getChannel: get channel",e);const y=await t.groupChannel.getChannel(e);b(y),m(y),l.initialRender.onGetChannelComplete((x=y.conversation)==null?void 0:x.id),y.url===(a==null?void 0:a.url)&&i({url:y.url,status:ue(y)?"closed":"open",conversationStatus:(C=y.conversation)==null?void 0:C.status}),n.debug("useChannel.getChannel: fetched channel",y)}catch(y){l.initialRender.onGetChannelError(y),y instanceof Y.SendbirdError&&E(y),n.error("useChannel.getChannel: error",y)}}}return c.useEffect(()=>{p()},[t,s,e,r]),En(t,{async onReconnectSucceeded(){var C;if(!d)return;const x=await d.refresh();b(x),m(x),x.url===(a==null?void 0:a.url)&&i({url:x.url,status:ue(x)?"closed":"open",conversationStatus:(C=x.conversation)==null?void 0:C.status})}}),ve.useGroupChannelHandler(t,{onChannelChanged:x=>{x.isGroupChannel()&&x.url===e&&(n.debug("useChannel.onChannelChanged: channel changed",x.url),m(x),u())}}),{channel:d,channelFetchError:f,getChannel:p,isInitializingConversation:v}}const ua=e=>{const t=e==null?void 0:e.lastMessage,n=t==null?void 0:t.extendedMessagePayload;return n==null?void 0:n.user_input_disabled_by},da=e=>{var i;const t=e==null?void 0:e.lastMessage;if(!t||!e)return!1;const n=t.extendedMessagePayload,r=n==null?void 0:n.form,s=!!r&&!r.submitted_at&&!r.canceled_at,a=e.isAIAgent&&!!((i=e.conversation)!=null&&i.handedOverAt);return s&&!a},ma=()=>{const{chatSDK:e,networkStateAdapter:t}=te(),[n,r]=c.useState(()=>t?t.isOnline()?"connected":"reconnecting":"connected");return En(e,{onConnected:()=>r("connected"),onDisconnected:()=>r("disconnected"),onReconnectStarted:()=>r("reconnecting"),onReconnectSucceeded:()=>r("connected"),onReconnectFailed:()=>r("disconnected"),onConnectionLost:()=>r("reconnecting")}),c.useEffect(()=>{if(t)return t.subscribe(()=>{r("reconnecting")})},[t]),n},ga=3e4,ha=({shouldApply:e,lastMessage:t,isBlockedWhileAIResponding:n,currentUserId:r})=>{const[s,a]=c.useState(!1),i=c.useRef(null),l=t&&Qe(t,r)?t.createdAt:0;return c.useEffect(()=>{const u=()=>{i.current&&(clearTimeout(i.current),i.current=null),a(!1)},d=E=>{i.current&&clearTimeout(i.current),a(!0),i.current=setTimeout(()=>{a(!1),i.current=null},E)},m=Date.now()-l,f=ga-m;return n||f<=0?u():d(f),()=>{i.current&&clearTimeout(i.current)}},[n,l]),s&&e},Or=e=>{const{chatSDK:t}=te(),[n,r]=c.useState([]);return ve.useGroupChannelHandler(t,{onTypingStatusUpdated(s){if(s.url===(e==null?void 0:e.url)){const a=s.getTypingUsers();r(a)}}}),n},pa=({channel:e,lastMessage:t,aiAgentUserId:n,isStreamAnimating:r})=>{const[s,a]=c.useState(!1),i=Or(e);return c.useEffect(()=>{if(!t)return;const l=i.some(d=>d.userId===n),u=Qe(t,n)&&(ke.isStreaming(t)||r);a(u||l)},[i,t,n,r]),s},fa=({channel:e,messages:t,isStreamAnimating:n,isInitializingConversation:r})=>{const{aiAgentInfo:s,userSession:a}=tt(),i=ma(),l=pa({channel:e,lastMessage:On(t,[Ie.SendingStatus.SUCCEEDED]),aiAgentUserId:(s==null?void 0:s.userId)??"",isStreamAnimating:n}),u=ha({shouldApply:!!(e!=null&&e.isAIAgent)&&!Ve(e),isBlockedWhileAIResponding:l,lastMessage:On(t,[Ie.SendingStatus.PENDING,Ie.SendingStatus.SUCCEEDED]),currentUserId:(a==null?void 0:a.userId)??""});if(!e||i==="disconnected")return{disabled:!0,disabledBy:"unavailable"};if(i==="reconnecting")return{disabled:!0,disabledBy:"reconnecting"};if(ue(e))return{disabled:!0,disabledBy:"conversation_closed"};if(da(e))return{disabled:!0,disabledBy:"form_active"};const d=ua(e);return d?{disabled:!0,disabledBy:d}:l||u||r?{disabled:!0,disabledBy:"ai_responding"}:{disabled:!1,disabledBy:""}},Ea=()=>{const[e,t]=c.useState(new Set),n=c.useCallback(s=>{t(a=>{if(a.has(s))return a;const i=new Set(a);return i.add(s),i})},[]),r=c.useCallback(s=>{t(a=>{if(!a.has(s))return a;const i=new Set(a);return i.delete(s),i})},[]);return{isAnimating:e.size>0,start:n,stop:r}},{Provider:ba}=ee("AIAgentConversation");function xa({children:e,channelUrl:t,onChannelDeleted:n,onMessagesReceived:r,onMessagesUpdated:s,onConversationClosedStatusChanged:a,onConversationClosedViaDispatcher:i,onBeforeSendMessage:l,onAfterSendMessage:u=ye,shouldMarkAsRead:d=!0,shouldCountNewMessages:m=()=>!1,sortComparator:f}){var D;const E=()=>d&&(p==null?void 0:p.markAsRead()),{chatSDK:v,logger:_,dispatcher:b}=te(),{channel:p,channelFetchError:x,getChannel:C,isInitializingConversation:y}=ca(t),{statsTrackers:T}=tt();c.useEffect(()=>{if(t)return T.initialRender.setChannelUrl(t),()=>{T.initialRender.cleanup()}},[t,T]);const I=Ns(v,p,{replyType:Ie.ReplyType.ONLY_REPLY_TO_CHANNEL,shouldCountNewMessages:m,onChannelDeleted:n,onMessagesReceived:O=>r==null?void 0:r(O),onMessagesUpdated:O=>s==null?void 0:s(O),onCacheResult:O=>T.initialRender.onCacheResult(O),onApiResult:O=>T.initialRender.onApiResult(O),logger:_,markAsRead:E,sortComparator:f}),w=Ea(),S=fa({channel:p,messages:I.messages,isStreamAnimating:w.isAnimating,isInitializingConversation:y});c.useEffect(()=>{E()},[d]);const $=ue(p);c.useEffect(()=>{a==null||a($)},[$,a]),c.useEffect(()=>{const O=async z=>{const V=typeof(z==null?void 0:z.channelUrl)=="string";p&&V&&z.channelUrl!==p.url||(_.debug("conversation.dispatcher: try to close conversation",p),p!=null&&p.conversation&&p.conversation.status===se.ConversationStatus.OPEN&&(await p.closeConversation(),i==null||i()))};return b.subscribe(Ze.ConversationClose,O),()=>{b.unsubscribe(Ze.ConversationClose,O)}},[b,(D=p==null?void 0:p.conversation)==null?void 0:D.status,i]);const N={conversation:(p==null?void 0:p.conversation)??void 0,channelSource:{channel:p,error:x,refetch:()=>C(),closeConversation:async()=>{ue(p)||await(p==null?void 0:p.closeConversation())}},messageSource:{messages:I.messages,newMessages:I.newMessages,initialized:I.initialized,loadPrevious:()=>I.loadPrevious(),loadNext:()=>I.loadNext(),deleteMessage:O=>I.deleteMessage(O),resendMessage:O=>I.resendMessage(O),resetNewMessages:()=>I.resetNewMessages(),sendUserMessage:async O=>{var V;if(((V=p==null?void 0:p.conversation)==null?void 0:V.status)===se.ConversationStatus.CLOSED)throw new Error("Conversation is closed");l&&(O=await l(O));const z=await I.sendUserMessage(O,u);return u==null||u(z),z},sendFileMessage:async O=>{var V;if(((V=p==null?void 0:p.conversation)==null?void 0:V.status)===se.ConversationStatus.CLOSED)throw new Error("Conversation is closed");l&&(O=await l(O));const z=await I.sendFileMessage(O,u);return u==null||u(z),z},sendMultipleFilesMessage:async O=>{var V;if(((V=p==null?void 0:p.conversation)==null?void 0:V.status)===se.ConversationStatus.CLOSED)throw new Error("Conversation is closed");l&&(O=await l(O));const z=await I.sendMultipleFilesMessage(O,u);return u==null||u(z),z}},state:{streamAnimation:w,input:S}};return o.createElement(ba,{value:N},e)}function Ca(e,t){var v,_,b,p,x,C,y,T,I,w;const[n,r]=c.useState(!1),[s,a]=c.useState(null),[i,l]=c.useState([]),[u,d]=c.useState(null),m=c.useRef(!1),f=c.useCallback(async()=>{if(!m.current&&e.currentUser){m.current=!0,r(!1),a(null),l([]);try{u==null||u.dispose();const S=new ss(e,t);S.setConversationListCollectionHandler({onChannelsAdded:()=>{l(S.channels)},onChannelsUpdated:()=>{l(S.channels)},onChannelsDeleted:()=>{l(S.channels)}}),await S.loadMore(),d(S),a(null)}catch(S){d(null),a(S)}finally{r(!0),m.current=!1}}},[e,e.currentUser,(v=t.filter)==null?void 0:v.aiAgentChannelFilter,(b=(_=t.filter)==null?void 0:_.aiAgentConversationStatusFilter)==null?void 0:b.join(),(x=(p=t.filter)==null?void 0:p.aiAgentIds)==null?void 0:x.join(),(C=t.filter)==null?void 0:C.deskChannelFilter,(T=(y=t.filter)==null?void 0:y.pinnedChannelUrls)==null?void 0:T.join(),(I=t.filter)==null?void 0:I.copilotConversationOnly,(w=t.filter)==null?void 0:w.copilotSupportChannelUrl,t.limit]),E=c.useCallback(async()=>{if(u)try{await u.loadMore()}catch(S){a(S)}},[u]);return En(e,{onConnected:()=>f()}),c.useEffect(()=>{f()},[f]),c.useEffect(()=>()=>{m.current=!1,u==null||u.dispose()},[u]),{initialized:n,error:s,channels:i,loadMore:E}}const{Provider:_a}=ee("AIAgentConversationList");function va({conversationListLimit:e,conversationListFilter:t,children:n}){var f,E;const{chatSDK:r,aiAgentId:s,queryParams:a}=te(),i={aiAgentIds:[s],aiAgentConversationStatusFilter:[se.ConversationStatus.CLOSED,se.ConversationStatus.OPEN]},l=e??((f=a==null?void 0:a.conversationListParams)==null?void 0:f.limit),u={...i,...(E=a==null?void 0:a.conversationListParams)==null?void 0:E.filter,...t},d=Ca(r,{limit:l,filter:u}),m={listSource:{initialized:d.initialized,error:d.error??void 0,channels:d.channels,loadMore:()=>d.loadMore()}};return o.createElement(_a,{value:m},n)}function ya(e){let t="pending",n=e.then(r=>{t="resolved",n=r}).catch(r=>{t="rejected",n=r});return{get value(){if(t==="resolved")return n;throw n}}}const{Provider:Sa,useContext:Rr}=ee("MessageTemplateFetching");function Ta({children:e,internalVariables:t}){const n=c.useRef({}),r=c.useRef({}),[s,a]=c.useState({}),i=c.useCallback((d,m)=>{a(f=>({...f,[d]:{fetching:!1,error:!1,...f[d],...m}}))},[]),l=c.useCallback(async({onRequestTemplate:d,onGetCachedTemplate:m,templateKey:f,suspense:E=!1})=>{const v=m(f);if(v)return v;const _=r.current[f];if(_)return _;E||i(f,{fetching:!0});const b=d(f).catch(p=>{throw E||i(f,{error:!0}),p}).finally(()=>{E||i(f,{fetching:!1}),delete r.current[f]});return r.current[f]=b,b},[i]),u={internalVariables:t,fetchTemplate:l,suspend:(d,m)=>{if(n.current[d])return n.current[d];const f=ya(m());return n.current[d]=f,f},getIsFetching:d=>{var m;return((m=s[d])==null?void 0:m.fetching)??!1},getHasError:d=>{var m;return((m=s[d])==null?void 0:m.error)??!1}};return o.createElement(Sa,{value:u},e)}const It={VARIABLE:e=>new RegExp(`\\{${e}\\}`,"g"),VIEW_VARIABLE:e=>new RegExp(`"{@${e}}"`,"g")};function $e({uiTemplateString:e,variables:t={}}){const n=Ss(t);return pn({template:e,variables:n,variableKeyPattern:r=>It.VARIABLE(r)})}function Le({theme:e,uiTemplateString:t,colorVariables:n={}}){return pn({template:t,variables:n,variableKeyPattern:r=>It.VARIABLE(r),variableValueTransformer:r=>ys(e,r)})}function Aa({theme:e,uiTemplateString:t,viewVariables:n={},aiAgentColorVariables:r,internalVariables:s,onRequestTemplate:a}){const l=Object.values(n).flat().map(d=>d.key);return[...new Set(l)].some(d=>!a(d))?null:pn({template:t,variables:n,variableKeyPattern:d=>It.VIEW_VARIABLE(d),variableValueTransformer:d=>{const m=d.map(({key:f,variables:E})=>{const v=a(f),{ui_template:_,color_variables:b}=et(v);let p=JSON.stringify(_);return p=$e({uiTemplateString:p,variables:s}),p=Le({theme:e,uiTemplateString:p,colorVariables:b}),p=Le({theme:e,uiTemplateString:p,colorVariables:r}),p=$e({uiTemplateString:p,variables:E}),wt(p)});return JSON.stringify(m)}})}async function wa({theme:e,uiTemplateString:t,viewVariables:n={},aiAgentColorVariables:r,internalVariables:s,onRequestTemplate:a}){return Ts({template:t,variables:n,variableKeyPattern:i=>It.VIEW_VARIABLE(i),variableValueTransformer:async i=>{const l=i.map(async({key:d,variables:m})=>{const f=await a(d),{ui_template:E,color_variables:v}=et(f);let _=JSON.stringify(E);return _=$e({uiTemplateString:_,variables:s}),_=Le({theme:e,uiTemplateString:_,colorVariables:v}),_=Le({theme:e,uiTemplateString:_,colorVariables:r}),_=$e({uiTemplateString:_,variables:m}),wt(_)}),u=await Promise.all(l);return JSON.stringify(u)}})}const Ia=({rawTemplate:e,aiAgentColorVariables:t,internalVariables:n,...r})=>{const{ui_template:s,color_variables:a}=et(e);let i=JSON.stringify(s);if(Object.keys(r.viewVariables??{}).length>0){const u=Aa({...r,uiTemplateString:i,aiAgentColorVariables:t,internalVariables:n});if(u===null)return null;i=u}return i=$e({...r,uiTemplateString:i,variables:n}),i=Le({...r,uiTemplateString:i,colorVariables:a}),i=Le({...r,uiTemplateString:i,colorVariables:t}),i=$e({...r,uiTemplateString:i}),wt(i)},ka=async({rawTemplate:e,aiAgentColorVariables:t,internalVariables:n,...r})=>{const{ui_template:s,color_variables:a}=et(e);let i=JSON.stringify(s);return Object.keys(r.viewVariables??{}).length>0&&(i=await wa({...r,uiTemplateString:i,aiAgentColorVariables:t,internalVariables:n})),i=$e({...r,uiTemplateString:i,variables:n}),i=Le({...r,uiTemplateString:i,colorVariables:a}),i=Le({...r,uiTemplateString:i,colorVariables:t}),i=$e({...r,uiTemplateString:i}),wt(i)},Ma=e=>{const{aiAgentColorVariables:t={}}=e,{internalVariables:n}=Rr();return c.useState(()=>{const r=e.onGetCachedTemplate(e.templateKey);return r?Ia({...e,rawTemplate:r,aiAgentColorVariables:t,internalVariables:n,onRequestTemplate:e.onGetCachedTemplate}):null})},$a=e=>{const[t]=Ma(e);if(t)return t;const{aiAgentColorVariables:n={}}=e,{internalVariables:r,fetchTemplate:s,suspend:a}=Rr();return a(e.templateKey,async()=>{const l=await s({...e,suspense:!0});return await ka({...e,rawTemplate:l,aiAgentColorVariables:n,internalVariables:r})}).value},La="remove_powered_by",bn=(e,t)=>{var s,a;const{chatSDK:n}=te(),{aiAgentInfo:r}=tt();if(e==="handoff-button"){const i=!!((s=t==null?void 0:t.conversation)!=null&&s.handoff);return!!(t!=null&&t.isAIAgent)&&!!(r!=null&&r.showHandoffButton)&&i&&hn(t)}if(e==="special-notice")return!!(t!=null&&t.isAIAgent)&&!!(r!=null&&r.specialNoticeEnabled)&&!!(r!=null&&r.specialNotice);if(e==="powered-by"){const i=(a=n==null?void 0:n.appInfo)==null?void 0:a.applicationAttributes;return c.useMemo(()=>!(Array.isArray(i)&&i.includes(La)),[i])}throw new Error("Unsupported feature")},Oa={required:"This question is required",minLength:e=>`Minimum ${e} characters required`,maxLength:e=>`Maximum ${e} characters allowed`,min:e=>`Minimum value is ${e}`,max:e=>`Maximum value is ${e}`,minSelect:e=>`Select at least ${e} options`,maxSelect:e=>`Select at most ${e} options`,regex:"Invalid format",invalidSelection:"Invalid selection"},Ra={getValueOrDefault:e=>e.value??e.default_value??null,validate:(e,t,n)=>{const r=t;if(e.required&&(!r||r.trim()===""))return{isValid:!1,error:n.required};if(!r)return{isValid:!0};const{rules:s}=e;if(s){if(s.min_length!==void 0&&r.length<s.min_length)return{isValid:!1,error:typeof n.minLength=="function"?n.minLength(s.min_length):n.minLength};if(s.max_length!==void 0&&r.length>s.max_length)return{isValid:!1,error:typeof n.maxLength=="function"?n.maxLength(s.max_length):n.maxLength};if(s.regex&&!new RegExp(s.regex).test(r))return{isValid:!1,error:n.regex}}return{isValid:!0}}},Da={getValueOrDefault:e=>e.value??e.default_value??null,validate:(e,t,n)=>{const r=t;if(e.required&&r===null)return{isValid:!1,error:n.required};if(r===null)return{isValid:!0};const{rules:s}=e;if(s){if(s.min!==void 0&&r<s.min)return{isValid:!1,error:typeof n.min=="function"?n.min(s.min):n.min};if(s.max!==void 0&&r>s.max)return{isValid:!1,error:typeof n.max=="function"?n.max(s.max):n.max}}return{isValid:!0}}},Na={getValueOrDefault:e=>e.value??e.default_value??null,validate:(e,t,n)=>{const r=t;return e.required&&!r?{isValid:!1,error:n.required}:r&&!e.options.includes(r)?{isValid:!1,error:n.invalidSelection}:{isValid:!0}}},Pa={getValueOrDefault:e=>e.values??e.default_values??null,validate:(e,t,n)=>{const r=t;if(e.required&&(!r||r.length===0))return{isValid:!1,error:n.required};if(!r||r.length===0)return{isValid:!0};if(r.filter(i=>!e.options.includes(i)).length>0)return{isValid:!1,error:n.invalidSelection};const{rules:a}=e;if(a){if(a.min_select!==void 0&&r.length<a.min_select)return{isValid:!1,error:typeof n.minSelect=="function"?n.minSelect(a.min_select):n.minSelect};if(a.max_select!==void 0&&r.length>a.max_select)return{isValid:!1,error:typeof n.maxSelect=="function"?n.maxSelect(a.max_select):n.maxSelect}}return{isValid:!0}}},Fa={text:Ra,number:Da,"single-select":Na,"multi-select":Pa},Ba={getValueOrDefault:()=>null,validate:()=>({isValid:!1})};function Dr(e){return Fa[e.type]||Ba}function Gn(e){return Dr(e).getValueOrDefault(e)}function Ua(e,t,n={}){const r={...Oa,...n};return Dr(e).validate(e,t,r)}const Ha=(e,t={})=>{const{labels:n={},onSubmit:r,onCancel:s}=t,[a,i]=c.useState({}),[l,u]=c.useState(()=>{const b={};return e.fields.forEach(p=>{b[p.key]=Gn(p)}),b}),d=c.useMemo(()=>e.submitted_at?"submitted":e.canceled_at?"canceled":"draft",[e.submitted_at,e.canceled_at]);c.useEffect(()=>{if(d==="submitted"||d==="canceled"){const b={};let p=!1;e.fields.forEach(x=>{const C=Gn(x);JSON.stringify(l[x.key])!==JSON.stringify(C)&&(p=!0),b[x.key]=C}),p&&u(b)}},[d]);const m=(b,p)=>{u(x=>({...x,[b]:p})),i(x=>({...x,[b]:void 0}))},f=e.fields.map(b=>{var C,y,T;const p=l[b.key]??null,x={key:b.key,label:b.label,error:a[b.key],required:b.required};return b.type==="text"?{...x,type:"text",layout:b.layout,value:p,...b.placeholder&&{placeholder:b.placeholder},...((C=b.rules)==null?void 0:C.max_length)&&{maxLength:b.rules.max_length}}:b.type==="number"?{...x,type:"number",layout:b.layout,value:p,...b.placeholder&&{placeholder:b.placeholder},...((y=b.rules)==null?void 0:y.max)&&{max:b.rules.max}}:b.type==="single-select"?{...x,type:"single-select",layout:b.layout,value:p,options:b.options}:b.type==="multi-select"?{...x,type:"multi-select",layout:b.layout,value:p,options:b.options,...((T=b.rules)==null?void 0:T.max_select)&&{maxSelect:b.rules.max_select}}:{...x,type:"unknown",layout:"default",value:null}});return{state:d,fields:f,getField:b=>f.find(p=>p.key===b),updateFieldValue:m,submit:async()=>{const b={};let p=!1;for(const x of e.fields){const C=l[x.key]??null,y=Ua(x,C,n);y.isValid||(b[x.key]=y.error,p=!0)}if(i(b),!p&&r){const x={};e.fields.forEach(C=>{x[C.key]=l[C.key]??null}),await r(x)}},cancel:async()=>{await(s==null?void 0:s())}}},za=e=>{const{aiAgentInfo:t}=tt(),r=Or(e)[0];if(!r)return null;const s=r.userId===(t==null?void 0:t.userId);return{user:s?t:r,isBot:s}},Nr=({channel:e,userSession:t,aiAgentInfo:n})=>{if(!t||!n||!e)return{fallbackIcon:"delight",url:void 0,title:""};const r=(()=>{const[a]=e.members.filter(i=>i.userId!==t.userId);return a})(),s={ai(a){return{fallbackIcon:a,url:n.profileUrl,title:n.nickname}},human(a){return{fallbackIcon:a,url:r==null?void 0:r.profileUrl,title:(r==null?void 0:r.nickname)||n.nickname}},channel(a){return{fallbackIcon:a,url:e==null?void 0:e.coverUrl,title:(e==null?void 0:e.name)??""}}};return e.isAIAgent?Ve(e)?s.human("agent"):s.ai("delight"):e.isDesk?s.human("agent"):s.channel("user")},Wn=e=>c.useReducer((t,n)=>({...t,...n}),e);var he=(e=>(e.AI_AGENT_CSAT_5="AI_AGENT_CSAT_5",e.AI_AGENT_CSAT_5_WITH_CRE="AI_AGENT_CSAT_5_WITH_CRE",e.HELPDESK_CSAT_5="HELPDESK_CSAT_5",e))(he||{});const Va=new Set(["free_text","single_choice"]),Ga=({csatPayload:e,type:t,initialCsat:n,initialCsatReason:r,initialIsResolved:s})=>{const[a,i]=Wn({csatType:t,csat:n,csatReason:r,isResolved:s}),[l,u]=Wn({followUpItem:!1}),d=c.useMemo(()=>{var p;const v=a.csat,_=typeof v=="number",b=(p=e.follow_up)==null?void 0:p.find(x=>_?x.scores.includes(v):x.always_visible??!1);if(Va.has(b==null?void 0:b.response_type))return b},[a.csat,e.follow_up]),m=(()=>{var v;if(typeof n=="number")return"submitted";if((t===he.AI_AGENT_CSAT_5||t===he.HELPDESK_CSAT_5)&&typeof a.csat=="number")return"submittable";if(t===he.AI_AGENT_CSAT_5_WITH_CRE){const _=typeof a.csat=="number",b=!((v=e.cre)!=null&&v.required)||typeof a.isResolved=="boolean";if(_&&b)return"submittable"}return"unsubmittable"})(),f=c.useCallback(()=>typeof a.csat>"u"?!1:d!=null&&d.required&&!a.csatReason?(u({followUpItem:!0}),!1):!0,[a,d,u]);return c.useEffect(()=>{r||(i({csatReason:""}),u({followUpItem:!1}))},[r,d,i,u]),{params:a,setParams:i,error:l,setError:u,followUpItem:d,state:m,validateParams:f,itemProps:{csatPayload:e,state:m,submitted:m==="submitted"}}},zt=5,Wa=250,qa=50,qn=e=>Math.max(0,e-qa),ja=e=>e<1e3?{speed:zt*.5,chunkSize:2}:e<2e3?{speed:zt*.8,chunkSize:2}:{speed:zt*.6,chunkSize:3},Ka=e=>{const{text:t,enabled:n=!1,onAnimationStart:r,onAnimationProgress:s,onAnimationComplete:a}=e,[i,l]=c.useState(()=>qn(t.length)),u=c.useRef(null),d=c.useRef({startTime:0,lastUpdate:0,lastProgressCall:0}).current,m=c.useRef({onStart:r,onProgress:s,onComplete:a}).current,f=c.useRef({startCalled:!1,completeCalled:!1}).current,E=c.useRef({initialEnabled:n,textLength:t.length,enabled:n}).current,v=n,_=i<t.length,b=E.initialEnabled&&(v||_);return c.useLayoutEffect(()=>{m.onStart=r,m.onProgress=s,m.onComplete=a,E.textLength=t.length,E.enabled=n}),c.useLayoutEffect(()=>{var p;E.initialEnabled&&(f.startCalled||(f.startCalled=!0,(p=m.onStart)==null||p.call(m)),l(x=>t.length<x?t.length:x))},[t]),c.useEffect(()=>{if(!E.initialEnabled)return;let p=qn(t.length);d.lastUpdate=0,d.startTime=0,d.lastProgressCall=0;const x=C=>{var D;d.lastUpdate===0&&(d.lastUpdate=C,d.startTime=C,d.lastProgressCall=C);const y=E.textLength,T=C-d.lastUpdate,I=C-d.startTime,{speed:w,chunkSize:S}=ja(I),$=w*S;T>=$&&p<y&&(p=Math.min(p+S,y),l(p),d.lastUpdate=C),C-d.lastProgressCall>=Wa&&(d.lastProgressCall=C,(D=m.onProgress)==null||D.call(m)),(p<y||E.enabled)&&(u.current=requestAnimationFrame(x))};return u.current=requestAnimationFrame(x),()=>{u.current&&cancelAnimationFrame(u.current)}},[]),c.useEffect(()=>{var y;const p=E.initialEnabled&&f.startCalled,x=!n,C=i>=t.length&&t.length>0;p&&x&&C&&!f.completeCalled&&(f.completeCalled=!0,(y=m.onComplete)==null||y.call(m))},[n,i,t.length]),{streamText:E.initialEnabled?t.slice(0,i):t,isAnimating:b}},Ya="1.19.0",le="sb-agent",de={ENTRY:`${le}-entry`,MODAL_ROOT:`${le}-modal-root`,WINDOW:`${le}-window`,LAUNCHER:`${le}-launcher`},mt=2147483647,Pe={MODAL:mt-1,TOOLTIP:mt-2,WINDOW:mt-3,LAUNCHER:mt-4},Pr=36,Xa=100,Fr=Ya,xn="noopener noreferrer nofollow";function Br(){return{isOnline:()=>navigator.onLine,subscribe:e=>{const t=()=>e(!0),n=()=>e(!1);return window.addEventListener("online",t),window.addEventListener("offline",n),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",n)}}}}const gt={};function Ur(){return{get:e=>{try{return localStorage.getItem(e)}catch{return gt[e]??null}},set:(e,t)=>{try{localStorage.setItem(e,t)}catch{gt[e]=t}},delete:e=>{try{localStorage.removeItem(e)}catch{delete gt[e]}},getKeys:e=>{try{const t=[];for(let n=0;n<localStorage.length;n++){const r=localStorage.key(n);r&&r.startsWith(e)&&t.push(r)}return t}catch{return Object.keys(gt).filter(t=>t.startsWith(e))}}}}const Za='@import"https://fonts.googleapis.com/css?family=Roboto:400,500,600,700&display=swap";.sb-message-template__border{position:relative}.sb-message-template__border:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;box-shadow:inset 0 0 0 var(--border-width) var(--border-color);border-radius:var(--border-radius);pointer-events:none}.sb-message-template__action{cursor:pointer}.sb-message-template__parent{font-family:Roboto,serif}.sb-message-template__text{font-family:inherit;font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;letter-spacing:normal;text-align:left}.sb-message-template__text-button{font-family:inherit;background-color:#e0e0e0;text-align:center;padding:10px;border-radius:6px;font-size:14px;font-weight:600;font-stretch:normal;font-style:normal;letter-spacing:normal}.sendbird-theme--light .sb-message-template__text-button{color:#742ddd}.sendbird-theme--dark .sb-message-template__text-button{color:#c2a9fa}.sb-message-template__text-button:hover{opacity:1;box-shadow:#0000001a 0 1px 3px,#0000000f 0 1px 2px}.sb-message-template__text-button,.sb-message-template__image-button{cursor:pointer;border-style:none}.sb-message-template__parent{border-radius:unset;background-color:transparent;overflow:hidden}.sb-message-template__parent *{box-sizing:border-box;line-height:1.3}.sb-message-template__carousel{display:flex;width:100%;box-sizing:border-box;touch-action:pan-y}',Ja={conversation:{input_placeholder:"Ask a question",input_placeholder_disabled:"Chat is unavailable in this channel",input_placeholder_wait_ai_agent_response:"Waiting for the agent's reply...",input_placeholder_active_form:"Please fill out the form to move forward.",input_placeholder_reconnecting:"Trying to reconnect. Refresh if persists.",unknown_message_type:"(Unknown message type)",powered_by:"Powered by",citation_title:"Source",start_new_conversation_label:"Start a conversation",scroll_to_new_messages_label:()=>"New message",failed_message_resend:"Retry",failed_message_remove:"Remove",file_upload_no_supported_files:"No supported file types available.",a11y_message_list:"Chat messages",a11y_scroll_to_bottom:"Scroll to bottom",a11y_scroll_to_new_messages:"Scroll to new messages",a11y_open_conversation_list:"Open conversation list"},conversation_list:{header_title:"Conversations",ended:"Ended",footer_title:"Start a conversation",multiple_files_count:e=>`${e} ${e===1?"file":"files"}`},date_format:{just_now:"Just now",minutes_ago:e=>`${e} minutes ago`,hours_ago:e=>`${e} hours ago`,date_short:"MM/dd/yyyy",date_separator:"MMMM dd, yyyy",message_timestamp:"p"},csat:{title:"Your feedback matters to us",submitted_label:"Successfully submitted!",cre_question:"Was your issue resolved?",cre_positive_label:"Yes, thank you! 👍",cre_negative_label:"No, that didn't help.",reason_placeholder:"Share your feedback",question:"How would you rate your experience?",submit_label:"Submit",submission_expired:"We're sorry, the survey period has ended."},form:{optional_label:"optional",validation_required:"This question is required"},common:{placeholder_something_went_wrong:"Something went wrong",placeholder_no_messages:"No messages",placeholder_no_conversations:"No conversations yet",placeholder_something_went_wrong_retry_label:"Retry"},feedback:{title:"Submit feedback",good:"Good",bad:"Bad",comment_label:"Comment (optional)",comment_placeholder:"Leave a comment",cancel:"Cancel",submit:"Submit",save:"Save",edit:"Edit feedback",remove:"Remove feedback"}},tn={language:"en",strings:Ja,dateLocale:Ho.enUS},Hr=e=>({MESSAGE_INPUT__PLACE_HOLDER:e.conversation.input_placeholder,MESSAGE_INPUT__PLACE_HOLDER__DISABLED:e.conversation.input_placeholder_disabled,MESSAGE_INPUT__PLACE_HOLDER__WAIT_AI_AGENT_RESPONSE:e.conversation.input_placeholder_wait_ai_agent_response,MESSAGE_INPUT__PLACE_HOLDER__RECONNECTING:e.conversation.input_placeholder_reconnecting,UNKNOWN__UNKNOWN_MESSAGE_TYPE:e.conversation.unknown_message_type,POWERED_BY:e.conversation.powered_by,CSAT_TITLE_UNSUBMITTED:e.csat.title,CSAT_TITLE_SUBMITTED:e.csat.submitted_label,CSAT_CRE_TITLE:e.csat.cre_question,CSAT_CRE_SOLVED:e.csat.cre_positive_label,CSAT_CRE_NOT_SOLVED:e.csat.cre_negative_label,CSAT_REASON_PLACEHOLDER:e.csat.reason_placeholder,CSAT_RATING_TITLE:e.csat.question,CSAT_SUBMIT_LABEL:e.csat.submit_label,CSAT_SUBMISSION_EXPIRED:e.csat.submission_expired,DATE_FORMAT__JUST_NOW:e.date_format.just_now,DATE_FORMAT__MINUTES_AGO:e.date_format.minutes_ago,DATE_FORMAT__HOURS_AGO:e.date_format.hours_ago,DATE_FORMAT__DATE_SHORT:e.date_format.date_short,DATE_FORMAT__MESSAGE_LIST__DATE_SEPARATOR:e.date_format.date_separator,DATE_FORMAT__MESSAGE_TIMESTAMP:e.date_format.message_timestamp,CONVERSATION_LIST__HEADER_TITLE:e.conversation_list.header_title,CONVERSATION_LIST__ENDED:e.conversation_list.ended,CONVERSATION_LIST__NO_CONVERSATIONS:e.common.placeholder_no_conversations,CONVERSATION_LIST__MULTIPLE_FILES_COUNT:e.conversation_list.multiple_files_count,TALK_TO_AGENT:e.conversation.start_new_conversation_label,CITATION_SOURCE_TITLE:e.conversation.citation_title,FORM_PLACEHOLDER:e.conversation.input_placeholder_active_form,FORM_VALIDATION_REQUIRED:e.form.validation_required,OPTIONAL:e.form.optional_label,PLACE_HOLDER__WRONG:e.common.placeholder_something_went_wrong,PLACE_HOLDER__NO_MESSAGES:e.common.placeholder_no_messages,RETRY:e.common.placeholder_something_went_wrong_retry_label,FAILED_MESSAGE_RESEND:e.conversation.failed_message_resend,FAILED_MESSAGE_REMOVE:e.conversation.failed_message_remove,FILE_UPLOAD_NO_SUPPORTED_FILES:e.conversation.file_upload_no_supported_files,FEEDBACK_TITLE:e.feedback.title,FEEDBACK_GOOD:e.feedback.good,FEEDBACK_BAD:e.feedback.bad,FEEDBACK_COMMENT_LABEL:e.feedback.comment_label,FEEDBACK_COMMENT_PLACEHOLDER:e.feedback.comment_placeholder,FEEDBACK_CANCEL:e.feedback.cancel,FEEDBACK_SUBMIT:e.feedback.submit,FEEDBACK_SAVE:e.feedback.save,FEEDBACK_EDIT:e.feedback.edit,FEEDBACK_REMOVE:e.feedback.remove,A11Y_MESSAGE_LIST:e.conversation.a11y_message_list,A11Y_SCROLL_TO_BOTTOM:e.conversation.a11y_scroll_to_bottom,A11Y_SCROLL_TO_NEW_MESSAGES:e.conversation.a11y_scroll_to_new_messages,A11Y_OPEN_CONVERSATION_LIST:e.conversation.a11y_open_conversation_list,SCROLL_TO_NEW_MESSAGES_LABEL:e.conversation.scroll_to_new_messages_label}),Qa=e=>{var t;return((t=e.split("-"))==null?void 0:t[0])??kt},kt="en",ei=new Set([kt,"ko","es","pt","fr","hi","it","de","tr","ja"]),ti=(e,t,n)=>{const r=e[t];return r?typeof r=="function"?r():Promise.resolve(r):new Promise((s,a)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(a.bind(null,new Error("Unknown variable dynamic import: "+t+(t.split("/").length!==n?". Note that variables only represent file names one level deep.":""))))})},jn=Hr(tn.strings),ni={...jn,HEADER_BUTTON__AGENT_HANDOFF:"Connect with an agent",MESSAGE_INPUT__PLACE_HOLDER__SUGGESTED_REPLIES:"Select an option to continue",BUTTON__CANCEL:"Cancel",BUTTON__SUBMIT:"Submit",SUBMITTED:"Submitted",TRY_AGAIN:"Please try again.",FILE_UPLOAD_NOTIFICATION__COUNT_LIMIT:"Up to %d files can be attached.",FILE_UPLOAD_NOTIFICATION__SIZE_LIMIT:"The maximum size per file is %d MB.",FILE_UPLOAD_NOTIFICATION__FILES_EXCLUDED_BY_VALIDATION:"%d files were excluded due to limits. Please select files individually.",FILE_UPLOAD_PHOTOS:"Photos",FILE_UPLOAD_FILES:"Files",FILE_VIEWER__UNSUPPORT:"Unsupported message",IMAGE_VIEWER__DEFAULT_TITLE:"Image",A11Y_IMAGE_VIEWER_CLOSE:"Close image viewer",A11Y_IMAGE_VIEWER_PREVIOUS:"Previous image",A11Y_IMAGE_VIEWER_NEXT:"Next image",A11Y_IMAGE_VIEWER_DOWNLOAD:"Download image",A11Y_ATTACH_FILE:"Attach file",FORM_UNAVAILABLE:"Form is no longer available.",FORM_NOT_SUPPORTED:"This form is not supported in the current version.",FORM_VALIDATION_MIN_LENGTH:e=>`Minimum ${e} characters required`,FORM_VALIDATION_MAX_LENGTH:e=>`Maximum ${e} characters allowed`,FORM_VALIDATION_MIN:e=>`Minimum value is ${e}`,FORM_VALIDATION_MAX:e=>`Maximum value is ${e}`,FORM_VALIDATION_MIN_SELECT:e=>`Select at least ${e} options`,FORM_VALIDATION_MAX_SELECT:e=>`Select at most ${e} options`,FORM_VALIDATION_REGEX_FAILED:"Invalid format",DATE_FORMAT__CONVERSATION_LIST__LIST_ITEM_TITLE:jn.DATE_FORMAT__DATE_SHORT,DATE_FORMAT__CONVERSATION_LIST__LIST_ITEM_TITLE_CAPTION:"h:mma",CONVERSATION_LIST__TOPICS_FALLBACK:"No category",CONVERSATION_CLOSED_FOOTER_LABEL:"Your conversation has ended",START_NEW_CONVERSATION:"💬 Start a new conversation",RETURN_TO_CONVERSATION:"💬 Return to conversation",BUTTON__SAVE:"Save",BUTTON__OK:"OK",NO_NAME:"(No name)",CHANNEL_FROZEN:"Channel frozen"},xt={language:tn.language,dateLocale:tn.dateLocale,stringSet:ni},ri=Object.freeze(Object.defineProperty({__proto__:null,default:xt},Symbol.toStringTag,{value:"Module"})),nn=new Map([[kt,xt]]);async function oi(e){const t=nn.get(e);if(t)return t;try{if(ei.has(e)){const{default:n}=await ti(Object.assign({"./languages/de.ts":()=>Promise.resolve().then(()=>require("./BHmi862p.cjs")),"./languages/en.ts":()=>Promise.resolve().then(()=>ri),"./languages/es.ts":()=>Promise.resolve().then(()=>require("./Dn0HIoDs.cjs")),"./languages/fr.ts":()=>Promise.resolve().then(()=>require("./DuYQj-T9.cjs")),"./languages/hi.ts":()=>Promise.resolve().then(()=>require("./BRiNYhzZ.cjs")),"./languages/it.ts":()=>Promise.resolve().then(()=>require("./ByGRYJVz.cjs")),"./languages/ja.ts":()=>Promise.resolve().then(()=>require("./B7RUkqyZ.cjs")),"./languages/ko.ts":()=>Promise.resolve().then(()=>require("./KouyTorz.cjs")),"./languages/pt.ts":()=>Promise.resolve().then(()=>require("./CDKvaFVD.cjs")),"./languages/tr.ts":()=>Promise.resolve().then(()=>require("./BWtj68w5.cjs"))}),`./languages/${e}.ts`,3);return nn.set(e,n),n}return xt}catch{return xt}}const{Provider:si,useContext:W}=ee("Localization"),ai=({language:e=navigator.language,logger:t,stringSet:n,children:r})=>{const[s,a]=c.useState(nn.get(kt));return c.useEffect(()=>{const i=Qa(e);s.language!==i&&(t==null||t.debug("localization.useEffect: update language",{from:s.language,to:i}),oi(i).then(a))},[e,t]),o.createElement(si,{value:{language:s.language,stringSet:{...s.stringSet,...n},dateLocale:s.dateLocale,format:(i,l,u)=>De.format(i,l,{locale:s.dateLocale,...u})}},r)},Ct="data-sb-agent-theme",Kn=e=>(t,...n)=>{let r="";return t.forEach((s,a)=>{r+=s+(n[a]??"")}),`[${Ct}='${e}'] & { ${r} }`},B={light:Kn("light"),dark:Kn("dark")},ii=k.css(({theme:e})=>{const{palette:t}=e;return`
|
|
1
|
+
"use strict";var Bo=Object.defineProperty;var Uo=(e,t,n)=>t in e?Bo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var F=(e,t,n)=>Uo(e,typeof t!="symbol"?t+"":t,n);const K=require("@sendbird/chat"),c=require("react"),k=require("styled-components"),De=require("date-fns"),Ho=require("date-fns/locale/en-US"),Ie=require("@sendbird/chat/message"),se=require("@sendbird/chat/aiAgent"),bt=require("@sendbird/chat/groupChannel"),ve=require("@sendbird/uikit-tools"),zo=require("react-dom"),Vo=require("date-fns/isSameDay"),Kt=require("@sendbird/react-uikit-message-template-view"),Go=require("@sendbird/uikit-message-template"),Wo=require("dompurify"),qo=require("@emotion/is-prop-valid"),Tt=e=>e&&e.__esModule?e:{default:e};function jo(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const Ko=Tt(K),o=jo(c),h=Tt(k),Cr=Tt(Wo),Yo=Tt(qo),ze="sb-agent",_r="KEY_IMG_ASPECT_RATIO",Yt="*/*",H={BODY_MAX_WIDTH:244,WIDE_BODY_MAX_WIDTH:640,AVATAR_SIZE:26,BODY_TIME_GAP:4,HORIZONTAL_PADDING:12,GAP_GROUPED:2,GAP_UNGROUPED:16},fe=e=>!!e&&"sender"in e,Xo=e=>fe(e)?e.sendingStatus==="succeeded"?String(e.messageId):e.reqId:String(e.messageId),Zo=(e,t,n,r=!0)=>{if(!r||!fe(e))return"single";const s=()=>{if(!t||!fe(t))return!1;const u=t.sender.userId===e.sender.userId,d=De.isSameMinute(t.createdAt,e.createdAt);return u&&d},a=()=>{if(!n||!fe(n))return!1;const u=n.sender.userId===e.sender.userId,d=De.isSameMinute(n.createdAt,e.createdAt);return u&&d},i=s(),l=a();return i&&l?"middle":i?"bottom":l?"top":"single"},Qe=(e,t)=>(()=>{var r;return fe(e)?e.sender.userId:((r=e==null?void 0:e.sender)==null?void 0:r.userId)??void 0})()===t,He={isAdmin:e=>e.isAdminMessage(),isCSAT:e=>{var t;return e.isAdminMessage()&&!!((t=e.extendedMessagePayload)!=null&&t.csat)},isIncoming:(e,t)=>fe(e)&&e.sender.userId!==t,isOutgoing:(e,t)=>fe(e)&&(e.sender.userId===t||e.sendingStatus===Ie.SendingStatus.PENDING)},we=e=>e.startsWith("image/"),vr=e=>e.startsWith("video/"),un=(e,t)=>{if(e&&!e.startsWith(".")){const n=e.split(".").pop();if(n&&n!==e)return n.toUpperCase()}if(t){const[,n]=t.split("/");if(n)return n.toUpperCase()}return"FILE"},yr=e=>{var t;return e.messageType==="file"?e.message.length>0&&e.file.name!==e.message:e.messageType==="multipleFiles"?e.message.length>0&&((t=e.files[0])==null?void 0:t.name)!==e.message:e.message.length>0},dn=e=>{switch(e){case"top":case"middle":return H.GAP_GROUPED;default:return H.GAP_UNGROUPED}},Jo=(e,t)=>{const n=/```(\w+)?\n([\s\S]*?)```/g,r=[];let s=0;return e.replace(n,(a,...i)=>{const[l,u,d]=i;return s<d&&r.push({type:"text",value:e.slice(s,d).trim()}),r.push({type:"code",value:u.trim(),language:l?l.trim():"plaintext"}),s=d+a.length,a}),s<e.length&&r.push({type:"text",value:e.slice(s).trim()}),t?r.map(a=>a.type!=="text"?a:{...a,value:t(a.value)}):r},Qo=e=>e.replace(/\[([^\]]+)\](?!\()/g,"\\[$1\\]"),es=e=>e.replace(/([a-zA-Z0-9])_(?=[a-zA-Z0-9])/g,"$1\\_"),ts=e=>e.replace(/~~/g,"\\~\\~"),ns=e=>{let t=e;return t=Qo(t),t=es(t),t=ts(t),t},rs=typeof navigator<"u"&&navigator.product==="ReactNative",On=(e,t)=>{const n=r=>!t||t.length===0?!0:fe(r)&&t.includes(r.sendingStatus);return rs?e.find(n):e.findLast(n)};function ye(){}function Sr(){const e=typeof navigator<"u"?navigator.userAgent:"",t=/iPad|iPhone|iPod/.test(e),n=/Android/.test(e);return t||n}function os(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return t.toString(16)}const Xt=e=>{try{return JSON.parse(e===""?"{}":e)}catch{return{}}},ke={isStreaming(e){const t=Xt(e.data);return typeof t=="object"&&!!t.stream},isWelcomeMessage(e,t){var n;if(((n=e.extendedMessagePayload)==null?void 0:n.bot_message_type)==="welcome")return!0;if(Qe(e,t)){const r=Xt(e.data);return!(r!=null&&r.respond_mesg_id)&&!(r!=null&&r.stream)}return!1},isGeneratedMessage(e){var t;return((t=e.extendedMessagePayload)==null?void 0:t.bot_message_type)==="generated"},hasFeedback(e){var t;return!!((t=e.extendedMessagePayload)!=null&&t.feedback)}},Bt=`@${ze}`,Rn=({appId:e,aiAgentId:t,storage:n})=>{const r={templateBase:`${Bt}-template`,template:s=>`${r.templateBase}/templates/${s}`,templateToken:()=>`${r.templateBase}/tokens`,messengerSession:s=>{const a=os(`${e}/${t}/${s}`);return`${Bt}-udata/${a}`},anonUserSession:()=>`${Bt}-session/${e}/${t}`};return{template:{set:(s,a)=>n.set(r.template(s),a),get:s=>n.get(r.template(s)),setCachedToken:s=>n.set(r.templateToken(),s),getCachedToken:()=>n.get(r.templateToken()),clear:()=>{n.getKeys(r.templateBase).forEach(n.delete)}},messenger:{getSettings:s=>{try{const a=n.get(r.messengerSession(s));return a?JSON.parse(a):null}catch{return null}},setSettings:(s,a)=>{try{delete a.auto_created_user;const i=JSON.stringify(a);n.set(r.messengerSession(s),i)}catch{return}},getAnonUser:()=>{try{const s=n.get(r.anonUserSession());return s?JSON.parse(s):null}catch{return null}},setAnonUser:s=>{try{const a=JSON.stringify(s);n.set(r.anonUserSession(),a)}catch{return}},clear:s=>{try{s&&n.delete(r.messengerSession(s)),n.delete(r.anonUserSession())}catch{return}}}}},Tr=(e,t,n={})=>{let r=null,s=null,a=null;const{leading:i=!0,trailing:l=!0}=n,u=(...d)=>{const m=Date.now();if(a===null||m-a>=t)i?(e(...d),a=m):(s=d,a=m);else if(s=d,l&&!r){const f=t-(m-a);r=setTimeout(()=>{s&&l&&(e(...s),a=Date.now()),r=null,s=null},f)}};return u.cancel=()=>{r&&(clearTimeout(r),r=null),s=null,a=null},u};class ss{constructor(t,{filter:n,limit:r=20}){F(this,"filter");F(this,"_sdk");F(this,"_pinnedChannels");F(this,"_channels");F(this,"_isDisposed",!1);F(this,"_handlerId",`handler-id-${Date.now()}`);F(this,"_order",bt.GroupChannelListOrder.LATEST_LAST_MESSAGE);F(this,"_limit");F(this,"_query");F(this,"_token");F(this,"_timestamp");F(this,"_isSyncing");F(this,"_channelHandler");F(this,"_connectionHandler");F(this,"_collectionEventHandler");F(this,"_throttledOnChannelChanged");var s,a,i,l,u,d,m;this.filter=n,this._sdk=t,this._pinnedChannels=[],this._channels=[],this._limit=r,this._query=this._sdk.aiAgent.createMyGroupChannelListQuery({aiAgentChannelFilter:(s=this.filter)==null?void 0:s.aiAgentChannelFilter,aiAgentConversationStatusFilter:(a=this.filter)==null?void 0:a.aiAgentConversationStatusFilter,aiAgentIds:(i=this.filter)==null?void 0:i.aiAgentIds,deskChannelFilter:(l=this.filter)==null?void 0:l.deskChannelFilter,pinnedChannelUrls:(u=this.filter)==null?void 0:u.pinnedChannelUrls,copilotConversationOnly:(d=this.filter)==null?void 0:d.copilotConversationOnly,copilotSupportChannelUrl:(m=this.filter)==null?void 0:m.copilotSupportChannelUrl,limit:this._limit}),this._token="",this._timestamp=Number.MAX_SAFE_INTEGER,this._isSyncing=!1,this._throttledOnChannelChanged=Tr(f=>{this._query.belongsTo(f)?this._addChannelsToView([f],!1):this._removeChannelsFromView([f.url])},250,{trailing:!1,leading:!0}),this._channelHandler=new bt.GroupChannelHandler({onChannelChanged:f=>{f.isGroupChannel()&&this._throttledOnChannelChanged(f)},onChannelDeleted:f=>{this._removeChannelsFromView([f])}}),this._connectionHandler=new K.ConnectionHandler({onReconnectSucceeded:()=>{this._isDefaultChangelogSyncTimestampUpdated&&this._syncChannelChangelogs()}}),this._sdk.addConnectionHandler(this._handlerId,this._connectionHandler),this._sdk.groupChannel.addGroupChannelHandler(this._handlerId,this._channelHandler)}get _isDefaultChangelogSyncTimestampUpdated(){return this._timestamp!==Number.MAX_SAFE_INTEGER}_setDefaultChangelogsSyncTimestamp(t){var a,i;const n=new Set(((a=this.filter)==null?void 0:a.pinnedChannelUrls)??[]),r=t.find(l=>!n.has(l.url));let s;r?s=((i=r.lastMessage)==null?void 0:i.createdAt)??r.createdAt:s=this._query.lastResponseAt,this._timestamp>s&&(this._timestamp=s)}async _syncChannelChangelogs(){if(this._isDisposed)return[];if(this._isSyncing)return[];try{this._isSyncing=!0;let t;for(this._token?t=await this._sdk.aiAgent.getMyGroupChannelChangeLogsByToken(this._token,this.filter):t=await this._sdk.aiAgent.getMyGroupChannelChangeLogsByTimestamp(this._timestamp,this.filter),this._token=t.token,this._addChannelsToView(t.updatedChannels),this._removeChannelsFromView(t.deletedChannelUrls);t.hasMore&&t.token;)t=await this._sdk.aiAgent.getMyGroupChannelChangeLogsByToken(this._token,this.filter),this._token=t.token,this._addChannelsToView(t.updatedChannels),this._removeChannelsFromView(t.deletedChannelUrls)}catch{}finally{this._isSyncing=!1}return[]}_upsertPinnedChannelsToArray(t){var l;const n=((l=this.filter)==null?void 0:l.pinnedChannelUrls)??[],r=new Map(n.map((u,d)=>[u,d])),s=[],a=[],i=[];for(const u of t){if(!this._query.belongsTo(u)){i.push(u.url);continue}const d=r.get(u.url);if(d===void 0)continue;const m=Zt(this._pinnedChannels,u);m>=0?(this._pinnedChannels.splice(m,1),a.push(u)):s.push(u);const E=this._pinnedChannels.findIndex(_=>(r.get(_.url)??1/0)>d),v=E===-1?this._pinnedChannels.length:E;this._pinnedChannels.splice(v,0,u)}return{addedChannels:s,updatedChannels:a,unmatchedChannelUrls:i}}_upsertRegularChannelsToArray(t,n=!1){const r=[],s=[],a=[];for(const i of t){if(!this._query.belongsTo(i)){r.push(i.url);continue}const l=Zt(this._channels,i),u=l<0;!u&&this._channels.splice(l,1);const m=as(this._channels,i,this._order).place,f=m===this._channels.length;u?f?(n||!this.hasMore)&&(this._channels.push(i),s.push(i)):(this._channels.splice(m,0,i),s.push(i)):(this._channels.splice(m,0,i),a.push(i))}return{addedChannels:s,updatedChannels:a,unmatchedChannelUrls:r}}_addChannelsToView(t,n=!1){var f,E,v,_,b;const r=new Set(((f=this.filter)==null?void 0:f.pinnedChannelUrls)??[]),s=[],a=[];for(const p of t)r.has(p.url)?s.push(p):a.push(p);const i=this._upsertPinnedChannelsToArray(s),l=this._upsertRegularChannelsToArray(a,n),u=i.addedChannels.concat(l.addedChannels),d=i.updatedChannels.concat(l.updatedChannels),m=i.unmatchedChannelUrls.concat(l.unmatchedChannelUrls);u.length>0&&((v=(E=this._collectionEventHandler)==null?void 0:E.onChannelsAdded)==null||v.call(E,{},u)),d.length>0&&((b=(_=this._collectionEventHandler)==null?void 0:_.onChannelsUpdated)==null||b.call(_,{},d)),m.length>0&&this._removeChannelsFromView(m)}_removeChannelsFromView(t){var s,a,i;const n=new Set(((s=this.filter)==null?void 0:s.pinnedChannelUrls)??[]),r=[];for(const l of t)if(n.has(l)){const u=this._pinnedChannels.findIndex(d=>d.url===l);u>=0&&(r.push(l),this._pinnedChannels.splice(u,1))}else{const u=this._channels.findIndex(d=>d.url===l);u>=0&&(r.push(l),this._channels.splice(u,1))}r.length>0&&((i=(a=this._collectionEventHandler)==null?void 0:a.onChannelsDeleted)==null||i.call(a,{},r))}get channels(){return this._isDisposed?[]:[...this._pinnedChannels,...this._channels]}get hasMore(){return this._isDisposed?!1:this._query.hasNext}async loadMore(){if(this._isDisposed)return[];if(this.hasMore){const t=await this._query.next();return this._setDefaultChangelogsSyncTimestamp(t),this._addChannelsToView(t,!0),t}return[]}setConversationListCollectionHandler(t){this._collectionEventHandler=t}dispose(){this._isDisposed||(this._isDisposed=!0,this._throttledOnChannelChanged.cancel(),this._collectionEventHandler=void 0,this._sdk.removeConnectionHandler(this._handlerId),this._sdk.groupChannel.removeGroupChannelHandler(this._handlerId),this._pinnedChannels.length=0,this._channels.length=0)}}const Zt=(e,t)=>e.findIndex(n=>n.isIdentical(t)),as=(e,t,n)=>{if(e.length>0){const r=Zt(e,t);let s=0,a=e.length-1,i=Math.floor((s+a)/2);for(;s<a;){const u=Dn(e[i],t,n);if(u>0)a=i,i=Math.floor((s+a)/2);else if(u<0)s=i+1,i=Math.floor((s+a)/2);else return{place:i,oldPosition:r}}return{place:Dn(e[i],t,n)>=0?i:i+1,oldPosition:r}}return{place:e.length,oldPosition:-1}},Dn=(e,t,n)=>{switch(n){case bt.GroupChannelListOrder.LATEST_LAST_MESSAGE:if(e.lastMessage&&t.lastMessage){const r=t.lastMessage.createdAt-e.lastMessage.createdAt;return r===0?t.createdAt-e.createdAt:r}else return e.lastMessage?-1:t.lastMessage?1:t.createdAt-e.createdAt;default:return 0}};class Ar{constructor(t){F(this,"subscribers",{});this.logger=t}async send(t){const n=is(),r=this.subscribers[t.type];if(r){this.logger.debug(`messenger.dispatcher: dispatching command: ${t.type}`,t.payload);const s=r.map(a=>a(t.payload));await Promise.all(s).catch(a=>{this.logger.error(`messenger.dispatcher: error in callback for command: ${t.type}`,a)})}return n.resolve(),n.promise}subscribe(t,n){this.subscribers[t]||(this.subscribers[t]=[]),this.subscribers[t].push(n)}unsubscribe(t,n){const r=this.subscribers[t];r&&(this.subscribers[t]=r.filter(s=>s!==n))}}const is=()=>{let e=ye,t=ye;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}};var Ze=(e=>(e.ConversationClose="conv.close",e.MessengerSettingsUpdated="messenger.settings.updated",e.ActiveChannelUpdated="active.channel.updated",e.AnonymousSessionTokenExpired="anon.token.expired",e))(Ze||{});class At{constructor(t={}){F(this,"payload");this.payload=t}toJSON(){return JSON.stringify({type:this.type,payload:this.payload})}}const mn={CloseConversation:e=>new ls(e),MessengerSettingsUpdated:e=>new cs(e),ActiveChannelUpdated:e=>new us(e),AnonymousSessionTokenExpired:()=>new ds};class ls extends At{constructor(){super(...arguments);F(this,"type","conv.close")}}class cs extends At{constructor(){super(...arguments);F(this,"type","messenger.settings.updated")}}class us extends At{constructor(){super(...arguments);F(this,"type","active.channel.updated")}}class ds extends At{constructor(){super(...arguments);F(this,"type","anon.token.expired")}}var gn=(e=>(e[e.VERBOSE=0]="VERBOSE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.NONE=5]="NONE",e))(gn||{});class wr{constructor(t){F(this,"level");this.level=t}verbose(...t){this.level<=0&&console.log(`[${ze}/verbose]`,...t)}debug(...t){this.level<=1&&console.log(`[${ze}/debug]`,...t)}info(...t){this.level<=2&&console.log(`[${ze}/info]`,...t)}warn(...t){this.level<=3&&console.warn(`[${ze}/warn]`,...t)}error(...t){this.level<=4&&console.error(`[${ze}/error]`,...t)}}class Ir{constructor({userId:t,authToken:n,sessionHandler:r}){F(this,"userId");F(this,"authToken");F(this,"sessionHandler");this.userId=t,this.authToken=n,this.sessionHandler=r}}class Jt{constructor(){F(this,"userId");F(this,"authToken");F(this,"sessionHandler")}}const ms=e=>({onSessionTokenRequired:t=>{t(null),e.send(mn.AnonymousSessionTokenExpired())}}),gs="ai_agent:stats",hs="conversation_initial_render",ps=800220;var Y=(e=>(e.AUTH="auth_duration",e.GET_CHANNEL="get_channel_duration",e.GET_MESSAGES="get_messages_duration",e.TOTAL_DURATION="total_duration",e.TOTAL_DURATION_FROM_CACHE="total_duration_from_cache",e))(Y||{});class fs{constructor(){F(this,"timers",new Map);F(this,"committed",!1);F(this,"commitCallback",null);F(this,"conversationId",null);F(this,"channelUrl",null);F(this,"errorCode",null);F(this,"errorDescription",null);F(this,"extraData",{})}setCommitCallback(t){return this.commitCallback=t,this}setConversationId(t){return this.conversationId=t,this}setChannelUrl(t){return this.setExtra("channel_url",t),this}setError(t,n){return this.errorCode=t??ps,this.errorDescription=n,this}setExtra(t,n){return n!=null&&(this.extraData[t]=n),this}startTimer(t){if(this.committed)return this;const n=this.timers.get(t);return(n==null?void 0:n.startTime)!==null&&(n==null?void 0:n.startTime)!==void 0?this:(this.timers.set(t,{startTime:Date.now(),endTime:null}),this)}stopTimer(t){if(this.committed)return this;const n=this.timers.get(t);return!n||n.startTime===null||n.endTime!==null?this:(this.timers.set(t,{...n,endTime:Date.now()}),this)}getDuration(t){const n=this.timers.get(t);return!n||n.startTime===null||n.endTime===null?null:n.endTime-n.startTime}isCommitted(){return this.committed}commit(){if(this.committed||!this.commitCallback)return!1;const t=this.buildPayload();return t?(this.committed=!0,this.commitCallback(gs,t)):!1}}class Es extends fs{constructor(){super(...arguments);F(this,"presentMethod","direct_present")}setPresentMethod(n){return this.presentMethod=n,this}getMetricKey(){return hs}buildPayload(){const n=this.getDuration(Y.AUTH),r=this.getDuration(Y.GET_CHANNEL),s=this.getDuration(Y.GET_MESSAGES),a=this.getDuration(Y.TOTAL_DURATION_FROM_CACHE),i=this.getDuration(Y.TOTAL_DURATION),l={...this.extraData,present_method:this.presentMethod,...n!==null&&{auth_duration:n},...r!==null&&{get_channel_duration:r},...s!==null&&{get_messages_duration:s},...a!==null&&{total_duration_from_cache:a}},u={key:this.getMetricKey(),value:i!==null?String(i):"0"};return this.conversationId!==null&&(u.conversation_id=this.conversationId),this.errorCode!==null&&(u.error_code=this.errorCode),this.errorDescription!==null&&(u.error_description=this.errorDescription),Object.keys(l).length>0&&(u.extra=l),u}}class bs{constructor(t){F(this,"commitCallback");F(this,"presentMethod","direct_present");F(this,"stats",null);this.commitCallback=t}getOrCreateStats(){return(!this.stats||this.stats.isCommitted())&&(this.stats=new Es().setCommitCallback(this.commitCallback).setPresentMethod(this.presentMethod)),this.stats}onAuthStart(){this.getOrCreateStats().startTimer(Y.TOTAL_DURATION).startTimer(Y.TOTAL_DURATION_FROM_CACHE).startTimer(Y.AUTH)}onAuthComplete(){var t;(t=this.stats)==null||t.stopTimer(Y.AUTH)}onAuthError(t){this.stats&&!this.stats.isCommitted()&&this.stats.stopTimer(Y.AUTH).setError(t instanceof K.SendbirdError?t.code:void 0,t.message).stopTimer(Y.TOTAL_DURATION).commit()}onGetChannelStart(){var t;(t=this.stats)==null||t.startTimer(Y.GET_CHANNEL)}onGetChannelComplete(t){this.stats&&(this.stats.stopTimer(Y.GET_CHANNEL),t!==void 0&&this.stats.setConversationId(t),this.stats.startTimer(Y.GET_MESSAGES))}onGetChannelError(t){this.stats&&!this.stats.isCommitted()&&this.stats.stopTimer(Y.GET_CHANNEL).setError(t instanceof K.SendbirdError?t.code:void 0,t.message).stopTimer(Y.TOTAL_DURATION).commit()}onCacheResult(t){this.stats&&!this.stats.isCommitted()&&(t&&this.stats.setError(t instanceof K.SendbirdError?t.code:void 0,t.message),this.stats.stopTimer(Y.TOTAL_DURATION_FROM_CACHE))}onApiResult(t){this.stats&&!this.stats.isCommitted()&&(t&&this.stats.setError(t instanceof K.SendbirdError?t.code:void 0,t.message),this.stats.stopTimer(Y.TOTAL_DURATION).stopTimer(Y.GET_MESSAGES).commit())}setChannelUrl(t){var n;(n=this.stats)==null||n.setChannelUrl(t)}cleanup(){var t;(t=this.stats)==null||t.commit()}setPresentMethod(t){var n;this.presentMethod=t,(n=this.stats)==null||n.setPresentMethod(t)}clear(){this.stats=null}}const Ae={conversation:{isTalkToAgentViewEnabled:!0,scrollMode:"auto",newMessageIndicatorEnabled:!0,senderAvatarEnabled:!0,messageAlertSoundEnabled:!1,header:{avatarEnabled:!0},input:{camera:{photoEnabled:!0},gallery:{photoEnabled:!0},fileEnabled:!0},fileViewer:{downloadEnabled:!0}}},xs=e=>{var t,n,r,s,a,i,l,u,d,m,f,E,v,_;return e?{...Ae,...e,conversation:{...Ae.conversation,...e==null?void 0:e.conversation,header:{...(t=Ae.conversation)==null?void 0:t.header,...(n=e==null?void 0:e.conversation)==null?void 0:n.header},input:{...(r=Ae.conversation)==null?void 0:r.input,...(s=e==null?void 0:e.conversation)==null?void 0:s.input,camera:{...(i=(a=Ae.conversation)==null?void 0:a.input)==null?void 0:i.camera,...(u=(l=e==null?void 0:e.conversation)==null?void 0:l.input)==null?void 0:u.camera},gallery:{...(m=(d=Ae.conversation)==null?void 0:d.input)==null?void 0:m.gallery,...(E=(f=e==null?void 0:e.conversation)==null?void 0:f.input)==null?void 0:E.gallery}},fileViewer:{...(v=Ae.conversation)==null?void 0:v.fileViewer,...(_=e==null?void 0:e.conversation)==null?void 0:_.fileViewer}}}:Ae},ue=e=>{var t,n;return!!(e!=null&&e.isAIAgent&&((t=e==null?void 0:e.conversation)==null?void 0:t.status)===se.ConversationStatus.CLOSED||e!=null&&e.isDesk&&((n=e==null?void 0:e.helpdeskInfo)==null?void 0:n.ticketStatus)==="closed")},hn=e=>{var t,n;return!!(e!=null&&e.isAIAgent&&((t=e==null?void 0:e.conversation)==null?void 0:t.status)===se.ConversationStatus.OPEN||e!=null&&e.isDesk&&((n=e==null?void 0:e.helpdeskInfo)==null?void 0:n.ticketStatus)==="open")};function Ve(e){var n,r,s;return typeof(((n=e==null?void 0:e.conversation)==null?void 0:n.handedOverAt)??((s=(r=e==null?void 0:e.conversation)==null?void 0:r.handoff)==null?void 0:s.timestamp))=="number"}function Cs(e){var t;if(((t=e==null?void 0:e.resolution)==null?void 0:t.determinedBy)==="user")return e.resolution.isResolved}function Nn(e){return!!e&&e<Date.now()}function _s(e){return!e.title}function vs(e,t){var n;if(e)return _s(e)?{...e,title:t.title,csat_question:t.question,csat_scores:[{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/angry-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/suspicious-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/neutral-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/smile-active.png"},{label:"",image_url:"https://static.dashboard.sendbird.com/assets/ai-agent/happy-active.png"}],cre:{required:((n=e.cre)==null?void 0:n.required)??!0,question:t.cre.question,positive_label:t.cre.positive_label,negative_label:t.cre.negative_label},follow_up:[{response_type:"free_text",scores:[1,2,3,4,5],question:t.followUp.question,always_visible:!1}],csat_submit_label:t.submit_label,csat_submitted_label:t.submitted_label}:e}const kr=e=>{try{const t=JSON.parse(e);return typeof t=="string"?JSON.stringify(t).slice(1,-1):e.trim()}catch{return JSON.stringify(e).slice(1,-1)}},et=e=>JSON.parse(e),wt=e=>JSON.parse(e);function ys(e,t){const[n,r]=t.split(",").map(s=>s.trim());return e==="dark"&&r||n}function Ss(e){const t={};function n(r,s=""){for(const[a,i]of Object.entries(r)){const l=s?`${s}.${a}`:a;i&&typeof i=="object"&&!Array.isArray(i)?n(i,l):t[l]=i}}return n(e),t}function pn({template:e,variables:t,variableKeyPattern:n,variableValueTransformer:r}){return Object.entries(t).reduce((s,[a,i])=>{if(!r&&!["number","boolean","string"].includes(typeof i))throw new Error(`If transformer is not provided, value(${a}:${i}) must be a {string, number, or boolean}`);const l=r?r(i):String(i),u=n(a);return s.replace(u,kr(l))},e)}async function Ts({template:e,variables:t,variableKeyPattern:n,variableValueTransformer:r}){return(await Promise.all(Object.entries(t).map(async([a,i])=>{const l=await r(i);return{regex:n(a),transformedValue:l}}))).reduce((a,{regex:i,transformedValue:l})=>a.replace(i,kr(l)),e)}var Qt=(e=>(e[e.EXTERNAL_AUTH_TOKEN_EXPIRED=1]="EXTERNAL_AUTH_TOKEN_EXPIRED",e))(Qt||{});const Mr=e=>typeof e=="object"&&e!==null,Pn=(e,t)=>t in e&&typeof e[t]=="string"&&e[t]!=="",As=e=>!Mr(e)||!Pn(e,"channel_url")||!Pn(e,"ai_agent_id")?null:{channelUrl:e.channel_url,aiAgentId:e.ai_agent_id},ws={1:As};function Is(e){if(!Mr(e)||!("cat"in e)||typeof e.cat!="number"||!("data"in e))return null;const t=e.cat,n=ws[t];if(!n)return null;const r=n(e.data);return r?{category:t,data:r}:null}function Fn(e,t,n,r){const s=Ko.default.init({appId:e,modules:[new bt.GroupChannelModule,new se.AIAgentModule],localCacheEnabled:!0,options:new K.SendbirdChatOptions({typingIndicatorInvalidateTime:2e4}),...r});return s.addSendbirdExtensions([{version:n,product:K.SendbirdProduct.AI_AGENT,platform:t.platform}],{platform:t.deviceOSPlatform,version:t.deviceOSVersion},t.customData)||console.warn("Invalid Sendbird Extensions",t),s}function ks(e){const t=n=>{throw new Error(`Please initialize chat sdk with ${n}`)};typeof e.groupChannel!="object"&&t("GroupChannelModule"),typeof e.aiAgent!="object"&&t("AIAgentModule")}const ct=new Map,Ms={set:(e,t)=>{ct.set(e,t)},get:e=>{if(ct.size===0)throw new Error("AIAgent platform not configured. Ensure you are using the correct package (@sendbird/ai-agent-messenger-react or @sendbird/ai-agent-messenger-react-native).");if(e){const n=ct.get(e);if(!n)throw new Error(`AIAgent platform "${e}" is not configured.`);return{platform:e,...n}}const t=ct.entries().next().value;return{platform:t[0],...t[1]}}},ee=(e,t)=>{const n=c.createContext(null),r=({children:i,value:l})=>o.createElement(n.Provider,{value:l},typeof i=="function"?i(l):i),s=({children:i})=>o.createElement(n.Consumer,null,l=>l?typeof i=="function"?i(l):i:null),a=()=>{const i=c.useContext(n);if(!i)throw new Error(`use${e}Context must be used within a ${e}Provider`);return i};return n.displayName=`${e}Context`,r.displayName=`${e}Provider`,s.displayName=`${e}Consumer`,a.displayName=`use${e}Context`,{Context:n,Provider:r,Consumer:s,useContext:a}};function Ee(e){const t=c.createContext({Template:e.template,updateTemplate:()=>{},components:e.components,updateComponent:()=>{}});function n({children:a}){const[i,l]=c.useState(()=>e.template),[u,d]=c.useState(e.components),m={Template:i,updateTemplate:f=>l(()=>f),components:u,updateComponent:(f,E)=>d(v=>({...v,[f]:E}))};return o.createElement(t.Provider,{value:m},a)}function r({template:a,children:i}){const{updateTemplate:l}=c.useContext(t);return c.useLayoutEffect(()=>{a&&l(a)},[a]),o.createElement(o.Fragment,null,i)}function s({children:a}){return o.createElement(n,null,a)}return s.defaults=e,s.useContext=()=>c.useContext(t),s.Context=t,s.Template=r,Object.keys(e.components).forEach(a=>{s[a]=function({component:l}){const{updateComponent:u}=c.useContext(t);return c.useLayoutEffect(()=>{l&&u(a,l)},[l]),null}}),s}function $s(...e){return function({children:n}){return e.reduce((r,s)=>o.createElement(s,null,r),n)}}function Ls(e,t){var r;const n=e.lastMessage;if(n!=null&&n.isUserMessage()||n!=null&&n.isAdminMessage())return n.message||"";if(n!=null&&n.isFileMessage())return n.message||n.name||"FILE";if(n!=null&&n.isMultipleFilesMessage()){if(n.message)return n.message;const s=n.fileInfoList.length;return((r=t==null?void 0:t.formatMultipleFilesCount)==null?void 0:r.call(t,s))??`${s} photos`}return e.name}function Os(e,t,n){var i;const r=new Date,s=new Date(((i=e.lastMessage)==null?void 0:i.createdAt)||e.createdAt),a=De.differenceInMinutes(r,s);return a<1?n.justNow:a<60?n.minutesAgo(a):De.isToday(s)?n.hoursAgo(De.differenceInHours(r,s)):t(s,n.dateShortFormat)}const{Provider:Rs,useContext:te}=ee("AIAgent");function Ds({appId:e,aiAgentId:t,keyValueStorage:n,networkStateAdapter:r,language:s,countryCode:a,context:i,queryParams:l,config:u,chatSDK:d,chatParams:m,children:f,logger:E,dispatcher:v,messengerVersion:_,extensions:b={platform:K.SendbirdPlatform.JS,deviceOSPlatform:Sr()?K.DeviceOsPlatform.MOBILE_WEB:K.DeviceOsPlatform.WEB}}){const[p,x]=c.useState(()=>{const C=E??new wr(gn.WARN),y=v??new Ar(C);return{logger:C,dispatcher:y,chatSDK:d??Fn(e,b,_,m),cache:Rn({appId:e,aiAgentId:t,storage:n})}});return c.useEffect(()=>{x(C=>{let y=C.logger,T=C.dispatcher,I=C.chatSDK;return E&&E!==C.logger&&(y=E),v&&v!==C.dispatcher&&(T=v),d&&d!==C.chatSDK?I=d:!d&&C.chatSDK.appId!==e&&(I=Fn(e,b,_,{newInstance:!0,...m})),{...C,logger:y,dispatcher:T,chatSDK:I,cache:Rn({appId:e,aiAgentId:t,storage:n})}})},[e,t,E,v,d,n]),c.useEffect(()=>()=>{p.chatSDK.connectionState==="OPEN"&&p.chatSDK.disconnectWebSocket()},[p.chatSDK]),ks(p.chatSDK),o.createElement(Rs,{value:{...p,appId:e,aiAgentId:t,context:i,language:s,countryCode:a,queryParams:l,config:xs(u),networkStateAdapter:r}},f)}const Ns=(e,t,n)=>ve.useGroupChannelMessages(e,t,{...n,strictStreamingOrder:!0}),Je={DEFAULT_PRIMARY:"#000000",DEFAULT_BOT_MSG_BG:"#ECECEC",WHITE:"#ffffff",BLACK:"#000000"};function $r(e){return e.length===4?`#${[...e.slice(1)].map(t=>t+t).join("")}`:e}function Ps(e){const t=$r(e);return[parseInt(t.slice(1,3),16),parseInt(t.slice(3,5),16),parseInt(t.slice(5,7),16)]}function Fs(e){return`#${e.map(t=>t.toString(16).padStart(2,"0")).join("")}`}function Bs(e,t,n){e/=255,t/=255,n/=255;const r=Math.max(e,t,n),s=Math.min(e,t,n),a=r-s;let i=0,l=0;const u=(r+s)/2;return r!==s&&(l=u>.5?a/(2-r-s):a/(r+s)),r===e?i=(t-n)/a+(t<n?6:0):r===t?i=(n-e)/a+2:r===n&&(i=(e-t)/a+4),i/=6,[i,l,u]}function Us(e,t,n){let r,s,a;if(t===0)r=s=a=n;else{const i=function(m,f,E){return E<0&&(E+=1),E>1&&(E-=1),E<.16666666666666666?m+(f-m)*6*E:E<.5?f:E<.6666666666666666?m+(f-m)*(.6666666666666666-E)*6:m},l=n<.5?n*(1+t):n+t-n*t,u=2*n-l;r=i(u,l,e+1/3),s=i(u,l,e),a=i(u,l,e-1/3)}return[Math.round(r*255),Math.round(s*255),Math.round(a*255)]}function ut(e,t,n){const[r,s,a]=Ps(e),[i,l,u]=Bs(r,s,a),d=Math.max(0,Math.min(1,u*t)),m=Math.max(0,Math.min(1,l*n)),[f,E,v]=Us(i,m,d);return Fs([Math.round(f),Math.round(E),Math.round(v)])}function Hs(e,t="light"){return{extraDark:ut(e,.6,1.2),dark:ut(e,.85,1.1),main:e,light:ut(e,t==="dark"?1.1:1.5,t==="dark"?.95:.9),extraLight:ut(e,t==="dark"?1.2:1.75,t==="dark"?.9:.8)}}function en(e){const t=$r(e),n=149,r=+`0x${t[1]}${t[2]}`,s=+`0x${t[3]}${t[4]}`,a=+`0x${t[5]}${t[6]}`;return r*.299+s*.587+a*.114>n?Je.BLACK:Je.WHITE}function zs(e,t,n,r,s){return{base:{primary:t,primaryContrastContent:n,background:e.background50,headerBackground:e.background50,modalContentBackground:e.background50},messageInput:{text:e.onlight.textHighEmphasis,placeholderText:e.onlight.textLowEmphasis,background:e.background100},messageIncoming:{text:s,background:r},messageOutgoing:{text:n,background:t},csat:{background:e.background100}}}const Vs=(e,t,n,r,s)=>({base:{primary:t,primaryContrastContent:n,background:e.background600,headerBackground:e.background500,modalContentBackground:e.background500},messageInput:{text:e.ondark.textHighEmphasis,placeholderText:e.ondark.textLowEmphasis,background:e.background400},messageIncoming:{text:s,background:r},messageOutgoing:{text:n,background:t},csat:{background:e.background400}}),dt={primary:{extraDark:"#491389",dark:"#6211c8",main:"#742ddd",light:"#c2a9fa",extraLight:"#dbd1ff"},secondary:{extraDark:"#066858",dark:"#027d69",main:"#259c72",light:"#69c085",extraLight:"#a8e2ab"},error:{extraDark:"#9d091e",dark:"#bf0711",main:"#de360b",light:"#f66161",extraLight:"#fdaaaa"},information:{extraDark:"#241389",dark:"#362ca9",main:"#4a48cd",light:"#a9bbfa",extraLight:"#d1dbff"},background700:"#000000",background600:"#161616",background500:"#2c2c2c",background400:"#393939",background300:"#bdbdbd",background200:"#e0e0e0",background100:"#eeeeee",background50:"#ffffff",onlight:{textHighEmphasis:"rgba(0, 0, 0, 0.88)",textMidEmphasis:"rgba(0, 0, 0, 0.5)",textLowEmphasis:"rgba(0, 0, 0, 0.38)",textDisabled:"rgba(0, 0, 0, 0.12)"},ondark:{textHighEmphasis:"rgba(255, 255, 255, 0.88)",textMidEmphasis:"rgba(255, 255, 255, 0.5)",textLowEmphasis:"rgba(255, 255, 255, 0.38)",textDisabled:"rgba(255, 255, 255, 0.12)"},overlay:{dark:"rgba(0, 0, 0, 0.55)",light:"rgba(22, 22, 22, 0.32)"}},Ut={h1:{fontSize:18,fontWeight:700},h2:{fontSize:16,fontWeight:700},subtitle1:{fontSize:16,fontWeight:500},subtitle2:{fontSize:16,fontWeight:400},body1:{fontSize:16,fontWeight:400},body2:{fontSize:14,fontWeight:500},body3:{fontSize:14,fontWeight:400},button:{fontSize:14,fontWeight:700},caption1:{fontSize:12,fontWeight:700},caption2:{fontSize:12,fontWeight:400},caption3:{fontSize:11,fontWeight:700},caption4:{fontSize:11,fontWeight:400}};function Bn(e){const t=Gs(e),{colors:n,aiAgentColorVariables:r}=Ws(e,t),s=js(e);return{selectedTheme:e.selectedTheme,palette:t,colors:n,aiAgentColorVariables:r,typography:s}}function Gs({selectedTheme:e,palette:t,primary:n}){const r=t!=null&&t.primary?t.primary:n?n===dt.primary.main?dt.primary:Hs(n,e):dt.primary;return{...dt,primary:r,...t}}function Ws({selectedTheme:e,primaryContrast:t,botMessageBackground:n,botMessageBackgroundContrast:r},s){const a=s.primary.main,i=t??en(a),l=n??Je.DEFAULT_BOT_MSG_BG,u=r??en(l);return{colors:(e==="light"?zs:Vs)(s,a,i,l,u),aiAgentColorVariables:{primary_color:a,bot_message_bg_color:l,primary_contrast_color:i,bot_message_bg_contrast_color:u}}}function qs(e,t,n){const r={...e};return n.forEach(s=>{const a=t[s];a!=null&&(r[s]=a)}),r}function js({typography:e}){if(!e)return Ut;const t={...Ut};return Object.keys(e).forEach(n=>{const r=e[n];if(r&&typeof r=="object"){const s=Ut[n],a=["fontSize","fontWeight","fontFamily","lineHeight"];t[n]=qs(s,r,a)}}),t}const{Provider:Ks,useContext:fn}=ee("AIAgentTheme");function Ys({logger:e,palette:t,typography:n,appearance:r,children:s}){const a=c.useRef(null),[i,l]=c.useState(()=>Bn({selectedTheme:(r==null?void 0:r.theme)??"light",palette:t,typography:n,primary:r==null?void 0:r.primaryColor,botMessageBackground:r==null?void 0:r.botMessageBackgroundColor})),u=c.useCallback((d,m)=>{m&&(a.current=m);const f=(r==null?void 0:r.theme)??d,E=a.current?a.current.themes[f]:null,v={primary:r==null?void 0:r.primaryColor,primaryContrast:void 0,botMessageBackground:r==null?void 0:r.botMessageBackgroundColor,botMessageBackgroundContrast:void 0};!v.primary&&(E!=null&&E.primary_color)&&(v.primary=E.primary_color,v.primaryContrast=E.primary_contrast_color),!v.botMessageBackground&&(E!=null&&E.bot_message_bg_color)&&(v.botMessageBackground=E.bot_message_bg_color,v.botMessageBackgroundContrast=E.bot_message_bg_contrast_color);const _=Bn({selectedTheme:f,palette:t,typography:n,...v});l(_),e==null||e.info("theme.update:",f)},[r==null?void 0:r.theme,r==null?void 0:r.primaryColor,r==null?void 0:r.botMessageBackgroundColor,t,n,e]);return c.useEffect(()=>{(r!=null&&r.theme||r!=null&&r.primaryColor||r!=null&&r.botMessageBackgroundColor)&&u(i.selectedTheme)},[r==null?void 0:r.theme,r==null?void 0:r.primaryColor,r==null?void 0:r.botMessageBackgroundColor]),o.createElement(Ks,{value:{theme:i,updateTheme:u}},s)}const Ht=25*1024*1024,Un=1,Hn=new Set(["image/png","image/jpeg","image/jpg"]),zn=new Set(["application/pdf"]),Xs={off:"off",always:"always",handed_off_only:"handed_off_only"},Zs=()=>{const[e,t]=c.useState(()=>({maxAttachmentCount:Un,attachmentMode:"handed_off_only",defaultUploadSizeLimit:Ht,uploadSizeLimitPerType:new Map,supportedImageMimeTypes:Hn,supportedFileMimeTypes:zn})),n=c.useCallback(({active_channel:s,upload_restriction:a})=>{t({maxAttachmentCount:(a==null?void 0:a.max_attachment_count)??Un,attachmentMode:Xs[s.attachment_mode]??"handed_off_only",defaultUploadSizeLimit:(a==null?void 0:a.default_upload_size_limit)??Ht,uploadSizeLimitPerType:new Map(Object.entries((a==null?void 0:a.upload_size_limit_per_type)??[])),supportedImageMimeTypes:new Set((a==null?void 0:a.supported_image_mime_types)??Hn),supportedFileMimeTypes:new Set((a==null?void 0:a.supported_file_mime_types)??zn)})},[]),r=c.useCallback(s=>{const{channel:a,uploadSizeLimit:i=Ht}=s,l=(d=!0)=>a!=null&&a.isAIAgent?d?Ve(a):!1:!0,u=d=>{if(l())return e.defaultUploadSizeLimit??i;const m=e.defaultUploadSizeLimit??i,f=e.uploadSizeLimitPerType.get(d)??m;return Math.min(m,f)};return{maxAttachmentCount:e.maxAttachmentCount,isEnabled:()=>{if(l(!1))return!0;switch(e.attachmentMode){case"off":return!1;case"always":return!0;case"handed_off_only":return Ve(a);default:return!0}},get supportedMimeTypes(){return l()?[Yt]:[...e.supportedImageMimeTypes,...e.supportedFileMimeTypes]},isSupportedMimeType:d=>l()?!0:e.supportedImageMimeTypes.has(d)||e.supportedFileMimeTypes.has(d),getUploadSizeLimit:u,getUploadSizeLimitInMB:d=>u(d)/(1024*1024)}},[e]);return{updateBaseAttachmentRules:n,createAttachmentRules:r}};function Lr(){const{chatSDK:e,logger:t}=te();return c.useCallback(async n=>{if(n.userId===""){const r=new Error("userId cannot be empty string for messenger settings request");throw t.error("requestMessengerSettings: invalid userId",r),r}return await e.aiAgent.requestMessengerSettings({...n,shouldSendFirstMessage:!1})},[e,t])}function Js(){const{chatSDK:e,logger:t}=te(),n=c.useCallback(async(s,a,i)=>{if(t.debug("useChatConnection.connect: start, session",s.userId),a){const l=new K.SessionHandler({...a,onSessionTokenRequired:Qs(a.onSessionTokenRequired,i)});e.setSessionHandler(l),e.aiAgent.addEventHandler(Qt.EXTERNAL_AUTH_TOKEN_EXPIRED.toString(),u=>{var m;t.debug("useChatConnection: EXTERNAL_AUTH_TOKEN_EXPIRED event received",u);const d=Is(u);(d==null?void 0:d.category)===Qt.EXTERNAL_AUTH_TOKEN_EXPIRED&&(t.debug("useChatConnection: calling onExternalAuthTokenExpired handler",d.data),(m=a==null?void 0:a.onExternalAuthTokenExpired)==null||m.call(a,d.data))})}try{return await e.connect(s.userId,s.authToken),t.debug("useChatConnection.connect: end, currentUser",e.currentUser),e.currentUser}catch(l){const u=l;if(e.isCacheEnabled){if(ta(u))t.warn("useChatConnection.connect","offline connect restricted",u.message,u.code),t.warn("useChatConnection.connect","clear cached-data"),await e.clearCachedData().catch(d=>t.warn("useChatConnection.connect","clear cached-data failure",d));else if(e.currentUser)return t.debug("useChatConnection.connect: end (offline), currentUser",e.currentUser),e.currentUser}throw t.warn("useChatConnection.connect","connect failure",u.message,u.code),u}},[e,t]),r=c.useCallback(async()=>{t.debug("useChatConnection.disconnect: start"),e.aiAgent.removeAllEventHandlers(),await e.disconnect(),t.debug("useChatConnection.disconnect: end")},[e,t]);return{connect:n,disconnect:r}}function Qs(e,t){if(e)return async(n,r)=>{new Promise((s,a)=>e==null?void 0:e(s,a)).then(s=>{s&&(t==null||t(s)),n(s)}).catch(s=>{r(s)})}}const ea=[400300,400301,400302,400310];function ta(e){return ea.some(t=>e.code===t)}const na=1440*60*1e3,ra=e=>{const{logger:t,cache:n}=te(),r=()=>{const a=n.messenger.getAnonUser();return a?a.expireAt-na<=Date.now()?(t.debug("useUserSessionCandidate.getAnonymousSessionInfo: auto session expired, clear cache"),n.messenger.clear(a.userId),null):(t.debug("useUserSessionCandidate.getAnonymousSessionInfo: auto session info detected"),a):null},s=()=>{if(!e||e instanceof Jt)throw new Error("userSessionInfo must be an instance of ManualSessionInfo");if(typeof e.userId!="string")throw new Error("userSessionInfo.userId must be a string");const a=["userId","authToken","sessionHandler"].filter(i=>!(i in e));return a.length>0&&t.error(`useUserSessionCandidate.getManualSessionInfo: missing required keys in userSessionInfo: ${a.join(", ")}`),t.debug("useUserSessionCandidate.getManualSessionInfo: manual session info detected"),e};return c.useMemo(()=>e instanceof Ir?{type:"manual",userSessionCandidate:s()}:e instanceof Jt?{type:"anonymous",userSessionCandidate:r()}:e&&typeof e=="object"?(t.warn("Please use ManualSessionInfo instead of the old userSessionInfo format."),{type:"manual",userSessionCandidate:s()}):e===void 0?(t.warn("Please use AnonymousSessionInfo instead of undefined userSessionInfo."),{type:"anonymous",userSessionCandidate:r()}):{type:"anonymous",userSessionCandidate:null},[t,e==null?void 0:e.userId,e==null?void 0:e.authToken,e==null?void 0:e.sessionHandler,n.messenger.getAnonUser,n.messenger.clear])};function oa({userSessionInfo:e,onUpdateMessengerSettings:t,onPreAuth:n,onPostAuth:r,onErrorAuth:s,onAuthTokenRefreshed:a,onPostDeauth:i,forceCreateChannel:l}){const{aiAgentId:u,language:d,context:m,countryCode:f,logger:E,cache:v,dispatcher:_}=te(),{connect:b,disconnect:p}=Js(),{type:x,userSessionCandidate:C}=ra(e),y=Lr(),T=c.useCallback(async()=>{var N;E.debug("useAuthentication.authenticate: start");const w=C!=null&&C.userId?v.messenger.getSettings(C.userId):null;w!=null&&w.bot&&(t(w),E.debug("useAuthentication.authenticate: cached messenger settings",w));const S=await y({aiAgentId:u,userId:C==null?void 0:C.userId,language:d,country:f,context:m,forceCreateChannel:l,knownActiveChannelUrl:(N=w==null?void 0:w.active_channel)==null?void 0:N.channel_url});E.debug("useAuthentication.authenticate: messenger settings response",S);let $=null;if(S.auto_created_user)if(x==="manual")E.warn("Received auto created user info but current session is manual. Ignoring auto created user info."),$={userId:C.userId,authToken:C.authToken};else{const{user_id:D,session_token:O,expire_at:z}=S.auto_created_user;v.messenger.setAnonUser({userId:D,authToken:O,expireAt:z}),$={userId:D,authToken:O}}else $={userId:(C==null?void 0:C.userId)??"",authToken:(C==null?void 0:C.authToken)??""};v.messenger.setSettings($.userId,S),t(S);try{await n(S,$);const D=x==="anonymous"?ms(_):C==null?void 0:C.sessionHandler;await b($,D,a),await r(S,$)}catch(D){throw D instanceof Error&&(s(D),E.error("useAuthentication.authenticate: failed to connect",D)),D}return S},[y,b,x,C==null?void 0:C.userId,C==null?void 0:C.sessionHandler,C==null?void 0:C.authToken,u,d,m,f,l,v.messenger.setAnonUser,v.messenger.getSettings,v.messenger.setSettings,t,n,r,s,a]),I=c.useCallback(async()=>{E.debug("useAuthentication.deauthenticate: start"),await p(),i(),E.debug("useAuthentication.deauthenticate: completed")},[p,E,i]);return{authenticate:T,deauthenticate:I,userSessionCandidate:C}}const sa=()=>{const{chatSDK:e,logger:t,cache:n}=te(),r=c.useCallback(()=>{var l,u;const a=(u=(l=e.appInfo)==null?void 0:l.aiAgentInfo)==null?void 0:u.templateListToken;if(!a)return!1;const i=n.template.getCachedToken();return i?a!==i:!0},[e,n.template.getCachedToken]),s=c.useCallback(async()=>{try{const{templates:a,token:i}=await e.aiAgent.getMessageTemplates({limit:20});for(const{template:l}of a){const{key:u}=et(l);n.template.set(u,l)}n.template.setCachedToken(i)}catch(a){t==null||t.error("messageTemplateContext.syncCachedTemplates: error:",a)}},[e,t,n.template.set,n.template.setCachedToken]);return{shouldSyncCachedTemplate:r,syncCachedTemplates:s}},Vn=(...e)=>{const[t,n,r]=e;if(e.length===1&&typeof t=="object"&&t!==null)return{type:"active",context:t};if(e.length===3&&typeof t=="string"&&typeof n=="string"&&typeof r=="object"&&r!==null)return{type:"specific",aiAgentId:t,channelUrl:n,context:r};throw new Error("Invalid arguments: expected (context) or (aiAgentId, channelUrl, context)")},je=e=>({...e,context:e.context??{}}),{Provider:aa,useContext:tt}=ee("AIAgentMessengerSession"),ia=c.forwardRef(function({userSessionInfo:e,forceCreateChannel:t,children:n},r){const{appId:s,aiAgentId:a,chatSDK:i,language:l,countryCode:u,context:d,cache:m,logger:f}=te(),{updateTheme:E}=fn(),[v,_]=c.useState(void 0),[b,p]=c.useState(void 0),[x,C]=c.useState(null),[y,T]=c.useState(null),[I,w]=c.useState(null),[S,$]=c.useState(null),[N]=c.useState(()=>({initialRender:new bs((A,R)=>i.aiAgent.appendStat(A,R))})),{updateBaseAttachmentRules:D,createAttachmentRules:O}=Zs(),{shouldSyncCachedTemplate:z,syncCachedTemplates:V}=sa(),j=Lr(),{authenticate:ae,deauthenticate:ie}=oa({userSessionInfo:e,forceCreateChannel:t,onUpdateMessengerSettings:c.useCallback(A=>{const{appearance:R,bot:P,launcher:X}=A;E(R.selected_theme,R),w({userId:P.bot_userid,profileUrl:P.bot_profile_url,nickname:P.bot_nickname,replyToFile:P.reply_to_file,specialNotice:P.special_notice,specialNoticeEnabled:P.is_special_notice_enabled,showHandoffButton:P.show_handoff_button??!0,isMultipleActiveConversationsEnabled:P.is_multiple_active_conversations_enabled??!0,isUserFeedbackEnabled:A.bot.is_user_feedback_enabled??!1,isUserFeedbackCommentOptionEnabled:A.bot.is_user_feedback_comment_option_enabled??!1}),$({type:X.image_type||"default_icon",imageUrl:X.image_url}),D(A)},[E]),onPreAuth:c.useCallback((A,R)=>{_(void 0),T(R),N.initialRender.onAuthStart()},[N]),onPostAuth:c.useCallback(async A=>{N.initialRender.onAuthComplete(),C(i.currentUser),z()&&await V(),p({url:A.active_channel.channel_url,status:"open"})},[i,z,V,N]),onErrorAuth:c.useCallback(A=>{N.initialRender.onAuthError(A),_(A)},[N]),onAuthTokenRefreshed:c.useCallback(A=>{T(R=>R?{...R,authToken:A}:null)},[]),onPostDeauth:c.useCallback(()=>{m.template.clear(),m.messenger.clear(y==null?void 0:y.userId),N.initialRender.clear(),C(null),p(void 0),T(null),w(null),$(null)},[m.template.clear,m.messenger.clear,y,N])}),Be=c.useCallback(async()=>{var A;if(y){f.debug("agentMessengerSession.refreshActiveChannel: try to refresh active channel"),p(void 0);const R=await j({aiAgentId:a,userId:y.userId,language:l,country:u,context:d,forceCreateChannel:t,knownActiveChannelUrl:(A=m.messenger.getSettings(y.userId))==null?void 0:A.active_channel.channel_url});return m.messenger.setSettings(y.userId,R),p({url:R.active_channel.channel_url,status:"open"}),f.info("agentMessengerSession.refreshActiveChannel: refreshed active channel",R.active_channel.channel_url),R.active_channel.channel_url}else throw f.error("agentMessengerSession.refreshActiveChannel: userSession is not ready"),new Error("userSession is not ready")},[j,s,a,y==null?void 0:y.userId,l,u,d,t,m.messenger.getSettings,m.messenger.setSettings]),qe=c.useCallback(async A=>{if(!(y!=null&&y.userId))throw new Error("Current user is not authenticated. Please authenticate first.");const R=await j({...A,userId:y.userId,knownActiveChannelUrl:void 0}),P=R.active_channel.channel_url;return m.messenger.setSettings(y.userId,R),P},[y==null?void 0:y.userId,j]),M=c.useCallback(async A=>{if(!i.currentUser)throw new Error("Current user is not authenticated. Please authenticate first.");if(Object.entries(A.context).length===0)return[];const R=i.aiAgent.createConversationListQuery({aiAgentId:A.aiAgentId,status:se.ConversationStatus.OPEN,limit:100}),P=[];for(;R.hasNext;){const X=await R.next();for(const J of X)la(J.context??{},A.context)&&P.push(J.channelInfo.url)}return P},[i]),[ce]=c.useState(()=>Tr(A=>{var R;f.info("agentMessengerSession.channelChanged: channel.conversation",A.conversation),p({url:A.url,status:ue(A)?"closed":"open",conversationStatus:(R=A.conversation)==null?void 0:R.status})},250,{trailing:!1,leading:!0}));return ve.useGroupChannelHandler(i,{onChannelChanged:A=>{A.isGroupChannel()&&A.url===(b==null?void 0:b.url)&&ce(A)}}),c.useEffect(()=>()=>{ce.cancel()},[ce]),c.useImperativeHandle(r,()=>{const A=async()=>{if(!b)throw new Error("No active conversation. Please start a conversation first.");return await i.groupChannel.getChannel(b.url)};return{activeChannel:b,chatSDK:i,authenticate:ae,deauthenticate:ie,updateContext:async(...R)=>{const P=Vn(...R);if(P.type==="active"){const Z=await(await A()).updateContext(a,P.context);return je(Z)}const X=await i.aiAgent.updateContext(P.aiAgentId,P.channelUrl,P.context);return je(X)},patchContext:async(...R)=>{const P=Vn(...R);if(P.type==="active"){const Z=await(await A()).patchContext(a,P.context);return je(Z)}const X=await i.aiAgent.patchContext(P.aiAgentId,P.channelUrl,P.context);return je(X)},getContextObject:async()=>{const P=await(await A()).getContextObject(a);return je(P)}}},[ae,ie,b,i,a,f]),o.createElement(aa,{value:{sdkUser:x,userSessionInfo:e,userSession:y,activeChannel:b,setActiveChannel:p,refreshActiveChannel:Be,createConversation:qe,searchConversation:M,connectionError:v,aiAgentInfo:I,launcherInfo:S,authenticate:ae,deauthenticate:ie,createAttachmentRules:O,statsTrackers:N}},n)}),la=(e,t)=>Object.entries(t).every(([n,r])=>e[n]===r),En=(e,t)=>{const n=c.useId(),r=c.useRef(t);c.useLayoutEffect(()=>{r.current=t}),c.useEffect(()=>{const s=new K.ConnectionHandler({onDisconnected:a=>{var i,l;return(l=(i=r.current).onDisconnected)==null?void 0:l.call(i,a)},onConnected:a=>{var i,l;return(l=(i=r.current).onConnected)==null?void 0:l.call(i,a)},onReconnectStarted:()=>{var a,i;return(i=(a=r.current).onReconnectStarted)==null?void 0:i.call(a)},onReconnectSucceeded:()=>{var a,i;return(i=(a=r.current).onReconnectSucceeded)==null?void 0:i.call(a)},onReconnectFailed:()=>{var a,i;return(i=(a=r.current).onReconnectFailed)==null?void 0:i.call(a)},onConnectionLost:()=>{var a,i;return(i=(a=r.current).onConnectionLost)==null?void 0:i.call(a)},onConnectionDelayed:a=>{var i,l;return(l=(i=r.current).onConnectionDelayed)==null?void 0:l.call(i,a)}});return e.addConnectionHandler(n,s),()=>{e.removeConnectionHandler(n)}},[e,n])};function ca(e){const{chatSDK:t,logger:n,aiAgentId:r}=te(),{sdkUser:s,activeChannel:a,setActiveChannel:i,statsTrackers:l}=tt(),u=ve.useForceUpdate(),[d,m]=c.useState(void 0),[f,E]=c.useState(void 0),[v,_]=c.useState(!1);function b(x){if(x.isAIAgent&&!x.conversation){_(!0);const C=x.initConversation({aiAgentId:r});C.catch(y=>n.warn("useChannel.initConversation: initialization failed",y)),C.finally(()=>_(!1))}}async function p(){var x,C;if(!s){n.debug("useChannel.getChannel: no sdk user, skip fetching channel");return}if(n.debug("useChannel.getChannel: start"),m(void 0),E(void 0),_(!1),e){l.initialRender.onGetChannelStart();try{n.debug("useChannel.getChannel: get channel",e);const y=await t.groupChannel.getChannel(e);b(y),m(y),l.initialRender.onGetChannelComplete((x=y.conversation)==null?void 0:x.id),y.url===(a==null?void 0:a.url)&&i({url:y.url,status:ue(y)?"closed":"open",conversationStatus:(C=y.conversation)==null?void 0:C.status}),n.debug("useChannel.getChannel: fetched channel",y)}catch(y){l.initialRender.onGetChannelError(y),y instanceof K.SendbirdError&&E(y),n.error("useChannel.getChannel: error",y)}}}return c.useEffect(()=>{p()},[t,s,e,r]),En(t,{async onReconnectSucceeded(){var C;if(!d)return;const x=await d.refresh();b(x),m(x),x.url===(a==null?void 0:a.url)&&i({url:x.url,status:ue(x)?"closed":"open",conversationStatus:(C=x.conversation)==null?void 0:C.status})}}),ve.useGroupChannelHandler(t,{onChannelChanged:x=>{x.isGroupChannel()&&x.url===e&&(n.debug("useChannel.onChannelChanged: channel changed",x.url),m(x),u())}}),{channel:d,channelFetchError:f,getChannel:p,isInitializingConversation:v}}const ua=e=>{const t=e==null?void 0:e.lastMessage,n=t==null?void 0:t.extendedMessagePayload;return n==null?void 0:n.user_input_disabled_by},da=e=>{var i;const t=e==null?void 0:e.lastMessage;if(!t||!e)return!1;const n=t.extendedMessagePayload,r=n==null?void 0:n.form,s=!!r&&!r.submitted_at&&!r.canceled_at,a=e.isAIAgent&&!!((i=e.conversation)!=null&&i.handedOverAt);return s&&!a},ma=()=>{const{chatSDK:e,networkStateAdapter:t}=te(),[n,r]=c.useState(()=>t?t.isOnline()?"connected":"reconnecting":"connected");return En(e,{onConnected:()=>r("connected"),onDisconnected:()=>r("disconnected"),onReconnectStarted:()=>r("reconnecting"),onReconnectSucceeded:()=>r("connected"),onReconnectFailed:()=>r("disconnected"),onConnectionLost:()=>r("reconnecting")}),c.useEffect(()=>{if(t)return t.subscribe(s=>{if(!s){r("reconnecting");return}r(a=>a==="reconnecting"&&e.connectionState===K.ConnectionState.OPEN?"connected":a)})},[t,e]),n},ga=3e4,ha=({shouldApply:e,lastMessage:t,isBlockedWhileAIResponding:n,currentUserId:r})=>{const[s,a]=c.useState(!1),i=c.useRef(null),l=t&&Qe(t,r)?t.createdAt:0;return c.useEffect(()=>{const u=()=>{i.current&&(clearTimeout(i.current),i.current=null),a(!1)},d=E=>{i.current&&clearTimeout(i.current),a(!0),i.current=setTimeout(()=>{a(!1),i.current=null},E)},m=Date.now()-l,f=ga-m;return n||f<=0?u():d(f),()=>{i.current&&clearTimeout(i.current)}},[n,l]),s&&e},Or=e=>{const{chatSDK:t}=te(),[n,r]=c.useState([]);return ve.useGroupChannelHandler(t,{onTypingStatusUpdated(s){if(s.url===(e==null?void 0:e.url)){const a=s.getTypingUsers();r(a)}}}),n},pa=({channel:e,lastMessage:t,aiAgentUserId:n,isStreamAnimating:r})=>{const[s,a]=c.useState(!1),i=Or(e);return c.useEffect(()=>{if(!t)return;const l=i.some(d=>d.userId===n),u=Qe(t,n)&&(ke.isStreaming(t)||r);a(u||l)},[i,t,n,r]),s},fa=({channel:e,messages:t,isStreamAnimating:n,isInitializingConversation:r})=>{const{aiAgentInfo:s,userSession:a}=tt(),i=ma(),l=pa({channel:e,lastMessage:On(t,[Ie.SendingStatus.SUCCEEDED]),aiAgentUserId:(s==null?void 0:s.userId)??"",isStreamAnimating:n}),u=ha({shouldApply:!!(e!=null&&e.isAIAgent)&&!Ve(e),isBlockedWhileAIResponding:l,lastMessage:On(t,[Ie.SendingStatus.PENDING,Ie.SendingStatus.SUCCEEDED]),currentUserId:(a==null?void 0:a.userId)??""});if(!e||i==="disconnected")return{disabled:!0,disabledBy:"unavailable"};if(i==="reconnecting")return{disabled:!0,disabledBy:"reconnecting"};if(ue(e))return{disabled:!0,disabledBy:"conversation_closed"};if(da(e))return{disabled:!0,disabledBy:"form_active"};const d=ua(e);return d?{disabled:!0,disabledBy:d}:l||u||r?{disabled:!0,disabledBy:"ai_responding"}:{disabled:!1,disabledBy:""}},Ea=()=>{const[e,t]=c.useState(new Set),n=c.useCallback(s=>{t(a=>{if(a.has(s))return a;const i=new Set(a);return i.add(s),i})},[]),r=c.useCallback(s=>{t(a=>{if(!a.has(s))return a;const i=new Set(a);return i.delete(s),i})},[]);return{isAnimating:e.size>0,start:n,stop:r}},{Provider:ba}=ee("AIAgentConversation");function xa({children:e,channelUrl:t,onChannelDeleted:n,onMessagesReceived:r,onMessagesUpdated:s,onConversationClosedStatusChanged:a,onConversationClosedViaDispatcher:i,onBeforeSendMessage:l,onAfterSendMessage:u=ye,shouldMarkAsRead:d=!0,shouldCountNewMessages:m=()=>!1,sortComparator:f}){var D;const E=()=>d&&(p==null?void 0:p.markAsRead()),{chatSDK:v,logger:_,dispatcher:b}=te(),{channel:p,channelFetchError:x,getChannel:C,isInitializingConversation:y}=ca(t),{statsTrackers:T}=tt();c.useEffect(()=>{if(t)return T.initialRender.setChannelUrl(t),()=>{T.initialRender.cleanup()}},[t,T]);const I=Ns(v,p,{replyType:Ie.ReplyType.ONLY_REPLY_TO_CHANNEL,shouldCountNewMessages:m,onChannelDeleted:n,onMessagesReceived:O=>r==null?void 0:r(O),onMessagesUpdated:O=>s==null?void 0:s(O),onCacheResult:O=>T.initialRender.onCacheResult(O),onApiResult:O=>T.initialRender.onApiResult(O),logger:_,markAsRead:E,sortComparator:f}),w=Ea(),S=fa({channel:p,messages:I.messages,isStreamAnimating:w.isAnimating,isInitializingConversation:y});c.useEffect(()=>{E()},[d]);const $=ue(p);c.useEffect(()=>{a==null||a($)},[$,a]),c.useEffect(()=>{const O=async z=>{const V=typeof(z==null?void 0:z.channelUrl)=="string";p&&V&&z.channelUrl!==p.url||(_.debug("conversation.dispatcher: try to close conversation",p),p!=null&&p.conversation&&p.conversation.status===se.ConversationStatus.OPEN&&(await p.closeConversation(),i==null||i()))};return b.subscribe(Ze.ConversationClose,O),()=>{b.unsubscribe(Ze.ConversationClose,O)}},[b,(D=p==null?void 0:p.conversation)==null?void 0:D.status,i]);const N={conversation:(p==null?void 0:p.conversation)??void 0,channelSource:{channel:p,error:x,refetch:()=>C(),closeConversation:async()=>{ue(p)||await(p==null?void 0:p.closeConversation())}},messageSource:{messages:I.messages,newMessages:I.newMessages,initialized:I.initialized,loadPrevious:()=>I.loadPrevious(),loadNext:()=>I.loadNext(),deleteMessage:O=>I.deleteMessage(O),resendMessage:O=>I.resendMessage(O),resetNewMessages:()=>I.resetNewMessages(),sendUserMessage:async O=>{var V;if(((V=p==null?void 0:p.conversation)==null?void 0:V.status)===se.ConversationStatus.CLOSED)throw new Error("Conversation is closed");l&&(O=await l(O));const z=await I.sendUserMessage(O,u);return u==null||u(z),z},sendFileMessage:async O=>{var V;if(((V=p==null?void 0:p.conversation)==null?void 0:V.status)===se.ConversationStatus.CLOSED)throw new Error("Conversation is closed");l&&(O=await l(O));const z=await I.sendFileMessage(O,u);return u==null||u(z),z},sendMultipleFilesMessage:async O=>{var V;if(((V=p==null?void 0:p.conversation)==null?void 0:V.status)===se.ConversationStatus.CLOSED)throw new Error("Conversation is closed");l&&(O=await l(O));const z=await I.sendMultipleFilesMessage(O,u);return u==null||u(z),z}},state:{streamAnimation:w,input:S}};return o.createElement(ba,{value:N},e)}function Ca(e,t){var v,_,b,p,x,C,y,T,I,w;const[n,r]=c.useState(!1),[s,a]=c.useState(null),[i,l]=c.useState([]),[u,d]=c.useState(null),m=c.useRef(!1),f=c.useCallback(async()=>{if(!m.current&&e.currentUser){m.current=!0,r(!1),a(null),l([]);try{u==null||u.dispose();const S=new ss(e,t);S.setConversationListCollectionHandler({onChannelsAdded:()=>{l(S.channels)},onChannelsUpdated:()=>{l(S.channels)},onChannelsDeleted:()=>{l(S.channels)}}),await S.loadMore(),d(S),a(null)}catch(S){d(null),a(S)}finally{r(!0),m.current=!1}}},[e,e.currentUser,(v=t.filter)==null?void 0:v.aiAgentChannelFilter,(b=(_=t.filter)==null?void 0:_.aiAgentConversationStatusFilter)==null?void 0:b.join(),(x=(p=t.filter)==null?void 0:p.aiAgentIds)==null?void 0:x.join(),(C=t.filter)==null?void 0:C.deskChannelFilter,(T=(y=t.filter)==null?void 0:y.pinnedChannelUrls)==null?void 0:T.join(),(I=t.filter)==null?void 0:I.copilotConversationOnly,(w=t.filter)==null?void 0:w.copilotSupportChannelUrl,t.limit]),E=c.useCallback(async()=>{if(u)try{await u.loadMore()}catch(S){a(S)}},[u]);return En(e,{onConnected:()=>f()}),c.useEffect(()=>{f()},[f]),c.useEffect(()=>()=>{m.current=!1,u==null||u.dispose()},[u]),{initialized:n,error:s,channels:i,loadMore:E}}const{Provider:_a}=ee("AIAgentConversationList");function va({conversationListLimit:e,conversationListFilter:t,children:n}){var f,E;const{chatSDK:r,aiAgentId:s,queryParams:a}=te(),i={aiAgentIds:[s],aiAgentConversationStatusFilter:[se.ConversationStatus.CLOSED,se.ConversationStatus.OPEN]},l=e??((f=a==null?void 0:a.conversationListParams)==null?void 0:f.limit),u={...i,...(E=a==null?void 0:a.conversationListParams)==null?void 0:E.filter,...t},d=Ca(r,{limit:l,filter:u}),m={listSource:{initialized:d.initialized,error:d.error??void 0,channels:d.channels,loadMore:()=>d.loadMore()}};return o.createElement(_a,{value:m},n)}function ya(e){let t="pending",n=e.then(r=>{t="resolved",n=r}).catch(r=>{t="rejected",n=r});return{get value(){if(t==="resolved")return n;throw n}}}const{Provider:Sa,useContext:Rr}=ee("MessageTemplateFetching");function Ta({children:e,internalVariables:t}){const n=c.useRef({}),r=c.useRef({}),[s,a]=c.useState({}),i=c.useCallback((d,m)=>{a(f=>({...f,[d]:{fetching:!1,error:!1,...f[d],...m}}))},[]),l=c.useCallback(async({onRequestTemplate:d,onGetCachedTemplate:m,templateKey:f,suspense:E=!1})=>{const v=m(f);if(v)return v;const _=r.current[f];if(_)return _;E||i(f,{fetching:!0});const b=d(f).catch(p=>{throw E||i(f,{error:!0}),p}).finally(()=>{E||i(f,{fetching:!1}),delete r.current[f]});return r.current[f]=b,b},[i]),u={internalVariables:t,fetchTemplate:l,suspend:(d,m)=>{if(n.current[d])return n.current[d];const f=ya(m());return n.current[d]=f,f},getIsFetching:d=>{var m;return((m=s[d])==null?void 0:m.fetching)??!1},getHasError:d=>{var m;return((m=s[d])==null?void 0:m.error)??!1}};return o.createElement(Sa,{value:u},e)}const It={VARIABLE:e=>new RegExp(`\\{${e}\\}`,"g"),VIEW_VARIABLE:e=>new RegExp(`"{@${e}}"`,"g")};function $e({uiTemplateString:e,variables:t={}}){const n=Ss(t);return pn({template:e,variables:n,variableKeyPattern:r=>It.VARIABLE(r)})}function Le({theme:e,uiTemplateString:t,colorVariables:n={}}){return pn({template:t,variables:n,variableKeyPattern:r=>It.VARIABLE(r),variableValueTransformer:r=>ys(e,r)})}function Aa({theme:e,uiTemplateString:t,viewVariables:n={},aiAgentColorVariables:r,internalVariables:s,onRequestTemplate:a}){const l=Object.values(n).flat().map(d=>d.key);return[...new Set(l)].some(d=>!a(d))?null:pn({template:t,variables:n,variableKeyPattern:d=>It.VIEW_VARIABLE(d),variableValueTransformer:d=>{const m=d.map(({key:f,variables:E})=>{const v=a(f),{ui_template:_,color_variables:b}=et(v);let p=JSON.stringify(_);return p=$e({uiTemplateString:p,variables:s}),p=Le({theme:e,uiTemplateString:p,colorVariables:b}),p=Le({theme:e,uiTemplateString:p,colorVariables:r}),p=$e({uiTemplateString:p,variables:E}),wt(p)});return JSON.stringify(m)}})}async function wa({theme:e,uiTemplateString:t,viewVariables:n={},aiAgentColorVariables:r,internalVariables:s,onRequestTemplate:a}){return Ts({template:t,variables:n,variableKeyPattern:i=>It.VIEW_VARIABLE(i),variableValueTransformer:async i=>{const l=i.map(async({key:d,variables:m})=>{const f=await a(d),{ui_template:E,color_variables:v}=et(f);let _=JSON.stringify(E);return _=$e({uiTemplateString:_,variables:s}),_=Le({theme:e,uiTemplateString:_,colorVariables:v}),_=Le({theme:e,uiTemplateString:_,colorVariables:r}),_=$e({uiTemplateString:_,variables:m}),wt(_)}),u=await Promise.all(l);return JSON.stringify(u)}})}const Ia=({rawTemplate:e,aiAgentColorVariables:t,internalVariables:n,...r})=>{const{ui_template:s,color_variables:a}=et(e);let i=JSON.stringify(s);if(Object.keys(r.viewVariables??{}).length>0){const u=Aa({...r,uiTemplateString:i,aiAgentColorVariables:t,internalVariables:n});if(u===null)return null;i=u}return i=$e({...r,uiTemplateString:i,variables:n}),i=Le({...r,uiTemplateString:i,colorVariables:a}),i=Le({...r,uiTemplateString:i,colorVariables:t}),i=$e({...r,uiTemplateString:i}),wt(i)},ka=async({rawTemplate:e,aiAgentColorVariables:t,internalVariables:n,...r})=>{const{ui_template:s,color_variables:a}=et(e);let i=JSON.stringify(s);return Object.keys(r.viewVariables??{}).length>0&&(i=await wa({...r,uiTemplateString:i,aiAgentColorVariables:t,internalVariables:n})),i=$e({...r,uiTemplateString:i,variables:n}),i=Le({...r,uiTemplateString:i,colorVariables:a}),i=Le({...r,uiTemplateString:i,colorVariables:t}),i=$e({...r,uiTemplateString:i}),wt(i)},Ma=e=>{const{aiAgentColorVariables:t={}}=e,{internalVariables:n}=Rr();return c.useState(()=>{const r=e.onGetCachedTemplate(e.templateKey);return r?Ia({...e,rawTemplate:r,aiAgentColorVariables:t,internalVariables:n,onRequestTemplate:e.onGetCachedTemplate}):null})},$a=e=>{const[t]=Ma(e);if(t)return t;const{aiAgentColorVariables:n={}}=e,{internalVariables:r,fetchTemplate:s,suspend:a}=Rr();return a(e.templateKey,async()=>{const l=await s({...e,suspense:!0});return await ka({...e,rawTemplate:l,aiAgentColorVariables:n,internalVariables:r})}).value},La="remove_powered_by",bn=(e,t)=>{var s,a;const{chatSDK:n}=te(),{aiAgentInfo:r}=tt();if(e==="handoff-button"){const i=!!((s=t==null?void 0:t.conversation)!=null&&s.handoff);return!!(t!=null&&t.isAIAgent)&&!!(r!=null&&r.showHandoffButton)&&i&&hn(t)}if(e==="special-notice")return!!(t!=null&&t.isAIAgent)&&!!(r!=null&&r.specialNoticeEnabled)&&!!(r!=null&&r.specialNotice);if(e==="powered-by"){const i=(a=n==null?void 0:n.appInfo)==null?void 0:a.applicationAttributes;return c.useMemo(()=>!(Array.isArray(i)&&i.includes(La)),[i])}throw new Error("Unsupported feature")},Oa={required:"This question is required",minLength:e=>`Minimum ${e} characters required`,maxLength:e=>`Maximum ${e} characters allowed`,min:e=>`Minimum value is ${e}`,max:e=>`Maximum value is ${e}`,minSelect:e=>`Select at least ${e} options`,maxSelect:e=>`Select at most ${e} options`,regex:"Invalid format",invalidSelection:"Invalid selection"},Ra={getValueOrDefault:e=>e.value??e.default_value??null,validate:(e,t,n)=>{const r=t;if(e.required&&(!r||r.trim()===""))return{isValid:!1,error:n.required};if(!r)return{isValid:!0};const{rules:s}=e;if(s){if(s.min_length!==void 0&&r.length<s.min_length)return{isValid:!1,error:typeof n.minLength=="function"?n.minLength(s.min_length):n.minLength};if(s.max_length!==void 0&&r.length>s.max_length)return{isValid:!1,error:typeof n.maxLength=="function"?n.maxLength(s.max_length):n.maxLength};if(s.regex&&!new RegExp(s.regex).test(r))return{isValid:!1,error:n.regex}}return{isValid:!0}}},Da={getValueOrDefault:e=>e.value??e.default_value??null,validate:(e,t,n)=>{const r=t;if(e.required&&r===null)return{isValid:!1,error:n.required};if(r===null)return{isValid:!0};const{rules:s}=e;if(s){if(s.min!==void 0&&r<s.min)return{isValid:!1,error:typeof n.min=="function"?n.min(s.min):n.min};if(s.max!==void 0&&r>s.max)return{isValid:!1,error:typeof n.max=="function"?n.max(s.max):n.max}}return{isValid:!0}}},Na={getValueOrDefault:e=>e.value??e.default_value??null,validate:(e,t,n)=>{const r=t;return e.required&&!r?{isValid:!1,error:n.required}:r&&!e.options.includes(r)?{isValid:!1,error:n.invalidSelection}:{isValid:!0}}},Pa={getValueOrDefault:e=>e.values??e.default_values??null,validate:(e,t,n)=>{const r=t;if(e.required&&(!r||r.length===0))return{isValid:!1,error:n.required};if(!r||r.length===0)return{isValid:!0};if(r.filter(i=>!e.options.includes(i)).length>0)return{isValid:!1,error:n.invalidSelection};const{rules:a}=e;if(a){if(a.min_select!==void 0&&r.length<a.min_select)return{isValid:!1,error:typeof n.minSelect=="function"?n.minSelect(a.min_select):n.minSelect};if(a.max_select!==void 0&&r.length>a.max_select)return{isValid:!1,error:typeof n.maxSelect=="function"?n.maxSelect(a.max_select):n.maxSelect}}return{isValid:!0}}},Fa={text:Ra,number:Da,"single-select":Na,"multi-select":Pa},Ba={getValueOrDefault:()=>null,validate:()=>({isValid:!1})};function Dr(e){return Fa[e.type]||Ba}function Gn(e){return Dr(e).getValueOrDefault(e)}function Ua(e,t,n={}){const r={...Oa,...n};return Dr(e).validate(e,t,r)}const Ha=(e,t={})=>{const{labels:n={},onSubmit:r,onCancel:s}=t,[a,i]=c.useState({}),[l,u]=c.useState(()=>{const b={};return e.fields.forEach(p=>{b[p.key]=Gn(p)}),b}),d=c.useMemo(()=>e.submitted_at?"submitted":e.canceled_at?"canceled":"draft",[e.submitted_at,e.canceled_at]);c.useEffect(()=>{if(d==="submitted"||d==="canceled"){const b={};let p=!1;e.fields.forEach(x=>{const C=Gn(x);JSON.stringify(l[x.key])!==JSON.stringify(C)&&(p=!0),b[x.key]=C}),p&&u(b)}},[d]);const m=(b,p)=>{u(x=>({...x,[b]:p})),i(x=>({...x,[b]:void 0}))},f=e.fields.map(b=>{var C,y,T;const p=l[b.key]??null,x={key:b.key,label:b.label,error:a[b.key],required:b.required};return b.type==="text"?{...x,type:"text",layout:b.layout,value:p,...b.placeholder&&{placeholder:b.placeholder},...((C=b.rules)==null?void 0:C.max_length)&&{maxLength:b.rules.max_length}}:b.type==="number"?{...x,type:"number",layout:b.layout,value:p,...b.placeholder&&{placeholder:b.placeholder},...((y=b.rules)==null?void 0:y.max)&&{max:b.rules.max}}:b.type==="single-select"?{...x,type:"single-select",layout:b.layout,value:p,options:b.options}:b.type==="multi-select"?{...x,type:"multi-select",layout:b.layout,value:p,options:b.options,...((T=b.rules)==null?void 0:T.max_select)&&{maxSelect:b.rules.max_select}}:{...x,type:"unknown",layout:"default",value:null}});return{state:d,fields:f,getField:b=>f.find(p=>p.key===b),updateFieldValue:m,submit:async()=>{const b={};let p=!1;for(const x of e.fields){const C=l[x.key]??null,y=Ua(x,C,n);y.isValid||(b[x.key]=y.error,p=!0)}if(i(b),!p&&r){const x={};e.fields.forEach(C=>{x[C.key]=l[C.key]??null}),await r(x)}},cancel:async()=>{await(s==null?void 0:s())}}},za=e=>{const{aiAgentInfo:t}=tt(),r=Or(e)[0];if(!r)return null;const s=r.userId===(t==null?void 0:t.userId);return{user:s?t:r,isBot:s}},Nr=({channel:e,userSession:t,aiAgentInfo:n})=>{if(!t||!n||!e)return{fallbackIcon:"delight",url:void 0,title:""};const r=(()=>{const[a]=e.members.filter(i=>i.userId!==t.userId);return a})(),s={ai(a){return{fallbackIcon:a,url:n.profileUrl,title:n.nickname}},human(a){return{fallbackIcon:a,url:r==null?void 0:r.profileUrl,title:(r==null?void 0:r.nickname)||n.nickname}},channel(a){return{fallbackIcon:a,url:e==null?void 0:e.coverUrl,title:(e==null?void 0:e.name)??""}}};return e.isAIAgent?Ve(e)?s.human("agent"):s.ai("delight"):e.isDesk?s.human("agent"):s.channel("user")},Wn=e=>c.useReducer((t,n)=>({...t,...n}),e);var he=(e=>(e.AI_AGENT_CSAT_5="AI_AGENT_CSAT_5",e.AI_AGENT_CSAT_5_WITH_CRE="AI_AGENT_CSAT_5_WITH_CRE",e.HELPDESK_CSAT_5="HELPDESK_CSAT_5",e))(he||{});const Va=new Set(["free_text","single_choice"]),Ga=({csatPayload:e,type:t,initialCsat:n,initialCsatReason:r,initialIsResolved:s})=>{const[a,i]=Wn({csatType:t,csat:n,csatReason:r,isResolved:s}),[l,u]=Wn({followUpItem:!1}),d=c.useMemo(()=>{var p;const v=a.csat,_=typeof v=="number",b=(p=e.follow_up)==null?void 0:p.find(x=>_?x.scores.includes(v):x.always_visible??!1);if(Va.has(b==null?void 0:b.response_type))return b},[a.csat,e.follow_up]),m=(()=>{var v;if(typeof n=="number")return"submitted";if((t===he.AI_AGENT_CSAT_5||t===he.HELPDESK_CSAT_5)&&typeof a.csat=="number")return"submittable";if(t===he.AI_AGENT_CSAT_5_WITH_CRE){const _=typeof a.csat=="number",b=!((v=e.cre)!=null&&v.required)||typeof a.isResolved=="boolean";if(_&&b)return"submittable"}return"unsubmittable"})(),f=c.useCallback(()=>typeof a.csat>"u"?!1:d!=null&&d.required&&!a.csatReason?(u({followUpItem:!0}),!1):!0,[a,d,u]);return c.useEffect(()=>{r||(i({csatReason:""}),u({followUpItem:!1}))},[r,d,i,u]),{params:a,setParams:i,error:l,setError:u,followUpItem:d,state:m,validateParams:f,itemProps:{csatPayload:e,state:m,submitted:m==="submitted"}}},zt=5,Wa=250,qa=50,qn=e=>Math.max(0,e-qa),ja=e=>e<1e3?{speed:zt*.5,chunkSize:2}:e<2e3?{speed:zt*.8,chunkSize:2}:{speed:zt*.6,chunkSize:3},Ka=e=>{const{text:t,enabled:n=!1,onAnimationStart:r,onAnimationProgress:s,onAnimationComplete:a}=e,[i,l]=c.useState(()=>qn(t.length)),u=c.useRef(null),d=c.useRef({startTime:0,lastUpdate:0,lastProgressCall:0}).current,m=c.useRef({onStart:r,onProgress:s,onComplete:a}).current,f=c.useRef({startCalled:!1,completeCalled:!1}).current,E=c.useRef({initialEnabled:n,textLength:t.length,enabled:n}).current,v=n,_=i<t.length,b=E.initialEnabled&&(v||_);return c.useLayoutEffect(()=>{m.onStart=r,m.onProgress=s,m.onComplete=a,E.textLength=t.length,E.enabled=n}),c.useLayoutEffect(()=>{var p;E.initialEnabled&&(f.startCalled||(f.startCalled=!0,(p=m.onStart)==null||p.call(m)),l(x=>t.length<x?t.length:x))},[t]),c.useEffect(()=>{if(!E.initialEnabled)return;let p=qn(t.length);d.lastUpdate=0,d.startTime=0,d.lastProgressCall=0;const x=C=>{var D;d.lastUpdate===0&&(d.lastUpdate=C,d.startTime=C,d.lastProgressCall=C);const y=E.textLength,T=C-d.lastUpdate,I=C-d.startTime,{speed:w,chunkSize:S}=ja(I),$=w*S;T>=$&&p<y&&(p=Math.min(p+S,y),l(p),d.lastUpdate=C),C-d.lastProgressCall>=Wa&&(d.lastProgressCall=C,(D=m.onProgress)==null||D.call(m)),(p<y||E.enabled)&&(u.current=requestAnimationFrame(x))};return u.current=requestAnimationFrame(x),()=>{u.current&&cancelAnimationFrame(u.current)}},[]),c.useEffect(()=>{var y;const p=E.initialEnabled&&f.startCalled,x=!n,C=i>=t.length&&t.length>0;p&&x&&C&&!f.completeCalled&&(f.completeCalled=!0,(y=m.onComplete)==null||y.call(m))},[n,i,t.length]),{streamText:E.initialEnabled?t.slice(0,i):t,isAnimating:b}},Ya="1.19.1",le="sb-agent",de={ENTRY:`${le}-entry`,MODAL_ROOT:`${le}-modal-root`,WINDOW:`${le}-window`,LAUNCHER:`${le}-launcher`},mt=2147483647,Pe={MODAL:mt-1,TOOLTIP:mt-2,WINDOW:mt-3,LAUNCHER:mt-4},Pr=36,Xa=100,Fr=Ya,xn="noopener noreferrer nofollow";function Br(){return{isOnline:()=>navigator.onLine,subscribe:e=>{const t=()=>e(!0),n=()=>e(!1);return window.addEventListener("online",t),window.addEventListener("offline",n),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",n)}}}}const gt={};function Ur(){return{get:e=>{try{return localStorage.getItem(e)}catch{return gt[e]??null}},set:(e,t)=>{try{localStorage.setItem(e,t)}catch{gt[e]=t}},delete:e=>{try{localStorage.removeItem(e)}catch{delete gt[e]}},getKeys:e=>{try{const t=[];for(let n=0;n<localStorage.length;n++){const r=localStorage.key(n);r&&r.startsWith(e)&&t.push(r)}return t}catch{return Object.keys(gt).filter(t=>t.startsWith(e))}}}}const Za='@import"https://fonts.googleapis.com/css?family=Roboto:400,500,600,700&display=swap";.sb-message-template__border{position:relative}.sb-message-template__border:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;box-shadow:inset 0 0 0 var(--border-width) var(--border-color);border-radius:var(--border-radius);pointer-events:none}.sb-message-template__action{cursor:pointer}.sb-message-template__parent{font-family:Roboto,serif}.sb-message-template__text{font-family:inherit;font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;letter-spacing:normal;text-align:left}.sb-message-template__text-button{font-family:inherit;background-color:#e0e0e0;text-align:center;padding:10px;border-radius:6px;font-size:14px;font-weight:600;font-stretch:normal;font-style:normal;letter-spacing:normal}.sendbird-theme--light .sb-message-template__text-button{color:#742ddd}.sendbird-theme--dark .sb-message-template__text-button{color:#c2a9fa}.sb-message-template__text-button:hover{opacity:1;box-shadow:#0000001a 0 1px 3px,#0000000f 0 1px 2px}.sb-message-template__text-button,.sb-message-template__image-button{cursor:pointer;border-style:none}.sb-message-template__parent{border-radius:unset;background-color:transparent;overflow:hidden}.sb-message-template__parent *{box-sizing:border-box;line-height:1.3}.sb-message-template__carousel{display:flex;width:100%;box-sizing:border-box;touch-action:pan-y}',Ja={conversation:{input_placeholder:"Ask a question",input_placeholder_disabled:"Chat is unavailable in this channel",input_placeholder_wait_ai_agent_response:"Waiting for the agent's reply...",input_placeholder_active_form:"Please fill out the form to move forward.",input_placeholder_reconnecting:"Trying to reconnect. Refresh if persists.",unknown_message_type:"(Unknown message type)",powered_by:"Powered by",citation_title:"Source",start_new_conversation_label:"Start a conversation",scroll_to_new_messages_label:()=>"New message",failed_message_resend:"Retry",failed_message_remove:"Remove",file_upload_no_supported_files:"No supported file types available.",a11y_message_list:"Chat messages",a11y_scroll_to_bottom:"Scroll to bottom",a11y_scroll_to_new_messages:"Scroll to new messages",a11y_open_conversation_list:"Open conversation list"},conversation_list:{header_title:"Conversations",ended:"Ended",footer_title:"Start a conversation",multiple_files_count:e=>`${e} ${e===1?"file":"files"}`},date_format:{just_now:"Just now",minutes_ago:e=>`${e} minutes ago`,hours_ago:e=>`${e} hours ago`,date_short:"MM/dd/yyyy",date_separator:"MMMM dd, yyyy",message_timestamp:"p"},csat:{title:"Your feedback matters to us",submitted_label:"Successfully submitted!",cre_question:"Was your issue resolved?",cre_positive_label:"Yes, thank you! 👍",cre_negative_label:"No, that didn't help.",reason_placeholder:"Share your feedback",question:"How would you rate your experience?",submit_label:"Submit",submission_expired:"We're sorry, the survey period has ended."},form:{optional_label:"optional",validation_required:"This question is required"},common:{placeholder_something_went_wrong:"Something went wrong",placeholder_no_messages:"No messages",placeholder_no_conversations:"No conversations yet",placeholder_something_went_wrong_retry_label:"Retry"},feedback:{title:"Submit feedback",good:"Good",bad:"Bad",comment_label:"Comment (optional)",comment_placeholder:"Leave a comment",cancel:"Cancel",submit:"Submit",save:"Save",edit:"Edit feedback",remove:"Remove feedback"}},tn={language:"en",strings:Ja,dateLocale:Ho.enUS},Hr=e=>({MESSAGE_INPUT__PLACE_HOLDER:e.conversation.input_placeholder,MESSAGE_INPUT__PLACE_HOLDER__DISABLED:e.conversation.input_placeholder_disabled,MESSAGE_INPUT__PLACE_HOLDER__WAIT_AI_AGENT_RESPONSE:e.conversation.input_placeholder_wait_ai_agent_response,MESSAGE_INPUT__PLACE_HOLDER__RECONNECTING:e.conversation.input_placeholder_reconnecting,UNKNOWN__UNKNOWN_MESSAGE_TYPE:e.conversation.unknown_message_type,POWERED_BY:e.conversation.powered_by,CSAT_TITLE_UNSUBMITTED:e.csat.title,CSAT_TITLE_SUBMITTED:e.csat.submitted_label,CSAT_CRE_TITLE:e.csat.cre_question,CSAT_CRE_SOLVED:e.csat.cre_positive_label,CSAT_CRE_NOT_SOLVED:e.csat.cre_negative_label,CSAT_REASON_PLACEHOLDER:e.csat.reason_placeholder,CSAT_RATING_TITLE:e.csat.question,CSAT_SUBMIT_LABEL:e.csat.submit_label,CSAT_SUBMISSION_EXPIRED:e.csat.submission_expired,DATE_FORMAT__JUST_NOW:e.date_format.just_now,DATE_FORMAT__MINUTES_AGO:e.date_format.minutes_ago,DATE_FORMAT__HOURS_AGO:e.date_format.hours_ago,DATE_FORMAT__DATE_SHORT:e.date_format.date_short,DATE_FORMAT__MESSAGE_LIST__DATE_SEPARATOR:e.date_format.date_separator,DATE_FORMAT__MESSAGE_TIMESTAMP:e.date_format.message_timestamp,CONVERSATION_LIST__HEADER_TITLE:e.conversation_list.header_title,CONVERSATION_LIST__ENDED:e.conversation_list.ended,CONVERSATION_LIST__NO_CONVERSATIONS:e.common.placeholder_no_conversations,CONVERSATION_LIST__MULTIPLE_FILES_COUNT:e.conversation_list.multiple_files_count,TALK_TO_AGENT:e.conversation.start_new_conversation_label,CITATION_SOURCE_TITLE:e.conversation.citation_title,FORM_PLACEHOLDER:e.conversation.input_placeholder_active_form,FORM_VALIDATION_REQUIRED:e.form.validation_required,OPTIONAL:e.form.optional_label,PLACE_HOLDER__WRONG:e.common.placeholder_something_went_wrong,PLACE_HOLDER__NO_MESSAGES:e.common.placeholder_no_messages,RETRY:e.common.placeholder_something_went_wrong_retry_label,FAILED_MESSAGE_RESEND:e.conversation.failed_message_resend,FAILED_MESSAGE_REMOVE:e.conversation.failed_message_remove,FILE_UPLOAD_NO_SUPPORTED_FILES:e.conversation.file_upload_no_supported_files,FEEDBACK_TITLE:e.feedback.title,FEEDBACK_GOOD:e.feedback.good,FEEDBACK_BAD:e.feedback.bad,FEEDBACK_COMMENT_LABEL:e.feedback.comment_label,FEEDBACK_COMMENT_PLACEHOLDER:e.feedback.comment_placeholder,FEEDBACK_CANCEL:e.feedback.cancel,FEEDBACK_SUBMIT:e.feedback.submit,FEEDBACK_SAVE:e.feedback.save,FEEDBACK_EDIT:e.feedback.edit,FEEDBACK_REMOVE:e.feedback.remove,A11Y_MESSAGE_LIST:e.conversation.a11y_message_list,A11Y_SCROLL_TO_BOTTOM:e.conversation.a11y_scroll_to_bottom,A11Y_SCROLL_TO_NEW_MESSAGES:e.conversation.a11y_scroll_to_new_messages,A11Y_OPEN_CONVERSATION_LIST:e.conversation.a11y_open_conversation_list,SCROLL_TO_NEW_MESSAGES_LABEL:e.conversation.scroll_to_new_messages_label}),Qa=e=>{var t;return((t=e.split("-"))==null?void 0:t[0])??kt},kt="en",ei=new Set([kt,"ko","es","pt","fr","hi","it","de","tr","ja"]),ti=(e,t,n)=>{const r=e[t];return r?typeof r=="function"?r():Promise.resolve(r):new Promise((s,a)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(a.bind(null,new Error("Unknown variable dynamic import: "+t+(t.split("/").length!==n?". Note that variables only represent file names one level deep.":""))))})},jn=Hr(tn.strings),ni={...jn,HEADER_BUTTON__AGENT_HANDOFF:"Connect with an agent",MESSAGE_INPUT__PLACE_HOLDER__SUGGESTED_REPLIES:"Select an option to continue",BUTTON__CANCEL:"Cancel",BUTTON__SUBMIT:"Submit",SUBMITTED:"Submitted",TRY_AGAIN:"Please try again.",FILE_UPLOAD_NOTIFICATION__COUNT_LIMIT:"Up to %d files can be attached.",FILE_UPLOAD_NOTIFICATION__SIZE_LIMIT:"The maximum size per file is %d MB.",FILE_UPLOAD_NOTIFICATION__FILES_EXCLUDED_BY_VALIDATION:"%d files were excluded due to limits. Please select files individually.",FILE_UPLOAD_PHOTOS:"Photos",FILE_UPLOAD_FILES:"Files",FILE_VIEWER__UNSUPPORT:"Unsupported message",IMAGE_VIEWER__DEFAULT_TITLE:"Image",A11Y_IMAGE_VIEWER_CLOSE:"Close image viewer",A11Y_IMAGE_VIEWER_PREVIOUS:"Previous image",A11Y_IMAGE_VIEWER_NEXT:"Next image",A11Y_IMAGE_VIEWER_DOWNLOAD:"Download image",A11Y_ATTACH_FILE:"Attach file",FORM_UNAVAILABLE:"Form is no longer available.",FORM_NOT_SUPPORTED:"This form is not supported in the current version.",FORM_VALIDATION_MIN_LENGTH:e=>`Minimum ${e} characters required`,FORM_VALIDATION_MAX_LENGTH:e=>`Maximum ${e} characters allowed`,FORM_VALIDATION_MIN:e=>`Minimum value is ${e}`,FORM_VALIDATION_MAX:e=>`Maximum value is ${e}`,FORM_VALIDATION_MIN_SELECT:e=>`Select at least ${e} options`,FORM_VALIDATION_MAX_SELECT:e=>`Select at most ${e} options`,FORM_VALIDATION_REGEX_FAILED:"Invalid format",DATE_FORMAT__CONVERSATION_LIST__LIST_ITEM_TITLE:jn.DATE_FORMAT__DATE_SHORT,DATE_FORMAT__CONVERSATION_LIST__LIST_ITEM_TITLE_CAPTION:"h:mma",CONVERSATION_LIST__TOPICS_FALLBACK:"No category",CONVERSATION_CLOSED_FOOTER_LABEL:"Your conversation has ended",START_NEW_CONVERSATION:"💬 Start a new conversation",RETURN_TO_CONVERSATION:"💬 Return to conversation",BUTTON__SAVE:"Save",BUTTON__OK:"OK",NO_NAME:"(No name)",CHANNEL_FROZEN:"Channel frozen"},xt={language:tn.language,dateLocale:tn.dateLocale,stringSet:ni},ri=Object.freeze(Object.defineProperty({__proto__:null,default:xt},Symbol.toStringTag,{value:"Module"})),nn=new Map([[kt,xt]]);async function oi(e){const t=nn.get(e);if(t)return t;try{if(ei.has(e)){const{default:n}=await ti(Object.assign({"./languages/de.ts":()=>Promise.resolve().then(()=>require("./DZS61iww.cjs")),"./languages/en.ts":()=>Promise.resolve().then(()=>ri),"./languages/es.ts":()=>Promise.resolve().then(()=>require("./CXfbOeBS.cjs")),"./languages/fr.ts":()=>Promise.resolve().then(()=>require("./D___JlpJ.cjs")),"./languages/hi.ts":()=>Promise.resolve().then(()=>require("./Ct1aEvl9.cjs")),"./languages/it.ts":()=>Promise.resolve().then(()=>require("./DghGvqtY.cjs")),"./languages/ja.ts":()=>Promise.resolve().then(()=>require("./CNK70fWM.cjs")),"./languages/ko.ts":()=>Promise.resolve().then(()=>require("./DlQtWfBS.cjs")),"./languages/pt.ts":()=>Promise.resolve().then(()=>require("./CQd8GuWE.cjs")),"./languages/tr.ts":()=>Promise.resolve().then(()=>require("./eRuO6jKx.cjs"))}),`./languages/${e}.ts`,3);return nn.set(e,n),n}return xt}catch{return xt}}const{Provider:si,useContext:W}=ee("Localization"),ai=({language:e=navigator.language,logger:t,stringSet:n,children:r})=>{const[s,a]=c.useState(nn.get(kt));return c.useEffect(()=>{const i=Qa(e);s.language!==i&&(t==null||t.debug("localization.useEffect: update language",{from:s.language,to:i}),oi(i).then(a))},[e,t]),o.createElement(si,{value:{language:s.language,stringSet:{...s.stringSet,...n},dateLocale:s.dateLocale,format:(i,l,u)=>De.format(i,l,{locale:s.dateLocale,...u})}},r)},Ct="data-sb-agent-theme",Kn=e=>(t,...n)=>{let r="";return t.forEach((s,a)=>{r+=s+(n[a]??"")}),`[${Ct}='${e}'] & { ${r} }`},B={light:Kn("light"),dark:Kn("dark")},ii=k.css(({theme:e})=>{const{palette:t}=e;return`
|
|
2
2
|
:root,
|
|
3
3
|
:host {
|
|
4
4
|
--sendbird-primary-extra-dark: ${t.primary.extraDark};
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
${B.dark`
|
|
80
80
|
background-color: ${g.color.background500};
|
|
81
81
|
`}
|
|
82
|
-
`,Dl=h.default.img`position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:${({$loaded:e})=>e?1:0};transition:opacity 0.3s ease;`,Nl=({files:e,children:t,onClickMedia:n,onClickMediaFiles:r})=>{const s=a=>{const i=e[a];i&&(r?r({files:e,index:a}):n&&n({url:i.url,type:i.type||"image/*"}))};return o.createElement(Pl,null,o.createElement(Zr,{images:e,onClickImage:s}),t)},Pl=h.default.div`display:flex;flex-direction:column;align-items:flex-start;gap:${H.GAP_GROUPED}px;`,Fl="✱",Qr=e=>{const t=new RegExp(`(\`+)([^\`]+?)\\1|(${Fl}+)`,"g");return e.replace(t,(n,r,s,a)=>r?n:a?`<span id=${bl} aria-label="masked-text">${a}</span>`:n)},Bl=e=>e.replace(/\*\*(.*?)\*\*/g,"<b>$1</b>"),er=e=>{var t;return{files:e.fileInfoList.map(n=>({url:n.url,type:n.mimeType??"",name:n.fileName??""})),metadata:{localFiles:(t=e.messageParams)==null?void 0:t.fileInfoList.map(n=>n.file)}}},Ul=c.lazy(async()=>({default:(await Promise.resolve().then(()=>require("./
|
|
82
|
+
`,Dl=h.default.img`position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:${({$loaded:e})=>e?1:0};transition:opacity 0.3s ease;`,Nl=({files:e,children:t,onClickMedia:n,onClickMediaFiles:r})=>{const s=a=>{const i=e[a];i&&(r?r({files:e,index:a}):n&&n({url:i.url,type:i.type||"image/*"}))};return o.createElement(Pl,null,o.createElement(Zr,{images:e,onClickImage:s}),t)},Pl=h.default.div`display:flex;flex-direction:column;align-items:flex-start;gap:${H.GAP_GROUPED}px;`,Fl="✱",Qr=e=>{const t=new RegExp(`(\`+)([^\`]+?)\\1|(${Fl}+)`,"g");return e.replace(t,(n,r,s,a)=>r?n:a?`<span id=${bl} aria-label="masked-text">${a}</span>`:n)},Bl=e=>e.replace(/\*\*(.*?)\*\*/g,"<b>$1</b>"),er=e=>{var t;return{files:e.fileInfoList.map(n=>({url:n.url,type:n.mimeType??"",name:n.fileName??""})),metadata:{localFiles:(t=e.messageParams)==null?void 0:t.fileInfoList.map(n=>n.file)}}},Ul=c.lazy(async()=>({default:(await Promise.resolve().then(()=>require("./DQCOoJ_z.cjs"))).MarkdownText})),Hl=c.lazy(async()=>({default:(await Promise.resolve().then(()=>require("./DlvEEpWX.cjs"))).CodeBlock}));function zl(e){var s,a;const t=e.maxBodyWidth??H.BODY_MAX_WIDTH,n=c.useMemo(()=>Jo(e.message,Qr),[e.message]),r={id:`${Se}-text-body`,$maxWidth:t,$color:(s=e.customStyle)==null?void 0:s.bubbleContentColor,$bgColor:(a=e.customStyle)==null?void 0:a.bubbleBackgroundColor};return n.length===0?e.children?o.createElement(tr,{...r},e.children):null:o.createElement(tr,{...r},n.map((i,l)=>i.type==="text"?o.createElement(nr,{key:l,variant:"body3"},o.createElement(vt,{fallback:i.value},o.createElement(Ul,{onClickImage:u=>{var d;return(d=e.onClickMedia)==null?void 0:d.call(e,{url:u,type:"image/*"})}},i.value))):i.type==="code"?o.createElement(vt,{key:l,fallback:o.createElement(nr,{variant:"body3"},i.value)},o.createElement(Hl,{code:i.value,language:i.language})):null),e.children)}const tr=h.default.div`display:flex;flex-direction:column;border-radius:12px;overflow:hidden;max-width:${({$maxWidth:e})=>e}px;${({theme:e,$color:t,$bgColor:n})=>k.css`
|
|
83
83
|
color: ${t||e.colors.messageIncoming.text};
|
|
84
84
|
background-color: ${n||e.colors.messageIncoming.background};
|
|
85
85
|
`}
|
|
@@ -303,10 +303,10 @@
|
|
|
303
303
|
color: ${g.color.information.main};
|
|
304
304
|
`};
|
|
305
305
|
}
|
|
306
|
-
`,Jm=c.lazy(()=>Promise.resolve().then(()=>require("./CkRtPYu2.cjs")).then(e=>({default:e.MarkdownText}))),Qm=()=>{const{aiAgentInfo:e,userSession:t}=re(),{messageSource:n,channelSource:r}=oe(),[s,a]=c.useState(null),i=bn("special-notice",r.channel),l=c.useCallback(()=>r.channel?i?n.messages.some(u=>Qe(u,(t==null?void 0:t.userId)??"")):!0:null,[r.channel,i,n.messages,t==null?void 0:t.userId]);return c.useEffect(()=>{s||a(l())},[l,s]),s||!e.specialNotice?null:o.createElement(Zm,null,o.createElement(Jm,null,e.specialNotice))},eg=()=>o.createElement(tg,null,o.createElement(Qm,null),o.createElement(Um,null,o.createElement(Xm,null))),tg=h.default.div`z-index:0;border:none;width:100%;`,ng=()=>{var s;const{testerType:e}=Ge(),{channelSource:t}=oe(),n=ue(t.channel),r=!!e&&((s=t.channel)==null?void 0:s.isAIAgent);return n&&r?o.createElement(Nm,null):o.createElement(eg,null)},fo=({start:e,title:t,titleAlign:n="start",end:r})=>{const s=c.useRef(null),a=c.useRef(null),[i,l]=c.useState(0),[u,d]=c.useState(0);return c.useLayoutEffect(()=>{s.current&&l(s.current.offsetWidth),a.current&&d(a.current.offsetWidth)},[e,r]),o.createElement(rg,null,o.createElement(og,null,n==="center"&&t&&o.createElement(sg,{$sideWidth:Math.max(i,u)},o.createElement(ag,null,t)),o.createElement(ig,null,o.createElement(lg,{ref:s},e),(n==="start"||n==="end")&&t&&o.createElement(ug,{$align:n,$hasStart:!!e,$hasEnd:!!r},t),o.createElement(cg,{ref:a},r))))},rg=h.default.div`position:relative;width:100%;background-color:${({theme:e})=>e.colors.base.headerBackground};border-bottom:1px solid ${g.themedColor.textDisabled};`,og=h.default.div`position:relative;height:56px;padding:11px 12px;`,sg=h.default.div`position:absolute;left:${({$sideWidth:e})=>e}px;right:${({$sideWidth:e})=>e}px;top:0;bottom:0;display:flex;align-items:center;justify-content:center;`,ag=h.default.div`max-width:100%;overflow:hidden;`,ig=h.default.div`display:flex;flex-direction:row;align-items:center;justify-content:space-between;height:100%;z-index:1;`,lg=h.default.div`flex-shrink:0;display:flex;align-items:center;`,cg=h.default.div`flex-shrink:0;display:flex;align-items:center;`,ug=h.default.div`flex:1;overflow:hidden;display:flex;align-items:${({$align:e})=>e==="start"?"flex-start":"flex-end"};margin-left:${({$hasStart:e})=>e?8:0}px;margin-right:${({$hasEnd:e})=>e?8:0}px;`,at=()=>nt()?24:16,dg=()=>{const{state:e}=q(),t=at(),n=()=>{e.setOpened(!1)};return o.createElement(Te,{"aria-label":"close messenger",type:"close",size:t,onClick:n})},mg=()=>{const{enableCloseConversationButton:e,dispatcher:t}=q(),{channelSource:n}=oe(),r=n.channel,s=at(),a=(r==null?void 0:r.isAIAgent)&&e,i=!hn(r);if(!a)return null;const l=async()=>{r&&await t.send(mn.CloseConversation({channelUrl:r.url}))};return o.createElement(Te,{"aria-label":"close conversation",type:"mute",size:s,disabled:i,onClick:l})},gg=()=>{const{state:e,enableExpandButton:t}=q(),n=at();return t?o.createElement(Te,{"aria-label":"expand",type:e.expanded?"collapse":"expand",size:n,onClick:()=>e.setExpanded(!e.expanded)}):null},hg=({label:e,children:t,position:n="top",disabled:r})=>r?t:o.createElement(ln,null,t,o.createElement(Eg,{$position:n},o.createElement(bg,{variant:"caption1"},e),o.createElement(pg,{$position:n}))),pg=({$position:e})=>o.createElement("svg",{style:{transform:e==="top"?"rotate(0)":"rotate(180deg)"},xmlns:"http://www.w3.org/2000/svg",width:"12",height:"6",viewBox:"0 0 12 6",fill:"none"},o.createElement("path",{d:"M6 6L0 0h12L6 6Z",fill:g.themedColor.textHighEmphasis})),fg={top:k.css`flex-direction:column;top:0;transform:translate(-50%,-100%);`,bottom:k.css`flex-direction:column-reverse;bottom:0;transform:translate(-50%,100%);`},ln=h.default.div`position:relative;`,Eg=h.default.div`display:flex;align-items:center;position:absolute;left:50%;z-index:${Pe.TOOLTIP};${({$position:e})=>fg[e]}opacity:0;transition:opacity 0.2s ease-in-out;pointer-events:none;${ln}:hover &,${ln}:focus-within &{opacity:1;}`,bg=h.default(L)`padding:6px 8px;background:${g.themedColor.textHighEmphasis};color:${g.themedColor.textHighEmphasisInverse};border-radius:4px;font-size:12px;white-space:nowrap;`,xg=()=>{const{logger:e}=q(),{stringSet:t}=W(),{channelSource:n}=oe(),r=n.channel,s=at(),a=bn("handoff-button",r),i=!hn(r)||Ve(r),l=async()=>{try{const u=await(r==null?void 0:r.markConversationAsHandoff());e.info("conversation.handleAgentHandoff: success",u)}catch(u){e.error("conversation.handleAgentHandoff: error",u)}};return a?o.createElement(hg,{label:t.HEADER_BUTTON__AGENT_HANDOFF,position:"bottom",disabled:i},o.createElement(Te,{"aria-label":"request handoff",type:"agent",size:s,disabled:i,onClick:l})):null},Cg=()=>{const{stringSet:e}=W(),{onNavigateToConversationList:t}=oe();return t?o.createElement(Te,{type:"menu",size:24,onClick:()=>t(),"aria-label":e.A11Y_OPEN_CONVERSATION_LIST}):null},Eo=({channel:e,size:t=40})=>{const{userSession:n,aiAgentInfo:r}=re(),{fallbackIcon:s,url:a}=Nr({channel:e,aiAgentInfo:r,userSession:n}),i=k.useTheme();return a?o.createElement(eo,{src:a,size:t}):o.createElement(_g,{$size:t,$bgColor:i.colors.base.primary},o.createElement(U,{type:s,size:t*.55,color:i.colors.base.primaryContrastContent}))},_g=h.default.div`width:${({$size:e})=>e}px;height:${({$size:e})=>e}px;border-radius:50%;background-color:${({$bgColor:e})=>e};display:flex;align-items:center;justify-content:center;flex-shrink:0;`,vg=()=>{var l,u;const{channelSource:e}=oe(),{aiAgentInfo:t,userSession:n}=re(),{config:r}=te(),s=e.channel,a=Nr({channel:s,userSession:n,aiAgentInfo:t}),i=(u=(l=r==null?void 0:r.conversation)==null?void 0:l.header)==null?void 0:u.avatarEnabled;return o.createElement(yg,null,i&&o.createElement(Eo,{channel:s,size:34}),o.createElement(Sg,{variant:"h2",color:g.themedColor.textHighEmphasis},a.title))},yg=h.default.div`display:flex;flex-direction:row;align-items:center;gap:6px;overflow:hidden;`,Sg=h.default(L)`text-overflow:ellipsis;overflow:hidden;white-space:nowrap;padding:2px 0;`,Tg=e=>{const{components:t}=Fe.useContext();return o.createElement(fo,{start:o.createElement(t.StartArea,null),title:o.createElement(t.TitleArea,null),titleAlign:e.titleAlign,end:o.createElement(t.EndArea,null)})},Ag=()=>{const{components:e}=Fe.useContext();return o.createElement(e.MenuButton,null)},wg=()=>{const{components:e}=Fe.useContext();return o.createElement(e.Title,null)},Ig=()=>{const{components:e}=Fe.useContext();return o.createElement(Mg,null,o.createElement(e.HandoffButton,null),o.createElement(e.ConversationCloseButton,null),o.createElement(e.ExpandButton,null),o.createElement(e.CloseButton,null))},Fe=Ee({template:Tg,components:{StartArea:Ag,TitleArea:wg,EndArea:Ig,MenuButton:Cg,Title:vg,HandoffButton:xg,ConversationCloseButton:mg,ExpandButton:gg,CloseButton:dg}}),kg=()=>{const{isActionbookTester:e}=Ge(),{Template:t}=Fe.useContext();return e?null:o.createElement(t,{titleAlign:"start"})},Mg=h.default.div`display:flex;gap:10px;align-items:center;justify-content:center;`,bo=({children:e,onNavigateToConversationList:t,channelUrl:n,onClearChannelUrl:r,shouldMarkAsRead:s,style:a,closedChannelUrl:i,onClearClosedChannelUrl:l})=>{const{Template:u}=Nt.useContext();return o.createElement(Kr,{onNavigateToConversationList:t,channelUrl:n??i,onClearChannelUrl:r??l,shouldMarkAsRead:s},o.createElement(rn,null,o.createElement(rn.Consumer,null,d=>o.createElement(o.Fragment,null,o.createElement(Lg,{style:a,...d},o.createElement(u,null)),e))))},$g=()=>{const{components:e}=Nt.useContext();return o.createElement(o.Fragment,null,o.createElement(e.Header,null),o.createElement(e.Body,null),o.createElement(e.Footer,null))},Nt=Ee({template:$g,components:{Header:kg,Body:Dm,Footer:ng}}),Lg=h.default.div`height:100%;width:100%;display:flex;flex-direction:column;flex:1;background-color:${({theme:e})=>e.colors.base.background};`,{Provider:Og,Context:Rg,useContext:wn}=ee("ConversationList");function xo({conversationListLimit:e,conversationListFilter:t,onOpenConversationView:n=ye,children:r}){return o.createElement(va,{conversationListLimit:e,conversationListFilter:t},s=>o.createElement(Og,{value:{...s,onOpenConversationView:n}},r))}const Dg=({channel:e})=>o.createElement(Eo,{channel:e}),cn=99,Ng=e=>{var u;const{channel:t,onClick:n}=e,{stringSet:r,format:s}=W(),a=Ls(t,{formatMultipleFilesCount:r.CONVERSATION_LIST__MULTIPLE_FILES_COUNT}),i=Os(t,s,{justNow:r.DATE_FORMAT__JUST_NOW,minutesAgo:r.DATE_FORMAT__MINUTES_AGO,hoursAgo:r.DATE_FORMAT__HOURS_AGO,dateShortFormat:r.DATE_FORMAT__DATE_SHORT}),l=t.unreadMessageCount;return o.createElement(Pg,{role:"button",onClick:()=>n==null?void 0:n()},o.createElement(Fg,null,o.createElement(Dg,{...e})),o.createElement(Bg,null,o.createElement(Ug,null,(u=t.lastMessage)!=null&&u.isFileMessage()&&(!t.lastMessage.message||t.lastMessage.name===t.lastMessage.message)?o.createElement(Xr,{variant:"subtitle1",color:g.themedColor.textHighEmphasis},a):o.createElement(L,{variant:"subtitle1",color:g.themedColor.textHighEmphasis,maxTextLines:1},a),o.createElement(Hg,null,ue(t)&&o.createElement(o.Fragment,null,o.createElement(L,{variant:"caption1",color:g.themedColor.textMidEmphasis,maxTextLines:1},r.CONVERSATION_LIST__ENDED),o.createElement(zg,null)),o.createElement(L,{variant:"caption2",color:g.themedColor.textLowEmphasis,maxTextLines:1},i))),l>0&&o.createElement(Vg,{$count:l},o.createElement(L,{variant:"caption3",color:g.themedColor.textHighEmphasisInverse},l<=cn?l:`${cn}+`))))},In=Ee({template:Ng,components:{}}),Pg=h.default.div`display:flex;flex-shrink:0;flex-direction:row;align-items:center;position:relative;width:100%;height:72px;box-sizing:border-box;gap:16px;cursor:pointer;`,Fg=h.default.div`display:flex;align-items:center;justify-content:center;padding-inline-start:16px;`,Bg=h.default.div`display:flex;flex-direction:row;align-items:center;flex:1;min-width:0;padding-inline-end:16px;height:100%;gap:8px;border-bottom:1px solid ${g.themedColor.textDisabled};`,Ug=h.default.div`display:flex;flex-direction:column;justify-content:center;flex:1;min-width:0;gap:4px;word-break:break-word;overflow-wrap:break-word;`,Hg=h.default.div`display:flex;align-items:center;gap:6px;`,zg=h.default.div`width:2px;height:2px;border-radius:1px;background-color:${g.themedColor.textLowEmphasis};`,Vg=h.default.div`display:flex;align-items:center;justify-content:center;height:20px;padding:4px;border-radius:10px;background-color:${g.themedColor.error};${({$count:e})=>e<=cn&&k.css`
|
|
306
|
+
`,Jm=c.lazy(()=>Promise.resolve().then(()=>require("./DQCOoJ_z.cjs")).then(e=>({default:e.MarkdownText}))),Qm=()=>{const{aiAgentInfo:e,userSession:t}=re(),{messageSource:n,channelSource:r}=oe(),[s,a]=c.useState(null),i=bn("special-notice",r.channel),l=c.useCallback(()=>r.channel?i?n.messages.some(u=>Qe(u,(t==null?void 0:t.userId)??"")):!0:null,[r.channel,i,n.messages,t==null?void 0:t.userId]);return c.useEffect(()=>{s||a(l())},[l,s]),s||!e.specialNotice?null:o.createElement(Zm,null,o.createElement(Jm,null,e.specialNotice))},eg=()=>o.createElement(tg,null,o.createElement(Qm,null),o.createElement(Um,null,o.createElement(Xm,null))),tg=h.default.div`z-index:0;border:none;width:100%;`,ng=()=>{var s;const{testerType:e}=Ge(),{channelSource:t}=oe(),n=ue(t.channel),r=!!e&&((s=t.channel)==null?void 0:s.isAIAgent);return n&&r?o.createElement(Nm,null):o.createElement(eg,null)},fo=({start:e,title:t,titleAlign:n="start",end:r})=>{const s=c.useRef(null),a=c.useRef(null),[i,l]=c.useState(0),[u,d]=c.useState(0);return c.useLayoutEffect(()=>{s.current&&l(s.current.offsetWidth),a.current&&d(a.current.offsetWidth)},[e,r]),o.createElement(rg,null,o.createElement(og,null,n==="center"&&t&&o.createElement(sg,{$sideWidth:Math.max(i,u)},o.createElement(ag,null,t)),o.createElement(ig,null,o.createElement(lg,{ref:s},e),(n==="start"||n==="end")&&t&&o.createElement(ug,{$align:n,$hasStart:!!e,$hasEnd:!!r},t),o.createElement(cg,{ref:a},r))))},rg=h.default.div`position:relative;width:100%;background-color:${({theme:e})=>e.colors.base.headerBackground};border-bottom:1px solid ${g.themedColor.textDisabled};`,og=h.default.div`position:relative;height:56px;padding:11px 12px;`,sg=h.default.div`position:absolute;left:${({$sideWidth:e})=>e}px;right:${({$sideWidth:e})=>e}px;top:0;bottom:0;display:flex;align-items:center;justify-content:center;`,ag=h.default.div`max-width:100%;overflow:hidden;`,ig=h.default.div`display:flex;flex-direction:row;align-items:center;justify-content:space-between;height:100%;z-index:1;`,lg=h.default.div`flex-shrink:0;display:flex;align-items:center;`,cg=h.default.div`flex-shrink:0;display:flex;align-items:center;`,ug=h.default.div`flex:1;overflow:hidden;display:flex;align-items:${({$align:e})=>e==="start"?"flex-start":"flex-end"};margin-left:${({$hasStart:e})=>e?8:0}px;margin-right:${({$hasEnd:e})=>e?8:0}px;`,at=()=>nt()?24:16,dg=()=>{const{state:e}=q(),t=at(),n=()=>{e.setOpened(!1)};return o.createElement(Te,{"aria-label":"close messenger",type:"close",size:t,onClick:n})},mg=()=>{const{enableCloseConversationButton:e,dispatcher:t}=q(),{channelSource:n}=oe(),r=n.channel,s=at(),a=(r==null?void 0:r.isAIAgent)&&e,i=!hn(r);if(!a)return null;const l=async()=>{r&&await t.send(mn.CloseConversation({channelUrl:r.url}))};return o.createElement(Te,{"aria-label":"close conversation",type:"mute",size:s,disabled:i,onClick:l})},gg=()=>{const{state:e,enableExpandButton:t}=q(),n=at();return t?o.createElement(Te,{"aria-label":"expand",type:e.expanded?"collapse":"expand",size:n,onClick:()=>e.setExpanded(!e.expanded)}):null},hg=({label:e,children:t,position:n="top",disabled:r})=>r?t:o.createElement(ln,null,t,o.createElement(Eg,{$position:n},o.createElement(bg,{variant:"caption1"},e),o.createElement(pg,{$position:n}))),pg=({$position:e})=>o.createElement("svg",{style:{transform:e==="top"?"rotate(0)":"rotate(180deg)"},xmlns:"http://www.w3.org/2000/svg",width:"12",height:"6",viewBox:"0 0 12 6",fill:"none"},o.createElement("path",{d:"M6 6L0 0h12L6 6Z",fill:g.themedColor.textHighEmphasis})),fg={top:k.css`flex-direction:column;top:0;transform:translate(-50%,-100%);`,bottom:k.css`flex-direction:column-reverse;bottom:0;transform:translate(-50%,100%);`},ln=h.default.div`position:relative;`,Eg=h.default.div`display:flex;align-items:center;position:absolute;left:50%;z-index:${Pe.TOOLTIP};${({$position:e})=>fg[e]}opacity:0;transition:opacity 0.2s ease-in-out;pointer-events:none;${ln}:hover &,${ln}:focus-within &{opacity:1;}`,bg=h.default(L)`padding:6px 8px;background:${g.themedColor.textHighEmphasis};color:${g.themedColor.textHighEmphasisInverse};border-radius:4px;font-size:12px;white-space:nowrap;`,xg=()=>{const{logger:e}=q(),{stringSet:t}=W(),{channelSource:n}=oe(),r=n.channel,s=at(),a=bn("handoff-button",r),i=!hn(r)||Ve(r),l=async()=>{try{const u=await(r==null?void 0:r.markConversationAsHandoff());e.info("conversation.handleAgentHandoff: success",u)}catch(u){e.error("conversation.handleAgentHandoff: error",u)}};return a?o.createElement(hg,{label:t.HEADER_BUTTON__AGENT_HANDOFF,position:"bottom",disabled:i},o.createElement(Te,{"aria-label":"request handoff",type:"agent",size:s,disabled:i,onClick:l})):null},Cg=()=>{const{stringSet:e}=W(),{onNavigateToConversationList:t}=oe();return t?o.createElement(Te,{type:"menu",size:24,onClick:()=>t(),"aria-label":e.A11Y_OPEN_CONVERSATION_LIST}):null},Eo=({channel:e,size:t=40})=>{const{userSession:n,aiAgentInfo:r}=re(),{fallbackIcon:s,url:a}=Nr({channel:e,aiAgentInfo:r,userSession:n}),i=k.useTheme();return a?o.createElement(eo,{src:a,size:t}):o.createElement(_g,{$size:t,$bgColor:i.colors.base.primary},o.createElement(U,{type:s,size:t*.55,color:i.colors.base.primaryContrastContent}))},_g=h.default.div`width:${({$size:e})=>e}px;height:${({$size:e})=>e}px;border-radius:50%;background-color:${({$bgColor:e})=>e};display:flex;align-items:center;justify-content:center;flex-shrink:0;`,vg=()=>{var l,u;const{channelSource:e}=oe(),{aiAgentInfo:t,userSession:n}=re(),{config:r}=te(),s=e.channel,a=Nr({channel:s,userSession:n,aiAgentInfo:t}),i=(u=(l=r==null?void 0:r.conversation)==null?void 0:l.header)==null?void 0:u.avatarEnabled;return o.createElement(yg,null,i&&o.createElement(Eo,{channel:s,size:34}),o.createElement(Sg,{variant:"h2",color:g.themedColor.textHighEmphasis},a.title))},yg=h.default.div`display:flex;flex-direction:row;align-items:center;gap:6px;overflow:hidden;`,Sg=h.default(L)`text-overflow:ellipsis;overflow:hidden;white-space:nowrap;padding:2px 0;`,Tg=e=>{const{components:t}=Fe.useContext();return o.createElement(fo,{start:o.createElement(t.StartArea,null),title:o.createElement(t.TitleArea,null),titleAlign:e.titleAlign,end:o.createElement(t.EndArea,null)})},Ag=()=>{const{components:e}=Fe.useContext();return o.createElement(e.MenuButton,null)},wg=()=>{const{components:e}=Fe.useContext();return o.createElement(e.Title,null)},Ig=()=>{const{components:e}=Fe.useContext();return o.createElement(Mg,null,o.createElement(e.HandoffButton,null),o.createElement(e.ConversationCloseButton,null),o.createElement(e.ExpandButton,null),o.createElement(e.CloseButton,null))},Fe=Ee({template:Tg,components:{StartArea:Ag,TitleArea:wg,EndArea:Ig,MenuButton:Cg,Title:vg,HandoffButton:xg,ConversationCloseButton:mg,ExpandButton:gg,CloseButton:dg}}),kg=()=>{const{isActionbookTester:e}=Ge(),{Template:t}=Fe.useContext();return e?null:o.createElement(t,{titleAlign:"start"})},Mg=h.default.div`display:flex;gap:10px;align-items:center;justify-content:center;`,bo=({children:e,onNavigateToConversationList:t,channelUrl:n,onClearChannelUrl:r,shouldMarkAsRead:s,style:a,closedChannelUrl:i,onClearClosedChannelUrl:l})=>{const{Template:u}=Nt.useContext();return o.createElement(Kr,{onNavigateToConversationList:t,channelUrl:n??i,onClearChannelUrl:r??l,shouldMarkAsRead:s},o.createElement(rn,null,o.createElement(rn.Consumer,null,d=>o.createElement(o.Fragment,null,o.createElement(Lg,{style:a,...d},o.createElement(u,null)),e))))},$g=()=>{const{components:e}=Nt.useContext();return o.createElement(o.Fragment,null,o.createElement(e.Header,null),o.createElement(e.Body,null),o.createElement(e.Footer,null))},Nt=Ee({template:$g,components:{Header:kg,Body:Dm,Footer:ng}}),Lg=h.default.div`height:100%;width:100%;display:flex;flex-direction:column;flex:1;background-color:${({theme:e})=>e.colors.base.background};`,{Provider:Og,Context:Rg,useContext:wn}=ee("ConversationList");function xo({conversationListLimit:e,conversationListFilter:t,onOpenConversationView:n=ye,children:r}){return o.createElement(va,{conversationListLimit:e,conversationListFilter:t},s=>o.createElement(Og,{value:{...s,onOpenConversationView:n}},r))}const Dg=({channel:e})=>o.createElement(Eo,{channel:e}),cn=99,Ng=e=>{var u;const{channel:t,onClick:n}=e,{stringSet:r,format:s}=W(),a=Ls(t,{formatMultipleFilesCount:r.CONVERSATION_LIST__MULTIPLE_FILES_COUNT}),i=Os(t,s,{justNow:r.DATE_FORMAT__JUST_NOW,minutesAgo:r.DATE_FORMAT__MINUTES_AGO,hoursAgo:r.DATE_FORMAT__HOURS_AGO,dateShortFormat:r.DATE_FORMAT__DATE_SHORT}),l=t.unreadMessageCount;return o.createElement(Pg,{role:"button",onClick:()=>n==null?void 0:n()},o.createElement(Fg,null,o.createElement(Dg,{...e})),o.createElement(Bg,null,o.createElement(Ug,null,(u=t.lastMessage)!=null&&u.isFileMessage()&&(!t.lastMessage.message||t.lastMessage.name===t.lastMessage.message)?o.createElement(Xr,{variant:"subtitle1",color:g.themedColor.textHighEmphasis},a):o.createElement(L,{variant:"subtitle1",color:g.themedColor.textHighEmphasis,maxTextLines:1},a),o.createElement(Hg,null,ue(t)&&o.createElement(o.Fragment,null,o.createElement(L,{variant:"caption1",color:g.themedColor.textMidEmphasis,maxTextLines:1},r.CONVERSATION_LIST__ENDED),o.createElement(zg,null)),o.createElement(L,{variant:"caption2",color:g.themedColor.textLowEmphasis,maxTextLines:1},i))),l>0&&o.createElement(Vg,{$count:l},o.createElement(L,{variant:"caption3",color:g.themedColor.textHighEmphasisInverse},l<=cn?l:`${cn}+`))))},In=Ee({template:Ng,components:{}}),Pg=h.default.div`display:flex;flex-shrink:0;flex-direction:row;align-items:center;position:relative;width:100%;height:72px;box-sizing:border-box;gap:16px;cursor:pointer;`,Fg=h.default.div`display:flex;align-items:center;justify-content:center;padding-inline-start:16px;`,Bg=h.default.div`display:flex;flex-direction:row;align-items:center;flex:1;min-width:0;padding-inline-end:16px;height:100%;gap:8px;border-bottom:1px solid ${g.themedColor.textDisabled};`,Ug=h.default.div`display:flex;flex-direction:column;justify-content:center;flex:1;min-width:0;gap:4px;word-break:break-word;overflow-wrap:break-word;`,Hg=h.default.div`display:flex;align-items:center;gap:6px;`,zg=h.default.div`width:2px;height:2px;border-radius:1px;background-color:${g.themedColor.textLowEmphasis};`,Vg=h.default.div`display:flex;align-items:center;justify-content:center;height:20px;padding:4px;border-radius:10px;background-color:${g.themedColor.error};${({$count:e})=>e<=cn&&k.css`
|
|
307
307
|
width: 20px;
|
|
308
308
|
`}
|
|
309
|
-
`,Gg=({items:e,renderItem:t,onEndReached:n})=>{const r=s=>{const a=s.target;a.scrollHeight-a.scrollTop===a.clientHeight&&(n==null||n())};return o.createElement(Wg,{onScroll:s=>r(s)},e.map((s,a)=>t(s,a)))},Wg=h.default.div`width:100%;height:100%;display:flex;flex-direction:column;flex:1;overflow:auto;overscroll-behavior:contain;`,qg=()=>{const{stringSet:e}=W(),{listSource:t,onOpenConversationView:n}=wn(),{Template:r}=In.useContext();return t.initialized?t.channels.length===0?o.createElement(Xe,{type:"noChannels",label:e.CONVERSATION_LIST__NO_CONVERSATIONS}):o.createElement(Gg,{items:t.channels,renderItem:s=>{var a,i,l;return o.createElement(r,{key:s.url,channel:s,onClick:()=>n(s.url,ue(s)?"closed":"open"),channelUrl:s.url,title:(i=(a=s.conversation)==null?void 0:a.topics)==null?void 0:i.join(", "),lastMessageTimestamp:(l=s.lastMessage)==null?void 0:l.createdAt})},onEndReached:()=>{t.loadMore()}}):o.createElement(Xe,{type:"loading"})},jg=()=>{const{stringSet:e}=W(),{language:t,countryCode:n,context:r}=q(),{aiAgentInfo:s,refreshActiveChannel:a,createConversation:i,setActiveChannel:l}=re(),{onOpenConversationView:u}=wn();return o.createElement(Kg,{role:"button",onClick:async()=>{if(s.isMultipleActiveConversationsEnabled){const d=await i({aiAgentId:s.userId,language:t,country:n,context:r});l({url:d,status:"open"}),u(d,"open")}else{const d=await a();u(d,"open")}}},o.createElement(Yg,{variant:"h1"},e.TALK_TO_AGENT))},Kg=h.default.div`background-color:${({theme:e})=>e.colors.base.primary};display:flex;align-items:center;justify-content:center;padding:16px;cursor:pointer;`,Yg=h.default(L)`color:${({theme:e})=>e.colors.base.primaryContrastContent};overflow:hidden;text-overflow:ellipsis;white-space:nowrap;`,Xg=()=>{const{state:e}=q(),t=at(),n=()=>{e.setOpened(!1)};return o.createElement(Te,{"aria-label":"close messenger",type:"close",size:t,onClick:n})},Zg=()=>{const{stringSet:e}=W();return o.createElement(Jg,{variant:"h2",color:g.themedColor.textHighEmphasis},e.CONVERSATION_LIST__HEADER_TITLE)},Jg=h.default(L)`padding:0 4px;width:100%;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;`,Qg=e=>{const{components:t}=We.useContext();return o.createElement(fo,{start:o.createElement(t.StartArea,null),title:o.createElement(t.TitleArea,null),titleAlign:e.titleAlign,end:o.createElement(t.EndArea,null)})},eh=()=>null,th=()=>{const{components:e}=We.useContext();return o.createElement(e.Title,null)},nh=()=>{const{components:e}=We.useContext();return o.createElement(e.CloseButton,null)},We=Ee({template:Qg,components:{StartArea:eh,TitleArea:th,EndArea:nh,Title:Zg,CloseButton:Xg}}),rh=()=>{const{Template:e}=We.useContext();return o.createElement(e,{titleAlign:"start"})},Co=({conversationListLimit:e,conversationListFilter:t,children:n,onOpenConversationView:r,style:s})=>{const{Template:a}=Pt.useContext();return o.createElement(xo,{conversationListLimit:e,conversationListFilter:t,onOpenConversationView:r},o.createElement(sh,{style:s},o.createElement(a,null)),n)},oh=()=>{const{components:e}=Pt.useContext();return o.createElement(o.Fragment,null,o.createElement(e.Header,null),o.createElement(e.Body,null),o.createElement(e.Footer,null))},Pt=Ee({template:oh,components:{Header:rh,Body:qg,Footer:jg}}),sh=h.default.div`height:100%;width:100%;display:flex;flex-direction:column;flex:1;background-color:${({theme:e})=>e.colors.base.background};`,ah=k.css`:where(#${de.ENTRY}) :not(code *){font-family:'Roboto',sans-serif;box-sizing:border-box;}`,ih=[ah,ii,li],lh=(e,...t)=>k.createGlobalStyle(e,...ih,...t),ch=lh``,uh=$s(Nt,Oe,st,Lt,Dt,Pt,Fe,In,We,Rt);function _o({appearance:e,rootElement:t,logger:n,language:r,stringSet:s,children:a,messageTemplate:i,theme:l}){return gi(Za,t),o.createElement(k.StyleSheetManager,{target:t},o.createElement(ui,{rootElement:t,logger:n,appearance:e,theme:l},o.createElement(Ta,{internalVariables:i==null?void 0:i.__internalVariables},o.createElement(ai,{stringSet:s,logger:n,language:r},o.createElement(uh,null,a,o.createElement(ch,null))))))}const kn=c.forwardRef(function({rootElement:t=document.body,logLevel:n=
|
|
309
|
+
`,Gg=({items:e,renderItem:t,onEndReached:n})=>{const r=s=>{const a=s.target;a.scrollHeight-a.scrollTop===a.clientHeight&&(n==null||n())};return o.createElement(Wg,{onScroll:s=>r(s)},e.map((s,a)=>t(s,a)))},Wg=h.default.div`width:100%;height:100%;display:flex;flex-direction:column;flex:1;overflow:auto;overscroll-behavior:contain;`,qg=()=>{const{stringSet:e}=W(),{listSource:t,onOpenConversationView:n}=wn(),{Template:r}=In.useContext();return t.initialized?t.channels.length===0?o.createElement(Xe,{type:"noChannels",label:e.CONVERSATION_LIST__NO_CONVERSATIONS}):o.createElement(Gg,{items:t.channels,renderItem:s=>{var a,i,l;return o.createElement(r,{key:s.url,channel:s,onClick:()=>n(s.url,ue(s)?"closed":"open"),channelUrl:s.url,title:(i=(a=s.conversation)==null?void 0:a.topics)==null?void 0:i.join(", "),lastMessageTimestamp:(l=s.lastMessage)==null?void 0:l.createdAt})},onEndReached:()=>{t.loadMore()}}):o.createElement(Xe,{type:"loading"})},jg=()=>{const{stringSet:e}=W(),{language:t,countryCode:n,context:r}=q(),{aiAgentInfo:s,refreshActiveChannel:a,createConversation:i,setActiveChannel:l}=re(),{onOpenConversationView:u}=wn();return o.createElement(Kg,{role:"button",onClick:async()=>{if(s.isMultipleActiveConversationsEnabled){const d=await i({aiAgentId:s.userId,language:t,country:n,context:r});l({url:d,status:"open"}),u(d,"open")}else{const d=await a();u(d,"open")}}},o.createElement(Yg,{variant:"h1"},e.TALK_TO_AGENT))},Kg=h.default.div`background-color:${({theme:e})=>e.colors.base.primary};display:flex;align-items:center;justify-content:center;padding:16px;cursor:pointer;`,Yg=h.default(L)`color:${({theme:e})=>e.colors.base.primaryContrastContent};overflow:hidden;text-overflow:ellipsis;white-space:nowrap;`,Xg=()=>{const{state:e}=q(),t=at(),n=()=>{e.setOpened(!1)};return o.createElement(Te,{"aria-label":"close messenger",type:"close",size:t,onClick:n})},Zg=()=>{const{stringSet:e}=W();return o.createElement(Jg,{variant:"h2",color:g.themedColor.textHighEmphasis},e.CONVERSATION_LIST__HEADER_TITLE)},Jg=h.default(L)`padding:0 4px;width:100%;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;`,Qg=e=>{const{components:t}=We.useContext();return o.createElement(fo,{start:o.createElement(t.StartArea,null),title:o.createElement(t.TitleArea,null),titleAlign:e.titleAlign,end:o.createElement(t.EndArea,null)})},eh=()=>null,th=()=>{const{components:e}=We.useContext();return o.createElement(e.Title,null)},nh=()=>{const{components:e}=We.useContext();return o.createElement(e.CloseButton,null)},We=Ee({template:Qg,components:{StartArea:eh,TitleArea:th,EndArea:nh,Title:Zg,CloseButton:Xg}}),rh=()=>{const{Template:e}=We.useContext();return o.createElement(e,{titleAlign:"start"})},Co=({conversationListLimit:e,conversationListFilter:t,children:n,onOpenConversationView:r,style:s})=>{const{Template:a}=Pt.useContext();return o.createElement(xo,{conversationListLimit:e,conversationListFilter:t,onOpenConversationView:r},o.createElement(sh,{style:s},o.createElement(a,null)),n)},oh=()=>{const{components:e}=Pt.useContext();return o.createElement(o.Fragment,null,o.createElement(e.Header,null),o.createElement(e.Body,null),o.createElement(e.Footer,null))},Pt=Ee({template:oh,components:{Header:rh,Body:qg,Footer:jg}}),sh=h.default.div`height:100%;width:100%;display:flex;flex-direction:column;flex:1;background-color:${({theme:e})=>e.colors.base.background};`,ah=k.css`:where(#${de.ENTRY}) :not(code *){font-family:'Roboto',sans-serif;box-sizing:border-box;}`,ih=[ah,ii,li],lh=(e,...t)=>k.createGlobalStyle(e,...ih,...t),ch=lh``,uh=$s(Nt,Oe,st,Lt,Dt,Pt,Fe,In,We,Rt);function _o({appearance:e,rootElement:t,logger:n,language:r,stringSet:s,children:a,messageTemplate:i,theme:l}){return gi(Za,t),o.createElement(k.StyleSheetManager,{target:t},o.createElement(ui,{rootElement:t,logger:n,appearance:e,theme:l},o.createElement(Ta,{internalVariables:i==null?void 0:i.__internalVariables},o.createElement(ai,{stringSet:s,logger:n,language:r},o.createElement(uh,null,a,o.createElement(ch,null))))))}const kn=c.forwardRef(function({rootElement:t=document.body,logLevel:n=K.LogLevel.WARN,language:r=navigator.language,userSessionInfo:s,children:a,chatParams:i,...l},u){var d,m;return Ye.level!==n&&(Ye.level=n),mi("https://fonts.googleapis.com/css2?family=Roboto&display=swap",t),o.createElement("div",{id:de.ENTRY,style:{width:"fit-content",height:"fit-content",...l.entryStyle}},o.createElement(_o,{logger:Ye,rootElement:t,appearance:(d=l.agentPreviewConfigs)==null?void 0:d.appearance,stringSet:l.stringSet,language:r,messageTemplate:l.messageTemplate,theme:l.theme},o.createElement(pi,{rootElement:t,keyValueStorage:Ur(),networkStateAdapter:Br(),language:r,logger:Ye,dispatcher:vo,chatParams:{...i,...l.customApiHost&&{customApiHost:l.customApiHost},...l.customWebSocketHost&&{customWebSocketHost:l.customWebSocketHost}},chatSDK:l.customChatSDK,messengerVersion:Fr,...l},o.createElement(ki,{ref:u,userSessionInfo:s,forceCreateChannel:(m=l.agentPreviewConfigs)==null?void 0:m.forceCreateChannel},o.createElement($d,{...l._UNSAFE_INTERNAL_dashboardTester},a,o.createElement("div",{id:de.MODAL_ROOT,dir:l.dir}))))))}),Ye=new wr(K.LogLevel.WARN),vo=new Ar(Ye),{Provider:dh,useContext:Mn}=ee("PageChildren"),yo=({children:e})=>{const[t,n]=c.useState(null),[r,s]=c.useState(null);return o.createElement(dh,{value:{conversationChildren:t,setConversationChildren:n,conversationListChildren:r,setConversationListChildren:s}},e)},So=({children:e,isOpened:t})=>{const{dir:n,rootElement:r}=q(),s=Ne(r,!0);return c.useEffect(()=>{const a="sb-agent-block-scroll";return t?s.body.classList.add(a):s.body.classList.remove(a),()=>{s.body.classList.remove(a)}},[s,t]),o.createElement(mh,{dir:n,$visible:t},e)},mh=h.default.div`width:100%;height:100%;position:fixed;top:0;left:0;z-index:${Pe.WINDOW};visibility:${({$visible:e})=>e?"visible":"hidden"};`,gh=48,hh=2/3;function To({className:e,isOpened:t,onClick:n,type:r,imageUrl:s,dir:a,animated:i=!0,backgroundColor:l,size:u=gh}){const d=en(l),m=Math.round(u*hh);return o.createElement(Eh,{dir:a,id:de.LAUNCHER,className:e,"aria-label":"Sendbird AIAgent Launcher",onClick:n,$animated:i,$backgroundColor:l,$size:u},o.createElement(bh,{$isOpened:t,$animated:i,$fillColor:d,$iconSize:m},o.createElement(xr.Open,{url:s,isDefaultIcon:r==="default_icon",size:m})),o.createElement(xh,{$isOpened:t,$animated:i,$fillColor:d,$iconSize:m},o.createElement(xr.Close,{size:m})))}const ph=k.css`&:hover{transition:transform 250ms cubic-bezier(0.33,0,0,1);transform:scale(1.1);}&:active{transform:scale(0.8);}`,fh=k.css`img{width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-drag:none;&[data-default-icon='true']{width:${({$iconSize:e})=>e}px;height:${({$iconSize:e})=>e}px;filter:${({$fillColor:e})=>e===Je.WHITE?"grayscale(100%) brightness(2000%)":"grayscale(100%) invert(100%) saturate(0%) brightness(0%) contrast(1000%)"};}}`,Ao=k.css`svg{width:${({$iconSize:e})=>e}px;height:${({$iconSize:e})=>e}px;${({$fillColor:e})=>k.css`
|
|
310
310
|
ellipse,
|
|
311
311
|
path {
|
|
312
312
|
fill: ${e};
|
|
@@ -316,7 +316,7 @@
|
|
|
316
316
|
}
|
|
317
317
|
`}
|
|
318
318
|
}
|
|
319
|
-
`,Eh=h.default.button`position:relative;padding:0;width:${({$size:e})=>e}px;height:${({$size:e})=>e}px;background:${({$backgroundColor:e})=>e};border-radius:50%;transition:all 0.3s cubic-bezier(0.31,-0.105,0.43,1.4);border:none;display:flex;justify-content:center;align-items:center;box-shadow:0 16px 24px 2px rgba(33,33,33,0.12),0 6px 30px 5px rgba(33,33,33,0.08),0 6px 10px -5px rgba(33,33,33,0.04);${({$animated:e})=>e&&ph}`,wo=h.default.span`position:absolute;width:100%;height:100%;border-radius:50%;overflow:hidden;transition:transform 0.16s linear,opacity 0.08s linear,scale 0.16s linear;user-select:none;display:flex;justify-content:center;align-items:center;`,bh=h.default(wo)`opacity:${({$isOpened:e})=>e?0:1};transform:${({$animated:e,$isOpened:t})=>e&&(t?"rotate(-90deg) scale(0)":"rotate(0deg)")};${fh}${Ao}`,xh=h.default(wo)`scale:${({$isOpened:e})=>e?1:0};transform:${({$animated:e,$isOpened:t})=>e&&(t?"rotate(0deg)":"rotate(-90deg)")};${Ao}`,xr={Open:e=>e.url?o.createElement("img",{src:e.url,alt:"launcher-img","data-default-icon":e.isDefaultIcon}):o.createElement(U,{size:e.size,type:"delight"}),Close:({size:e})=>o.createElement(U,{size:e,type:"chevron-down"})};function Io({className:e,size:t}){const{colors:n}=k.useTheme(),{dir:r,state:s}=q(),{launcherInfo:a,statsTrackers:i}=re();return c.useLayoutEffect(()=>{i.initialRender.setPresentMethod("launcher_toggle")},[i]),_h(),o.createElement(To,{dir:r,className:e,isOpened:s.opened,onClick:()=>s.setOpened(!s.opened),type:a.type,imageUrl:a.imageUrl,backgroundColor:n.base.primary,size:t})}const Ch=1e3*60;function _h(){const{chatSDK:e,state:t,logger:n,enableAutoDisconnectInLauncher:r}=q(),s=c.useRef(null);c.useEffect(()=>{if(!r)return;function a(){s.current&&(clearTimeout(s.current),s.current=null)}function i(){e.connectionState===
|
|
319
|
+
`,Eh=h.default.button`position:relative;padding:0;width:${({$size:e})=>e}px;height:${({$size:e})=>e}px;background:${({$backgroundColor:e})=>e};border-radius:50%;transition:all 0.3s cubic-bezier(0.31,-0.105,0.43,1.4);border:none;display:flex;justify-content:center;align-items:center;box-shadow:0 16px 24px 2px rgba(33,33,33,0.12),0 6px 30px 5px rgba(33,33,33,0.08),0 6px 10px -5px rgba(33,33,33,0.04);${({$animated:e})=>e&&ph}`,wo=h.default.span`position:absolute;width:100%;height:100%;border-radius:50%;overflow:hidden;transition:transform 0.16s linear,opacity 0.08s linear,scale 0.16s linear;user-select:none;display:flex;justify-content:center;align-items:center;`,bh=h.default(wo)`opacity:${({$isOpened:e})=>e?0:1};transform:${({$animated:e,$isOpened:t})=>e&&(t?"rotate(-90deg) scale(0)":"rotate(0deg)")};${fh}${Ao}`,xh=h.default(wo)`scale:${({$isOpened:e})=>e?1:0};transform:${({$animated:e,$isOpened:t})=>e&&(t?"rotate(0deg)":"rotate(-90deg)")};${Ao}`,xr={Open:e=>e.url?o.createElement("img",{src:e.url,alt:"launcher-img","data-default-icon":e.isDefaultIcon}):o.createElement(U,{size:e.size,type:"delight"}),Close:({size:e})=>o.createElement(U,{size:e,type:"chevron-down"})};function Io({className:e,size:t}){const{colors:n}=k.useTheme(),{dir:r,state:s}=q(),{launcherInfo:a,statsTrackers:i}=re();return c.useLayoutEffect(()=>{i.initialRender.setPresentMethod("launcher_toggle")},[i]),_h(),o.createElement(To,{dir:r,className:e,isOpened:s.opened,onClick:()=>s.setOpened(!s.opened),type:a.type,imageUrl:a.imageUrl,backgroundColor:n.base.primary,size:t})}const Ch=1e3*60;function _h(){const{chatSDK:e,state:t,logger:n,enableAutoDisconnectInLauncher:r}=q(),s=c.useRef(null);c.useEffect(()=>{if(!r)return;function a(){s.current&&(clearTimeout(s.current),s.current=null)}function i(){e.connectionState===K.ConnectionState.CLOSED&&(e.reconnect(),n.debug("useSDKInactivityTimeout: reconnected")),a(),n.debug("useSDKInactivityTimeout: clear disconnect schedule")}function l(){a(),s.current=setTimeout(async()=>{await e.disconnectWebSocket(),n.debug("useSDKInactivityTimeout: disconnected")},Ch)}t.opened?i():(l(),n.debug("useSDKInactivityTimeout: schedule disconnect"))},[r,e,t.opened])}const ko=c.createContext(null);function Mo(){const e=c.useContext(ko);if(!e)throw new Error("useNavigator() must be used within <Navigator />");return e}function $o({children:e}){const t=Mo();return typeof e=="function"?e(t):o.createElement(o.Fragment,null,e)}const vh=k.keyframes`0%{transform:translateY(40px);opacity:0;}100%{transform:translateY(0px);opacity:1;}`,yh=k.keyframes`0%{transform:translateY(0px);opacity:1;}100%{transform:translateY(40px);opacity:0;}`,Sh=k.css`animation-name:${vh};animation-duration:0.3s;animation-fill-mode:forwards;`,Th=k.css``,Ah=k.css`animation-name:${yh};animation-duration:0.3s;animation-fill-mode:forwards;`,wh=k.css`visibility:hidden;`,Ih=h.default.div`position:absolute;top:0;left:0;width:100%;height:100%;${({$transitionState:e})=>{switch(e){case"entering":return Sh;case"entered":return Th;case"exiting":return Ah;case"exited":return wh;default:return""}}}${({$active:e})=>e?k.css`
|
|
320
320
|
z-index: 999;
|
|
321
321
|
`:k.css`z-index:1;pointer-events:none;`}
|
|
322
322
|
`;function Et({initialId:e,children:t}){const[n,r]=c.useState([e]),s=n[n.length-1],a=c.useCallback((p,x)=>{r(C=>[...C,p]),f(C=>({...C,[p]:!0})),x!=null&&x.reset&&b(C=>({...C,[p]:(C[p]||0)+1})),v(C=>({...C,[p]:"entering"})),setTimeout(()=>{v(C=>({...C,[p]:"entered"}))},300)},[]),i=c.useCallback(()=>{r(p=>{if(p.length<=1)return p;const x=p[p.length-1];return v(C=>({...C,[x]:"exiting"})),setTimeout(()=>{v(C=>({...C,[x]:"exited"})),r(C=>C.slice(0,-1))},300),p})},[]),l=c.useMemo(()=>({navigation:{navigate:a,pop:i},activeScreenId:s}),[a,i,s]),u=c.useMemo(()=>c.Children.toArray(t).filter(p=>p.type===$o),[t]),d=c.useMemo(()=>{const p={};return u.forEach(x=>{const{id:C,lazy:y,children:T}=x.props;p[C]={lazy:y,element:typeof T=="function"?T(l):T}}),p},[u,l]),[m,f]=c.useState(()=>{const p={};return Object.entries(d).forEach(([x,{lazy:C}])=>{C===!1&&(p[x]=!0)}),p[e]=!0,p}),[E,v]=c.useState(()=>{const p={};return Object.keys(d).forEach(x=>{x===e?p[x]="entered":p[x]="exited"}),p}),[_,b]=c.useState({});return o.createElement(ko.Provider,{value:l},o.createElement(kh,null,Object.keys(d).map(p=>{var T;if(!m[p])return null;const x=E[p]||"exited",C=p===s,y=`${p}-${_[p]||0}`;return o.createElement(Ih,{key:y,$transitionState:x,$active:C},(T=d[p])==null?void 0:T.element)})))}const kh=h.default.div`position:relative;width:100%;height:100%;`;Et.Screen=$o;const _e={conv:"conv",convList:"conv-list"},Lo=({isOpened:e,entryPoint:t,selectedChannelUrl:n,setSelectedChannelUrl:r})=>{const{conversationChildren:s,conversationListChildren:a}=Mn(),i=(()=>{switch(t){case"Conversation":return _e.conv;case"ConversationList":return _e.convList;default:return _e.conv}})(),l=o.createElement(o.Fragment,null,o.createElement(Mh,{onOpenConversationView:r}));return o.createElement(Et,{initialId:i},o.createElement(Et.Screen,{id:_e.conv},({navigation:u,activeScreenId:d})=>o.createElement(bo,{key:n,channelUrl:n,onClearChannelUrl:()=>r(void 0),onNavigateToConversationList:()=>u.navigate(_e.convList),shouldMarkAsRead:e&&d===_e.conv},l,s)),o.createElement(Et.Screen,{id:_e.convList,lazy:!0},({navigation:u})=>o.createElement(Co,{onOpenConversationView:d=>{r(d),u.navigate(_e.conv)}},l,a)))},Mh=({onOpenConversationView:e})=>{const{registerOnJoinedProactiveConversation:t}=re(),{navigation:n}=Mo();return t(({channel:r})=>{e(r.url),n.navigate(_e.conv)}),null};function $h({isExpanded:e,isOpened:t,children:n,launcher:r}){const{dir:s}=q();return o.createElement(Lh,null,o.createElement(Oh,{dir:s,id:de.WINDOW,$isExpanded:e,$isOpened:t},n),r)}const Lh=h.default.div`display:flex;flex-direction:column;gap:8px;align-items:flex-end;`,Oh=h.default.div`background:${({theme:e})=>e.colors.base.background};display:flex;overscroll-behavior:none;-webkit-overflow-scrolling:auto;height:640px;min-height:80px;width:400px;max-width:80vw;max-height:80vh;box-shadow:0px 16px 24px 2px rgba(33,33,33,0.12),0px 6px 30px 5px rgba(33,33,33,0.08),0px 6px 10px -5px rgba(33,33,33,0.04);border-radius:16px;overflow:hidden;transition:width 200ms ease 0s,height 200ms ease 0s,max-height 200ms ease 0s,transform 150ms cubic-bezier(0,1.2,1,1) 0s,opacity 83ms ease-out 0s;transform:scale(0.15);opacity:0;transform-origin:right bottom;[dir='rtl'] &:not([dir='ltr']),&[dir='rtl']{transform-origin:left bottom;}${({$isOpened:e})=>e&&Dh};${({$isExpanded:e})=>e&&Rh};`,Rh=k.css`width:743px;height:723px;`,Dh=k.css`z-index:${Pe.WINDOW};pointer-events:all;transform:scale(1);opacity:1;transition:width 200ms ease 0s,height 200ms ease 0s,max-height 200ms ease 0s,transform 300ms cubic-bezier(0,1.2,1,1) 0s,opacity 83ms ease-out 0s;`,Nh=c.forwardRef(function({children:e,initialChannelUrl:t,...n},r){const s=nt(),[a,i]=c.useState(t),l=s?So:$h;return o.createElement(kn,{enableExpandButton:!s,ref:r,...n},o.createElement(Vr,null,({state:u})=>o.createElement(yo,null,o.createElement(l,{isExpanded:u.expanded,isOpened:u.opened,launcher:o.createElement(Io,null)},o.createElement(Lo,{isOpened:u.opened,entryPoint:n.entryPoint,selectedChannelUrl:a,setSelectedChannelUrl:i})),e)))}),{Provider:Ph,useContext:$n}=ee("FixedMessengerStyle");function Oo(e,t,n,r=0){const{top:s,bottom:a,start:i,end:l}=n;let u="",d="";switch(e){case"start":d=`inset-inline-start: ${pe(i)}`;break;case"end":d=`inset-inline-end: ${pe(l)}`;break}switch(t){case"top":u=`top: calc(${pe(s)} + ${r}px)`;break;case"bottom":u=`bottom: calc(${pe(a)} + ${r}px)`;break}return k.css`${u};${d};`}function Fh(e){const{horizontal:t,vertical:n,margin:r,launcherSize:s}=$n();return o.createElement(Bh,{...e,size:s,$horizontal:t,$vertical:n,$margin:r})}const Bh=h.default(Io)`position:fixed;z-index:${Pe.LAUNCHER};${({$horizontal:e,$vertical:t,$margin:n})=>Oo(e,t,n)};`;function Uh({isExpanded:e,isOpened:t,children:n}){const{dir:r}=q(),{horizontal:s,vertical:a,margin:i,launcherSize:l}=$n();return o.createElement(Hh,{dir:r,id:de.WINDOW,$isExpanded:e,$isOpened:t,$horizontal:s,$vertical:a,$margin:i,$launcherSize:l},n)}const Hh=h.default.div`background:${({theme:e})=>e.colors.base.background};display:flex;overscroll-behavior:none;-webkit-overflow-scrolling:auto;position:fixed;${({$horizontal:e,$vertical:t,$margin:n,$launcherSize:r})=>Oo(e,t,n,r+12)};height:640px;min-height:80px;width:400px;max-width:80vw;max-height:80vh;box-shadow:0px 16px 24px 2px rgba(33,33,33,0.12),0px 6px 30px 5px rgba(33,33,33,0.08),0px 6px 10px -5px rgba(33,33,33,0.04);border-radius:16px;overflow:hidden;transition:width 200ms ease 0s,height 200ms ease 0s,max-height 200ms ease 0s,transform 150ms cubic-bezier(0,1.2,1,1) 0s,opacity 83ms ease-out 0s;transform:scale(0.15);opacity:0;transform-origin:${({$horizontal:e,$vertical:t})=>`${e==="start"?"left":"right"} ${t}`};
|
|
@@ -327,4 +327,4 @@
|
|
|
327
327
|
|
|
328
328
|
${({$isOpened:e})=>e&&Vh};
|
|
329
329
|
${({$isExpanded:e})=>e&&zh};
|
|
330
|
-
`,zh=k.css`width:743px;height:723px;`,Vh=k.css`z-index:${Pe.WINDOW};pointer-events:all;transform:scale(1);opacity:1;transition:width 200ms ease 0s,height 200ms ease 0s,max-height 200ms ease 0s,transform 300ms cubic-bezier(0,1.2,1,1) 0s,opacity 83ms ease-out 0s;`,Ro={top:24,bottom:24,start:24,end:24},Gh=c.forwardRef(function({children:e,initialChannelUrl:t,...n},r){const[s,a]=c.useState(t),[i,l]=c.useState("end-bottom"),[u,d]=c.useState(Ro),[m,f]=c.useState(48),E=nt(),v=E?So:Uh,{horizontal:_,vertical:b}=c.useMemo(()=>{const[p,x]=i.split("-");return{horizontal:p==="start"?"start":"end",vertical:x==="top"?"top":"bottom"}},[i]);return o.createElement(kn,{enableExpandButton:!E,ref:r,...n},o.createElement(Vr,null,({state:p})=>o.createElement(Ph,{value:{horizontal:_,vertical:b,margin:u,launcherSize:m,setPosition:l,setMargin:d,setLauncherSize:f}},o.createElement(yo,null,o.createElement(v,{isExpanded:p.expanded,isOpened:p.opened},o.createElement(Lo,{isOpened:p.opened,entryPoint:n.entryPoint,selectedChannelUrl:s,setSelectedChannelUrl:a})),o.createElement(Fh,null),e))))}),Wh=e=>{var s,a,i,l;const{setPosition:t,setMargin:n,setLauncherSize:r}=$n();return c.useLayoutEffect(()=>{e.position&&t(e.position),e.margin&&n({...Ro,...e.margin}),e.launcherSize&&r(e.launcherSize)},[e.position,(s=e.margin)==null?void 0:s.top,(a=e.margin)==null?void 0:a.bottom,(i=e.margin)==null?void 0:i.start,(l=e.margin)==null?void 0:l.end,e.launcherSize]),null},qh=({children:e})=>{const{setConversationChildren:t}=Mn();return c.useLayoutEffect(()=>(t(e),()=>t(null)),[e]),null},jh=({children:e})=>{const{setConversationListChildren:t}=Mn();return c.useLayoutEffect(()=>(t(e),()=>t(null)),[e]),null},Kh=Object.assign(Gh,{Style:Wh,ConversationChildren:qh,ConversationListChildren:jh}),Yh=e=>{const{refreshActiveChannel:t}=re(),[n,r]=c.useState(!1),s=c.useRef(null),a=c.useRef(null);return c.useEffect(()=>{n&&t().then(()=>{var i;(i=s.current)==null||i.call(s),r(!1)}).catch(i=>{var l;(l=a.current)==null||l.call(a,i),r(!1)})},[n]),c.useCallback(()=>new Promise((i,l)=>{s.current=i,a.current=l,e().then(()=>r(!0)).catch(l)}),[e])};Ms.set(
|
|
330
|
+
`,zh=k.css`width:743px;height:723px;`,Vh=k.css`z-index:${Pe.WINDOW};pointer-events:all;transform:scale(1);opacity:1;transition:width 200ms ease 0s,height 200ms ease 0s,max-height 200ms ease 0s,transform 300ms cubic-bezier(0,1.2,1,1) 0s,opacity 83ms ease-out 0s;`,Ro={top:24,bottom:24,start:24,end:24},Gh=c.forwardRef(function({children:e,initialChannelUrl:t,...n},r){const[s,a]=c.useState(t),[i,l]=c.useState("end-bottom"),[u,d]=c.useState(Ro),[m,f]=c.useState(48),E=nt(),v=E?So:Uh,{horizontal:_,vertical:b}=c.useMemo(()=>{const[p,x]=i.split("-");return{horizontal:p==="start"?"start":"end",vertical:x==="top"?"top":"bottom"}},[i]);return o.createElement(kn,{enableExpandButton:!E,ref:r,...n},o.createElement(Vr,null,({state:p})=>o.createElement(Ph,{value:{horizontal:_,vertical:b,margin:u,launcherSize:m,setPosition:l,setMargin:d,setLauncherSize:f}},o.createElement(yo,null,o.createElement(v,{isExpanded:p.expanded,isOpened:p.opened},o.createElement(Lo,{isOpened:p.opened,entryPoint:n.entryPoint,selectedChannelUrl:s,setSelectedChannelUrl:a})),o.createElement(Fh,null),e))))}),Wh=e=>{var s,a,i,l;const{setPosition:t,setMargin:n,setLauncherSize:r}=$n();return c.useLayoutEffect(()=>{e.position&&t(e.position),e.margin&&n({...Ro,...e.margin}),e.launcherSize&&r(e.launcherSize)},[e.position,(s=e.margin)==null?void 0:s.top,(a=e.margin)==null?void 0:a.bottom,(i=e.margin)==null?void 0:i.start,(l=e.margin)==null?void 0:l.end,e.launcherSize]),null},qh=({children:e})=>{const{setConversationChildren:t}=Mn();return c.useLayoutEffect(()=>(t(e),()=>t(null)),[e]),null},jh=({children:e})=>{const{setConversationListChildren:t}=Mn();return c.useLayoutEffect(()=>(t(e),()=>t(null)),[e]),null},Kh=Object.assign(Gh,{Style:Wh,ConversationChildren:qh,ConversationListChildren:jh}),Yh=e=>{const{refreshActiveChannel:t}=re(),[n,r]=c.useState(!1),s=c.useRef(null),a=c.useRef(null);return c.useEffect(()=>{n&&t().then(()=>{var i;(i=s.current)==null||i.call(s),r(!1)}).catch(i=>{var l;(l=a.current)==null||l.call(a,i),r(!1)})},[n]),c.useCallback(()=>new Promise((i,l)=>{s.current=i,a.current=l,e().then(()=>r(!0)).catch(l)}),[e])};Ms.set(K.SendbirdPlatform.JS,{deviceOSPlatform:Sr()?K.DeviceOsPlatform.MOBILE_WEB:K.DeviceOsPlatform.WEB,messengerVersion:Fr,keyValueStorage:Ur(),networkStateAdapter:Br()});exports.ANCHOR_REL=xn;exports.AgentProviderContainer=kn;exports.AgentUIProviderContainer=_o;exports.AnonymousSessionInfo=Jt;exports.CSATType=he;exports.Conversation=bo;exports.ConversationContext=Gi;exports.ConversationContextProvider=Kr;exports.ConversationHeaderLayout=Fe;exports.ConversationLayout=Nt;exports.ConversationList=Co;exports.ConversationListContext=Rg;exports.ConversationListContextProvider=xo;exports.ConversationListHeaderLayout=We;exports.ConversationListItemLayout=In;exports.ConversationListLayout=Pt;exports.DefaultMessenger=Nh;exports.DispatcherCommands=mn;exports.FixedMessenger=Kh;exports.IncomingMessageLayout=Oe;exports.LauncherBase=To;exports.LogLevel=gn;exports.ManualSessionInfo=Ir;exports.MessageListUILayout=Dt;exports.MessageLogs=mo;exports.OutgoingMessageLayout=st;exports.PlaceholderLayout=Rt;exports.SystemMessageLayout=Lt;exports.cssVars=g;exports.escapeMarkdownSyntax=ns;exports.mapCommonStringsToReactFormat=Hr;exports.messengerDispatcher=vo;exports.useConversationContext=oe;exports.useConversationListContext=wn;exports.useLocalizationContext=W;exports.useMessengerContext=q;exports.useMessengerSessionContext=re;exports.useRefreshActiveChannel=Yh;
|