@telia-ace/knowledge-widget-bot-provider 0.0.24 → 1.1.1-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.
Files changed (54) hide show
  1. package/contact-method-a18f6436.mjs +896 -0
  2. package/contact-method-a9506b8c.js +99 -0
  3. package/contact-method-list-814eb03f.mjs +97 -0
  4. package/contact-method-list-b5815c14.js +28 -0
  5. package/feedback-list-04b512a4.mjs +80 -0
  6. package/feedback-list-e7973adc.js +25 -0
  7. package/index-07363705.js +1214 -0
  8. package/index-373df3a5.js +6 -0
  9. package/index-5c9c2abf.mjs +883 -0
  10. package/index-cc31f772.mjs +10810 -0
  11. package/index.js +1 -0
  12. package/index.mjs +7 -0
  13. package/no-good-alternative-2d562ff9.mjs +53 -0
  14. package/no-good-alternative-d31e7d52.js +15 -0
  15. package/notification-list-291a2001.mjs +1449 -0
  16. package/notification-list-876b3f3d.js +546 -0
  17. package/notification-list-9fca63ae.mjs +53 -0
  18. package/notification-list-f9c4cafe.js +8 -0
  19. package/package.json +20 -42
  20. package/styles-15c941d4.js +4 -0
  21. package/{dist/styles.a00306c5.js → styles-ad5c7069.mjs} +3 -4
  22. package/use-dispatch-951d7a5c.js +1 -0
  23. package/use-dispatch-97d3af39.mjs +24 -0
  24. package/{dist/utils.d.ts → utils.d.ts} +1 -1
  25. package/LICENSE.txt +0 -6
  26. package/README.md +0 -12
  27. package/dist/contact-method-list.4fcc98f1.js +0 -128
  28. package/dist/contact-method-list.4fcc98f1.js.map +0 -1
  29. package/dist/contact-method.4e96a7d4.js +0 -136
  30. package/dist/contact-method.4e96a7d4.js.map +0 -1
  31. package/dist/feedback-list.ff7e22da.js +0 -77
  32. package/dist/feedback-list.ff7e22da.js.map +0 -1
  33. package/dist/index.483ca2e8.js +0 -795
  34. package/dist/index.483ca2e8.js.map +0 -1
  35. package/dist/index.js +0 -9
  36. package/dist/index.js.map +0 -1
  37. package/dist/no-good-alternative.e9155cb9.js +0 -50
  38. package/dist/no-good-alternative.e9155cb9.js.map +0 -1
  39. package/dist/notification-list.7fd5ba2b.js +0 -67
  40. package/dist/notification-list.7fd5ba2b.js.map +0 -1
  41. package/dist/styles.a00306c5.js.map +0 -1
  42. /package/{dist/entry-handler.d.ts → entry-handler.d.ts} +0 -0
  43. /package/{dist/http-client.d.ts → http-client.d.ts} +0 -0
  44. /package/{dist/index.d.ts → index.d.ts} +0 -0
  45. /package/{dist/plugin.d.ts → plugin.d.ts} +0 -0
  46. /package/{dist/provider.d.ts → provider.d.ts} +0 -0
  47. /package/{dist/store.d.ts → store.d.ts} +0 -0
  48. /package/{dist/types.d.ts → types.d.ts} +0 -0
  49. /package/{dist/ui → ui}/contact-method-list.d.ts +0 -0
  50. /package/{dist/ui → ui}/contact-method.d.ts +0 -0
  51. /package/{dist/ui → ui}/feedback-list.d.ts +0 -0
  52. /package/{dist/ui → ui}/no-good-alternative.d.ts +0 -0
  53. /package/{dist/ui → ui}/notification-list.d.ts +0 -0
  54. /package/{dist/ui → ui}/styles.d.ts +0 -0
