@telia-ace/knowledge-widget-bot-provider 1.3.0-rc.1 → 1.3.0-rc.10

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 N, useDispatch as R, useConversation as T } from "@teli
6
6
  import { FormBuilder as _ } from "@telia-ace/widget-forms";
7
7
  import { appendClassNames as j } from "@telia-ace/widget-utilities";
8
8
  import { useState as G, useRef as I, useEffect as k, useCallback as V } from "react";
9
- import { u as S } from "./index-cc087f12.mjs";
9
+ import { u as S } from "./index-6df3a564.mjs";
10
10
  import "@telia-ace/widget-conversation";
11
11
  import "@telia-ace/widget-services";
12
12
  const tt = ({
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("react/jsx-runtime"),A=require("@emotion/styled"),S=require("@telia-ace/knowledge-data-client"),R=require("@telia-ace/knowledge-widget-adapters"),p=require("@telia-ace/knowledge-widget-ui"),T=require("@telia-ace/widget-forms"),$=require("@telia-ace/widget-utilities"),c=require("react"),F=require("./index-cb940de4.js");require("@telia-ace/widget-conversation");require("@telia-ace/widget-services");const z=({contactMethodId:n,guideId:o,groupId:m,className:x})=>{var C,v,w;const[e,s]=c.useState(),d=p.useContainer(),D=p.useDispatch(),l=c.useRef(!0),b=p.useConversation();c.useEffect(()=>{const{events:u}=d.get("$widget"),q=u.subscribe("bot-provider:form-submitted",async(f,r)=>{var M;if(((M=r.form.meta)==null?void 0:M.groupId)!==m||r.id!==e.id)return;b&&(r.form.meta||(r.form.meta={}),r.form.meta.conversation=b);const y=await d.getAsync("contactMethods"),t={...e,body:{...e.body,form:r.form}},{errors:i,valid:h,errorTypes:N}=await y.validate(t);if(!h){const k=new T.FormBuilder(e.body.form);s(void 0),k.setValidationErrors(i),t.body={...t.body,form:k.get()},s({...t});return}const E=await y.submit(t);t.confirmation=E,s(t)}),a=u.subscribe("bot-provider:evaluate",async(f,r)=>{if(r.id!==n)return;const t=await(await d.getAsync("contactMethods")).evaluate(e);let i={...e,body:{...e.body,form:t}};const h=F.updateForm(i,{submit:"Skicka",errors:{},meta:{groupId:m}});i={...i,body:h},s(i)});return()=>{q(),a()}},[d,e,s,b]);const g=c.useCallback(async u=>{const a=await(await S.DataClient.getInstance(d)).fetch(S.DataType.ContactMethod,{contactMethodId:u,guideId:o},{noCache:!0}),f=F.updateForm(a,{submit:"Skicka",errors:{},meta:{groupId:m}});if(a.body=f,a.body.guideId=o,!l.current)return null;s(a)},[l]);return c.useEffect(()=>(g(n),()=>{l.current=!1}),[n,g]),e?j.jsx(B,{...e,body:{...e.body,form:e.body.form?{...e.body.form,data:(C=e.body.form)==null?void 0:C.data,layout:{...e.body.form.layout},meta:(v=e.body.form)==null?void 0:v.meta,schema:(w=e.body.form)==null?void 0:w.schema}:void 0,guideId:e.body.guideId},inline:!0,expanded:!0,dispatch:D,className:$.appendClassNames("humany-bot-contact-method",x)}):null},B=A(R.ContactMethod)`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("react/jsx-runtime"),A=require("@emotion/styled"),S=require("@telia-ace/knowledge-data-client"),R=require("@telia-ace/knowledge-widget-adapters"),p=require("@telia-ace/knowledge-widget-ui"),T=require("@telia-ace/widget-forms"),$=require("@telia-ace/widget-utilities"),c=require("react"),F=require("./index-e9872899.js");require("@telia-ace/widget-conversation");require("@telia-ace/widget-services");const z=({contactMethodId:n,guideId:o,groupId:m,className:x})=>{var C,v,w;const[e,s]=c.useState(),d=p.useContainer(),D=p.useDispatch(),l=c.useRef(!0),b=p.useConversation();c.useEffect(()=>{const{events:u}=d.get("$widget"),q=u.subscribe("bot-provider:form-submitted",async(f,r)=>{var M;if(((M=r.form.meta)==null?void 0:M.groupId)!==m||r.id!==e.id)return;b&&(r.form.meta||(r.form.meta={}),r.form.meta.conversation=b);const y=await d.getAsync("contactMethods"),t={...e,body:{...e.body,form:r.form}},{errors:i,valid:h,errorTypes:N}=await y.validate(t);if(!h){const k=new T.FormBuilder(e.body.form);s(void 0),k.setValidationErrors(i),t.body={...t.body,form:k.get()},s({...t});return}const E=await y.submit(t);t.confirmation=E,s(t)}),a=u.subscribe("bot-provider:evaluate",async(f,r)=>{if(r.id!==n)return;const t=await(await d.getAsync("contactMethods")).evaluate(e);let i={...e,body:{...e.body,form:t}};const h=F.updateForm(i,{submit:"Skicka",errors:{},meta:{groupId:m}});i={...i,body:h},s(i)});return()=>{q(),a()}},[d,e,s,b]);const g=c.useCallback(async u=>{const a=await(await S.DataClient.getInstance(d)).fetch(S.DataType.ContactMethod,{contactMethodId:u,guideId:o},{noCache:!0}),f=F.updateForm(a,{submit:"Skicka",errors:{},meta:{groupId:m}});if(a.body=f,a.body.guideId=o,!l.current)return null;s(a)},[l]);return c.useEffect(()=>(g(n),()=>{l.current=!1}),[n,g]),e?j.jsx(B,{...e,body:{...e.body,form:e.body.form?{...e.body.form,data:(C=e.body.form)==null?void 0:C.data,layout:{...e.body.form.layout},meta:(v=e.body.form)==null?void 0:v.meta,schema:(w=e.body.form)==null?void 0:w.schema}:void 0,guideId:e.body.guideId},inline:!0,expanded:!0,dispatch:D,className:$.appendClassNames("humany-bot-contact-method",x)}):null},B=A(R.ContactMethod)`
2
2
  padding: ${n=>{var o;return(o=n.theme.sizes)==null?void 0:o.normal}} ${n=>{var o;return(o=n.theme.sizes)==null?void 0:o.medium}};
3
3
  `;exports.default=z;
@@ -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-d88ce2cc.js");require("@telia-ace/knowledge-data-client");require("@telia-ace/widget-forms");require("@telia-ace/widget-utilities");require("./index-cb940de4.js");require("@telia-ace/widget-conversation");require("@telia-ace/widget-services");const j=({actions:e,entryId:t,groupId:x})=>{const q=g.useDispatch(),d=g.useContainer(),[h,C]=l.useState([]),[o,M]=l.useState([]);return l.useEffect(()=>{d.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([...o,r.id]);else{const{events:f}=d.get("$widget");f.dispatch("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,d,t,o]),h.length?a.jsx(k,{className:"humany-bot-contact-list",contactMethods:h,dispatch:q,itemRenderer:(n,c)=>(o.includes(n.id)||n.expanded)&&n.inline?a.jsx(S,{contactMethodId:n.id,groupId:x,guideId:n.body.guideId}):a.jsx($,{...n,...c})}):null},k=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-7295c9e6.js");require("@telia-ace/knowledge-data-client");require("@telia-ace/widget-forms");require("@telia-ace/widget-utilities");require("./index-e9872899.js");require("@telia-ace/widget-conversation");require("@telia-ace/widget-services");const k=({actions:e,entryId:t,groupId:x})=>{const q=g.useDispatch(),d=g.useContainer(),[m,C]=l.useState([]),[o,M]=l.useState([]);return l.useEffect(()=>{d.getAsync("contactMethods").then(n=>{if(!n)return;const c=e.map(async i=>{var h;if(!((h=i.data)!=null&&h.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([...o,r.id]);else{const{events:f}=d.get("$widget");f.dispatch("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,d,t,o]),m.length?a.jsx(j,{className:"humany-bot-contact-list",contactMethods:m,dispatch:q,itemRenderer:(n,c)=>(o.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;
@@ -25,4 +25,4 @@
25
25
  justify-content: center;
26
26
  align-items: center;
27
27
  }
28
- `;exports.default=j;
28
+ `;exports.default=k;
@@ -3,11 +3,11 @@ import m from "@emotion/styled";
3
3
  import { ContactList as M, ContactMethod as $ } from "@telia-ace/knowledge-widget-adapters";
4
4
  import { useDispatch as b, 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-b5669c64.mjs";
6
+ import S from "./contact-method-305e4145.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-cc087f12.mjs";
10
+ import "./index-6df3a564.mjs";
11
11
  import "@telia-ace/widget-conversation";
12
12
  import "@telia-ace/widget-services";
13
13
  const F = ({ actions: t, entryId: e, groupId: y }) => {
@@ -53,7 +53,7 @@ const F = ({ actions: t, entryId: e, groupId: y }) => {
53
53
  className: "humany-bot-contact-list",
54
54
  contactMethods: l,
55
55
  dispatch: g,
56
- itemRenderer: (i, c) => (r.includes(i.id) || i.expanded) && i.inline ? /* @__PURE__ */ a(
56
+ itemRenderer: (i, c) => (r.includes(i.id) || i.expanded) && i.inline || i.clientName === "custom.link" ? /* @__PURE__ */ a(
57
57
  z,
58
58
  {
59
59
  contactMethodId: i.id,
@@ -0,0 +1,90 @@
1
+ import { jsxs as a, Fragment as m, jsx as n } from "react/jsx-runtime";
2
+ import i from "@emotion/styled";
3
+ import { useContainer as h, useDispatch as p, Icon as f, List as u, list as b, Button as y, buttonCss as g, invertedHoverButton as $ } from "@telia-ace/knowledge-widget-ui";
4
+ import { m as k } from "./styles-5f6d3622.mjs";
5
+ import "@emotion/react";
6
+ const K = ({ title: e, messageId: t, actions: s }) => {
7
+ const c = h(), { events: l } = c.get("$widget"), d = p(), r = document.createElement("div");
8
+ return r.innerHTML = e, e = r.innerText, /* @__PURE__ */ a(m, { children: [
9
+ /* @__PURE__ */ n("p", { id: t, children: e }),
10
+ /* @__PURE__ */ n(
11
+ F,
12
+ {
13
+ className: "humany-bot-feedback-list",
14
+ role: "group",
15
+ "aria-labelledby": t,
16
+ items: s,
17
+ "data-direction": "vertical",
18
+ renderItem: (o) => /* @__PURE__ */ n("li", { children: /* @__PURE__ */ a(
19
+ x,
20
+ {
21
+ className: "humany-feedback-button",
22
+ disabled: !1,
23
+ "aria-pressed": !0,
24
+ "data-selected": !0,
25
+ onClick: () => {
26
+ d("action", o.actionKey), l.dispatch("tracking:feedback-given-bot", {
27
+ feedbackResponse: o.actionKey
28
+ });
29
+ },
30
+ children: [
31
+ /* @__PURE__ */ n(
32
+ f,
33
+ {
34
+ faIcon: o.actionKey === "yes" ? "smile-o" : "frown-o"
35
+ }
36
+ ),
37
+ /* @__PURE__ */ n("span", { children: o.label })
38
+ ]
39
+ }
40
+ ) }, o.actionKey)
41
+ }
42
+ )
43
+ ] });
44
+ }, F = i(u)`
45
+ ${(e) => b(e)}
46
+ ${k}
47
+ display: flex;
48
+ gap: ${(e) => {
49
+ var t;
50
+ return (t = e.theme.sizes) == null ? void 0 : t.normal;
51
+ }};
52
+ flex-direction: ${(e) => e["data-direction"] === "horizontal" ? "row" : "column"};
53
+ > li {
54
+ flex: 1;
55
+ margin: 0;
56
+ }
57
+ `, x = i(y)`
58
+ ${g}
59
+ font-size: ${(e) => {
60
+ var t;
61
+ return (t = e.theme.fonts) == null ? void 0 : t.normal;
62
+ }};
63
+ border-color: ${(e) => {
64
+ var t;
65
+ return (t = e.theme.colors) == null ? void 0 : t.primary;
66
+ }};
67
+ font-weight: 300;
68
+ display: block;
69
+ width: 100%;
70
+
71
+ ${(e) => {
72
+ var t;
73
+ return $({
74
+ primaryColor: `${(t = e.theme.colors) == null ? void 0 : t.primary}`,
75
+ secondaryColor: "#FFFFFF",
76
+ theme: e.theme
77
+ });
78
+ }}
79
+ i {
80
+ margin: 0 ${(e) => {
81
+ var t;
82
+ return (t = e.theme.sizes) == null ? void 0 : t.small;
83
+ }} 0 0;
84
+ }
85
+ span {
86
+ }
87
+ `;
88
+ export {
89
+ K as default
90
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),i=require("@emotion/styled"),o=require("@telia-ace/knowledge-widget-ui"),u=require("./styles-66aa2377.js");require("@emotion/react");const m=({title:e,messageId:t,actions:a})=>{const c=o.useContainer(),{events:l}=c.get("$widget"),d=o.useDispatch(),r=document.createElement("div");return r.innerHTML=e,e=r.innerText,n.jsxs(n.Fragment,{children:[n.jsx("p",{id:t,children:e}),n.jsx(h,{className:"humany-bot-feedback-list",role:"group","aria-labelledby":t,items:a,"data-direction":"vertical",renderItem:s=>n.jsx("li",{children:n.jsxs(y,{className:"humany-feedback-button",disabled:!1,"aria-pressed":!0,"data-selected":!0,onClick:()=>{d("action",s.actionKey),l.dispatch("tracking:feedback-given-bot",{feedbackResponse:s.actionKey})},children:[n.jsx(o.Icon,{faIcon:s.actionKey==="yes"?"smile-o":"frown-o"}),n.jsx("span",{children:s.label})]})},s.actionKey)})]})},h=i(o.List)`
2
+ ${e=>o.list(e)}
3
+ ${u.messageContentPadding}
4
+ display: flex;
5
+ gap: ${e=>{var t;return(t=e.theme.sizes)==null?void 0:t.normal}};
6
+ flex-direction: ${e=>e["data-direction"]==="horizontal"?"row":"column"};
7
+ > li {
8
+ flex: 1;
9
+ margin: 0;
10
+ }
11
+ `,y=i(o.Button)`
12
+ ${o.buttonCss}
13
+ font-size: ${e=>{var t;return(t=e.theme.fonts)==null?void 0:t.normal}};
14
+ border-color: ${e=>{var t;return(t=e.theme.colors)==null?void 0:t.primary}};
15
+ font-weight: 300;
16
+ display: block;
17
+ width: 100%;
18
+
19
+ ${e=>{var t;return o.invertedHoverButton({primaryColor:`${(t=e.theme.colors)==null?void 0:t.primary}`,secondaryColor:"#FFFFFF",theme:e.theme})}}
20
+ i {
21
+ margin: 0 ${e=>{var t;return(t=e.theme.sizes)==null?void 0:t.small}} 0 0;
22
+ }
23
+ span {
24
+ }
25
+ `;exports.default=m;
@@ -1,7 +1,7 @@
1
1
  var F = Object.defineProperty;
2
- var T = (s, t, e) => t in s ? F(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e;
3
- var f = (s, t, e) => (T(s, typeof t != "symbol" ? t + "" : t, e), e);
4
- import { ConversationMessageListItemType as v, ConversationPlatform as G, registerCustomMessageComponent as N } from "@telia-ace/widget-conversation";
2
+ var G = (s, t, e) => t in s ? F(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e;
3
+ var f = (s, t, e) => (G(s, typeof t != "symbol" ? t + "" : t, e), e);
4
+ import { ConversationMessageListItemType as v, ConversationPlatform as T, registerCustomMessageComponent as N } from "@telia-ace/widget-conversation";
5
5
  import { readStorage as U, createStorageWriter as P, StorageCategory as B } from "@telia-ace/widget-services";
6
6
  import { uuid as K } from "@telia-ace/widget-utilities";
7
7
  import { FormBuilder as A, submitButton as V } from "@telia-ace/widget-forms";
@@ -12,7 +12,7 @@ const j = (s) => {
12
12
  if (t && e)
13
13
  return { type: t, content: e };
14
14
  }
15
- }, H = ({
15
+ }, R = ({
16
16
  isUser: s,
17
17
  items: t = [],
18
18
  meta: e = {}
@@ -55,8 +55,8 @@ const j = (s) => {
55
55
  body: {}
56
56
  };
57
57
  if (o.indexOf("phone") > -1 || o.indexOf("freetext") > -1) {
58
- const { displayTextBeforeClick: k, textBeforeClick: u } = h;
59
- k === "true" && (d.expanded = !1, d.title = u), o.indexOf("phone.text") > -1 ? d.body.phoneNumber = h.phoneNumber : d.body.freetext = h.freetext;
58
+ const { displayTextBeforeClick: L, textBeforeClick: u } = h;
59
+ L === "true" && (d.expanded = !1, d.title = u), o.indexOf("phone.text") > -1 ? d.body.phoneNumber = h.phoneNumber : d.body.freetext = h.freetext;
60
60
  }
61
61
  return (o.indexOf("chat.popup") > -1 || o.indexOf("link") > -1 || o === "custom.adapter" && i === "custom") && (d.body = h, d.body.confirmationFallback = a), o.indexOf("ace") > -1 && (d.body = h), g && g.hasValueComponents && (l ? d.body.form = A.fromLegacyForm(
62
62
  s.toString(),
@@ -91,7 +91,7 @@ const j = (s) => {
91
91
  };
92
92
  }
93
93
  return (s == null ? void 0 : s.body) || {};
94
- }, R = async (s, t, e) => {
94
+ }, H = async (s, t, e) => {
95
95
  (await (await s.getAsync("dataClient")).getClient()).parameters.set(t, e);
96
96
  }, b = ({
97
97
  messageId: s,
@@ -111,7 +111,7 @@ const j = (s) => {
111
111
  const l = [];
112
112
  return y.actions = o.content.items.map((d) => {
113
113
  var u;
114
- const k = {
114
+ const L = {
115
115
  label: d.title,
116
116
  actionKey: d.actionKey,
117
117
  symbol: d.symbol ? d.symbol : void 0,
@@ -119,34 +119,34 @@ const j = (s) => {
119
119
  };
120
120
  if (d.data) {
121
121
  const S = o.actions[d.actionKey];
122
- c === m.ContactList ? (l.push(d.data.id), k.data = z(d.data, {
122
+ c === m.ContactList ? (l.push(d.data.id), L.data = z(d.data, {
123
123
  guideId: (u = S == null ? void 0 : S.guideId) == null ? void 0 : u.toString()
124
- })) : k.data = d.data;
124
+ })) : L.data = d.data;
125
125
  }
126
- return k;
126
+ return L;
127
127
  }), c === m.ContactList && (y.contactMethodIds = l), y;
128
128
  }, i = async (c, o, h = [], y) => {
129
- var d, k;
129
+ var d, L;
130
130
  const l = K();
131
- switch (c.type !== "List" && c.tags.includes("guide") && ((k = (d = c.content.hints) == null ? void 0 : d[0]) != null && k.id) && await R(
131
+ switch (c.type !== "List" && c.tags.includes("guide") && ((L = (d = c.content.hints) == null ? void 0 : d[0]) != null && L.id) && await H(
132
132
  s,
133
133
  "LastGuideId",
134
134
  c.content.hints[0].id
135
135
  ), c.type) {
136
136
  case "List": {
137
- const { header: u, items: S, html: x } = c.content, I = [];
138
- let L = {
137
+ const { header: u, items: S, html: x } = c.content, k = [];
138
+ let I = {
139
139
  actions: [],
140
140
  entryId: c.id,
141
141
  groupId: o.id
142
142
  };
143
- if (L.tags = c.tags || null, u && (L.header = u), (S == null ? void 0 : S.length) > 0) {
143
+ if (I.tags = c.tags || null, u && (I.header = u), (S == null ? void 0 : S.length) > 0) {
144
144
  const p = W(c);
145
- if (L = n(
145
+ if (I = n(
146
146
  p,
147
147
  c,
148
148
  o.id,
149
- L
149
+ I
150
150
  ), h.length) {
151
151
  const C = h.find(
152
152
  (E) => E.tags.includes("paging")
@@ -158,7 +158,7 @@ const j = (s) => {
158
158
  items: C.content.items,
159
159
  localState: C.localState
160
160
  }, C.content.items.forEach((E) => {
161
- L.actions.push({
161
+ I.actions.push({
162
162
  label: E.title,
163
163
  actionKey: E.actionKey,
164
164
  data: {
@@ -169,7 +169,7 @@ const j = (s) => {
169
169
  const E = O.content.items.find(
170
170
  ($) => $.actionKey === "help"
171
171
  );
172
- E && (I.push(
172
+ E && (k.push(
173
173
  b({
174
174
  messageId: l,
175
175
  message: [
@@ -178,7 +178,7 @@ const j = (s) => {
178
178
  ],
179
179
  group: o
180
180
  })
181
- ), I.push(
181
+ ), k.push(
182
182
  b({
183
183
  messageId: l,
184
184
  message: [
@@ -190,21 +190,21 @@ const j = (s) => {
190
190
  ));
191
191
  }
192
192
  }
193
- I.unshift(
193
+ k.unshift(
194
194
  b({
195
195
  messageId: l,
196
- message: [p, L],
196
+ message: [p, I],
197
197
  group: o
198
198
  })
199
199
  );
200
200
  }
201
- return x && I.unshift(
201
+ return x && k.unshift(
202
202
  b({
203
203
  messageId: l,
204
204
  message: [v.HTML, { body: x }],
205
205
  group: o
206
206
  })
207
- ), I;
207
+ ), k;
208
208
  }
209
209
  case "Text": {
210
210
  const u = [];
@@ -225,20 +225,20 @@ const j = (s) => {
225
225
  }
226
226
  ), x = h.find(
227
227
  (p) => p.tags.includes("dialog")
228
- ), I = h.find(
228
+ ), k = h.find(
229
229
  (p) => p.tags.includes("feedback")
230
- ), L = h.find(
230
+ ), I = h.find(
231
231
  (p) => p.tags.includes("contact") && p.type === "Contact"
232
232
  );
233
- if (L && u.push(
233
+ if (I && u.push(
234
234
  b({
235
235
  messageId: l,
236
236
  message: [
237
237
  m.ContactMethod,
238
238
  {
239
- contactMethodId: L.content.id,
239
+ contactMethodId: I.content.id,
240
240
  groupId: o.id,
241
- guideId: L.content.guideId
241
+ guideId: I.content.guideId
242
242
  }
243
243
  ],
244
244
  group: o
@@ -281,32 +281,23 @@ const j = (s) => {
281
281
  })
282
282
  );
283
283
  }
284
- I && (I.content.html && u.push(
285
- b({
286
- messageId: l,
287
- group: o,
288
- message: [
289
- v.HTML,
290
- {
291
- body: I.content.html
292
- }
293
- ]
294
- })
295
- ), u.push(
284
+ k && u.push(
296
285
  b({
297
286
  messageId: l,
298
287
  group: o,
299
288
  message: [
300
289
  m.FeedbackList,
301
290
  {
302
- actions: I.content.items.map((p) => ({
291
+ title: k.content.html,
292
+ messageId: l,
293
+ actions: k.content.items.map((p) => ({
303
294
  actionKey: p.actionKey,
304
295
  label: p.title
305
296
  }))
306
297
  }
307
298
  ]
308
299
  })
309
- ));
300
+ );
310
301
  }
311
302
  return u;
312
303
  }
@@ -407,7 +398,7 @@ const j = (s) => {
407
398
  for (const c of M) {
408
399
  const o = t.filter(
409
400
  (l) => l.relation === c.id && !w(l)
410
- ), h = H({ isUser: !1 });
401
+ ), h = R({ isUser: !1 });
411
402
  (await i(c, h, o, e)).forEach((l) => {
412
403
  h.items.push(l);
413
404
  }), h.items.length && g.push(h);
@@ -718,7 +709,7 @@ class X {
718
709
  }
719
710
  }
720
711
  printUserMessage(t) {
721
- const e = H({
712
+ const e = R({
722
713
  isUser: !0,
723
714
  items: [
724
715
  {
@@ -732,7 +723,7 @@ class X {
732
723
  }
733
724
  async onMessageSend(t) {
734
725
  const e = this.conversation.loading(), n = await this.httpClient.sendMessage(t);
735
- await R(this.container, "phrase", t), this.printUserMessage(t), n && this.onMessagesReceived(n), e();
726
+ await H(this.container, "phrase", t), this.printUserMessage(t), n && this.onMessagesReceived(n), e();
736
727
  }
737
728
  async onWidgetEntryReceived(t) {
738
729
  var c, o, h, y, l;
@@ -765,15 +756,15 @@ class X {
765
756
  }
766
757
  }
767
758
  const it = async (s) => {
768
- const t = await G.getInstance(s);
759
+ const t = await T.getInstance(s);
769
760
  N(
770
761
  s,
771
762
  m.ContactList,
772
- import("./contact-method-list-dae09f9d.mjs")
763
+ import("./contact-method-list-127be59a.mjs")
773
764
  ), N(
774
765
  s,
775
766
  m.ContactMethod,
776
- import("./contact-method-b5669c64.mjs")
767
+ import("./contact-method-305e4145.mjs")
777
768
  ), N(
778
769
  s,
779
770
  m.NotificationList,
@@ -785,7 +776,7 @@ const it = async (s) => {
785
776
  ), N(
786
777
  s,
787
778
  m.FeedbackList,
788
- import("./feedback-list-0cf5a7d8.mjs")
779
+ import("./feedback-list-cef0ad94.mjs")
789
780
  ), t.registerProvider("ace-knowledge-bot", (e, n) => {
790
781
  const i = new X(
791
782
  s,
@@ -0,0 +1 @@
1
+ "use strict";var R=Object.defineProperty;var H=(n,t,e)=>t in n?R(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var y=(n,t,e)=>(H(n,typeof t!="symbol"?t+"":t,e),e);const p=require("@telia-ace/widget-conversation"),N=require("@telia-ace/widget-services"),K=require("@telia-ace/widget-utilities"),P=require("@telia-ace/widget-forms");var f=(n=>(n.ContactMethod="ace-knowledge-bot-contact-method",n.ContactList="ace-knowledge-bot-contact-list",n.FeedbackList="ace-knowledge-bot-feedback-list",n.NotificationList="ace-knowledge-bot-notification-list",n.NoGoodAlternative="ace-knowledge-bot-no-good-alternative",n))(f||{});const $=n=>{if(n){const{type:t,content:e}=n;if(t&&e)return{type:t,content:e}}},A=({isUser:n,items:t=[],meta:e={}})=>{const s=K.uuid();return{id:s,isUser:n,items:t.map(a=>({id:a.id||K.uuid(),isUser:n,groupId:s,message:a.message||[]})),meta:e}},U=({id:n,title:t,defaultIcon:e,exits:[s],exitType:i,confirmationText:a,expandFormAutomatically:c,form:h,description:E},S={})=>{const{adapter:r}=s||{Adapter:{}},{clientName:o="",settings:g={},customClientName:v=""}=r,{validation:l}=S,d={id:n.toString(),title:t,description:E,symbol:$(e),clientName:o==="custom.adapter"?v:o,expanded:!0,inline:!0,body:{}};if(o.indexOf("phone")>-1||o.indexOf("freetext")>-1){const{displayTextBeforeClick:L,textBeforeClick:m}=g;L==="true"&&(d.expanded=!1,d.title=m),o.indexOf("phone.text")>-1?d.body.phoneNumber=g.phoneNumber:d.body.freetext=g.freetext}return(o.indexOf("chat.popup")>-1||o.indexOf("link")>-1||o==="custom.adapter"&&i==="custom")&&(d.body=g,d.body.confirmationFallback=a),o.indexOf("ace")>-1&&(d.body=g),h&&h.hasValueComponents&&(l?d.body.form=P.FormBuilder.fromLegacyForm(n.toString(),h,l).get():d.body.form=P.FormBuilder.fromLegacyForm(n.toString(),h).get(),c||(d.expanded=d.inline=!1),d.body=B(d,{submit:"Submit"})),S.guideId&&(d.body.guideId=S.guideId),d},G=n=>{const{localState:t}=n;return n.tags.includes("category")&&n.tags.includes("contact")?p.ConversationMessageListItemType.ItemList:n.tags.includes("suggestion")||(t==null?void 0:t.$type)==="Humany.Matching.Bots.Conversations.GuideListState, Humany.Matching"?p.ConversationMessageListItemType.LinkList:(t==null?void 0:t.$type)==="Humany.Matching.Bots.Conversations.States.GuideFeedbackState, Humany.Matching"?f.FeedbackList:(t==null?void 0:t.$type)==="Humany.Matching.Bots.Conversations.States.ContactState, Humany.Matching"?f.ContactList:p.ConversationMessageListItemType.ButtonList},q=(n,t)=>{const{knowledgeBotEndpoint:e}=t.properties();if(e)return`${e}/conversations`;const{data:s}=n.get("$settings");if(!s||!s.projection)throw new Error("Missing Knowledge Bot endpoint");return`${s.projection}/conversations`},B=(n,{submit:t,errors:e,meta:s})=>{var i;if((i=n==null?void 0:n.body)!=null&&i.form){const{body:a}=n,c=new P.FormBuilder(a.form);return a.form.layout.submit||c.createComponent(P.submitButton(t,"submit")),e&&c.setValidationErrors(e),s&&c.setMeta(s),{...a,form:c.get()}}return(n==null?void 0:n.body)||{}},O=async(n,t,e)=>{(await(await n.getAsync("dataClient")).getClient()).parameters.set(t,e)},b=({messageId:n,message:t,group:e})=>({id:n,message:t,groupId:e.id,isUser:e.isUser}),V=async(n,t,e)=>{const s=(r,o,g,v={actions:[],entryId:o.id,groupId:g})=>{const l=[];return v.actions=o.content.items.map(d=>{var m;const L={label:d.title,actionKey:d.actionKey,symbol:d.symbol?d.symbol:void 0,description:d.description||void 0};if(d.data){const w=o.actions[d.actionKey];r===f.ContactList?(l.push(d.data.id),L.data=U(d.data,{guideId:(m=w==null?void 0:w.guideId)==null?void 0:m.toString()})):L.data=d.data}return L}),r===f.ContactList&&(v.contactMethodIds=l),v},i=async(r,o,g=[],v)=>{var d,L;const l=K.uuid();switch(r.type!=="List"&&r.tags.includes("guide")&&((L=(d=r.content.hints)==null?void 0:d[0])!=null&&L.id)&&await O(n,"LastGuideId",r.content.hints[0].id),r.type){case"List":{const{header:m,items:w,html:x}=r.content,M=[];let C={actions:[],entryId:r.id,groupId:o.id};if(C.tags=r.tags||null,m&&(C.header=m),(w==null?void 0:w.length)>0){const u=G(r);if(C=s(u,r,o.id,C),g.length){const I=g.find(k=>k.tags.includes("paging")),T=g.find(k=>k.tags.includes("fallback"));if(I!=null&&I.content&&(o.meta.paging={actions:I.actions,items:I.content.items,localState:I.localState},I.content.items.forEach(k=>{C.actions.push({label:k.title,actionKey:k.actionKey,data:{groupId:v?v.id:o.id}})})),T){const k=T.content.items.find(F=>F.actionKey==="help");k&&(M.push(b({messageId:l,message:[p.ConversationMessageListItemType.Separator,void 0],group:o})),M.push(b({messageId:l,message:[f.NoGoodAlternative,{body:k.title}],group:o})))}}M.unshift(b({messageId:l,message:[u,C],group:o}))}return x&&M.unshift(b({messageId:l,message:[p.ConversationMessageListItemType.HTML,{body:x}],group:o})),M}case"Text":{const m=[];if(m.push(b({messageId:l,message:[p.ConversationMessageListItemType.HTML,{body:r.content.html}],group:o})),g.length){const w=g.find(u=>{var I;return u.type==="List"&&((I=u.localState)==null?void 0:I.$type)==="Humany.Matching.Bots.Conversations.States.ContactState, Humany.Matching"}),x=g.find(u=>u.tags.includes("dialog")),M=g.find(u=>u.tags.includes("feedback")),C=g.find(u=>u.tags.includes("contact")&&u.type==="Contact");if(C&&m.push(b({messageId:l,message:[f.ContactMethod,{contactMethodId:C.content.id,groupId:o.id,guideId:C.content.guideId}],group:o})),x&&m.push(b({messageId:l,message:[p.ConversationMessageListItemType.ButtonList,{actions:x.content.items.map(u=>({label:u.title,actionKey:u.actionKey,data:u.data}))}],group:o})),w){const u=s(f.ContactList,w,o.id);m.push(b({messageId:l,message:[p.ConversationMessageListItemType.Separator,void 0],group:o})),m.push(b({messageId:l,message:[f.ContactList,u],group:o}))}M&&m.push(b({messageId:l,group:o,message:[f.FeedbackList,{title:M.content.html,messageId:l,actions:M.content.items.map(u=>({actionKey:u.actionKey,label:u.title}))}]}))}return m}case"Contact":return[b({messageId:l,message:[f.ContactMethod,{contactMethodId:r.content.id,groupId:o.id,guideId:r.content.guideId}],group:o})];case"CategorizedNoticeList":{const m=[b({messageId:l,message:[f.NotificationList,{id:r.content.item.id.toString(),header:r.content.item.title,items:r.content.item.listNotices,symbol:r.content.item.defaultIcon}],group:o})];return(r.content.notices||[]).forEach(w=>{m.push(b({messageId:l,message:[p.ConversationMessageListItemType.HTML,{body:w.body}],group:o}))}),m}case"footerNotice":return[b({messageId:l,message:[p.ConversationMessageListItemType.HTML,{body:r.content.item.body}],group:o})];case"Error":return[b({messageId:l,message:[p.ConversationMessageListItemType.HTML,{body:r.content.message||"Something went wrong."}],group:o})];default:return[]}},a=r=>["CategorizedNoticeList","NoticeList"].includes(r.type)?(r.content.items||[]).reduce((o,g)=>(r.content.isInitialNotices&&o.push({...r,id:K.uuid(),type:g.type||r.type,content:{$type:r.content.$type,isInitialNotices:r.content.isInitialNotices,notices:g.notices,item:g}}),o),[]):r,c=new Map([["Text",1],["List",2],["Contact",3],["CategorizedNoticeList",10]]),h=[],E=t.sort((r,o)=>{const v=c.get(r.type)||20,l=c.get(o.type)||20;return v-l}).filter(r=>!r.relation).reduce((r,o)=>r.concat(a(o)),[]),S=r=>typeof r.actions.selector<"u";for(const r of E){const o=t.filter(l=>l.relation===r.id&&!S(l)),g=A({isUser:!1});(await i(r,g,o,e)).forEach(l=>{g.items.push(l)}),g.items.length&&h.push(g)}return h};class j{constructor(t,e,s,i){y(this,"globalState");y(this,"localState");y(this,"clientId");y(this,"entries");this.endpoint=t,this.events=e,this.store=s,this.container=i,this.clientId=K.uuid(),this.entries=[]}async start({silent:t}){const e=await this.store.read("globalState"),s=await this.store.read("localState"),i=await this.store.read("entries");if(this.globalState=e||this.globalState,this.localState=s||this.localState,this.entries=i||this.entries,t)return;const a=this.createInitialEnvelope();return await this.postEnvelope(a)}async sendMessage(t){const e={command:{phrase:t},globalState:this.globalState,clientId:this.clientId};return await this.postEnvelope(e)}async helpAction(){return this.postEnvelope({action:{key:"help",content:{$type:"Humany.Matching.Bots.Conversations.Actions.Help, Humany.Matching"}},globalState:this.globalState,clientId:this.clientId})}async nextAction(t){var s;const{paging:e}=t.meta;if((s=e.actions)!=null&&s.next)return this.postEnvelope({action:{key:"next",content:e.actions.next},localState:e.localState,globalState:this.globalState,clientId:this.clientId},t).then(i=>{const a=t.items.findIndex(c=>c.message[0]==="link-list");return a===-1||!i?t:{...t,meta:{...t.meta,...i[0].meta},items:[...t.items.slice(0,a),{...t.items[a],message:[i[0].items[0].message[0],{...t.items[a].message[1],...i[0].items[0].message[1]}]},...t.items.slice(a+1)]}})}async showContactMethodAction(t){const e=this.entries.find(i=>i.id===t.entryId),s=e==null?void 0:e.actions[t.actionKey];if(s)return this.postEnvelope({action:{key:t.actionKey,content:s},localState:e.localState,globalState:this.globalState,clientId:this.clientId})}async defaultAction(t){const e=this.getEntryOfAction(t);if(e)return this.postEnvelope({action:{key:t,content:e.actions[t]},localState:e.localState,globalState:this.globalState,clientId:this.clientId})}createInitialEnvelope(){return{command:{site:this.endpoint},clientId:this.clientId,globalState:{},funnel:this.container.get("$widget").name}}async postEnvelope(t,e){try{const s=await fetch(this.endpoint,this.getHttpOptions(t));if(!s.ok)throw s;const i=await s.json();return this.handleResponse(i,e)}catch(s){process.env.NODE_ENV!=="production"&&console.warn("Something went wrong when posting the envelope.");let i="Something went wrong";return(s.message==="Failed to fetch"||s.message==="NetworkError when attempting to fetch resource.")&&(i="Lost connection... Please try again."),this.events.dispatch("tracking:http-client-error",{message:i,error:s}),this.handleResponse({entries:[{id:K.uuid(),type:"Error",timestamp:new Date().toISOString(),content:{message:i},actions:{},tags:[]}]})}}async handleResponse(t,e){this.entries=this.entries.concat(t.entries),this.store.write(this.entries,"entries");const s=t.entries.find(a=>a.type==="Widget");return s&&this.events.dispatch("provider:widget-entry",s.content),t.globalState&&(this.globalState=t.globalState,this.store.write(t.globalState,"globalState")),this.localState=t.entries.reduce((a,c)=>c.localState?c.localState:a,void 0),this.store.write(this.localState,"localState"),await V(this.container,t.entries,e)}getHttpOptions(t){const e={method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"}};return t.funnel=this.container.get("$widget").name,t.localState=t.localState||this.localState,Object.assign({},e,{body:JSON.stringify(t),credentials:"same-origin"})}getEntryOfAction(t){return this.entries.find(e=>!!e.actions[t])}}class z{constructor(t){y(this,"enabled",!0);y(this,"botProviderGlobalStateKey","bot-provider-global-state");y(this,"botProviderLocalStateKey","bot-provider-local-state");y(this,"botProviderEntriesKey","bot-provider-entries");y(this,"botProviderMetaStateKey","bot-provider-conversation-meta");this.container=t}getKey(t){let e;switch(t){case"localState":e=this.botProviderLocalStateKey;break;case"globalState":e=this.botProviderGlobalStateKey;break;case"entries":e=this.botProviderEntriesKey;break;case"meta":e=this.botProviderMetaStateKey;break}return e}async read(t){const e=this.getKey(t);if(!(!this.enabled||!e))return N.readStorage(this.container,e)}async write(t,e){const s=this.getKey(e);if(!this.enabled||!s)return;(await N.createStorageWriter(this.container,s,N.StorageCategory.Necessary))(t)}}class W{constructor(t,e,s){y(this,"agent");y(this,"user");y(this,"httpClient");y(this,"events");y(this,"groups",[]);y(this,"store");this.container=t,this.conversation=e;const{events:i}=this.container.get("$widget");this.events=i,this.store=new z(t),this.agent=e.createAgent({id:"knowledge-bot-agent",name:"",avatar:void 0}),this.user=e.user;const a=q(t,s);this.httpClient=new j(a,i,this.store,this.container),this.events.subscribe("provider:widget-entry",(c,h)=>{this.onWidgetEntryReceived(h)}),this.events.subscribe("provider:open-contact-method",async(c,h)=>{const E=await this.httpClient.showContactMethodAction(h);E&&(h.contactMethod.title&&this.printUserMessage(h.contactMethod.title),this.onMessagesReceived(E))})}async initialize(){var a;const t=this.conversation.loading(),e=await this.store.read("meta");e!=null&&e.agent&&this.agent.update({name:e.agent.name,avatar:e.agent.avatar});const s=await this.conversation.isRehydrated(),i=await this.httpClient.start({silent:((a=this.conversation.options)==null?void 0:a.silent)||s});i&&this.onMessagesReceived(i),t()}async onMessagesReceived(t){this.groups=this.groups.concat(t),t.forEach(e=>{const s=e.items.map(i=>i.message);e.isUser?e.writer=this.user.print(s):e.writer=this.agent.print(s)})}async onInput(t){const e=typeof t=="string"?t:t.actionKey;switch(e){case"next":{if(typeof t=="string")return;const s=this.groups.find(i=>{var a;return i.id===((a=t.data)==null?void 0:a.groupId)});if(s){const i=await this.httpClient.nextAction(s);if(i){const a=i.items.map(c=>c.message);s.meta.paging=i==null?void 0:i.meta.paging,s.writer.update(a)}}}break;case"help":{const s=this.conversation.loading(),i=await this.httpClient.helpAction();s(),i&&this.onMessagesReceived(i)}break;default:{typeof t!="string"&&t.label&&this.printUserMessage(t.label);const s=this.conversation.loading(),i=await this.httpClient.defaultAction(e);i&&this.onMessagesReceived(i),s()}break}}printUserMessage(t){const e=A({isUser:!0,items:[{id:K.uuid(),isUser:!0,message:[p.ConversationMessageListItemType.HTML,{body:t}]}]});return this.onMessagesReceived([e]),e}async onMessageSend(t){const e=this.conversation.loading(),s=await this.httpClient.sendMessage(t);await O(this.container,"phrase",t),this.printUserMessage(t),s&&this.onMessagesReceived(s),e()}async onWidgetEntryReceived(t){var r,o,g,v,l;if(t.agent){const d={name:t.agent.name,avatar:t.agent.avatar};this.agent.update(d),(await N.createStorageWriter(this.container,"bot-provider-conversation-meta",N.StorageCategory.Necessary))({agent:d})}const s=(await this.container.getAsync("components")).components().ofType("widget-header").select();if(!s)return;const i=await this.container.get("settings"),a=i==null?void 0:i.components["widget-header"],c=(o=(r=a==null?void 0:a.properties)==null?void 0:r.actions)==null?void 0:o.avatar,h=(g=a==null?void 0:a.properties)==null?void 0:g.header,E=(v=a==null?void 0:a.properties)==null?void 0:v.tagline,S={};!h&&(t!=null&&t.heading)&&(S.header=t.heading),!E&&(t!=null&&t.tagline)&&(S.tagline=t.tagline),!c&&((l=t==null?void 0:t.agent)!=null&&l.avatar)&&(S.actions={avatar:{position:"left",symbol:{type:"Uri",content:t.agent.avatar}}}),Object.keys(S).length>0&&s.writeProperties(S)}}const _=async n=>{const t=await p.ConversationPlatform.getInstance(n);p.registerCustomMessageComponent(n,f.ContactList,Promise.resolve().then(()=>require("./contact-method-list-07ac8bf8.js"))),p.registerCustomMessageComponent(n,f.ContactMethod,Promise.resolve().then(()=>require("./contact-method-7295c9e6.js"))),p.registerCustomMessageComponent(n,f.NotificationList,Promise.resolve().then(()=>require("./notification-list-d4d9695d.js"))),p.registerCustomMessageComponent(n,f.NoGoodAlternative,Promise.resolve().then(()=>require("./no-good-alternative-0ced8ab9.js"))),p.registerCustomMessageComponent(n,f.FeedbackList,Promise.resolve().then(()=>require("./feedback-list-f6cb760a.js"))),t.registerProvider("ace-knowledge-bot",(e,s)=>{const i=new W(n,e,s);i.initialize();const a=[];return a.push(s.actions.watch("conversation.user-submit",(c,h)=>{i.onMessageSend(c.text)})),a.push(s.actions.watch("conversation.action",(c,h)=>(i.onInput(c),h(c)))),a.push(s.actions.create("evaluate",c=>{const{events:h}=n.get("$widget");h.dispatch("bot-provider:evaluate",c)})),a.push(s.actions.create("submit",c=>{const{events:h}=n.get("$widget");h.dispatch("bot-provider:form-submitted",c)})),()=>{a.forEach(c=>{c()})}})};exports.KnowledgeBotProviderPlugin=_;exports.updateForm=B;
package/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-cb940de4.js");require("@telia-ace/widget-conversation");require("@telia-ace/widget-services");require("@telia-ace/widget-utilities");require("@telia-ace/widget-forms");exports.ConversationPlugin=e.KnowledgeBotProviderPlugin;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-e9872899.js");require("@telia-ace/widget-conversation");require("@telia-ace/widget-services");require("@telia-ace/widget-utilities");require("@telia-ace/widget-forms");exports.ConversationPlugin=e.KnowledgeBotProviderPlugin;
package/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { K as n } from "./index-cc087f12.mjs";
1
+ import { K as n } from "./index-6df3a564.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/knowledge-widget-bot-provider",
3
- "version": "1.3.0-rc.1",
3
+ "version": "1.3.0-rc.10",
4
4
  "main": "./index.js",
5
5
  "types": "./index.d.ts",
6
6
  "exports": {
@@ -10,15 +10,15 @@
10
10
  }
11
11
  },
12
12
  "dependencies": {
13
- "@telia-ace/knowledge-data-client": "^1.3.0-rc.1",
14
- "@telia-ace/knowledge-widget-adapters": "^1.3.0-rc.1",
15
- "@telia-ace/knowledge-widget-ui": "^1.3.0-rc.1",
16
- "@telia-ace/widget-conversation": "^1.3.0-rc.1",
17
- "@telia-ace/widget-forms": "^1.3.0-rc.1",
18
- "@telia-ace/widget-services": "^1.3.0-rc.1",
19
- "@telia-ace/widget-utilities": "^1.3.0-rc.1",
13
+ "@telia-ace/knowledge-data-client": "^1.3.0-rc.10",
14
+ "@telia-ace/knowledge-widget-adapters": "^1.3.0-rc.10",
15
+ "@telia-ace/knowledge-widget-ui": "^1.3.0-rc.10",
16
+ "@telia-ace/widget-conversation": "^1.3.0-rc.10",
17
+ "@telia-ace/widget-forms": "^1.3.0-rc.10",
18
+ "@telia-ace/widget-services": "^1.3.0-rc.10",
19
+ "@telia-ace/widget-utilities": "^1.3.0-rc.10",
20
20
  "@webprovisions/platform": "^1.1.4",
21
- "@telia-ace/knowledge-widget-core": "^1.3.0-rc.1"
21
+ "@telia-ace/knowledge-widget-core": "^1.3.0-rc.10"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "@emotion/react": "11.11.1",
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
2
  type Props = {
3
+ title: string;
4
+ messageId: string;
3
5
  actions: {
4
6
  [key: string]: string;
5
7
  }[];
@@ -1,80 +0,0 @@
1
- import { jsx as a, jsxs as i } from "react/jsx-runtime";
2
- import n from "@emotion/styled";
3
- import { useContainer as c, useDispatch as l, Icon as d, List as m, list as f, Button as h, buttonCss as p, invertedHoverButton as u } from "@telia-ace/knowledge-widget-ui";
4
- import { m as y } from "./styles-5f6d3622.mjs";
5
- import "@emotion/react";
6
- const v = ({ actions: e }) => {
7
- const t = c(), { events: s } = t.get("$widget"), r = l();
8
- return /* @__PURE__ */ a(
9
- b,
10
- {
11
- className: "humany-bot-feedback-list",
12
- items: e,
13
- "data-direction": "vertical",
14
- renderItem: (o) => /* @__PURE__ */ a("li", { children: /* @__PURE__ */ i(
15
- $,
16
- {
17
- className: "humany-feedback-button",
18
- disabled: !1,
19
- "aria-pressed": !0,
20
- "data-selected": !0,
21
- onClick: () => {
22
- r("action", o.actionKey), s.dispatch("tracking:feedback-given-bot", {
23
- feedbackResponse: o.actionKey
24
- });
25
- },
26
- children: [
27
- /* @__PURE__ */ a(d, { faIcon: o.actionKey === "yes" ? "smile-o" : "frown-o" }),
28
- /* @__PURE__ */ a("span", { children: o.label })
29
- ]
30
- }
31
- ) }, o.actionKey)
32
- }
33
- );
34
- }, b = n(m)`
35
- ${(e) => f(e)}
36
- ${y}
37
- display: flex;
38
- gap: ${(e) => {
39
- var t;
40
- return (t = e.theme.sizes) == null ? void 0 : t.normal;
41
- }};
42
- flex-direction: ${(e) => e["data-direction"] === "horizontal" ? "row" : "column"};
43
- > li {
44
- flex: 1;
45
- margin: 0;
46
- }
47
- `, $ = n(h)`
48
- ${p}
49
- font-size: ${(e) => {
50
- var t;
51
- return (t = e.theme.fonts) == null ? void 0 : t.normal;
52
- }};
53
- border-color: ${(e) => {
54
- var t;
55
- return (t = e.theme.colors) == null ? void 0 : t.primary;
56
- }};
57
- font-weight: 300;
58
- display: block;
59
- width: 100%;
60
-
61
- ${(e) => {
62
- var t;
63
- return u({
64
- primaryColor: `${(t = e.theme.colors) == null ? void 0 : t.primary}`,
65
- secondaryColor: "#FFFFFF",
66
- theme: e.theme
67
- });
68
- }}
69
- i {
70
- margin: 0 ${(e) => {
71
- var t;
72
- return (t = e.theme.sizes) == null ? void 0 : t.small;
73
- }} 0 0;
74
- }
75
- span {
76
- }
77
- `;
78
- export {
79
- v as default
80
- };
@@ -1,25 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),i=require("@emotion/styled"),s=require("@telia-ace/knowledge-widget-ui"),c=require("./styles-66aa2377.js");require("@emotion/react");const l=({actions:e})=>{const t=s.useContainer(),{events:r}=t.get("$widget"),a=s.useDispatch();return o.jsx(d,{className:"humany-bot-feedback-list",items:e,"data-direction":"vertical",renderItem:n=>o.jsx("li",{children:o.jsxs(u,{className:"humany-feedback-button",disabled:!1,"aria-pressed":!0,"data-selected":!0,onClick:()=>{a("action",n.actionKey),r.dispatch("tracking:feedback-given-bot",{feedbackResponse:n.actionKey})},children:[o.jsx(s.Icon,{faIcon:n.actionKey==="yes"?"smile-o":"frown-o"}),o.jsx("span",{children:n.label})]})},n.actionKey)})},d=i(s.List)`
2
- ${e=>s.list(e)}
3
- ${c.messageContentPadding}
4
- display: flex;
5
- gap: ${e=>{var t;return(t=e.theme.sizes)==null?void 0:t.normal}};
6
- flex-direction: ${e=>e["data-direction"]==="horizontal"?"row":"column"};
7
- > li {
8
- flex: 1;
9
- margin: 0;
10
- }
11
- `,u=i(s.Button)`
12
- ${s.buttonCss}
13
- font-size: ${e=>{var t;return(t=e.theme.fonts)==null?void 0:t.normal}};
14
- border-color: ${e=>{var t;return(t=e.theme.colors)==null?void 0:t.primary}};
15
- font-weight: 300;
16
- display: block;
17
- width: 100%;
18
-
19
- ${e=>{var t;return s.invertedHoverButton({primaryColor:`${(t=e.theme.colors)==null?void 0:t.primary}`,secondaryColor:"#FFFFFF",theme:e.theme})}}
20
- i {
21
- margin: 0 ${e=>{var t;return(t=e.theme.sizes)==null?void 0:t.small}} 0 0;
22
- }
23
- span {
24
- }
25
- `;exports.default=l;
package/index-cb940de4.js DELETED
@@ -1 +0,0 @@
1
- "use strict";var H=Object.defineProperty;var R=(n,t,e)=>t in n?H(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var y=(n,t,e)=>(R(n,typeof t!="symbol"?t+"":t,e),e);const m=require("@telia-ace/widget-conversation"),N=require("@telia-ace/widget-services"),K=require("@telia-ace/widget-utilities"),P=require("@telia-ace/widget-forms");var f=(n=>(n.ContactMethod="ace-knowledge-bot-contact-method",n.ContactList="ace-knowledge-bot-contact-list",n.FeedbackList="ace-knowledge-bot-feedback-list",n.NotificationList="ace-knowledge-bot-notification-list",n.NoGoodAlternative="ace-knowledge-bot-no-good-alternative",n))(f||{});const $=n=>{if(n){const{type:t,content:e}=n;if(t&&e)return{type:t,content:e}}},A=({isUser:n,items:t=[],meta:e={}})=>{const s=K.uuid();return{id:s,isUser:n,items:t.map(a=>({id:a.id||K.uuid(),isUser:n,groupId:s,message:a.message||[]})),meta:e}},U=({id:n,title:t,defaultIcon:e,exits:[s],exitType:i,confirmationText:a,expandFormAutomatically:c,form:g,description:E},S={})=>{const{adapter:r}=s||{Adapter:{}},{clientName:o="",settings:h={},customClientName:v=""}=r,{validation:l}=S,d={id:n.toString(),title:t,description:E,symbol:$(e),clientName:o==="custom.adapter"?v:o,expanded:!0,inline:!0,body:{}};if(o.indexOf("phone")>-1||o.indexOf("freetext")>-1){const{displayTextBeforeClick:M,textBeforeClick:p}=h;M==="true"&&(d.expanded=!1,d.title=p),o.indexOf("phone.text")>-1?d.body.phoneNumber=h.phoneNumber:d.body.freetext=h.freetext}return(o.indexOf("chat.popup")>-1||o.indexOf("link")>-1||o==="custom.adapter"&&i==="custom")&&(d.body=h,d.body.confirmationFallback=a),o.indexOf("ace")>-1&&(d.body=h),g&&g.hasValueComponents&&(l?d.body.form=P.FormBuilder.fromLegacyForm(n.toString(),g,l).get():d.body.form=P.FormBuilder.fromLegacyForm(n.toString(),g).get(),c||(d.expanded=d.inline=!1),d.body=B(d,{submit:"Submit"})),S.guideId&&(d.body.guideId=S.guideId),d},G=n=>{const{localState:t}=n;return n.tags.includes("category")&&n.tags.includes("contact")?m.ConversationMessageListItemType.ItemList:n.tags.includes("suggestion")||(t==null?void 0:t.$type)==="Humany.Matching.Bots.Conversations.GuideListState, Humany.Matching"?m.ConversationMessageListItemType.LinkList:(t==null?void 0:t.$type)==="Humany.Matching.Bots.Conversations.States.GuideFeedbackState, Humany.Matching"?f.FeedbackList:(t==null?void 0:t.$type)==="Humany.Matching.Bots.Conversations.States.ContactState, Humany.Matching"?f.ContactList:m.ConversationMessageListItemType.ButtonList},q=(n,t)=>{const{knowledgeBotEndpoint:e}=t.properties();if(e)return`${e}/conversations`;const{data:s}=n.get("$settings");if(!s||!s.projection)throw new Error("Missing Knowledge Bot endpoint");return`${s.projection}/conversations`},B=(n,{submit:t,errors:e,meta:s})=>{var i;if((i=n==null?void 0:n.body)!=null&&i.form){const{body:a}=n,c=new P.FormBuilder(a.form);return a.form.layout.submit||c.createComponent(P.submitButton(t,"submit")),e&&c.setValidationErrors(e),s&&c.setMeta(s),{...a,form:c.get()}}return(n==null?void 0:n.body)||{}},O=async(n,t,e)=>{(await(await n.getAsync("dataClient")).getClient()).parameters.set(t,e)},b=({messageId:n,message:t,group:e})=>({id:n,message:t,groupId:e.id,isUser:e.isUser}),V=async(n,t,e)=>{const s=(r,o,h,v={actions:[],entryId:o.id,groupId:h})=>{const l=[];return v.actions=o.content.items.map(d=>{var p;const M={label:d.title,actionKey:d.actionKey,symbol:d.symbol?d.symbol:void 0,description:d.description||void 0};if(d.data){const w=o.actions[d.actionKey];r===f.ContactList?(l.push(d.data.id),M.data=U(d.data,{guideId:(p=w==null?void 0:w.guideId)==null?void 0:p.toString()})):M.data=d.data}return M}),r===f.ContactList&&(v.contactMethodIds=l),v},i=async(r,o,h=[],v)=>{var d,M;const l=K.uuid();switch(r.type!=="List"&&r.tags.includes("guide")&&((M=(d=r.content.hints)==null?void 0:d[0])!=null&&M.id)&&await O(n,"LastGuideId",r.content.hints[0].id),r.type){case"List":{const{header:p,items:w,html:x}=r.content,C=[];let I={actions:[],entryId:r.id,groupId:o.id};if(I.tags=r.tags||null,p&&(I.header=p),(w==null?void 0:w.length)>0){const u=G(r);if(I=s(u,r,o.id,I),h.length){const L=h.find(k=>k.tags.includes("paging")),T=h.find(k=>k.tags.includes("fallback"));if(L!=null&&L.content&&(o.meta.paging={actions:L.actions,items:L.content.items,localState:L.localState},L.content.items.forEach(k=>{I.actions.push({label:k.title,actionKey:k.actionKey,data:{groupId:v?v.id:o.id}})})),T){const k=T.content.items.find(F=>F.actionKey==="help");k&&(C.push(b({messageId:l,message:[m.ConversationMessageListItemType.Separator,void 0],group:o})),C.push(b({messageId:l,message:[f.NoGoodAlternative,{body:k.title}],group:o})))}}C.unshift(b({messageId:l,message:[u,I],group:o}))}return x&&C.unshift(b({messageId:l,message:[m.ConversationMessageListItemType.HTML,{body:x}],group:o})),C}case"Text":{const p=[];if(p.push(b({messageId:l,message:[m.ConversationMessageListItemType.HTML,{body:r.content.html}],group:o})),h.length){const w=h.find(u=>{var L;return u.type==="List"&&((L=u.localState)==null?void 0:L.$type)==="Humany.Matching.Bots.Conversations.States.ContactState, Humany.Matching"}),x=h.find(u=>u.tags.includes("dialog")),C=h.find(u=>u.tags.includes("feedback")),I=h.find(u=>u.tags.includes("contact")&&u.type==="Contact");if(I&&p.push(b({messageId:l,message:[f.ContactMethod,{contactMethodId:I.content.id,groupId:o.id,guideId:I.content.guideId}],group:o})),x&&p.push(b({messageId:l,message:[m.ConversationMessageListItemType.ButtonList,{actions:x.content.items.map(u=>({label:u.title,actionKey:u.actionKey,data:u.data}))}],group:o})),w){const u=s(f.ContactList,w,o.id);p.push(b({messageId:l,message:[m.ConversationMessageListItemType.Separator,void 0],group:o})),p.push(b({messageId:l,message:[f.ContactList,u],group:o}))}C&&(C.content.html&&p.push(b({messageId:l,group:o,message:[m.ConversationMessageListItemType.HTML,{body:C.content.html}]})),p.push(b({messageId:l,group:o,message:[f.FeedbackList,{actions:C.content.items.map(u=>({actionKey:u.actionKey,label:u.title}))}]})))}return p}case"Contact":return[b({messageId:l,message:[f.ContactMethod,{contactMethodId:r.content.id,groupId:o.id,guideId:r.content.guideId}],group:o})];case"CategorizedNoticeList":{const p=[b({messageId:l,message:[f.NotificationList,{id:r.content.item.id.toString(),header:r.content.item.title,items:r.content.item.listNotices,symbol:r.content.item.defaultIcon}],group:o})];return(r.content.notices||[]).forEach(w=>{p.push(b({messageId:l,message:[m.ConversationMessageListItemType.HTML,{body:w.body}],group:o}))}),p}case"footerNotice":return[b({messageId:l,message:[m.ConversationMessageListItemType.HTML,{body:r.content.item.body}],group:o})];case"Error":return[b({messageId:l,message:[m.ConversationMessageListItemType.HTML,{body:r.content.message||"Something went wrong."}],group:o})];default:return[]}},a=r=>["CategorizedNoticeList","NoticeList"].includes(r.type)?(r.content.items||[]).reduce((o,h)=>(r.content.isInitialNotices&&o.push({...r,id:K.uuid(),type:h.type||r.type,content:{$type:r.content.$type,isInitialNotices:r.content.isInitialNotices,notices:h.notices,item:h}}),o),[]):r,c=new Map([["Text",1],["List",2],["Contact",3],["CategorizedNoticeList",10]]),g=[],E=t.sort((r,o)=>{const v=c.get(r.type)||20,l=c.get(o.type)||20;return v-l}).filter(r=>!r.relation).reduce((r,o)=>r.concat(a(o)),[]),S=r=>typeof r.actions.selector<"u";for(const r of E){const o=t.filter(l=>l.relation===r.id&&!S(l)),h=A({isUser:!1});(await i(r,h,o,e)).forEach(l=>{h.items.push(l)}),h.items.length&&g.push(h)}return g};class j{constructor(t,e,s,i){y(this,"globalState");y(this,"localState");y(this,"clientId");y(this,"entries");this.endpoint=t,this.events=e,this.store=s,this.container=i,this.clientId=K.uuid(),this.entries=[]}async start({silent:t}){const e=await this.store.read("globalState"),s=await this.store.read("localState"),i=await this.store.read("entries");if(this.globalState=e||this.globalState,this.localState=s||this.localState,this.entries=i||this.entries,t)return;const a=this.createInitialEnvelope();return await this.postEnvelope(a)}async sendMessage(t){const e={command:{phrase:t},globalState:this.globalState,clientId:this.clientId};return await this.postEnvelope(e)}async helpAction(){return this.postEnvelope({action:{key:"help",content:{$type:"Humany.Matching.Bots.Conversations.Actions.Help, Humany.Matching"}},globalState:this.globalState,clientId:this.clientId})}async nextAction(t){var s;const{paging:e}=t.meta;if((s=e.actions)!=null&&s.next)return this.postEnvelope({action:{key:"next",content:e.actions.next},localState:e.localState,globalState:this.globalState,clientId:this.clientId},t).then(i=>{const a=t.items.findIndex(c=>c.message[0]==="link-list");return a===-1||!i?t:{...t,meta:{...t.meta,...i[0].meta},items:[...t.items.slice(0,a),{...t.items[a],message:[i[0].items[0].message[0],{...t.items[a].message[1],...i[0].items[0].message[1]}]},...t.items.slice(a+1)]}})}async showContactMethodAction(t){const e=this.entries.find(i=>i.id===t.entryId),s=e==null?void 0:e.actions[t.actionKey];if(s)return this.postEnvelope({action:{key:t.actionKey,content:s},localState:e.localState,globalState:this.globalState,clientId:this.clientId})}async defaultAction(t){const e=this.getEntryOfAction(t);if(e)return this.postEnvelope({action:{key:t,content:e.actions[t]},localState:e.localState,globalState:this.globalState,clientId:this.clientId})}createInitialEnvelope(){return{command:{site:this.endpoint},clientId:this.clientId,globalState:{},funnel:this.container.get("$widget").name}}async postEnvelope(t,e){try{const s=await fetch(this.endpoint,this.getHttpOptions(t));if(!s.ok)throw s;const i=await s.json();return this.handleResponse(i,e)}catch(s){process.env.NODE_ENV!=="production"&&console.warn("Something went wrong when posting the envelope.");let i="Something went wrong";return(s.message==="Failed to fetch"||s.message==="NetworkError when attempting to fetch resource.")&&(i="Lost connection... Please try again."),this.events.dispatch("tracking:http-client-error",{message:i,error:s}),this.handleResponse({entries:[{id:K.uuid(),type:"Error",timestamp:new Date().toISOString(),content:{message:i},actions:{},tags:[]}]})}}async handleResponse(t,e){this.entries=this.entries.concat(t.entries),this.store.write(this.entries,"entries");const s=t.entries.find(a=>a.type==="Widget");return s&&this.events.dispatch("provider:widget-entry",s.content),t.globalState&&(this.globalState=t.globalState,this.store.write(t.globalState,"globalState")),this.localState=t.entries.reduce((a,c)=>c.localState?c.localState:a,void 0),this.store.write(this.localState,"localState"),await V(this.container,t.entries,e)}getHttpOptions(t){const e={method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"}};return t.funnel=this.container.get("$widget").name,t.localState=t.localState||this.localState,Object.assign({},e,{body:JSON.stringify(t),credentials:"same-origin"})}getEntryOfAction(t){return this.entries.find(e=>!!e.actions[t])}}class z{constructor(t){y(this,"enabled",!0);y(this,"botProviderGlobalStateKey","bot-provider-global-state");y(this,"botProviderLocalStateKey","bot-provider-local-state");y(this,"botProviderEntriesKey","bot-provider-entries");y(this,"botProviderMetaStateKey","bot-provider-conversation-meta");this.container=t}getKey(t){let e;switch(t){case"localState":e=this.botProviderLocalStateKey;break;case"globalState":e=this.botProviderGlobalStateKey;break;case"entries":e=this.botProviderEntriesKey;break;case"meta":e=this.botProviderMetaStateKey;break}return e}async read(t){const e=this.getKey(t);if(!(!this.enabled||!e))return N.readStorage(this.container,e)}async write(t,e){const s=this.getKey(e);if(!this.enabled||!s)return;(await N.createStorageWriter(this.container,s,N.StorageCategory.Necessary))(t)}}class W{constructor(t,e,s){y(this,"agent");y(this,"user");y(this,"httpClient");y(this,"events");y(this,"groups",[]);y(this,"store");this.container=t,this.conversation=e;const{events:i}=this.container.get("$widget");this.events=i,this.store=new z(t),this.agent=e.createAgent({id:"knowledge-bot-agent",name:"",avatar:void 0}),this.user=e.user;const a=q(t,s);this.httpClient=new j(a,i,this.store,this.container),this.events.subscribe("provider:widget-entry",(c,g)=>{this.onWidgetEntryReceived(g)}),this.events.subscribe("provider:open-contact-method",async(c,g)=>{const E=await this.httpClient.showContactMethodAction(g);E&&(g.contactMethod.title&&this.printUserMessage(g.contactMethod.title),this.onMessagesReceived(E))})}async initialize(){var a;const t=this.conversation.loading(),e=await this.store.read("meta");e!=null&&e.agent&&this.agent.update({name:e.agent.name,avatar:e.agent.avatar});const s=await this.conversation.isRehydrated(),i=await this.httpClient.start({silent:((a=this.conversation.options)==null?void 0:a.silent)||s});i&&this.onMessagesReceived(i),t()}async onMessagesReceived(t){this.groups=this.groups.concat(t),t.forEach(e=>{const s=e.items.map(i=>i.message);e.isUser?e.writer=this.user.print(s):e.writer=this.agent.print(s)})}async onInput(t){const e=typeof t=="string"?t:t.actionKey;switch(e){case"next":{if(typeof t=="string")return;const s=this.groups.find(i=>{var a;return i.id===((a=t.data)==null?void 0:a.groupId)});if(s){const i=await this.httpClient.nextAction(s);if(i){const a=i.items.map(c=>c.message);s.meta.paging=i==null?void 0:i.meta.paging,s.writer.update(a)}}}break;case"help":{const s=this.conversation.loading(),i=await this.httpClient.helpAction();s(),i&&this.onMessagesReceived(i)}break;default:{typeof t!="string"&&t.label&&this.printUserMessage(t.label);const s=this.conversation.loading(),i=await this.httpClient.defaultAction(e);i&&this.onMessagesReceived(i),s()}break}}printUserMessage(t){const e=A({isUser:!0,items:[{id:K.uuid(),isUser:!0,message:[m.ConversationMessageListItemType.HTML,{body:t}]}]});return this.onMessagesReceived([e]),e}async onMessageSend(t){const e=this.conversation.loading(),s=await this.httpClient.sendMessage(t);await O(this.container,"phrase",t),this.printUserMessage(t),s&&this.onMessagesReceived(s),e()}async onWidgetEntryReceived(t){var r,o,h,v,l;if(t.agent){const d={name:t.agent.name,avatar:t.agent.avatar};this.agent.update(d),(await N.createStorageWriter(this.container,"bot-provider-conversation-meta",N.StorageCategory.Necessary))({agent:d})}const s=(await this.container.getAsync("components")).components().ofType("widget-header").select();if(!s)return;const i=await this.container.get("settings"),a=i==null?void 0:i.components["widget-header"],c=(o=(r=a==null?void 0:a.properties)==null?void 0:r.actions)==null?void 0:o.avatar,g=(h=a==null?void 0:a.properties)==null?void 0:h.header,E=(v=a==null?void 0:a.properties)==null?void 0:v.tagline,S={};!g&&(t!=null&&t.heading)&&(S.header=t.heading),!E&&(t!=null&&t.tagline)&&(S.tagline=t.tagline),!c&&((l=t==null?void 0:t.agent)!=null&&l.avatar)&&(S.actions={avatar:{position:"left",symbol:{type:"Uri",content:t.agent.avatar}}}),Object.keys(S).length>0&&s.writeProperties(S)}}const _=async n=>{const t=await m.ConversationPlatform.getInstance(n);m.registerCustomMessageComponent(n,f.ContactList,Promise.resolve().then(()=>require("./contact-method-list-6b716469.js"))),m.registerCustomMessageComponent(n,f.ContactMethod,Promise.resolve().then(()=>require("./contact-method-d88ce2cc.js"))),m.registerCustomMessageComponent(n,f.NotificationList,Promise.resolve().then(()=>require("./notification-list-d4d9695d.js"))),m.registerCustomMessageComponent(n,f.NoGoodAlternative,Promise.resolve().then(()=>require("./no-good-alternative-0ced8ab9.js"))),m.registerCustomMessageComponent(n,f.FeedbackList,Promise.resolve().then(()=>require("./feedback-list-48c7bffb.js"))),t.registerProvider("ace-knowledge-bot",(e,s)=>{const i=new W(n,e,s);i.initialize();const a=[];return a.push(s.actions.watch("conversation.user-submit",(c,g)=>{i.onMessageSend(c.text)})),a.push(s.actions.watch("conversation.action",(c,g)=>(i.onInput(c),g(c)))),a.push(s.actions.create("evaluate",c=>{const{events:g}=n.get("$widget");g.dispatch("bot-provider:evaluate",c)})),a.push(s.actions.create("submit",c=>{const{events:g}=n.get("$widget");g.dispatch("bot-provider:form-submitted",c)})),()=>{a.forEach(c=>{c()})}})};exports.KnowledgeBotProviderPlugin=_;exports.updateForm=B;