@monterosa/sdk-interact-kit 0.18.2-rc.4 → 0.18.3-rc.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.
- package/dist/index.cjs.js +106 -99
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm2017.js +28 -48
- package/dist/index.esm2017.js.map +1 -1
- package/dist/index.esm5.js +106 -98
- package/dist/index.esm5.js.map +1 -1
- package/dist/src/core/element/factory.d.ts +3 -3
- package/dist/src/core/project/api.d.ts +1 -5
- package/package.json +10 -6
- package/dist/src/core/project/internal.d.ts +0 -12
package/dist/index.esm5.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { login as login$1, getConnect as getConnect$1, disconnect, unsubscribe as unsubscribe$1, send, ConnState, connect, subscribe as subscribe$1, onConnected } from '@monterosa/sdk-connect-kit';
|
|
2
|
-
import { Emitter, memoizePromise, subscribe as subscribe$2, now, onTick,
|
|
2
|
+
import { Emitter, memoizePromise, subscribe as subscribe$2, now, onTick, calculatePercentage, getErrorMessage, createError } from '@monterosa/sdk-util';
|
|
3
3
|
import { getSdk } from '@monterosa/sdk-core';
|
|
4
|
+
import { fetchSettings } from '@monterosa/sdk-interact-interop';
|
|
5
|
+
import { storageRead, storageWrite } from '@monterosa/sdk-storage-kit';
|
|
4
6
|
|
|
5
7
|
/*! *****************************************************************************
|
|
6
8
|
Copyright (c) Microsoft Corporation.
|
|
@@ -493,33 +495,6 @@ function onConnectionHealthState(connectionHealth, callback) {
|
|
|
493
495
|
return subscribe$2(connectionHealth, 'state', callback);
|
|
494
496
|
}
|
|
495
497
|
|
|
496
|
-
/**
|
|
497
|
-
* @license
|
|
498
|
-
* internal.ts
|
|
499
|
-
* interact-kit
|
|
500
|
-
*
|
|
501
|
-
* Created by Rygor Kharytanovich <rygor@monterosa.co.uk> on 2022-02-15
|
|
502
|
-
* Copyright © 2022 Monterosa. All rights reserved.
|
|
503
|
-
*
|
|
504
|
-
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
505
|
-
*/
|
|
506
|
-
function fetchSettings(host, id) {
|
|
507
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
508
|
-
var response, data;
|
|
509
|
-
return __generator(this, function (_a) {
|
|
510
|
-
switch (_a.label) {
|
|
511
|
-
case 0: return [4 /*yield*/, fetch("https://" + host + "/projects/" + id.substring(0, 2) + "/" + id + "/settings.json")];
|
|
512
|
-
case 1:
|
|
513
|
-
response = _a.sent();
|
|
514
|
-
return [4 /*yield*/, response.json()];
|
|
515
|
-
case 2:
|
|
516
|
-
data = _a.sent();
|
|
517
|
-
return [2 /*return*/, data];
|
|
518
|
-
}
|
|
519
|
-
});
|
|
520
|
-
});
|
|
521
|
-
}
|
|
522
|
-
|
|
523
498
|
/**
|
|
524
499
|
* @license
|
|
525
500
|
* constants.ts
|
|
@@ -953,25 +928,6 @@ function getProject(sdk) {
|
|
|
953
928
|
if (sdk === void 0) { sdk = getSdk(); }
|
|
954
929
|
return getProjectMemoized(sdk);
|
|
955
930
|
}
|
|
956
|
-
/**
|
|
957
|
-
* @internal
|
|
958
|
-
*/
|
|
959
|
-
function fetchListings(host, projectId) {
|
|
960
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
961
|
-
var response, data;
|
|
962
|
-
return __generator(this, function (_a) {
|
|
963
|
-
switch (_a.label) {
|
|
964
|
-
case 0: return [4 /*yield*/, fetch("https://" + host + "/projects/" + projectId.substring(0, 2) + "/" + projectId + "/listings.json")];
|
|
965
|
-
case 1:
|
|
966
|
-
response = _a.sent();
|
|
967
|
-
return [4 /*yield*/, response.json()];
|
|
968
|
-
case 2:
|
|
969
|
-
data = (_a.sent());
|
|
970
|
-
return [2 /*return*/, data];
|
|
971
|
-
}
|
|
972
|
-
});
|
|
973
|
-
});
|
|
974
|
-
}
|
|
975
931
|
/**
|
|
976
932
|
* Adds an observer for when {@link InteractProject.fields | project fields}
|
|
977
933
|
* are updated
|
|
@@ -2186,15 +2142,24 @@ var ElementImpl = /** @class */ (function (_super) {
|
|
|
2186
2142
|
* More details on the license can be found at https://www.monterosa.co/sdk/license
|
|
2187
2143
|
*/
|
|
2188
2144
|
var elements = new Map();
|
|
2189
|
-
var storageAvailable = checkAvailability();
|
|
2190
2145
|
function buildElement(options, context) {
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2146
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2147
|
+
var element;
|
|
2148
|
+
return __generator(this, function (_a) {
|
|
2149
|
+
switch (_a.label) {
|
|
2150
|
+
case 0:
|
|
2151
|
+
if (elements.has(options.id)) {
|
|
2152
|
+
return [2 /*return*/, elements.get(options.id)];
|
|
2153
|
+
}
|
|
2154
|
+
element = new ElementImpl(options, context);
|
|
2155
|
+
return [4 /*yield*/, restoreAnswer(element)];
|
|
2156
|
+
case 1:
|
|
2157
|
+
_a.sent();
|
|
2158
|
+
elements.set(element.id, element);
|
|
2159
|
+
return [2 /*return*/, element];
|
|
2160
|
+
}
|
|
2161
|
+
});
|
|
2162
|
+
});
|
|
2198
2163
|
}
|
|
2199
2164
|
function getElementByPolld(pollId) {
|
|
2200
2165
|
return Array.from(elements.values()).find(function (element) { return element.pollId === pollId; });
|
|
@@ -2293,19 +2258,21 @@ function handleCreateMessage(message) {
|
|
|
2293
2258
|
if (event === null) {
|
|
2294
2259
|
return [2 /*return*/];
|
|
2295
2260
|
}
|
|
2296
|
-
if (elements.has(options.id))
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
}
|
|
2302
|
-
}
|
|
2303
|
-
else {
|
|
2304
|
-
context = __assign(__assign({}, event.context), { event: event });
|
|
2305
|
-
element = buildElement(options, context);
|
|
2306
|
-
event.emit('publish', element);
|
|
2261
|
+
if (!elements.has(options.id)) return [3 /*break*/, 2];
|
|
2262
|
+
element = elements.get(options.id);
|
|
2263
|
+
if (options.updated_at > element.updatedAt) {
|
|
2264
|
+
element.update(options);
|
|
2265
|
+
event.emit('update', element);
|
|
2307
2266
|
}
|
|
2308
|
-
return [
|
|
2267
|
+
return [3 /*break*/, 4];
|
|
2268
|
+
case 2:
|
|
2269
|
+
context = __assign(__assign({}, event.context), { event: event });
|
|
2270
|
+
return [4 /*yield*/, buildElement(options, context)];
|
|
2271
|
+
case 3:
|
|
2272
|
+
element = _a.sent();
|
|
2273
|
+
event.emit('publish', element);
|
|
2274
|
+
_a.label = 4;
|
|
2275
|
+
case 4: return [2 /*return*/];
|
|
2309
2276
|
}
|
|
2310
2277
|
});
|
|
2311
2278
|
});
|
|
@@ -2358,28 +2325,55 @@ function handleRevealMessage(message) {
|
|
|
2358
2325
|
element.context.event.emit('update', element);
|
|
2359
2326
|
}
|
|
2360
2327
|
function handleEventHistory(history) {
|
|
2328
|
+
var e_1, _a;
|
|
2361
2329
|
return __awaiter(this, void 0, void 0, function () {
|
|
2362
|
-
var event, context,
|
|
2363
|
-
return __generator(this, function (
|
|
2364
|
-
switch (
|
|
2330
|
+
var event, context, _b, _c, snapshot, e_1_1;
|
|
2331
|
+
return __generator(this, function (_d) {
|
|
2332
|
+
switch (_d.label) {
|
|
2365
2333
|
case 0:
|
|
2366
2334
|
if (history.timeline.length === 0) {
|
|
2367
2335
|
return [2 /*return*/];
|
|
2368
2336
|
}
|
|
2369
2337
|
return [4 /*yield*/, getEvent(history.config.id)];
|
|
2370
2338
|
case 1:
|
|
2371
|
-
event =
|
|
2339
|
+
event = _d.sent();
|
|
2372
2340
|
if (event === null) {
|
|
2373
2341
|
return [2 /*return*/];
|
|
2374
2342
|
}
|
|
2375
2343
|
context = __assign(__assign({}, event.context), { event: event });
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2344
|
+
_d.label = 2;
|
|
2345
|
+
case 2:
|
|
2346
|
+
_d.trys.push([2, 8, 9, 14]);
|
|
2347
|
+
_b = __asyncValues(history.timeline);
|
|
2348
|
+
_d.label = 3;
|
|
2349
|
+
case 3: return [4 /*yield*/, _b.next()];
|
|
2350
|
+
case 4:
|
|
2351
|
+
if (!(_c = _d.sent(), !_c.done)) return [3 /*break*/, 7];
|
|
2352
|
+
snapshot = _c.value;
|
|
2353
|
+
if (!!elements.has(snapshot.id)) return [3 /*break*/, 6];
|
|
2354
|
+
return [4 /*yield*/, buildElement(snapshot, context)];
|
|
2355
|
+
case 5:
|
|
2356
|
+
_d.sent();
|
|
2357
|
+
_d.label = 6;
|
|
2358
|
+
case 6: return [3 /*break*/, 3];
|
|
2359
|
+
case 7: return [3 /*break*/, 14];
|
|
2360
|
+
case 8:
|
|
2361
|
+
e_1_1 = _d.sent();
|
|
2362
|
+
e_1 = { error: e_1_1 };
|
|
2363
|
+
return [3 /*break*/, 14];
|
|
2364
|
+
case 9:
|
|
2365
|
+
_d.trys.push([9, , 12, 13]);
|
|
2366
|
+
if (!(_c && !_c.done && (_a = _b.return))) return [3 /*break*/, 11];
|
|
2367
|
+
return [4 /*yield*/, _a.call(_b)];
|
|
2368
|
+
case 10:
|
|
2369
|
+
_d.sent();
|
|
2370
|
+
_d.label = 11;
|
|
2371
|
+
case 11: return [3 /*break*/, 13];
|
|
2372
|
+
case 12:
|
|
2373
|
+
if (e_1) throw e_1.error;
|
|
2374
|
+
return [7 /*endfinally*/];
|
|
2375
|
+
case 13: return [7 /*endfinally*/];
|
|
2376
|
+
case 14: return [2 /*return*/];
|
|
2383
2377
|
}
|
|
2384
2378
|
});
|
|
2385
2379
|
});
|
|
@@ -2408,27 +2402,41 @@ function sendAnswer(element, userAnswer) {
|
|
|
2408
2402
|
});
|
|
2409
2403
|
}
|
|
2410
2404
|
function storeAnswer(element, userAnswer) {
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2405
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2406
|
+
var err_1;
|
|
2407
|
+
return __generator(this, function (_a) {
|
|
2408
|
+
switch (_a.label) {
|
|
2409
|
+
case 0:
|
|
2410
|
+
_a.trys.push([0, 2, , 3]);
|
|
2411
|
+
element.userAnswer = userAnswer;
|
|
2412
|
+
return [4 /*yield*/, storageWrite("element_" + element.id + "_vote", JSON.stringify(userAnswer))];
|
|
2413
|
+
case 1:
|
|
2414
|
+
_a.sent();
|
|
2415
|
+
return [3 /*break*/, 3];
|
|
2416
|
+
case 2:
|
|
2417
|
+
err_1 = _a.sent();
|
|
2418
|
+
console.warn("Failed to store user answer: " + getErrorMessage(err_1));
|
|
2419
|
+
return [3 /*break*/, 3];
|
|
2420
|
+
case 3: return [2 /*return*/];
|
|
2421
|
+
}
|
|
2422
|
+
});
|
|
2423
|
+
});
|
|
2424
2424
|
}
|
|
2425
2425
|
function restoreAnswer(element) {
|
|
2426
|
-
|
|
2427
|
-
var userAnswer
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2426
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2427
|
+
var userAnswer;
|
|
2428
|
+
return __generator(this, function (_a) {
|
|
2429
|
+
switch (_a.label) {
|
|
2430
|
+
case 0: return [4 /*yield*/, storageRead("element_" + element.id + "_vote")];
|
|
2431
|
+
case 1:
|
|
2432
|
+
userAnswer = _a.sent();
|
|
2433
|
+
if (userAnswer !== null) {
|
|
2434
|
+
element.userAnswer = Answer.fromJSON(userAnswer);
|
|
2435
|
+
}
|
|
2436
|
+
return [2 /*return*/];
|
|
2437
|
+
}
|
|
2438
|
+
});
|
|
2439
|
+
});
|
|
2432
2440
|
}
|
|
2433
2441
|
|
|
2434
2442
|
/**
|
|
@@ -2618,5 +2626,5 @@ function onElementRevoked(event, callback) {
|
|
|
2618
2626
|
return subscribe$2(event, 'revoke', callback);
|
|
2619
2627
|
}
|
|
2620
2628
|
|
|
2621
|
-
export { Answer, AnswerError, Channel, ConnectionHealthState, ElementImpl, ElementState, ElementType, EventImpl, EventState, Klass, ProjectImpl, State, answer,
|
|
2629
|
+
export { Answer, AnswerError, Channel, ConnectionHealthState, ElementImpl, ElementState, ElementType, EventImpl, EventState, Klass, ProjectImpl, State, answer, getConnect, getConnectionHealth, getElement, getElementMemoized, getElements, getElementsMemoized, getEvent, getEventMemoized, getEvents, getEventsMemoized, getProject, getProjectMemoized, login, onConnectionHealthState, onElementPublished, onElementResults, onElementRevoked, onElementStateChanged, onElementUpdated, onEventAdded, onEventPublished, onEventRemoved, onEventState, onEventUpdated, onProjectFieldsUpdated, onProjectListingsUpdated, validateAnswer };
|
|
2622
2630
|
//# sourceMappingURL=index.esm5.js.map
|