@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 +3 -3
- package/{conversation-18045ffc.mjs → conversation-069e0c28.mjs} +2 -2
- package/{conversation-2a8210a9.js → conversation-da609cdf.js} +2 -2
- package/{index-8a04bebb.mjs → index-5ce43fbe.mjs} +5 -4
- package/{index-a12a1d3f.js → index-8e55fd9b.js} +2 -2
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/package.json +12 -2
- package/types.d.ts +2 -2
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,
|
|
3
|
+
import { ConversationMessageSettings, ConverstationMessageItem, SymbolType } from './types';
|
|
4
4
|
export type AgentSettings = {
|
|
5
5
|
id?: string;
|
|
6
6
|
name?: string;
|
|
7
|
-
avatar?: string |
|
|
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 |
|
|
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-
|
|
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-
|
|
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
|
|
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
|
-
|
|
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("
|
|
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-
|
|
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("
|
|
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-
|
|
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
package/package.json
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telia-ace/widget-conversation-flamingo",
|
|
3
|
-
"version": "1.0.
|
|
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 |
|
|
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
|
|
126
|
+
export type SymbolType = {
|
|
127
127
|
type: 'Uri' | 'Svg' | 'FontAwesome' | 'Text' | string;
|
|
128
128
|
content: string;
|
|
129
129
|
};
|