package/package.json CHANGED
@@ -1,50 +1,28 @@
1
1
  {
2
2
  "name": "@telia-ace/knowledge-widget-bot-provider",
3
- "version": "0.0.24",
4
- "description": "Bot Provider Plugin ACE Knowledge Widgets.",
5
- "license": "SEE LICENSE IN LICENSE.txt",
6
- "author": "Telia Company AB",
7
- "keywords": [
8
- "telia"
9
- ],
10
- "main": "dist/index.js",
11
- "sourceMain": "src/index.ts",
12
- "type": "module",
13
- "types": "dist/index.d.ts",
14
- "files": [
15
- "LICENSE.txt",
16
- "README.md",
17
- "dist/"
18
- ],
19
- "publishConfig": {
20
- "access": "public"
3
+ "version": "1.1.1-rc.0",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts",
6
+ "exports": {
7
+ ".": {
8
+ "import": "./index.mjs",
9
+ "require": "./index.js"
10
+ }
21
11
  },
22
- "sideEffects": false,
23
12
  "dependencies": {
24
- "@telia-ace/knowledge-data-client": "1.0.10",
25
- "@telia-ace/knowledge-widget-adapters": "1.0.53",
26
- "@telia-ace/knowledge-widget-ui": "1.0.49",
27
- "@telia-ace/widget-conversation": "^1.0.41",
28
- "@telia-ace/widget-forms": "^1.0.35",
29
- "@telia-ace/widget-services": "^1.0.28",
30
- "@telia-ace/widget-utilities": "^1.0.17",
31
- "@webprovisions/bootstrapping": "1.0.13"
32
- },
33
- "peerDependencies": {
34
- "@emotion/react": "^11.10.5",
35
- "@emotion/styled": "^11.10.5",
36
- "react": "^18.2.0"
37
- },
38
- "devDependencies": {
39
- "@emotion/react": "^11.11.1",
40
- "@emotion/styled": "^11.11.0",
41
- "@telia-ace/knowledge-widget-core": "1.0.43",
42
- "@types/react": "^18.2.22",
13
+ "@telia-ace/knowledge-data-client": "^1.1.1-rc.0",
14
+ "@telia-ace/knowledge-widget-adapters": "^1.1.1-rc.0",
15
+ "@telia-ace/knowledge-widget-ui": "^1.1.1-rc.0",
16
+ "@telia-ace/widget-conversation": "^1.1.1-rc.0",
17
+ "@telia-ace/widget-forms": "^1.1.1-rc.0",
18
+ "@telia-ace/widget-services": "^1.1.1-rc.0",
19
+ "@telia-ace/widget-utilities": "^1.1.1-rc.0",
43
20
  "@webprovisions/platform": "^1.1.4",
44
- "react": "^18.2.0"
21
+ "@telia-ace/knowledge-widget-core": "^1.1.1-rc.0"
45
22
  },
46
- "scripts": {
47
- "clean": "rimraf ./dist",
48
- "build": "rimraf ./dist && tsc -emitDeclarationOnly && vite build"
23
+ "peerDependencies": {
24
+ "@emotion/react": "11.11.1",
25
+ "@emotion/styled": "11.11.0",
26
+ "react": "18.2.0"
49
27
  }
50
28
  }
@@ -0,0 +1,4 @@
1
+ "use strict";const n=require("./index-07363705.js"),t=e=>{var s,i;return n.css`
2
+ margin: ${(s=e.theme.sizes)==null?void 0:s.medium} 0;
3
+ padding: 0 ${(i=e.theme.sizes)==null?void 0:i.medium};
4
+ `};exports.messageContentPadding=t;
@@ -1,5 +1,5 @@
1
- import { css as i } from "@emotion/react";
2
- const d = (e) => {
1
+ import { c as i } from "./index-cc31f772.mjs";
2
+ const a = (e) => {
3
3
  var m, s;
4
4
  return i`
5
5
  margin: ${(m = e.theme.sizes) == null ? void 0 : m.medium} 0;
@@ -7,6 +7,5 @@ const d = (e) => {
7
7
  `;
8
8
  };
9
9
  export {
10
- d as m
10
+ a as m
11
11
  };
12
- //# sourceMappingURL=styles.a00306c5.js.map
@@ -0,0 +1 @@
1
+ "use strict";const r=require("./index-07363705.js"),i=require("react"),p=()=>i.useContext(r.ComponentNodeContext),l=()=>{const o=r.useComponentPlatform(),s=p(),[c,a]=i.useState([]),[d,h]=i.useState();return i.useEffect(()=>{if(o&&s){const u=new r.ComponentQuery(o).withId(s.id),t=o.actions(u,s.type||r.uuid());h(t),c!==null&&(c.forEach(e=>{t.dispatch(e.key,e.data).then(n=>e.resolve(n)).catch(n=>e.reject(n))}),a(null))}},[o,s.id]),(u,t)=>c!==null?new Promise((e,n)=>{c.push({key:u,data:t,resolve:e,reject:n})}):d.dispatch(u,t)};exports.useComponentDescriptor=p;exports.useDispatch=l;
@@ -0,0 +1,24 @@
1
+ import { s as f, t as m, v as d, w as h } from "./index-cc31f772.mjs";
2
+ import { useContext as l, useState as u, useEffect as C } from "react";
3
+ const w = () => l(f), y = () => {
4
+ const s = m(), n = w(), [c, a] = u([]), [i, p] = u();
5
+ return C(() => {
6
+ if (s && n) {
7
+ const r = new d(s).withId(n.id), o = s.actions(r, n.type || h());
8
+ p(o), c !== null && (c.forEach((t) => {
9
+ o.dispatch(t.key, t.data).then((e) => t.resolve(e)).catch((e) => t.reject(e));
10
+ }), a(null));
11
+ }
12
+ }, [s, n.id]), (r, o) => c !== null ? new Promise((t, e) => {
13
+ c.push({
14
+ key: r,
15
+ data: o,
16
+ resolve: t,
17
+ reject: e
18
+ });
19
+ }) : i.dispatch(r, o);
20
+ };
21
+ export {
22
+ w as a,
23
+ y as u
24
+ };
@@ -11,7 +11,7 @@ export declare const createGroup: ({ isUser, items, meta, }: {
11
11
  }) => MessageGroup;
12
12
  export declare const contactMethodFromLegacy: ({ id, title, defaultIcon, exits: [exit], exitType, confirmationText, expandFormAutomatically, form, description, }: any, options?: {
13
13
  validation?: any;
14
- guideId?: string | undefined;
14
+ guideId?: string;
15
15
  }) => any;
16
16
  export declare const getListType: (entry: ServerEntry) => ConversationMessageListItemType.LinkList | ConversationMessageListItemType.ButtonList | ConversationMessageListItemType.ItemList | CustomMessageTypes.ContactList | CustomMessageTypes.FeedbackList;
17
17
  export declare const getKnowledgeBotEndpoint: (container: Container, component: any) => string;
package/LICENSE.txt DELETED
@@ -1,6 +0,0 @@
1
- Copyright © 2021, Telia Company AB. All rights reserved.
2
-
3
- THIS PACKAGE AND CONTAINING SOFTWARE IS PART OF
4
- THE HUMANY SERVICE. BY USING THIS SOFTWARE YOU
5
- AGREE TO THE FOLLOWING TERMS AND CONDITIONS:
6
- http://www.humany.com/legal
package/README.md DELETED
@@ -1,12 +0,0 @@
1
- # `@telia-ace/knowledge-widget-bot-provider`
2
-
3
- Provider for the ACE Knowledge chat bot.
4
-
5
- For this provider to work, the "chat.bot" provider must be registered in the widget config file.
6
-
7
- In addition, these plugins are also required:
8
- WidgetHeaderComponent
9
- AreaComponent
10
- ConversationComponent
11
- DefaultContactMethodsPlugin
12
- ConversationPlugin
@@ -1,128 +0,0 @@
1
- var k = Object.defineProperty, z = Object.defineProperties;
2
- var I = Object.getOwnPropertyDescriptors;
3
- var x = Object.getOwnPropertySymbols;
4
- var L = Object.prototype.hasOwnProperty, j = Object.prototype.propertyIsEnumerable;
5
- var M = (e, t, n) => t in e ? k(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, l = (e, t) => {
6
- for (var n in t || (t = {}))
7
- L.call(t, n) && M(e, n, t[n]);
8
- if (x)
9
- for (var n of x(t))
10
- j.call(t, n) && M(e, n, t[n]);
11
- return e;
12
- }, E = (e, t) => z(e, I(t));
13
- var $ = (e, t, n) => new Promise((p, r) => {
14
- var m = (o) => {
15
- try {
16
- d(n.next(o));
17
- } catch (i) {
18
- r(i);
19
- }
20
- }, u = (o) => {
21
- try {
22
- d(n.throw(o));
23
- } catch (i) {
24
- r(i);
25
- }
26
- }, d = (o) => o.done ? p(o.value) : Promise.resolve(o.value).then(m, u);
27
- d((n = n.apply(e, t)).next());
28
- });
29
- import y from "@emotion/styled";
30
- import { ContactList as v, ContactMethod as w } from "@telia-ace/knowledge-widget-adapters";
31
- import { useDispatch as A, useContainer as K } from "@telia-ace/knowledge-widget-ui";
32
- import h, { useState as b, useEffect as N } from "react";
33
- import P from "./contact-method.4e96a7d4.js";
34
- import "@telia-ace/knowledge-data-client";
35
- import "@telia-ace/widget-forms";
36
- import "@telia-ace/widget-utilities";
37
- import "./index.483ca2e8.js";
38
- import "@telia-ace/widget-conversation";
39
- import "@telia-ace/widget-services";
40
- const Y = ({ actions: e, entryId: t, groupId: n }) => {
41
- const p = A(), r = K(), [m, u] = b([]), [d, o] = b([]);
42
- return N(() => {
43
- r.getAsync("contactMethods").then((i) => {
44
- if (!i)
45
- return;
46
- const f = e.map((s) => $(void 0, null, function* () {
47
- var g;
48
- if (!((g = s.data) != null && g.clientName))
49
- return null;
50
- const c = yield i.handleAdapters(s.data);
51
- return E(l(l({}, c), s.data), {
52
- description: s.data.description ? s.data.description : c.description,
53
- onClick: (C, a) => {
54
- if (typeof c.onClick == "function" && c.onClick(C, a), !C.defaultPrevented)
55
- if (a.inline && !a.expanded)
56
- o([...d, a.id]);
57
- else {
58
- const { events: S } = r.get("$widget");
59
- S.dispatch("provider:open-contact-method", {
60
- entryId: t,
61
- contactMethod: a,
62
- actionKey: s.actionKey
63
- });
64
- }
65
- }
66
- });
67
- }));
68
- Promise.all(f).then((s) => {
69
- u(s.filter((c) => !!c));
70
- });
71
- });
72
- }, [e, r, t, d]), m.length ? /* @__PURE__ */ h.createElement(
73
- R,
74
- {
75
- className: "humany-bot-contact-list",
76
- contactMethods: m,
77
- dispatch: p,
78
- itemRenderer: (i, f) => (d.includes(i.id) || i.expanded) && i.inline ? /* @__PURE__ */ h.createElement(
79
- D,
80
- {
81
- contactMethodId: i.id,
82
- groupId: n,
83
- guideId: i.body.guideId
84
- }
85
- ) : /* @__PURE__ */ h.createElement(G, l(l({}, i), f))
86
- }
87
- ) : null;
88
- }, R = y(v)`
89
- > ul > li {
90
- a {
91
- display: flex;
92
- align-items: center;
93
- outline-offset: -2px;
94
- }
95
-
96
- &:not(:last-child) {
97
- ${(e) => e.theme.border && `border-bottom: ${e.theme.border};`}
98
- }
99
- }
100
- `, D = y(P)`
101
- i {
102
- margin: 0 ${(e) => {
103
- var t;
104
- return (t = e.theme.sizes) == null ? void 0 : t.medium;
105
- }} 0 0;
106
- display: flex;
107
- justify-content: center;
108
- align-items: center;
109
- }
110
- `, G = y(w)`
111
- padding: ${(e) => {
112
- var t;
113
- return (t = e.theme.sizes) == null ? void 0 : t.medium;
114
- }};
115
- i {
116
- margin: 0 ${(e) => {
117
- var t;
118
- return (t = e.theme.sizes) == null ? void 0 : t.medium;
119
- }} 0 0;
120
- display: flex;
121
- justify-content: center;
122
- align-items: center;
123
- }
124
- `;
125
- export {
126
- Y as default
127
- };
128
- //# sourceMappingURL=contact-method-list.4fcc98f1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contact-method-list.4fcc98f1.js","sources":["../src/ui/contact-method-list.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport {\n ContactList,\n ContactMethodType,\n ContactMethod as GenericContactMethod,\n} from '@telia-ace/knowledge-widget-adapters';\nimport { useContainer, useDispatch } from '@telia-ace/knowledge-widget-ui';\nimport React, { useEffect, useState } from 'react';\nimport { ActionItem } from '../types';\nimport ContactMethod from './contact-method';\n\ntype Props = {\n actions: ActionItem[];\n contactMethodIds?: string[];\n entryId: string;\n groupId: string;\n};\nconst ContactMethodList: React.FC<Props> = ({ actions, entryId, groupId }) => {\n const dispatch = useDispatch();\n const container = useContainer();\n const [items, setItems] = useState<any[]>([]);\n const [expanded, setExpanded] = useState<string[]>([]);\n\n useEffect(() => {\n container.getAsync('contactMethods').then((platform: any) => {\n if (!platform) {\n return;\n }\n const promises = actions.map(async (action) => {\n if (!action.data?.clientName) {\n return null;\n }\n const cm = await platform.handleAdapters(action.data);\n\n return {\n ...cm,\n ...action.data,\n description: action.data.description ? action.data.description : cm.description,\n onClick: (event: React.MouseEvent, data: ContactMethodType) => {\n if (typeof cm.onClick === 'function') {\n cm.onClick(event, data);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n if (data.inline && !data.expanded) {\n setExpanded([...expanded, data.id]);\n } else {\n const { events } = container.get('$widget');\n events.dispatch('provider:open-contact-method', {\n entryId,\n contactMethod: data,\n actionKey: action.actionKey,\n });\n }\n },\n };\n });\n\n Promise.all(promises).then((result) => {\n setItems(result.filter((i) => !!i));\n });\n });\n }, [actions, container, entryId, expanded]);\n\n if (!items.length) {\n return null;\n }\n\n return (\n <StyledContactList\n className=\"humany-bot-contact-list\"\n contactMethods={items}\n dispatch={dispatch}\n itemRenderer={(cm: any, props: any) => {\n const isExpanded = expanded.includes(cm.id) || cm.expanded;\n if (isExpanded && cm.inline) {\n return (\n <StyledContactMethod\n contactMethodId={cm.id}\n groupId={groupId}\n guideId={cm.body.guideId}\n />\n );\n }\n return <StyledGenericContactMethod {...cm} {...props} />;\n }}\n />\n );\n};\n\nexport default ContactMethodList;\n\nconst StyledContactList = styled(ContactList)`\n > ul > li {\n a {\n display: flex;\n align-items: center;\n outline-offset: -2px;\n }\n\n &:not(:last-child) {\n ${(p) => p.theme.border && `border-bottom: ${p.theme.border};`}\n }\n }\n`;\n\nconst StyledContactMethod = styled(ContactMethod)`\n i {\n margin: 0 ${(p) => p.theme.sizes?.medium} 0 0;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n`;\nconst StyledGenericContactMethod = styled(GenericContactMethod)`\n padding: ${(p) => p.theme.sizes?.medium};\n i {\n margin: 0 ${(p) => p.theme.sizes?.medium} 0 0;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n`;\n"],"names":["ContactMethodList","actions","entryId","groupId","dispatch","useDispatch","container","useContainer","items","setItems","useState","expanded","setExpanded","useEffect","platform","promises","action","__async","_a","cm","__spreadProps","__spreadValues","event","data","events","result","i","React","StyledContactList","props","StyledContactMethod","StyledGenericContactMethod","styled","ContactList","p","ContactMethod","GenericContactMethod"],"mappings":"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"}
@@ -1,136 +0,0 @@
1
- var N = Object.defineProperty, T = Object.defineProperties;
2
- var _ = Object.getOwnPropertyDescriptors;
3
- var R = Object.getOwnPropertySymbols;
4
- var k = Object.prototype.hasOwnProperty, G = Object.prototype.propertyIsEnumerable;
5
- var x = (e, t, r) => t in e ? N(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, a = (e, t) => {
6
- for (var r in t || (t = {}))
7
- k.call(t, r) && x(e, r, t[r]);
8
- if (R)
9
- for (var r of R(t))
10
- G.call(t, r) && x(e, r, t[r]);
11
- return e;
12
- }, s = (e, t) => T(e, _(t));
13
- var p = (e, t, r) => new Promise((h, o) => {
14
- var i = (n) => {
15
- try {
16
- l(r.next(n));
17
- } catch (u) {
18
- o(u);
19
- }
20
- }, c = (n) => {
21
- try {
22
- l(r.throw(n));
23
- } catch (u) {
24
- o(u);
25
- }
26
- }, l = (n) => n.done ? h(n.value) : Promise.resolve(n.value).then(i, c);
27
- l((r = r.apply(e, t)).next());
28
- });
29
- import I from "@emotion/styled";
30
- import { DataClient as V, DataType as j } from "@telia-ace/knowledge-data-client";
31
- import { ContactMethod as q } from "@telia-ace/knowledge-widget-adapters";
32
- import { useContainer as H, useDispatch as J, useConversation as K } from "@telia-ace/knowledge-widget-ui";
33
- import { FormBuilder as L } from "@telia-ace/widget-forms";
34
- import { appendClassNames as O } from "@telia-ace/widget-utilities";
35
- import P, { useState as Q, useRef as U, useEffect as z, useCallback as W } from "react";
36
- import { u as A } from "./index.483ca2e8.js";
37
- import "@telia-ace/widget-conversation";
38
- import "@telia-ace/widget-services";
39
- const ct = ({ contactMethodId: e, guideId: t, groupId: r, className: h }) => {
40
- var g, E, S;
41
- const [o, i] = Q(), c = H(), l = J(), n = U(!0), u = K();
42
- z(() => {
43
- const { events: y } = c.get("$widget"), $ = y.subscribe("bot-provider:form-submitted", (C, d) => p(void 0, null, function* () {
44
- var D;
45
- if (((D = d.form.meta) == null ? void 0 : D.groupId) !== r || d.id !== o.id)
46
- return;
47
- u && (d.form.meta || (d.form.meta = {}), d.form.meta.conversation = u);
48
- const v = yield c.getAsync("contactMethods"), m = s(a({}, o), {
49
- body: s(a({}, o.body), {
50
- form: d.form
51
- })
52
- }), { errors: b, valid: M, errorTypes: Y } = yield v.validate(m);
53
- if (!M) {
54
- const F = new L(o.body.form);
55
- i(void 0), F.setValidationErrors(b), m.body = s(a({}, m.body), {
56
- form: F.get()
57
- }), i(a({}, m));
58
- return;
59
- }
60
- const B = yield v.submit(m);
61
- m.confirmation = B, i(m);
62
- })), f = y.subscribe("bot-provider:evaluate", (C, d) => p(void 0, null, function* () {
63
- if (d.id != e)
64
- return;
65
- const m = yield (yield c.getAsync("contactMethods")).evaluate(o);
66
- let b = s(a({}, o), {
67
- body: s(a({}, o.body), {
68
- form: m
69
- })
70
- });
71
- const M = A(b, {
72
- submit: "Submit",
73
- errors: {},
74
- meta: { groupId: r }
75
- });
76
- b = s(a({}, b), {
77
- body: M
78
- }), i(b);
79
- }));
80
- return () => {
81
- $(), f();
82
- };
83
- }, [c, o, i, u]);
84
- const w = W(
85
- (y) => p(void 0, null, function* () {
86
- const f = yield (yield V.getInstance(c)).fetch(
87
- j.ContactMethod,
88
- {
89
- contactMethodId: y,
90
- guideId: t
91
- },
92
- { noCache: !0 }
93
- ), C = A(f, {
94
- submit: "Submit",
95
- errors: {},
96
- meta: { groupId: r }
97
- });
98
- if (f.body = C, f.body.guideId = t, !n.current)
99
- return null;
100
- i(f);
101
- }),
102
- [n]
103
- );
104
- return z(() => (w(e), () => {
105
- n.current = !1;
106
- }), [e, w]), o ? /* @__PURE__ */ P.createElement(
107
- X,
108
- s(a({}, o), {
109
- body: s(a({}, o.body), {
110
- form: o.body.form ? s(a({}, o.body.form), {
111
- data: (g = o.body.form) == null ? void 0 : g.data,
112
- layout: a({}, o.body.form.layout),
113
- meta: (E = o.body.form) == null ? void 0 : E.meta,
114
- schema: (S = o.body.form) == null ? void 0 : S.schema
115
- }) : void 0,
116
- guideId: o.body.guideId
117
- }),
118
- inline: !0,
119
- expanded: !0,
120
- dispatch: l,
121
- className: O("humany-bot-contact-method", h)
122
- })
123
- ) : null;
124
- }, X = I(q)`
125
- padding: ${(e) => {
126
- var t;
127
- return (t = e.theme.sizes) == null ? void 0 : t.normal;
128
- }} ${(e) => {
129
- var t;
130
- return (t = e.theme.sizes) == null ? void 0 : t.medium;
131
- }};
132
- `;
133
- export {
134
- ct as default
135
- };
136
- //# sourceMappingURL=contact-method.4e96a7d4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contact-method.4e96a7d4.js","sources":["../src/ui/contact-method.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport { DataClient, DataType } from '@telia-ace/knowledge-data-client';\nimport {\n ContactMethodPlatform,\n ContactMethod as GenericContactMethod,\n} from '@telia-ace/knowledge-widget-adapters';\nimport { useContainer, useConversation, useDispatch } from '@telia-ace/knowledge-widget-ui';\nimport { FormBuilder } from '@telia-ace/widget-forms';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport { Widget } from '@webprovisions/platform';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { updateForm } from '../utils';\n\ntype Props = {\n contactMethodId: string;\n groupId: string;\n guideId?: string;\n className?: string;\n};\nconst ContactMethod: React.FC<Props> = ({ contactMethodId, guideId, groupId, className }) => {\n const [contactMethod, setContactMethod] = useState<any>();\n const container = useContainer();\n const dispatch = useDispatch();\n const mountedRef = useRef<boolean>(true);\n const currentConversation = useConversation();\n\n useEffect(() => {\n const { events } = container.get('$widget') as Widget;\n\n const unsubscribe = events.subscribe('bot-provider:form-submitted', async (_, data) => {\n // making sure that this is the form that is submitted\n if (data.form.meta?.groupId !== groupId || data.id !== contactMethod.id) {\n return;\n }\n\n if (currentConversation) {\n if (!data.form.meta) {\n data.form.meta = {};\n }\n\n data.form.meta.conversation = currentConversation;\n }\n\n const platform = (await container.getAsync('contactMethods')) as ContactMethodPlatform;\n\n const updatedMethod = {\n ...contactMethod,\n body: {\n ...contactMethod.body,\n form: data.form,\n },\n };\n\n const { errors, valid, errorTypes } = await platform.validate(updatedMethod);\n\n if (!valid) {\n const builder = new FormBuilder(contactMethod.body.form);\n setContactMethod(undefined);\n\n builder.setValidationErrors(errors);\n\n updatedMethod.body = {\n ...updatedMethod.body,\n form: builder.get(),\n };\n\n setContactMethod({ ...updatedMethod });\n return;\n }\n\n const result = await platform.submit(updatedMethod);\n\n updatedMethod.confirmation = result;\n setContactMethod(updatedMethod);\n });\n\n const unsubscribeEvaluate = events.subscribe('bot-provider:evaluate', async (_, data) => {\n if (data.id != contactMethodId) {\n return;\n }\n\n const platform = (await container.getAsync('contactMethods')) as ContactMethodPlatform;\n\n const updatedForm = await platform.evaluate(contactMethod);\n\n let updatedMethod = {\n ...contactMethod,\n body: {\n ...contactMethod.body,\n form: updatedForm,\n },\n };\n\n const updatedBody = updateForm(updatedMethod, {\n submit: 'Submit',\n errors: {},\n meta: { groupId },\n });\n\n updatedMethod = {\n ...updatedMethod,\n body: updatedBody,\n };\n\n setContactMethod(updatedMethod);\n });\n\n return () => {\n unsubscribe();\n unsubscribeEvaluate();\n };\n }, [container, contactMethod, setContactMethod, currentConversation]);\n\n const fetchContactMethod = useCallback(\n async (id: string) => {\n const dataClient = await DataClient.getInstance(container);\n\n const cm = await dataClient.fetch(\n DataType.ContactMethod,\n {\n contactMethodId: id,\n guideId,\n },\n { noCache: true }\n );\n\n const body = updateForm(cm, {\n submit: 'Submit',\n errors: {},\n meta: { groupId },\n });\n cm.body = body;\n cm.body.guideId = guideId;\n\n if (!mountedRef.current) {\n return null;\n }\n setContactMethod(cm);\n },\n [mountedRef]\n );\n\n useEffect(() => {\n fetchContactMethod(contactMethodId);\n return () => {\n mountedRef.current = false; // clean up\n };\n }, [contactMethodId, fetchContactMethod]);\n\n if (!contactMethod) {\n return null;\n }\n return (\n <StyledGenericContactMethod\n {...contactMethod}\n body={{\n ...contactMethod.body,\n form: contactMethod.body.form\n ? {\n ...contactMethod.body.form,\n data: contactMethod.body.form?.data,\n layout: { ...contactMethod.body.form.layout },\n meta: contactMethod.body.form?.meta,\n schema: contactMethod.body.form?.schema,\n }\n : undefined,\n guideId: contactMethod.body.guideId,\n }}\n inline={true}\n expanded={true}\n dispatch={dispatch}\n className={appendClassNames('humany-bot-contact-method', className)}\n />\n );\n};\n\nexport default ContactMethod;\n\nconst StyledGenericContactMethod = styled(GenericContactMethod)`\n padding: ${(p) => p.theme.sizes?.normal} ${(p) => p.theme.sizes?.medium};\n`;\n"],"names":["ContactMethod","contactMethodId","guideId","groupId","className","contactMethod","setContactMethod","useState","container","useContainer","dispatch","useDispatch","mountedRef","useRef","currentConversation","useConversation","useEffect","events","unsubscribe","_","data","__async","_a","platform","updatedMethod","__spreadProps","__spreadValues","errors","valid","errorTypes","builder","FormBuilder","result","unsubscribeEvaluate","updatedForm","updatedBody","updateForm","fetchContactMethod","useCallback","id","cm","DataClient","DataType","body","React","StyledGenericContactMethod","_b","_c","appendClassNames","styled","GenericContactMethod","p"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,MAAMA,KAAiC,CAAC,EAAE,iBAAAC,GAAiB,SAAAC,GAAS,SAAAC,GAAS,WAAAC,QAAgB;;AACzF,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAc,GAClDC,IAAYC,KACZC,IAAWC,KACXC,IAAaC,EAAgB,EAAI,GACjCC,IAAsBC;AAE5B,EAAAC,EAAU,MAAM;AACZ,UAAM,EAAE,QAAAC,EAAW,IAAAT,EAAU,IAAI,SAAS,GAEpCU,IAAcD,EAAO,UAAU,+BAA+B,CAAOE,GAAGC,MAASC,EAAA;;AAE/E,YAAAC,IAAAF,EAAK,KAAK,SAAV,gBAAAE,EAAgB,aAAYnB,KAAWiB,EAAK,OAAOf,EAAc;AACjE;AAGJ,MAAIS,MACKM,EAAK,KAAK,SACNA,EAAA,KAAK,OAAO,KAGhBA,EAAA,KAAK,KAAK,eAAeN;AAGlC,YAAMS,IAAY,MAAMf,EAAU,SAAS,gBAAgB,GAErDgB,IAAgBC,EAAAC,EAAA,IACfrB,IADe;AAAA,QAElB,MAAMoB,EAAAC,EAAA,IACCrB,EAAc,OADf;AAAA,UAEF,MAAMe,EAAK;AAAA,QACf;AAAA,MAAA,IAGE,EAAE,QAAAO,GAAQ,OAAAC,GAAO,YAAAC,EAAA,IAAe,MAAMN,EAAS,SAASC,CAAa;AAE3E,UAAI,CAACI,GAAO;AACR,cAAME,IAAU,IAAIC,EAAY1B,EAAc,KAAK,IAAI;AACvD,QAAAC,EAAiB,MAAS,GAE1BwB,EAAQ,oBAAoBH,CAAM,GAElCH,EAAc,OAAOC,EAAAC,EAAA,IACdF,EAAc,OADA;AAAA,UAEjB,MAAMM,EAAQ,IAAI;AAAA,QAAA,IAGLxB,EAAAoB,EAAA,IAAKF,EAAe;AACrC;AAAA,MACJ;AAEA,YAAMQ,IAAS,MAAMT,EAAS,OAAOC,CAAa;AAElD,MAAAA,EAAc,eAAeQ,GAC7B1B,EAAiBkB,CAAa;AAAA,IAAA,EACjC,GAEKS,IAAsBhB,EAAO,UAAU,yBAAyB,CAAOE,GAAGC,MAASC,EAAA;AACjF,UAAAD,EAAK,MAAMnB;AACX;AAKJ,YAAMiC,IAAc,OAFF,MAAM1B,EAAU,SAAS,gBAAgB,GAExB,SAASH,CAAa;AAEzD,UAAImB,IAAgBC,EAAAC,EAAA,IACbrB,IADa;AAAA,QAEhB,MAAMoB,EAAAC,EAAA,IACCrB,EAAc,OADf;AAAA,UAEF,MAAM6B;AAAA,QACV;AAAA,MAAA;AAGE,YAAAC,IAAcC,EAAWZ,GAAe;AAAA,QAC1C,QAAQ;AAAA,QACR,QAAQ,CAAC;AAAA,QACT,MAAM,EAAE,SAAArB,EAAQ;AAAA,MAAA,CACnB;AAEe,MAAAqB,IAAAC,EAAAC,EAAA,IACTF,IADS;AAAA,QAEZ,MAAMW;AAAA,MAAA,IAGV7B,EAAiBkB,CAAa;AAAA,IAAA,EACjC;AAED,WAAO,MAAM;AACG,MAAAN,KACQe;IAAA;AAAA,KAEzB,CAACzB,GAAWH,GAAeC,GAAkBQ,CAAmB,CAAC;AAEpE,QAAMuB,IAAqBC;AAAA,IACvB,CAAOC,MAAelB,EAAA;AAGZ,YAAAmB,IAAK,OAFQ,MAAMC,EAAW,YAAYjC,CAAS,GAE7B;AAAA,QACxBkC,EAAS;AAAA,QACT;AAAA,UACI,iBAAiBH;AAAA,UACjB,SAAArC;AAAA,QACJ;AAAA,QACA,EAAE,SAAS,GAAK;AAAA,MAAA,GAGdyC,IAAOP,EAAWI,GAAI;AAAA,QACxB,QAAQ;AAAA,QACR,QAAQ,CAAC;AAAA,QACT,MAAM,EAAE,SAAArC,EAAQ;AAAA,MAAA,CACnB;AAIG,UAHJqC,EAAG,OAAOG,GACVH,EAAG,KAAK,UAAUtC,GAEd,CAACU,EAAW;AACL,eAAA;AAEX,MAAAN,EAAiBkC,CAAE;AAAA,IACvB;AAAA,IACA,CAAC5B,CAAU;AAAA,EAAA;AAUf,SAPAI,EAAU,OACNqB,EAAmBpC,CAAe,GAC3B,MAAM;AACT,IAAAW,EAAW,UAAU;AAAA,EAAA,IAE1B,CAACX,GAAiBoC,CAAkB,CAAC,GAEnChC,IAID,gBAAAuC,EAAA;AAAA,IAACC;AAAA,IAAApB,EAAAC,EAAA,IACOrB,IADP;AAAA,MAEG,MAAMoB,EAAAC,EAAA,IACCrB,EAAc,OADf;AAAA,QAEF,MAAMA,EAAc,KAAK,OACnBoB,EAAAC,EAAA,IACOrB,EAAc,KAAK,OAD1B;AAAA,UAEI,OAAMiB,IAAAjB,EAAc,KAAK,SAAnB,gBAAAiB,EAAyB;AAAA,UAC/B,QAAQI,EAAA,IAAKrB,EAAc,KAAK,KAAK;AAAA,UACrC,OAAMyC,IAAAzC,EAAc,KAAK,SAAnB,gBAAAyC,EAAyB;AAAA,UAC/B,SAAQC,IAAA1C,EAAc,KAAK,SAAnB,gBAAA0C,EAAyB;AAAA,QAErC,KAAA;AAAA,QACN,SAAS1C,EAAc,KAAK;AAAA,MAChC;AAAA,MACA,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,UAAAK;AAAA,MACA,WAAWsC,EAAiB,6BAA6B5C,CAAS;AAAA,IAAA;AAAA,EAAA,IArB/D;AAwBf,GAIMyC,IAA6BI,EAAOC,CAAoB;AAAA,eAC/C,CAACC,MAAM;;AAAA,UAAA7B,IAAA6B,EAAE,MAAM,UAAR,gBAAA7B,EAAe;AAAA,KAAU,CAAC6B,MAAA;;AAAM,UAAA7B,IAAA6B,EAAE,MAAM,UAAR,gBAAA7B,EAAe;AAAA;AAAA;"}
@@ -1,77 +0,0 @@
1
- import r from "@emotion/styled";
2
- import { useDispatch as n, Icon as s, List as i, list as l, Button as c, buttonCss as m, invertedHoverButton as d } from "@telia-ace/knowledge-widget-ui";
3
- import o from "react";
4
- import { m as f } from "./styles.a00306c5.js";
5
- import "@emotion/react";
6
- const k = ({ actions: e }) => {
7
- const t = n();
8
- return /* @__PURE__ */ o.createElement(
9
- p,
10
- {
11
- className: "humany-bot-feedback-list",
12
- items: e,
13
- "data-direction": "vertical",
14
- renderItem: (a) => /* @__PURE__ */ o.createElement("li", { key: a.actionKey }, /* @__PURE__ */ o.createElement(
15
- u,
16
- {
17
- className: "humany-feedback-button",
18
- disabled: !1,
19
- "aria-pressed": !0,
20
- "data-selected": !0,
21
- onClick: () => {
22
- t("action", a.actionKey);
23
- }
24
- },
25
- /* @__PURE__ */ o.createElement(s, { faIcon: a.actionKey == "yes" ? "smile-o" : "frown-o" }),
26
- /* @__PURE__ */ o.createElement("span", null, a.label)
27
- ))
28
- }
29
- );
30
- }, p = r(i)`
31
- ${(e) => l(e)}
32
- ${f}
33
- display: flex;
34
- gap: ${(e) => {
35
- var t;
36
- return (t = e.theme.sizes) == null ? void 0 : t.normal;
37
- }};
38
- flex-direction: ${(e) => e["data-direction"] === "horizontal" ? "row" : "column"};
39
- > li {
40
- flex: 1;
41
- margin: 0;
42
- }
43
- `, u = r(c)`
44
- ${m}
45
- font-size: ${(e) => {
46
- var t;
47
- return (t = e.theme.fonts) == null ? void 0 : t.normal;
48
- }};
49
- border-color: ${(e) => {
50
- var t;
51
- return (t = e.theme.colors) == null ? void 0 : t.primary;
52
- }};
53
- font-weight: 300;
54
- display: block;
55
- width: 100%;
56
-
57
- ${(e) => {
58
- var t;
59
- return d({
60
- primaryColor: `${(t = e.theme.colors) == null ? void 0 : t.primary}`,
61
- secondaryColor: "#FFFFFF",
62
- theme: e.theme
63
- });
64
- }}
65
- i {
66
- margin: 0 ${(e) => {
67
- var t;
68
- return (t = e.theme.sizes) == null ? void 0 : t.small;
69
- }} 0 0;
70
- }
71
- span {
72
- }
73
- `;
74
- export {
75
- k as default
76
- };
77
- //# sourceMappingURL=feedback-list.ff7e22da.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feedback-list.ff7e22da.js","sources":["../src/ui/feedback-list.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport {\n Button,\n buttonCss,\n Icon,\n invertedHoverButton,\n list,\n List,\n useDispatch,\n} from '@telia-ace/knowledge-widget-ui';\nimport React from 'react';\nimport { messageContentPadding } from './styles';\n\ntype Props = {\n actions: { [key: string]: string }[];\n};\nconst FeedbackList: React.FC<Props> = ({ actions }) => {\n const dispatch = useDispatch();\n return (\n <StyledButtonList\n className=\"humany-bot-feedback-list\"\n items={actions}\n data-direction={'vertical'}\n renderItem={(item: any) => {\n return (\n <li key={item.actionKey}>\n <FeedbackButton\n className=\"humany-feedback-button\"\n disabled={false}\n aria-pressed={true}\n data-selected={true}\n onClick={() => {\n dispatch('action', item.actionKey);\n }}\n >\n <Icon faIcon={item.actionKey == 'yes' ? 'smile-o' : 'frown-o'} />\n <span>{item.label}</span>\n </FeedbackButton>\n </li>\n );\n }}\n />\n );\n};\n\nexport default FeedbackList;\n\nconst StyledButtonList = styled(List)<{ 'data-direction': 'horizontal' | 'vertical' } & any>`\n ${(p) => list(p)}\n ${messageContentPadding}\n display: flex;\n gap: ${(p) => p.theme.sizes?.normal};\n flex-direction: ${(p) => (p['data-direction'] === 'horizontal' ? 'row' : 'column')};\n > li {\n flex: 1;\n margin: 0;\n }\n`;\n\nconst FeedbackButton = styled(Button)<{\n 'data-selected': boolean;\n}>`\n ${buttonCss}\n font-size: ${(p) => p.theme.fonts?.normal};\n border-color: ${(p) => p.theme.colors?.primary};\n font-weight: 300;\n display: block;\n width: 100%;\n\n ${(p) =>\n invertedHoverButton({\n primaryColor: `${p.theme.colors?.primary}`,\n secondaryColor: '#FFFFFF',\n theme: p.theme,\n })}\n i {\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\n }\n span {\n }\n`;\n"],"names":["FeedbackList","actions","dispatch","useDispatch","React","StyledButtonList","item","FeedbackButton","Icon","styled","List","p","list","messageContentPadding","_a","Button","buttonCss","invertedHoverButton"],"mappings":";;;;;AAgBA,MAAMA,IAAgC,CAAC,EAAE,SAAAC,QAAc;AACnD,QAAMC,IAAWC;AAEb,SAAA,gBAAAC,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,WAAU;AAAA,MACV,OAAOJ;AAAA,MACP,kBAAgB;AAAA,MAChB,YAAY,CAACK,MAEJ,gBAAAF,EAAA,cAAA,MAAA,EAAG,KAAKE,EAAK,aACV,gBAAAF,EAAA;AAAA,QAACG;AAAA,QAAA;AAAA,UACG,WAAU;AAAA,UACV,UAAU;AAAA,UACV,gBAAc;AAAA,UACd,iBAAe;AAAA,UACf,SAAS,MAAM;AACF,YAAAL,EAAA,UAAUI,EAAK,SAAS;AAAA,UACrC;AAAA,QAAA;AAAA,wCAECE,GAAK,EAAA,QAAQF,EAAK,aAAa,QAAQ,YAAY,WAAW;AAAA,QAC/D,gBAAAF,EAAA,cAAC,QAAM,MAAAE,EAAK,KAAM;AAAA,MAAA,CAE1B;AAAA,IAER;AAAA,EAAA;AAGZ,GAIMD,IAAmBI,EAAOC,CAAI;AAAA,MAC9B,CAACC,MAAMC,EAAKD,CAAC;AAAA,MACbE;AAAA;AAAA,WAEK,CAACF,MAAM;;AAAA,UAAAG,IAAAH,EAAE,MAAM,UAAR,gBAAAG,EAAe;AAAA;AAAA,sBACX,CAACH,MAAOA,EAAE,sBAAsB,eAAe,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvEJ,IAAiBE,EAAOM,CAAM;AAAA,MAG9BC;AAAA,iBACW,CAACL,MAAM;;AAAA,UAAAG,IAAAH,EAAE,MAAM,UAAR,gBAAAG,EAAe;AAAA;AAAA,oBACnB,CAACH,MAAM;;AAAA,UAAAG,IAAAH,EAAE,MAAM,WAAR,gBAAAG,EAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrC,CAACH;;AACC,SAAAM,EAAoB;AAAA,IAChB,cAAc,IAAGH,IAAAH,EAAE,MAAM,WAAR,gBAAAG,EAAgB;AAAA,IACjC,gBAAgB;AAAA,IAChB,OAAOH,EAAE;AAAA,EACb,CAAC;AAAA;AAAA;AAAA,oBAEW,CAACA,MAAM;;AAAA,UAAAG,IAAAH,EAAE,MAAM,UAAR,gBAAAG,EAAe;AAAA;AAAA;AAAA;AAAA;AAAA;"}