@telia-ace/knowledge-widget-bot-provider 0.0.1-alpha.4 → 0.0.1-alpha.42

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 (73) hide show
  1. package/lib/client/chat.client.d.ts +3 -2
  2. package/lib/client/chat.client.js +98 -33
  3. package/lib/client/contact-method.client.d.ts +9 -1
  4. package/lib/client/contact-method.client.js +48 -32
  5. package/lib/client/http.client.d.ts +11 -7
  6. package/lib/client/http.client.js +138 -41
  7. package/lib/client/middleware.client.d.ts +4 -3
  8. package/lib/client/middleware.client.js +100 -35
  9. package/lib/contract/custom-component/contact-method-item.d.ts +1 -0
  10. package/lib/contract/custom-component/contact-method-item.js +10 -64
  11. package/lib/contract/custom-component/contact-method-list.js +6 -34
  12. package/lib/contract/custom-component/contact-method.js +12 -17
  13. package/lib/contract/enum/server-entry-type.enum.d.ts +3 -2
  14. package/lib/contract/enum/server-entry-type.enum.js +5 -7
  15. package/lib/contract/model/conversation-api-model/list.model.js +1 -2
  16. package/lib/contract/model/conversation-api-model/message.model.js +1 -2
  17. package/lib/contract/model/http/action.model.js +1 -2
  18. package/lib/contract/model/http/client-action.model.js +1 -2
  19. package/lib/contract/model/http/client-envelope.model.js +1 -2
  20. package/lib/contract/model/http/connect-options.model.js +1 -2
  21. package/lib/contract/model/http/global-state.model.js +1 -2
  22. package/lib/contract/model/http/http-client-options.model.js +1 -2
  23. package/lib/contract/model/http/server-entry.model.js +1 -2
  24. package/lib/contract/model/http/server-envelope.model.js +1 -2
  25. package/lib/contract/model/middleware/aggregator-state.model.js +1 -2
  26. package/lib/contract/model/shared/loose-object.model.js +1 -2
  27. package/lib/helper/chat.helper.js +1 -4
  28. package/lib/helper/http.helper.d.ts +1 -1
  29. package/lib/helper/http.helper.js +8 -13
  30. package/lib/helper/middleware.helper.d.ts +1 -1
  31. package/lib/helper/middleware.helper.js +7 -11
  32. package/lib/helper/store.helper.d.ts +4 -3
  33. package/lib/helper/store.helper.js +105 -16
  34. package/lib/index.js +2 -8
  35. package/lib/interface/entry.interface.d.ts +6 -3
  36. package/lib/interface/entry.interface.js +207 -63
  37. package/lib/interface/middleware/paging.interface.js +3 -5
  38. package/lib/interface/middleware/processor.interface.js +2 -4
  39. package/lib/plugin.d.ts +2 -2
  40. package/lib/plugin.js +73 -90
  41. package/lib/utils.d.ts +2 -0
  42. package/lib/utils.js +79 -0
  43. package/lib-esm/client/chat.client.d.ts +3 -2
  44. package/lib-esm/client/chat.client.js +81 -11
  45. package/lib-esm/client/contact-method.client.d.ts +9 -1
  46. package/lib-esm/client/contact-method.client.js +28 -6
  47. package/lib-esm/client/http.client.d.ts +11 -7
  48. package/lib-esm/client/http.client.js +125 -22
  49. package/lib-esm/client/middleware.client.d.ts +4 -3
  50. package/lib-esm/client/middleware.client.js +89 -19
  51. package/lib-esm/contract/custom-component/contact-method-item.d.ts +1 -0
  52. package/lib-esm/contract/custom-component/contact-method-item.js +7 -36
  53. package/lib-esm/contract/custom-component/contact-method-list.js +1 -1
  54. package/lib-esm/contract/enum/server-entry-type.enum.d.ts +3 -2
  55. package/lib-esm/contract/enum/server-entry-type.enum.js +3 -2
  56. package/lib-esm/helper/http.helper.d.ts +1 -1
  57. package/lib-esm/helper/http.helper.js +7 -9
  58. package/lib-esm/helper/middleware.helper.d.ts +1 -1
  59. package/lib-esm/helper/middleware.helper.js +5 -6
  60. package/lib-esm/helper/store.helper.d.ts +4 -3
  61. package/lib-esm/helper/store.helper.js +103 -11
  62. package/lib-esm/interface/entry.interface.d.ts +6 -3
  63. package/lib-esm/interface/entry.interface.js +191 -45
  64. package/lib-esm/interface/middleware/processor.interface.js +1 -1
  65. package/lib-esm/plugin.d.ts +2 -2
  66. package/lib-esm/plugin.js +66 -55
  67. package/lib-esm/utils.d.ts +2 -0
  68. package/lib-esm/utils.js +79 -0
  69. package/package.json +45 -45
  70. package/lib/interface/middleware/contact-expanded.interface.d.ts +0 -0
  71. package/lib/interface/middleware/contact-expanded.interface.js +0 -50
  72. package/lib/interface/middleware/legacy-contact-methods.interface.d.ts +0 -0
  73. package/lib/interface/middleware/legacy-contact-methods.interface.js +0 -394
