@telia-ace/knowledge-widget-adapters 1.0.13 → 1.0.14

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 (125) hide show
  1. package/{lib-esm → dist}/contact-methods/chat-popup/chat-popup-plugin.d.ts +0 -0
  2. package/{lib-esm → dist}/contact-methods/chat-popup/index.d.ts +0 -0
  3. package/{lib-esm → dist}/contact-methods/email/email-form-component.d.ts +0 -0
  4. package/{lib-esm → dist}/contact-methods/email/email-plugin.d.ts +0 -0
  5. package/{lib-esm → dist}/contact-methods/email/index.d.ts +0 -0
  6. package/{lib-esm → dist}/contact-methods/free-text/free-text-component.d.ts +0 -0
  7. package/{lib-esm → dist}/contact-methods/free-text/free-text-plugin.d.ts +0 -0
  8. package/{lib-esm → dist}/contact-methods/free-text/index.d.ts +0 -0
  9. package/{lib-esm → dist}/contact-methods/index.d.ts +0 -0
  10. package/{lib-esm → dist}/contact-methods/link/index.d.ts +0 -0
  11. package/{lib-esm → dist}/contact-methods/link/link-component.d.ts +0 -0
  12. package/{lib-esm → dist}/contact-methods/link/link-plugin.d.ts +0 -0
  13. package/{lib-esm → dist}/contact-methods/phone/index.d.ts +0 -0
  14. package/{lib-esm → dist}/contact-methods/phone/phone-component.d.ts +0 -0
  15. package/{lib-esm → dist}/contact-methods/phone/phone-plugin.d.ts +0 -0
  16. package/{lib-esm → dist}/contact-methods/platform.d.ts +0 -0
  17. package/{lib-esm → dist}/contact-methods/ui/confirmation.d.ts +0 -0
  18. package/{lib-esm → dist}/contact-methods/ui/contact-list.d.ts +0 -0
  19. package/{lib-esm → dist}/contact-methods/ui/contact-method.d.ts +0 -0
  20. package/{lib-esm → dist}/contact-methods/ui/description.d.ts +0 -0
  21. package/{lib-esm → dist}/contact-methods/ui/form.d.ts +0 -0
  22. package/{lib-esm → dist}/contact-methods/ui/index.d.ts +0 -0
  23. package/{lib-esm → dist}/contact-methods/ui/use-contact-method.d.ts +0 -0
  24. package/{lib-esm → dist}/contact-methods/web-service/index.d.ts +0 -0
  25. package/{lib-esm → dist}/contact-methods/web-service/web-service-plugin.d.ts +0 -0
  26. package/{lib-esm → dist}/create-adapter.d.ts +0 -0
  27. package/{lib-esm → dist}/default-contact-methods-plugin.d.ts +0 -0
  28. package/dist/email-form-component.js +63 -0
  29. package/dist/email-form-component.js.map +1 -0
  30. package/dist/free-text-component.js +31 -0
  31. package/dist/free-text-component.js.map +1 -0
  32. package/{lib-esm → dist}/index.d.ts +0 -0
  33. package/dist/index.js +8 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/index2.js +699 -0
  36. package/dist/index2.js.map +1 -0
  37. package/dist/link-component.js +16 -0
  38. package/dist/link-component.js.map +1 -0
  39. package/dist/phone-component.js +15 -0
  40. package/dist/phone-component.js.map +1 -0
  41. package/package.json +12 -13
  42. package/lib/contact-methods/chat-popup/chat-popup-plugin.d.ts +0 -2
  43. package/lib/contact-methods/chat-popup/chat-popup-plugin.js +0 -79
  44. package/lib/contact-methods/chat-popup/index.d.ts +0 -1
  45. package/lib/contact-methods/chat-popup/index.js +0 -8
  46. package/lib/contact-methods/email/email-form-component.d.ts +0 -4
  47. package/lib/contact-methods/email/email-form-component.js +0 -58
  48. package/lib/contact-methods/email/email-plugin.d.ts +0 -16
  49. package/lib/contact-methods/email/email-plugin.js +0 -83
  50. package/lib/contact-methods/email/index.d.ts +0 -1
  51. package/lib/contact-methods/email/index.js +0 -12
  52. package/lib/contact-methods/free-text/free-text-component.d.ts +0 -4
  53. package/lib/contact-methods/free-text/free-text-component.js +0 -49
  54. package/lib/contact-methods/free-text/free-text-plugin.d.ts +0 -2
  55. package/lib/contact-methods/free-text/free-text-plugin.js +0 -34
  56. package/lib/contact-methods/free-text/index.d.ts +0 -1
  57. package/lib/contact-methods/free-text/index.js +0 -8
  58. package/lib/contact-methods/index.d.ts +0 -10
  59. package/lib/contact-methods/index.js +0 -31
  60. package/lib/contact-methods/link/index.d.ts +0 -1
  61. package/lib/contact-methods/link/index.js +0 -8
  62. package/lib/contact-methods/link/link-component.d.ts +0 -4
  63. package/lib/contact-methods/link/link-component.js +0 -13
  64. package/lib/contact-methods/link/link-plugin.d.ts +0 -2
  65. package/lib/contact-methods/link/link-plugin.js +0 -34
  66. package/lib/contact-methods/phone/index.d.ts +0 -1
  67. package/lib/contact-methods/phone/index.js +0 -8
  68. package/lib/contact-methods/phone/phone-component.d.ts +0 -4
  69. package/lib/contact-methods/phone/phone-component.js +0 -12
  70. package/lib/contact-methods/phone/phone-plugin.d.ts +0 -2
  71. package/lib/contact-methods/phone/phone-plugin.js +0 -34
  72. package/lib/contact-methods/platform.d.ts +0 -50
  73. package/lib/contact-methods/platform.js +0 -273
  74. package/lib/contact-methods/ui/confirmation.d.ts +0 -6
  75. package/lib/contact-methods/ui/confirmation.js +0 -47
  76. package/lib/contact-methods/ui/contact-list.d.ts +0 -15
  77. package/lib/contact-methods/ui/contact-list.js +0 -61
  78. package/lib/contact-methods/ui/contact-method.d.ts +0 -39
  79. package/lib/contact-methods/ui/contact-method.js +0 -110
  80. package/lib/contact-methods/ui/description.d.ts +0 -2
  81. package/lib/contact-methods/ui/description.js +0 -13
  82. package/lib/contact-methods/ui/form.d.ts +0 -4
  83. package/lib/contact-methods/ui/form.js +0 -54
  84. package/lib/contact-methods/ui/index.d.ts +0 -7
  85. package/lib/contact-methods/ui/index.js +0 -20
  86. package/lib/contact-methods/ui/use-contact-method.d.ts +0 -2
  87. package/lib/contact-methods/ui/use-contact-method.js +0 -39
  88. package/lib/contact-methods/web-service/index.d.ts +0 -1
  89. package/lib/contact-methods/web-service/index.js +0 -8
  90. package/lib/contact-methods/web-service/web-service-plugin.d.ts +0 -2
  91. package/lib/contact-methods/web-service/web-service-plugin.js +0 -30
  92. package/lib/create-adapter.d.ts +0 -7
  93. package/lib/create-adapter.js +0 -43
  94. package/lib/default-contact-methods-plugin.d.ts +0 -8
  95. package/lib/default-contact-methods-plugin.js +0 -42
  96. package/lib/index.d.ts +0 -5
  97. package/lib/index.js +0 -25
  98. package/lib-esm/contact-methods/chat-popup/chat-popup-plugin.js +0 -76
  99. package/lib-esm/contact-methods/chat-popup/index.js +0 -1
  100. package/lib-esm/contact-methods/email/email-form-component.js +0 -33
  101. package/lib-esm/contact-methods/email/email-plugin.js +0 -52
  102. package/lib-esm/contact-methods/email/index.js +0 -1
  103. package/lib-esm/contact-methods/free-text/free-text-component.js +0 -21
  104. package/lib-esm/contact-methods/free-text/free-text-plugin.js +0 -8
  105. package/lib-esm/contact-methods/free-text/index.js +0 -1
  106. package/lib-esm/contact-methods/index.js +0 -8
  107. package/lib-esm/contact-methods/link/index.js +0 -1
  108. package/lib-esm/contact-methods/link/link-component.js +0 -11
  109. package/lib-esm/contact-methods/link/link-plugin.js +0 -8
  110. package/lib-esm/contact-methods/phone/index.js +0 -1
  111. package/lib-esm/contact-methods/phone/phone-component.js +0 -10
  112. package/lib-esm/contact-methods/phone/phone-plugin.js +0 -8
  113. package/lib-esm/contact-methods/platform.js +0 -270
  114. package/lib-esm/contact-methods/ui/confirmation.js +0 -22
  115. package/lib-esm/contact-methods/ui/contact-list.js +0 -32
  116. package/lib-esm/contact-methods/ui/contact-method.js +0 -81
  117. package/lib-esm/contact-methods/ui/description.js +0 -8
  118. package/lib-esm/contact-methods/ui/form.js +0 -49
  119. package/lib-esm/contact-methods/ui/index.js +0 -6
  120. package/lib-esm/contact-methods/ui/use-contact-method.js +0 -37
  121. package/lib-esm/contact-methods/web-service/index.js +0 -1
  122. package/lib-esm/contact-methods/web-service/web-service-plugin.js +0 -27
  123. package/lib-esm/create-adapter.js +0 -39
  124. package/lib-esm/default-contact-methods-plugin.js +0 -39
  125. package/lib-esm/index.js +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.js","sources":["../src/contact-methods/email/email-plugin.ts","../src/contact-methods/chat-popup/chat-popup-plugin.ts","../src/contact-methods/free-text/free-text-plugin.ts","../src/contact-methods/link/link-plugin.tsx","../src/contact-methods/phone/phone-plugin.ts","../src/contact-methods/platform.ts","../src/contact-methods/ui/confirmation.tsx","../src/contact-methods/ui/description.tsx","../src/contact-methods/ui/contact-method.tsx","../src/contact-methods/ui/contact-list.tsx","../src/contact-methods/ui/form.tsx","../src/contact-methods/ui/use-contact-method.ts","../src/contact-methods/web-service/web-service-plugin.ts","../src/create-adapter.ts","../src/default-contact-methods-plugin.ts"],"sourcesContent":["import {\r\n ContactMethodApiResponse,\r\n ServiceClient,\r\n SubmissionApiResult,\r\n} from '@telia-ace/knowledge-serviceclient';\r\nimport { FormBuilder, FormReader } from '@telia-ace/widget-forms';\r\nimport { RoutingService } from '@telia-ace/widget-routing';\r\nimport { Container } from '@webprovisions/platform';\r\nimport ContactMethodPlatform from '../platform';\r\nimport { ContactMethodType } from '../ui';\r\n\r\ntype Services = {\r\n matchingClient: ServiceClient;\r\n router: RoutingService;\r\n};\r\n\r\nconst post = (container: Container, contactMethod: ContactMethodType, validate = false) =>\r\n container.getManyAsync('matchingClient', 'router').then((services) => {\r\n const { formData } = new FormReader(contactMethod.body.form).export(validate);\r\n const { router, matchingClient } = services as Services;\r\n const { params } = router.getRouteData();\r\n\r\n return matchingClient.customRequest(\r\n `contactmethods/${contactMethod.id}${validate ? '/validatedwithpayload' : ''}`,\r\n 'POST',\r\n {\r\n body: formData,\r\n configuration: {\r\n guideId: contactMethod.body.guideId || params.guideId,\r\n },\r\n }\r\n );\r\n });\r\n\r\nexport const submit = (\r\n container: Container,\r\n contactMethod: ContactMethodType,\r\n transform?: (response: any) => SubmissionApiResult\r\n) =>\r\n post(container, contactMethod)\r\n .then((response) => (transform ? transform(response) : response))\r\n .then(({ ConfirmationText }: SubmissionApiResult) => ConfirmationText);\r\n\r\nexport const validate = (container: Container, contactMethod: ContactMethodType) =>\r\n post(container, contactMethod, true).then((result: ContactMethodApiResponse) => ({\r\n valid: result.Validation.IsValid,\r\n errors: result.Validation.Errors,\r\n errorTypes: result.Validation.ErrorTypes,\r\n }));\r\n\r\nexport const evaluate = (container: Container, contactMethod: ContactMethodType) =>\r\n post(container, contactMethod, true).then((result: ContactMethodApiResponse) =>\r\n FormBuilder.fromLegacyForm(contactMethod.id, result.ContactMethod.Form).get()\r\n );\r\n\r\nexport const complete = (container: Container, contactMethod: ContactMethodType) =>\r\n container.getAsync('matchingClient').then((matchingClient) => {\r\n matchingClient.completeContactMethod(contactMethod.id);\r\n });\r\n\r\nexport default function emailPlugin(container: Container) {\r\n container.getAsync('contactMethods').then((platform: ContactMethodPlatform) => {\r\n platform.create({\r\n clientName: 'email.form',\r\n render: import('./email-form-component'),\r\n onEvaluate: (contactMethod) => evaluate(container, contactMethod),\r\n onValidate: (contactMethod) => validate(container, contactMethod),\r\n onSubmit: (contactMethod) => submit(container, contactMethod),\r\n onComplete: (contactMethod) => complete(container, contactMethod),\r\n });\r\n });\r\n}\r\n","import { FormReader } from '@telia-ace/widget-forms';\r\nimport { Container } from '@webprovisions/platform';\r\nimport { ContactMethodPlatform, defaultValidate } from '..';\r\nimport { defaultComplete } from '../email';\r\n\r\nconst popup = (\r\n title: string,\r\n settings: { [key: string]: any },\r\n formValues?: { [key: string]: any }\r\n) => {\r\n const { url, width, height } = settings;\r\n\r\n const queries: { [key: string]: any } = formValues ? formValues : {};\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n\r\n link.search\r\n .replace('?', '')\r\n .split('&')\r\n .forEach((part) => {\r\n const [key, value] = part.split('=');\r\n typeof value !== 'undefined' && (queries[key] = value);\r\n });\r\n\r\n link.search = Object.keys(queries)\r\n .map((key) => `${key}=${queries[key]}`)\r\n .join('&');\r\n\r\n window.open(link.href, title, `width=${width},height=${height}`);\r\n return '';\r\n};\r\n\r\nexport default function chatPopupPlugin(container: Container) {\r\n container.getAsync('contactMethods').then((platform: ContactMethodPlatform) => {\r\n platform.create({\r\n clientName: 'chat.popup',\r\n render: 'email.form',\r\n handleClick: (contactMethod) => {\r\n const { title, body } = contactMethod;\r\n const { form, guideId, confirmationFallback, ...rest } = body;\r\n\r\n if (!form) {\r\n return (e) => {\r\n e.preventDefault();\r\n popup(title, rest);\r\n };\r\n }\r\n\r\n return () => {};\r\n },\r\n onValidate: (contactMethod) => defaultValidate(container, contactMethod),\r\n onComplete: (contactMethod) => defaultComplete(container, contactMethod),\r\n onSubmit: (contactMethod) => {\r\n const { title, body } = contactMethod;\r\n const { form, guideId, confirmationFallback, ...rest } = body;\r\n\r\n const formValues = new FormReader(form).export().values;\r\n\r\n popup(title, rest, formValues);\r\n\r\n return confirmationFallback;\r\n },\r\n });\r\n });\r\n}\r\n","import { Container } from '@webprovisions/platform';\r\nimport ContactMethodPlatform from '../platform';\r\n\r\nexport default function freeTextPlugin(container: Container) {\r\n container.getAsync('contactMethods').then((platform: ContactMethodPlatform) => {\r\n platform.create({\r\n clientName: 'custom.freetext',\r\n render: import('./free-text-component'),\r\n });\r\n });\r\n}\r\n","import { Container } from '@webprovisions/platform';\r\nimport ContactMethodPlatform from '../platform';\r\n\r\nexport default function linkPlugin(container: Container) {\r\n container.getAsync('contactMethods').then((platform: ContactMethodPlatform) => {\r\n platform.create({\r\n clientName: 'custom.link',\r\n render: import('./link-component'),\r\n });\r\n });\r\n}\r\n","import { Container } from '@webprovisions/platform';\r\nimport ContactMethodPlatform from '../platform';\r\n\r\nexport default function phonePlugin(container: Container) {\r\n container.getAsync('contactMethods').then((platform: ContactMethodPlatform) => {\r\n platform.create({\r\n clientName: 'phone.text',\r\n render: import('./phone-component'),\r\n });\r\n });\r\n}\r\n","import { ComponentPlatform, ComponentResolver } from '@telia-ace/knowledge-widget-core';\r\nimport { Form } from '@telia-ace/widget-forms';\r\nimport { lock } from '@telia-ace/widget-utilities';\r\nimport { Container, EventSubscriptionCancellation, Widget } from '@webprovisions/platform';\r\nimport React, { lazy } from 'react';\r\nimport { defaultComplete, defaultEvaluate, defaultValidate } from './email';\r\nimport { ContactMethodProps } from './ui';\r\n\r\nexport type ReactComponentImport = Promise<{ default: React.FunctionComponent<any> }>;\r\n\r\nexport type Click = (e: React.MouseEvent, cm: ContactMethodProps) => void;\r\n\r\nexport type AdapterSettings = {\r\n clientName: string;\r\n render: string | ReactComponentImport;\r\n handleDescription?: (cm: ContactMethodProps) => Promise<string> | string;\r\n handleDisabled?: (cm: ContactMethodProps) => Promise<boolean> | boolean;\r\n handleClick?: (cm: ContactMethodProps) => Promise<Click> | Click;\r\n onEvaluate?: (cm: ContactMethodProps) => Promise<Form> | Form;\r\n onValidate?: (cm: ContactMethodProps) => Promise<ValidationResult> | ValidationResult;\r\n onSubmit?: (cm: ContactMethodProps) => Promise<string> | string;\r\n onComplete?: (cm: ContactMethodProps) => Promise<void> | void;\r\n};\r\n\r\nexport type ValidationResult = {\r\n errors?: { [key: string]: string };\r\n errorTypes?: { [key: string]: string };\r\n valid: boolean;\r\n};\r\n\r\nexport enum ContactMethodTrackTypes {\r\n ContactMethodValidate = 'contact-method-validate',\r\n ContactMethodComplete = 'contact-method-complete',\r\n}\r\n\r\nconst handleContactMethod = async (\r\n adapters: Map<string, AdapterSettings>,\r\n contactMethod: ContactMethodProps\r\n): Promise<ContactMethodProps> => {\r\n const adapter = adapters.get(contactMethod.clientName);\r\n let { description, disabled, onClick } = contactMethod;\r\n\r\n if (adapter) {\r\n const { handleClick, handleDescription, handleDisabled } = adapter;\r\n if (typeof handleClick === 'function') {\r\n onClick = await Promise.resolve(handleClick(contactMethod));\r\n }\r\n\r\n if (typeof handleDescription === 'function') {\r\n description = await Promise.resolve(handleDescription(contactMethod));\r\n }\r\n\r\n if (typeof handleDisabled === 'function') {\r\n disabled = await Promise.resolve(handleDisabled(contactMethod));\r\n }\r\n }\r\n\r\n return Promise.resolve({\r\n ...contactMethod,\r\n description,\r\n disabled,\r\n onClick,\r\n });\r\n};\r\n\r\nclass ContactMethodPlatform {\r\n private adapters: Map<string, AdapterSettings> = new Map();\r\n private subs: EventSubscriptionCancellation[] = [];\r\n\r\n static create(container: Container): Promise<ContactMethodPlatform> {\r\n return ComponentPlatform.getInstance(container).then((platform) => {\r\n return new ContactMethodPlatform(container, platform);\r\n });\r\n }\r\n\r\n constructor(private container: Container, private componentPlatform: ComponentPlatform) {\r\n if (componentPlatform) {\r\n const contactListComponent = componentPlatform\r\n .components()\r\n .ofType('contact-list')\r\n .select();\r\n contactListComponent.actions.watch('contact-list.fetched', async (input, next) => {\r\n const { contactMethods } = input;\r\n\r\n if (contactMethods) {\r\n const promises = Promise.all(\r\n contactMethods.map((cm: ContactMethodProps) =>\r\n handleContactMethod(this.adapters, cm)\r\n )\r\n );\r\n\r\n await Promise.resolve(promises).then((contactMethods) => {\r\n input.contactMethods = contactMethods;\r\n });\r\n }\r\n\r\n return next(input);\r\n });\r\n\r\n const guideComponent = componentPlatform.components().ofType('guide').select();\r\n guideComponent.actions.watch('guide.fetched', async (input, next) => {\r\n const { contactMethods } = input;\r\n\r\n if (contactMethods) {\r\n const promises = Promise.all(\r\n contactMethods.map((cm: ContactMethodProps) =>\r\n handleContactMethod(this.adapters, cm)\r\n )\r\n );\r\n\r\n await Promise.resolve(promises).then((contactMethods) => {\r\n input.contactMethods = contactMethods;\r\n });\r\n }\r\n\r\n return next(input);\r\n });\r\n guideComponent.actions.watch('guide.handover', async (input, next) => {\r\n const { handoverContactMethods } = input;\r\n\r\n if (handoverContactMethods) {\r\n const promises = Promise.all(\r\n handoverContactMethods.map((cm: ContactMethodProps) =>\r\n handleContactMethod(this.adapters, cm)\r\n )\r\n );\r\n\r\n await Promise.resolve(promises).then((handoverContactMethods) => {\r\n input.handoverContactMethods = handoverContactMethods;\r\n });\r\n }\r\n\r\n return next(input);\r\n });\r\n\r\n const contactMethodComponent = componentPlatform\r\n .components()\r\n .ofType('contact-method')\r\n .select();\r\n contactMethodComponent.actions.watch('contact-method.fetched', async (input, next) => {\r\n const { contactMethod } = input;\r\n\r\n if (contactMethod) {\r\n return handleContactMethod(this.adapters, contactMethod).then(\r\n (contactMethod) => {\r\n return next({ ...input, contactMethod });\r\n }\r\n );\r\n }\r\n\r\n return next(input);\r\n });\r\n }\r\n }\r\n\r\n static getInstance(\r\n container: Container,\r\n key: string = 'contactMethods'\r\n ): Promise<ContactMethodPlatform> {\r\n return lock(container)(() => {\r\n return container.getAsync(key).then((value: ContactMethodPlatform) => {\r\n let contactMethodPlatform = value;\r\n if (!contactMethodPlatform) {\r\n return ComponentPlatform.getInstance(container).then((components) => {\r\n contactMethodPlatform = new ContactMethodPlatform(container, components);\r\n container.registerAsync(key, () => contactMethodPlatform);\r\n return contactMethodPlatform;\r\n });\r\n }\r\n return contactMethodPlatform;\r\n });\r\n });\r\n }\r\n\r\n private track(data: any = {}, type: ContactMethodTrackTypes) {\r\n const { events } = this.container.get('$widget');\r\n events.dispatch('tracking:service-client-response', {\r\n type,\r\n data,\r\n });\r\n }\r\n\r\n complete(contactMethod: ContactMethodProps) {\r\n const { id, title, clientName, expanded, body } = contactMethod;\r\n this.track(\r\n { contactMethod: { id, title, expanded, type: clientName }, hasGuide: !!body.guideId },\r\n ContactMethodTrackTypes.ContactMethodComplete\r\n );\r\n\r\n const adapter = this.adapters.get(clientName);\r\n if (adapter && adapter.onComplete) {\r\n return adapter.onComplete(contactMethod);\r\n }\r\n }\r\n\r\n evaluate(contactMethod: ContactMethodProps): Promise<Form> {\r\n const { clientName } = contactMethod;\r\n const adapter = this.adapters.get(clientName);\r\n\r\n if (adapter && adapter.onEvaluate) {\r\n return Promise.resolve(adapter.onEvaluate(contactMethod));\r\n }\r\n\r\n return Promise.resolve(contactMethod.body.form);\r\n }\r\n\r\n validate(contactMethod: ContactMethodProps): Promise<ValidationResult> {\r\n const { id, title, clientName } = contactMethod;\r\n const adapter = this.adapters.get(clientName);\r\n\r\n if (adapter && adapter.onValidate) {\r\n return Promise.resolve(adapter.onValidate(contactMethod)).then((result) => {\r\n this.track(\r\n { contactMethod: { id, title, type: clientName }, isValid: result.valid },\r\n ContactMethodTrackTypes.ContactMethodValidate\r\n );\r\n const { events } = this.container.get('$widget') as Widget;\r\n events.dispatch('form:validated', { isValid: result.valid });\r\n return result;\r\n });\r\n }\r\n\r\n return Promise.resolve({ valid: true });\r\n }\r\n\r\n submit(contactMethod: ContactMethodProps): Promise<string> {\r\n const { clientName } = contactMethod;\r\n const adapter = this.adapters.get(clientName);\r\n\r\n if (adapter && adapter.onSubmit) {\r\n return Promise.resolve(adapter.onSubmit(contactMethod)).then((result) => {\r\n this.complete(contactMethod);\r\n return result;\r\n });\r\n }\r\n\r\n return Promise.resolve('');\r\n }\r\n\r\n create(settings: AdapterSettings) {\r\n const { clientName, render } = settings;\r\n this.adapters.set(clientName, {\r\n onValidate: (cm) => defaultValidate(this.container, cm),\r\n onEvaluate: (cm) => defaultEvaluate(this.container, cm),\r\n onComplete: (cm) => defaultComplete(this.container, cm),\r\n ...settings,\r\n });\r\n return this.container.getAsync('componentResolver').then((resolver: ComponentResolver) => {\r\n if (typeof render === 'string') {\r\n this.subs.push(resolver.registerAlias(clientName, render));\r\n } else {\r\n this.subs.push(\r\n resolver.registerComponent(\r\n clientName,\r\n lazy(() => render)\r\n )\r\n );\r\n }\r\n });\r\n }\r\n\r\n dispose() {\r\n this.subs.forEach((s) => s());\r\n }\r\n}\r\n\r\nexport default ContactMethodPlatform;\r\n","import { headingElement, Paragraph } from '@telia-ace/knowledge-widget-ui';\r\nimport * as React from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nexport type Props = { html: string };\r\n\r\nconst Confirmation: React.SFC<Props> = (props: Props) => (\r\n <StyledParagraph {...props} className=\"humany-confirmation\" />\r\n);\r\n\r\nexport default Confirmation;\r\n\r\nconst StyledParagraph = styled(Paragraph)`\r\n ${headingElement(\r\n 'h1',\r\n css`\r\n font-weight: normal;\r\n font-size: ${(p) => p.theme.fonts?.medium};\r\n `\r\n )}\r\n`;\r\n","import { borderTabStyle, genericHtml, Html, linkTabStyle } from '@telia-ace/knowledge-widget-ui';\r\nimport styled from 'styled-components';\r\n\r\nexport default styled(Html)`\r\n ${genericHtml}\r\n font-weight: 300;\r\n line-height: 1.5em;\r\n button:focus {\r\n ${(p) => p.theme.accessibility?.isTabbing && borderTabStyle};\r\n }\r\n\r\n a:focus {\r\n ${(p) => p.theme.accessibility?.isTabbing && linkTabStyle};\r\n }\r\n`;\r\n","import { Symbol } from '@telia-ace/knowledge-widget-core';\r\nimport {\r\n borderTabStyle,\r\n DispatchAction,\r\n HtmlParseInstruction,\r\n Link,\r\n StyledText,\r\n SymbolBadge,\r\n Typography,\r\n useComponent,\r\n useRouteData,\r\n} from '@telia-ace/knowledge-widget-ui';\r\nimport { createParams, formatUrl } from '@telia-ace/widget-utilities';\r\nimport React, { Suspense } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport Description from './description';\r\n\r\nexport type ContactMethodType = {\r\n id: string;\r\n title: string;\r\n symbol?: Symbol;\r\n clientName: string;\r\n expanded: boolean;\r\n inline: boolean;\r\n body: { [key: string]: any };\r\n description?: string;\r\n confirmation?: string;\r\n disabled?: boolean;\r\n guideId?: string;\r\n};\r\n\r\nexport type Props = Merge<\r\n ContactMethodType,\r\n {\r\n className?: string;\r\n onClick?: (event: React.MouseEvent, properties: Props) => void;\r\n renderDefault?: (extraProps?: Partial<Props>) => any;\r\n htmlParseInstruction?: HtmlParseInstruction;\r\n href?: string;\r\n target?: string;\r\n disabled?: boolean;\r\n action?: (action: string, value: any) => void;\r\n dispatch?: DispatchAction;\r\n symbol?: Symbol;\r\n description?: string;\r\n confirmation?: string;\r\n guideId?: string;\r\n autoFocus?: boolean;\r\n }\r\n>;\r\n\r\nconst ContactMethod: React.FC<Props> = (props) => {\r\n const ResolvedComponent = useComponent(props.clientName);\r\n const {\r\n params: { contactCategory, guideCategory, phrase },\r\n } = useRouteData();\r\n\r\n if (typeof ResolvedComponent === 'undefined') {\r\n return null;\r\n }\r\n\r\n if (ResolvedComponent === null) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n return (\r\n <NonResolvedContactMethodWrapper\r\n title={`client-name: ${props.clientName}, id: ${props.id}`}\r\n className=\"humany-non-resolved-contact-method\"\r\n >\r\n <Typography variant=\"h5\">Non resolved Contact Method type</Typography>\r\n </NonResolvedContactMethodWrapper>\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n const renderLink = (extraProps: Partial<Props> = {}) => {\r\n const enhancedProps = { ...props, ...extraProps };\r\n const {\r\n id,\r\n title,\r\n clientName,\r\n symbol,\r\n inline,\r\n onClick = () => {},\r\n description,\r\n htmlParseInstruction,\r\n className,\r\n disabled,\r\n guideId,\r\n dispatch = () => {},\r\n expanded,\r\n } = enhancedProps;\r\n\r\n const linkProps = inline\r\n ? {\r\n onKeyDown: (event: React.KeyboardEvent) => {\r\n if (event.key && event.key === 'Enter') {\r\n onClick(event as any, enhancedProps);\r\n if (!event.defaultPrevented) {\r\n !expanded && dispatch('expand', id);\r\n }\r\n }\r\n },\r\n onClick: (event: React.MouseEvent) => {\r\n onClick(event, enhancedProps);\r\n if (!event.defaultPrevented) {\r\n !expanded && dispatch('expand', id);\r\n }\r\n },\r\n }\r\n : {\r\n onClick: (event: React.MouseEvent) => onClick(event, enhancedProps),\r\n routeName: 'contact-method',\r\n params: createParams({\r\n contactCategory,\r\n guideId,\r\n guideCategory,\r\n phrase,\r\n contactMethod: id,\r\n uriName: formatUrl(title),\r\n }),\r\n };\r\n\r\n return (\r\n <StyledLink\r\n title={title}\r\n aria-label={title}\r\n className={className}\r\n disabled={disabled}\r\n description={description}\r\n data-client-name={clientName}\r\n {...extraProps}\r\n {...linkProps}\r\n >\r\n {symbol && <SymbolBadge symbol={symbol} />}\r\n {description ? (\r\n <div className=\"humany-contact-link-rich-content\">\r\n {<StyledTitle>{title}</StyledTitle>}\r\n {\r\n <Description\r\n html={description}\r\n htmlParseInstruction={htmlParseInstruction}\r\n />\r\n }\r\n </div>\r\n ) : (\r\n <StyledTitle>{title}</StyledTitle>\r\n )}\r\n </StyledLink>\r\n );\r\n };\r\n\r\n return props.expanded ? (\r\n <Suspense fallback={null}>\r\n <ResolvedComponent {...props} renderDefault={renderLink} />\r\n </Suspense>\r\n ) : (\r\n renderLink()\r\n );\r\n};\r\n\r\nexport default ContactMethod;\r\n\r\nexport const contactLink = css<{ description?: string }>`\r\n display: flex;\r\n padding: ${(p) => p.theme.sizes?.large};\r\n ${(p) => (!!p.description ? '' : 'align-items: center;')}\r\n text-decoration: none;\r\n span {\r\n display: inline-block;\r\n color: ${(p) => p.theme.colors?.text};\r\n }\r\n i {\r\n font-size: ${(p) => p.theme.fonts?.large};\r\n margin: 0 ${(p) => p.theme.sizes?.large} 0 0;\r\n min-height: ${(p) => p.theme.fonts?.large};\r\n min-width: ${(p) => p.theme.fonts?.large};\r\n line-height: ${(p) => p.theme.fonts?.large};\r\n display: inline-block;\r\n vertical-align: bottom;\r\n color: ${(p) => p.theme.colors?.text};\r\n }\r\n`;\r\n\r\nconst StyledTitle = styled(StyledText)`\r\n line-height: ${(p) => p.theme.fonts?.large};\r\n`;\r\n\r\nconst StyledLink = styled(Link)<any>`\r\n ${contactLink}\r\n\r\n &:focus {\r\n ${(p) => p.theme.accessibility?.isTabbing && borderTabStyle};\r\n }\r\n`;\r\n\r\nconst NonResolvedContactMethodWrapper = styled.div`\r\n text-align: center;\r\n display: block;\r\n ${(p) => typeof p.theme.colors?.warning !== 'undefined' && `color: ${p.theme.colors?.warning};`}\r\n`;\r\n","import { DispatchAction, headingElement, ItemList, itemList } from '@telia-ace/knowledge-widget-ui';\r\nimport { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport React, { ReactNode } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport ContactMethod, { ContactMethodType } from './contact-method';\r\n\r\nexport const contactItemList = css`\r\n ${itemList}\r\n\r\n > div {\r\n padding: ${(p) => p.theme.sizes?.large};\r\n\r\n ${headingElement(\r\n 'h1',\r\n css`\r\n margin: 0;\r\n `\r\n )}\r\n }\r\n > ul {\r\n &:not(:first-child) {\r\n border-top: ${(p) => p.theme.border};\r\n }\r\n\r\n > li {\r\n margin: 0;\r\n white-space: normal;\r\n\r\n > a {\r\n overflow: hidden;\r\n }\r\n\r\n &:first-child > a {\r\n border-radius: ${(p) => `${p.theme.borderRadius} ${p.theme.borderRadius} 0 0`};\r\n }\r\n\r\n &:last-child:not(:first-child) > a {\r\n border-radius: ${(p) => `0 0 ${p.theme.borderRadius} ${p.theme.borderRadius}`};\r\n }\r\n\r\n &:not(:last-child) {\r\n border-bottom: ${(p) => p.theme.border};\r\n }\r\n\r\n > div {\r\n padding: ${(p) => p.theme.sizes?.large};\r\n }\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n a:hover {\r\n background-color: ${(p) => p.theme.colors?.accent};\r\n }\r\n }\r\n`;\r\n\r\nconst StyledItemList = styled(ItemList)<any>`\r\n ${contactItemList}\r\n`;\r\n\r\ntype Props = {\r\n contactMethods: ContactMethodType[];\r\n header?: string;\r\n className?: string;\r\n action?: (action: string, value?: any) => void;\r\n dispatch?: DispatchAction;\r\n children?: ReactNode;\r\n guideId?: string;\r\n};\r\n\r\nconst ContactList: React.SFC<Props> = ({\r\n contactMethods,\r\n children,\r\n guideId,\r\n dispatch,\r\n className = '',\r\n action = () => {},\r\n header = '',\r\n}) => {\r\n if (!contactMethods.length) {\r\n return null;\r\n }\r\n\r\n return (\r\n <StyledItemList\r\n header={header}\r\n className={appendClassNames(className, 'humany-contact-list')}\r\n items={contactMethods}\r\n renderItem={(cm: any) => (\r\n <li key={cm.id} data-contact-method={cm.id}>\r\n <ContactMethod {...cm} action={action} dispatch={dispatch} guideId={guideId} />\r\n </li>\r\n )}\r\n >\r\n {children}\r\n </StyledItemList>\r\n );\r\n};\r\n\r\nexport default ContactList;\r\n","import { FormComponent } from '@telia-ace/widget-forms';\r\nimport React from 'react';\r\nimport { ContactMethodProps } from '.';\r\n\r\n/**\r\n * Recursively find form component in schema\r\n * @param node Form schema\r\n * @param id actionKey of component to find\r\n */\r\nconst lookupComponent = (node: any, id: string): any => {\r\n if (node.actionKey === id) {\r\n return node;\r\n }\r\n\r\n if (!node.properties) {\r\n return null;\r\n }\r\n\r\n const keys = Object.keys(node.properties);\r\n\r\n let result;\r\n // tslint:disable-next-line:no-increment-decrement\r\n for (let i = 0; i < keys.length; i++) {\r\n result = lookupComponent(node.properties[keys[i]], id);\r\n\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst Form: React.SFC<ContactMethodProps> = ({\r\n className,\r\n body: { form },\r\n id,\r\n action,\r\n dispatch,\r\n disabled,\r\n autoFocus,\r\n}) => {\r\n if (form && !disabled) {\r\n const { schema, layout, data } = form;\r\n const trigger = dispatch || action || (() => {});\r\n return (\r\n <FormComponent\r\n className={className}\r\n schema={schema}\r\n layout={layout}\r\n data={data}\r\n autoFocus={autoFocus}\r\n onChange={(event: any, data: any) => {\r\n const form = { schema, layout, data };\r\n if (event.toString() === 'submit') {\r\n trigger('submit', { id, form });\r\n } else {\r\n const formComponent = lookupComponent(schema, event);\r\n if (formComponent.evaluate) {\r\n trigger('evaluate', { id, form });\r\n } else {\r\n trigger('validate', { id, form });\r\n }\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default Form;\r\n","import { ComponentResolver } from '@telia-ace/knowledge-widget-core';\r\nimport { useContainer } from '@telia-ace/knowledge-widget-ui';\r\nimport { EventSubscriptionCancellation } from '@webprovisions/platform';\r\nimport { useEffect, useState } from 'react';\r\n\r\nconst useContactMethod = (clientName: string): any | null => {\r\n const [component, setComponent] = useState<any | null>(null);\r\n const container = useContainer();\r\n\r\n useEffect(() => {\r\n let unsubscribe: EventSubscriptionCancellation;\r\n container.getAsync('componentResolver').then((resolver: ComponentResolver) => {\r\n unsubscribe = resolver.registerResolver(clientName, (component) =>\r\n setComponent(component)\r\n );\r\n });\r\n\r\n return () => {\r\n if (unsubscribe) {\r\n unsubscribe();\r\n }\r\n };\r\n }, [clientName]);\r\n\r\n return component;\r\n};\r\n\r\nexport default useContactMethod;\r\n","import { Container } from '@webprovisions/platform';\r\nimport { ContactMethodPlatform, defaultComplete, defaultSubmit, defaultValidate } from '..';\r\n\r\nexport default function webServicePlugin(container: Container) {\r\n container.getAsync('contactMethods').then((platform: ContactMethodPlatform) => {\r\n platform.create({\r\n clientName: 'custom.webservice',\r\n render: 'email.form',\r\n onValidate: (contactMethod) => defaultValidate(container, contactMethod),\r\n onComplete: (contactMethod) => defaultComplete(container, contactMethod),\r\n onSubmit: (contactMethod) =>\r\n defaultSubmit(container, contactMethod, (response) => {\r\n return {\r\n ...response,\r\n ConfirmationText: response.ResponseHtml,\r\n };\r\n }),\r\n });\r\n });\r\n}\r\n","import { FormReader } from '@telia-ace/widget-forms';\r\nimport { Container } from '@webprovisions/platform';\r\nimport { ContactMethodPlatform, defaultComplete, defaultValidate } from './contact-methods';\r\n\r\nexport type Callback = (\r\n settings: {\r\n [key: string]: any;\r\n },\r\n data?: {\r\n [key: string]: any;\r\n }\r\n) => Promise<string | void> | (string | void);\r\n\r\nexport const createSubmitAdapter = (\r\n container: Container,\r\n clientName: string,\r\n fn: Callback\r\n): Promise<void> => {\r\n return container.getAsync('contactMethods').then((platform: ContactMethodPlatform) => {\r\n platform.create({\r\n clientName,\r\n render: 'email.form',\r\n handleClick: () => {\r\n return (e, cm) => {\r\n const {\r\n body: { form, guideId, confirmationFallback, ...rest },\r\n } = cm;\r\n if (!form) {\r\n e.preventDefault();\r\n fn(rest);\r\n }\r\n };\r\n },\r\n onValidate: (cm) => defaultValidate(container, cm),\r\n onComplete: (cm) => defaultComplete(container, cm),\r\n onSubmit: (cm) => {\r\n const {\r\n body: { form, guideId, confirmationFallback, ...rest },\r\n } = cm;\r\n const { values } = new FormReader(form).export();\r\n\r\n return Promise.resolve(fn(rest, values)).then((confirmation) => {\r\n return confirmation || confirmationFallback;\r\n });\r\n },\r\n });\r\n });\r\n};\r\n","import { Plugin } from '@telia-ace/knowledge-widget-core';\r\nimport { Container } from '@webprovisions/platform';\r\nimport {\r\n ChatPopupPlugin,\r\n EmailFormPlugin,\r\n FreeTextPlugin,\r\n LinkPlugin,\r\n PhonePlugin,\r\n WebServicePlugin,\r\n} from '.';\r\n\r\n/**\r\n * Registers default Humany contact methods.\r\n */\r\nexport class DefaultContactMethodsPlugin extends Plugin {\r\n constructor(container: Container, settings: any) {\r\n super(container, settings);\r\n const implementation = this.widget.implementation;\r\n implementation.configure((config) => {\r\n config\r\n .plugin(EmailFormPlugin)\r\n .plugin(ChatPopupPlugin)\r\n .plugin(FreeTextPlugin)\r\n .plugin(PhonePlugin)\r\n .plugin(WebServicePlugin)\r\n .plugin(LinkPlugin);\r\n });\r\n }\r\n}\r\n"],"names":["defaultValidate","defaultComplete","defaultEvaluate","React","defaultSubmit","EmailFormPlugin","ChatPopupPlugin","FreeTextPlugin","PhonePlugin","WebServicePlugin","LinkPlugin"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { appendClassNames } from "@telia-ace/widget-utilities";
2
+ const LinkComponent = ({
3
+ className,
4
+ body,
5
+ renderDefault = () => {
6
+ }
7
+ }) => {
8
+ const { uri, target, protocol } = body;
9
+ return renderDefault({
10
+ target,
11
+ className: appendClassNames(className, "humany-contact-method-link"),
12
+ href: `${protocol}${uri}`
13
+ });
14
+ };
15
+ export { LinkComponent as default };
16
+ //# sourceMappingURL=link-component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-component.js","sources":["../src/contact-methods/link/link-component.tsx"],"sourcesContent":["import { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport * as React from 'react';\r\nimport { ContactMethodProps } from '../ui';\r\n\r\nconst LinkComponent: React.SFC<ContactMethodProps> = ({\r\n className,\r\n body,\r\n renderDefault = () => {},\r\n}) => {\r\n const { uri, target, protocol } = body;\r\n\r\n return renderDefault({\r\n target,\r\n className: appendClassNames(className, 'humany-contact-method-link'),\r\n href: `${protocol}${uri}`,\r\n });\r\n};\r\n\r\nexport default LinkComponent;\r\n"],"names":[],"mappings":";AAIA,MAAM,gBAA+C,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA,gBAAgB,MAAM;AAAA,EAAC;AAAA,MACrB;AACI,QAAA,EAAE,KAAK,QAAQ,aAAa;AAElC,SAAO,cAAc;AAAA,IACjB;AAAA,IACA,WAAW,iBAAiB,WAAW,4BAA4B;AAAA,IACnE,MAAM,GAAG,WAAW;AAAA,EAAA,CACvB;AACL;;"}
@@ -0,0 +1,15 @@
1
+ import { appendClassNames } from "@telia-ace/widget-utilities";
2
+ const PhoneComponent = ({
3
+ className,
4
+ body: { phoneNumber },
5
+ renderDefault = () => {
6
+ }
7
+ }) => {
8
+ return renderDefault({
9
+ title: phoneNumber,
10
+ className: appendClassNames(className, "humany-contact-method-phone"),
11
+ href: `tel: ${phoneNumber}`
12
+ });
13
+ };
14
+ export { PhoneComponent as default };
15
+ //# sourceMappingURL=phone-component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone-component.js","sources":["../src/contact-methods/phone/phone-component.tsx"],"sourcesContent":["import { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport * as React from 'react';\r\nimport { ContactMethodProps } from '../ui';\r\n\r\nconst PhoneComponent: React.SFC<ContactMethodProps> = ({\r\n className,\r\n body: { phoneNumber },\r\n renderDefault = () => {},\r\n}) => {\r\n return renderDefault({\r\n title: phoneNumber,\r\n className: appendClassNames(className, 'humany-contact-method-phone'),\r\n href: `tel: ${phoneNumber}`,\r\n });\r\n};\r\n\r\nexport default PhoneComponent;\r\n"],"names":[],"mappings":";AAIA,MAAM,iBAAgD,CAAC;AAAA,EACnD;AAAA,EACA,MAAM,EAAE;AAAA,EACR,gBAAgB,MAAM;AAAA,EAAC;AAAA,MACrB;AACF,SAAO,cAAc;AAAA,IACjB,OAAO;AAAA,IACP,WAAW,iBAAiB,WAAW,6BAA6B;AAAA,IACpE,MAAM,QAAQ;AAAA,EAAA,CACjB;AACL;;"}
package/package.json CHANGED
@@ -1,35 +1,34 @@
1
1
  {
2
2
  "name": "@telia-ace/knowledge-widget-adapters",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "description": "ACE knowledge adapters for ACE widgets.",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "Telia Company AB",
7
7
  "keywords": [
8
8
  "telia"
9
9
  ],
10
- "main": "lib/index.js",
11
- "module": "lib-esm/index.js",
10
+ "module": "dist/index.js",
11
+ "types": "dist/index.d.ts",
12
12
  "files": [
13
13
  "LICENSE.txt",
14
14
  "README.md",
15
- "lib/",
16
- "lib-esm/"
15
+ "dist/"
17
16
  ],
18
17
  "publishConfig": {
19
18
  "access": "public"
20
19
  },
21
20
  "scripts": {
22
- "clean": "cleandir lib && cleandir lib-esm",
23
- "compile": "tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"
21
+ "clean": "rimraf ./dist",
22
+ "precompile": "tsc -emitDeclarationOnly",
23
+ "compile": "vite build"
24
24
  },
25
25
  "sideEffects": false,
26
- "typings": "lib/index.d.ts",
27
26
  "dependencies": {
28
27
  "@telia-ace/knowledge-serviceclient": "^1.0.3",
29
- "@telia-ace/knowledge-widget-core": "^1.0.6",
30
- "@telia-ace/knowledge-widget-ui": "^1.0.10",
31
- "@telia-ace/widget-forms": "^1.0.8",
32
- "@telia-ace/widget-routing": "^1.0.5",
28
+ "@telia-ace/knowledge-widget-core": "^1.0.7",
29
+ "@telia-ace/knowledge-widget-ui": "^1.0.11",
30
+ "@telia-ace/widget-forms": "^1.0.9",
31
+ "@telia-ace/widget-routing": "^1.0.6",
33
32
  "@telia-ace/widget-utilities": "^1.0.1",
34
33
  "@webprovisions/platform": "^1.1.2"
35
34
  },
@@ -41,5 +40,5 @@
41
40
  "@types/react": "^16.8.0",
42
41
  "@types/styled-components": "^5.1.7"
43
42
  },
44
- "gitHead": "753397b5908ad6653fff863de21e741d50b238d5"
43
+ "gitHead": "97a688fe894038d305e52cde3d2ca25b0eae8651"
45
44
  }
