@telia-ace/conversational-hub-bot-provider 1.3.22 → 1.3.23-rc.0

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.
@@ -6,7 +6,7 @@ import { useContainer as _, useDispatch as G, useConversation as I } from "@teli
6
6
  import { FormBuilder as M } from "@telia-ace/widget-forms";
7
7
  import { appendClassNames as O } from "@telia-ace/widget-utilities";
8
8
  import { useState as V, useRef as q, useEffect as $, useCallback as H } from "react";
9
- import { u as j } from "./index-3bfdc270.mjs";
9
+ import { u as j } from "./index-6e5c0efe.mjs";
10
10
  import "@telia-ace/widget-conversation";
11
11
  import "@telia-ace/widget-services";
12
12
  import "@webprovisions/platform";
@@ -16,14 +16,14 @@ const nt = ({
16
16
  groupId: f,
17
17
  className: x
18
18
  }) => {
19
- var h, g, w, k, D;
19
+ var h, g, w, S, k;
20
20
  const [t, m] = V(), d = _(), B = G(), b = q(!0), l = I();
21
21
  $(() => {
22
22
  const { events: e } = d.get("$widget"), c = e.subscribe(
23
23
  "conversational-hub-provider:form-submitted",
24
- async (i, o) => {
25
- var E;
26
- if (((E = o.form.meta) == null ? void 0 : E.groupId) !== f || o.id !== (t == null ? void 0 : t.id))
24
+ async (s, o) => {
25
+ var D;
26
+ if (((D = o.form.meta) == null ? void 0 : D.groupId) !== f || o.id !== (t == null ? void 0 : t.id))
27
27
  return;
28
28
  l && (o.form.meta || (o.form.meta = {}), o.form.meta.conversation = l);
29
29
  const y = await d.getAsync(
@@ -38,20 +38,20 @@ const nt = ({
38
38
  r
39
39
  );
40
40
  if (!p) {
41
- const S = new M(t.body.form);
42
- m(void 0), S.setValidationErrors(u), r.body = {
41
+ const E = new M(t.body.form);
42
+ m(void 0), E.setValidationErrors(u), r.body = {
43
43
  ...r.body,
44
- form: S.get()
44
+ form: E.get()
45
45
  }, m({ ...r });
46
46
  return;
47
47
  }
48
48
  const F = await y.submit(r);
49
49
  r.confirmation = F, m(r);
50
50
  }
51
- ), s = e.subscribe(
51
+ ), i = e.subscribe(
52
52
  "bot-provider:evaluate",
53
- async (i, o) => {
54
- if (o.id !== a)
53
+ async (s, o) => {
54
+ if (String(o.id) !== String(a))
55
55
  return;
56
56
  const r = await (await d.getAsync(
57
57
  "contactMethods"
@@ -75,19 +75,19 @@ const nt = ({
75
75
  }
76
76
  );
77
77
  return () => {
78
- c(), s();
78
+ c(), i();
79
79
  };
80
80
  }, [d, t, m, l]);
81
- const C = (e, c, s = null) => {
81
+ const C = (e, c, i = null) => {
82
82
  if (e["ui:component"] && e["ui:component"] === "Date")
83
83
  return Object.assign(e, {
84
84
  "ui:bot": !0,
85
85
  "ui:entrance": c
86
86
  }), e;
87
- for (const i in e)
88
- if (typeof e[i] == "object" && e[i] !== null) {
87
+ for (const s in e)
88
+ if (typeof e[s] == "object" && e[s] !== null) {
89
89
  const o = C(
90
- e[i],
90
+ e[s],
91
91
  c,
92
92
  e
93
93
  );
@@ -96,21 +96,21 @@ const nt = ({
96
96
  }
97
97
  }, v = H(
98
98
  async (e) => {
99
- const s = await (await z.getInstance(d)).fetch(
99
+ const i = await (await z.getInstance(d)).fetch(
100
100
  A.ContactMethod,
101
101
  {
102
102
  contactMethodId: e,
103
103
  guideId: n
104
104
  },
105
105
  { noCache: !0, isBot: !0 }
106
- ), i = j(s, {
106
+ ), s = j(i, {
107
107
  submit: "Submit",
108
108
  errors: {},
109
109
  meta: { groupId: f }
110
110
  });
111
- if (s.body = i, s.body.guideId = n, !b.current)
111
+ if (i.body = s, i.body.guideId = n, !b.current)
112
112
  return null;
113
- m(s);
113
+ m(i);
114
114
  },
115
115
  // eslint-disable-next-line react-hooks/exhaustive-deps
116
116
  [b]
@@ -127,8 +127,8 @@ const nt = ({
127
127
  ...t.body.form,
128
128
  data: (w = t.body.form) == null ? void 0 : w.data,
129
129
  layout: { ...t.body.form.layout },
130
- meta: (k = t.body.form) == null ? void 0 : k.meta,
131
- schema: (D = t.body.form) == null ? void 0 : D.schema
130
+ meta: (S = t.body.form) == null ? void 0 : S.meta,
131
+ schema: (k = t.body.form) == null ? void 0 : k.schema
132
132
  } : void 0,
133
133
  guideId: t.body.guideId
134
134
  },
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react/jsx-runtime"),R=require("@emotion/styled"),F=require("@telia-ace/knowledge-data-client"),$=require("@telia-ace/knowledge-widget-adapters"),C=require("@telia-ace/knowledge-widget-ui"),z=require("@telia-ace/widget-forms"),O=require("@telia-ace/widget-utilities"),l=require("react"),x=require("./index-1095c351.js");require("@telia-ace/widget-conversation");require("@telia-ace/widget-services");require("@webprovisions/platform");const U=({contactMethodId:i,guideId:n,groupId:b,className:T})=>{var h,q,k,S,j;const[e,u]=l.useState(),c=C.useContainer(),A=C.useDispatch(),f=l.useRef(!0),y=C.useConversation();l.useEffect(()=>{const{events:t}=c.get("$widget"),m=t.subscribe("conversational-hub-provider:form-submitted",async(a,r)=>{var D;if(((D=r.form.meta)==null?void 0:D.groupId)!==b||r.id!==(e==null?void 0:e.id))return;y&&(r.form.meta||(r.form.meta={}),r.form.meta.conversation=y);const p=await c.getAsync("contactMethods"),o={...e,body:{...e.body,form:r.form}},{errors:d,valid:g,errorTypes:_}=await p.validate(o);if(!g){const E=new z.FormBuilder(e.body.form);u(void 0),E.setValidationErrors(d),o.body={...o.body,form:E.get()},u({...o});return}const B=await p.submit(o);o.confirmation=B,u(o)}),s=t.subscribe("bot-provider:evaluate",async(a,r)=>{if(String(r.id)!==String(i))return;const o=await(await c.getAsync("contactMethods")).evaluate(e);let d={...e,body:{...e.body,form:o}};const g=x.updateForm(d,{submit:"Submit",errors:{},meta:{groupId:b}});d={...d,body:g},u(d)});return()=>{m(),s()}},[c,e,u,y]);const v=(t,m,s=null)=>{if(t["ui:component"]&&t["ui:component"]==="Date")return Object.assign(t,{"ui:bot":!0,"ui:entrance":m}),t;for(const a in t)if(typeof t[a]=="object"&&t[a]!==null){const r=v(t[a],m,t);if(r!==void 0)return r}},w=l.useCallback(async t=>{const s=await(await F.DataClient.getInstance(c)).fetch(F.DataType.ContactMethod,{contactMethodId:t,guideId:n},{noCache:!0,isBot:!0}),a=x.updateForm(s,{submit:"Submit",errors:{},meta:{groupId:b}});if(s.body=a,s.body.guideId=n,!f.current)return null;u(s)},[f]);return l.useEffect(()=>(w(i),()=>{f.current=!1}),[i,w]),e?(e.clientName==="ace.callback"&&((h=e.body)!=null&&h.entrance)&&v(e,(q=e.body)==null?void 0:q.entrance),N.jsx(W,{...e,body:{...e.body,form:e.body.form?{...e.body.form,data:(k=e.body.form)==null?void 0:k.data,layout:{...e.body.form.layout},meta:(S=e.body.form)==null?void 0:S.meta,schema:(j=e.body.form)==null?void 0:j.schema}:void 0,guideId:e.body.guideId},inline:!0,expanded:!0,dispatch:A,className:O.appendClassNames("humany-bot-contact-method",T)})):null},W=R($.ContactMethod)`
2
+ padding: ${i=>{var n;return(n=i.theme.sizes)==null?void 0:n.normal}} ${i=>{var n;return(n=i.theme.sizes)==null?void 0:n.medium}};
3
+ `;exports.default=U;
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),u=require("@emotion/styled"),y=require("@telia-ace/knowledge-widget-adapters"),g=require("@telia-ace/knowledge-widget-ui"),l=require("react"),b=require("./contact-method-2cfae642.js");require("@telia-ace/knowledge-data-client");require("@telia-ace/widget-forms");require("@telia-ace/widget-utilities");require("./index-0d0a5fc2.js");require("@telia-ace/widget-conversation");require("@telia-ace/widget-services");require("@webprovisions/platform");const k=({actions:e,entryId:t,groupId:x})=>{const q=g.useDispatch(),o=g.useContainer(),[h,C]=l.useState([]),[d,M]=l.useState([]);return l.useEffect(()=>{o.getAsync("contactMethods").then(n=>{if(!n)return;const c=e.map(async i=>{var m;if(!((m=i.data)!=null&&m.clientName))return null;const s=await n.handleAdapters(i.data);return{...s,...i.data,description:i.data.description?i.data.description:s.description,onClick:(p,r)=>{if(typeof s.onClick=="function"&&s.onClick(p,r),!p.defaultPrevented)if(r.inline&&!r.expanded)M([...d,r.id]);else{const{events:f}=o.get("$widget");f.dispatch("conversational-hub-provider:open-contact-method",{entryId:t,contactMethod:r,actionKey:i.actionKey}),f.dispatch("tracking:contact-method-list-item-clicked",r)}}}});Promise.all(c).then(i=>{C(i.filter(s=>!!s))})})},[e,o,t,d]),h.length?a.jsx(j,{className:"humany-bot-contact-list",contactMethods:h,dispatch:q,itemRenderer:(n,c)=>(d.includes(n.id)||n.expanded)&&n.inline||n.clientName==="custom.link"?a.jsx(S,{contactMethodId:n.id,groupId:x,guideId:n.body.guideId}):a.jsx($,{...n,...c})}):null},j=u(y.ContactList)`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),u=require("@emotion/styled"),y=require("@telia-ace/knowledge-widget-adapters"),g=require("@telia-ace/knowledge-widget-ui"),l=require("react"),b=require("./contact-method-23e162ae.js");require("@telia-ace/knowledge-data-client");require("@telia-ace/widget-forms");require("@telia-ace/widget-utilities");require("./index-1095c351.js");require("@telia-ace/widget-conversation");require("@telia-ace/widget-services");require("@webprovisions/platform");const k=({actions:e,entryId:t,groupId:x})=>{const q=g.useDispatch(),o=g.useContainer(),[h,C]=l.useState([]),[d,M]=l.useState([]);return l.useEffect(()=>{o.getAsync("contactMethods").then(n=>{if(!n)return;const c=e.map(async i=>{var m;if(!((m=i.data)!=null&&m.clientName))return null;const s=await n.handleAdapters(i.data);return{...s,...i.data,description:i.data.description?i.data.description:s.description,onClick:(p,r)=>{if(typeof s.onClick=="function"&&s.onClick(p,r),!p.defaultPrevented)if(r.inline&&!r.expanded)M([...d,r.id]);else{const{events:f}=o.get("$widget");f.dispatch("conversational-hub-provider:open-contact-method",{entryId:t,contactMethod:r,actionKey:i.actionKey}),f.dispatch("tracking:contact-method-list-item-clicked",r)}}}});Promise.all(c).then(i=>{C(i.filter(s=>!!s))})})},[e,o,t,d]),h.length?a.jsx(j,{className:"humany-bot-contact-list",contactMethods:h,dispatch:q,itemRenderer:(n,c)=>(d.includes(n.id)||n.expanded)&&n.inline||n.clientName==="custom.link"?a.jsx(S,{contactMethodId:n.id,groupId:x,guideId:n.body.guideId}):a.jsx($,{...n,...c})}):null},j=u(y.ContactList)`
2
2
  > ul > li {
3
3
  a {
4
4
  display: flex;
@@ -3,11 +3,11 @@ import m from "@emotion/styled";
3
3
  import { ContactList as M, ContactMethod as b } from "@telia-ace/knowledge-widget-adapters";
4
4
  import { useDispatch as $, useContainer as k } from "@telia-ace/knowledge-widget-ui";
5
5
  import { useState as f, useEffect as E } from "react";
6
- import S from "./contact-method-ee54b786.mjs";
6
+ import S from "./contact-method-170944e5.mjs";
7
7
  import "@telia-ace/knowledge-data-client";
8
8
  import "@telia-ace/widget-forms";
9
9
  import "@telia-ace/widget-utilities";
10
- import "./index-3bfdc270.mjs";
10
+ import "./index-6e5c0efe.mjs";
11
11
  import "@telia-ace/widget-conversation";
12
12
  import "@telia-ace/widget-services";
13
13
  import "@webprovisions/platform";
@@ -1 +1 @@
1
- "use strict";var X=Object.defineProperty;var Y=(i,e,n)=>e in i?X(i,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[e]=n;var O=(i,e,n)=>(Y(i,typeof e!="symbol"?e+"":e,n),n);const N=require("@telia-ace/widget-conversation"),j=require("@telia-ace/widget-services"),K=require("@telia-ace/widget-utilities"),F=require("@telia-ace/widget-forms"),Z=require("@webprovisions/platform");class tt{constructor(e){O(this,"enabled",!0);O(this,"botProviderGlobalStateKey","bot-provider-global-state");O(this,"botProviderLocalStateKey","bot-provider-local-state");O(this,"botProviderEntriesKey","bot-provider-entries");O(this,"botProviderMetaStateKey","bot-provider-conversation-meta");this.container=e}getKey(e){let n;switch(e){case"localState":n=this.botProviderLocalStateKey;break;case"globalState":n=this.botProviderGlobalStateKey;break;case"entries":n=this.botProviderEntriesKey;break;case"meta":n=this.botProviderMetaStateKey;break}return n}async read(e){const n=this.getKey(e);if(!(!this.enabled||!n))return j.readStorage(this.container,n)}async write(e,n){const t=this.getKey(n);if(!this.enabled||!t)return;(await j.createStorageWriter(this.container,t,j.StorageCategory.Necessary))(e)}}var $=(i=>(i.ContactMethod="ace-conversational-hub-contact-method",i.ContactList="ace-conversational-hub-contact-list",i))($||{});const et=i=>{if(i){const{type:e,content:n}=i;if(e&&n)return{type:e,content:n}}},nt=({isUser:i,items:e=[],meta:n={}})=>{const t=K.uuid();return{id:t,isUser:i,items:e.map(y=>({id:y.id||K.uuid(),isUser:i,groupId:t,message:y.message||[]})),meta:n}},it=({id:i,title:e,defaultIcon:n,exits:[t],exitType:d,confirmationText:y,expandFormAutomatically:p,form:M,description:P},a={})=>{const{adapter:l}=t||{Adapter:{}},{clientName:u="",settings:b={},customClientName:m=""}=l,{validation:v}=a,g={id:i.toString(),title:e,description:P,symbol:et(n),clientName:u==="custom.adapter"?m:u,expanded:!0,inline:!0,body:{}};if(u.indexOf("phone")>-1||u.indexOf("freetext")>-1){const{displayTextBeforeClick:f,textBeforeClick:L}=b;f==="true"&&(g.expanded=!1,g.title=L),u.indexOf("phone.text")>-1?g.body.phoneNumber=b.phoneNumber:g.body.freetext=b.freetext}return(u.indexOf("chat.popup")>-1||u.indexOf("link")>-1||u==="custom.adapter"&&d==="custom")&&(g.body=b,g.body.confirmationFallback=y),u.indexOf("ace")>-1&&(g.body=b),M&&M.hasValueComponents&&(v?g.body.form=F.FormBuilder.fromLegacyForm(i.toString(),M,v).get():g.body.form=F.FormBuilder.fromLegacyForm(i.toString(),M).get(),p||(g.expanded=g.inline=!1),g.body=z(g,{submit:"Submit"})),a.guideId&&(g.body.guideId=a.guideId),g},ot=i=>{const{localState:e}=i;return i.tags.includes("category")&&i.tags.includes("contact")?N.ConversationMessageListItemType.ItemList:i.tags.includes("suggestion")?N.ConversationMessageListItemType.LinkList:(e==null?void 0:e.$type)==="Humany.Matching.Bots.Conversations.States.ContactState, Humany.Matching"?$.ContactList:N.ConversationMessageListItemType.ButtonList},z=(i,{submit:e,errors:n,meta:t})=>{var d;if((d=i==null?void 0:i.body)!=null&&d.form){const{body:y}=i,p=new F.FormBuilder(y.form);return y.form.layout.submit||p.createComponent(F.submitButton(e,"submit")),n&&p.setValidationErrors(n),t&&p.setMeta(t),{...y,form:p.get()}}return(i==null?void 0:i.body)||{}},st=async(i,e,n)=>{(await(await i.getAsync("dataClient")).getClient()).parameters.set(e,n)},A=({messageId:i,message:e,group:n})=>({id:i,message:e,groupId:n.id,isUser:n.isUser}),at=async(i,e,n)=>{const t=(a,l,u,b={actions:[],entryId:l.id,groupId:u})=>{const m=[];return b.actions=l.content.items.map(v=>{var f;const g={label:v.title,actionKey:v.actionKey,symbol:v.symbol?v.symbol:void 0,description:v.description||void 0};if(v.data){const L=l.actions[v.actionKey];a===$.ContactList?(m.push(v.data.id),g.data=it(v.data,{guideId:(f=L==null?void 0:L.guideId)==null?void 0:f.toString()})):g.data=v.data}return g}),a===$.ContactList&&(b.contactMethodIds=m),b},d=async(a,l,u=[],b)=>{var v,g;const m=K.uuid();switch(a.type!=="List"&&a.tags.includes("guide")&&((g=(v=a.content.hints)==null?void 0:v[0])!=null&&g.id)&&await st(i,"LastGuideId",a.content.hints[0].id),a.type){case"List":{if(!a.content)return[];const{items:f,html:L}=a.content,k=[];let C={actions:[],entryId:a.id,groupId:l.id};if((f==null?void 0:f.length)>0){const T=ot(a);if(C=t(T,a,l.id,C),u.length){const x=u.find(H=>H.tags.includes("paging"));x!=null&&x.content&&(l.meta.paging={actions:x.actions,items:x.content.items,localState:x.localState},x.content.items.forEach(H=>{C.actions.push({label:H.title,actionKey:H.actionKey,data:{groupId:b?b.id:l.id}})}))}k.unshift(A({messageId:m,message:[T,C],group:l}))}return L&&k.unshift(A({messageId:m,message:[N.ConversationMessageListItemType.HTML,{body:L}],group:l})),k}case"Text":{const f=[];if(f.push(A({messageId:m,message:[N.ConversationMessageListItemType.HTML,{body:a.content.html}],group:l})),u.length){const L=u.find(C=>{var T;return C.type==="List"&&((T=C.localState)==null?void 0:T.$type)==="Humany.Matching.Bots.Conversations.States.ContactState, Humany.Matching"}),k=u.find(C=>C.tags.includes("contact")&&C.type==="Contact");if(k&&f.push(A({messageId:m,message:[$.ContactMethod,{contactMethodId:k.content.id,groupId:l.id,guideId:k.content.guideId}],group:l})),L){const C=t($.ContactList,L,l.id);f.push(A({messageId:m,message:[N.ConversationMessageListItemType.Separator,void 0],group:l})),f.push(A({messageId:m,message:[$.ContactList,C],group:l}))}}return f}case"Contact":return[A({messageId:m,message:[$.ContactMethod,{contactMethodId:a.content.id,groupId:l.id,guideId:a.content.guideId}],group:l})];case"Error":return[A({messageId:m,message:[N.ConversationMessageListItemType.HTML,{body:a.content.message||"Something went wrong."}],group:l})];default:return[]}},y=new Map([["Text",1],["List",2],["Contact",3]]),p=[],M=e.sort((a,l)=>{const b=y.get(a.type)||20,m=y.get(l.type)||20;return b-m}).filter(a=>!a.relation).reduce((a,l)=>a.concat(l),[]),P=a=>typeof a.actions.selector<"u";for(const a of M){const l=e.filter(m=>m.relation===a.id&&!P(m)),u=nt({isUser:!1});(await d(a,u,l,n)).forEach(m=>{u.items.push(m)}),u.items.length&&p.push(u)}return p};class rt{constructor(e,n,t,d){O(this,"globalState");O(this,"localState");O(this,"clientId");O(this,"entries");this.endpoint=e,this.events=n,this.store=t,this.container=d,this.clientId=K.uuid(),this.entries=[]}async fetchGuide(e){const n={command:{guide:{id:e}},globalState:this.globalState,clientId:this.clientId};return await this.postEnvelope(n)}async postEnvelope(e,n){try{const t=await fetch(this.endpoint,this.getHttpOptions(e));if(!t.ok)throw t;const d=await t.json();return this.handleResponse(d,n)}catch(t){process.env.NODE_ENV!=="production"&&console.warn("Something went wrong when posting the envelope.");let d="Something went wrong";return(t.message==="Failed to fetch"||t.message==="NetworkError when attempting to fetch resource.")&&(d="Lost connection... Please try again."),this.events.dispatch("tracking:http-client-error",{message:d,error:t}),this.handleResponse({entries:[{id:K.uuid(),type:"Error",timestamp:new Date().toISOString(),content:{message:d},actions:{},tags:[]}]})}}async handleResponse(e,n){this.entries=this.entries.concat(e.entries),this.store.write(this.entries,"entries");const t=e.entries.find(y=>y.type==="Widget");return t&&this.events.dispatch("provider:widget-entry",t.content),e.globalState&&(this.globalState=e.globalState,this.store.write(e.globalState,"globalState")),this.localState=e.entries.reduce((y,p)=>p.localState?p.localState:y,void 0),this.store.write(this.localState,"localState"),await at(this.container,e.entries,n)}getHttpOptions(e){const n={method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"}};return e.funnel=this.container.get("$widget").name,e.localState=e.localState||this.localState,Object.assign({},n,{body:JSON.stringify(e),credentials:"same-origin"})}}const ct="@telia-ace/conversational-hub-bot-provider",lt="0.0.16",dt="./index.js",ut="./index.d.ts",gt={".":{import:"./index.mjs",require:"./index.js"}},mt={"@telia-ace/widget-conversation":"*","@webprovisions/platform":"^1.1.4","@telia-ace/knowledge-widget-core":"*","@telia-ace/widget-utilities":"*","@telia-ace/widget-services":"*","@telia-ace/widget-core":"*","@telia-ace/knowledge-data-client":"*","@telia-ace/knowledge-widget-adapters":"*","@telia-ace/knowledge-widget-ui":"*","@telia-ace/widget-forms":"*"},pt={"@emotion/react":"11.11.1","@emotion/styled":"11.11.0",react:"18.2.0"},B={name:ct,version:lt,main:dt,types:ut,exports:gt,dependencies:mt,peerDependencies:pt},ft=async i=>{var V,G,J,U,D;const e="chub-plugin",n=i.get("$widget"),t=(D=(U=(J=(G=(V=n==null?void 0:n.container)==null?void 0:V.get("$settings"))==null?void 0:G.components)==null?void 0:J.conversation)==null?void 0:U.properties)==null?void 0:D.conversationalHubPluginSettings;let d,y,p,M=(t==null?void 0:t.connectionAttempts)??5,P,a,l;K.Logger.info((B==null?void 0:B.name)+" version: "+(B==null?void 0:B.version)),N.registerCustomMessageComponent(i,$.ContactMethod,Promise.resolve().then(()=>require("./contact-method-2cfae642.js"))),N.registerCustomMessageComponent(i,$.ContactList,Promise.resolve().then(()=>require("./contact-method-list-69907dba.js")));const u=await j.createStorageWriter(i,"conversational-hub-session",j.StorageCategory.Necessary),b=(r,s)=>{const{knowledgeBotEndpoint:o}=s.properties();if(o)return`${o}/conversations`;const{data:c}=r.get("$settings");if(!c||!c.projection)throw new Error("Missing Knowledge Bot endpoint");return`${c.projection}/conversations`},m=r=>{var s;if(r.target instanceof HTMLButtonElement){const o=r.target;if((s=o.getAttribute("class"))!=null&&s.includes("dialog-option-cx")){const c=o.getAttribute("value");T(c),d.user.print(c.replace(/</g,"&lt;").replace(/>/g,"&gt;"))}}};(await N.ConversationPlatform.getInstance(i)).registerProvider(e,(r,s)=>{d=r,y=d.controller,p=d.createAgent({name:t==null?void 0:t.botName,avatar:t==null?void 0:t.avatar}),l=b(i,s);const{events:o}=i.get("$widget"),c=new tt(i);a=new rt(l,o,c,i),k();const[h]=i.get("widgetDOMElements");h.querySelectorAll(".humany-bot-contact-method").forEach(I=>{var w;(w=I.closest(".humany-conversation-entry"))==null||w.remove()}),h.removeEventListener("click",m),h.addEventListener("click",m);const S=()=>y.providers.includes(e);s.actions.create("submit",I=>{const{events:w}=i.get("$widget");w.dispatch("conversational-hub-provider:form-submitted",I)}),s.actions.watch("conversation.action",(I,w)=>(S()&&C(I),w(I))),s.actions.watch("conversation.user-submit",(I,w)=>{if(!S())return w(I);T(I.text),d.user.print(I.text.replace(/</g,"&lt;").replace(/>/g,"&gt;"))}),n.events.subscribe("conversational-hub-provider:fetch-guide",async(I,w)=>{if(!(w!=null&&w.guideId))return;const _=await a.fetchGuide(parseInt(w.guideId));_&&g(_)})});async function g(r){r.forEach(s=>{const o=s.items.map(c=>c.message);s.writer=p.print(o)})}const f=sessionStorage.getItem(`humany_${L(n.implementation.tenant+n.implementation.name+n.name)}`);function L(r){let s=0;if(r.length===0)return s.toString();for(let o=0;o<r.length;o++){const c=r.charCodeAt(o);s=(s<<5)-s+c,s=s&s}return s.toString()}async function k(r=!0){const s=await j.readStorage(i,"conversational-hub-session"),o=i.get("dialogflowSettings");if(o!=null&&o.silentStart)delete o.silentStart,n.events.dispatch("conversational-hub-provider:started",{});else if(s!=null&&s.sessionId&&r)P=s==null?void 0:s.sessionId;else if(t!=null&&t.welcomeMessage){if(!(f!=null&&f.length?JSON.parse(f):{})["conversation-conversation"]){const h=t.welcomeMessage.replaceAll("$lt;","<").replaceAll("$gt;",">");p.print(h)}}else{const c={extension:t.extension};o!=null&&o.initCommand&&(c.input={type:"event",language:t.language,content:{name:o.initCommand,parameters:o.initParameters||{}}}),await x(t.baseUrl+"/initialize",JSON.stringify(c),r)}}async function C(r){await x(`${t.baseUrl}/input/${P}`,`{"type":"button_click","language":"${t.language}","content":{"button_text":"${r.label}","value":"${r.actionKey}"}}`)}async function T(r){const s={text:r};if(!P){const o={extension:t.extension},c=i.get("dialogflowSettings");c!=null&&c.initCommand&&(o.input={type:"event",language:t.language,content:{name:c.initCommand,parameters:c.initParameters||{}}}),await x(t.baseUrl+"/initialize",JSON.stringify(o),!1)}await x(`${t.baseUrl}/input/${P}`,`{"type":"text","language":"${t.language}","content":${JSON.stringify(s)}}`)}async function x(r,s,o=!0){var I,w,_,R;const c=d.loading();let h,S;try{h=await fetch(r,{method:"POST",body:s}),S=await(h==null?void 0:h.json())}catch(q){q instanceof SyntaxError?K.Logger.error("Incorrect JSON format.",q):K.Logger.error("Network error: check connection or baseUrl.",q),c(),p.print(t.errorMessage||"An error occurred");return}if(!(h!=null&&h.ok)){if(K.Logger.error(`HTTP ${h==null?void 0:h.status}.`,JSON.stringify(S)),c(),!!((I=S==null?void 0:S.errors)!=null&&I.filter(E=>E.code==="1003").length)&&M>0){M--,await new Promise(Q=>setTimeout(Q,500)),await k(!1);const E=JSON.parse(s);(w=E==null?void 0:E.content)!=null&&w.text?await T(E.content.text):(_=E==null?void 0:E.content)!=null&&_.action&&await C((R=E==null?void 0:E.content)==null?void 0:R.action)}else p.print(t.errorMessage||"An error occurred");return}c(),M=(t==null?void 0:t.connectionAttempts)??5,S!=null&&S.action_payload&&H(S.action_payload),P=S==null?void 0:S.session_id,u({sessionId:P}),o&&W(S)}async function H(r){var h;const s=(h=r==null?void 0:r.transfer_parameters)==null?void 0:h.contactGuide,o=d.loading(),c=await a.fetchGuide(parseInt(s));o(),c&&g(c)}function W(r){var s;r==null||r.agent_response.forEach(o=>{p.print(o.payload.text)}),(s=r==null?void 0:r.prompt)!=null&&s.items&&p.print(["button-list",{actions:r.prompt.items.map(o=>{let c;return o.type==="button"&&(c={actionKey:o.value,label:o.text}),o.type==="link"&&(c={actionKey:o.value,label:o.text,data:{href:o.url,target:(t==null?void 0:t.linkTarget)??"_blank"}}),c})}])}},ht=Z.createConfigurationApi(i=>{i.createCommand("dialogflow",e=>n=>{const t={initCommand:n.initCommand};n.initParameters&&(t.initParameters=n.initParameters),n.silentStart&&(t.silentStart=n.silentStart),e.container.register("dialogflowSettings",t)})});exports.ConversationalHubPlugin=ft;exports.dialogflowConfigurationApi=ht;exports.updateForm=z;
1
+ "use strict";var X=Object.defineProperty;var Y=(i,e,n)=>e in i?X(i,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[e]=n;var O=(i,e,n)=>(Y(i,typeof e!="symbol"?e+"":e,n),n);const N=require("@telia-ace/widget-conversation"),j=require("@telia-ace/widget-services"),K=require("@telia-ace/widget-utilities"),F=require("@telia-ace/widget-forms"),Z=require("@webprovisions/platform");class tt{constructor(e){O(this,"enabled",!0);O(this,"botProviderGlobalStateKey","bot-provider-global-state");O(this,"botProviderLocalStateKey","bot-provider-local-state");O(this,"botProviderEntriesKey","bot-provider-entries");O(this,"botProviderMetaStateKey","bot-provider-conversation-meta");this.container=e}getKey(e){let n;switch(e){case"localState":n=this.botProviderLocalStateKey;break;case"globalState":n=this.botProviderGlobalStateKey;break;case"entries":n=this.botProviderEntriesKey;break;case"meta":n=this.botProviderMetaStateKey;break}return n}async read(e){const n=this.getKey(e);if(!(!this.enabled||!n))return j.readStorage(this.container,n)}async write(e,n){const t=this.getKey(n);if(!this.enabled||!t)return;(await j.createStorageWriter(this.container,t,j.StorageCategory.Necessary))(e)}}var $=(i=>(i.ContactMethod="ace-conversational-hub-contact-method",i.ContactList="ace-conversational-hub-contact-list",i))($||{});const et=i=>{if(i){const{type:e,content:n}=i;if(e&&n)return{type:e,content:n}}},nt=({isUser:i,items:e=[],meta:n={}})=>{const t=K.uuid();return{id:t,isUser:i,items:e.map(y=>({id:y.id||K.uuid(),isUser:i,groupId:t,message:y.message||[]})),meta:n}},it=({id:i,title:e,defaultIcon:n,exits:[t],exitType:d,confirmationText:y,expandFormAutomatically:p,form:M,description:P},a={})=>{const{adapter:l}=t||{Adapter:{}},{clientName:u="",settings:b={},customClientName:m=""}=l,{validation:v}=a,g={id:i.toString(),title:e,description:P,symbol:et(n),clientName:u==="custom.adapter"?m:u,expanded:!0,inline:!0,body:{}};if(u.indexOf("phone")>-1||u.indexOf("freetext")>-1){const{displayTextBeforeClick:f,textBeforeClick:L}=b;f==="true"&&(g.expanded=!1,g.title=L),u.indexOf("phone.text")>-1?g.body.phoneNumber=b.phoneNumber:g.body.freetext=b.freetext}return(u.indexOf("chat.popup")>-1||u.indexOf("link")>-1||u==="custom.adapter"&&d==="custom")&&(g.body=b,g.body.confirmationFallback=y),u.indexOf("ace")>-1&&(g.body=b),M&&M.hasValueComponents&&(v?g.body.form=F.FormBuilder.fromLegacyForm(i.toString(),M,v).get():g.body.form=F.FormBuilder.fromLegacyForm(i.toString(),M).get(),p||(g.expanded=g.inline=!1),g.body=z(g,{submit:"Submit"})),a.guideId&&(g.body.guideId=a.guideId),g},ot=i=>{const{localState:e}=i;return i.tags.includes("category")&&i.tags.includes("contact")?N.ConversationMessageListItemType.ItemList:i.tags.includes("suggestion")?N.ConversationMessageListItemType.LinkList:(e==null?void 0:e.$type)==="Humany.Matching.Bots.Conversations.States.ContactState, Humany.Matching"?$.ContactList:N.ConversationMessageListItemType.ButtonList},z=(i,{submit:e,errors:n,meta:t})=>{var d;if((d=i==null?void 0:i.body)!=null&&d.form){const{body:y}=i,p=new F.FormBuilder(y.form);return y.form.layout.submit||p.createComponent(F.submitButton(e,"submit")),n&&p.setValidationErrors(n),t&&p.setMeta(t),{...y,form:p.get()}}return(i==null?void 0:i.body)||{}},st=async(i,e,n)=>{(await(await i.getAsync("dataClient")).getClient()).parameters.set(e,n)},A=({messageId:i,message:e,group:n})=>({id:i,message:e,groupId:n.id,isUser:n.isUser}),at=async(i,e,n)=>{const t=(a,l,u,b={actions:[],entryId:l.id,groupId:u})=>{const m=[];return b.actions=l.content.items.map(v=>{var f;const g={label:v.title,actionKey:v.actionKey,symbol:v.symbol?v.symbol:void 0,description:v.description||void 0};if(v.data){const L=l.actions[v.actionKey];a===$.ContactList?(m.push(v.data.id),g.data=it(v.data,{guideId:(f=L==null?void 0:L.guideId)==null?void 0:f.toString()})):g.data=v.data}return g}),a===$.ContactList&&(b.contactMethodIds=m),b},d=async(a,l,u=[],b)=>{var v,g;const m=K.uuid();switch(a.type!=="List"&&a.tags.includes("guide")&&((g=(v=a.content.hints)==null?void 0:v[0])!=null&&g.id)&&await st(i,"LastGuideId",a.content.hints[0].id),a.type){case"List":{if(!a.content)return[];const{items:f,html:L}=a.content,k=[];let C={actions:[],entryId:a.id,groupId:l.id};if((f==null?void 0:f.length)>0){const T=ot(a);if(C=t(T,a,l.id,C),u.length){const x=u.find(H=>H.tags.includes("paging"));x!=null&&x.content&&(l.meta.paging={actions:x.actions,items:x.content.items,localState:x.localState},x.content.items.forEach(H=>{C.actions.push({label:H.title,actionKey:H.actionKey,data:{groupId:b?b.id:l.id}})}))}k.unshift(A({messageId:m,message:[T,C],group:l}))}return L&&k.unshift(A({messageId:m,message:[N.ConversationMessageListItemType.HTML,{body:L}],group:l})),k}case"Text":{const f=[];if(f.push(A({messageId:m,message:[N.ConversationMessageListItemType.HTML,{body:a.content.html}],group:l})),u.length){const L=u.find(C=>{var T;return C.type==="List"&&((T=C.localState)==null?void 0:T.$type)==="Humany.Matching.Bots.Conversations.States.ContactState, Humany.Matching"}),k=u.find(C=>C.tags.includes("contact")&&C.type==="Contact");if(k&&f.push(A({messageId:m,message:[$.ContactMethod,{contactMethodId:k.content.id,groupId:l.id,guideId:k.content.guideId}],group:l})),L){const C=t($.ContactList,L,l.id);f.push(A({messageId:m,message:[N.ConversationMessageListItemType.Separator,void 0],group:l})),f.push(A({messageId:m,message:[$.ContactList,C],group:l}))}}return f}case"Contact":return[A({messageId:m,message:[$.ContactMethod,{contactMethodId:a.content.id,groupId:l.id,guideId:a.content.guideId}],group:l})];case"Error":return[A({messageId:m,message:[N.ConversationMessageListItemType.HTML,{body:a.content.message||"Something went wrong."}],group:l})];default:return[]}},y=new Map([["Text",1],["List",2],["Contact",3]]),p=[],M=e.sort((a,l)=>{const b=y.get(a.type)||20,m=y.get(l.type)||20;return b-m}).filter(a=>!a.relation).reduce((a,l)=>a.concat(l),[]),P=a=>typeof a.actions.selector<"u";for(const a of M){const l=e.filter(m=>m.relation===a.id&&!P(m)),u=nt({isUser:!1});(await d(a,u,l,n)).forEach(m=>{u.items.push(m)}),u.items.length&&p.push(u)}return p};class rt{constructor(e,n,t,d){O(this,"globalState");O(this,"localState");O(this,"clientId");O(this,"entries");this.endpoint=e,this.events=n,this.store=t,this.container=d,this.clientId=K.uuid(),this.entries=[]}async fetchGuide(e){const n={command:{guide:{id:e}},globalState:this.globalState,clientId:this.clientId};return await this.postEnvelope(n)}async postEnvelope(e,n){try{const t=await fetch(this.endpoint,this.getHttpOptions(e));if(!t.ok)throw t;const d=await t.json();return this.handleResponse(d,n)}catch(t){process.env.NODE_ENV!=="production"&&console.warn("Something went wrong when posting the envelope.");let d="Something went wrong";return(t.message==="Failed to fetch"||t.message==="NetworkError when attempting to fetch resource.")&&(d="Lost connection... Please try again."),this.events.dispatch("tracking:http-client-error",{message:d,error:t}),this.handleResponse({entries:[{id:K.uuid(),type:"Error",timestamp:new Date().toISOString(),content:{message:d},actions:{},tags:[]}]})}}async handleResponse(e,n){this.entries=this.entries.concat(e.entries),this.store.write(this.entries,"entries");const t=e.entries.find(y=>y.type==="Widget");return t&&this.events.dispatch("provider:widget-entry",t.content),e.globalState&&(this.globalState=e.globalState,this.store.write(e.globalState,"globalState")),this.localState=e.entries.reduce((y,p)=>p.localState?p.localState:y,void 0),this.store.write(this.localState,"localState"),await at(this.container,e.entries,n)}getHttpOptions(e){const n={method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"}};return e.funnel=this.container.get("$widget").name,e.localState=e.localState||this.localState,Object.assign({},n,{body:JSON.stringify(e),credentials:"same-origin"})}}const ct="@telia-ace/conversational-hub-bot-provider",lt="0.0.16",dt="./index.js",ut="./index.d.ts",gt={".":{import:"./index.mjs",require:"./index.js"}},mt={"@telia-ace/widget-conversation":"*","@webprovisions/platform":"^1.1.4","@telia-ace/knowledge-widget-core":"*","@telia-ace/widget-utilities":"*","@telia-ace/widget-services":"*","@telia-ace/widget-core":"*","@telia-ace/knowledge-data-client":"*","@telia-ace/knowledge-widget-adapters":"*","@telia-ace/knowledge-widget-ui":"*","@telia-ace/widget-forms":"*"},pt={"@emotion/react":"11.11.1","@emotion/styled":"11.11.0",react:"18.2.0"},B={name:ct,version:lt,main:dt,types:ut,exports:gt,dependencies:mt,peerDependencies:pt},ft=async i=>{var V,G,J,U,D;const e="chub-plugin",n=i.get("$widget"),t=(D=(U=(J=(G=(V=n==null?void 0:n.container)==null?void 0:V.get("$settings"))==null?void 0:G.components)==null?void 0:J.conversation)==null?void 0:U.properties)==null?void 0:D.conversationalHubPluginSettings;let d,y,p,M=(t==null?void 0:t.connectionAttempts)??5,P,a,l;K.Logger.info((B==null?void 0:B.name)+" version: "+(B==null?void 0:B.version)),N.registerCustomMessageComponent(i,$.ContactMethod,Promise.resolve().then(()=>require("./contact-method-23e162ae.js"))),N.registerCustomMessageComponent(i,$.ContactList,Promise.resolve().then(()=>require("./contact-method-list-e2f15b72.js")));const u=await j.createStorageWriter(i,"conversational-hub-session",j.StorageCategory.Necessary),b=(r,s)=>{const{knowledgeBotEndpoint:o}=s.properties();if(o)return`${o}/conversations`;const{data:c}=r.get("$settings");if(!c||!c.projection)throw new Error("Missing Knowledge Bot endpoint");return`${c.projection}/conversations`},m=r=>{var s;if(r.target instanceof HTMLButtonElement){const o=r.target;if((s=o.getAttribute("class"))!=null&&s.includes("dialog-option-cx")){const c=o.getAttribute("value");T(c),d.user.print(c.replace(/</g,"&lt;").replace(/>/g,"&gt;"))}}};(await N.ConversationPlatform.getInstance(i)).registerProvider(e,(r,s)=>{d=r,y=d.controller,p=d.createAgent({name:t==null?void 0:t.botName,avatar:t==null?void 0:t.avatar}),l=b(i,s);const{events:o}=i.get("$widget"),c=new tt(i);a=new rt(l,o,c,i),k();const[h]=i.get("widgetDOMElements");h.querySelectorAll(".humany-bot-contact-method").forEach(I=>{var w;(w=I.closest(".humany-conversation-entry"))==null||w.remove()}),h.removeEventListener("click",m),h.addEventListener("click",m);const S=()=>y.providers.includes(e);s.actions.create("submit",I=>{const{events:w}=i.get("$widget");w.dispatch("conversational-hub-provider:form-submitted",I)}),s.actions.watch("conversation.action",(I,w)=>(S()&&C(I),w(I))),s.actions.watch("conversation.user-submit",(I,w)=>{if(!S())return w(I);T(I.text),d.user.print(I.text.replace(/</g,"&lt;").replace(/>/g,"&gt;"))}),n.events.subscribe("conversational-hub-provider:fetch-guide",async(I,w)=>{if(!(w!=null&&w.guideId))return;const _=await a.fetchGuide(parseInt(w.guideId));_&&g(_)})});async function g(r){r.forEach(s=>{const o=s.items.map(c=>c.message);s.writer=p.print(o)})}const f=sessionStorage.getItem(`humany_${L(n.implementation.tenant+n.implementation.name+n.name)}`);function L(r){let s=0;if(r.length===0)return s.toString();for(let o=0;o<r.length;o++){const c=r.charCodeAt(o);s=(s<<5)-s+c,s=s&s}return s.toString()}async function k(r=!0){const s=await j.readStorage(i,"conversational-hub-session"),o=i.get("dialogflowSettings");if(o!=null&&o.silentStart)delete o.silentStart,n.events.dispatch("conversational-hub-provider:started",{});else if(s!=null&&s.sessionId&&r)P=s==null?void 0:s.sessionId;else if(t!=null&&t.welcomeMessage){if(!(f!=null&&f.length?JSON.parse(f):{})["conversation-conversation"]){const h=t.welcomeMessage.replaceAll("$lt;","<").replaceAll("$gt;",">");p.print(h)}}else{const c={extension:t.extension};o!=null&&o.initCommand&&(c.input={type:"event",language:t.language,content:{name:o.initCommand,parameters:o.initParameters||{}}}),await x(t.baseUrl+"/initialize",JSON.stringify(c),r)}}async function C(r){await x(`${t.baseUrl}/input/${P}`,`{"type":"button_click","language":"${t.language}","content":{"button_text":"${r.label}","value":"${r.actionKey}"}}`)}async function T(r){const s={text:r};if(!P){const o={extension:t.extension},c=i.get("dialogflowSettings");c!=null&&c.initCommand&&(o.input={type:"event",language:t.language,content:{name:c.initCommand,parameters:c.initParameters||{}}}),await x(t.baseUrl+"/initialize",JSON.stringify(o),!1)}await x(`${t.baseUrl}/input/${P}`,`{"type":"text","language":"${t.language}","content":${JSON.stringify(s)}}`)}async function x(r,s,o=!0){var I,w,_,R;const c=d.loading();let h,S;try{h=await fetch(r,{method:"POST",body:s}),S=await(h==null?void 0:h.json())}catch(q){q instanceof SyntaxError?K.Logger.error("Incorrect JSON format.",q):K.Logger.error("Network error: check connection or baseUrl.",q),c(),p.print(t.errorMessage||"An error occurred");return}if(!(h!=null&&h.ok)){if(K.Logger.error(`HTTP ${h==null?void 0:h.status}.`,JSON.stringify(S)),c(),!!((I=S==null?void 0:S.errors)!=null&&I.filter(E=>E.code==="1003").length)&&M>0){M--,await new Promise(Q=>setTimeout(Q,500)),await k(!1);const E=JSON.parse(s);(w=E==null?void 0:E.content)!=null&&w.text?await T(E.content.text):(_=E==null?void 0:E.content)!=null&&_.action&&await C((R=E==null?void 0:E.content)==null?void 0:R.action)}else p.print(t.errorMessage||"An error occurred");return}c(),M=(t==null?void 0:t.connectionAttempts)??5,S!=null&&S.action_payload&&H(S.action_payload),P=S==null?void 0:S.session_id,u({sessionId:P}),o&&W(S)}async function H(r){var h;const s=(h=r==null?void 0:r.transfer_parameters)==null?void 0:h.contactGuide,o=d.loading(),c=await a.fetchGuide(parseInt(s));o(),c&&g(c)}function W(r){var s;r==null||r.agent_response.forEach(o=>{p.print(o.payload.text)}),(s=r==null?void 0:r.prompt)!=null&&s.items&&p.print(["button-list",{actions:r.prompt.items.map(o=>{let c;return o.type==="button"&&(c={actionKey:o.value,label:o.text}),o.type==="link"&&(c={actionKey:o.value,label:o.text,data:{href:o.url,target:(t==null?void 0:t.linkTarget)??"_blank"}}),c})}])}},ht=Z.createConfigurationApi(i=>{i.createCommand("dialogflow",e=>n=>{const t={initCommand:n.initCommand};n.initParameters&&(t.initParameters=n.initParameters),n.silentStart&&(t.silentStart=n.silentStart),e.container.register("dialogflowSettings",t)})});exports.ConversationalHubPlugin=ft;exports.dialogflowConfigurationApi=ht;exports.updateForm=z;
@@ -434,11 +434,11 @@ const ft = "@telia-ace/conversational-hub-bot-provider", pt = "0.0.16", ht = "./
434
434
  V.info((H == null ? void 0 : H.name) + " version: " + (H == null ? void 0 : H.version)), q(
435
435
  i,
436
436
  $.ContactMethod,
437
- import("./contact-method-ee54b786.mjs")
437
+ import("./contact-method-170944e5.mjs")
438
438
  ), q(
439
439
  i,
440
440
  $.ContactList,
441
- import("./contact-method-list-0050453e.mjs")
441
+ import("./contact-method-list-fcb23b20.mjs")
442
442
  );
443
443
  const u = await Q(
444
444
  i,
package/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-0d0a5fc2.js");require("@telia-ace/widget-conversation");require("@telia-ace/widget-services");require("@telia-ace/widget-utilities");require("@telia-ace/widget-forms");require("@webprovisions/platform");exports.ConversationalHubPlugin=e.ConversationalHubPlugin;exports.dialogflowConfigurationApi=e.dialogflowConfigurationApi;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-1095c351.js");require("@telia-ace/widget-conversation");require("@telia-ace/widget-services");require("@telia-ace/widget-utilities");require("@telia-ace/widget-forms");require("@webprovisions/platform");exports.ConversationalHubPlugin=e.ConversationalHubPlugin;exports.dialogflowConfigurationApi=e.dialogflowConfigurationApi;
package/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { C as n, d as l } from "./index-3bfdc270.mjs";
1
+ import { C as n, d as l } from "./index-6e5c0efe.mjs";
2
2
  import "@telia-ace/widget-conversation";
3
3
  import "@telia-ace/widget-services";
4
4
  import "@telia-ace/widget-utilities";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telia-ace/conversational-hub-bot-provider",
3
- "version": "1.3.22",
3
+ "version": "1.3.23-rc.0",
4
4
  "main": "./index.js",
5
5
  "types": "./index.d.ts",
6
6
  "exports": {
@@ -10,16 +10,16 @@
10
10
  }
11
11
  },
12
12
  "dependencies": {
13
- "@telia-ace/widget-conversation": "^1.3.22",
13
+ "@telia-ace/widget-conversation": "^1.3.23-rc.0",
14
14
  "@webprovisions/platform": "^1.1.4",
15
- "@telia-ace/knowledge-widget-core": "^1.3.22",
16
- "@telia-ace/widget-utilities": "^1.3.22",
17
- "@telia-ace/widget-services": "^1.3.22",
18
- "@telia-ace/widget-core": "^1.3.22",
19
- "@telia-ace/knowledge-data-client": "^1.3.22",
20
- "@telia-ace/knowledge-widget-adapters": "^1.3.22",
21
- "@telia-ace/knowledge-widget-ui": "^1.3.22",
22
- "@telia-ace/widget-forms": "^1.3.22"
15
+ "@telia-ace/knowledge-widget-core": "^1.3.23-rc.0",
16
+ "@telia-ace/widget-utilities": "^1.3.23-rc.0",
17
+ "@telia-ace/widget-services": "^1.3.23-rc.0",
18
+ "@telia-ace/widget-core": "^1.3.23-rc.0",
19
+ "@telia-ace/knowledge-data-client": "^1.3.23-rc.0",
20
+ "@telia-ace/knowledge-widget-adapters": "^1.3.23-rc.0",
21
+ "@telia-ace/knowledge-widget-ui": "^1.3.23-rc.0",
22
+ "@telia-ace/widget-forms": "^1.3.23-rc.0"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "@emotion/react": "11.11.1",
@@ -1,3 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react/jsx-runtime"),R=require("@emotion/styled"),F=require("@telia-ace/knowledge-data-client"),$=require("@telia-ace/knowledge-widget-adapters"),C=require("@telia-ace/knowledge-widget-ui"),z=require("@telia-ace/widget-forms"),O=require("@telia-ace/widget-utilities"),l=require("react"),x=require("./index-0d0a5fc2.js");require("@telia-ace/widget-conversation");require("@telia-ace/widget-services");require("@webprovisions/platform");const U=({contactMethodId:i,guideId:n,groupId:b,className:T})=>{var h,q,k,S,j;const[e,u]=l.useState(),c=C.useContainer(),A=C.useDispatch(),f=l.useRef(!0),y=C.useConversation();l.useEffect(()=>{const{events:t}=c.get("$widget"),m=t.subscribe("conversational-hub-provider:form-submitted",async(a,o)=>{var D;if(((D=o.form.meta)==null?void 0:D.groupId)!==b||o.id!==(e==null?void 0:e.id))return;y&&(o.form.meta||(o.form.meta={}),o.form.meta.conversation=y);const p=await c.getAsync("contactMethods"),r={...e,body:{...e.body,form:o.form}},{errors:d,valid:g,errorTypes:_}=await p.validate(r);if(!g){const E=new z.FormBuilder(e.body.form);u(void 0),E.setValidationErrors(d),r.body={...r.body,form:E.get()},u({...r});return}const B=await p.submit(r);r.confirmation=B,u(r)}),s=t.subscribe("bot-provider:evaluate",async(a,o)=>{if(o.id!==i)return;const r=await(await c.getAsync("contactMethods")).evaluate(e);let d={...e,body:{...e.body,form:r}};const g=x.updateForm(d,{submit:"Submit",errors:{},meta:{groupId:b}});d={...d,body:g},u(d)});return()=>{m(),s()}},[c,e,u,y]);const v=(t,m,s=null)=>{if(t["ui:component"]&&t["ui:component"]==="Date")return Object.assign(t,{"ui:bot":!0,"ui:entrance":m}),t;for(const a in t)if(typeof t[a]=="object"&&t[a]!==null){const o=v(t[a],m,t);if(o!==void 0)return o}},w=l.useCallback(async t=>{const s=await(await F.DataClient.getInstance(c)).fetch(F.DataType.ContactMethod,{contactMethodId:t,guideId:n},{noCache:!0,isBot:!0}),a=x.updateForm(s,{submit:"Submit",errors:{},meta:{groupId:b}});if(s.body=a,s.body.guideId=n,!f.current)return null;u(s)},[f]);return l.useEffect(()=>(w(i),()=>{f.current=!1}),[i,w]),e?(e.clientName==="ace.callback"&&((h=e.body)!=null&&h.entrance)&&v(e,(q=e.body)==null?void 0:q.entrance),N.jsx(W,{...e,body:{...e.body,form:e.body.form?{...e.body.form,data:(k=e.body.form)==null?void 0:k.data,layout:{...e.body.form.layout},meta:(S=e.body.form)==null?void 0:S.meta,schema:(j=e.body.form)==null?void 0:j.schema}:void 0,guideId:e.body.guideId},inline:!0,expanded:!0,dispatch:A,className:O.appendClassNames("humany-bot-contact-method",T)})):null},W=R($.ContactMethod)`
2
- padding: ${i=>{var n;return(n=i.theme.sizes)==null?void 0:n.normal}} ${i=>{var n;return(n=i.theme.sizes)==null?void 0:n.medium}};
3
- `;exports.default=U;