@@ -1,56 +1,137 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
4
9
  };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.HttpClient = void 0;
7
- var http_helper_1 = require("../helper/http.helper");
8
- var middleware_helper_1 = require("../helper/middleware.helper");
9
- var store_helper_1 = require("../helper/store.helper");
10
- var chat_client_1 = __importDefault(require("./chat.client"));
11
- var middleware_client_1 = __importDefault(require("./middleware.client"));
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ 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;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { readStorage } from '@telia-ace/widget-services';
38
+ import { v4 as newGuid } from 'uuid';
39
+ import { ChatHelper } from '../helper/chat.helper';
40
+ import { HttpHelper } from '../helper/http.helper';
41
+ import { MiddlewareHelper } from '../helper/middleware.helper';
42
+ import { StoreHelper } from '../helper/store.helper';
43
+ import ChatClient from './chat.client';
44
+ import MiddlewareClient from './middleware.client';
12
45
  var HttpClient = /** @class */ (function () {
13
- function HttpClient(endpoint) {
46
+ function HttpClient(endpoint, clientId, container) {
14
47
  this.options = {
15
- credentials: http_helper_1.HttpHelper.getCredentials(),
16
- clientId: '84d96a63-b8ba-33ec-22d5-515255f866f8',
48
+ credentials: HttpHelper.getCredentials(),
49
+ clientId: clientId,
17
50
  };
18
51
  this.apiEndpoint = endpoint;
19
52
  this.projectionPath = window.location.href;
20
- this.endpointUrl = http_helper_1.HttpHelper.combineUrl(this.projectionPath, 'conversations');
53
+ this.endpointUrl = HttpHelper.combineUrl(this.projectionPath, 'conversations');
21
54
  this.clientId = this.options.clientId;
22
- this.middlewareClient = new middleware_client_1.default();
23
- this.chatClient = new chat_client_1.default();
55
+ this.middlewareClient = new MiddlewareClient(container);
56
+ this.chatClient = new ChatClient(container);
57
+ this.container = container;
24
58
  }
25
59
  HttpClient.prototype.firstHit = function () {
26
- var _this = this;
27
- // On first hit if there are entries stored in the storage, use them
28
- // Otherwise start a new session
29
- middleware_helper_1.MiddlewareHelper.getEntrySessionStorage().then(function (o) {
30
- if (o && o.length > 0)
31
- _this.chatClient.processMessageArrayAndStoreIt(o);
32
- else {
33
- var envelope = _this.constructFirstHitEnvelope();
34
- _this.postAndHandleTheData(envelope);
35
- }
60
+ return __awaiter(this, void 0, void 0, function () {
61
+ var entries, meta, agent, envelope;
62
+ return __generator(this, function (_a) {
63
+ switch (_a.label) {
64
+ case 0: return [4 /*yield*/, MiddlewareHelper.getEntrySessionStorage()];
65
+ case 1:
66
+ entries = (_a.sent());
67
+ if (!(entries && entries.length > 0)) return [3 /*break*/, 5];
68
+ return [4 /*yield*/, StoreHelper.rehydrateState()];
69
+ case 2:
70
+ _a.sent();
71
+ return [4 /*yield*/, readStorage(this.container, 'bot-provider-conversation-meta')];
72
+ case 3:
73
+ meta = _a.sent();
74
+ if (meta === null || meta === void 0 ? void 0 : meta.agent) {
75
+ agent = ChatHelper.getAgent();
76
+ agent.update({
77
+ name: meta.agent.name,
78
+ avatar: meta.agent.avatar,
79
+ });
80
+ }
81
+ return [4 /*yield*/, this.chatClient.processMessageArrayAndStoreIt(entries)];
82
+ case 4:
83
+ _a.sent();
84
+ return [3 /*break*/, 7];
85
+ case 5:
86
+ envelope = this.constructFirstHitEnvelope();
87
+ return [4 /*yield*/, this.postAndHandleTheData(envelope)];
88
+ case 6:
89
+ _a.sent();
90
+ _a.label = 7;
91
+ case 7: return [2 /*return*/];
92
+ }
93
+ });
36
94
  });
37
95
  };
38
96
  // for updates, such as paging changes
39
97
  HttpClient.prototype.handleUpdate = function (action) {
40
98
  var envelope = this.constructInputEnvelope(action);
41
- return this.postAndReturnTheData(envelope, action).then(function (o) {
42
- return o.entries;
43
- });
99
+ return this.postAndHandleTheUpdateData(envelope, action);
44
100
  };
45
101
  // for action clicks
46
102
  HttpClient.prototype.handleInput = function (action) {
47
103
  var envelope = this.constructInputEnvelope(action);
48
- this.postAndHandleTheData(envelope, action);
104
+ return this.postAndHandleTheData(envelope, action);
105
+ };
106
+ // for category burger
107
+ HttpClient.prototype.handleCategories = function () {
108
+ var envelope = this.constructCategoriesEnvelope();
109
+ return this.postAndHandleTheData(envelope);
49
110
  };
50
111
  // for text entries by user
51
112
  HttpClient.prototype.handlePhrase = function (phrase) {
52
113
  var envelope = this.constructPhraseEnvelope(phrase);
53
- this.postAndHandleTheData(envelope);
114
+ var id = newGuid();
115
+ var entry = {
116
+ id: id,
117
+ type: 'Text',
118
+ timestamp: new Date(),
119
+ content: {
120
+ $type: 'Humany.Matching.Bots.Conversations.Content.Text, Humany.Matching',
121
+ html: "".concat(phrase),
122
+ },
123
+ actions: {},
124
+ tags: {},
125
+ };
126
+ var message = {
127
+ id: id,
128
+ message: ['html', { body: "<p>".concat(phrase, "</p>") }],
129
+ entry: entry,
130
+ isUser: true,
131
+ conversationEntry: {},
132
+ };
133
+ StoreHelper.insertMessageToStore(message);
134
+ return this.postAndHandleTheData(envelope);
54
135
  };
55
136
  HttpClient.prototype.postAndHandleTheData = function (envelope, action) {
56
137
  var _this = this;
@@ -65,7 +146,8 @@ var HttpClient = /** @class */ (function () {
65
146
  })
66
147
  .catch(function (err) { return console.log(err); });
67
148
  };
68
- HttpClient.prototype.postAndReturnTheData = function (envelope, action) {
149
+ HttpClient.prototype.postAndHandleTheUpdateData = function (envelope, action) {
150
+ var _this = this;
69
151
  return fetch(this.apiEndpoint, this.getHttpOptions(envelope))
70
152
  .then(function (response) {
71
153
  if (response.ok)
@@ -73,28 +155,40 @@ var HttpClient = /** @class */ (function () {
73
155
  throw response;
74
156
  })
75
157
  .then(function (data) {
76
- return data;
158
+ _this.handleUpdateResponseData(data, action);
77
159
  })
78
160
  .catch(function (err) { return console.log(err); });
79
161
  };
80
162
  HttpClient.prototype.getHttpOptions = function (envelope) {
81
- return Object.assign({}, http_helper_1.HttpHelper.fetchOptions, {
163
+ return Object.assign({}, HttpHelper.fetchOptions, {
82
164
  body: JSON.stringify(envelope),
83
165
  credentials: this.options.credentials,
84
166
  });
85
167
  };
86
168
  HttpClient.prototype.constructInputEnvelope = function (action) {
87
169
  return {
88
- action: store_helper_1.StoreHelper.getAction(action),
89
- localState: store_helper_1.StoreHelper.getLocalState(action),
90
- globalState: store_helper_1.StoreHelper.getGlobalState(),
170
+ action: StoreHelper.getAction(action),
171
+ localState: StoreHelper.getLocalState(action),
172
+ globalState: StoreHelper.getGlobalState(),
173
+ clientId: this.clientId,
174
+ };
175
+ };
176
+ HttpClient.prototype.constructCategoriesEnvelope = function () {
177
+ return {
178
+ action: {
179
+ content: {
180
+ $type: 'Humany.Matching.Bots.Conversations.Actions.BrowseCategories, Humany.Matching',
181
+ },
182
+ key: 'browseCategories',
183
+ },
184
+ globalState: StoreHelper.getGlobalState(),
91
185
  clientId: this.clientId,
92
186
  };
93
187
  };
94
188
  HttpClient.prototype.constructPhraseEnvelope = function (phrase) {
95
189
  return {
96
190
  command: { phrase: phrase },
97
- globalState: store_helper_1.StoreHelper.getGlobalState(),
191
+ globalState: StoreHelper.getGlobalState(),
98
192
  clientId: this.clientId,
99
193
  };
100
194
  };
@@ -106,9 +200,12 @@ var HttpClient = /** @class */ (function () {
106
200
  };
107
201
  };
108
202
  HttpClient.prototype.handleResponseData = function (envelope, action) {
109
- store_helper_1.StoreHelper.setGlobalState(envelope.globalState);
110
- this.middlewareClient.handleEntries(envelope.entries, action);
203
+ StoreHelper.setGlobalState(envelope.globalState);
204
+ return this.middlewareClient.handleEntries(envelope.entries, action);
205
+ };
206
+ HttpClient.prototype.handleUpdateResponseData = function (envelope, action) {
207
+ return this.middlewareClient.handleUpdate(envelope.entries, action);
111
208
  };
112
209
  return HttpClient;
113
210
  }());
114
- exports.HttpClient = HttpClient;
211
+ export { HttpClient };
@@ -1,13 +1,14 @@
1
+ import { Container } from '@webprovisions/platform';
1
2
  import { ServerEntry } from '../contract/model/http/server-entry.model';
2
3
  export default class MiddlewareClient {
3
4
  private paging;
4
5
  private processor;
5
6
  private entryInterface;
6
7
  private chatClient;
7
- constructor();
8
+ constructor(container: Container);
8
9
  static initialize(container: any, widget: any): void;
9
- handleEntries(entries: ServerEntry[], action?: string): void;
10
- handleUpdate(input: string, endpoint: string): void;
10
+ handleEntries(entries: ServerEntry[], action?: string): Promise<void>;
11
+ handleUpdate(entries: ServerEntry[], action?: string): Promise<void>;
11
12
  checkForUpdate(input: string): boolean;
12
13
  private executeMiddlewares;
13
14
  }
@@ -1,45 +1,110 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
4
9
  };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var middleware_helper_1 = require("../helper/middleware.helper");
7
- var store_helper_1 = require("../helper/store.helper");
8
- var entry_interface_1 = __importDefault(require("../interface/entry.interface"));
9
- // import ContactExpandedInterface from "../interface/middleware/contact-expanded.interface";
10
- // import ContactInterface from "../interface/middleware/legacy-contact-methods.interface";
11
- var paging_interface_1 = __importDefault(require("../interface/middleware/paging.interface"));
12
- var processor_interface_1 = __importDefault(require("../interface/middleware/processor.interface"));
13
- var chat_client_1 = __importDefault(require("./chat.client"));
14
- var http_client_1 = require("./http.client");
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ 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;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { createStorageWriter, StorageCategory } from '@telia-ace/widget-services';
38
+ import { ChatHelper } from '../helper/chat.helper';
39
+ import { MiddlewareHelper } from '../helper/middleware.helper';
40
+ import { StoreHelper } from '../helper/store.helper';
41
+ import EntryInterface from '../interface/entry.interface';
42
+ import PagingInterface from '../interface/middleware/paging.interface';
43
+ import ProcessorInterface from '../interface/middleware/processor.interface';
44
+ import ChatClient from './chat.client';
15
45
  var MiddlewareClient = /** @class */ (function () {
16
- function MiddlewareClient() {
17
- // this.contactExpanded = new ContactExpandedInterface();
18
- // this.legacyContact = new ContactInterface();
19
- this.paging = new paging_interface_1.default();
20
- this.processor = new processor_interface_1.default();
21
- this.entryInterface = new entry_interface_1.default();
22
- this.chatClient = new chat_client_1.default();
46
+ function MiddlewareClient(container) {
47
+ this.paging = new PagingInterface();
48
+ this.processor = new ProcessorInterface();
49
+ this.entryInterface = new EntryInterface(container);
50
+ this.chatClient = new ChatClient(container);
23
51
  }
24
52
  MiddlewareClient.initialize = function (container, widget) {
25
- middleware_helper_1.MiddlewareHelper.setContainer(container);
26
- middleware_helper_1.MiddlewareHelper.setWidget(widget);
53
+ MiddlewareHelper.setContainer(container);
54
+ MiddlewareHelper.setWidget(widget);
27
55
  };
28
- // called on all standart scenarios like actions and user messages
56
+ // called on all standard scenarios like actions and user messages
29
57
  MiddlewareClient.prototype.handleEntries = function (entries, action) {
30
- var o = this.executeMiddlewares(entries, false, action);
31
- var messageArray = this.entryInterface.transformArray(o);
32
- this.chatClient.processMessageArrayAndStoreIt(messageArray);
58
+ return __awaiter(this, void 0, void 0, function () {
59
+ var widgetEntry, agent, write, o, messageArray;
60
+ return __generator(this, function (_a) {
61
+ switch (_a.label) {
62
+ case 0:
63
+ widgetEntry = (entries || []).find(function (e) { return e.type === 'Widget'; });
64
+ if (!widgetEntry) return [3 /*break*/, 2];
65
+ agent = ChatHelper.getAgent();
66
+ if (!agent) return [3 /*break*/, 2];
67
+ agent.update({
68
+ name: widgetEntry.content.agent.name,
69
+ avatar: widgetEntry.content.agent.avatar,
70
+ });
71
+ return [4 /*yield*/, createStorageWriter(MiddlewareHelper.getContainer(), 'bot-provider-conversation-meta', StorageCategory.Necessary)];
72
+ case 1:
73
+ write = _a.sent();
74
+ write({
75
+ agent: {
76
+ name: widgetEntry.content.agent.name,
77
+ avatar: widgetEntry.content.agent.avatar,
78
+ },
79
+ });
80
+ _a.label = 2;
81
+ case 2:
82
+ o = this.executeMiddlewares(entries, false, action);
83
+ return [4 /*yield*/, this.entryInterface.transformArray(o)];
84
+ case 3:
85
+ messageArray = _a.sent();
86
+ this.chatClient.processMessageArrayAndStoreIt(messageArray);
87
+ return [2 /*return*/];
88
+ }
89
+ });
90
+ });
33
91
  };
34
92
  // called on situations such as paging changes
35
93
  // when no new entries will be printed
36
- MiddlewareClient.prototype.handleUpdate = function (input, endpoint) {
37
- var _this = this;
38
- var httpClient = new http_client_1.HttpClient(endpoint);
39
- httpClient.handleUpdate(input).then(function (entries) {
40
- var o = _this.executeMiddlewares(entries, true, input);
41
- var messageArray = _this.entryInterface.transformArray(o);
42
- _this.chatClient.updateMessageArrayAndStoreIt(messageArray);
94
+ MiddlewareClient.prototype.handleUpdate = function (entries, action) {
95
+ return __awaiter(this, void 0, void 0, function () {
96
+ var o, messageArray;
97
+ return __generator(this, function (_a) {
98
+ switch (_a.label) {
99
+ case 0:
100
+ o = this.executeMiddlewares(entries, true, action);
101
+ return [4 /*yield*/, this.entryInterface.transformArray(o)];
102
+ case 1:
103
+ messageArray = _a.sent();
104
+ this.chatClient.updateMessageArrayAndStoreIt(messageArray);
105
+ return [2 /*return*/];
106
+ }
107
+ });
43
108
  });
44
109
  };
45
110
  // checks whether the action was of an update type
@@ -48,7 +113,7 @@ var MiddlewareClient = /** @class */ (function () {
48
113
  };
49
114
  MiddlewareClient.prototype.executeMiddlewares = function (entries, isUpdate, action) {
50
115
  if (isUpdate && action)
51
- entries = this.processor.processUpdate(store_helper_1.StoreHelper.getEntry(action), entries);
116
+ entries = this.processor.processUpdate(StoreHelper.getEntry(action), entries);
52
117
  else {
53
118
  entries = this.processor.process(entries);
54
119
  }
@@ -57,4 +122,4 @@ var MiddlewareClient = /** @class */ (function () {
57
122
  };
58
123
  return MiddlewareClient;
59
124
  }());
60
- exports.default = MiddlewareClient;
125
+ export default MiddlewareClient;
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  interface PropsType {
3
3
  contactMethod: any;
4
4
  type: any;
5
+ expanded?: boolean;
5
6
  className?: any;
6
7
  }
7
8
  declare const ContactMethodItem: React.FC<PropsType>;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __assign = (this && this.__assign) || function () {
3
2
  __assign = Object.assign || function(t) {
4
3
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -10,67 +9,14 @@ var __assign = (this && this.__assign) || function () {
10
9
  };
11
10
  return __assign.apply(this, arguments);
12
11
  };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
12
+ import { ContactMethod as GenericContactMethod } from '@telia-ace/knowledge-widget-adapters';
13
+ import { useDispatch } from '@telia-ace/knowledge-widget-ui';
14
+ import React from 'react';
15
+ var ContactMethodItem = function (_a) {
16
+ var contactMethod = _a.contactMethod, className = _a.className;
17
+ var dispatch = useDispatch();
18
+ return (React.createElement(GenericContactMethod, __assign({ className: className, onClick: function () {
19
+ dispatch('action', "".concat(contactMethod.id, "/contact-methods/").concat(contactMethod.title));
20
+ }, dispatch: dispatch }, contactMethod)));
35
21
  };
36
- var __read = (this && this.__read) || function (o, n) {
37
- var m = typeof Symbol === "function" && o[Symbol.iterator];
38
- if (!m) return o;
39
- var i = m.call(o), r, ar = [], e;
40
- try {
41
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
42
- }
43
- catch (error) { e = { error: error }; }
44
- finally {
45
- try {
46
- if (r && !r.done && (m = i["return"])) m.call(i);
47
- }
48
- finally { if (e) throw e.error; }
49
- }
50
- return ar;
51
- };
52
- Object.defineProperty(exports, "__esModule", { value: true });
53
- var knowledge_widget_adapters_1 = require("@telia-ace/knowledge-widget-adapters");
54
- var widget_ui_1 = require("@telia-ace/widget-ui");
55
- var react_1 = __importStar(require("react"));
56
- var ContactMethodItem = function (props) {
57
- var dispatch = (0, widget_ui_1.useDispatch)();
58
- var container = (0, widget_ui_1.useContainer)();
59
- var _a = __read((0, react_1.useState)(props.contactMethod.body), 2), body = _a[0], setBody = _a[1];
60
- (0, react_1.useEffect)(function () {
61
- var events = container.get('$widget').events;
62
- events.subscribe('form:validated', function (_event, _data) {
63
- // TODO: this is a due to props not being updated when props.contactMethod.body changes
64
- // perhaps there is a cleaner way of doing this
65
- setBody(props.contactMethod.body);
66
- });
67
- }, [container]);
68
- return (react_1.default.createElement(knowledge_widget_adapters_1.ContactMethod, __assign({ className: props.className, onClick: function () {
69
- dispatch('action', "".concat(props.contactMethod.id, "/").concat(props.type.toString(), "/").concat(props.contactMethod.title));
70
- // dispatch(
71
- // "expand",
72
- // `${props.contactMethod.id}/${props.type.toString()}`
73
- // );
74
- }, dispatch: dispatch }, props.contactMethod, { body: body, expanded: props.contactMethod.expanded })));
75
- };
76
- exports.default = ContactMethodItem;
22
+ export default ContactMethodItem;
@@ -1,41 +1,13 @@
1
- "use strict";
2
1
  var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
2
  if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
3
  return cooked;
5
4
  };
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 react_1 = __importStar(require("react"));
34
- var styled_components_1 = __importDefault(require("styled-components"));
35
- var contact_method_item_1 = __importDefault(require("./contact-method-item"));
5
+ import React, { Fragment } from 'react';
6
+ import styled from 'styled-components';
7
+ import ContactMethodItem from './contact-method-item';
36
8
  var ContactMethodList = function (props) {
37
- return (react_1.default.createElement(react_1.Fragment, null, props.contactMethodList.map(function (contactMethod) { return (react_1.default.createElement(StyledContactMethod, { key: contactMethod.id, type: props.type, contactMethod: contactMethod })); })));
9
+ return (React.createElement(Fragment, null, props.contactMethodList.map(function (contactMethod) { return (React.createElement(StyledContactMethod, { key: contactMethod.id, type: props.type, contactMethod: contactMethod, expanded: !!contactMethod.executeImmediately || undefined })); })));
38
10
  };
39
- var StyledContactMethod = (0, styled_components_1.default)(contact_method_item_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border-bottom: 1px solid rgb(239, 239, 239);\n padding: ", ";\n"], ["\n border-bottom: 1px solid rgb(239, 239, 239);\n padding: ", ";\n"])), function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.medium; });
40
- exports.default = ContactMethodList;
11
+ var StyledContactMethod = styled(ContactMethodItem)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border-bottom: 1px solid rgb(239, 239, 239);\n padding: ", ";\n"], ["\n border-bottom: 1px solid rgb(239, 239, 239);\n padding: ", ";\n"])), function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.medium; });
12
+ export default ContactMethodList;
41
13
  var templateObject_1;
@@ -1,38 +1,33 @@
1
- "use strict";
2
1
  var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
2
  if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
3
  return cooked;
5
4
  };
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_types_grid_1 = require("@telia-ace/knowledge-widget-types-grid");
11
- var react_1 = __importDefault(require("react"));
12
- var styled_components_1 = __importDefault(require("styled-components"));
13
- var contact_method_item_1 = __importDefault(require("./contact-method-item"));
14
- var contact_method_list_1 = __importDefault(require("./contact-method-list"));
5
+ import { DataType } from '@telia-ace/knowledge-widget-types-grid';
6
+ import React from 'react';
7
+ import styled from 'styled-components';
8
+ import ContactMethodItem from './contact-method-item';
9
+ import ContactMethodList from './contact-method-list';
15
10
  var ContactMethod = function (props) {
16
11
  var _a, _b;
17
12
  var type;
18
13
  var methodList;
19
14
  if (props.contactMethods && ((_a = props.contactMethods.contactMethods) === null || _a === void 0 ? void 0 : _a.length) > 0) {
20
- type = knowledge_widget_types_grid_1.DataType.ContactMethods;
15
+ type = DataType.ContactMethods;
21
16
  methodList = props.contactMethods.contactMethods;
22
17
  }
23
18
  else if (props.contactMethods.categories && ((_b = props.contactMethods.categories) === null || _b === void 0 ? void 0 : _b.length) > 0) {
24
- type = knowledge_widget_types_grid_1.DataType.ContactMethodCategories;
19
+ type = DataType.ContactMethodCategories;
25
20
  methodList = props.contactMethods.categories.filter(function (o) { return o.matches > 0; });
26
21
  }
27
22
  else {
28
- type = knowledge_widget_types_grid_1.DataType.ContactMethod;
23
+ type = DataType.ContactMethod;
29
24
  methodList = props.contactMethods;
30
25
  }
31
26
  if (!methodList.length) {
32
- return react_1.default.createElement(StyledContactMethodItem, { type: type, contactMethod: methodList });
27
+ return React.createElement(StyledContactMethodItem, { type: type, contactMethod: methodList });
33
28
  }
34
- return react_1.default.createElement(contact_method_list_1.default, { type: type, contactMethodList: methodList });
29
+ return React.createElement(ContactMethodList, { type: type, contactMethodList: methodList });
35
30
  };
36
- var StyledContactMethodItem = (0, styled_components_1.default)(contact_method_item_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n padding: ", ";\n"], ["\n padding: ", ";\n"])), function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.medium; });
37
- exports.default = ContactMethod;
31
+ var StyledContactMethodItem = styled(ContactMethodItem)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n padding: ", ";\n"], ["\n padding: ", ";\n"])), function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.medium; });
32
+ export default ContactMethod;
38
33
  var templateObject_1;
@@ -1,6 +1,7 @@
1
1
  export declare enum ServerEntryTypeEnum {
2
2
  Widget = 0,
3
3
  Text = 1,
4
- List = 2,
5
- Error = 3
4
+ Contact = 2,
5
+ List = 3,
6
+ Error = 4
6
7
  }