@telia-ace/knowledge-widget-bot-provider 0.0.19 → 0.0.20-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.
@@ -30,10 +30,10 @@ import y from "@emotion/styled";
30
30
  import { ContactList as v, ContactMethod as w } from "@telia-ace/knowledge-widget-adapters";
31
31
  import { useDispatch as A, useContainer as K } from "@telia-ace/knowledge-widget-ui";
32
32
  import h, { useState as b, useEffect as P } from "react";
33
- import R from "./contact-method.49203d93.js";
33
+ import R from "./contact-method.00113ea4.js";
34
34
  import "@telia-ace/knowledge-data-client";
35
35
  import "@telia-ace/widget-forms";
36
- import "./index.94fbbd75.js";
36
+ import "./index.0f04f568.js";
37
37
  import "@telia-ace/widget-conversation";
38
38
  import "@telia-ace/widget-services";
39
39
  import "@telia-ace/widget-utilities";
@@ -124,4 +124,4 @@ const Y = ({ actions: t, entryId: e, groupId: n }) => {
124
124
  export {
125
125
  Y as default
126
126
  };
127
- //# sourceMappingURL=contact-method-list.369194cf.js.map
127
+ //# sourceMappingURL=contact-method-list.6e5a7c28.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contact-method-list.369194cf.js","sources":["../src/ui/contact-method-list.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport {\n ContactList,\n ContactMethod as GenericContactMethod,\n ContactMethodType,\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 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAMA,IAAqC,CAAC,EAAE,SAAAC,GAAS,SAAAC,GAAS,SAAAC,QAAc;AAC1E,QAAMC,IAAWC,KACXC,IAAYC,KACZ,CAACC,GAAOC,CAAQ,IAAIC,EAAgB,CAAE,CAAA,GACtC,CAACC,GAAUC,CAAW,IAAIF,EAAmB,CAAE,CAAA;AA6CjD,SA3CJG,EAAU,MAAM;AACZ,IAAAP,EAAU,SAAS,gBAAgB,EAAE,KAAK,CAACQ,MAAkB;AACzD,UAAI,CAACA;AACD;AAEJ,YAAMC,IAAWd,EAAQ,IAAI,CAAOe,MAAWC,EAAA;;AACvC,YAAA,GAACC,IAAAF,EAAO,SAAP,QAAAE,EAAa;AACP,iBAAA;AAEX,cAAMC,IAAK,MAAML,EAAS,eAAeE,EAAO,IAAI;AAE7C,eAAAI,EAAAC,IAAA,IACAF,IACAH,EAAO,OAFP;AAAA,UAGH,aAAaA,EAAO,KAAK,cAAcA,EAAO,KAAK,cAAcG,EAAG;AAAA,UACpE,SAAS,CAACG,GAAyBC,MAA4B;AAK3D,gBAJI,OAAOJ,EAAG,WAAY,cACnBA,EAAA,QAAQG,GAAOC,CAAI,GAGtB,CAAAD,EAAM;AAGV,kBAAIC,EAAK,UAAU,CAACA,EAAK;AACrB,gBAAAX,EAAY,CAAC,GAAGD,GAAUY,EAAK,EAAE,CAAC;AAAA,mBAC/B;AACH,sBAAM,EAAE,QAAAC,EAAW,IAAAlB,EAAU,IAAI,SAAS;AAC1C,gBAAAkB,EAAO,SAAS,gCAAgC;AAAA,kBAC5C,SAAAtB;AAAA,kBACA,eAAeqB;AAAA,kBACf,WAAWP,EAAO;AAAA,gBAAA,CACrB;AAAA,cACL;AAAA,UACJ;AAAA,QAAA;AAAA,MACJ,EACH;AAED,cAAQ,IAAID,CAAQ,EAAE,KAAK,CAACU,MAAW;AACnC,QAAAhB,EAASgB,EAAO,OAAO,CAACC,MAAM,CAAC,CAACA,CAAC,CAAC;AAAA,MAAA,CACrC;AAAA,IAAA,CACJ;AAAA,KACF,CAACzB,GAASK,GAAWJ,GAASS,CAAQ,CAAC,GAErCH,EAAM,SAKP,gBAAAmB,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,gBAAgBpB;AAAA,MAChB,UAAAJ;AAAA,MACA,cAAc,CAACe,GAASU,OACDlB,EAAS,SAASQ,EAAG,EAAE,KAAKA,EAAG,aAChCA,EAAG,SAEb,gBAAAQ,EAAA;AAAA,QAACG;AAAA,QAAA;AAAA,UACG,iBAAiBX,EAAG;AAAA,UACpB,SAAAhB;AAAA,UACA,SAASgB,EAAG,KAAK;AAAA,QAAA;AAAA,MAAA,IAIrB,gBAAAQ,EAAA,cAAAI,GAAAV,IAAA,IAA+BF,IAAQU,EAAO;AAAA,IAC1D;AAAA,EAAA,IAnBG;AAsBf,GAIMD,IAAoBI,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,UAAAhB,IAAAgB,EAAE,MAAM,UAAR,gBAAAhB,EAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAMpCa,IAA6BC,EAAOI,CAAoB;AAAA,eAC/C,CAACF,MAAM;;AAAA,UAAAhB,IAAAgB,EAAE,MAAM,UAAR,gBAAAhB,EAAe;AAAA;AAAA;AAAA,oBAEjB,CAACgB,MAAM;;AAAA,UAAAhB,IAAAgB,EAAE,MAAM,UAAR,gBAAAhB,EAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"contact-method-list.6e5a7c28.js","sources":["../src/ui/contact-method-list.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport {\n ContactList,\n ContactMethod as GenericContactMethod,\n ContactMethodType,\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 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAMA,IAAqC,CAAC,EAAE,SAAAC,GAAS,SAAAC,GAAS,SAAAC,QAAc;AAC1E,QAAMC,IAAWC,KACXC,IAAYC,KACZ,CAACC,GAAOC,CAAQ,IAAIC,EAAgB,CAAE,CAAA,GACtC,CAACC,GAAUC,CAAW,IAAIF,EAAmB,CAAE,CAAA;AA6CjD,SA3CJG,EAAU,MAAM;AACZ,IAAAP,EAAU,SAAS,gBAAgB,EAAE,KAAK,CAACQ,MAAkB;AACzD,UAAI,CAACA;AACD;AAEJ,YAAMC,IAAWd,EAAQ,IAAI,CAAOe,MAAWC,EAAA;;AACvC,YAAA,GAACC,IAAAF,EAAO,SAAP,QAAAE,EAAa;AACP,iBAAA;AAEX,cAAMC,IAAK,MAAML,EAAS,eAAeE,EAAO,IAAI;AAE7C,eAAAI,EAAAC,IAAA,IACAF,IACAH,EAAO,OAFP;AAAA,UAGH,aAAaA,EAAO,KAAK,cAAcA,EAAO,KAAK,cAAcG,EAAG;AAAA,UACpE,SAAS,CAACG,GAAyBC,MAA4B;AAK3D,gBAJI,OAAOJ,EAAG,WAAY,cACnBA,EAAA,QAAQG,GAAOC,CAAI,GAGtB,CAAAD,EAAM;AAGV,kBAAIC,EAAK,UAAU,CAACA,EAAK;AACrB,gBAAAX,EAAY,CAAC,GAAGD,GAAUY,EAAK,EAAE,CAAC;AAAA,mBAC/B;AACH,sBAAM,EAAE,QAAAC,EAAW,IAAAlB,EAAU,IAAI,SAAS;AAC1C,gBAAAkB,EAAO,SAAS,gCAAgC;AAAA,kBAC5C,SAAAtB;AAAA,kBACA,eAAeqB;AAAA,kBACf,WAAWP,EAAO;AAAA,gBAAA,CACrB;AAAA,cACL;AAAA,UACJ;AAAA,QAAA;AAAA,MACJ,EACH;AAED,cAAQ,IAAID,CAAQ,EAAE,KAAK,CAACU,MAAW;AACnC,QAAAhB,EAASgB,EAAO,OAAO,CAACC,MAAM,CAAC,CAACA,CAAC,CAAC;AAAA,MAAA,CACrC;AAAA,IAAA,CACJ;AAAA,KACF,CAACzB,GAASK,GAAWJ,GAASS,CAAQ,CAAC,GAErCH,EAAM,SAKP,gBAAAmB,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,gBAAgBpB;AAAA,MAChB,UAAAJ;AAAA,MACA,cAAc,CAACe,GAASU,OACDlB,EAAS,SAASQ,EAAG,EAAE,KAAKA,EAAG,aAChCA,EAAG,SAEb,gBAAAQ,EAAA;AAAA,QAACG;AAAA,QAAA;AAAA,UACG,iBAAiBX,EAAG;AAAA,UACpB,SAAAhB;AAAA,UACA,SAASgB,EAAG,KAAK;AAAA,QAAA;AAAA,MAAA,IAIrB,gBAAAQ,EAAA,cAAAI,GAAAV,IAAA,IAA+BF,IAAQU,EAAO;AAAA,IAC1D;AAAA,EAAA,IAnBG;AAsBf,GAIMD,IAAoBI,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,UAAAhB,IAAAgB,EAAE,MAAM,UAAR,gBAAAhB,EAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAMpCa,IAA6BC,EAAOI,CAAoB;AAAA,eAC/C,CAACF,MAAM;;AAAA,UAAAhB,IAAAgB,EAAE,MAAM,UAAR,gBAAAhB,EAAe;AAAA;AAAA;AAAA,oBAEjB,CAACgB,MAAM;;AAAA,UAAAhB,IAAAgB,EAAE,MAAM,UAAR,gBAAAhB,EAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -32,7 +32,7 @@ import { ContactMethod as H } from "@telia-ace/knowledge-widget-adapters";
32
32
  import { useContainer as J, useDispatch as K, useConversation as L } from "@telia-ace/knowledge-widget-ui";
33
33
  import { FormBuilder as N } from "@telia-ace/widget-forms";
34
34
  import O, { useState as P, useRef as Q, useEffect as z, useCallback as U } from "react";
35
- import { u as A } from "./index.94fbbd75.js";
35
+ import { u as A } from "./index.0f04f568.js";
36
36
  import "@telia-ace/widget-conversation";
37
37
  import "@telia-ace/widget-services";
38
38
  import "@telia-ace/widget-utilities";
@@ -129,4 +129,4 @@ const mt = ({ contactMethodId: e, guideId: t, groupId: r, className: h }) => {
129
129
  export {
130
130
  mt as default
131
131
  };
132
- //# sourceMappingURL=contact-method.49203d93.js.map
132
+ //# sourceMappingURL=contact-method.00113ea4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contact-method.49203d93.js","sources":["../src/ui/contact-method.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport { DataClient, DataType } from '@telia-ace/knowledge-data-client';\nimport {\n ContactMethod as GenericContactMethod,\n ContactMethodPlatform,\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 { 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(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={{\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={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","styled","GenericContactMethod","p"],"mappings":"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"}
1
+ {"version":3,"file":"contact-method.00113ea4.js","sources":["../src/ui/contact-method.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport { DataClient, DataType } from '@telia-ace/knowledge-data-client';\nimport {\n ContactMethod as GenericContactMethod,\n ContactMethodPlatform,\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 { 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(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={{\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={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","styled","GenericContactMethod","p"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
+ import { Container } from '@webprovisions/platform';
1
2
  import { MessageGroup, ServerEntry } from './types';
2
- export declare const processEntries: (entries: ServerEntry[], prevGroup?: MessageGroup) => Promise<MessageGroup[]>;
3
+ export declare const processEntries: (container: Container, entries: ServerEntry[], prevGroup?: MessageGroup) => Promise<MessageGroup[]>;