@telia-ace/widget-conversation-flamingo 1.0.32 → 1.0.37

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/agent.d.ts CHANGED
@@ -1,16 +1,16 @@
1
1
  import { ConversationEntry } from './conversation-controller';
2
2
  import { ConversationProvider } from './conversation-provider';
3
- import { ConversationMessageSettings, ConverstationMessageItem, Symbol } from './types';
3
+ import { ConversationMessageSettings, ConverstationMessageItem, SymbolType } from './types';
4
4
  export type AgentSettings = {
5
5
  id?: string;
6
6
  name?: string;
7
- avatar?: string | Symbol;
7
+ avatar?: string | SymbolType;
8
8
  };
9
9
  export declare class Agent {
10
10
  private provider;
11
11
  id: string;
12
12
  name?: string;
13
- avatar?: string | Symbol;
13
+ avatar?: string | SymbolType;
14
14
  constructor(provider: ConversationProvider, settings: AgentSettings);
15
15
  print: (settings: string | ConversationMessageSettings | ConverstationMessageItem<any> | ConverstationMessageItem<any>[], options?: {
16
16
  key?: string;
@@ -1,4 +1,4 @@
1
- import { p as Dt, P as he, h as ue, i as w, n as x, t as k, E as ft, m as fe, a as It, b as at, e as lt, A as $, s as P, x as f, C as V, o as Nt, T as pe } from "./index-8a04bebb.mjs";
1
+ import { p as Dt, P as he, h as ue, i as w, n as x, t as k, E as ft, m as fe, a as It, b as at, e as lt, A as $, s as P, x as f, C as V, o as Nt, T as pe } from "./index-5ce43fbe.mjs";
2
2
  import { g as $e, s as ge } from "./send-1e9780e5.mjs";
3
3
  /**
4
4
  * @license
@@ -1412,7 +1412,7 @@ q.styles = w`
1412
1412
  }
1413
1413
  `;
1414
1414
  ne([
1415
- x()
1415
+ x({ attribute: !1 })
1416
1416
  ], q.prototype, "message", 2);
1417
1417
  q = ne([
1418
1418
  L("conversation-component-message")
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./index-a12a1d3f.js"),nt=require("./send-df47dcea.js");/**
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./index-8e55fd9b.js"),nt=require("./send-df47dcea.js");/**
2
2
  * @license
3
3
  * Copyright 2017 Google LLC
4
4
  * SPDX-License-Identifier: BSD-3-Clause
@@ -169,7 +169,7 @@
169
169
  .content-bundle {
170
170
  grid-area: content;
171
171
  }
172
- `;Gt([l.n()],H.prototype,"message",2);H=Gt([S("conversation-component-message")],H);var As=Object.defineProperty,Ts=Object.getOwnPropertyDescriptor,Kt=(e,t,s,i)=>{for(var n=i>1?void 0:i?Ts(t,s):t,o=e.length-1,r;o>=0;o--)(r=e[o])&&(n=(i?r(t,s,n):r(n))||n);return i&&n&&As(t,s,n),n};let z=class extends l.s{constructor(){super(...arguments),this.items=[]}_isCustomComponent(e){return!["html","link-list"].includes(e)}_createCustomComponent(e,t){const s=customElements.get(e);if(s){const i=new s;return i.message=t,i}return l.A}render(){return l.x` <div class="message-list">
172
+ `;Gt([l.n({attribute:!1})],H.prototype,"message",2);H=Gt([S("conversation-component-message")],H);var As=Object.defineProperty,Ts=Object.getOwnPropertyDescriptor,Kt=(e,t,s,i)=>{for(var n=i>1?void 0:i?Ts(t,s):t,o=e.length-1,r;o>=0;o--)(r=e[o])&&(n=(i?r(t,s,n):r(n))||n);return i&&n&&As(t,s,n),n};let z=class extends l.s{constructor(){super(...arguments),this.items=[]}_isCustomComponent(e){return!["html","link-list"].includes(e)}_createCustomComponent(e,t){const s=customElements.get(e);if(s){const i=new s;return i.message=t,i}return l.A}render(){return l.x` <div class="message-list">
173
173
  ${this.items.map(([e,t])=>l.x`
174
174
  ${e==="html"?l.x`
175
175
  <message-type-html .message=${t}> </message-type-html>
@@ -2320,7 +2320,8 @@ class Ii {
2320
2320
  }
2321
2321
  lock() {
2322
2322
  this._locks += 1;
2323
- let t, e = new Promise(
2323
+ let t;
2324
+ const e = new Promise(
2324
2325
  (n) => t = () => {
2325
2326
  this._locks -= 1, n();
2326
2327
  }
@@ -2423,7 +2424,7 @@ class Mi {
2423
2424
  n();
2424
2425
  return;
2425
2426
  }
2426
- let a = {
2427
+ const a = {
2427
2428
  ...o
2428
2429
  };
2429
2430
  return e === "messages" ? a.messages = [...a.messages, t] : e === "agents" && (a.agents = [...a.agents, t]), r({
@@ -3761,7 +3762,7 @@ rt([
3761
3762
  ], F.prototype, "icon", 2);
3762
3763
  const un = (i, t, e, s, n) => i.getAsync("componentResolver").then((r) => (r.registerComponent(t, e), gi(i, t, s || (() => {
3763
3764
  }), t, n)));
3764
- console.log("test1232342532422");
3765
+ console.log("test12323425324222");
3765
3766
  const pn = (i, t) => i.reduce((e, s, n) => {
3766
3767
  var o, a;
3767
3768
  const r = {
@@ -3777,7 +3778,7 @@ const pn = (i, t) => i.reduce((e, s, n) => {
3777
3778
  }, []), Mn = async (i) => un(
3778
3779
  i,
3779
3780
  "conversation",
3780
- import("./conversation-18045ffc.mjs"),
3781
+ import("./conversation-069e0c28.mjs"),
3781
3782
  async (t) => {
3782
3783
  const e = await he.getInstance(i), { rehydrate: s = !1 } = t.properties(), n = "component", r = await e.createController(n, { rehydrate: s }), o = e.registerController(
3783
3784
  r,
@@ -12,7 +12,7 @@ ${o.map(a=>`${a.name||"<no name>"} (${a.id})
12
12
  Passed consent: ${JSON.stringify(s)}`);return}const n=[$.Necessary,$.Functional,$.Analytical,$.Marketing].filter((r,o,a)=>typeof s=="number"?s>o:typeof s=="string"?a.indexOf(s)+1>o:Array.isArray(s)?s.findIndex(c=>c===o+1||c===r)>-1:!0);return n.indexOf($.Necessary)===-1&&(process.env.NODE_ENV!=="production"&&_.warn(`storagePolicyConfigurationApi: passed consent does not include category: '${$.Necessary}'. Consent has to atleast include the '${$.Necessary}' category.
13
13
  Passed consent: ${JSON.stringify(s)}`),n.unshift($.Necessary)),wt(t.container,"storagePolicy",$.Necessary,{medium:b.Cookie,scope:bt.Tenant,duration:{days:365}}).then(r=>r(n)).then(()=>{he(t.container),t.events.dispatch("storage:policy-changed",n)})}})});class Wi{constructor(t){this.controller=t,this.cache=new Map,this.subscriptions=[];const{events:e}=t.container.get("$widget"),s=e.subscribe("data-client:fetched",(n,r)=>{r.type==="contact-method"&&this.cache.set(r.response.id,r.response)});this.subscriptions.push(s)}getConversationLogs(){return this.controller.messages.reduce((e,s)=>{const n=At(s),{content:r,type:o,sender:a,timestamp:c}=n.content,h=this.parseEntry(r,o,a,c);return h&&e.push(h),e},[])}parseEntry(t,e,s,n){const r=h=>{let l=[],d=[],u;if(Array.isArray(h)){const[v,f]=h;u=f}else u=h;return this.createMessageContent(u).length&&(d=[...d,this.createMessageContent(u)]),l=[...l,...this.createMessageOptions(u)],{messagesAsList:d,options:l}};let o=[],a=[];if(Array.isArray(t.items)){const{items:h}=t;h.forEach(l=>{const d=r(l);o=[...o,...d.options],a=[...a,...d.messagesAsList]})}else{const h=r(t);o=[...o,...h.options],a=[...a,...h.messagesAsList]}return{options:o,message:a.length?a.join(`
14
14
  `):void 0,source:this.createMessageSource(e),alias:this.createAlias(e,s),timestamp:n}}createMessageSource(t){return t}createAlias(t,e){return t===Q.System?"system":(e==null?void 0:e.name)||"Me"}handleContactMethod(t){if(!this.cache.has(t))return;const e=this.cache.get(t);let s="";return s=this.appendText(s,`${e.clientName}:`),s=this.appendText(s,e.title),e.description&&(s=this.appendText(s,e.title)),s}getDetails(t,e=!0){if(!t)return"";const{header:s,title:n,label:r,description:o,text:a,html:c,body:h,contactMethodId:l}=t;let d="";if(l){const u=this.handleContactMethod(l.toString());u&&(d=this.appendText(d,u,e))}return s&&(d=this.appendText(d,s,e)),n&&(d=this.appendText(d,n,e)),o&&(d=this.appendText(d,o,e)),a&&(d=this.appendText(d,a,e)),r&&(d=this.appendText(d,r,e)),c&&(d=this.appendText(d,c,e)),h&&typeof h=="string"&&(d=this.appendText(d,h,e)),d}createMessageContent(t){let e="";return e=this.getDetails(t),e}createMessageOptions(t){let e=[],s=[];return Array.isArray(t==null?void 0:t.actions)?s=t.actions:typeof(t==null?void 0:t.actions)=="object"&&(s=Object.entries(t.actions).map(([n,r])=>({actionKey:n,label:r}))),s.length&&(e=s.map(n=>this.getDetails(n,!1))),e}appendText(t,e,s=!0){return s&&t.length?`${t}
15
- ${e}`:t.length?`${t} ${e}`:e}dispose(){this.subscriptions.forEach(t=>{t()})}}class Zt{constructor(t,e){this.provider=t,this.print=(s,n)=>{const r={name:this.name,avatar:this.avatar,id:this.id},o=At(s,n);return this.provider.createEntry(o.key,o.content,Q.Agent,r,o.timestamp)},this.typing=()=>this.provider.setTypingState({name:this.name,avatar:this.avatar}),this.id=e.id||F(),this.name=e.name,this.avatar=e.avatar}update(t){var n;const{name:e,avatar:s}=t;s===null?this.avatar=void 0:s&&(this.avatar=s),e===null?this.name=void 0:e&&(this.name=e),(n=this.provider.controller)==null||n.events.dispatch("conversation:agent-updated",{agent:this})}}class de{constructor(t,e,s){this.name=t,this.controller=s,this.subscriptions=[],this.user=s==null?void 0:s.user,this.options={silent:!1}}static create(t,e,s){return new de(t,e,s)}createAgent(t={}){var e;if(this.controller){const s=this.controller.getAgentById(t.id),n=s?new Zt(this,{...s,...t}):new Zt(this,t);return s||(e=this.controller)==null||e.events.dispatch("conversation:agent-created",{agent:n}),n}}print(t){var e;return(e=this.controller)==null?void 0:e.print(t)}setTypingState(t,e){var s;return(s=this.controller)==null?void 0:s.setTypingState(t,e)}loading(){return this.controller?this.controller.loader():()=>()=>{}}createEntry(t,e,s,n,r){var o;return(o=this.controller)==null?void 0:o.createEntry(t,e,s,n,r)}dispose(){var t;process.env.NODE_ENV!=="production"&&console.log(`conversation-provider: dispose (${this.name})`),(t=this.controller)==null||t.disposeProvider(this),this.controller=null,this.subscriptions.forEach(e=>e())}isRehydrated(){var t;return((t=this.controller)==null?void 0:t.isRehydrated())||Promise.resolve(!1)}getHistory(){var t;return((t=this.controller)==null?void 0:t.getHistory())||[]}complete(){var t;(t=this.controller)==null||t.onCompleteProvider()}setOptions(t={silent:!1}){this.options=t}onUnreadMessage(t){var e;if(this.controller){const s=(e=this.controller)==null?void 0:e.onUnreadMessage(t);return this.subscriptions.push(s),()=>{s()}}}onMounted(t){var e;if(this.controller){const s=(e=this.controller)==null?void 0:e.events.subscribe("conversation:component-mount-changed",t);return this.subscriptions.push(s),t({},this.controller.getComponentMountedState()),()=>{s()}}}}const ps=i=>`conversation-${i}`;class Bi{constructor(){this._locking=Promise.resolve(),this._locks=0}isLocked(){return this._locks>0}lock(){this._locks+=1;let t,e=new Promise(n=>t=()=>{this._locks-=1,n()}),s=this._locking.then(()=>t);return this._locking=this._locking.then(()=>e),s}}class Vi{constructor(t,e,s){this.container=t,this.enabled=s,this.locker=new Bi,this.initialStoredAgents=[],this.sessionStorageKey=ps(e.id),e.onStarted(async()=>{if(e.messages.length>0)return;const{agents:n}=await this.read(),r=[];n&&n.forEach(a=>{const c=e.providerIndex(a.providerName),h=c>-1?e.registeredProviders[c]:e.createProvider(a.providerName),l=new Zt(h,{name:a.name,avatar:a.avatar,id:a.id});r.push(l)});const{messages:o}=await this.read();o.forEach(a=>{switch(a.type){case"agent":{const c=r.find(h=>{var l;return h.id===((l=a.sender)==null?void 0:l.id)});c&&c.print(a.content.items||a.content,{key:a.key});return}case"user":{e.user.print(a.content.items||a.content,{key:a.key});return}case"system":default:e.print(a.content.items||a.content)}})}),e.onMessageCreated(async(n,r)=>{this.write(r.message,"messages")}),e.events.subscribe("conversation:agent-created",async(n,r)=>{const o={id:r.agent.id,name:r.agent.name,avatar:r.agent.avatar,providerName:r.agent.provider.name};await this.write(o,"agents")}),e.events.subscribe("conversation:agent-updated",async(n,r)=>{const{agents:o}=await this.read();await this.write([...o.map(a=>a.id===r.agent.id?{...a,name:r.agent.name,avatar:r.agent.avatar}:a)],"agents","update")})}setInitialData(t){this.initialStoredAgents=t.agents}async isRehydrated(){const{messages:t}=await this.read();return t.length>0}getStoredAgent(t){if(this.enabled)return this.initialStoredAgents.find(e=>e.id===t)}async write(t,e,s="add"){if(!this.enabled)return;const n=await this.locker.lock();return wt(this.container,this.sessionStorageKey,$.Necessary).then(async r=>{if(s==="add"){const o=await this.read();if(e==="messages"&&o.messages.findIndex(c=>c.key===t.key)>-1){n();return}let a={...o};return e==="messages"?a.messages=[...a.messages,t]:e==="agents"&&(a.agents=[...a.agents,t]),r({...o,...a}).then(()=>{n()})}if(s==="update"&&e==="agents"){const o=await this.read();return r({...o,agents:t}).then(()=>{n()})}return r(t).then(()=>{n()})})}async read(){return z(this.container,this.sessionStorageKey).then(t=>t||{messages:[],agents:[]})}}class Ji{constructor(t){this.controller=t,this.print=(e,s)=>{const n=At(e,s);return this.controller.createEntry(n.key,n.content,Q.User,void 0,n.timestamp)}}}const Gt=async(i,t,e)=>{const s=await i.getAsync("conversation"),n=await i.getAsync("components"),r=s.controllers.find(o=>o.conversation.id===t);if(r){const o=[...r.conversation.providers];o.forEach(c=>{r.conversation.setProviderOptions(c,{silent:!0})}),r.conversation.queueProviders(o),r.conversation.setProviders([e]);const a=n.components().ofType("conversation");n.write({key:"setConversationProvider",attributes:{properties:{providers:[e]}},target:a,provider:"localStorage"})}};class gs{constructor(t){this.writer=t}update(t){const e=this.getNormalizedSettings(t);this.writer(e)}remove(){this.writer(null)}getNormalizedSettings(t){return typeof t=="string"?{body:t}:t.length>-1&&typeof t=="object"?{items:t}:t}}var Q=(i=>(i.User="user",i.Agent="agent",i.System="system",i))(Q||{});const At=(i,t)=>{let e,s=(t==null?void 0:t.key)||F(),n=Date.now();return Array.isArray(i)&&i.length>-1?typeof i[0]=="string"?e={items:[i]}:e={items:i}:typeof i=="string"?e={body:i}:(i=i||{},i.type?e={...i}:(e={body:i.body,actions:i.actions,title:i.title},i.key&&(s=i.key),i.timestamp&&(n=i.timestamp),i.form,i.timestamp===null&&(n=null))),{content:e,key:s,timestamp:n}},je=(i,t)=>{if(!t)return;const e=JSON.stringify(t),s=i.findIndex(n=>e===JSON.stringify(n));if(s>-1)return i.splice(s,1)};class ms{constructor(t,e,s){this.container=t,this.id=e,this.formHandlers={},this.user=new Ji(this),this.providers=[],this.active=!1,this.queuedProviders=[],this.registeredProviders=[],this.loaders=0,this.componentMounted=!1,this.messages=[],this.typingActors=[],this.print=r=>{const o=At(r);return this.createEntry(o.key,o.content,"system",void 0,o.timestamp)};const n=t.get("$widget");this.events=n.events.createChild(this),this.store=new Vi(t,this,s.rehydrate),this.conversationHistory=new Wi(this)}setInitialStorage(t){this.store.setInitialData(t)}setProviders(t){const e=[],s=[];this.providers.reduce((n,r)=>(t.indexOf(r)===-1&&n.push(r),n),[]).forEach(n=>{const r=this.providers.indexOf(n);r>-1&&(e.push(n),this.providers.splice(r,1))}),t.forEach(n=>{this.providers.indexOf(n)===-1&&(s.push(n),this.providers.push(n))}),(s.length||e.length)&&this.events.dispatch("conversation:providers-changed",{added:s,removed:e})}createProvider(t){const e=this.providerIndex(t);if(e>-1)return this.registeredProviders[e];const s=de.create(t,this.container,this);return this.registeredProviders.push(s),s}providerIndex(t){return this.registeredProviders.findIndex(e=>e.name===t)}getAgentById(t){if(t)return this.store.getStoredAgent(t)}dispose(){this.conversationHistory.dispose(),this.registeredProviders.forEach(t=>t.dispose()),this.messages=[],this.events.dispatch("conversation:controller-disposed",this),this.active=!1}onDispose(t){return this.events.subscribe("conversation:controller-disposed",t)}onStarted(t){return this.events.subscribe("conversation:started",t)}onMessageCreated(t){return this.events.subscribe("conversation:message-created",t)}isRehydrated(){return this.store.isRehydrated()}disposeProvider(t){const e=this.providerIndex(t.name);e>-1&&this.registeredProviders.splice(e,1),this.events.dispatch("conversation:providers-changed",{removed:[t.name]}),this.registeredProviders.length||this.dispose()}onProvidersChange(t){return this.events.subscribe("conversation:providers-changed",t)}setComponentMountedState(t){this.componentMounted!==t&&(this.componentMounted=t,t&&(this.events.dispatch("conversation:unread-message",!1),this.events.dispatch("conversation:started",!0),this.active=!0),this.events.dispatch("conversation:component-mount-changed",t))}setProviderOptions(t,e){const s=this.providerIndex(t);s>-1&&this.registeredProviders[s].setOptions(e)}changeProvider(t){this.registeredProviders.find(s=>s.name===t)&&Gt(this.container,this.id,t)}queueProviders(t){this.queuedProviders=t}onCompleteProvider(){const t=this.queuedProviders.pop();t&&Gt(this.container,this.id,t)}getComponentMountedState(){return this.componentMounted}onUnreadMessage(t){return this.events.subscribe("conversation:unread-message",t)}createEntry(t,e,s,n,r){const o={key:t,content:e,type:s,sender:n||null,timestamp:r||r===null?r:Date.now()};this.messages.push(o),o.type==="agent"&&je(this.typingActors,n);const a=new gs(c=>{if(c!==null){const{timestamp:h=void 0,...l}=c;o.content=l,h&&(o.timestamp=h)}else{const h=this.messages.indexOf(o);o.content=null,h>-1&&this.messages.splice(h,1)}this.events.dispatch("conversation:message-updated",{message:o}),this.update()});return this.events.dispatch("conversation:message-created",{message:o}),this.update(),this.componentMounted||this.events.dispatch("conversation:unread-message",!0),a}update(){this.events.dispatch("conversation:updated",{messages:this.messages,loading:this.loaders>0,typingActors:this.typingActors})}getMessageStream(){return{messages:this.messages,loading:this.loaders>0,typingActors:this.typingActors}}setTypingState(t,e){return this.typingActors.indexOf(t)===-1&&(this.typingActors.push(t),this.update()),()=>{je(this.typingActors,t),this.update()}}loader(){this.loaders=this.loaders+1;let t=!1;return this.loaders===1&&this.update(),()=>{t||(t=!0,this.loaders=this.loaders-1,this.loaders===0&&this.update())}}submitForm(t,e){this.formHandlers[t]={...this.formHandlers[t],submit:e}}validateForm(t,e){this.formHandlers[t]={...this.formHandlers[t],validate:e}}getHistory(){return this.conversationHistory.getConversationLogs()}}const qi=(i,t)=>{const e=i.split("_contact");return t.widgets.get(e[0])},ue=i=>{const t=i.get("$widget"),{name:e,implementation:s}=i.get("$widget"),n=e.indexOf("_contact")>-1?qi(e,s):t,{data:r}=i.get("$settings"),{trigger:o}=n.container.get("$settings"),a=`${e.replace("_contact-method","").replace("_contact","")}_contact-method`,c=s.widgets.get(a);return c&&!o?{chatWidget:c,mainWidget:n,data:r}:{mainWidget:n,data:r}},Fi=i=>{const{chatWidget:t}=ue(i);return!!t},He=(i,t,e)=>{const{mainWidget:s,data:n,chatWidget:r}=ue(i);return r?r.state==="activated"?r.invoke("open").then(()=>{r.container.getAsync("conversation").then(o=>{o.navigateToConversationIfActive(t.id)})}):r.activate().then(()=>{const{trigger:o}=r.container.get("$settings");return o.action="hide",r.invoke("setSettings",()=>({data:n,trigger:o,activate:!0})).then(()=>r.container.getAsync("components").then(a=>{const c=a.components().ofType("contact-method");a.write({key:"setContactMethodId",attributes:{properties:{id:t.id,guideId:t.guideId}},target:c,provider:"localStorage"});const h=a.components().ofType("conversation");a.write({key:"setConversationProvider",attributes:{properties:{providers:[t.clientName]}},target:h,provider:"localStorage"})}))}).then(()=>r.invoke("attach",{key:"contact-method",triggerDOMElement:e,withRenderState:"open"})).then(()=>(wt(r.container,"activeStickyWidget",$.Necessary,{medium:b.Local,scope:bt.Implementation}).then(o=>o(r.name)),r.container.getAsync("conversation").then(o=>{o.setConversationEndedBehavior(Et.Deactivate)}).then(()=>!1))):!r},Qi=(i,t,e="conversation")=>{const{mainWidget:s,chatWidget:n}=ue(i);return s.container.getAsync("conversation").then(r=>{var o;(o=r.setConversationEndedBehavior(Et.Navigate))==null||o.then(()=>{s.container.getAsync("components").then(a=>{const c=a.components().ofType("conversation");a.write({key:"setConversationProvider",attributes:{properties:{providers:[t.clientName]}},target:c,provider:"localStorage"})})})})},lt="conversations";var Et=(i=>(i.Deactivate="deactivate",i.Navigate="navigate",i.None="none",i))(Et||{});class Ct{constructor(t,e){this.container=t,this.components=e,this.controllers=[],this.providers=[],this.disposeProviders={},this.subscriptions=[],this.storageWriter=null,this.buttonQuery=null,this.sessionInfo=null;const s=t.get("$widget");this.events=s.events.createChild(this)}initialize(){wt(this.container,lt,$.Necessary,{medium:b.Local}).then(t=>this.storageWriter=t),z(this.container,lt,b.Local).then(t=>{this.buttonQuery=this.components.components().ofType("conversation-return-button"),t&&(this.sessionInfo=t,t.id&&t.route&&this.writeToComponents({active:!0,alert:{show:!1}}))}),this.events.subscribe("conversation:ended",(t,e)=>{var s;switch((s=this.sessionInfo)==null?void 0:s.conversationEndedBehavior){case"deactivate":this.container.get("$widget").deactivate();break}this.writeToComponents({active:!1}),this.sessionInfo=null,this.storageWriter&&this.storageWriter()})}addSubscription(t){this.subscriptions.push(t)}static getInstance(t,e="conversation"){return nt(t)(()=>t.getAsync(e).then(s=>{let n=s;return n||ae.getInstance(t).then(r=>(n=new Ct(t,r),n.initialize(),t.registerAsync(e,()=>n),n))}))}setConversationEndedBehavior(t){return z(this.container,lt,b.Local).then(e=>{let s=e;return s?s.conversationEndedBehavior=t:s={conversationEndedBehavior:t},this.sessionInfo=s,this.storageWriter&&this.storageWriter(this.sessionInfo)||Promise.resolve()})}async createController(t,e){const s=ps(t),{agents:n}=await z(this.container,s)||{agents:[]},r=this.controllers.findIndex(a=>a.conversation.id===t);let o;return r>-1?o=this.controllers[r].conversation:o=new ms(this.container,t,e),o.setInitialStorage({agents:n||[]}),o}registerProvider(t,e){const s={name:t,handler:e};this.providers.push(s),this.controllers.filter(n=>n.conversation.providers.indexOf(t)>-1).forEach(n=>{this.invokeHandler(s,n)})}registerController(t,e){const s=this.controllers.findIndex(r=>r.conversation.id===t.id);let n;if(s<0){n={conversation:t,component:e},this.controllers.push(n);const r=o=>{o&&this.providers.filter(a=>o.indexOf(a.name)>-1).forEach(a=>{this.invokeHandler(a,n)})};return this.subscriptions.push(t.onDispose((o,a)=>{const c=this.controllers.findIndex(h=>h.conversation===a);c>-1&&this.controllers.splice(c,1),this.components.components().ofType("conversation-return-button").select().writeProperties({active:!1}),this.events.dispatch("conversation:ended",{},{bubbles:!0})})),this.subscriptions.push(t.onProvidersChange((o,a)=>{const{added:c,removed:h=[]}=a;h.forEach(l=>{(this.disposeProviders[l]||[]).forEach(d=>{d()})}),r(c)})),this.subscriptions.push(t.onStarted((o,a)=>{var h;const c={id:t.id,conversationEndedBehavior:(h=this.sessionInfo)==null?void 0:h.conversationEndedBehavior};this.sessionInfo=c,this.storageWriter&&this.storageWriter(c),this.writeToComponents({active:a})})),this.subscriptions.push(t.onUnreadMessage((o,a)=>{this.events.dispatch("conversation:unread-message",a),this.writeToComponents({alert:{show:a}})})),r(t.providers),!0}return n=this.controllers[s],!1}writeToComponents(t,e="conversationReturnButtonState"){this.buttonQuery&&this.components.write({key:"conversationReturnButtonState",attributes:{properties:t},target:this.buttonQuery,provider:"localStorage"})}invokeHandler(t,e){const s=t.handler(e.conversation.createProvider(t.name),e.component);s&&(this.disposeProviders[t.name]||(this.disposeProviders[t.name]=[]),this.disposeProviders[t.name].push(s))}getComponentRoute(){return z(this.container,lt,b.Local).then(t=>t==null?void 0:t.route)}dispose(){Object.keys(this.disposeProviders).forEach(t=>{this.disposeProviders[t].forEach(e=>{e()})}),this.subscriptions.forEach(t=>{t()}),this.controllers=[],this.providers=[]}static async handleContactMethodClick(t,e,s,n){if(Fi(e)){t.preventDefault();let r=document.getElementById("humany-dynamic-anchor");r||(r=document.createElement("a"),r.setAttribute("href","#"),r.id="humany-dynamic-anchor",document.body.appendChild(r)),He(e,s,r)}He(e,s)}static async handleContactMethodSubmit(t,e){var s,n;return(n=(s=e==null?void 0:e.body.form.meta)==null?void 0:s.conversation)!=null&&n.id?Gt(t,e.body.form.meta.conversation.id,e.clientName):Qi(t,e)}}/**
15
+ ${e}`:t.length?`${t} ${e}`:e}dispose(){this.subscriptions.forEach(t=>{t()})}}class Zt{constructor(t,e){this.provider=t,this.print=(s,n)=>{const r={name:this.name,avatar:this.avatar,id:this.id},o=At(s,n);return this.provider.createEntry(o.key,o.content,Q.Agent,r,o.timestamp)},this.typing=()=>this.provider.setTypingState({name:this.name,avatar:this.avatar}),this.id=e.id||F(),this.name=e.name,this.avatar=e.avatar}update(t){var n;const{name:e,avatar:s}=t;s===null?this.avatar=void 0:s&&(this.avatar=s),e===null?this.name=void 0:e&&(this.name=e),(n=this.provider.controller)==null||n.events.dispatch("conversation:agent-updated",{agent:this})}}class de{constructor(t,e,s){this.name=t,this.controller=s,this.subscriptions=[],this.user=s==null?void 0:s.user,this.options={silent:!1}}static create(t,e,s){return new de(t,e,s)}createAgent(t={}){var e;if(this.controller){const s=this.controller.getAgentById(t.id),n=s?new Zt(this,{...s,...t}):new Zt(this,t);return s||(e=this.controller)==null||e.events.dispatch("conversation:agent-created",{agent:n}),n}}print(t){var e;return(e=this.controller)==null?void 0:e.print(t)}setTypingState(t,e){var s;return(s=this.controller)==null?void 0:s.setTypingState(t,e)}loading(){return this.controller?this.controller.loader():()=>()=>{}}createEntry(t,e,s,n,r){var o;return(o=this.controller)==null?void 0:o.createEntry(t,e,s,n,r)}dispose(){var t;process.env.NODE_ENV!=="production"&&console.log(`conversation-provider: dispose (${this.name})`),(t=this.controller)==null||t.disposeProvider(this),this.controller=null,this.subscriptions.forEach(e=>e())}isRehydrated(){var t;return((t=this.controller)==null?void 0:t.isRehydrated())||Promise.resolve(!1)}getHistory(){var t;return((t=this.controller)==null?void 0:t.getHistory())||[]}complete(){var t;(t=this.controller)==null||t.onCompleteProvider()}setOptions(t={silent:!1}){this.options=t}onUnreadMessage(t){var e;if(this.controller){const s=(e=this.controller)==null?void 0:e.onUnreadMessage(t);return this.subscriptions.push(s),()=>{s()}}}onMounted(t){var e;if(this.controller){const s=(e=this.controller)==null?void 0:e.events.subscribe("conversation:component-mount-changed",t);return this.subscriptions.push(s),t({},this.controller.getComponentMountedState()),()=>{s()}}}}const ps=i=>`conversation-${i}`;class Bi{constructor(){this._locking=Promise.resolve(),this._locks=0}isLocked(){return this._locks>0}lock(){this._locks+=1;let t;const e=new Promise(n=>t=()=>{this._locks-=1,n()}),s=this._locking.then(()=>t);return this._locking=this._locking.then(()=>e),s}}class Vi{constructor(t,e,s){this.container=t,this.enabled=s,this.locker=new Bi,this.initialStoredAgents=[],this.sessionStorageKey=ps(e.id),e.onStarted(async()=>{if(e.messages.length>0)return;const{agents:n}=await this.read(),r=[];n&&n.forEach(a=>{const c=e.providerIndex(a.providerName),h=c>-1?e.registeredProviders[c]:e.createProvider(a.providerName),l=new Zt(h,{name:a.name,avatar:a.avatar,id:a.id});r.push(l)});const{messages:o}=await this.read();o.forEach(a=>{switch(a.type){case"agent":{const c=r.find(h=>{var l;return h.id===((l=a.sender)==null?void 0:l.id)});c&&c.print(a.content.items||a.content,{key:a.key});return}case"user":{e.user.print(a.content.items||a.content,{key:a.key});return}case"system":default:e.print(a.content.items||a.content)}})}),e.onMessageCreated(async(n,r)=>{this.write(r.message,"messages")}),e.events.subscribe("conversation:agent-created",async(n,r)=>{const o={id:r.agent.id,name:r.agent.name,avatar:r.agent.avatar,providerName:r.agent.provider.name};await this.write(o,"agents")}),e.events.subscribe("conversation:agent-updated",async(n,r)=>{const{agents:o}=await this.read();await this.write([...o.map(a=>a.id===r.agent.id?{...a,name:r.agent.name,avatar:r.agent.avatar}:a)],"agents","update")})}setInitialData(t){this.initialStoredAgents=t.agents}async isRehydrated(){const{messages:t}=await this.read();return t.length>0}getStoredAgent(t){if(this.enabled)return this.initialStoredAgents.find(e=>e.id===t)}async write(t,e,s="add"){if(!this.enabled)return;const n=await this.locker.lock();return wt(this.container,this.sessionStorageKey,$.Necessary).then(async r=>{if(s==="add"){const o=await this.read();if(e==="messages"&&o.messages.findIndex(c=>c.key===t.key)>-1){n();return}const a={...o};return e==="messages"?a.messages=[...a.messages,t]:e==="agents"&&(a.agents=[...a.agents,t]),r({...o,...a}).then(()=>{n()})}if(s==="update"&&e==="agents"){const o=await this.read();return r({...o,agents:t}).then(()=>{n()})}return r(t).then(()=>{n()})})}async read(){return z(this.container,this.sessionStorageKey).then(t=>t||{messages:[],agents:[]})}}class Ji{constructor(t){this.controller=t,this.print=(e,s)=>{const n=At(e,s);return this.controller.createEntry(n.key,n.content,Q.User,void 0,n.timestamp)}}}const Gt=async(i,t,e)=>{const s=await i.getAsync("conversation"),n=await i.getAsync("components"),r=s.controllers.find(o=>o.conversation.id===t);if(r){const o=[...r.conversation.providers];o.forEach(c=>{r.conversation.setProviderOptions(c,{silent:!0})}),r.conversation.queueProviders(o),r.conversation.setProviders([e]);const a=n.components().ofType("conversation");n.write({key:"setConversationProvider",attributes:{properties:{providers:[e]}},target:a,provider:"localStorage"})}};class gs{constructor(t){this.writer=t}update(t){const e=this.getNormalizedSettings(t);this.writer(e)}remove(){this.writer(null)}getNormalizedSettings(t){return typeof t=="string"?{body:t}:t.length>-1&&typeof t=="object"?{items:t}:t}}var Q=(i=>(i.User="user",i.Agent="agent",i.System="system",i))(Q||{});const At=(i,t)=>{let e,s=(t==null?void 0:t.key)||F(),n=Date.now();return Array.isArray(i)&&i.length>-1?typeof i[0]=="string"?e={items:[i]}:e={items:i}:typeof i=="string"?e={body:i}:(i=i||{},i.type?e={...i}:(e={body:i.body,actions:i.actions,title:i.title},i.key&&(s=i.key),i.timestamp&&(n=i.timestamp),i.form,i.timestamp===null&&(n=null))),{content:e,key:s,timestamp:n}},je=(i,t)=>{if(!t)return;const e=JSON.stringify(t),s=i.findIndex(n=>e===JSON.stringify(n));if(s>-1)return i.splice(s,1)};class ms{constructor(t,e,s){this.container=t,this.id=e,this.formHandlers={},this.user=new Ji(this),this.providers=[],this.active=!1,this.queuedProviders=[],this.registeredProviders=[],this.loaders=0,this.componentMounted=!1,this.messages=[],this.typingActors=[],this.print=r=>{const o=At(r);return this.createEntry(o.key,o.content,"system",void 0,o.timestamp)};const n=t.get("$widget");this.events=n.events.createChild(this),this.store=new Vi(t,this,s.rehydrate),this.conversationHistory=new Wi(this)}setInitialStorage(t){this.store.setInitialData(t)}setProviders(t){const e=[],s=[];this.providers.reduce((n,r)=>(t.indexOf(r)===-1&&n.push(r),n),[]).forEach(n=>{const r=this.providers.indexOf(n);r>-1&&(e.push(n),this.providers.splice(r,1))}),t.forEach(n=>{this.providers.indexOf(n)===-1&&(s.push(n),this.providers.push(n))}),(s.length||e.length)&&this.events.dispatch("conversation:providers-changed",{added:s,removed:e})}createProvider(t){const e=this.providerIndex(t);if(e>-1)return this.registeredProviders[e];const s=de.create(t,this.container,this);return this.registeredProviders.push(s),s}providerIndex(t){return this.registeredProviders.findIndex(e=>e.name===t)}getAgentById(t){if(t)return this.store.getStoredAgent(t)}dispose(){this.conversationHistory.dispose(),this.registeredProviders.forEach(t=>t.dispose()),this.messages=[],this.events.dispatch("conversation:controller-disposed",this),this.active=!1}onDispose(t){return this.events.subscribe("conversation:controller-disposed",t)}onStarted(t){return this.events.subscribe("conversation:started",t)}onMessageCreated(t){return this.events.subscribe("conversation:message-created",t)}isRehydrated(){return this.store.isRehydrated()}disposeProvider(t){const e=this.providerIndex(t.name);e>-1&&this.registeredProviders.splice(e,1),this.events.dispatch("conversation:providers-changed",{removed:[t.name]}),this.registeredProviders.length||this.dispose()}onProvidersChange(t){return this.events.subscribe("conversation:providers-changed",t)}setComponentMountedState(t){this.componentMounted!==t&&(this.componentMounted=t,t&&(this.events.dispatch("conversation:unread-message",!1),this.events.dispatch("conversation:started",!0),this.active=!0),this.events.dispatch("conversation:component-mount-changed",t))}setProviderOptions(t,e){const s=this.providerIndex(t);s>-1&&this.registeredProviders[s].setOptions(e)}changeProvider(t){this.registeredProviders.find(s=>s.name===t)&&Gt(this.container,this.id,t)}queueProviders(t){this.queuedProviders=t}onCompleteProvider(){const t=this.queuedProviders.pop();t&&Gt(this.container,this.id,t)}getComponentMountedState(){return this.componentMounted}onUnreadMessage(t){return this.events.subscribe("conversation:unread-message",t)}createEntry(t,e,s,n,r){const o={key:t,content:e,type:s,sender:n||null,timestamp:r||r===null?r:Date.now()};this.messages.push(o),o.type==="agent"&&je(this.typingActors,n);const a=new gs(c=>{if(c!==null){const{timestamp:h=void 0,...l}=c;o.content=l,h&&(o.timestamp=h)}else{const h=this.messages.indexOf(o);o.content=null,h>-1&&this.messages.splice(h,1)}this.events.dispatch("conversation:message-updated",{message:o}),this.update()});return this.events.dispatch("conversation:message-created",{message:o}),this.update(),this.componentMounted||this.events.dispatch("conversation:unread-message",!0),a}update(){this.events.dispatch("conversation:updated",{messages:this.messages,loading:this.loaders>0,typingActors:this.typingActors})}getMessageStream(){return{messages:this.messages,loading:this.loaders>0,typingActors:this.typingActors}}setTypingState(t,e){return this.typingActors.indexOf(t)===-1&&(this.typingActors.push(t),this.update()),()=>{je(this.typingActors,t),this.update()}}loader(){this.loaders=this.loaders+1;let t=!1;return this.loaders===1&&this.update(),()=>{t||(t=!0,this.loaders=this.loaders-1,this.loaders===0&&this.update())}}submitForm(t,e){this.formHandlers[t]={...this.formHandlers[t],submit:e}}validateForm(t,e){this.formHandlers[t]={...this.formHandlers[t],validate:e}}getHistory(){return this.conversationHistory.getConversationLogs()}}const qi=(i,t)=>{const e=i.split("_contact");return t.widgets.get(e[0])},ue=i=>{const t=i.get("$widget"),{name:e,implementation:s}=i.get("$widget"),n=e.indexOf("_contact")>-1?qi(e,s):t,{data:r}=i.get("$settings"),{trigger:o}=n.container.get("$settings"),a=`${e.replace("_contact-method","").replace("_contact","")}_contact-method`,c=s.widgets.get(a);return c&&!o?{chatWidget:c,mainWidget:n,data:r}:{mainWidget:n,data:r}},Fi=i=>{const{chatWidget:t}=ue(i);return!!t},He=(i,t,e)=>{const{mainWidget:s,data:n,chatWidget:r}=ue(i);return r?r.state==="activated"?r.invoke("open").then(()=>{r.container.getAsync("conversation").then(o=>{o.navigateToConversationIfActive(t.id)})}):r.activate().then(()=>{const{trigger:o}=r.container.get("$settings");return o.action="hide",r.invoke("setSettings",()=>({data:n,trigger:o,activate:!0})).then(()=>r.container.getAsync("components").then(a=>{const c=a.components().ofType("contact-method");a.write({key:"setContactMethodId",attributes:{properties:{id:t.id,guideId:t.guideId}},target:c,provider:"localStorage"});const h=a.components().ofType("conversation");a.write({key:"setConversationProvider",attributes:{properties:{providers:[t.clientName]}},target:h,provider:"localStorage"})}))}).then(()=>r.invoke("attach",{key:"contact-method",triggerDOMElement:e,withRenderState:"open"})).then(()=>(wt(r.container,"activeStickyWidget",$.Necessary,{medium:b.Local,scope:bt.Implementation}).then(o=>o(r.name)),r.container.getAsync("conversation").then(o=>{o.setConversationEndedBehavior(Et.Deactivate)}).then(()=>!1))):!r},Qi=(i,t,e="conversation")=>{const{mainWidget:s,chatWidget:n}=ue(i);return s.container.getAsync("conversation").then(r=>{var o;(o=r.setConversationEndedBehavior(Et.Navigate))==null||o.then(()=>{s.container.getAsync("components").then(a=>{const c=a.components().ofType("conversation");a.write({key:"setConversationProvider",attributes:{properties:{providers:[t.clientName]}},target:c,provider:"localStorage"})})})})},lt="conversations";var Et=(i=>(i.Deactivate="deactivate",i.Navigate="navigate",i.None="none",i))(Et||{});class Ct{constructor(t,e){this.container=t,this.components=e,this.controllers=[],this.providers=[],this.disposeProviders={},this.subscriptions=[],this.storageWriter=null,this.buttonQuery=null,this.sessionInfo=null;const s=t.get("$widget");this.events=s.events.createChild(this)}initialize(){wt(this.container,lt,$.Necessary,{medium:b.Local}).then(t=>this.storageWriter=t),z(this.container,lt,b.Local).then(t=>{this.buttonQuery=this.components.components().ofType("conversation-return-button"),t&&(this.sessionInfo=t,t.id&&t.route&&this.writeToComponents({active:!0,alert:{show:!1}}))}),this.events.subscribe("conversation:ended",(t,e)=>{var s;switch((s=this.sessionInfo)==null?void 0:s.conversationEndedBehavior){case"deactivate":this.container.get("$widget").deactivate();break}this.writeToComponents({active:!1}),this.sessionInfo=null,this.storageWriter&&this.storageWriter()})}addSubscription(t){this.subscriptions.push(t)}static getInstance(t,e="conversation"){return nt(t)(()=>t.getAsync(e).then(s=>{let n=s;return n||ae.getInstance(t).then(r=>(n=new Ct(t,r),n.initialize(),t.registerAsync(e,()=>n),n))}))}setConversationEndedBehavior(t){return z(this.container,lt,b.Local).then(e=>{let s=e;return s?s.conversationEndedBehavior=t:s={conversationEndedBehavior:t},this.sessionInfo=s,this.storageWriter&&this.storageWriter(this.sessionInfo)||Promise.resolve()})}async createController(t,e){const s=ps(t),{agents:n}=await z(this.container,s)||{agents:[]},r=this.controllers.findIndex(a=>a.conversation.id===t);let o;return r>-1?o=this.controllers[r].conversation:o=new ms(this.container,t,e),o.setInitialStorage({agents:n||[]}),o}registerProvider(t,e){const s={name:t,handler:e};this.providers.push(s),this.controllers.filter(n=>n.conversation.providers.indexOf(t)>-1).forEach(n=>{this.invokeHandler(s,n)})}registerController(t,e){const s=this.controllers.findIndex(r=>r.conversation.id===t.id);let n;if(s<0){n={conversation:t,component:e},this.controllers.push(n);const r=o=>{o&&this.providers.filter(a=>o.indexOf(a.name)>-1).forEach(a=>{this.invokeHandler(a,n)})};return this.subscriptions.push(t.onDispose((o,a)=>{const c=this.controllers.findIndex(h=>h.conversation===a);c>-1&&this.controllers.splice(c,1),this.components.components().ofType("conversation-return-button").select().writeProperties({active:!1}),this.events.dispatch("conversation:ended",{},{bubbles:!0})})),this.subscriptions.push(t.onProvidersChange((o,a)=>{const{added:c,removed:h=[]}=a;h.forEach(l=>{(this.disposeProviders[l]||[]).forEach(d=>{d()})}),r(c)})),this.subscriptions.push(t.onStarted((o,a)=>{var h;const c={id:t.id,conversationEndedBehavior:(h=this.sessionInfo)==null?void 0:h.conversationEndedBehavior};this.sessionInfo=c,this.storageWriter&&this.storageWriter(c),this.writeToComponents({active:a})})),this.subscriptions.push(t.onUnreadMessage((o,a)=>{this.events.dispatch("conversation:unread-message",a),this.writeToComponents({alert:{show:a}})})),r(t.providers),!0}return n=this.controllers[s],!1}writeToComponents(t,e="conversationReturnButtonState"){this.buttonQuery&&this.components.write({key:"conversationReturnButtonState",attributes:{properties:t},target:this.buttonQuery,provider:"localStorage"})}invokeHandler(t,e){const s=t.handler(e.conversation.createProvider(t.name),e.component);s&&(this.disposeProviders[t.name]||(this.disposeProviders[t.name]=[]),this.disposeProviders[t.name].push(s))}getComponentRoute(){return z(this.container,lt,b.Local).then(t=>t==null?void 0:t.route)}dispose(){Object.keys(this.disposeProviders).forEach(t=>{this.disposeProviders[t].forEach(e=>{e()})}),this.subscriptions.forEach(t=>{t()}),this.controllers=[],this.providers=[]}static async handleContactMethodClick(t,e,s,n){if(Fi(e)){t.preventDefault();let r=document.getElementById("humany-dynamic-anchor");r||(r=document.createElement("a"),r.setAttribute("href","#"),r.id="humany-dynamic-anchor",document.body.appendChild(r)),He(e,s,r)}He(e,s)}static async handleContactMethodSubmit(t,e){var s,n;return(n=(s=e==null?void 0:e.body.form.meta)==null?void 0:s.conversation)!=null&&n.id?Gt(t,e.body.form.meta.conversation.id,e.clientName):Qi(t,e)}}/**
16
16
  * @license
17
17
  * Copyright 2019 Google LLC
18
18
  * SPDX-License-Identifier: BSD-3-Clause
@@ -157,4 +157,4 @@ ${e}`:t.length?`${t} ${e}`:e}dispose(){this.subscriptions.forEach(t=>{t()})}}cla
157
157
  align-items: center;
158
158
  fill: var(--trigger-text-color, #fff);
159
159
  }
160
- `];ot([xt({attribute:!1})],K.prototype,"symbol",2);ot([xt({attribute:!1})],K.prototype,"container",2);ot([kt()],K.prototype,"active",2);ot([kt()],K.prototype,"loaded",2);ot([kt()],K.prototype,"icon",2);const gn=(i,t,e,s,n)=>i.getAsync("componentResolver").then(r=>(r.registerComponent(t,e),Ei(i,t,s||(()=>{}),t,n)));console.log("test1232342532422");const mn=(i,t)=>i.reduce((e,s,n)=>{var o,a;const r={...s,content:[{...s.content,key:s.key}]};if(e.length>0&&s.type!==Q.System){const c=e[e.length-1];if((!t&&t!==0||Math.abs(c.timestamp-s.timestamp)<t)&&((o=c.sender)==null?void 0:o.name)===((a=s.sender)==null?void 0:a.name)&&c.type===s.type)return c.timestamp=s.timestamp,c.content.push({...s.content,key:s.key}),e}return e.push(r),e},[]),vn=async i=>gn(i,"conversation",Promise.resolve().then(()=>require("./conversation-2a8210a9.js")),async t=>{const e=await Ct.getInstance(i),{rehydrate:s=!1}=t.properties(),n="component",r=await e.createController(n,{rehydrate:s}),o=e.registerController(r,t),a=3*60*1e3,c=d=>{const{providers:u=[]}=d;if(u){const p=Array.isArray(u)?u:[u];return r.setProviders(p),p}};c(t.properties(c)),r.setComponentMountedState(!0);const h=d=>{const{loading:u,typingActors:p,messages:v}=d;t.writeProperties({loading:u,typingActors:p,messages:mn(v,a)})};h(r.getMessageStream()),o&&(t.writeProperties({conversationControllerId:r.id}),t.actions.create("user-submit",(d,u)=>{if(u){const{preventDefault:p,validationPromise:v}=u;if(p){v&&v().then(f=>{f&&r.user.print(f)});return}}r.user.print(d.text)}),t.actions.create("user-typing",(d,u)=>{}),t.actions.create("form",(d,u)=>{}),t.actions.create("action",(d,u)=>{}),t.actions.create("overlay-mounted",(d,u)=>{}),t.actions.create("show-overlay",(d,u)=>{t.writeProperties({overlay:{conversation:!1,secondary:!1}})}),t.actions.create("hide-overlay",(d,u)=>{t.writeProperties({overlay:null})}),t.actions.create("show-overlay-conversation",(d,u)=>{t.writeProperties({overlay:{conversation:!0,secondary:!1}})}),t.actions.create("hide-overlay-conversation",(d,u)=>{t.writeProperties({overlay:{conversation:!1,secondary:!1}})}));const l=r.events.subscribe("conversation:updated",(d,u)=>{h(u)});return()=>{r.setComponentMountedState(!1),l(),r.active||h({messages:[],typingActors:[],loading:!1})}},{reuseController:!0});var ks=(i=>(i.LinkList="link-list",i.Separator="separator",i.ButtonList="button-list",i.ItemList="item-list",i.Text="text",i.HTML="html",i.VideoRequest="video-request",i))(ks||{});const fn=async(i,t,e)=>{await e};console.log("tes3t123");exports.A=g;exports.ConversationComponent=vn;exports.ConversationController=ms;exports.ConversationEndedBehavior=Et;exports.ConversationEntry=gs;exports.ConversationMessageListItemType=ks;exports.ConversationMessageType=Q;exports.ConversationPlatform=Ct;exports.Et=Ai;exports.P=$t;exports.T=I;exports.e=Es;exports.ht=F;exports.i=fs;exports.i$1=Cs;exports.mapBranding=xs;exports.n=xt;exports.o=Ps;exports.pt=ae;exports.registerCustomMessageComponent=fn;exports.s=B;exports.t=kt;exports.t$1=As;exports.x=X;
160
+ `];ot([xt({attribute:!1})],K.prototype,"symbol",2);ot([xt({attribute:!1})],K.prototype,"container",2);ot([kt()],K.prototype,"active",2);ot([kt()],K.prototype,"loaded",2);ot([kt()],K.prototype,"icon",2);const gn=(i,t,e,s,n)=>i.getAsync("componentResolver").then(r=>(r.registerComponent(t,e),Ei(i,t,s||(()=>{}),t,n)));console.log("test12323425324222");const mn=(i,t)=>i.reduce((e,s,n)=>{var o,a;const r={...s,content:[{...s.content,key:s.key}]};if(e.length>0&&s.type!==Q.System){const c=e[e.length-1];if((!t&&t!==0||Math.abs(c.timestamp-s.timestamp)<t)&&((o=c.sender)==null?void 0:o.name)===((a=s.sender)==null?void 0:a.name)&&c.type===s.type)return c.timestamp=s.timestamp,c.content.push({...s.content,key:s.key}),e}return e.push(r),e},[]),vn=async i=>gn(i,"conversation",Promise.resolve().then(()=>require("./conversation-da609cdf.js")),async t=>{const e=await Ct.getInstance(i),{rehydrate:s=!1}=t.properties(),n="component",r=await e.createController(n,{rehydrate:s}),o=e.registerController(r,t),a=3*60*1e3,c=d=>{const{providers:u=[]}=d;if(u){const p=Array.isArray(u)?u:[u];return r.setProviders(p),p}};c(t.properties(c)),r.setComponentMountedState(!0);const h=d=>{const{loading:u,typingActors:p,messages:v}=d;t.writeProperties({loading:u,typingActors:p,messages:mn(v,a)})};h(r.getMessageStream()),o&&(t.writeProperties({conversationControllerId:r.id}),t.actions.create("user-submit",(d,u)=>{if(u){const{preventDefault:p,validationPromise:v}=u;if(p){v&&v().then(f=>{f&&r.user.print(f)});return}}r.user.print(d.text)}),t.actions.create("user-typing",(d,u)=>{}),t.actions.create("form",(d,u)=>{}),t.actions.create("action",(d,u)=>{}),t.actions.create("overlay-mounted",(d,u)=>{}),t.actions.create("show-overlay",(d,u)=>{t.writeProperties({overlay:{conversation:!1,secondary:!1}})}),t.actions.create("hide-overlay",(d,u)=>{t.writeProperties({overlay:null})}),t.actions.create("show-overlay-conversation",(d,u)=>{t.writeProperties({overlay:{conversation:!0,secondary:!1}})}),t.actions.create("hide-overlay-conversation",(d,u)=>{t.writeProperties({overlay:{conversation:!1,secondary:!1}})}));const l=r.events.subscribe("conversation:updated",(d,u)=>{h(u)});return()=>{r.setComponentMountedState(!1),l(),r.active||h({messages:[],typingActors:[],loading:!1})}},{reuseController:!0});var ks=(i=>(i.LinkList="link-list",i.Separator="separator",i.ButtonList="button-list",i.ItemList="item-list",i.Text="text",i.HTML="html",i.VideoRequest="video-request",i))(ks||{});const fn=async(i,t,e)=>{await e};console.log("tes3t123");exports.A=g;exports.ConversationComponent=vn;exports.ConversationController=ms;exports.ConversationEndedBehavior=Et;exports.ConversationEntry=gs;exports.ConversationMessageListItemType=ks;exports.ConversationMessageType=Q;exports.ConversationPlatform=Ct;exports.Et=Ai;exports.P=$t;exports.T=I;exports.e=Es;exports.ht=F;exports.i=fs;exports.i$1=Cs;exports.mapBranding=xs;exports.n=xt;exports.o=Ps;exports.pt=ae;exports.registerCustomMessageComponent=fn;exports.s=B;exports.t=kt;exports.t$1=As;exports.x=X;
package/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-a12a1d3f.js");exports.ConversationComponent=e.ConversationComponent;exports.ConversationController=e.ConversationController;exports.ConversationEndedBehavior=e.ConversationEndedBehavior;exports.ConversationEntry=e.ConversationEntry;exports.ConversationMessageListItemType=e.ConversationMessageListItemType;exports.ConversationMessageType=e.ConversationMessageType;exports.ConversationPlatform=e.ConversationPlatform;exports.registerCustomMessageComponent=e.registerCustomMessageComponent;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-8e55fd9b.js");exports.ConversationComponent=e.ConversationComponent;exports.ConversationController=e.ConversationController;exports.ConversationEndedBehavior=e.ConversationEndedBehavior;exports.ConversationEntry=e.ConversationEntry;exports.ConversationMessageListItemType=e.ConversationMessageListItemType;exports.ConversationMessageType=e.ConversationMessageType;exports.ConversationPlatform=e.ConversationPlatform;exports.registerCustomMessageComponent=e.registerCustomMessageComponent;
package/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { f as s, g as n, d as a, j as r, k as t, C, c as i, r as v } from "./index-8a04bebb.mjs";
1
+ import { f as s, g as n, d as a, j as r, k as t, C, c as i, r as v } from "./index-5ce43fbe.mjs";
2
2
  export {
3
3
  s as ConversationComponent,
4
4
  n as ConversationController,
package/package.json CHANGED
@@ -1,7 +1,17 @@
1
1
  {
2
2
  "name": "@telia-ace/widget-conversation-flamingo",
3
- "version": "1.0.32",
4
- "dependencies": {},
3
+ "version": "1.0.37",
4
+ "dependencies": {
5
+ "@telia-ace/widget-utilities": "^1.0.16",
6
+ "lit": "^2.8.0",
7
+ "@lit-labs/motion": "^1.0.4",
8
+ "@teliads/icons": "^8.4.0",
9
+ "@teliads/components": "^22.1.1",
10
+ "@telia-ace/widget-runtime-flamingo": "*",
11
+ "@webprovisions/platform": "^1.1.3",
12
+ "@telia-ace/widget-core": "^1.0.27",
13
+ "@telia-ace/widget-services": "^1.0.27"
14
+ },
5
15
  "main": "./index.js",
6
16
  "module": "./index.mjs",
7
17
  "typings": "./index.d.ts"
package/types.d.ts CHANGED
@@ -49,7 +49,7 @@ export type ConversationMessageUpdateSettings = ConversationMessageContent & {
49
49
  };
50
50
  export type ConversationMessageSender = {
51
51
  name?: string;
52
- avatar?: string | Symbol;
52
+ avatar?: string | SymbolType;
53
53
  id?: string;
54
54
  };
55
55
  export declare enum ConversationMessageListType {
@@ -123,7 +123,7 @@ export type HtmlProperties = {
123
123
  };
124
124
  type HtmlItem = [ConversationMessageListItemType.HTML, HtmlProperties];
125
125
  type ItemPayload = LinkListItem | TextItem | SeparatorItem | ButtonListItem | HtmlItem | VideoRequestItem | ItemListItem;
126
- export type Symbol = {
126
+ export type SymbolType = {
127
127
  type: 'Uri' | 'Svg' | 'FontAwesome' | 'Text' | string;
128
128
  content: string;
129
129
  };