@telia-ace/knowledge-widget-adapters 1.0.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 (115) hide show
  1. package/LICENSE.txt +6 -0
  2. package/README.md +3 -0
  3. package/lib/contact-methods/chat-popup/chat-popup-plugin.d.ts +2 -0
  4. package/lib/contact-methods/chat-popup/chat-popup-plugin.js +79 -0
  5. package/lib/contact-methods/chat-popup/index.d.ts +1 -0
  6. package/lib/contact-methods/chat-popup/index.js +8 -0
  7. package/lib/contact-methods/email/email-form-component.d.ts +4 -0
  8. package/lib/contact-methods/email/email-form-component.js +58 -0
  9. package/lib/contact-methods/email/email-plugin.d.ts +16 -0
  10. package/lib/contact-methods/email/email-plugin.js +83 -0
  11. package/lib/contact-methods/email/index.d.ts +1 -0
  12. package/lib/contact-methods/email/index.js +12 -0
  13. package/lib/contact-methods/free-text/free-text-component.d.ts +4 -0
  14. package/lib/contact-methods/free-text/free-text-component.js +49 -0
  15. package/lib/contact-methods/free-text/free-text-plugin.d.ts +2 -0
  16. package/lib/contact-methods/free-text/free-text-plugin.js +34 -0
  17. package/lib/contact-methods/free-text/index.d.ts +1 -0
  18. package/lib/contact-methods/free-text/index.js +8 -0
  19. package/lib/contact-methods/index.d.ts +10 -0
  20. package/lib/contact-methods/index.js +31 -0
  21. package/lib/contact-methods/link/index.d.ts +1 -0
  22. package/lib/contact-methods/link/index.js +8 -0
  23. package/lib/contact-methods/link/link-component.d.ts +4 -0
  24. package/lib/contact-methods/link/link-component.js +13 -0
  25. package/lib/contact-methods/link/link-plugin.d.ts +2 -0
  26. package/lib/contact-methods/link/link-plugin.js +34 -0
  27. package/lib/contact-methods/phone/index.d.ts +1 -0
  28. package/lib/contact-methods/phone/index.js +8 -0
  29. package/lib/contact-methods/phone/phone-component.d.ts +4 -0
  30. package/lib/contact-methods/phone/phone-component.js +12 -0
  31. package/lib/contact-methods/phone/phone-plugin.d.ts +2 -0
  32. package/lib/contact-methods/phone/phone-plugin.js +34 -0
  33. package/lib/contact-methods/platform.d.ts +49 -0
  34. package/lib/contact-methods/platform.js +256 -0
  35. package/lib/contact-methods/ui/confirmation.d.ts +6 -0
  36. package/lib/contact-methods/ui/confirmation.js +47 -0
  37. package/lib/contact-methods/ui/contact-list.d.ts +15 -0
  38. package/lib/contact-methods/ui/contact-list.js +61 -0
  39. package/lib/contact-methods/ui/contact-method.d.ts +39 -0
  40. package/lib/contact-methods/ui/contact-method.js +110 -0
  41. package/lib/contact-methods/ui/description.d.ts +3 -0
  42. package/lib/contact-methods/ui/description.js +13 -0
  43. package/lib/contact-methods/ui/form.d.ts +4 -0
  44. package/lib/contact-methods/ui/form.js +54 -0
  45. package/lib/contact-methods/ui/index.d.ts +7 -0
  46. package/lib/contact-methods/ui/index.js +20 -0
  47. package/lib/contact-methods/ui/use-contact-method.d.ts +2 -0
  48. package/lib/contact-methods/ui/use-contact-method.js +39 -0
  49. package/lib/contact-methods/web-service/index.d.ts +1 -0
  50. package/lib/contact-methods/web-service/index.js +8 -0
  51. package/lib/contact-methods/web-service/web-service-plugin.d.ts +2 -0
  52. package/lib/contact-methods/web-service/web-service-plugin.js +30 -0
  53. package/lib/create-adapter.d.ts +7 -0
  54. package/lib/create-adapter.js +43 -0
  55. package/lib/default-contact-methods-plugin.d.ts +8 -0
  56. package/lib/default-contact-methods-plugin.js +42 -0
  57. package/lib/index.d.ts +5 -0
  58. package/lib/index.js +25 -0
  59. package/lib-esm/contact-methods/chat-popup/chat-popup-plugin.d.ts +2 -0
  60. package/lib-esm/contact-methods/chat-popup/chat-popup-plugin.js +76 -0
  61. package/lib-esm/contact-methods/chat-popup/index.d.ts +1 -0
  62. package/lib-esm/contact-methods/chat-popup/index.js +1 -0
  63. package/lib-esm/contact-methods/email/email-form-component.d.ts +4 -0
  64. package/lib-esm/contact-methods/email/email-form-component.js +33 -0
  65. package/lib-esm/contact-methods/email/email-plugin.d.ts +16 -0
  66. package/lib-esm/contact-methods/email/email-plugin.js +52 -0
  67. package/lib-esm/contact-methods/email/index.d.ts +1 -0
  68. package/lib-esm/contact-methods/email/index.js +1 -0
  69. package/lib-esm/contact-methods/free-text/free-text-component.d.ts +4 -0
  70. package/lib-esm/contact-methods/free-text/free-text-component.js +21 -0
  71. package/lib-esm/contact-methods/free-text/free-text-plugin.d.ts +2 -0
  72. package/lib-esm/contact-methods/free-text/free-text-plugin.js +8 -0
  73. package/lib-esm/contact-methods/free-text/index.d.ts +1 -0
  74. package/lib-esm/contact-methods/free-text/index.js +1 -0
  75. package/lib-esm/contact-methods/index.d.ts +10 -0
  76. package/lib-esm/contact-methods/index.js +8 -0
  77. package/lib-esm/contact-methods/link/index.d.ts +1 -0
  78. package/lib-esm/contact-methods/link/index.js +1 -0
  79. package/lib-esm/contact-methods/link/link-component.d.ts +4 -0
  80. package/lib-esm/contact-methods/link/link-component.js +11 -0
  81. package/lib-esm/contact-methods/link/link-plugin.d.ts +2 -0
  82. package/lib-esm/contact-methods/link/link-plugin.js +8 -0
  83. package/lib-esm/contact-methods/phone/index.d.ts +1 -0
  84. package/lib-esm/contact-methods/phone/index.js +1 -0
  85. package/lib-esm/contact-methods/phone/phone-component.d.ts +4 -0
  86. package/lib-esm/contact-methods/phone/phone-component.js +10 -0
  87. package/lib-esm/contact-methods/phone/phone-plugin.d.ts +2 -0
  88. package/lib-esm/contact-methods/phone/phone-plugin.js +8 -0
  89. package/lib-esm/contact-methods/platform.d.ts +49 -0
  90. package/lib-esm/contact-methods/platform.js +253 -0
  91. package/lib-esm/contact-methods/ui/confirmation.d.ts +6 -0
  92. package/lib-esm/contact-methods/ui/confirmation.js +22 -0
  93. package/lib-esm/contact-methods/ui/contact-list.d.ts +15 -0
  94. package/lib-esm/contact-methods/ui/contact-list.js +32 -0
  95. package/lib-esm/contact-methods/ui/contact-method.d.ts +39 -0
  96. package/lib-esm/contact-methods/ui/contact-method.js +81 -0
  97. package/lib-esm/contact-methods/ui/description.d.ts +3 -0
  98. package/lib-esm/contact-methods/ui/description.js +8 -0
  99. package/lib-esm/contact-methods/ui/form.d.ts +4 -0
  100. package/lib-esm/contact-methods/ui/form.js +49 -0
  101. package/lib-esm/contact-methods/ui/index.d.ts +7 -0
  102. package/lib-esm/contact-methods/ui/index.js +6 -0
  103. package/lib-esm/contact-methods/ui/use-contact-method.d.ts +2 -0
  104. package/lib-esm/contact-methods/ui/use-contact-method.js +37 -0
  105. package/lib-esm/contact-methods/web-service/index.d.ts +1 -0
  106. package/lib-esm/contact-methods/web-service/index.js +1 -0
  107. package/lib-esm/contact-methods/web-service/web-service-plugin.d.ts +2 -0
  108. package/lib-esm/contact-methods/web-service/web-service-plugin.js +27 -0
  109. package/lib-esm/create-adapter.d.ts +7 -0
  110. package/lib-esm/create-adapter.js +39 -0
  111. package/lib-esm/default-contact-methods-plugin.d.ts +8 -0
  112. package/lib-esm/default-contact-methods-plugin.js +39 -0
  113. package/lib-esm/index.d.ts +5 -0
  114. package/lib-esm/index.js +3 -0
  115. package/package.json +43 -0
