@telia-ace/knowledge-widget-bot-provider 0.0.1-alpha.9 → 0.0.1-next.1

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 (146) hide show
  1. package/dist/contact-method-list.d45b8f36.js +88 -0
  2. package/dist/contact-method-list.d45b8f36.js.map +1 -0
  3. package/dist/contact-method.fb45a5e2.js +119 -0
  4. package/dist/contact-method.fb45a5e2.js.map +1 -0
  5. package/dist/entry-handler.d.ts +2 -0
  6. package/dist/feedback-list.29c075b4.js +70 -0
  7. package/dist/feedback-list.29c075b4.js.map +1 -0
  8. package/dist/http-client.d.ts +43 -0
  9. package/dist/index.76a36f22.js +767 -0
  10. package/dist/index.76a36f22.js.map +1 -0
  11. package/{lib-esm → dist}/index.d.ts +0 -0
  12. package/dist/index.js +9 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/no-good-alternative.45aa0387.js +41 -0
  15. package/dist/no-good-alternative.45aa0387.js.map +1 -0
  16. package/dist/notification-list.cae1df51.js +62 -0
  17. package/dist/notification-list.cae1df51.js.map +1 -0
  18. package/dist/plugin.d.ts +3 -0
  19. package/dist/provider.d.ts +25 -0
  20. package/dist/store.d.ts +15 -0
  21. package/dist/styles.6c010dfc.js +15 -0
  22. package/dist/styles.6c010dfc.js.map +1 -0
  23. package/dist/types.d.ts +79 -0
  24. package/dist/ui/contact-method-list.d.ts +10 -0
  25. package/dist/ui/contact-method.d.ts +9 -0
  26. package/dist/ui/feedback-list.d.ts +8 -0
  27. package/dist/ui/no-good-alternative.d.ts +6 -0
  28. package/dist/ui/notification-list.d.ts +11 -0
  29. package/dist/ui/styles.d.ts +1 -0
  30. package/dist/utils.d.ts +26 -0
  31. package/package.json +22 -31
  32. package/lib/client/chat.client.d.ts +0 -15
  33. package/lib/client/chat.client.js +0 -79
  34. package/lib/client/contact-method.client.d.ts +0 -22
  35. package/lib/client/contact-method.client.js +0 -273
  36. package/lib/client/http.client.d.ts +0 -22
  37. package/lib/client/http.client.js +0 -113
  38. package/lib/client/middleware.client.d.ts +0 -13
  39. package/lib/client/middleware.client.js +0 -46
  40. package/lib/contract/custom-component/contact-method-item.d.ts +0 -8
  41. package/lib/contract/custom-component/contact-method-item.js +0 -51
  42. package/lib/contract/custom-component/contact-method-list.d.ts +0 -7
  43. package/lib/contract/custom-component/contact-method-list.js +0 -13
  44. package/lib/contract/custom-component/contact-method.d.ts +0 -3
  45. package/lib/contract/custom-component/contact-method.js +0 -33
  46. package/lib/contract/enum/server-entry-type.enum.d.ts +0 -6
  47. package/lib/contract/enum/server-entry-type.enum.js +0 -7
  48. package/lib/contract/model/conversation-api-model/list.model.d.ts +0 -5
  49. package/lib/contract/model/conversation-api-model/list.model.js +0 -0
  50. package/lib/contract/model/conversation-api-model/message.model.d.ts +0 -7
  51. package/lib/contract/model/conversation-api-model/message.model.js +0 -0
  52. package/lib/contract/model/http/action.model.d.ts +0 -3
  53. package/lib/contract/model/http/action.model.js +0 -0
  54. package/lib/contract/model/http/client-action.model.d.ts +0 -4
  55. package/lib/contract/model/http/client-action.model.js +0 -1
  56. package/lib/contract/model/http/client-envelope.model.d.ts +0 -9
  57. package/lib/contract/model/http/client-envelope.model.js +0 -0
  58. package/lib/contract/model/http/connect-options.model.d.ts +0 -5
  59. package/lib/contract/model/http/connect-options.model.js +0 -0
  60. package/lib/contract/model/http/global-state.model.d.ts +0 -8
  61. package/lib/contract/model/http/global-state.model.js +0 -0
  62. package/lib/contract/model/http/http-client-options.model.d.ts +0 -5
  63. package/lib/contract/model/http/http-client-options.model.js +0 -0
  64. package/lib/contract/model/http/server-entry.model.d.ts +0 -11
  65. package/lib/contract/model/http/server-entry.model.js +0 -0
  66. package/lib/contract/model/http/server-envelope.model.d.ts +0 -10
  67. package/lib/contract/model/http/server-envelope.model.js +0 -0
  68. package/lib/contract/model/middleware/aggregator-state.model.d.ts +0 -4
  69. package/lib/contract/model/middleware/aggregator-state.model.js +0 -1
  70. package/lib/contract/model/shared/loose-object.model.d.ts +0 -3
  71. package/lib/contract/model/shared/loose-object.model.js +0 -0
  72. package/lib/helper/chat.helper.d.ts +0 -8
  73. package/lib/helper/chat.helper.js +0 -18
  74. package/lib/helper/http.helper.d.ts +0 -13
  75. package/lib/helper/http.helper.js +0 -28
  76. package/lib/helper/middleware.helper.d.ts +0 -12
  77. package/lib/helper/middleware.helper.js +0 -67
  78. package/lib/helper/store.helper.d.ts +0 -22
  79. package/lib/helper/store.helper.js +0 -77
  80. package/lib/index.d.ts +0 -2
  81. package/lib/index.js +0 -2
  82. package/lib/interface/entry.interface.d.ts +0 -17
  83. package/lib/interface/entry.interface.js +0 -133
  84. package/lib/interface/middleware/paging.interface.d.ts +0 -4
  85. package/lib/interface/middleware/paging.interface.js +0 -53
  86. package/lib/interface/middleware/processor.interface.d.ts +0 -10
  87. package/lib/interface/middleware/processor.interface.js +0 -118
  88. package/lib/plugin.d.ts +0 -3
  89. package/lib/plugin.js +0 -151
  90. package/lib-esm/client/chat.client.d.ts +0 -15
  91. package/lib-esm/client/chat.client.js +0 -79
  92. package/lib-esm/client/contact-method.client.d.ts +0 -22
  93. package/lib-esm/client/contact-method.client.js +0 -273
  94. package/lib-esm/client/http.client.d.ts +0 -22
  95. package/lib-esm/client/http.client.js +0 -113
  96. package/lib-esm/client/middleware.client.d.ts +0 -13
  97. package/lib-esm/client/middleware.client.js +0 -46
  98. package/lib-esm/contract/custom-component/contact-method-item.d.ts +0 -8
  99. package/lib-esm/contract/custom-component/contact-method-item.js +0 -51
  100. package/lib-esm/contract/custom-component/contact-method-list.d.ts +0 -7
  101. package/lib-esm/contract/custom-component/contact-method-list.js +0 -13
  102. package/lib-esm/contract/custom-component/contact-method.d.ts +0 -3
  103. package/lib-esm/contract/custom-component/contact-method.js +0 -33
  104. package/lib-esm/contract/enum/server-entry-type.enum.d.ts +0 -6
  105. package/lib-esm/contract/enum/server-entry-type.enum.js +0 -7
  106. package/lib-esm/contract/model/conversation-api-model/list.model.d.ts +0 -5
  107. package/lib-esm/contract/model/conversation-api-model/list.model.js +0 -0
  108. package/lib-esm/contract/model/conversation-api-model/message.model.d.ts +0 -7
  109. package/lib-esm/contract/model/conversation-api-model/message.model.js +0 -0
  110. package/lib-esm/contract/model/http/action.model.d.ts +0 -3
  111. package/lib-esm/contract/model/http/action.model.js +0 -0
  112. package/lib-esm/contract/model/http/client-action.model.d.ts +0 -4
  113. package/lib-esm/contract/model/http/client-action.model.js +0 -1
  114. package/lib-esm/contract/model/http/client-envelope.model.d.ts +0 -9
  115. package/lib-esm/contract/model/http/client-envelope.model.js +0 -0
  116. package/lib-esm/contract/model/http/connect-options.model.d.ts +0 -5
  117. package/lib-esm/contract/model/http/connect-options.model.js +0 -0
  118. package/lib-esm/contract/model/http/global-state.model.d.ts +0 -8
  119. package/lib-esm/contract/model/http/global-state.model.js +0 -0
  120. package/lib-esm/contract/model/http/http-client-options.model.d.ts +0 -5
  121. package/lib-esm/contract/model/http/http-client-options.model.js +0 -0
  122. package/lib-esm/contract/model/http/server-entry.model.d.ts +0 -11
  123. package/lib-esm/contract/model/http/server-entry.model.js +0 -0
  124. package/lib-esm/contract/model/http/server-envelope.model.d.ts +0 -10
  125. package/lib-esm/contract/model/http/server-envelope.model.js +0 -0
  126. package/lib-esm/contract/model/middleware/aggregator-state.model.d.ts +0 -4
  127. package/lib-esm/contract/model/middleware/aggregator-state.model.js +0 -1
  128. package/lib-esm/contract/model/shared/loose-object.model.d.ts +0 -3
  129. package/lib-esm/contract/model/shared/loose-object.model.js +0 -0
  130. package/lib-esm/helper/chat.helper.d.ts +0 -8
  131. package/lib-esm/helper/chat.helper.js +0 -18
  132. package/lib-esm/helper/http.helper.d.ts +0 -13
  133. package/lib-esm/helper/http.helper.js +0 -28
  134. package/lib-esm/helper/middleware.helper.d.ts +0 -12
  135. package/lib-esm/helper/middleware.helper.js +0 -67
  136. package/lib-esm/helper/store.helper.d.ts +0 -22
  137. package/lib-esm/helper/store.helper.js +0 -77
  138. package/lib-esm/index.js +0 -2
  139. package/lib-esm/interface/entry.interface.d.ts +0 -17
  140. package/lib-esm/interface/entry.interface.js +0 -133
  141. package/lib-esm/interface/middleware/paging.interface.d.ts +0 -4
  142. package/lib-esm/interface/middleware/paging.interface.js +0 -53
  143. package/lib-esm/interface/middleware/processor.interface.d.ts +0 -10
  144. package/lib-esm/interface/middleware/processor.interface.js +0 -118
  145. package/lib-esm/plugin.d.ts +0 -3
  146. package/lib-esm/plugin.js +0 -151
