@telia-ace/knowledge-widget-bot-provider 0.0.1-alpha.4 → 0.0.1-alpha.40
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.
- package/lib/client/chat.client.d.ts +3 -2
- package/lib/client/chat.client.js +98 -33
- package/lib/client/contact-method.client.d.ts +9 -1
- package/lib/client/contact-method.client.js +48 -32
- package/lib/client/http.client.d.ts +11 -7
- package/lib/client/http.client.js +138 -41
- package/lib/client/middleware.client.d.ts +4 -3
- package/lib/client/middleware.client.js +100 -35
- package/lib/contract/custom-component/contact-method-item.js +12 -34
- package/lib/contract/custom-component/contact-method-list.js +6 -34
- package/lib/contract/custom-component/contact-method.js +12 -17
- package/lib/contract/enum/server-entry-type.enum.d.ts +3 -2
- package/lib/contract/enum/server-entry-type.enum.js +5 -7
- package/lib/contract/model/conversation-api-model/list.model.js +1 -2
- package/lib/contract/model/conversation-api-model/message.model.js +1 -2
- package/lib/contract/model/http/action.model.js +1 -2
- package/lib/contract/model/http/client-action.model.js +1 -2
- package/lib/contract/model/http/client-envelope.model.js +1 -2
- package/lib/contract/model/http/connect-options.model.js +1 -2
- package/lib/contract/model/http/global-state.model.js +1 -2
- package/lib/contract/model/http/http-client-options.model.js +1 -2
- package/lib/contract/model/http/server-entry.model.js +1 -2
- package/lib/contract/model/http/server-envelope.model.js +1 -2
- package/lib/contract/model/middleware/aggregator-state.model.js +1 -2
- package/lib/contract/model/shared/loose-object.model.js +1 -2
- package/lib/helper/chat.helper.js +1 -4
- package/lib/helper/http.helper.d.ts +1 -1
- package/lib/helper/http.helper.js +8 -13
- package/lib/helper/middleware.helper.d.ts +1 -1
- package/lib/helper/middleware.helper.js +7 -11
- package/lib/helper/store.helper.d.ts +4 -3
- package/lib/helper/store.helper.js +105 -16
- package/lib/index.js +2 -8
- package/lib/interface/entry.interface.d.ts +6 -3
- package/lib/interface/entry.interface.js +176 -57
- package/lib/interface/middleware/paging.interface.js +3 -5
- package/lib/interface/middleware/processor.interface.js +1 -3
- package/lib/plugin.d.ts +2 -2
- package/lib/plugin.js +73 -90
- package/lib/utils.d.ts +1 -0
- package/lib/utils.js +5 -0
- package/lib-esm/client/chat.client.d.ts +3 -2
- package/lib-esm/client/chat.client.js +81 -11
- package/lib-esm/client/contact-method.client.d.ts +9 -1
- package/lib-esm/client/contact-method.client.js +28 -6
- package/lib-esm/client/http.client.d.ts +11 -7
- package/lib-esm/client/http.client.js +125 -22
- package/lib-esm/client/middleware.client.d.ts +4 -3
- package/lib-esm/client/middleware.client.js +89 -19
- package/lib-esm/contract/custom-component/contact-method-item.js +4 -1
- package/lib-esm/contract/enum/server-entry-type.enum.d.ts +3 -2
- package/lib-esm/contract/enum/server-entry-type.enum.js +3 -2
- package/lib-esm/helper/http.helper.d.ts +1 -1
- package/lib-esm/helper/http.helper.js +7 -9
- package/lib-esm/helper/middleware.helper.d.ts +1 -1
- package/lib-esm/helper/middleware.helper.js +5 -6
- package/lib-esm/helper/store.helper.d.ts +4 -3
- package/lib-esm/helper/store.helper.js +103 -11
- package/lib-esm/interface/entry.interface.d.ts +6 -3
- package/lib-esm/interface/entry.interface.js +160 -39
- package/lib-esm/plugin.d.ts +2 -2
- package/lib-esm/plugin.js +66 -55
- package/lib-esm/utils.d.ts +1 -0
- package/lib-esm/utils.js +5 -0
- package/package.json +45 -45
- package/lib/interface/middleware/contact-expanded.interface.d.ts +0 -0
- package/lib/interface/middleware/contact-expanded.interface.js +0 -50
- package/lib/interface/middleware/legacy-contact-methods.interface.d.ts +0 -0
- package/lib/interface/middleware/legacy-contact-methods.interface.js +0 -394
|
@@ -1,56 +1,137 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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:
|
|
16
|
-
clientId:
|
|
48
|
+
credentials: HttpHelper.getCredentials(),
|
|
49
|
+
clientId: clientId,
|
|
17
50
|
};
|
|
18
51
|
this.apiEndpoint = endpoint;
|
|
19
52
|
this.projectionPath = window.location.href;
|
|
20
|
-
this.endpointUrl =
|
|
53
|
+
this.endpointUrl = HttpHelper.combineUrl(this.projectionPath, 'conversations');
|
|
21
54
|
this.clientId = this.options.clientId;
|
|
22
|
-
this.middlewareClient = new
|
|
23
|
-
this.chatClient = new
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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({},
|
|
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:
|
|
89
|
-
localState:
|
|
90
|
-
globalState:
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
return (
|
|
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
|
-
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
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
|
-
|
|
26
|
-
|
|
53
|
+
MiddlewareHelper.setContainer(container);
|
|
54
|
+
MiddlewareHelper.setWidget(widget);
|
|
27
55
|
};
|
|
28
|
-
// called on all
|
|
56
|
+
// called on all standard scenarios like actions and user messages
|
|
29
57
|
MiddlewareClient.prototype.handleEntries = function (entries, action) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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 (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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(
|
|
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
|
-
|
|
125
|
+
export default MiddlewareClient;
|
|
@@ -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,29 +9,6 @@ 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;
|
|
35
|
-
};
|
|
36
12
|
var __read = (this && this.__read) || function (o, n) {
|
|
37
13
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
38
14
|
if (!m) return o;
|
|
@@ -49,15 +25,17 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
49
25
|
}
|
|
50
26
|
return ar;
|
|
51
27
|
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
var react_1 = __importStar(require("react"));
|
|
28
|
+
import { ContactMethod as GenericContactMethod } from '@telia-ace/knowledge-widget-adapters';
|
|
29
|
+
import { useContainer, useDispatch } from '@telia-ace/knowledge-widget-ui';
|
|
30
|
+
import React, { useEffect, useState } from 'react';
|
|
56
31
|
var ContactMethodItem = function (props) {
|
|
57
|
-
var dispatch =
|
|
58
|
-
var container =
|
|
59
|
-
var _a = __read(
|
|
60
|
-
|
|
32
|
+
var dispatch = useDispatch();
|
|
33
|
+
var container = useContainer();
|
|
34
|
+
var _a = __read(useState(props.contactMethod.body), 2), body = _a[0], setBody = _a[1];
|
|
35
|
+
useEffect(function () {
|
|
36
|
+
if (!container || !container.get('$widget')) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
61
39
|
var events = container.get('$widget').events;
|
|
62
40
|
events.subscribe('form:validated', function (_event, _data) {
|
|
63
41
|
// TODO: this is a due to props not being updated when props.contactMethod.body changes
|
|
@@ -65,7 +43,7 @@ var ContactMethodItem = function (props) {
|
|
|
65
43
|
setBody(props.contactMethod.body);
|
|
66
44
|
});
|
|
67
45
|
}, [container]);
|
|
68
|
-
return (
|
|
46
|
+
return (React.createElement(GenericContactMethod, __assign({ className: props.className, onClick: function () {
|
|
69
47
|
dispatch('action', "".concat(props.contactMethod.id, "/").concat(props.type.toString(), "/").concat(props.contactMethod.title));
|
|
70
48
|
// dispatch(
|
|
71
49
|
// "expand",
|
|
@@ -73,4 +51,4 @@ var ContactMethodItem = function (props) {
|
|
|
73
51
|
// );
|
|
74
52
|
}, dispatch: dispatch }, props.contactMethod, { body: body, expanded: props.contactMethod.expanded })));
|
|
75
53
|
};
|
|
76
|
-
|
|
54
|
+
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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 (
|
|
9
|
+
return (React.createElement(Fragment, null, props.contactMethodList.map(function (contactMethod) { return (React.createElement(StyledContactMethod, { key: contactMethod.id, type: props.type, contactMethod: contactMethod })); })));
|
|
38
10
|
};
|
|
39
|
-
var StyledContactMethod = (
|
|
40
|
-
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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 =
|
|
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 =
|
|
19
|
+
type = DataType.ContactMethodCategories;
|
|
25
20
|
methodList = props.contactMethods.categories.filter(function (o) { return o.matches > 0; });
|
|
26
21
|
}
|
|
27
22
|
else {
|
|
28
|
-
type =
|
|
23
|
+
type = DataType.ContactMethod;
|
|
29
24
|
methodList = props.contactMethods;
|
|
30
25
|
}
|
|
31
26
|
if (!methodList.length) {
|
|
32
|
-
return
|
|
27
|
+
return React.createElement(StyledContactMethodItem, { type: type, contactMethod: methodList });
|
|
33
28
|
}
|
|
34
|
-
return
|
|
29
|
+
return React.createElement(ContactMethodList, { type: type, contactMethodList: methodList });
|
|
35
30
|
};
|
|
36
|
-
var StyledContactMethodItem = (
|
|
37
|
-
|
|
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,10 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ServerEntryTypeEnum = void 0;
|
|
4
|
-
var ServerEntryTypeEnum;
|
|
1
|
+
export var ServerEntryTypeEnum;
|
|
5
2
|
(function (ServerEntryTypeEnum) {
|
|
6
3
|
ServerEntryTypeEnum[ServerEntryTypeEnum["Widget"] = 0] = "Widget";
|
|
7
4
|
ServerEntryTypeEnum[ServerEntryTypeEnum["Text"] = 1] = "Text";
|
|
8
|
-
ServerEntryTypeEnum[ServerEntryTypeEnum["
|
|
9
|
-
ServerEntryTypeEnum[ServerEntryTypeEnum["
|
|
10
|
-
|
|
5
|
+
ServerEntryTypeEnum[ServerEntryTypeEnum["Contact"] = 2] = "Contact";
|
|
6
|
+
ServerEntryTypeEnum[ServerEntryTypeEnum["List"] = 3] = "List";
|
|
7
|
+
ServerEntryTypeEnum[ServerEntryTypeEnum["Error"] = 4] = "Error";
|
|
8
|
+
})(ServerEntryTypeEnum || (ServerEntryTypeEnum = {}));
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|