@@ -0,0 +1,49 @@
1
+ import { ComponentPlatform } from '@telia-ace/knowledge-widget-core';
2
+ import { Form } from '@telia-ace/widget-forms';
3
+ import { Container } from '@webprovisions/platform';
4
+ import React from 'react';
5
+ import { ContactMethodProps } from './ui';
6
+ export declare type ReactComponentImport = Promise<{
7
+ default: React.FunctionComponent<any>;
8
+ }>;
9
+ export declare type Click = (e: React.MouseEvent, cm: ContactMethodProps) => void;
10
+ export declare type AdapterSettings = {
11
+ clientName: string;
12
+ render: string | ReactComponentImport;
13
+ handleDescription?: (cm: ContactMethodProps) => Promise<string> | string;
14
+ handleDisabled?: (cm: ContactMethodProps) => Promise<boolean> | boolean;
15
+ handleClick?: (cm: ContactMethodProps) => Promise<Click> | Click;
16
+ onEvaluate?: (cm: ContactMethodProps) => Promise<Form> | Form;
17
+ onValidate?: (cm: ContactMethodProps) => Promise<ValidationResult> | ValidationResult;
18
+ onSubmit?: (cm: ContactMethodProps) => Promise<string> | string;
19
+ onComplete?: (cm: ContactMethodProps) => Promise<void> | void;
20
+ };
21
+ export declare type ValidationResult = {
22
+ errors?: {
23
+ [key: string]: string;
24
+ };
25
+ errorTypes?: {
26
+ [key: string]: string;
27
+ };
28
+ valid: boolean;
29
+ };
30
+ export declare enum ContactMethodTrackTypes {
31
+ ContactMethodValidate = "contact-method-validate",
32
+ ContactMethodComplete = "contact-method-complete"
33
+ }
34
+ declare class ContactMethodPlatform {
35
+ private container;
36
+ private componentPlatform;
37
+ private adapters;
38
+ private subs;
39
+ static create(container: Container): Promise<ContactMethodPlatform>;
40
+ constructor(container: Container, componentPlatform: ComponentPlatform);
41
+ private track;
42
+ complete(contactMethod: ContactMethodProps): void | Promise<void>;
43
+ evaluate(contactMethod: ContactMethodProps): Promise<Form>;
44
+ validate(contactMethod: ContactMethodProps): Promise<ValidationResult>;
45
+ submit(contactMethod: ContactMethodProps): Promise<string>;
46
+ create(settings: AdapterSettings): Promise<void>;
47
+ dispose(): void;
48
+ }
49
+ export default ContactMethodPlatform;
@@ -0,0 +1,256 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.ContactMethodTrackTypes = void 0;
51
+ var knowledge_widget_core_1 = require("@telia-ace/knowledge-widget-core");
52
+ var react_1 = require("react");
53
+ var email_1 = require("./email");
54
+ var ContactMethodTrackTypes;
55
+ (function (ContactMethodTrackTypes) {
56
+ ContactMethodTrackTypes["ContactMethodValidate"] = "contact-method-validate";
57
+ ContactMethodTrackTypes["ContactMethodComplete"] = "contact-method-complete";
58
+ })(ContactMethodTrackTypes = exports.ContactMethodTrackTypes || (exports.ContactMethodTrackTypes = {}));
59
+ var handleContactMethod = function (adapters, contactMethod) { return __awaiter(void 0, void 0, void 0, function () {
60
+ var adapter, description, disabled, onClick, handleClick, handleDescription, handleDisabled;
61
+ return __generator(this, function (_a) {
62
+ switch (_a.label) {
63
+ case 0:
64
+ adapter = adapters.get(contactMethod.clientName);
65
+ description = contactMethod.description, disabled = contactMethod.disabled, onClick = contactMethod.onClick;
66
+ if (!adapter) return [3 /*break*/, 6];
67
+ handleClick = adapter.handleClick, handleDescription = adapter.handleDescription, handleDisabled = adapter.handleDisabled;
68
+ if (!(typeof handleClick === 'function')) return [3 /*break*/, 2];
69
+ return [4 /*yield*/, Promise.resolve(handleClick(contactMethod))];
70
+ case 1:
71
+ onClick = _a.sent();
72
+ _a.label = 2;
73
+ case 2:
74
+ if (!(typeof handleDescription === 'function')) return [3 /*break*/, 4];
75
+ return [4 /*yield*/, Promise.resolve(handleDescription(contactMethod))];
76
+ case 3:
77
+ description = _a.sent();
78
+ _a.label = 4;
79
+ case 4:
80
+ if (!(typeof handleDisabled === 'function')) return [3 /*break*/, 6];
81
+ return [4 /*yield*/, Promise.resolve(handleDisabled(contactMethod))];
82
+ case 5:
83
+ disabled = _a.sent();
84
+ _a.label = 6;
85
+ case 6: return [2 /*return*/, Promise.resolve(__assign(__assign({}, contactMethod), { description: description, disabled: disabled, onClick: onClick }))];
86
+ }
87
+ });
88
+ }); };
89
+ var ContactMethodPlatform = /** @class */ (function () {
90
+ function ContactMethodPlatform(container, componentPlatform) {
91
+ var _this = this;
92
+ this.container = container;
93
+ this.componentPlatform = componentPlatform;
94
+ this.adapters = new Map();
95
+ this.subs = [];
96
+ if (componentPlatform) {
97
+ var contactListComponent = componentPlatform
98
+ .components()
99
+ .ofType('contact-list')
100
+ .select();
101
+ contactListComponent.actions.watch('contact-list.fetched', function (input, next) { return __awaiter(_this, void 0, void 0, function () {
102
+ var contactMethods, promises;
103
+ var _this = this;
104
+ return __generator(this, function (_a) {
105
+ switch (_a.label) {
106
+ case 0:
107
+ contactMethods = input.contactMethods;
108
+ if (!contactMethods) return [3 /*break*/, 2];
109
+ promises = Promise.all(contactMethods.map(function (cm) {
110
+ return handleContactMethod(_this.adapters, cm);
111
+ }));
112
+ return [4 /*yield*/, Promise.resolve(promises).then(function (contactMethods) {
113
+ input.contactMethods = contactMethods;
114
+ })];
115
+ case 1:
116
+ _a.sent();
117
+ _a.label = 2;
118
+ case 2: return [2 /*return*/, next(input)];
119
+ }
120
+ });
121
+ }); });
122
+ var guideComponent = componentPlatform.components().ofType('guide').select();
123
+ guideComponent.actions.watch('guide.fetched', function (input, next) { return __awaiter(_this, void 0, void 0, function () {
124
+ var contactMethods, promises;
125
+ var _this = this;
126
+ return __generator(this, function (_a) {
127
+ switch (_a.label) {
128
+ case 0:
129
+ contactMethods = input.contactMethods;
130
+ if (!contactMethods) return [3 /*break*/, 2];
131
+ promises = Promise.all(contactMethods.map(function (cm) {
132
+ return handleContactMethod(_this.adapters, cm);
133
+ }));
134
+ return [4 /*yield*/, Promise.resolve(promises).then(function (contactMethods) {
135
+ input.contactMethods = contactMethods;
136
+ })];
137
+ case 1:
138
+ _a.sent();
139
+ _a.label = 2;
140
+ case 2: return [2 /*return*/, next(input)];
141
+ }
142
+ });
143
+ }); });
144
+ guideComponent.actions.watch('guide.handover', function (input, next) { return __awaiter(_this, void 0, void 0, function () {
145
+ var handoverContactMethods, promises;
146
+ var _this = this;
147
+ return __generator(this, function (_a) {
148
+ switch (_a.label) {
149
+ case 0:
150
+ handoverContactMethods = input.handoverContactMethods;
151
+ if (!handoverContactMethods) return [3 /*break*/, 2];
152
+ promises = Promise.all(handoverContactMethods.map(function (cm) {
153
+ return handleContactMethod(_this.adapters, cm);
154
+ }));
155
+ return [4 /*yield*/, Promise.resolve(promises).then(function (handoverContactMethods) {
156
+ input.handoverContactMethods = handoverContactMethods;
157
+ })];
158
+ case 1:
159
+ _a.sent();
160
+ _a.label = 2;
161
+ case 2: return [2 /*return*/, next(input)];
162
+ }
163
+ });
164
+ }); });
165
+ var contactMethodComponent = componentPlatform
166
+ .components()
167
+ .ofType('contact-method')
168
+ .select();
169
+ contactMethodComponent.actions.watch('contact-method.fetched', function (input, next) { return __awaiter(_this, void 0, void 0, function () {
170
+ var contactMethod;
171
+ return __generator(this, function (_a) {
172
+ contactMethod = input.contactMethod;
173
+ if (contactMethod) {
174
+ return [2 /*return*/, handleContactMethod(this.adapters, contactMethod).then(function (contactMethod) {
175
+ return next(__assign(__assign({}, input), { contactMethod: contactMethod }));
176
+ })];
177
+ }
178
+ return [2 /*return*/, next(input)];
179
+ });
180
+ }); });
181
+ }
182
+ }
183
+ ContactMethodPlatform.create = function (container) {
184
+ return knowledge_widget_core_1.ComponentPlatform.getInstance(container).then(function (platform) {
185
+ return new ContactMethodPlatform(container, platform);
186
+ });
187
+ };
188
+ ContactMethodPlatform.prototype.track = function (data, type) {
189
+ if (data === void 0) { data = {}; }
190
+ var events = this.container.get('$widget').events;
191
+ events.dispatch('tracking:service-client-response', {
192
+ type: type,
193
+ data: data,
194
+ });
195
+ };
196
+ ContactMethodPlatform.prototype.complete = function (contactMethod) {
197
+ var id = contactMethod.id, title = contactMethod.title, clientName = contactMethod.clientName, expanded = contactMethod.expanded, body = contactMethod.body;
198
+ this.track({ contactMethod: { id: id, title: title, expanded: expanded, type: clientName }, hasGuide: !!body.guideId }, ContactMethodTrackTypes.ContactMethodComplete);
199
+ var adapter = this.adapters.get(clientName);
200
+ if (adapter && adapter.onComplete) {
201
+ return adapter.onComplete(contactMethod);
202
+ }
203
+ };
204
+ ContactMethodPlatform.prototype.evaluate = function (contactMethod) {
205
+ var clientName = contactMethod.clientName;
206
+ var adapter = this.adapters.get(clientName);
207
+ if (adapter && adapter.onEvaluate) {
208
+ return Promise.resolve(adapter.onEvaluate(contactMethod));
209
+ }
210
+ return Promise.resolve(contactMethod.body.form);
211
+ };
212
+ ContactMethodPlatform.prototype.validate = function (contactMethod) {
213
+ var _this = this;
214
+ var id = contactMethod.id, title = contactMethod.title, clientName = contactMethod.clientName;
215
+ var adapter = this.adapters.get(clientName);
216
+ if (adapter && adapter.onValidate) {
217
+ return Promise.resolve(adapter.onValidate(contactMethod)).then(function (result) {
218
+ _this.track({ contactMethod: { id: id, title: title, type: clientName }, isValid: result.valid }, ContactMethodTrackTypes.ContactMethodValidate);
219
+ var events = _this.container.get('$widget').events;
220
+ events.dispatch('form:validated', { isValid: result.valid });
221
+ return result;
222
+ });
223
+ }
224
+ return Promise.resolve({ valid: true });
225
+ };
226
+ ContactMethodPlatform.prototype.submit = function (contactMethod) {
227
+ var _this = this;
228
+ var clientName = contactMethod.clientName;
229
+ var adapter = this.adapters.get(clientName);
230
+ if (adapter && adapter.onSubmit) {
231
+ return Promise.resolve(adapter.onSubmit(contactMethod)).then(function (result) {
232
+ _this.complete(contactMethod);
233
+ return result;
234
+ });
235
+ }
236
+ return Promise.resolve('');
237
+ };
238
+ ContactMethodPlatform.prototype.create = function (settings) {
239
+ var _this = this;
240
+ var clientName = settings.clientName, render = settings.render;
241
+ this.adapters.set(clientName, __assign({ onValidate: function (cm) { return (0, email_1.defaultValidate)(_this.container, cm); }, onEvaluate: function (cm) { return (0, email_1.defaultEvaluate)(_this.container, cm); }, onComplete: function (cm) { return (0, email_1.defaultComplete)(_this.container, cm); } }, settings));
242
+ return this.container.getAsync('componentResolver').then(function (resolver) {
243
+ if (typeof render === 'string') {
244
+ _this.subs.push(resolver.registerAlias(clientName, render));
245
+ }
246
+ else {
247
+ _this.subs.push(resolver.registerComponent(clientName, (0, react_1.lazy)(function () { return render; })));
248
+ }
249
+ });
250
+ };
251
+ ContactMethodPlatform.prototype.dispose = function () {
252
+ this.subs.forEach(function (s) { return s(); });
253
+ };
254
+ return ContactMethodPlatform;
255
+ }());
256
+ exports.default = ContactMethodPlatform;
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ export declare type Props = {
3
+ html: string;
4
+ };
5
+ declare const Confirmation: React.SFC<Props>;
6
+ export default Confirmation;
@@ -0,0 +1,47 @@
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 React = __importStar(require("react"));
43
+ var styled_components_1 = __importStar(require("styled-components"));
44
+ var Confirmation = function (props) { return (React.createElement(StyledParagraph, __assign({}, props, { className: "humany-confirmation" }))); };
45
+ exports.default = Confirmation;
46
+ var StyledParagraph = (0, styled_components_1.default)(knowledge_widget_ui_1.Paragraph)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), (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 templateObject_1, templateObject_2;
@@ -0,0 +1,15 @@
1
+ import { DispatchAction } from '@telia-ace/knowledge-widget-ui';
2
+ import React, { ReactNode } from 'react';
3
+ import { ContactMethodType } from './contact-method';
4
+ export declare const contactItemList: import("styled-components").FlattenInterpolation<import("styled-components").ThemeProps<any>>;
5
+ declare type Props = {
6
+ contactMethods: ContactMethodType[];
7
+ header?: string;
8
+ className?: string;
9
+ action?: (action: string, value?: any) => void;
10
+ dispatch?: DispatchAction;
11
+ children?: ReactNode;
12
+ guideId?: string;
13
+ };
14
+ declare const ContactList: React.SFC<Props>;
15
+ export default ContactList;
@@ -0,0 +1,61 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
41
+ return (mod && mod.__esModule) ? mod : { "default": mod };
42
+ };
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.contactItemList = void 0;
45
+ var knowledge_widget_ui_1 = require("@telia-ace/knowledge-widget-ui");
46
+ var widget_utilities_1 = require("@telia-ace/widget-utilities");
47
+ var react_1 = __importDefault(require("react"));
48
+ var styled_components_1 = __importStar(require("styled-components"));
49
+ var contact_method_1 = __importDefault(require("./contact-method"));
50
+ exports.contactItemList = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", "\n\n > div {\n padding: ", ";\n\n ", "\n }\n > ul {\n &:not(:first-child) {\n border-top: ", ";\n }\n\n > li {\n margin: 0;\n white-space: normal;\n\n > a {\n overflow: hidden;\n }\n\n &:first-child > a {\n border-radius: ", ";\n }\n\n &:last-child:not(:first-child) > a {\n border-radius: ", ";\n }\n\n &:not(:last-child) {\n border-bottom: ", ";\n }\n\n > div {\n padding: ", ";\n }\n }\n }\n\n @media (hover: hover) {\n a:hover {\n background-color: ", ";\n }\n }\n"], ["\n ", "\n\n > div {\n padding: ", ";\n\n ", "\n }\n > ul {\n &:not(:first-child) {\n border-top: ", ";\n }\n\n > li {\n margin: 0;\n white-space: normal;\n\n > a {\n overflow: hidden;\n }\n\n &:first-child > a {\n border-radius: ", ";\n }\n\n &:last-child:not(:first-child) > a {\n border-radius: ", ";\n }\n\n &:not(:last-child) {\n border-bottom: ", ";\n }\n\n > div {\n padding: ", ";\n }\n }\n }\n\n @media (hover: hover) {\n a:hover {\n background-color: ", ";\n }\n }\n"])), knowledge_widget_ui_1.itemList, function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.large; }, (0, knowledge_widget_ui_1.headingElement)('h1', (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin: 0;\n "], ["\n margin: 0;\n "])))), function (p) { return p.theme.border; }, function (p) { return "".concat(p.theme.borderRadius, " ").concat(p.theme.borderRadius, " 0 0"); }, function (p) { return "0 0 ".concat(p.theme.borderRadius, " ").concat(p.theme.borderRadius); }, function (p) { return p.theme.border; }, function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.large; }, function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.accent; });
51
+ var StyledItemList = (0, styled_components_1.default)(knowledge_widget_ui_1.ItemList)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), exports.contactItemList);
52
+ var ContactList = function (_a) {
53
+ var contactMethods = _a.contactMethods, children = _a.children, guideId = _a.guideId, dispatch = _a.dispatch, _b = _a.className, className = _b === void 0 ? '' : _b, _c = _a.action, action = _c === void 0 ? function () { } : _c, _d = _a.header, header = _d === void 0 ? '' : _d;
54
+ if (!contactMethods.length) {
55
+ return null;
56
+ }
57
+ return (react_1.default.createElement(StyledItemList, { header: header, className: (0, widget_utilities_1.appendClassNames)(className, 'humany-contact-list'), items: contactMethods, renderItem: function (cm) { return (react_1.default.createElement("li", { key: cm.id, "data-contact-method": cm.id },
58
+ react_1.default.createElement(contact_method_1.default, __assign({}, cm, { action: action, dispatch: dispatch, guideId: guideId })))); } }, children));
59
+ };
60
+ exports.default = ContactList;
61
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -0,0 +1,39 @@
1
+ import { Symbol } from '@telia-ace/knowledge-widget-core';
2
+ import { DispatchAction, HtmlParseInstruction } from '@telia-ace/knowledge-widget-ui';
3
+ import React from 'react';
4
+ export declare type ContactMethodType = {
5
+ id: string;
6
+ title: string;
7
+ symbol?: Symbol;
8
+ clientName: string;
9
+ expanded: boolean;
10
+ inline: boolean;
11
+ body: {
12
+ [key: string]: any;
13
+ };
14
+ description?: string;
15
+ confirmation?: string;
16
+ disabled?: boolean;
17
+ guideId?: string;
18
+ };
19
+ export declare type Props = Merge<ContactMethodType, {
20
+ className?: string;
21
+ onClick?: (event: React.MouseEvent, properties: Props) => void;
22
+ renderDefault?: (extraProps?: Partial<Props>) => any;
23
+ htmlParseInstruction?: HtmlParseInstruction;
24
+ href?: string;
25
+ target?: string;
26
+ disabled?: boolean;
27
+ action?: (action: string, value: any) => void;
28
+ dispatch?: DispatchAction;
29
+ symbol?: Symbol;
30
+ description?: string;
31
+ confirmation?: string;
32
+ guideId?: string;
33
+ autoFocus?: boolean;
34
+ }>;
35
+ declare const ContactMethod: React.FC<Props>;
36
+ export default ContactMethod;
37
+ export declare const contactLink: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<{
38
+ description?: string | undefined;
39
+ }, any>>;
@@ -0,0 +1,110 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
41
+ return (mod && mod.__esModule) ? mod : { "default": mod };
42
+ };
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.contactLink = void 0;
45
+ var knowledge_widget_ui_1 = require("@telia-ace/knowledge-widget-ui");
46
+ var widget_utilities_1 = require("@telia-ace/widget-utilities");
47
+ var react_1 = __importStar(require("react"));
48
+ var styled_components_1 = __importStar(require("styled-components"));
49
+ var description_1 = __importDefault(require("./description"));
50
+ var ContactMethod = function (props) {
51
+ var ResolvedComponent = (0, knowledge_widget_ui_1.useComponent)(props.clientName);
52
+ var _a = (0, knowledge_widget_ui_1.useRouteData)().params, contactCategory = _a.contactCategory, guideCategory = _a.guideCategory, phrase = _a.phrase;
53
+ if (typeof ResolvedComponent === 'undefined') {
54
+ return null;
55
+ }
56
+ if (ResolvedComponent === null) {
57
+ if (process.env.NODE_ENV !== 'production') {
58
+ return (react_1.default.createElement(NonResolvedContactMethodWrapper, { title: "client-name: ".concat(props.clientName, ", id: ").concat(props.id), className: "humany-non-resolved-contact-method" },
59
+ react_1.default.createElement(knowledge_widget_ui_1.Typography, { variant: "h5" }, "Non resolved Contact Method type")));
60
+ }
61
+ return null;
62
+ }
63
+ var renderLink = function (extraProps) {
64
+ if (extraProps === void 0) { extraProps = {}; }
65
+ var enhancedProps = __assign(__assign({}, props), extraProps);
66
+ var id = enhancedProps.id, title = enhancedProps.title, clientName = enhancedProps.clientName, symbol = enhancedProps.symbol, inline = enhancedProps.inline, _a = enhancedProps.onClick, onClick = _a === void 0 ? function () { } : _a, description = enhancedProps.description, htmlParseInstruction = enhancedProps.htmlParseInstruction, className = enhancedProps.className, disabled = enhancedProps.disabled, guideId = enhancedProps.guideId, _b = enhancedProps.dispatch, dispatch = _b === void 0 ? function () { } : _b, expanded = enhancedProps.expanded;
67
+ var linkProps = inline
68
+ ? {
69
+ onKeyDown: function (event) {
70
+ if (event.key && event.key === 'Enter') {
71
+ onClick(event, enhancedProps);
72
+ if (!event.defaultPrevented) {
73
+ !expanded && dispatch('expand', id);
74
+ }
75
+ }
76
+ },
77
+ onClick: function (event) {
78
+ onClick(event, enhancedProps);
79
+ if (!event.defaultPrevented) {
80
+ !expanded && dispatch('expand', id);
81
+ }
82
+ },
83
+ }
84
+ : {
85
+ onClick: function (event) { return onClick(event, enhancedProps); },
86
+ routeName: 'contact-method',
87
+ params: (0, widget_utilities_1.createParams)({
88
+ contactCategory: contactCategory,
89
+ guideId: guideId,
90
+ guideCategory: guideCategory,
91
+ phrase: phrase,
92
+ contactMethod: id,
93
+ uriName: (0, widget_utilities_1.formatUrl)(title),
94
+ }),
95
+ };
96
+ return (react_1.default.createElement(StyledLink, __assign({ title: title, "aria-label": title, className: className, disabled: disabled, description: description, "data-client-name": clientName }, extraProps, linkProps),
97
+ symbol && react_1.default.createElement(knowledge_widget_ui_1.SymbolBadge, { symbol: symbol }),
98
+ description ? (react_1.default.createElement("div", { className: "humany-contact-link-rich-content" },
99
+ react_1.default.createElement(StyledTitle, null, title),
100
+ react_1.default.createElement(description_1.default, { html: description, htmlParseInstruction: htmlParseInstruction }))) : (react_1.default.createElement(StyledTitle, null, title))));
101
+ };
102
+ return props.expanded ? (react_1.default.createElement(react_1.Suspense, { fallback: null },
103
+ react_1.default.createElement(ResolvedComponent, __assign({}, props, { renderDefault: renderLink })))) : (renderLink());
104
+ };
105
+ exports.default = ContactMethod;
106
+ exports.contactLink = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n padding: ", ";\n ", "\n text-decoration: none;\n span {\n display: inline-block;\n color: ", ";\n }\n i {\n font-size: 30px;\n margin: 0 ", " 0 0;\n min-height: 30px;\n min-width: 30px;\n line-height: 30px;\n display: inline-block;\n vertical-align: bottom;\n color: ", ";\n }\n"], ["\n display: flex;\n padding: ", ";\n ", "\n text-decoration: none;\n span {\n display: inline-block;\n color: ", ";\n }\n i {\n font-size: 30px;\n margin: 0 ", " 0 0;\n min-height: 30px;\n min-width: 30px;\n line-height: 30px;\n display: inline-block;\n vertical-align: bottom;\n color: ", ";\n }\n"])), function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.large; }, function (p) { return (!!p.description ? '' : 'align-items: center;'); }, function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.text; }, function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.large; }, function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.text; });
107
+ var StyledTitle = (0, styled_components_1.default)(knowledge_widget_ui_1.StyledText)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n line-height: 30px;\n"], ["\n line-height: 30px;\n"])));
108
+ var StyledLink = (0, styled_components_1.default)(knowledge_widget_ui_1.Link)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ", "\n\n &:focus {\n ", ";\n }\n"], ["\n ", "\n\n &:focus {\n ", ";\n }\n"])), exports.contactLink, function (p) { var _a; return ((_a = p.theme.accessibility) === null || _a === void 0 ? void 0 : _a.isTabbing) && knowledge_widget_ui_1.borderTabStyle; });
109
+ var NonResolvedContactMethodWrapper = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n text-align: center;\n display: block;\n ", "\n"], ["\n text-align: center;\n display: block;\n ", "\n"])), function (p) { var _a, _b; return typeof ((_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.warning) !== 'undefined' && "color: ".concat((_b = p.theme.colors) === null || _b === void 0 ? void 0 : _b.warning, ";"); });
110
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const _default: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<Pick<import("@telia-ace/knowledge-widget-ui").HtmlProps, "html" | "key" | keyof import("react").HTMLAttributes<HTMLDivElement> | "htmlParseInstruction"> & import("react").RefAttributes<HTMLDivElement>>, any, {}, never>;
3
+ export default _default;
@@ -0,0 +1,13 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ var knowledge_widget_ui_1 = require("@telia-ace/knowledge-widget-ui");
11
+ var styled_components_1 = __importDefault(require("styled-components"));
12
+ exports.default = (0, styled_components_1.default)(knowledge_widget_ui_1.Html)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n font-weight: 300;\n line-height: 1.5em;\n button:focus {\n ", ";\n }\n\n a:focus {\n ", ";\n }\n"], ["\n ", "\n font-weight: 300;\n line-height: 1.5em;\n button:focus {\n ", ";\n }\n\n a:focus {\n ", ";\n }\n"])), knowledge_widget_ui_1.genericHtml, function (p) { var _a; return ((_a = p.theme.accessibility) === null || _a === void 0 ? void 0 : _a.isTabbing) && knowledge_widget_ui_1.borderTabStyle; }, function (p) { var _a; return ((_a = p.theme.accessibility) === null || _a === void 0 ? void 0 : _a.isTabbing) && knowledge_widget_ui_1.linkTabStyle; });
13
+ var templateObject_1;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ContactMethodProps } from '.';
3
+ declare const Form: React.SFC<ContactMethodProps>;
4
+ export default Form;