@@ -0,0 +1,88 @@
1
+ var y = Object.defineProperty, C = Object.defineProperties;
2
+ var M = Object.getOwnPropertyDescriptors;
3
+ var p = Object.getOwnPropertySymbols;
4
+ var $ = Object.prototype.hasOwnProperty, E = Object.prototype.propertyIsEnumerable;
5
+ var u = (t, e, n) => e in t ? y(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n, d = (t, e) => {
6
+ for (var n in e || (e = {}))
7
+ $.call(e, n) && u(t, n, e[n]);
8
+ if (p)
9
+ for (var n of p(e))
10
+ E.call(e, n) && u(t, n, e[n]);
11
+ return t;
12
+ }, h = (t, e) => C(t, M(e));
13
+ import { ContactList as b, ContactMethod as S } from "@telia-ace/knowledge-widget-adapters";
14
+ import { useDispatch as v, useContainer as z } from "@telia-ace/knowledge-widget-ui";
15
+ import s, { useState as L, useMemo as j } from "react";
16
+ import c from "styled-components";
17
+ import I from "./contact-method.fb45a5e2.js";
18
+ import "@telia-ace/knowledge-widget-types-grid";
19
+ import "@telia-ace/widget-forms";
20
+ import "./index.76a36f22.js";
21
+ import "@telia-ace/widget-conversation";
22
+ import "@telia-ace/widget-services";
23
+ import "@telia-ace/widget-utilities";
24
+ const P = ({ actions: t, entryId: e, groupId: n }) => {
25
+ const f = v(), a = z(), [r, g] = L([]), m = j(() => t.map((o) => h(d({}, o.data), {
26
+ onClick: (l, i) => {
27
+ if (i.inline && !i.expanded)
28
+ g([...r, i.id]);
29
+ else {
30
+ const { events: x } = a.get("$widget");
31
+ x.dispatch("provider:open-contact-method", {
32
+ entryId: e,
33
+ contactMethod: i,
34
+ actionKey: o.actionKey
35
+ });
36
+ }
37
+ }
38
+ })), [t, a, e, r]);
39
+ return m.length ? /* @__PURE__ */ s.createElement(K, {
40
+ contactMethods: m,
41
+ dispatch: f,
42
+ itemRenderer: (o, l) => (r.includes(o.id) || o.expanded) && o.inline ? /* @__PURE__ */ s.createElement(R, {
43
+ contactMethodId: o.id,
44
+ groupId: n,
45
+ guideId: o.body.guideId
46
+ }) : /* @__PURE__ */ s.createElement(k, d(d({}, o), l))
47
+ }) : null;
48
+ }, K = c(b)`
49
+ > ul > li {
50
+ a {
51
+ display: flex;
52
+ align-items: center;
53
+ outline-offset: -2px;
54
+ }
55
+
56
+ &:not(:last-child) {
57
+ ${(t) => t.theme.border && `border-bottom: ${t.theme.border};`}
58
+ }
59
+ }
60
+ `, R = c(I)`
61
+ i {
62
+ margin: 0 ${(t) => {
63
+ var e;
64
+ return (e = t.theme.sizes) == null ? void 0 : e.medium;
65
+ }} 0 0;
66
+ display: flex;
67
+ justify-content: center;
68
+ align-items: center;
69
+ }
70
+ `, k = c(S)`
71
+ padding: ${(t) => {
72
+ var e;
73
+ return (e = t.theme.sizes) == null ? void 0 : e.medium;
74
+ }};
75
+ i {
76
+ margin: 0 ${(t) => {
77
+ var e;
78
+ return (e = t.theme.sizes) == null ? void 0 : e.medium;
79
+ }} 0 0;
80
+ display: flex;
81
+ justify-content: center;
82
+ align-items: center;
83
+ }
84
+ `;
85
+ export {
86
+ P as default
87
+ };
88
+ //# sourceMappingURL=contact-method-list.d45b8f36.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact-method-list.d45b8f36.js","sources":["../src/ui/contact-method-list.tsx"],"sourcesContent":["import {\n ContactList,\n ContactMethod as GenericContactMethod,\n} from '@telia-ace/knowledge-widget-adapters';\nimport { useContainer, useDispatch } from '@telia-ace/knowledge-widget-ui';\nimport React, { useMemo, useState } from 'react';\nimport styled from 'styled-components';\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 [expanded, setExpanded] = useState<string[]>([]);\n\n const items = useMemo<any[]>(() => {\n return actions.map((action) => {\n return {\n ...action.data,\n onClick: (_event: any, data: any) => {\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 }, [actions, container, entryId, expanded]);\n\n if (!items.length) {\n return null;\n }\n\n return (\n <StyledContactList\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","expanded","setExpanded","useState","items","useMemo","action","__spreadProps","__spreadValues","_event","data","events","React","StyledContactList","cm","props","StyledContactMethod","StyledGenericContactMethod","styled","ContactList","p","ContactMethod","_a","GenericContactMethod"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAMA,IAAqC,CAAC,EAAE,SAAAC,GAAS,SAAAC,GAAS,SAAAC,QAAc;AAC1E,QAAMC,IAAWC,KACXC,IAAYC,KACZ,CAACC,GAAUC,CAAW,IAAIC,EAAmB,CAAE,CAAA,GAE/CC,IAAQC,EAAe,MAClBX,EAAQ,IAAI,CAACY,MACTC,EAAAC,EAAA,IACAF,EAAO,OADP;AAAA,IAEH,SAAS,CAACG,GAAaC,MAAc;AACjC,UAAIA,EAAK,UAAU,CAACA,EAAK;AACrB,QAAAR,EAAY,CAAC,GAAGD,GAAUS,EAAK,EAAE,CAAC;AAAA,WAC/B;AACH,cAAM,EAAE,QAAAC,EAAW,IAAAZ,EAAU,IAAI,SAAS;AAC1C,QAAAY,EAAO,SAAS,gCAAgC;AAAA,UAC5C,SAAAhB;AAAA,UACA,eAAee;AAAA,UACf,WAAWJ,EAAO;AAAA,QAAA,CACrB;AAAA,MACL;AAAA,IACJ;AAAA,EAAA,EAEP,GACF,CAACZ,GAASK,GAAWJ,GAASM,CAAQ,CAAC;AAEtC,SAACG,EAAM,SAKN,gBAAAQ,EAAA,cAAAC,GAAA;AAAA,IACG,gBAAgBT;AAAA,IAChB,UAAAP;AAAA,IACA,cAAc,CAACiB,GAASC,OACDd,EAAS,SAASa,EAAG,EAAE,KAAKA,EAAG,aAChCA,EAAG,SAEZ,gBAAAF,EAAA,cAAAI,GAAA;AAAA,MACG,iBAAiBF,EAAG;AAAA,MACpB,SAAAlB;AAAA,MACA,SAASkB,EAAG,KAAK;AAAA,IAAA,CACrB,IAGA,gBAAAF,EAAA,cAAAK,GAAAT,IAAA,IAA+BM,IAAQC,EAAO;AAAA,EAC1D,CACJ,IApBO;AAsBf,GAIMF,IAAoBK,EAAOC,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAS9B,CAACC,MAAMA,EAAE,MAAM,UAAU,kBAAkBA,EAAE,MAAM;AAAA;AAAA;AAAA,GAK3DJ,IAAsBE,EAAOG,CAAa;AAAA;AAAA,oBAE5B,CAACD,MAAM;;AAAA,UAAAE,IAAAF,EAAE,MAAM,UAAR,gBAAAE,EAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAMpCL,IAA6BC,EAAOK,CAAoB;AAAA,eAC/C,CAACH,MAAM;;AAAA,UAAAE,IAAAF,EAAE,MAAM,UAAR,gBAAAE,EAAe;AAAA;AAAA;AAAA,oBAEjB,CAACF,MAAM;;AAAA,UAAAE,IAAAF,EAAE,MAAM,UAAR,gBAAAE,EAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -0,0 +1,119 @@
1
+ var x = Object.defineProperty, z = Object.defineProperties;
2
+ var B = Object.getOwnPropertyDescriptors;
3
+ var S = Object.getOwnPropertySymbols;
4
+ var D = Object.prototype.hasOwnProperty, T = Object.prototype.propertyIsEnumerable;
5
+ var $ = (e, t, o) => t in e ? x(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, s = (e, t) => {
6
+ for (var o in t || (t = {}))
7
+ D.call(t, o) && $(e, o, t[o]);
8
+ if (S)
9
+ for (var o of S(t))
10
+ T.call(t, o) && $(e, o, t[o]);
11
+ return e;
12
+ }, c = (e, t) => z(e, B(t));
13
+ var y = (e, t, o) => new Promise((h, r) => {
14
+ var i = (a) => {
15
+ try {
16
+ f(o.next(a));
17
+ } catch (m) {
18
+ r(m);
19
+ }
20
+ }, d = (a) => {
21
+ try {
22
+ f(o.throw(a));
23
+ } catch (m) {
24
+ r(m);
25
+ }
26
+ }, f = (a) => a.done ? h(a.value) : Promise.resolve(a.value).then(i, d);
27
+ f((o = o.apply(e, t)).next());
28
+ });
29
+ import { ContactMethod as _ } from "@telia-ace/knowledge-widget-adapters";
30
+ import { DataType as k } from "@telia-ace/knowledge-widget-types-grid";
31
+ import { useContainer as G, useDispatch as V } from "@telia-ace/knowledge-widget-ui";
32
+ import { FormBuilder as j } from "@telia-ace/widget-forms";
33
+ import q, { useState as H, useRef as J, useEffect as A, useCallback as K } from "react";
34
+ import L from "styled-components";
35
+ import { u as F } from "./index.76a36f22.js";
36
+ import "@telia-ace/widget-conversation";
37
+ import "@telia-ace/widget-services";
38
+ import "@telia-ace/widget-utilities";
39
+ const rt = ({ contactMethodId: e, guideId: t, groupId: o, className: h }) => {
40
+ const [r, i] = H(), d = G(), f = V(), a = J(!0);
41
+ A(() => {
42
+ const { events: p } = d.get("$widget"), w = p.subscribe("bot-provider:form-submitted", (C, l) => y(void 0, null, function* () {
43
+ var g;
44
+ if (((g = l.form.meta) == null ? void 0 : g.groupId) !== o || l.id !== r.id)
45
+ return;
46
+ const M = yield d.getAsync("contactMethods"), n = c(s({}, r), {
47
+ body: c(s({}, r.body), {
48
+ form: l.form
49
+ })
50
+ }), { errors: b, valid: v, errorTypes: O } = yield M.validate(n);
51
+ if (!v) {
52
+ const E = new j(r.body.form);
53
+ i(void 0), E.setValidationErrors(b), n.body = c(s({}, n.body), {
54
+ form: E.get()
55
+ }), i(s({}, n));
56
+ return;
57
+ }
58
+ const R = yield M.submit(n);
59
+ n.confirmation = R, i(n);
60
+ })), u = p.subscribe("bot-provider:evaluate", (C, l) => y(void 0, null, function* () {
61
+ if (l.id != e)
62
+ return;
63
+ const n = yield (yield d.getAsync("contactMethods")).evaluate(r);
64
+ let b = c(s({}, r), {
65
+ body: c(s({}, r.body), {
66
+ form: n
67
+ })
68
+ });
69
+ const v = F(b, {
70
+ submit: "Submit",
71
+ errors: {},
72
+ meta: { groupId: o }
73
+ });
74
+ b = c(s({}, b), {
75
+ body: v
76
+ }), i(b);
77
+ }));
78
+ return () => {
79
+ w(), u();
80
+ };
81
+ }, [d, r, i]);
82
+ const m = K(
83
+ (p) => y(void 0, null, function* () {
84
+ const u = yield (yield d.getAsync("dataClient")).fetch(k.ContactMethod, {
85
+ contactMethodId: p,
86
+ guideId: t
87
+ }), C = F(u, {
88
+ submit: "Submit",
89
+ errors: {},
90
+ meta: { groupId: o }
91
+ });
92
+ if (u.body = C, u.body.guideId = t, !a.current)
93
+ return null;
94
+ i(u);
95
+ }),
96
+ [a]
97
+ );
98
+ return A(() => (m(e), () => {
99
+ a.current = !1;
100
+ }), [e, m]), r ? /* @__PURE__ */ q.createElement(N, c(s({}, r), {
101
+ body: r.body,
102
+ inline: !0,
103
+ expanded: !0,
104
+ dispatch: f,
105
+ className: h
106
+ })) : null;
107
+ }, N = L(_)`
108
+ padding: ${(e) => {
109
+ var t;
110
+ return (t = e.theme.sizes) == null ? void 0 : t.normal;
111
+ }} ${(e) => {
112
+ var t;
113
+ return (t = e.theme.sizes) == null ? void 0 : t.medium;
114
+ }};
115
+ `;
116
+ export {
117
+ rt as default
118
+ };
119
+ //# sourceMappingURL=contact-method.fb45a5e2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact-method.fb45a5e2.js","sources":["../src/ui/contact-method.tsx"],"sourcesContent":["import {\n ContactMethod as GenericContactMethod,\n ContactMethodPlatform,\n} from '@telia-ace/knowledge-widget-adapters';\nimport { DataType } from '@telia-ace/knowledge-widget-types-grid';\nimport { useContainer, useDispatch } from '@telia-ace/knowledge-widget-ui';\nimport { FormBuilder } from '@telia-ace/widget-forms';\nimport { Widget } from '@webprovisions/platform';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\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\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 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]);\n\n const fetchContactMethod = useCallback(\n async (id: string) => {\n const dataClient = await container.getAsync('dataClient');\n\n const cm = await dataClient.fetch(DataType.ContactMethod, {\n contactMethodId: id,\n guideId,\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={contactMethod.body}\n inline={true}\n expanded={true}\n dispatch={dispatch}\n className={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","useEffect","events","unsubscribe","_","data","__async","_a","platform","updatedMethod","__spreadProps","__spreadValues","errors","valid","errorTypes","builder","FormBuilder","result","unsubscribeEvaluate","updatedForm","updatedBody","updateForm","fetchContactMethod","useCallback","id","cm","DataType","body","React","StyledGenericContactMethod","styled","GenericContactMethod","p"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { MessageGroup, ServerEntry } from './types';
2
+ export declare const processEntries: (entries: ServerEntry[], prevGroup?: MessageGroup) => Promise<MessageGroup[]>;
@@ -0,0 +1,70 @@
1
+ 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";
2
+ import o from "react";
3
+ import r from "styled-components";
4
+ import { m as p } from "./styles.6c010dfc.js";
5
+ const F = ({ actions: t }) => {
6
+ const e = n();
7
+ return /* @__PURE__ */ o.createElement(f, {
8
+ items: t,
9
+ "data-direction": "vertical",
10
+ renderItem: (a) => /* @__PURE__ */ o.createElement("li", {
11
+ key: a.actionKey
12
+ }, /* @__PURE__ */ o.createElement(u, {
13
+ className: "humany-feedback-button",
14
+ disabled: !1,
15
+ "aria-pressed": !0,
16
+ "data-selected": !0,
17
+ onClick: () => {
18
+ e("action", a.actionKey);
19
+ }
20
+ }, /* @__PURE__ */ o.createElement(s, {
21
+ faIcon: a.actionKey == "yes" ? "smile-o" : "frown-o"
22
+ }), /* @__PURE__ */ o.createElement("span", null, a.label)))
23
+ });
24
+ }, f = r(i)`
25
+ ${l}
26
+ ${p}
27
+ display: flex;
28
+ gap: ${(t) => {
29
+ var e;
30
+ return (e = t.theme.sizes) == null ? void 0 : e.normal;
31
+ }};
32
+ flex-direction: ${(t) => t["data-direction"] === "horizontal" ? "row" : "column"};
33
+ > li {
34
+ flex: 1;
35
+ margin: 0;
36
+ }
37
+ `, u = r(c)`
38
+ ${m}
39
+ font-size: ${(t) => {
40
+ var e;
41
+ return (e = t.theme.fonts) == null ? void 0 : e.normal;
42
+ }};
43
+ border-color: ${(t) => {
44
+ var e;
45
+ return (e = t.theme.colors) == null ? void 0 : e.primary;
46
+ }};
47
+ font-weight: 300;
48
+ display: block;
49
+ width: 100%;
50
+
51
+ ${(t) => {
52
+ var e;
53
+ return d({
54
+ primaryColor: `${(e = t.theme.colors) == null ? void 0 : e.primary}`,
55
+ secondaryColor: "#FFFFFF"
56
+ });
57
+ }}
58
+ i {
59
+ margin: 0 ${(t) => {
60
+ var e;
61
+ return (e = t.theme.sizes) == null ? void 0 : e.small;
62
+ }} 0 0;
63
+ }
64
+ span {
65
+ }
66
+ `;
67
+ export {
68
+ F as default
69
+ };
70
+ //# sourceMappingURL=feedback-list.29c075b4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-list.29c075b4.js","sources":["../src/ui/feedback-list.tsx"],"sourcesContent":["import {\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 styled from 'styled-components';\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 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 ${list}\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 })}\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","list","messageContentPadding","p","_a","Button","buttonCss","invertedHoverButton"],"mappings":";;;;AAgBA,MAAMA,IAAgC,CAAC,EAAE,SAAAC,QAAc;AACnD,QAAMC,IAAWC;AACjB,SACK,gBAAAC,EAAA,cAAAC,GAAA;AAAA,IACG,OAAOJ;AAAA,IACP,kBAAgB;AAAA,IAChB,YAAY,CAACK,MAEJ,gBAAAF,EAAA,cAAA,MAAA;AAAA,MAAG,KAAKE,EAAK;AAAA,IAAA,GACT,gBAAAF,EAAA,cAAAG,GAAA;AAAA,MACG,WAAU;AAAA,MACV,UAAU;AAAA,MACV,gBAAc;AAAA,MACd,iBAAe;AAAA,MACf,SAAS,MAAM;AACF,QAAAL,EAAA,UAAUI,EAAK,SAAS;AAAA,MACrC;AAAA,IAAA,GAEC,gBAAAF,EAAA,cAAAI,GAAA;AAAA,MAAK,QAAQF,EAAK,aAAa,QAAQ,YAAY;AAAA,IAAA,CAAW,GAC9D,gBAAAF,EAAA,cAAA,QAAA,MAAME,EAAK,KAAM,CACtB,CACJ;AAAA,EAER,CACJ;AAER,GAIMD,IAAmBI,EAAOC,CAAI;AAAA,MAC9BC;AAAA,MACAC;AAAA;AAAA,WAEK,CAACC,MAAM;;AAAA,UAAAC,IAAAD,EAAE,MAAM,UAAR,gBAAAC,EAAe;AAAA;AAAA,sBACX,CAACD,MAAOA,EAAE,sBAAsB,eAAe,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvEN,IAAiBE,EAAOM,CAAM;AAAA,MAG9BC;AAAA,iBACW,CAACH,MAAM;;AAAA,UAAAC,IAAAD,EAAE,MAAM,UAAR,gBAAAC,EAAe;AAAA;AAAA,oBACnB,CAACD,MAAM;;AAAA,UAAAC,IAAAD,EAAE,MAAM,WAAR,gBAAAC,EAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrC,CAACD;;AACC,SAAAI,EAAoB;AAAA,IAChB,cAAc,IAAGH,IAAAD,EAAE,MAAM,WAAR,gBAAAC,EAAgB;AAAA,IACjC,gBAAgB;AAAA,EACpB,CAAC;AAAA;AAAA;AAAA,oBAEW,CAACD,MAAM;;AAAA,UAAAC,IAAAD,EAAE,MAAM,UAAR,gBAAAC,EAAe;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -0,0 +1,43 @@
1
+ import { Container, EventManager } from '@webprovisions/platform';
2
+ import Store from './store';
3
+ import { MessageGroup } from './types';
4
+ declare class HttpClient {
5
+ private endpoint;
6
+ private events;
7
+ private store;
8
+ private container;
9
+ private globalState;
10
+ private localState;
11
+ private clientId;
12
+ private entries;
13
+ constructor(endpoint: string, events: EventManager, store: Store, container: Container);
14
+ start(): Promise<MessageGroup[]>;
15
+ sendMessage(message: string): Promise<MessageGroup[]>;
16
+ helpAction(): Promise<MessageGroup[]>;
17
+ nextAction(group: MessageGroup): Promise<{
18
+ meta: {
19
+ [x: string]: any;
20
+ };
21
+ items: {
22
+ message: any[];
23
+ id: string;
24
+ groupId: string;
25
+ isUser: boolean;
26
+ }[];
27
+ id: string;
28
+ isUser: boolean;
29
+ writer?: any;
30
+ } | undefined>;
31
+ showContactMethodAction(data: {
32
+ contactMethod: any;
33
+ actionKey: string;
34
+ entryId: string;
35
+ }): Promise<MessageGroup[] | undefined>;
36
+ defaultAction(action: string): Promise<MessageGroup[] | undefined>;
37
+ private createInitialEnvelope;
38
+ private postEnvelope;
39
+ private handleResponse;
40
+ private getHttpOptions;
41
+ private getEntryOfAction;
42
+ }
43
+ export default HttpClient;