@@ -1,2 +0,0 @@
1
- import { Container } from '@webprovisions/platform';
2
- export default function chatPopupPlugin(container: Container): void;
@@ -1,79 +0,0 @@
1
- "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- var __read = (this && this.__read) || function (o, n) {
14
- var m = typeof Symbol === "function" && o[Symbol.iterator];
15
- if (!m) return o;
16
- var i = m.call(o), r, ar = [], e;
17
- try {
18
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
- }
20
- catch (error) { e = { error: error }; }
21
- finally {
22
- try {
23
- if (r && !r.done && (m = i["return"])) m.call(i);
24
- }
25
- finally { if (e) throw e.error; }
26
- }
27
- return ar;
28
- };
29
- Object.defineProperty(exports, "__esModule", { value: true });
30
- var widget_forms_1 = require("@telia-ace/widget-forms");
31
- var __1 = require("..");
32
- var email_1 = require("../email");
33
- var popup = function (title, settings, formValues) {
34
- var url = settings.url, width = settings.width, height = settings.height;
35
- var queries = formValues ? formValues : {};
36
- var link = document.createElement('a');
37
- link.href = url;
38
- link.search
39
- .replace('?', '')
40
- .split('&')
41
- .forEach(function (part) {
42
- var _a = __read(part.split('='), 2), key = _a[0], value = _a[1];
43
- typeof value !== 'undefined' && (queries[key] = value);
44
- });
45
- link.search = Object.keys(queries)
46
- .map(function (key) { return "".concat(key, "=").concat(queries[key]); })
47
- .join('&');
48
- window.open(link.href, title, "width=".concat(width, ",height=").concat(height));
49
- return '';
50
- };
51
- function chatPopupPlugin(container) {
52
- container.getAsync('contactMethods').then(function (platform) {
53
- platform.create({
54
- clientName: 'chat.popup',
55
- render: 'email.form',
56
- handleClick: function (contactMethod) {
57
- var title = contactMethod.title, body = contactMethod.body;
58
- var form = body.form, guideId = body.guideId, confirmationFallback = body.confirmationFallback, rest = __rest(body, ["form", "guideId", "confirmationFallback"]);
59
- if (!form) {
60
- return function (e) {
61
- e.preventDefault();
62
- popup(title, rest);
63
- };
64
- }
65
- return function () { };
66
- },
67
- onValidate: function (contactMethod) { return (0, __1.defaultValidate)(container, contactMethod); },
68
- onComplete: function (contactMethod) { return (0, email_1.defaultComplete)(container, contactMethod); },
69
- onSubmit: function (contactMethod) {
70
- var title = contactMethod.title, body = contactMethod.body;
71
- var form = body.form, guideId = body.guideId, confirmationFallback = body.confirmationFallback, rest = __rest(body, ["form", "guideId", "confirmationFallback"]);
72
- var formValues = new widget_forms_1.FormReader(form).export().values;
73
- popup(title, rest, formValues);
74
- return confirmationFallback;
75
- },
76
- });
77
- });
78
- }
79
- exports.default = chatPopupPlugin;
@@ -1 +0,0 @@
1
- export { default as ChatPopupPlugin } from './chat-popup-plugin';
@@ -1,8 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ChatPopupPlugin = void 0;
7
- var chat_popup_plugin_1 = require("./chat-popup-plugin");
8
- Object.defineProperty(exports, "ChatPopupPlugin", { enumerable: true, get: function () { return __importDefault(chat_popup_plugin_1).default; } });
@@ -1,4 +0,0 @@
1
- import * as React from 'react';
2
- import { ContactMethodProps } from '../ui';
3
- declare const EmailFormComponent: React.FC<ContactMethodProps>;
4
- export default EmailFormComponent;
@@ -1,58 +0,0 @@
1
- "use strict";
2
- var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
- return cooked;
5
- };
6
- var __assign = (this && this.__assign) || function () {
7
- __assign = Object.assign || function(t) {
8
- for (var s, i = 1, n = arguments.length; i < n; i++) {
9
- s = arguments[i];
10
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
- t[p] = s[p];
12
- }
13
- return t;
14
- };
15
- return __assign.apply(this, arguments);
16
- };
17
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- var desc = Object.getOwnPropertyDescriptor(m, k);
20
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
- desc = { enumerable: true, get: function() { return m[k]; } };
22
- }
23
- Object.defineProperty(o, k2, desc);
24
- }) : (function(o, m, k, k2) {
25
- if (k2 === undefined) k2 = k;
26
- o[k2] = m[k];
27
- }));
28
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
- Object.defineProperty(o, "default", { enumerable: true, value: v });
30
- }) : function(o, v) {
31
- o["default"] = v;
32
- });
33
- var __importStar = (this && this.__importStar) || function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- Object.defineProperty(exports, "__esModule", { value: true });
41
- var knowledge_widget_ui_1 = require("@telia-ace/knowledge-widget-ui");
42
- var widget_utilities_1 = require("@telia-ace/widget-utilities");
43
- var React = __importStar(require("react"));
44
- var styled_components_1 = __importStar(require("styled-components"));
45
- var ui_1 = require("../ui");
46
- var StyledHtml = (0, styled_components_1.default)(knowledge_widget_ui_1.Html)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", "\n\n ", "\n"], ["\n ", "\n\n ", "\n"])), knowledge_widget_ui_1.genericHtml, (0, knowledge_widget_ui_1.headingElement)('h1', (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n font-weight: normal;\n font-size: ", ";\n "], ["\n font-weight: normal;\n font-size: ", ";\n "])), function (p) { var _a; return (_a = p.theme.fonts) === null || _a === void 0 ? void 0 : _a.medium; })));
47
- var EmailFormComponent = function (props) {
48
- var className = props.className, _a = props.renderDefault, renderDefault = _a === void 0 ? function () { } : _a, form = props.body.form, confirmation = props.confirmation, htmlParseInstruction = props.htmlParseInstruction, disabled = props.disabled;
49
- if (confirmation) {
50
- return (React.createElement(StyledHtml, { className: (0, widget_utilities_1.appendClassNames)(className, 'humany-contact-method-confirmation', 'humany-contact-method-email'), html: confirmation, htmlParseInstruction: htmlParseInstruction }));
51
- }
52
- if (form && !disabled) {
53
- return (React.createElement(ui_1.Form, __assign({}, props, { className: (0, widget_utilities_1.appendClassNames)(className, 'humany-contact-method-email') })));
54
- }
55
- return renderDefault();
56
- };
57
- exports.default = EmailFormComponent;
58
- var templateObject_1, templateObject_2;
@@ -1,16 +0,0 @@
1
- import { SubmissionApiResult } from '@telia-ace/knowledge-serviceclient';
2
- import { Container } from '@webprovisions/platform';
3
- import { ContactMethodType } from '../ui';
4
- export declare const submit: (container: Container, contactMethod: ContactMethodType, transform?: ((response: any) => SubmissionApiResult) | undefined) => Promise<string>;
5
- export declare const validate: (container: Container, contactMethod: ContactMethodType) => Promise<{
6
- valid: boolean;
7
- errors: {
8
- [key: string]: string;
9
- };
10
- errorTypes: {
11
- [key: string]: string;
12
- };
13
- }>;
14
- export declare const evaluate: (container: Container, contactMethod: ContactMethodType) => Promise<import("@telia-ace/widget-forms").Form>;
15
- export declare const complete: (container: Container, contactMethod: ContactMethodType) => Promise<void>;
16
- export default function emailPlugin(container: Container): void;
@@ -1,83 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.complete = exports.evaluate = exports.validate = exports.submit = void 0;
27
- var widget_forms_1 = require("@telia-ace/widget-forms");
28
- var post = function (container, contactMethod, validate) {
29
- if (validate === void 0) { validate = false; }
30
- return container.getManyAsync('matchingClient', 'router').then(function (services) {
31
- var formData = new widget_forms_1.FormReader(contactMethod.body.form).export(validate).formData;
32
- var _a = services, router = _a.router, matchingClient = _a.matchingClient;
33
- var params = router.getRouteData().params;
34
- return matchingClient.customRequest("contactmethods/".concat(contactMethod.id).concat(validate ? '/validatedwithpayload' : ''), 'POST', {
35
- body: formData,
36
- configuration: {
37
- guideId: contactMethod.body.guideId || params.guideId,
38
- },
39
- });
40
- });
41
- };
42
- var submit = function (container, contactMethod, transform) {
43
- return post(container, contactMethod)
44
- .then(function (response) { return (transform ? transform(response) : response); })
45
- .then(function (_a) {
46
- var ConfirmationText = _a.ConfirmationText;
47
- return ConfirmationText;
48
- });
49
- };
50
- exports.submit = submit;
51
- var validate = function (container, contactMethod) {
52
- return post(container, contactMethod, true).then(function (result) { return ({
53
- valid: result.Validation.IsValid,
54
- errors: result.Validation.Errors,
55
- errorTypes: result.Validation.ErrorTypes,
56
- }); });
57
- };
58
- exports.validate = validate;
59
- var evaluate = function (container, contactMethod) {
60
- return post(container, contactMethod, true).then(function (result) {
61
- return widget_forms_1.FormBuilder.fromLegacyForm(contactMethod.id, result.ContactMethod.Form).get();
62
- });
63
- };
64
- exports.evaluate = evaluate;
65
- var complete = function (container, contactMethod) {
66
- return container.getAsync('matchingClient').then(function (matchingClient) {
67
- matchingClient.completeContactMethod(contactMethod.id);
68
- });
69
- };
70
- exports.complete = complete;
71
- function emailPlugin(container) {
72
- container.getAsync('contactMethods').then(function (platform) {
73
- platform.create({
74
- clientName: 'email.form',
75
- render: Promise.resolve().then(function () { return __importStar(require('./email-form-component')); }),
76
- onEvaluate: function (contactMethod) { return (0, exports.evaluate)(container, contactMethod); },
77
- onValidate: function (contactMethod) { return (0, exports.validate)(container, contactMethod); },
78
- onSubmit: function (contactMethod) { return (0, exports.submit)(container, contactMethod); },
79
- onComplete: function (contactMethod) { return (0, exports.complete)(container, contactMethod); },
80
- });
81
- });
82
- }
83
- exports.default = emailPlugin;
@@ -1 +0,0 @@
1
- export { complete as defaultComplete, default as EmailPlugin, evaluate as defaultEvaluate, submit as defaultSubmit, validate as defaultValidate, } from './email-plugin';
@@ -1,12 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.defaultValidate = exports.defaultSubmit = exports.defaultEvaluate = exports.EmailPlugin = exports.defaultComplete = void 0;
7
- var email_plugin_1 = require("./email-plugin");
8
- Object.defineProperty(exports, "defaultComplete", { enumerable: true, get: function () { return email_plugin_1.complete; } });
9
- Object.defineProperty(exports, "EmailPlugin", { enumerable: true, get: function () { return __importDefault(email_plugin_1).default; } });
10
- Object.defineProperty(exports, "defaultEvaluate", { enumerable: true, get: function () { return email_plugin_1.evaluate; } });
11
- Object.defineProperty(exports, "defaultSubmit", { enumerable: true, get: function () { return email_plugin_1.submit; } });
12
- Object.defineProperty(exports, "defaultValidate", { enumerable: true, get: function () { return email_plugin_1.validate; } });
@@ -1,4 +0,0 @@
1
- import * as React from 'react';
2
- import { ContactMethodProps } from '../ui';
3
- declare const FreeTextComponent: React.SFC<ContactMethodProps>;
4
- export default FreeTextComponent;
@@ -1,49 +0,0 @@
1
- "use strict";
2
- var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
- return cooked;
5
- };
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || function (mod) {
23
- if (mod && mod.__esModule) return mod;
24
- var result = {};
25
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
- __setModuleDefault(result, mod);
27
- return result;
28
- };
29
- var __importDefault = (this && this.__importDefault) || function (mod) {
30
- return (mod && mod.__esModule) ? mod : { "default": mod };
31
- };
32
- Object.defineProperty(exports, "__esModule", { value: true });
33
- var knowledge_widget_ui_1 = require("@telia-ace/knowledge-widget-ui");
34
- var widget_utilities_1 = require("@telia-ace/widget-utilities");
35
- var React = __importStar(require("react"));
36
- var styled_components_1 = __importDefault(require("styled-components"));
37
- var ui_1 = require("../ui");
38
- var FreeTextComponent = function (_a) {
39
- var className = _a.className, description = _a.description, freetext = _a.body.freetext, htmlParseInstruction = _a.htmlParseInstruction;
40
- if (!freetext) {
41
- return null;
42
- }
43
- return (React.createElement("div", { className: (0, widget_utilities_1.appendClassNames)(className, 'humany-contact-method-free-text') },
44
- React.createElement(StyledHtml, { html: freetext, htmlParseInstruction: htmlParseInstruction }),
45
- description && (React.createElement(ui_1.Description, { html: description, htmlParseInstruction: htmlParseInstruction }))));
46
- };
47
- exports.default = FreeTextComponent;
48
- var StyledHtml = (0, styled_components_1.default)(knowledge_widget_ui_1.Html)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", ";\n"], ["\n ", ";\n"])), knowledge_widget_ui_1.genericHtml);
49
- var templateObject_1;
@@ -1,2 +0,0 @@
1
- import { Container } from '@webprovisions/platform';
2
- export default function freeTextPlugin(container: Container): void;
@@ -1,34 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- function freeTextPlugin(container) {
27
- container.getAsync('contactMethods').then(function (platform) {
28
- platform.create({
29
- clientName: 'custom.freetext',
30
- render: Promise.resolve().then(function () { return __importStar(require('./free-text-component')); }),
31
- });
32
- });
33
- }
34
- exports.default = freeTextPlugin;
@@ -1 +0,0 @@
1
- export { default as FreeTextPlugin } from './free-text-plugin';
@@ -1,8 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FreeTextPlugin = void 0;
7
- var free_text_plugin_1 = require("./free-text-plugin");
8
- Object.defineProperty(exports, "FreeTextPlugin", { enumerable: true, get: function () { return __importDefault(free_text_plugin_1).default; } });
@@ -1,10 +0,0 @@
1
- export { ChatPopupPlugin } from './chat-popup';
2
- export { defaultComplete, defaultEvaluate, defaultSubmit, defaultValidate, EmailPlugin, } from './email';
3
- export { FreeTextPlugin } from './free-text';
4
- export { LinkPlugin } from './link';
5
- export { PhonePlugin } from './phone';
6
- export { default as ContactMethodPlatform } from './platform';
7
- export type { Click as ContactMethodClick, ReactComponentImport } from './platform';
8
- export { contactItemList, contactLink, ContactList, ContactMethod, Form as DefaultForm, useContactMethod, } from './ui';
9
- export type { ContactMethodType } from './ui';
10
- export { WebServicePlugin } from './web-service';