@screeb/sdk-angular 0.1.10 → 0.1.12
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/screeb-sdk-angular/esm2022/lib/constants.mjs +2 -2
- package/dist/screeb-sdk-angular/esm2022/lib/screeb-config.mjs +4 -4
- package/dist/screeb-sdk-angular/esm2022/lib/screeb.mjs +47 -8
- package/dist/screeb-sdk-angular/esm2022/lib/screeb.module.mjs +5 -5
- package/dist/screeb-sdk-angular/fesm2022/screeb-sdk-angular.mjs +54 -15
- package/dist/screeb-sdk-angular/fesm2022/screeb-sdk-angular.mjs.map +1 -1
- package/dist/screeb-sdk-angular/lib/screeb.d.ts +35 -2
- package/docs/classes/Screeb.md +100 -33
- package/docs/classes/ScreebConfig.md +5 -1
- package/docs/classes/ScreebModule.md +7 -3
- package/package.json +2 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export default { version: "0.1.
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export default { version: "0.1.12" };
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NyZWViLXNkay1hbmd1bGFyL3NyYy9saWIvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7IHZlcnNpb246IFwiMC4xLjEyXCIgfTtcbiJdfQ==
|
|
@@ -2,11 +2,11 @@ import { Injectable } from "@angular/core";
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
/** Configuration of Screeb module */
|
|
4
4
|
export class ScreebConfig {
|
|
5
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
6
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
5
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebConfig, providedIn: "root" }); }
|
|
7
7
|
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebConfig, decorators: [{
|
|
9
9
|
type: Injectable,
|
|
10
10
|
args: [{ providedIn: "root" }]
|
|
11
11
|
}] });
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWViLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NjcmVlYi1zZGstYW5ndWxhci9zcmMvbGliL3NjcmVlYi1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MscUNBQXFDO0FBRXJDLE1BQU0sT0FBTyxZQUFZO2tJQUFaLFlBQVk7c0lBQVosWUFBWSxjQURDLE1BQU07OzRGQUNuQixZQUFZO2tCQUR4QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSG9va3MsIFByb3BlcnR5UmVjb3JkLCBTY3JlZWJPcHRpb25zIH0gZnJvbSBcIkBzY3JlZWIvc2RrLWJyb3dzZXJcIjtcblxuLyoqIENvbmZpZ3VyYXRpb24gb2YgU2NyZWViIG1vZHVsZSAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxuZXhwb3J0IGNsYXNzIFNjcmVlYkNvbmZpZyB7XG4gIC8qKiBZb3VyIHdlYnNpdGUvY2hhbm5lbCBpZC4gKi9cbiAgd2Vic2l0ZUlkPzogc3RyaW5nO1xuICAvKiogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHlvdXIgdXNlci4gKi9cbiAgdXNlcklkPzogc3RyaW5nO1xuICAvKiogVGhlIHByb3BlcnRpZXMgb2YgeW91ciB1c2VyLiAqL1xuICB1c2VyUHJvcGVydGllcz86IFByb3BlcnR5UmVjb3JkO1xuICAvKiogSG9va3MgdG8gZGVmaW5lIGNhbGxiYWNrIGZvciB2YXJpb3VzIGV2ZW50ICovXG4gIGhvb2tzPzogSG9va3M7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgU2NyZWViIHNob3VsZCBiZSBhdXRvbWF0aWNhbGx5IGxvYWRlZC5cbiAgICogVGhpcyB3aWxsIHBpbmcgdG8gdGhlIFNjcmVlYiBzZXJ2ZXJzLlxuICAgKlxuICAgKiBAcmVtYXJrcyBpZiBgdHJ1ZWAsICdsb2FkJyBkb2VzIG5vdCBuZWVkIHRvIGJlIGNhbGxlZCBtYW51YWxseS4gQ2FuIGJlIHVzZWQgZm9yIG11bHRpc3RhZ2VkIGVudmlyb25tZW50c1xuICAgKi9cbiAgc2hvdWxkTG9hZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgU2NyZWViIHNob3VsZCBiZSBhdXRvbWF0aWNhbGx5IGluaXRpYWxpemVkLlxuICAgKlxuICAgKiBAcmVtYXJrcyBpZiBgdHJ1ZWAsICdpbml0JyBkb2VzIG5vdCBuZWVkIHRvIGJlIGNhbGxlZCBtYW51YWxseVxuICAgKiAqL1xuICBhdXRvSW5pdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTY3JlZWIgdGFnIGluaXRpYWxpemF0aW9uIG9wdGlvbnMuXG4gICAqXG4gICAqIEByZW1hcmtzIHRoaXMgaXMgdXNlZCBpcyByZWFsbHkgcGFydGljdWxhciBjYXNlcywgaGFuZGxlIHdpdGggY2FyZS5cbiAgICogKi9cbiAgb3B0aW9ucz86IFNjcmVlYk9wdGlvbnM7XG59XG4iXX0=
|
|
@@ -278,12 +278,49 @@ export class Screeb {
|
|
|
278
278
|
* version: "1.0.0",
|
|
279
279
|
* onSurveyShowed: (payload) => console.log("Survey showed", payload),
|
|
280
280
|
* },
|
|
281
|
+
* "en"
|
|
281
282
|
* );
|
|
282
283
|
* ```
|
|
283
284
|
*/
|
|
284
|
-
async surveyStart(surveyId, allowMultipleResponses, hiddenFields, hooks) {
|
|
285
|
+
async surveyStart(surveyId, allowMultipleResponses, hiddenFields, hooks, language) {
|
|
285
286
|
await this.ensureScreeb("surveyStart");
|
|
286
|
-
return _Screeb.surveyStart(surveyId, allowMultipleResponses, hiddenFields, hooks);
|
|
287
|
+
return _Screeb.surveyStart(surveyId, allowMultipleResponses, hiddenFields, hooks, language);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Interrupts a running message.
|
|
291
|
+
*
|
|
292
|
+
* @example
|
|
293
|
+
* ```ts
|
|
294
|
+
* this.screeb.messageClose();
|
|
295
|
+
* ```
|
|
296
|
+
*/
|
|
297
|
+
async messageClose() {
|
|
298
|
+
await this.ensureScreeb("messageClose");
|
|
299
|
+
return _Screeb.messageClose();
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Starts a message by its ID.
|
|
303
|
+
*
|
|
304
|
+
* @example
|
|
305
|
+
* ```ts
|
|
306
|
+
* this.screeb.messageStart(
|
|
307
|
+
* '<UUID>',
|
|
308
|
+
* false,
|
|
309
|
+
* {
|
|
310
|
+
* color: "green",
|
|
311
|
+
* article_id: 42
|
|
312
|
+
* },
|
|
313
|
+
* {
|
|
314
|
+
* version: "1.0.0",
|
|
315
|
+
* onMessageShowed: (payload) => console.log("Message showed", payload),
|
|
316
|
+
* },
|
|
317
|
+
* "en"
|
|
318
|
+
* );
|
|
319
|
+
* ```
|
|
320
|
+
*/
|
|
321
|
+
async messageStart(messageId, hiddenFields, hooks, language) {
|
|
322
|
+
await this.ensureScreeb("messageStart");
|
|
323
|
+
return _Screeb.messageStart(messageId, hiddenFields, hooks, language);
|
|
287
324
|
}
|
|
288
325
|
/**
|
|
289
326
|
* Forces a targeting check.
|
|
@@ -334,6 +371,7 @@ export class Screeb {
|
|
|
334
371
|
* - No more than 1000 attributes
|
|
335
372
|
* - Supported types for values: string, number, boolean and Date
|
|
336
373
|
* ```
|
|
374
|
+
* @param language Force a specific language for the tag. eg: 'en'. default: browser language.
|
|
337
375
|
*
|
|
338
376
|
* @example
|
|
339
377
|
* ```ts
|
|
@@ -351,13 +389,14 @@ export class Screeb {
|
|
|
351
389
|
* version: "1.0.0",
|
|
352
390
|
* onReady: (payload) => console.log("Screeb SDK is ready!", payload),
|
|
353
391
|
* },
|
|
392
|
+
* "en"
|
|
354
393
|
* );
|
|
355
394
|
* ```
|
|
356
395
|
*/
|
|
357
|
-
async init(websiteId, userId, userProperties, hooks) {
|
|
396
|
+
async init(websiteId, userId, userProperties, hooks, language) {
|
|
358
397
|
await this.ensureScreeb("init", true);
|
|
359
398
|
this.isInitialized = true;
|
|
360
|
-
return await _Screeb.init(websiteId, userId, userProperties, hooks);
|
|
399
|
+
return await _Screeb.init(websiteId, userId, userProperties, hooks, language);
|
|
361
400
|
}
|
|
362
401
|
/**
|
|
363
402
|
* Appends Screeb tag into your dom.
|
|
@@ -378,14 +417,14 @@ export class Screeb {
|
|
|
378
417
|
...options,
|
|
379
418
|
});
|
|
380
419
|
}
|
|
381
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
382
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
420
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Screeb, deps: [{ token: ScreebConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
421
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Screeb, providedIn: "root" }); }
|
|
383
422
|
}
|
|
384
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
423
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Screeb, decorators: [{
|
|
385
424
|
type: Injectable,
|
|
386
425
|
args: [{ providedIn: "root" }]
|
|
387
426
|
}], ctorParameters: function () { return [{ type: i1.ScreebConfig, decorators: [{
|
|
388
427
|
type: Inject,
|
|
389
428
|
args: [ScreebConfig]
|
|
390
429
|
}] }]; } });
|
|
391
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NyZWViLXNkay1hbmd1bGFyL3NyYy9saWIvc2NyZWViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxPQUFPLE1BQU0scUJBQXFCLENBQUM7QUFFL0MsT0FBTyxTQUFTLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRy9DLE1BQU0sT0FBTyxNQUFNO0lBR2pCLDBDQUEwQztJQUMxQyxZQUEwQyxNQUFvQjtRQUFwQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBSHRELGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBR21DLENBQUM7SUFFMUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFvQixFQUFFLFVBQVUsR0FBRyxLQUFLO1FBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtZQUNsRCxNQUFNLE9BQU8sR0FDWCx1R0FBdUcsQ0FBQztZQUUxRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUU1QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN0QyxNQUFNLE9BQU8sR0FBRztnQkFDZCxJQUFJLFlBQVksd0RBQXdEO2dCQUN4RSxzQ0FBc0MsWUFBWSxPQUFPO2dCQUN6RCw2REFBNkQ7YUFDOUQsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFWCxNQUFN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U0FBUyxDQUFDLE9BQU87WUFDN0IsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztpSUFoYlUsTUFBTSxrQkFJRyxZQUFZO3FJQUpyQixNQUFNLGNBRE8sTUFBTTs7MkZBQ25CLE1BQU07a0JBRGxCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFLbkIsTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCAqIGFzIF9TY3JlZWIgZnJvbSBcIkBzY3JlZWIvc2RrLWJyb3dzZXJcIjtcblxuaW1wb3J0IENPTlNUQU5UUyBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCAqIGFzIGxvZ2dlciBmcm9tIFwiLi9sb2dnZXJcIjtcbmltcG9ydCB7IFNjcmVlYkNvbmZpZyB9IGZyb20gXCIuL3NjcmVlYi1jb25maWdcIjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxuZXhwb3J0IGNsYXNzIFNjcmVlYiB7XG4gIHByaXZhdGUgaXNJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KFNjcmVlYkNvbmZpZykgcHJpdmF0ZSBjb25maWc6IFNjcmVlYkNvbmZpZykge31cblxuICBwcml2YXRlIGFzeW5jIGVuc3VyZVNjcmVlYihmdW5jdGlvbk5hbWU6IHN0cmluZywgb25seUxvYWRlZCA9IGZhbHNlKSB7XG4gICAgaWYgKCFfU2NyZWViLmlzTG9hZGVkKCkgJiYgIXRoaXMuY29uZmlnLnNob3VsZExvYWQpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPVxuICAgICAgICBcIlNjcmVlYiBpbnN0YW5jZSBpcyBub3QgbG9hZGVkIGJlY2F1c2UgYHNob3VsZExvYWRgIGlzIHNldCB0byBgZmFsc2VgIGluIGBTY3JlZWJNb2R1bGVgIGNvbmZpZ3VyYXRpb24uXCI7XG5cbiAgICAgIGxvZ2dlci5sb2coXCJ3YXJuXCIsIG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobWVzc2FnZSk7XG4gICAgfVxuICAgIGlmICghdGhpcy5pc0luaXRpYWxpemVkICYmICFvbmx5TG9hZGVkKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gW1xuICAgICAgICBgXCIke2Z1bmN0aW9uTmFtZX1cIiB3YXMgY2FsbGVkIGJ1dCBTY3JlZWIgaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkIHlldC4gYCxcbiAgICAgICAgYFBsZWFzZSBjYWxsICdpbml0JyBiZWZvcmUgY2FsbGluZyAnJHtmdW5jdGlvbk5hbWV9JyBvciBgLFxuICAgICAgICBcInNldCAnYXV0b0luaXQnIHRvIHRydWUgaW4gdGhlIGBTY3JlZWJNb2R1bGVgIGNvbmZpZ3VyYXRpb24uXCIsXG4gICAgICBdLmpvaW4oXCJcIik7XG5cbiAgICAgIGxvZ2dlci5sb2coXCJ3YXJuXCIsIG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobWVzc2FnZSk7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaHV0ZG93bnMgY3VycmVudCBTY3JlZWIgc2Vzc2lvbi5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIuY2xvc2UoKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xvc2UoKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJjbG9zZVwiKTtcblxuICAgIHJldHVybiBfU2NyZWViLmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogUHJpbnRzIHRoZSBhY3R1YWwgc3RhdGUgaW5mb3JtYXRpb24gb2YgU2NyZWViIHRhZy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIuZGVidWcoKTtcbiAgICogLy8gKioqKioqKioqKioqKioqKioqKiBTQ1JFRUIgU0VTU0lPTiBERUJVRyAqKioqKioqKioqKioqKioqKioqKipcbiAgICogLy8gU2NyZWViIGNoYW5uZWwgaWQ6IDxVVUlEPlxuICAgKiAvLyBTY3JlZWIgY2hhbm5lbCB0eXBlOiB3aWRnZXRcbiAgICogLy8gU2NyZWViIHJlc3BvbmRlbnQgaWQ6IDxVVUlEPlxuICAgKiAvLyBTY3JlZWIgc3VydmV5IGlkOiBub25lXG4gICAqIC8vIFNjcmVlYiByZXNwb25zZSBpZDogbm9uZVxuICAgKiAvL1xuICAgKiAvLyBTY3JlZWIgY3VycmVudCBzZXNzaW9uIHN0YXJ0OiBUaHUgTWF5IDA0IDIwMjMgMTY6NTM6NDkgR01UKzAyMDAgKENlbnRyYWwgRXVyb3BlYW4gU3VtbWVyIFRpbWUpXG4gICAqIC8vIFNjcmVlYiBjdXJyZW50IHNlc3Npb24gbGFzdCBhY3Rpdml0eTogVGh1IE1heSAwNCAyMDIzIDE3OjQxOjMwIEdNVCswMjAwIChDZW50cmFsIEV1cm9wZWFuIFN1bW1lciBUaW1lKVxuICAgKiAvL1xuICAgKiAvLyBTY3JlZWIgdGFyZ2V0aW5nIGVuZ2luZSBzdGF0dXM6IGRpc2FibGVkXG4gICAqIC8vIFNjcmVlYiB0YXJnZXRpbmcgZW5naW5lOiAzIHN1cnZleXNcbiAgICogLy9cbiAgICogLy8gRGV0ZWN0ZWQgcGxhdGZvcm06IGRlc2t0b3BcbiAgICogLy8gRGV0ZWN0ZWQgbG9jYWxlOiBlbi1HQlxuICAgKiAvLyBEZXRlY3RlZCB0aW1lem9uZTogLTEyMFxuICAgKiAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZWJ1ZygpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcImRlYnVnXCIpO1xuXG4gICAgcmV0dXJuIF9TY3JlZWIuZGVidWcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFja3MgYSB1c2VyIGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnROYW1lIFRoZSBldmVudCBuYW1lLlxuICAgKiBAcGFyYW0gZXZlbnRQcm9wZXJ0aWVzIFRoZSBwcm9wZXJ0aWVzIG9mIHlvdXIgZXZlbnQuXG4gICAqIGBgYHRleHQgUmVxdWlyZW1lbnRzOlxuICAgKiAgIC0gUHJvcGVydHkgbmFtZXMgbXVzdCBiZSBsaW1pdGVkIHRvIDEyOCBjaGFyYWN0ZXJzXG4gICAqICAgLSBObyBtb3JlIHRoYW4gMTAwMCBhdHRyaWJ1dGVzXG4gICAqICAgLSBTdXBwb3J0ZWQgdHlwZXMgZm9yIHZhbHVlczogc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4gYW5kIERhdGUuXG4gICAqIGBgYFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiB0aGlzLnNjcmVlYi5ldmVudFRyYWNrKFxuICAgKiAgIFwiUHJvZHVjdCBhZGRlZCB0byBjYXJ0XCIsXG4gICAqICAge1xuICAgKiAgICAgcHJvZHVjdF9uYW1lOiAnUmVkIGJpa2UgMjAyMScsXG4gICAqICAgICBjYXRlZ29yeTogJ3Nwb3J0JyxcbiAgICogICAgIGNvbG9yOiAncmVkJyxcbiAgICogICAgIHByaWNlOiAyOTksXG4gICAqICAgICBjb3VudDogMSxcbiAgICogICAgIHJlZmVyZW5jZTogJzJDRjA5M1RHMScsXG4gICAqICAgICBkZWxpdmVyeV9tZXRob2Q6ICdVUFMnLFxuICAgKiAgICAgdXNlcl9sb2dnZWQ6IGZhbHNlLFxuICAgKiAgICAgYWRkZWRfYXQ6IG5ldyBEYXRlKCksXG4gICAqICAgfVxuICAgKiApO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBldmVudFRyYWNrKFxuICAgIGV2ZW50TmFtZTogc3RyaW5nLFxuICAgIGV2ZW50UHJvcGVydGllcz86IF9TY3JlZWIuUHJvcGVydHlSZWNvcmRcbiAgKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJldmVudFRyYWNrXCIpO1xuXG4gICAgcmV0dXJuIF9TY3JlZWIuZXZlbnRUcmFjayhldmVudE5hbWUsIGV2ZW50UHJvcGVydGllcyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHRoZSBjdXJyZW50IHVzZXIgaWRlbnRpdHkuXG4gICAqIFdhcm5pbmc6IFJ1bm5pbmcgc3VydmV5cyB3aWxsIGJlIGNsb3NlZC5cbiAgICpcbiAgICogQHBhcmFtIHVzZXJJZCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgeW91ciB1c2VyLlxuICAgKiBAcGFyYW0gdXNlclByb3BlcnRpZXMgVGhlIHByb3BlcnRpZXMgb2YgeW91ciB1c2VyLlxuICAgKiBgYGB0ZXh0IFJlcXVpcmVtZW50czpcbiAgICogICAtIFByb3BlcnR5IG5hbWVzIG11c3QgYmUgbGltaXRlZCB0byAxMjggY2hhcmFjdGVyc1xuICAgKiAgIC0gTm8gbW9yZSB0aGFuIDEwMDAgYXR0cmlidXRlc1xuICAgKiAgIC0gU3VwcG9ydGVkIHR5cGVzIGZvciB2YWx1ZXM6IHN0cmluZywgbnVtYmVyLCBib29sZWFuIGFuZCBEYXRlLlxuICAgKiBgYGBcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIuaWRlbnRpdHkoXG4gICAqICAgXCI8eW91ci11c2VyLWlkPlwiLFxuICAgKiAgIHtcbiAgICogICAgIGZpcnN0bmFtZTogJzx1c2VyLWZpcnN0bmFtZT4nLFxuICAgKiAgICAgbGFzdG5hbWU6ICc8dXNlci1sYXN0bmFtZT4nLFxuICAgKiAgICAgcGxhbjogJzx1c2VyLXBsYW4+JyxcbiAgICogICAgIGxhc3Rfc2Vlbl9hdDogbmV3IERhdGUoKSxcbiAgICogICAgIGF1dGhlbnRpY2F0ZWQ6IHRydWVcbiAgICogICB9XG4gICAqICk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlkZW50aXR5KFxuICAgIHVzZXJJZDogc3RyaW5nLFxuICAgIHVzZXJQcm9wZXJ0aWVzPzogX1NjcmVlYi5Qcm9wZXJ0eVJlY29yZFxuICApIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcImlkZW50aXR5XCIpO1xuXG4gICAgcmV0dXJuIF9TY3JlZWIuaWRlbnRpdHkodXNlcklkLCB1c2VyUHJvcGVydGllcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IHVzZXIgaWRlbnRpdHkuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGNvbnNvbGUubG9nKGF3YWl0IHRoaXMuc2NyZWViLmlkZW50aXR5R2V0KCkpO1xuICAgKiAvLyB7XG4gICAqIC8vICAgY2hhbm5lbF9pZDogXCI8VVVJRD5cIixcbiAgICogLy8gICBhbm9ueW1vdXNfaWQ6IFwiPFVVSUQ+XCIsXG4gICAqIC8vICAgdXNlcl9pZDogXCI8VVVJRD5cIixcbiAgICogLy8gICBpc19yZWFkeTogdHJ1ZSxcbiAgICogLy8gICBzZXNzaW9uX2lkOiBcIjxVVUlEPlwiLFxuICAgKiAvLyAgIHNlc3Npb25fc3RhcnQ6IFwiMjAyMy0wNS0wNFQxNjozMDoxNS44ODJaXCIsXG4gICAqIC8vICAgc2Vzc2lvbl9lbmQ6IFwiMjAyMy0wNS0wNFQxNzowMjowOS4wODdaXCIsXG4gICAqIC8vIH1cbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaWRlbnRpdHlHZXQoKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJpZGVudGl0eUdldFwiKTtcblxuICAgIHJldHVybiBfU2NyZWViLmlkZW50aXR5R2V0KCk7XG4gIH1cblxuICAvKipcbiAgICogQXNzaWducyB0aGUgY3VycmVudCB1c2VyIHRvIGEgZ3JvdXAuXG4gICAqXG4gICAqIEBwYXJhbSBncm91cE5hbWVcbiAgICogQHBhcmFtIGdyb3VwVHlwZVxuICAgKiBAcGFyYW0gZ3JvdXBQcm9wZXJ0aWVzIFRoZSBwcm9wZXJ0aWVzIG9mIHlvdXIgdXNlciBncm91cC5cbiAgICogYGBgdGV4dCBSZXF1aXJlbWVudHM6XG4gICAqICAgLSBQcm9wZXJ0eSBuYW1lcyBtdXN0IGJlIGxpbWl0ZWQgdG8gMTI4IGNoYXJhY3RlcnNcbiAgICogICAtIE5vIG1vcmUgdGhhbiAxMDAwIGF0dHJpYnV0ZXNcbiAgICogICAtIFN1cHBvcnRlZCB0eXBlcyBmb3IgdmFsdWVzOiBzdHJpbmcsIG51bWJlciwgYm9vbGVhbiBhbmQgRGF0ZS5cbiAgICogYGBgXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLmlkZW50aXR5R3JvdXBBc3NpZ24oXG4gICAqICAgJ2NvbXBhbnknLFxuICAgKiAgICdBcHBsZScsXG4gICAqICAge1xuICAgKiAgICAgYWRkcmVzc19saW5lXzE6ICdBcHBsZSBDYW1wdXMnLFxuICAgKiAgICAgYWRkcmVzc19saW5lXzI6ICcxIEluZmluaXRlIExvb3AnLFxuICAgKiAgICAgY2l0eTogJ0N1cGVydGlubycsXG4gICAqICAgICB6aXBjb2RlOiA5NTAxNCxcbiAgICogICAgIHN0YXRlOiAnQ2FsaWZvcm5pYScsXG4gICAqICAgICBjb3VudHJ5OiAnVW5pdGVkIHN0YXRlcycsXG4gICAqICAgfVxuICAgKiApO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpZGVudGl0eUdyb3VwQXNzaWduKFxuICAgIGdyb3VwTmFtZTogc3RyaW5nLFxuICAgIGdyb3VwVHlwZT86IHN0cmluZyxcbiAgICBncm91cFByb3BlcnRpZXM/OiBfU2NyZWViLlByb3BlcnR5UmVjb3JkXG4gICkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwiaWRlbnRpdHlHcm91cEFzc2lnblwiKTtcblxuICAgIHJldHVybiBfU2NyZWViLmlkZW50aXR5R3JvdXBBc3NpZ24oZ3JvdXBOYW1lLCBncm91cFR5cGUsIGdyb3VwUHJvcGVydGllcyk7XG4gIH1cblxuICAvKipcbiAgICogVW5hc3NpZ25zIHRoZSBjdXJyZW50IHVzZXIgdG8gYSBncm91cC5cbiAgICpcbiAgICogQHBhcmFtIGdyb3VwTmFtZSBUaGUgbmFtZSBvZiB5b3VyIHVzZXIgZ3JvdXAuXG4gICAqIEBwYXJhbSBncm91cFR5cGUgVGhlIHR5cGUgb2YgeW91ciB1c2VyIGdyb3VwLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiB0aGlzLnNjcmVlYi5pZGVudGl0eUdyb3VwVW5hc3NpZ24oJ2NvbXBhbnknLCAnQXBwbGUnKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaWRlbnRpdHlHcm91cFVuYXNzaWduKGdyb3VwTmFtZTogc3RyaW5nLCBncm91cFR5cGU/OiBzdHJpbmcpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcImlkZW50aXR5R3JvdXBVbmFzc2lnblwiKTtcblxuICAgIHJldHVybiBfU2NyZWViLmlkZW50aXR5R3JvdXBVbmFzc2lnbihncm91cE5hbWUsIGdyb3VwVHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBwcm9wZXJ0aWVzIHRvIHRoZSBjdXJyZW50IHVzZXIgaWRlbnRpdHkuXG4gICAqXG4gICAqIEBwYXJhbSB1c2VyUHJvcGVydGllcyBUaGUgcHJvcGVydGllcyBvZiB5b3VyIHVzZXIuXG4gICAqIGBgYHRleHQgUmVxdWlyZW1lbnRzOlxuICAgKiAgIC0gUHJvcGVydHkgbmFtZXMgbXVzdCBiZSBsaW1pdGVkIHRvIDEyOCBjaGFyYWN0ZXJzXG4gICAqICAgLSBObyBtb3JlIHRoYW4gMTAwMCBhdHRyaWJ1dGVzXG4gICAqICAgLSBTdXBwb3J0ZWQgdHlwZXMgZm9yIHZhbHVlczogc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4gYW5kIERhdGUuXG4gICAqIGBgYFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiAvLyBTZXQgdXNlciBwcm9wZXJ0aWVzXG4gICAqIHRoaXMuc2NyZWViLmlkZW50aXR5UHJvcGVydGllcyhcbiAgICogICB7XG4gICAqICAgICBmaXJzdG5hbWU6ICc8dXNlci1maXJzdG5hbWU+JyxcbiAgICogICAgIGxhc3RuYW1lOiAnPHVzZXItbGFzdG5hbWU+JyxcbiAgICogICAgIHBsYW46ICc8dXNlci1wbGFuPicsXG4gICAqICAgICBsYXN0X3NlZW5fYXQ6IG5ldyBEYXRlKCksXG4gICAqICAgICBhdXRoZW50aWNhdGVkOiB0cnVlXG4gICAqICAgfVxuICAgKiApO1xuICAgKlxuICAgKiAvLyBEZWxldGUgdXNlciBwcm9wZXJ0eSA6IHNldCB2YWx1ZXMgdG8gbnVsbFxuICAgKiB0aGlzLnNjcmVlYi5pZGVudGl0eVByb3BlcnRpZXMoXG4gICAqICAge1xuICAgKiAgICAgYWdlOiBudWxsLFxuICAgKiAgICAgY29tcGFueTogbnVsbCxcbiAgICogICAgIGxvZ2dlZDogdHJ1ZSxcbiAgICogICB9XG4gICAqICk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlkZW50aXR5UHJvcGVydGllcyh1c2VyUHJvcGVydGllczogX1NjcmVlYi5Qcm9wZXJ0eVJlY29yZCkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwiaWRlbnRpdHlQcm9wZXJ0aWVzXCIpO1xuXG4gICAgcmV0dXJuIF9TY3JlZWIuaWRlbnRpdHlQcm9wZXJ0aWVzKHVzZXJQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGN1cnJlbnQgdXNlciBpZGVudGl0eS5cbiAgICogV2FybmluZzogVGhpcyBjb21tYW5kIG11c3QgYmUgY2FsbGVkIG9ubHkgb25jZSwgc2luY2UgaXQgY3JlYXRlcyBhIG5ldyBpZGVudGl0eSBvbiBTY3JlZWIgc2lkZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIuaWRlbnRpdHlSZXNldCgpO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpZGVudGl0eVJlc2V0KCkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwiaWRlbnRpdHlSZXNldFwiKTtcblxuICAgIHJldHVybiBfU2NyZWViLmlkZW50aXR5UmVzZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcnJ1cHRzIGEgcnVubmluZyBzdXJ2ZXkuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLnN1cnZleUNsb3NlKCk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHN1cnZleUNsb3NlKCkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwic3VydmV5Q2xvc2VcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5zdXJ2ZXlDbG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyBhIHN1cnZleSBieSBpdHMgSUQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLnN1cnZleVN0YXJ0KFxuICAgKiAgICc8VVVJRD4nLFxuICAgKiAgIGZhbHNlLFxuICAgKiAgIHtcbiAgICogICAgIGNvbG9yOiBcImdyZWVuXCIsXG4gICAqICAgICBhcnRpY2xlX2lkOiA0MlxuICAgKiAgIH0sXG4gICAqICAge1xuICAgKiAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgKiAgICAgb25TdXJ2ZXlTaG93ZWQ6IChwYXlsb2FkKSA9PiBjb25zb2xlLmxvZyhcIlN1cnZleSBzaG93ZWRcIiwgcGF5bG9hZCksXG4gICAqICAgfSxcbiAgICogKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc3VydmV5U3RhcnQoXG4gICAgc3VydmV5SWQ6IHN0cmluZyxcbiAgICBhbGxvd011bHRpcGxlUmVzcG9uc2VzOiBib29sZWFuLFxuICAgIGhpZGRlbkZpZWxkczogX1NjcmVlYi5Qcm9wZXJ0eVJlY29yZCxcbiAgICBob29rcz86IF9TY3JlZWIuSG9va3NcbiAgKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJzdXJ2ZXlTdGFydFwiKTtcblxuICAgIHJldHVybiBfU2NyZWViLnN1cnZleVN0YXJ0KFxuICAgICAgc3VydmV5SWQsXG4gICAgICBhbGxvd011bHRpcGxlUmVzcG9uc2VzLFxuICAgICAgaGlkZGVuRmllbGRzLFxuICAgICAgaG9va3NcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcmNlcyBhIHRhcmdldGluZyBjaGVjay5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIudGFyZ2V0aW5nQ2hlY2soKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdGFyZ2V0aW5nQ2hlY2soKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJ0YXJnZXRpbmdDaGVja1wiKTtcblxuICAgIHJldHVybiBfU2NyZWViLnRhcmdldGluZ0NoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogUHJpbnRzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSB0YXJnZXRpbmcgZW5naW5lLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBjb25zb2xlLmxvZyhhd2FpdCB0aGlzLnNjcmVlYi50YXJnZXRpbmdEZWJ1ZygpKTtcbiAgICogLy8gdGFyZ2V0aW5nICoqKioqKioqKioqKiBTQ1JFRUIgVEFSR0VUSU5HIFJVTEVTIERFQlVHICoqKioqKioqKioqKioqXG4gICAqIC8vIERpc2FibGVkIHN1cnZleXMgYXJlIG5vdCBsaXN0ZWQgaGVyZS5cbiAgICogLy9cbiAgICogLy8gU2NyZWViIGNoYW5uZWwgaWQ6IDxVVUlEPlxuICAgKiAvLyBTY3JlZWIgcmVzcG9uZGVudCBpZDogPFVVSUQ+XG4gICAqIC8vXG4gICAqIC8vIFN1cnZleSA8VVVJRD46XG4gICAqIC8vIGh0dHBzOi8vYWRtaW4uc2NyZWViLmFwcC9vcmcvbGFzdC9zdXJ2ZXkvPFVVSUQ+L3NoYXJlXG4gICAqIC8vXG4gICAqIC8vICAgLSBSdWxlIG9mIHR5cGUgXCJEZXZpY2UgdHlwZSAoZGVza3RvcC9tb2JpbGUvdGFibGV0KVwiOiB0cnVlIPCfn6JcbiAgICogLy8gICAtIFJ1bGUgb2YgdHlwZSBcIk11bHRpcGxlIGRpc3BsYXlcIjogdHJ1ZSDwn5+iXG4gICAqIC8vICAgLSBSdWxlIG9mIHR5cGUgXCJDYXBwaW5nIHBlciB0aW1lIGJldHdlZW4gc3VydmV5IGRpc3BsYXkgb24gY3VycmVudCByZXNwb25kZW50XCI6IHRydWUg8J+folxuICAgKiAvLyAgIC0gUnVsZSBvZiB0eXBlIFwiVXNlciBldmVudCBjb3VudFwiOiBmYWxzZSDwn5S0XG4gICAqIC8vICAgLSBSdWxlIG9mIHR5cGUgXCJDYXBwaW5nIHBlciByZXNwb25kZW50IGRpc3BsYXkgY291bnRcIjogZmFsc2Ug8J+UtFxuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyB0YXJnZXRpbmdEZWJ1ZygpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcInRhcmdldGluZ0RlYnVnXCIpO1xuXG4gICAgcmV0dXJuIF9TY3JlZWIudGFyZ2V0aW5nRGVidWcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyBTY3JlZWIgdGFnLlxuICAgKlxuICAgKiBAcGFyYW0gd2Vic2l0ZUlkIFlvdXIgd2Vic2l0ZS9jaGFubmVsIGlkLlxuICAgKiBAcGFyYW0gdXNlcklkIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB5b3VyIHVzZXIuXG4gICAqIEBwYXJhbSB1c2VyUHJvcGVydGllcyBUaGUgcHJvcGVydGllcyBvZiB5b3VyIHVzZXIuXG4gICAqIGBgYHRleHQgUmVxdWlyZW1lbnRzOlxuICAgKiAgIC0gUHJvcGVydHkgbmFtZXMgbXVzdCBiZSBsaW1pdGVkIHRvIDEyOCBjaGFyYWN0ZXJzXG4gICAqICAgLSBObyBtb3JlIHRoYW4gMTAwMCBhdHRyaWJ1dGVzXG4gICAqICAgLSBTdXBwb3J0ZWQgdHlwZXMgZm9yIHZhbHVlczogc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4gYW5kIERhdGVcbiAgICogYGBgXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLmluaXQoXG4gICAqICAgXCI8eW91ci13ZWJzaXRlLWlkPlwiLFxuICAgKiAgIFwiPHlvdXItdXNlci1pZD5cIixcbiAgICogICB7XG4gICAqICAgICBmaXJzdG5hbWU6ICc8dXNlci1maXJzdG5hbWU+JyxcbiAgICogICAgIGxhc3RuYW1lOiAnPHVzZXItbGFzdG5hbWU+JyxcbiAgICogICAgIHBsYW46ICc8dXNlci1wbGFuPicsXG4gICAqICAgICBsYXN0X3NlZW5fYXQ6IG5ldyBEYXRlKCksXG4gICAqICAgICBhdXRoZW50aWNhdGVkOiB0cnVlXG4gICAqICAgfSxcbiAgICogICB7XG4gICAqICAgICB2ZXJzaW9uOiBcIjEuMC4wXCIsXG4gICAqICAgICBvblJlYWR5OiAocGF5bG9hZCkgPT4gY29uc29sZS5sb2coXCJTY3JlZWIgU0RLIGlzIHJlYWR5IVwiLCBwYXlsb2FkKSxcbiAgICogICB9LFxuICAgKiApO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpbml0KFxuICAgIHdlYnNpdGVJZDogc3RyaW5nLFxuICAgIHVzZXJJZD86IHN0cmluZyxcbiAgICB1c2VyUHJvcGVydGllcz86IF9TY3JlZWIuUHJvcGVydHlSZWNvcmQsXG4gICAgaG9va3M/OiBfU2NyZWViLkhvb2tzXG4gICkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwiaW5pdFwiLCB0cnVlKTtcblxuICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICByZXR1cm4gYXdhaXQgX1NjcmVlYi5pbml0KHdlYnNpdGVJZCwgdXNlcklkLCB1c2VyUHJvcGVydGllcywgaG9va3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGVuZHMgU2NyZWViIHRhZyBpbnRvIHlvdXIgZG9tLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyBTY3JlZWIgbW9kdWxlIG9wdGlvbnMuXG4gICAqIEBwYXJhbSBvcHRpb25zLndpbmRvdyBJZiB5b3UncmUgcnVubmluZyBTY3JlZWIgdGFnIGluIGFuIGlmcmFtZSwgcGxlYXNlIHNldCB0aGUgaW5uZXIgd2luZG93IGhlcmUuXG4gICAqIEBwYXJhbSBvcHRpb25zLnNjcmVlYkVuZHBvaW50IFBsZWFzZSBkb24ndCBkbyB0aGlzLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiB0aGlzLnNjcmVlYi5sb2FkKCk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvYWQob3B0aW9ucz86IF9TY3JlZWIuU2NyZWViT3B0aW9ucykge1xuICAgIHJldHVybiBfU2NyZWViLmxvYWQoe1xuICAgICAgc2RrTmFtZTogXCJzZGstYW5ndWxhclwiLFxuICAgICAgc2RrVmVyc2lvbjogQ09OU1RBTlRTLnZlcnNpb24sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
430
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NyZWViLXNkay1hbmd1bGFyL3NyYy9saWIvc2NyZWViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxPQUFPLE1BQU0scUJBQXFCLENBQUM7QUFFL0MsT0FBTyxTQUFTLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRy9DLE1BQU0sT0FBTyxNQUFNO0lBR2pCLDBDQUEwQztJQUMxQyxZQUEwQyxNQUFvQjtRQUFwQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBSHRELGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBR21DLENBQUM7SUFFMUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFvQixFQUFFLFVBQVUsR0FBRyxLQUFLO1FBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtZQUNsRCxNQUFNLE9BQU8sR0FDWCx1R0FBdUcsQ0FBQztZQUUxRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUU1QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN0QyxNQUFNLE9BQU8sR0FBRztnQkFDZCxJQUFJLFlBQVksd0RBQXdEO2dCQUN4RSxzQ0FBc0MsWUFBWSxPQUFPO2dCQUN6RCw2REFBNkQ7YUFDOUQsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFWCxNQUFN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Ozs7Ozs7Ozs7O09BZ0NHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FDZixTQUFpQixFQUNqQixNQUFlLEVBQ2YsY0FBdUMsRUFDdkMsS0FBcUIsRUFDckIsUUFBaUI7UUFFakIsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUUxQixPQUFPLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxFQUNMLFFBQVEsQ0FDVCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUErQjtRQUMvQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDbEIsT0FBTyxFQUFFLGFBQWE7WUFDdEIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxPQUFPO1lBQzdCLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztJQUNMLENBQUM7a0lBemVVLE1BQU0sa0JBSUcsWUFBWTtzSUFKckIsTUFBTSxjQURPLE1BQU07OzRGQUNuQixNQUFNO2tCQURsQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBS25CLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgKiBhcyBfU2NyZWViIGZyb20gXCJAc2NyZWViL3Nkay1icm93c2VyXCI7XG5cbmltcG9ydCBDT05TVEFOVFMgZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSBcIi4vbG9nZ2VyXCI7XG5pbXBvcnQgeyBTY3JlZWJDb25maWcgfSBmcm9tIFwiLi9zY3JlZWItY29uZmlnXCI7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbmV4cG9ydCBjbGFzcyBTY3JlZWIge1xuICBwcml2YXRlIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgY29uc3RydWN0b3IoQEluamVjdChTY3JlZWJDb25maWcpIHByaXZhdGUgY29uZmlnOiBTY3JlZWJDb25maWcpIHt9XG5cbiAgcHJpdmF0ZSBhc3luYyBlbnN1cmVTY3JlZWIoZnVuY3Rpb25OYW1lOiBzdHJpbmcsIG9ubHlMb2FkZWQgPSBmYWxzZSkge1xuICAgIGlmICghX1NjcmVlYi5pc0xvYWRlZCgpICYmICF0aGlzLmNvbmZpZy5zaG91bGRMb2FkKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID1cbiAgICAgICAgXCJTY3JlZWIgaW5zdGFuY2UgaXMgbm90IGxvYWRlZCBiZWNhdXNlIGBzaG91bGRMb2FkYCBpcyBzZXQgdG8gYGZhbHNlYCBpbiBgU2NyZWViTW9kdWxlYCBjb25maWd1cmF0aW9uLlwiO1xuXG4gICAgICBsb2dnZXIubG9nKFwid2FyblwiLCBtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCAmJiAhb25seUxvYWRlZCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IFtcbiAgICAgICAgYFwiJHtmdW5jdGlvbk5hbWV9XCIgd2FzIGNhbGxlZCBidXQgU2NyZWViIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCB5ZXQuIGAsXG4gICAgICAgIGBQbGVhc2UgY2FsbCAnaW5pdCcgYmVmb3JlIGNhbGxpbmcgJyR7ZnVuY3Rpb25OYW1lfScgb3IgYCxcbiAgICAgICAgXCJzZXQgJ2F1dG9Jbml0JyB0byB0cnVlIGluIHRoZSBgU2NyZWViTW9kdWxlYCBjb25maWd1cmF0aW9uLlwiLFxuICAgICAgXS5qb2luKFwiXCIpO1xuXG4gICAgICBsb2dnZXIubG9nKFwid2FyblwiLCBtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG1lc3NhZ2UpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2h1dGRvd25zIGN1cnJlbnQgU2NyZWViIHNlc3Npb24uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLmNsb3NlKCk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsb3NlKCkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwiY2xvc2VcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5jbG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByaW50cyB0aGUgYWN0dWFsIHN0YXRlIGluZm9ybWF0aW9uIG9mIFNjcmVlYiB0YWcuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLmRlYnVnKCk7XG4gICAqIC8vICoqKioqKioqKioqKioqKioqKiogU0NSRUVCIFNFU1NJT04gREVCVUcgKioqKioqKioqKioqKioqKioqKioqXG4gICAqIC8vIFNjcmVlYiBjaGFubmVsIGlkOiA8VVVJRD5cbiAgICogLy8gU2NyZWViIGNoYW5uZWwgdHlwZTogd2lkZ2V0XG4gICAqIC8vIFNjcmVlYiByZXNwb25kZW50IGlkOiA8VVVJRD5cbiAgICogLy8gU2NyZWViIHN1cnZleSBpZDogbm9uZVxuICAgKiAvLyBTY3JlZWIgcmVzcG9uc2UgaWQ6IG5vbmVcbiAgICogLy9cbiAgICogLy8gU2NyZWViIGN1cnJlbnQgc2Vzc2lvbiBzdGFydDogVGh1IE1heSAwNCAyMDIzIDE2OjUzOjQ5IEdNVCswMjAwIChDZW50cmFsIEV1cm9wZWFuIFN1bW1lciBUaW1lKVxuICAgKiAvLyBTY3JlZWIgY3VycmVudCBzZXNzaW9uIGxhc3QgYWN0aXZpdHk6IFRodSBNYXkgMDQgMjAyMyAxNzo0MTozMCBHTVQrMDIwMCAoQ2VudHJhbCBFdXJvcGVhbiBTdW1tZXIgVGltZSlcbiAgICogLy9cbiAgICogLy8gU2NyZWViIHRhcmdldGluZyBlbmdpbmUgc3RhdHVzOiBkaXNhYmxlZFxuICAgKiAvLyBTY3JlZWIgdGFyZ2V0aW5nIGVuZ2luZTogMyBzdXJ2ZXlzXG4gICAqIC8vXG4gICAqIC8vIERldGVjdGVkIHBsYXRmb3JtOiBkZXNrdG9wXG4gICAqIC8vIERldGVjdGVkIGxvY2FsZTogZW4tR0JcbiAgICogLy8gRGV0ZWN0ZWQgdGltZXpvbmU6IC0xMjBcbiAgICogLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVidWcoKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJkZWJ1Z1wiKTtcblxuICAgIHJldHVybiBfU2NyZWViLmRlYnVnKCk7XG4gIH1cblxuICAvKipcbiAgICogVHJhY2tzIGEgdXNlciBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50TmFtZSBUaGUgZXZlbnQgbmFtZS5cbiAgICogQHBhcmFtIGV2ZW50UHJvcGVydGllcyBUaGUgcHJvcGVydGllcyBvZiB5b3VyIGV2ZW50LlxuICAgKiBgYGB0ZXh0IFJlcXVpcmVtZW50czpcbiAgICogICAtIFByb3BlcnR5IG5hbWVzIG11c3QgYmUgbGltaXRlZCB0byAxMjggY2hhcmFjdGVyc1xuICAgKiAgIC0gTm8gbW9yZSB0aGFuIDEwMDAgYXR0cmlidXRlc1xuICAgKiAgIC0gU3VwcG9ydGVkIHR5cGVzIGZvciB2YWx1ZXM6IHN0cmluZywgbnVtYmVyLCBib29sZWFuIGFuZCBEYXRlLlxuICAgKiBgYGBcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIuZXZlbnRUcmFjayhcbiAgICogICBcIlByb2R1Y3QgYWRkZWQgdG8gY2FydFwiLFxuICAgKiAgIHtcbiAgICogICAgIHByb2R1Y3RfbmFtZTogJ1JlZCBiaWtlIDIwMjEnLFxuICAgKiAgICAgY2F0ZWdvcnk6ICdzcG9ydCcsXG4gICAqICAgICBjb2xvcjogJ3JlZCcsXG4gICAqICAgICBwcmljZTogMjk5LFxuICAgKiAgICAgY291bnQ6IDEsXG4gICAqICAgICByZWZlcmVuY2U6ICcyQ0YwOTNURzEnLFxuICAgKiAgICAgZGVsaXZlcnlfbWV0aG9kOiAnVVBTJyxcbiAgICogICAgIHVzZXJfbG9nZ2VkOiBmYWxzZSxcbiAgICogICAgIGFkZGVkX2F0OiBuZXcgRGF0ZSgpLFxuICAgKiAgIH1cbiAgICogKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZXZlbnRUcmFjayhcbiAgICBldmVudE5hbWU6IHN0cmluZyxcbiAgICBldmVudFByb3BlcnRpZXM/OiBfU2NyZWViLlByb3BlcnR5UmVjb3JkXG4gICkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwiZXZlbnRUcmFja1wiKTtcblxuICAgIHJldHVybiBfU2NyZWViLmV2ZW50VHJhY2soZXZlbnROYW1lLCBldmVudFByb3BlcnRpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB0aGUgY3VycmVudCB1c2VyIGlkZW50aXR5LlxuICAgKiBXYXJuaW5nOiBSdW5uaW5nIHN1cnZleXMgd2lsbCBiZSBjbG9zZWQuXG4gICAqXG4gICAqIEBwYXJhbSB1c2VySWQgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHlvdXIgdXNlci5cbiAgICogQHBhcmFtIHVzZXJQcm9wZXJ0aWVzIFRoZSBwcm9wZXJ0aWVzIG9mIHlvdXIgdXNlci5cbiAgICogYGBgdGV4dCBSZXF1aXJlbWVudHM6XG4gICAqICAgLSBQcm9wZXJ0eSBuYW1lcyBtdXN0IGJlIGxpbWl0ZWQgdG8gMTI4IGNoYXJhY3RlcnNcbiAgICogICAtIE5vIG1vcmUgdGhhbiAxMDAwIGF0dHJpYnV0ZXNcbiAgICogICAtIFN1cHBvcnRlZCB0eXBlcyBmb3IgdmFsdWVzOiBzdHJpbmcsIG51bWJlciwgYm9vbGVhbiBhbmQgRGF0ZS5cbiAgICogYGBgXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLmlkZW50aXR5KFxuICAgKiAgIFwiPHlvdXItdXNlci1pZD5cIixcbiAgICogICB7XG4gICAqICAgICBmaXJzdG5hbWU6ICc8dXNlci1maXJzdG5hbWU+JyxcbiAgICogICAgIGxhc3RuYW1lOiAnPHVzZXItbGFzdG5hbWU+JyxcbiAgICogICAgIHBsYW46ICc8dXNlci1wbGFuPicsXG4gICAqICAgICBsYXN0X3NlZW5fYXQ6IG5ldyBEYXRlKCksXG4gICAqICAgICBhdXRoZW50aWNhdGVkOiB0cnVlXG4gICAqICAgfVxuICAgKiApO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpZGVudGl0eShcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICB1c2VyUHJvcGVydGllcz86IF9TY3JlZWIuUHJvcGVydHlSZWNvcmRcbiAgKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJpZGVudGl0eVwiKTtcblxuICAgIHJldHVybiBfU2NyZWViLmlkZW50aXR5KHVzZXJJZCwgdXNlclByb3BlcnRpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCB1c2VyIGlkZW50aXR5LlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBjb25zb2xlLmxvZyhhd2FpdCB0aGlzLnNjcmVlYi5pZGVudGl0eUdldCgpKTtcbiAgICogLy8ge1xuICAgKiAvLyAgIGNoYW5uZWxfaWQ6IFwiPFVVSUQ+XCIsXG4gICAqIC8vICAgYW5vbnltb3VzX2lkOiBcIjxVVUlEPlwiLFxuICAgKiAvLyAgIHVzZXJfaWQ6IFwiPFVVSUQ+XCIsXG4gICAqIC8vICAgaXNfcmVhZHk6IHRydWUsXG4gICAqIC8vICAgc2Vzc2lvbl9pZDogXCI8VVVJRD5cIixcbiAgICogLy8gICBzZXNzaW9uX3N0YXJ0OiBcIjIwMjMtMDUtMDRUMTY6MzA6MTUuODgyWlwiLFxuICAgKiAvLyAgIHNlc3Npb25fZW5kOiBcIjIwMjMtMDUtMDRUMTc6MDI6MDkuMDg3WlwiLFxuICAgKiAvLyB9XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlkZW50aXR5R2V0KCkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwiaWRlbnRpdHlHZXRcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5pZGVudGl0eUdldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzc2lnbnMgdGhlIGN1cnJlbnQgdXNlciB0byBhIGdyb3VwLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JvdXBOYW1lXG4gICAqIEBwYXJhbSBncm91cFR5cGVcbiAgICogQHBhcmFtIGdyb3VwUHJvcGVydGllcyBUaGUgcHJvcGVydGllcyBvZiB5b3VyIHVzZXIgZ3JvdXAuXG4gICAqIGBgYHRleHQgUmVxdWlyZW1lbnRzOlxuICAgKiAgIC0gUHJvcGVydHkgbmFtZXMgbXVzdCBiZSBsaW1pdGVkIHRvIDEyOCBjaGFyYWN0ZXJzXG4gICAqICAgLSBObyBtb3JlIHRoYW4gMTAwMCBhdHRyaWJ1dGVzXG4gICAqICAgLSBTdXBwb3J0ZWQgdHlwZXMgZm9yIHZhbHVlczogc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4gYW5kIERhdGUuXG4gICAqIGBgYFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiB0aGlzLnNjcmVlYi5pZGVudGl0eUdyb3VwQXNzaWduKFxuICAgKiAgICdjb21wYW55JyxcbiAgICogICAnQXBwbGUnLFxuICAgKiAgIHtcbiAgICogICAgIGFkZHJlc3NfbGluZV8xOiAnQXBwbGUgQ2FtcHVzJyxcbiAgICogICAgIGFkZHJlc3NfbGluZV8yOiAnMSBJbmZpbml0ZSBMb29wJyxcbiAgICogICAgIGNpdHk6ICdDdXBlcnRpbm8nLFxuICAgKiAgICAgemlwY29kZTogOTUwMTQsXG4gICAqICAgICBzdGF0ZTogJ0NhbGlmb3JuaWEnLFxuICAgKiAgICAgY291bnRyeTogJ1VuaXRlZCBzdGF0ZXMnLFxuICAgKiAgIH1cbiAgICogKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaWRlbnRpdHlHcm91cEFzc2lnbihcbiAgICBncm91cE5hbWU6IHN0cmluZyxcbiAgICBncm91cFR5cGU/OiBzdHJpbmcsXG4gICAgZ3JvdXBQcm9wZXJ0aWVzPzogX1NjcmVlYi5Qcm9wZXJ0eVJlY29yZFxuICApIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcImlkZW50aXR5R3JvdXBBc3NpZ25cIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5pZGVudGl0eUdyb3VwQXNzaWduKGdyb3VwTmFtZSwgZ3JvdXBUeXBlLCBncm91cFByb3BlcnRpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXNzaWducyB0aGUgY3VycmVudCB1c2VyIHRvIGEgZ3JvdXAuXG4gICAqXG4gICAqIEBwYXJhbSBncm91cE5hbWUgVGhlIG5hbWUgb2YgeW91ciB1c2VyIGdyb3VwLlxuICAgKiBAcGFyYW0gZ3JvdXBUeXBlIFRoZSB0eXBlIG9mIHlvdXIgdXNlciBncm91cC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIuaWRlbnRpdHlHcm91cFVuYXNzaWduKCdjb21wYW55JywgJ0FwcGxlJyk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlkZW50aXR5R3JvdXBVbmFzc2lnbihncm91cE5hbWU6IHN0cmluZywgZ3JvdXBUeXBlPzogc3RyaW5nKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJpZGVudGl0eUdyb3VwVW5hc3NpZ25cIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5pZGVudGl0eUdyb3VwVW5hc3NpZ24oZ3JvdXBOYW1lLCBncm91cFR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgcHJvcGVydGllcyB0byB0aGUgY3VycmVudCB1c2VyIGlkZW50aXR5LlxuICAgKlxuICAgKiBAcGFyYW0gdXNlclByb3BlcnRpZXMgVGhlIHByb3BlcnRpZXMgb2YgeW91ciB1c2VyLlxuICAgKiBgYGB0ZXh0IFJlcXVpcmVtZW50czpcbiAgICogICAtIFByb3BlcnR5IG5hbWVzIG11c3QgYmUgbGltaXRlZCB0byAxMjggY2hhcmFjdGVyc1xuICAgKiAgIC0gTm8gbW9yZSB0aGFuIDEwMDAgYXR0cmlidXRlc1xuICAgKiAgIC0gU3VwcG9ydGVkIHR5cGVzIGZvciB2YWx1ZXM6IHN0cmluZywgbnVtYmVyLCBib29sZWFuIGFuZCBEYXRlLlxuICAgKiBgYGBcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogLy8gU2V0IHVzZXIgcHJvcGVydGllc1xuICAgKiB0aGlzLnNjcmVlYi5pZGVudGl0eVByb3BlcnRpZXMoXG4gICAqICAge1xuICAgKiAgICAgZmlyc3RuYW1lOiAnPHVzZXItZmlyc3RuYW1lPicsXG4gICAqICAgICBsYXN0bmFtZTogJzx1c2VyLWxhc3RuYW1lPicsXG4gICAqICAgICBwbGFuOiAnPHVzZXItcGxhbj4nLFxuICAgKiAgICAgbGFzdF9zZWVuX2F0OiBuZXcgRGF0ZSgpLFxuICAgKiAgICAgYXV0aGVudGljYXRlZDogdHJ1ZVxuICAgKiAgIH1cbiAgICogKTtcbiAgICpcbiAgICogLy8gRGVsZXRlIHVzZXIgcHJvcGVydHkgOiBzZXQgdmFsdWVzIHRvIG51bGxcbiAgICogdGhpcy5zY3JlZWIuaWRlbnRpdHlQcm9wZXJ0aWVzKFxuICAgKiAgIHtcbiAgICogICAgIGFnZTogbnVsbCxcbiAgICogICAgIGNvbXBhbnk6IG51bGwsXG4gICAqICAgICBsb2dnZWQ6IHRydWUsXG4gICAqICAgfVxuICAgKiApO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpZGVudGl0eVByb3BlcnRpZXModXNlclByb3BlcnRpZXM6IF9TY3JlZWIuUHJvcGVydHlSZWNvcmQpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcImlkZW50aXR5UHJvcGVydGllc1wiKTtcblxuICAgIHJldHVybiBfU2NyZWViLmlkZW50aXR5UHJvcGVydGllcyh1c2VyUHJvcGVydGllcyk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBjdXJyZW50IHVzZXIgaWRlbnRpdHkuXG4gICAqIFdhcm5pbmc6IFRoaXMgY29tbWFuZCBtdXN0IGJlIGNhbGxlZCBvbmx5IG9uY2UsIHNpbmNlIGl0IGNyZWF0ZXMgYSBuZXcgaWRlbnRpdHkgb24gU2NyZWViIHNpZGUuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLmlkZW50aXR5UmVzZXQoKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaWRlbnRpdHlSZXNldCgpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcImlkZW50aXR5UmVzZXRcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5pZGVudGl0eVJlc2V0KCk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJydXB0cyBhIHJ1bm5pbmcgc3VydmV5LlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiB0aGlzLnNjcmVlYi5zdXJ2ZXlDbG9zZSgpO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzdXJ2ZXlDbG9zZSgpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcInN1cnZleUNsb3NlXCIpO1xuXG4gICAgcmV0dXJuIF9TY3JlZWIuc3VydmV5Q2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgYSBzdXJ2ZXkgYnkgaXRzIElELlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiB0aGlzLnNjcmVlYi5zdXJ2ZXlTdGFydChcbiAgICogICAnPFVVSUQ+JyxcbiAgICogICBmYWxzZSxcbiAgICogICB7XG4gICAqICAgICBjb2xvcjogXCJncmVlblwiLFxuICAgKiAgICAgYXJ0aWNsZV9pZDogNDJcbiAgICogICB9LFxuICAgKiAgIHtcbiAgICogICAgIHZlcnNpb246IFwiMS4wLjBcIixcbiAgICogICAgIG9uU3VydmV5U2hvd2VkOiAocGF5bG9hZCkgPT4gY29uc29sZS5sb2coXCJTdXJ2ZXkgc2hvd2VkXCIsIHBheWxvYWQpLFxuICAgKiAgIH0sXG4gICAqICAgXCJlblwiXG4gICAqICk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHN1cnZleVN0YXJ0KFxuICAgIHN1cnZleUlkOiBzdHJpbmcsXG4gICAgYWxsb3dNdWx0aXBsZVJlc3BvbnNlczogYm9vbGVhbixcbiAgICBoaWRkZW5GaWVsZHM6IF9TY3JlZWIuUHJvcGVydHlSZWNvcmQsXG4gICAgaG9va3M/OiBfU2NyZWViLkhvb2tzLFxuICAgIGxhbmd1YWdlPzogc3RyaW5nXG4gICkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwic3VydmV5U3RhcnRcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5zdXJ2ZXlTdGFydChcbiAgICAgIHN1cnZleUlkLFxuICAgICAgYWxsb3dNdWx0aXBsZVJlc3BvbnNlcyxcbiAgICAgIGhpZGRlbkZpZWxkcyxcbiAgICAgIGhvb2tzLFxuICAgICAgbGFuZ3VhZ2VcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEludGVycnVwdHMgYSBydW5uaW5nIG1lc3NhZ2UuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLm1lc3NhZ2VDbG9zZSgpO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBtZXNzYWdlQ2xvc2UoKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJtZXNzYWdlQ2xvc2VcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5tZXNzYWdlQ2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgYSBtZXNzYWdlIGJ5IGl0cyBJRC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIubWVzc2FnZVN0YXJ0KFxuICAgKiAgICc8VVVJRD4nLFxuICAgKiAgIGZhbHNlLFxuICAgKiAgIHtcbiAgICogICAgIGNvbG9yOiBcImdyZWVuXCIsXG4gICAqICAgICBhcnRpY2xlX2lkOiA0MlxuICAgKiAgIH0sXG4gICAqICAge1xuICAgKiAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgKiAgICAgb25NZXNzYWdlU2hvd2VkOiAocGF5bG9hZCkgPT4gY29uc29sZS5sb2coXCJNZXNzYWdlIHNob3dlZFwiLCBwYXlsb2FkKSxcbiAgICogICB9LFxuICAgKiAgIFwiZW5cIlxuICAgKiApO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBtZXNzYWdlU3RhcnQoXG4gICAgbWVzc2FnZUlkOiBzdHJpbmcsXG4gICAgaGlkZGVuRmllbGRzOiBfU2NyZWViLlByb3BlcnR5UmVjb3JkLFxuICAgIGhvb2tzPzogX1NjcmVlYi5Ib29rcyxcbiAgICBsYW5ndWFnZT86IHN0cmluZ1xuICApIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcIm1lc3NhZ2VTdGFydFwiKTtcblxuICAgIHJldHVybiBfU2NyZWViLm1lc3NhZ2VTdGFydChtZXNzYWdlSWQsIGhpZGRlbkZpZWxkcywgaG9va3MsIGxhbmd1YWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgYSB0YXJnZXRpbmcgY2hlY2suXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLnRhcmdldGluZ0NoZWNrKCk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHRhcmdldGluZ0NoZWNrKCkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwidGFyZ2V0aW5nQ2hlY2tcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi50YXJnZXRpbmdDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByaW50cyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgdGFyZ2V0aW5nIGVuZ2luZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogY29uc29sZS5sb2coYXdhaXQgdGhpcy5zY3JlZWIudGFyZ2V0aW5nRGVidWcoKSk7XG4gICAqIC8vIHRhcmdldGluZyAqKioqKioqKioqKiogU0NSRUVCIFRBUkdFVElORyBSVUxFUyBERUJVRyAqKioqKioqKioqKioqKlxuICAgKiAvLyBEaXNhYmxlZCBzdXJ2ZXlzIGFyZSBub3QgbGlzdGVkIGhlcmUuXG4gICAqIC8vXG4gICAqIC8vIFNjcmVlYiBjaGFubmVsIGlkOiA8VVVJRD5cbiAgICogLy8gU2NyZWViIHJlc3BvbmRlbnQgaWQ6IDxVVUlEPlxuICAgKiAvL1xuICAgKiAvLyBTdXJ2ZXkgPFVVSUQ+OlxuICAgKiAvLyBodHRwczovL2FkbWluLnNjcmVlYi5hcHAvb3JnL2xhc3Qvc3VydmV5LzxVVUlEPi9zaGFyZVxuICAgKiAvL1xuICAgKiAvLyAgIC0gUnVsZSBvZiB0eXBlIFwiRGV2aWNlIHR5cGUgKGRlc2t0b3AvbW9iaWxlL3RhYmxldClcIjogdHJ1ZSDwn5+iXG4gICAqIC8vICAgLSBSdWxlIG9mIHR5cGUgXCJNdWx0aXBsZSBkaXNwbGF5XCI6IHRydWUg8J+folxuICAgKiAvLyAgIC0gUnVsZSBvZiB0eXBlIFwiQ2FwcGluZyBwZXIgdGltZSBiZXR3ZWVuIHN1cnZleSBkaXNwbGF5IG9uIGN1cnJlbnQgcmVzcG9uZGVudFwiOiB0cnVlIPCfn6JcbiAgICogLy8gICAtIFJ1bGUgb2YgdHlwZSBcIlVzZXIgZXZlbnQgY291bnRcIjogZmFsc2Ug8J+UtFxuICAgKiAvLyAgIC0gUnVsZSBvZiB0eXBlIFwiQ2FwcGluZyBwZXIgcmVzcG9uZGVudCBkaXNwbGF5IGNvdW50XCI6IGZhbHNlIPCflLRcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdGFyZ2V0aW5nRGVidWcoKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJ0YXJnZXRpbmdEZWJ1Z1wiKTtcblxuICAgIHJldHVybiBfU2NyZWViLnRhcmdldGluZ0RlYnVnKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgU2NyZWViIHRhZy5cbiAgICpcbiAgICogQHBhcmFtIHdlYnNpdGVJZCBZb3VyIHdlYnNpdGUvY2hhbm5lbCBpZC5cbiAgICogQHBhcmFtIHVzZXJJZCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgeW91ciB1c2VyLlxuICAgKiBAcGFyYW0gdXNlclByb3BlcnRpZXMgVGhlIHByb3BlcnRpZXMgb2YgeW91ciB1c2VyLlxuICAgKiBgYGB0ZXh0IFJlcXVpcmVtZW50czpcbiAgICogICAtIFByb3BlcnR5IG5hbWVzIG11c3QgYmUgbGltaXRlZCB0byAxMjggY2hhcmFjdGVyc1xuICAgKiAgIC0gTm8gbW9yZSB0aGFuIDEwMDAgYXR0cmlidXRlc1xuICAgKiAgIC0gU3VwcG9ydGVkIHR5cGVzIGZvciB2YWx1ZXM6IHN0cmluZywgbnVtYmVyLCBib29sZWFuIGFuZCBEYXRlXG4gICAqIGBgYFxuICAgKiBAcGFyYW0gbGFuZ3VhZ2UgRm9yY2UgYSBzcGVjaWZpYyBsYW5ndWFnZSBmb3IgdGhlIHRhZy4gZWc6ICdlbicuIGRlZmF1bHQ6IGJyb3dzZXIgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLmluaXQoXG4gICAqICAgXCI8eW91ci13ZWJzaXRlLWlkPlwiLFxuICAgKiAgIFwiPHlvdXItdXNlci1pZD5cIixcbiAgICogICB7XG4gICAqICAgICBmaXJzdG5hbWU6ICc8dXNlci1maXJzdG5hbWU+JyxcbiAgICogICAgIGxhc3RuYW1lOiAnPHVzZXItbGFzdG5hbWU+JyxcbiAgICogICAgIHBsYW46ICc8dXNlci1wbGFuPicsXG4gICAqICAgICBsYXN0X3NlZW5fYXQ6IG5ldyBEYXRlKCksXG4gICAqICAgICBhdXRoZW50aWNhdGVkOiB0cnVlXG4gICAqICAgfSxcbiAgICogICB7XG4gICAqICAgICB2ZXJzaW9uOiBcIjEuMC4wXCIsXG4gICAqICAgICBvblJlYWR5OiAocGF5bG9hZCkgPT4gY29uc29sZS5sb2coXCJTY3JlZWIgU0RLIGlzIHJlYWR5IVwiLCBwYXlsb2FkKSxcbiAgICogICB9LFxuICAgKiAgIFwiZW5cIlxuICAgKiApO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpbml0KFxuICAgIHdlYnNpdGVJZDogc3RyaW5nLFxuICAgIHVzZXJJZD86IHN0cmluZyxcbiAgICB1c2VyUHJvcGVydGllcz86IF9TY3JlZWIuUHJvcGVydHlSZWNvcmQsXG4gICAgaG9va3M/OiBfU2NyZWViLkhvb2tzLFxuICAgIGxhbmd1YWdlPzogc3RyaW5nXG4gICkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwiaW5pdFwiLCB0cnVlKTtcblxuICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICByZXR1cm4gYXdhaXQgX1NjcmVlYi5pbml0KFxuICAgICAgd2Vic2l0ZUlkLFxuICAgICAgdXNlcklkLFxuICAgICAgdXNlclByb3BlcnRpZXMsXG4gICAgICBob29rcyxcbiAgICAgIGxhbmd1YWdlXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmRzIFNjcmVlYiB0YWcgaW50byB5b3VyIGRvbS5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgU2NyZWViIG1vZHVsZSBvcHRpb25zLlxuICAgKiBAcGFyYW0gb3B0aW9ucy53aW5kb3cgSWYgeW91J3JlIHJ1bm5pbmcgU2NyZWViIHRhZyBpbiBhbiBpZnJhbWUsIHBsZWFzZSBzZXQgdGhlIGlubmVyIHdpbmRvdyBoZXJlLlxuICAgKiBAcGFyYW0gb3B0aW9ucy5zY3JlZWJFbmRwb2ludCBQbGVhc2UgZG9uJ3QgZG8gdGhpcy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIubG9hZCgpO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkKG9wdGlvbnM/OiBfU2NyZWViLlNjcmVlYk9wdGlvbnMpIHtcbiAgICByZXR1cm4gX1NjcmVlYi5sb2FkKHtcbiAgICAgIHNka05hbWU6IFwic2RrLWFuZ3VsYXJcIixcbiAgICAgIHNka1ZlcnNpb246IENPTlNUQU5UUy52ZXJzaW9uLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -43,11 +43,11 @@ export class ScreebModule {
|
|
|
43
43
|
screeb.init(config.websiteId, config.userId, config.userProperties, config.hooks);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
47
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.
|
|
48
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.
|
|
46
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebModule, deps: [{ token: ScreebConfig }, { token: Screeb }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
47
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ScreebModule }); }
|
|
48
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebModule, providers: [Screeb, ScreebConfig] }); }
|
|
49
49
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebModule, decorators: [{
|
|
51
51
|
type: NgModule,
|
|
52
52
|
args: [{
|
|
53
53
|
providers: [Screeb, ScreebConfig],
|
|
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
|
|
|
59
59
|
type: Inject,
|
|
60
60
|
args: [Screeb]
|
|
61
61
|
}] }]; } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWViLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NjcmVlYi1zZGstYW5ndWxhci9zcmMvbGliL3NjcmVlYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBSy9DLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXVCRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBb0I7UUFDakMsT0FBTztZQUNMLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQ2pFLENBQUM7SUFDSixDQUFDO0lBRUQsWUFDd0IsTUFBb0IsRUFDMUIsTUFBYztRQUU5QixJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNmO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUNsRCxNQUFNLENBQUMsSUFBSSxDQUNULE1BQU0sQ0FBQyxTQUFTLEVBQ2hCLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsTUFBTSxDQUFDLGNBQWMsRUFDckIsTUFBTSxDQUFDLEtBQUssQ0FDYixDQUFDO1NBQ0g7SUFDSCxDQUFDO2tJQWhEVSxZQUFZLGtCQWlDYixZQUFZLGFBQ1osTUFBTTttSUFsQ0wsWUFBWTttSUFBWixZQUFZLGFBRlosQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDOzs0RkFFdEIsWUFBWTtrQkFIeEIsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDO2lCQUNsQzs7MEJBa0NJLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25CLE1BQU07MkJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU2NyZWViIH0gZnJvbSBcIi4vc2NyZWViXCI7XG5pbXBvcnQgeyBTY3JlZWJDb25maWcgfSBmcm9tIFwiLi9zY3JlZWItY29uZmlnXCI7XG5cbkBOZ01vZHVsZSh7XG4gIHByb3ZpZGVyczogW1NjcmVlYiwgU2NyZWViQ29uZmlnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2NyZWViTW9kdWxlIHtcbiAgLyoqXG4gICAqIFRoaXMgaXMgdXNlZCB0byBpbml0aWFsaXplIFNjcmVlYiBhdCB0aGUgdG9wIG9mIHlvdXIgQW5ndWxhciBhcHBsaWNhdGlvblxuICAgKiBAcGFyYW0gY29uZmlnIENvbmZpZ3VyYXRpb24gdG8gcGFzcyB0byBTY3JlZWIgYnJvd3NlciBTREtcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogU2NyZWViTW9kdWxlLmZvclJvb3Qoe1xuICAgKiAgIGF1dG9Jbml0OiB0cnVlLFxuICAgKiAgIHdlYnNpdGVJZDogXCI8eW91ci13ZWJzaXRlLWlkPlwiLFxuICAgKiAgIHVzZXJJZDogXCI8eW91ci11c2VyLWlkPlwiLFxuICAgKiAgIHVzZXJQcm9wZXJ0aWVzOiB7XG4gICAqICAgICBmaXJzdG5hbWU6ICc8dXNlci1maXJzdG5hbWU+JyxcbiAgICogICAgIGxhc3RuYW1lOiAnPHVzZXItbGFzdG5hbWU+JyxcbiAgICogICAgIHBsYW46ICc8dXNlci1wbGFuPicsXG4gICAqICAgICBsYXN0X3NlZW5fYXQ6IG5ldyBEYXRlKCksXG4gICAqICAgICBhdXRoZW50aWNhdGVkOiB0cnVlXG4gICAqICAgfSxcbiAgICogICB7XG4gICAqICAgICB2ZXJzaW9uOiBcIjEuMC4wXCIsXG4gICAqICAgICBvblJlYWR5OiAocGF5bG9hZCkgPT4gY29uc29sZS5sb2coXCJTY3JlZWIgU0RLIGlzIHJlYWR5IVwiLCBwYXlsb2FkKSxcbiAgICogICB9LFxuICAgKiB9KVxuICAgKiBgYGBcbiAgICovXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogU2NyZWViQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxTY3JlZWJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFNjcmVlYk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1NjcmVlYiwgeyBwcm92aWRlOiBTY3JlZWJDb25maWcsIHVzZVZhbHVlOiBjb25maWcgfV0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoU2NyZWViQ29uZmlnKSBjb25maWc6IFNjcmVlYkNvbmZpZyxcbiAgICBASW5qZWN0KFNjcmVlYikgc2NyZWViOiBTY3JlZWJcbiAgKSB7XG4gICAgaWYgKGNvbmZpZy5zaG91bGRMb2FkID8/IHRydWUpIHtcbiAgICAgIHNjcmVlYi5sb2FkKCk7XG4gICAgfVxuXG4gICAgaWYgKChjb25maWcuYXV0b0luaXQgPz8gZmFsc2UpICYmIGNvbmZpZy53ZWJzaXRlSWQpIHtcbiAgICAgIHNjcmVlYi5pbml0KFxuICAgICAgICBjb25maWcud2Vic2l0ZUlkLFxuICAgICAgICBjb25maWcudXNlcklkLFxuICAgICAgICBjb25maWcudXNlclByb3BlcnRpZXMsXG4gICAgICAgIGNvbmZpZy5ob29rc1xuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable, Inject, NgModule } from '@angular/core';
|
|
3
3
|
import * as _Screeb from '@screeb/sdk-browser';
|
|
4
4
|
|
|
5
|
-
var CONSTANTS = { version: "0.1.
|
|
5
|
+
var CONSTANTS = { version: "0.1.12" };
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Logs messages in the console with a corresponding urgency
|
|
@@ -33,10 +33,10 @@ const log = (level, message) => {
|
|
|
33
33
|
|
|
34
34
|
/** Configuration of Screeb module */
|
|
35
35
|
class ScreebConfig {
|
|
36
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
37
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
36
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebConfig, providedIn: "root" }); }
|
|
38
38
|
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebConfig, decorators: [{
|
|
40
40
|
type: Injectable,
|
|
41
41
|
args: [{ providedIn: "root" }]
|
|
42
42
|
}] });
|
|
@@ -314,12 +314,49 @@ class Screeb {
|
|
|
314
314
|
* version: "1.0.0",
|
|
315
315
|
* onSurveyShowed: (payload) => console.log("Survey showed", payload),
|
|
316
316
|
* },
|
|
317
|
+
* "en"
|
|
317
318
|
* );
|
|
318
319
|
* ```
|
|
319
320
|
*/
|
|
320
|
-
async surveyStart(surveyId, allowMultipleResponses, hiddenFields, hooks) {
|
|
321
|
+
async surveyStart(surveyId, allowMultipleResponses, hiddenFields, hooks, language) {
|
|
321
322
|
await this.ensureScreeb("surveyStart");
|
|
322
|
-
return _Screeb.surveyStart(surveyId, allowMultipleResponses, hiddenFields, hooks);
|
|
323
|
+
return _Screeb.surveyStart(surveyId, allowMultipleResponses, hiddenFields, hooks, language);
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Interrupts a running message.
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* ```ts
|
|
330
|
+
* this.screeb.messageClose();
|
|
331
|
+
* ```
|
|
332
|
+
*/
|
|
333
|
+
async messageClose() {
|
|
334
|
+
await this.ensureScreeb("messageClose");
|
|
335
|
+
return _Screeb.messageClose();
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Starts a message by its ID.
|
|
339
|
+
*
|
|
340
|
+
* @example
|
|
341
|
+
* ```ts
|
|
342
|
+
* this.screeb.messageStart(
|
|
343
|
+
* '<UUID>',
|
|
344
|
+
* false,
|
|
345
|
+
* {
|
|
346
|
+
* color: "green",
|
|
347
|
+
* article_id: 42
|
|
348
|
+
* },
|
|
349
|
+
* {
|
|
350
|
+
* version: "1.0.0",
|
|
351
|
+
* onMessageShowed: (payload) => console.log("Message showed", payload),
|
|
352
|
+
* },
|
|
353
|
+
* "en"
|
|
354
|
+
* );
|
|
355
|
+
* ```
|
|
356
|
+
*/
|
|
357
|
+
async messageStart(messageId, hiddenFields, hooks, language) {
|
|
358
|
+
await this.ensureScreeb("messageStart");
|
|
359
|
+
return _Screeb.messageStart(messageId, hiddenFields, hooks, language);
|
|
323
360
|
}
|
|
324
361
|
/**
|
|
325
362
|
* Forces a targeting check.
|
|
@@ -370,6 +407,7 @@ class Screeb {
|
|
|
370
407
|
* - No more than 1000 attributes
|
|
371
408
|
* - Supported types for values: string, number, boolean and Date
|
|
372
409
|
* ```
|
|
410
|
+
* @param language Force a specific language for the tag. eg: 'en'. default: browser language.
|
|
373
411
|
*
|
|
374
412
|
* @example
|
|
375
413
|
* ```ts
|
|
@@ -387,13 +425,14 @@ class Screeb {
|
|
|
387
425
|
* version: "1.0.0",
|
|
388
426
|
* onReady: (payload) => console.log("Screeb SDK is ready!", payload),
|
|
389
427
|
* },
|
|
428
|
+
* "en"
|
|
390
429
|
* );
|
|
391
430
|
* ```
|
|
392
431
|
*/
|
|
393
|
-
async init(websiteId, userId, userProperties, hooks) {
|
|
432
|
+
async init(websiteId, userId, userProperties, hooks, language) {
|
|
394
433
|
await this.ensureScreeb("init", true);
|
|
395
434
|
this.isInitialized = true;
|
|
396
|
-
return await _Screeb.init(websiteId, userId, userProperties, hooks);
|
|
435
|
+
return await _Screeb.init(websiteId, userId, userProperties, hooks, language);
|
|
397
436
|
}
|
|
398
437
|
/**
|
|
399
438
|
* Appends Screeb tag into your dom.
|
|
@@ -414,10 +453,10 @@ class Screeb {
|
|
|
414
453
|
...options,
|
|
415
454
|
});
|
|
416
455
|
}
|
|
417
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
418
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
456
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Screeb, deps: [{ token: ScreebConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
457
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Screeb, providedIn: "root" }); }
|
|
419
458
|
}
|
|
420
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Screeb, decorators: [{
|
|
421
460
|
type: Injectable,
|
|
422
461
|
args: [{ providedIn: "root" }]
|
|
423
462
|
}], ctorParameters: function () { return [{ type: ScreebConfig, decorators: [{
|
|
@@ -464,11 +503,11 @@ class ScreebModule {
|
|
|
464
503
|
screeb.init(config.websiteId, config.userId, config.userProperties, config.hooks);
|
|
465
504
|
}
|
|
466
505
|
}
|
|
467
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
468
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.
|
|
469
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.
|
|
506
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebModule, deps: [{ token: ScreebConfig }, { token: Screeb }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
507
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ScreebModule }); }
|
|
508
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebModule, providers: [Screeb, ScreebConfig] }); }
|
|
470
509
|
}
|
|
471
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
510
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebModule, decorators: [{
|
|
472
511
|
type: NgModule,
|
|
473
512
|
args: [{
|
|
474
513
|
providers: [Screeb, ScreebConfig],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screeb-sdk-angular.mjs","sources":["../../../projects/screeb-sdk-angular/src/lib/constants.ts","../../../projects/screeb-sdk-angular/src/lib/logger.ts","../../../projects/screeb-sdk-angular/src/lib/screeb-config.ts","../../../projects/screeb-sdk-angular/src/lib/screeb.ts","../../../projects/screeb-sdk-angular/src/lib/screeb.module.ts","../../../projects/screeb-sdk-angular/src/public-api.ts","../../../projects/screeb-sdk-angular/src/screeb-sdk-angular.ts"],"sourcesContent":["export default { version: \"0.1.10\" };\n","type LogLevel = \"info\" | \"error\" | \"warn\";\n\n/**\n * Logs messages in the console with a corresponding urgency\n *\n * @param level the urgency of the message\n * @param message the message to log in the console\n */\nexport const log = (level: LogLevel, message: string) => {\n const packageName = \"[@screeb/angular-sdk]\";\n\n switch (level) {\n case \"info\":\n // eslint-disable-next-line no-console\n console.log(`${packageName} ${message}`);\n break;\n case \"warn\":\n // eslint-disable-next-line no-console\n console.warn(`${packageName} ${message}`);\n break;\n case \"error\":\n // eslint-disable-next-line no-console\n console.error(`${packageName} ${message}`);\n break;\n default:\n // eslint-disable-next-line no-console\n console.log(`${packageName} ${message}`);\n }\n};\n","import { Injectable } from \"@angular/core\";\nimport { Hooks, PropertyRecord, ScreebOptions } from \"@screeb/sdk-browser\";\n\n/** Configuration of Screeb module */\n@Injectable({ providedIn: \"root\" })\nexport class ScreebConfig {\n /** Your website/channel id. */\n websiteId?: string;\n /** The unique identifier of your user. */\n userId?: string;\n /** The properties of your user. */\n userProperties?: PropertyRecord;\n /** Hooks to define callback for various event */\n hooks?: Hooks;\n /**\n * Indicates if Screeb should be automatically loaded.\n * This will ping to the Screeb servers.\n *\n * @remarks if `true`, 'load' does not need to be called manually. Can be used for multistaged environments\n */\n shouldLoad?: boolean;\n /**\n * Indicates if Screeb should be automatically initialized.\n *\n * @remarks if `true`, 'init' does not need to be called manually\n * */\n autoInit?: boolean;\n /**\n * Screeb tag initialization options.\n *\n * @remarks this is used is really particular cases, handle with care.\n * */\n options?: ScreebOptions;\n}\n","import { Inject, Injectable } from \"@angular/core\";\nimport * as _Screeb from \"@screeb/sdk-browser\";\n\nimport CONSTANTS from \"./constants\";\nimport * as logger from \"./logger\";\nimport { ScreebConfig } from \"./screeb-config\";\n\n@Injectable({ providedIn: \"root\" })\nexport class Screeb {\n private isInitialized = false;\n\n // eslint-disable-next-line no-unused-vars\n constructor(@Inject(ScreebConfig) private config: ScreebConfig) {}\n\n private async ensureScreeb(functionName: string, onlyLoaded = false) {\n if (!_Screeb.isLoaded() && !this.config.shouldLoad) {\n const message =\n \"Screeb instance is not loaded because `shouldLoad` is set to `false` in `ScreebModule` configuration.\";\n\n logger.log(\"warn\", message);\n\n return Promise.reject(message);\n }\n if (!this.isInitialized && !onlyLoaded) {\n const message = [\n `\"${functionName}\" was called but Screeb has not been initialized yet. `,\n `Please call 'init' before calling '${functionName}' or `,\n \"set 'autoInit' to true in the `ScreebModule` configuration.\",\n ].join(\"\");\n\n logger.log(\"warn\", message);\n\n return Promise.reject(message);\n }\n return Promise.resolve();\n }\n\n /**\n * Shutdowns current Screeb session.\n *\n * @example\n * ```ts\n * this.screeb.close();\n * ```\n */\n public async close() {\n await this.ensureScreeb(\"close\");\n\n return _Screeb.close();\n }\n\n /**\n * Prints the actual state information of Screeb tag.\n *\n * @example\n * ```ts\n * this.screeb.debug();\n * // ******************* SCREEB SESSION DEBUG *********************\n * // Screeb channel id: <UUID>\n * // Screeb channel type: widget\n * // Screeb respondent id: <UUID>\n * // Screeb survey id: none\n * // Screeb response id: none\n * //\n * // Screeb current session start: Thu May 04 2023 16:53:49 GMT+0200 (Central European Summer Time)\n * // Screeb current session last activity: Thu May 04 2023 17:41:30 GMT+0200 (Central European Summer Time)\n * //\n * // Screeb targeting engine status: disabled\n * // Screeb targeting engine: 3 surveys\n * //\n * // Detected platform: desktop\n * // Detected locale: en-GB\n * // Detected timezone: -120\n * // **************************************************************\n * ```\n */\n public async debug() {\n await this.ensureScreeb(\"debug\");\n\n return _Screeb.debug();\n }\n\n /**\n * Tracks a user event.\n *\n * @param eventName The event name.\n * @param eventProperties The properties of your event.\n * ```text Requirements:\n * - Property names must be limited to 128 characters\n * - No more than 1000 attributes\n * - Supported types for values: string, number, boolean and Date.\n * ```\n *\n * @example\n * ```ts\n * this.screeb.eventTrack(\n * \"Product added to cart\",\n * {\n * product_name: 'Red bike 2021',\n * category: 'sport',\n * color: 'red',\n * price: 299,\n * count: 1,\n * reference: '2CF093TG1',\n * delivery_method: 'UPS',\n * user_logged: false,\n * added_at: new Date(),\n * }\n * );\n * ```\n */\n public async eventTrack(\n eventName: string,\n eventProperties?: _Screeb.PropertyRecord\n ) {\n await this.ensureScreeb(\"eventTrack\");\n\n return _Screeb.eventTrack(eventName, eventProperties);\n }\n\n /**\n * Change the current user identity.\n * Warning: Running surveys will be closed.\n *\n * @param userId The unique identifier of your user.\n * @param userProperties The properties of your user.\n * ```text Requirements:\n * - Property names must be limited to 128 characters\n * - No more than 1000 attributes\n * - Supported types for values: string, number, boolean and Date.\n * ```\n *\n * @example\n * ```ts\n * this.screeb.identity(\n * \"<your-user-id>\",\n * {\n * firstname: '<user-firstname>',\n * lastname: '<user-lastname>',\n * plan: '<user-plan>',\n * last_seen_at: new Date(),\n * authenticated: true\n * }\n * );\n * ```\n */\n public async identity(\n userId: string,\n userProperties?: _Screeb.PropertyRecord\n ) {\n await this.ensureScreeb(\"identity\");\n\n return _Screeb.identity(userId, userProperties);\n }\n\n /**\n * Retrieves the current user identity.\n *\n * @example\n * ```ts\n * console.log(await this.screeb.identityGet());\n * // {\n * // channel_id: \"<UUID>\",\n * // anonymous_id: \"<UUID>\",\n * // user_id: \"<UUID>\",\n * // is_ready: true,\n * // session_id: \"<UUID>\",\n * // session_start: \"2023-05-04T16:30:15.882Z\",\n * // session_end: \"2023-05-04T17:02:09.087Z\",\n * // }\n * ```\n */\n public async identityGet() {\n await this.ensureScreeb(\"identityGet\");\n\n return _Screeb.identityGet();\n }\n\n /**\n * Assigns the current user to a group.\n *\n * @param groupName\n * @param groupType\n * @param groupProperties The properties of your user group.\n * ```text Requirements:\n * - Property names must be limited to 128 characters\n * - No more than 1000 attributes\n * - Supported types for values: string, number, boolean and Date.\n * ```\n *\n * @example\n * ```ts\n * this.screeb.identityGroupAssign(\n * 'company',\n * 'Apple',\n * {\n * address_line_1: 'Apple Campus',\n * address_line_2: '1 Infinite Loop',\n * city: 'Cupertino',\n * zipcode: 95014,\n * state: 'California',\n * country: 'United states',\n * }\n * );\n * ```\n */\n public async identityGroupAssign(\n groupName: string,\n groupType?: string,\n groupProperties?: _Screeb.PropertyRecord\n ) {\n await this.ensureScreeb(\"identityGroupAssign\");\n\n return _Screeb.identityGroupAssign(groupName, groupType, groupProperties);\n }\n\n /**\n * Unassigns the current user to a group.\n *\n * @param groupName The name of your user group.\n * @param groupType The type of your user group.\n *\n * @example\n * ```ts\n * this.screeb.identityGroupUnassign('company', 'Apple');\n * ```\n */\n public async identityGroupUnassign(groupName: string, groupType?: string) {\n await this.ensureScreeb(\"identityGroupUnassign\");\n\n return _Screeb.identityGroupUnassign(groupName, groupType);\n }\n\n /**\n * Adds properties to the current user identity.\n *\n * @param userProperties The properties of your user.\n * ```text Requirements:\n * - Property names must be limited to 128 characters\n * - No more than 1000 attributes\n * - Supported types for values: string, number, boolean and Date.\n * ```\n *\n * @example\n * ```ts\n * // Set user properties\n * this.screeb.identityProperties(\n * {\n * firstname: '<user-firstname>',\n * lastname: '<user-lastname>',\n * plan: '<user-plan>',\n * last_seen_at: new Date(),\n * authenticated: true\n * }\n * );\n *\n * // Delete user property : set values to null\n * this.screeb.identityProperties(\n * {\n * age: null,\n * company: null,\n * logged: true,\n * }\n * );\n * ```\n */\n public async identityProperties(userProperties: _Screeb.PropertyRecord) {\n await this.ensureScreeb(\"identityProperties\");\n\n return _Screeb.identityProperties(userProperties);\n }\n\n /**\n * Resets the current user identity.\n * Warning: This command must be called only once, since it creates a new identity on Screeb side.\n *\n * @example\n * ```ts\n * this.screeb.identityReset();\n * ```\n */\n public async identityReset() {\n await this.ensureScreeb(\"identityReset\");\n\n return _Screeb.identityReset();\n }\n\n /**\n * Interrupts a running survey.\n *\n * @example\n * ```ts\n * this.screeb.surveyClose();\n * ```\n */\n public async surveyClose() {\n await this.ensureScreeb(\"surveyClose\");\n\n return _Screeb.surveyClose();\n }\n\n /**\n * Starts a survey by its ID.\n *\n * @example\n * ```ts\n * this.screeb.surveyStart(\n * '<UUID>',\n * false,\n * {\n * color: \"green\",\n * article_id: 42\n * },\n * {\n * version: \"1.0.0\",\n * onSurveyShowed: (payload) => console.log(\"Survey showed\", payload),\n * },\n * );\n * ```\n */\n public async surveyStart(\n surveyId: string,\n allowMultipleResponses: boolean,\n hiddenFields: _Screeb.PropertyRecord,\n hooks?: _Screeb.Hooks\n ) {\n await this.ensureScreeb(\"surveyStart\");\n\n return _Screeb.surveyStart(\n surveyId,\n allowMultipleResponses,\n hiddenFields,\n hooks\n );\n }\n\n /**\n * Forces a targeting check.\n *\n * @example\n * ```ts\n * this.screeb.targetingCheck();\n * ```\n */\n public async targetingCheck() {\n await this.ensureScreeb(\"targetingCheck\");\n\n return _Screeb.targetingCheck();\n }\n\n /**\n * Prints the current state of the targeting engine.\n *\n * @example\n * ```ts\n * console.log(await this.screeb.targetingDebug());\n * // targeting ************ SCREEB TARGETING RULES DEBUG **************\n * // Disabled surveys are not listed here.\n * //\n * // Screeb channel id: <UUID>\n * // Screeb respondent id: <UUID>\n * //\n * // Survey <UUID>:\n * // https://admin.screeb.app/org/last/survey/<UUID>/share\n * //\n * // - Rule of type \"Device type (desktop/mobile/tablet)\": true 🟢\n * // - Rule of type \"Multiple display\": true 🟢\n * // - Rule of type \"Capping per time between survey display on current respondent\": true 🟢\n * // - Rule of type \"User event count\": false 🔴\n * // - Rule of type \"Capping per respondent display count\": false 🔴\n * ```\n */\n public async targetingDebug() {\n await this.ensureScreeb(\"targetingDebug\");\n\n return _Screeb.targetingDebug();\n }\n\n /**\n * Initializes Screeb tag.\n *\n * @param websiteId Your website/channel id.\n * @param userId The unique identifier of your user.\n * @param userProperties The properties of your user.\n * ```text Requirements:\n * - Property names must be limited to 128 characters\n * - No more than 1000 attributes\n * - Supported types for values: string, number, boolean and Date\n * ```\n *\n * @example\n * ```ts\n * this.screeb.init(\n * \"<your-website-id>\",\n * \"<your-user-id>\",\n * {\n * firstname: '<user-firstname>',\n * lastname: '<user-lastname>',\n * plan: '<user-plan>',\n * last_seen_at: new Date(),\n * authenticated: true\n * },\n * {\n * version: \"1.0.0\",\n * onReady: (payload) => console.log(\"Screeb SDK is ready!\", payload),\n * },\n * );\n * ```\n */\n public async init(\n websiteId: string,\n userId?: string,\n userProperties?: _Screeb.PropertyRecord,\n hooks?: _Screeb.Hooks\n ) {\n await this.ensureScreeb(\"init\", true);\n\n this.isInitialized = true;\n\n return await _Screeb.init(websiteId, userId, userProperties, hooks);\n }\n\n /**\n * Appends Screeb tag into your dom.\n *\n * @param options Screeb module options.\n * @param options.window If you're running Screeb tag in an iframe, please set the inner window here.\n * @param options.screebEndpoint Please don't do this.\n *\n * @example\n * ```ts\n * this.screeb.load();\n * ```\n */\n public async load(options?: _Screeb.ScreebOptions) {\n return _Screeb.load({\n sdkName: \"sdk-angular\",\n sdkVersion: CONSTANTS.version,\n ...options,\n });\n }\n}\n","import { Inject, ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { Screeb } from \"./screeb\";\nimport { ScreebConfig } from \"./screeb-config\";\n\n@NgModule({\n providers: [Screeb, ScreebConfig],\n})\nexport class ScreebModule {\n /**\n * This is used to initialize Screeb at the top of your Angular application\n * @param config Configuration to pass to Screeb browser SDK\n *\n * @example\n * ```ts\n * ScreebModule.forRoot({\n * autoInit: true,\n * websiteId: \"<your-website-id>\",\n * userId: \"<your-user-id>\",\n * userProperties: {\n * firstname: '<user-firstname>',\n * lastname: '<user-lastname>',\n * plan: '<user-plan>',\n * last_seen_at: new Date(),\n * authenticated: true\n * },\n * {\n * version: \"1.0.0\",\n * onReady: (payload) => console.log(\"Screeb SDK is ready!\", payload),\n * },\n * })\n * ```\n */\n static forRoot(config: ScreebConfig): ModuleWithProviders<ScreebModule> {\n return {\n ngModule: ScreebModule,\n providers: [Screeb, { provide: ScreebConfig, useValue: config }],\n };\n }\n\n constructor(\n @Inject(ScreebConfig) config: ScreebConfig,\n @Inject(Screeb) screeb: Screeb\n ) {\n if (config.shouldLoad ?? true) {\n screeb.load();\n }\n\n if ((config.autoInit ?? false) && config.websiteId) {\n screeb.init(\n config.websiteId,\n config.userId,\n config.userProperties,\n config.hooks\n );\n }\n }\n}\n","/*\n * Public API Surface of screeb-sdk-angular\n */\n\nexport { ScreebModule } from \"./lib/screeb.module\";\nexport { ScreebConfig } from \"./lib/screeb-config\";\nexport { Screeb } from \"./lib/screeb\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["logger.log"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"screeb-sdk-angular.mjs","sources":["../../../projects/screeb-sdk-angular/src/lib/constants.ts","../../../projects/screeb-sdk-angular/src/lib/logger.ts","../../../projects/screeb-sdk-angular/src/lib/screeb-config.ts","../../../projects/screeb-sdk-angular/src/lib/screeb.ts","../../../projects/screeb-sdk-angular/src/lib/screeb.module.ts","../../../projects/screeb-sdk-angular/src/public-api.ts","../../../projects/screeb-sdk-angular/src/screeb-sdk-angular.ts"],"sourcesContent":["export default { version: \"0.1.12\" };\n","type LogLevel = \"info\" | \"error\" | \"warn\";\n\n/**\n * Logs messages in the console with a corresponding urgency\n *\n * @param level the urgency of the message\n * @param message the message to log in the console\n */\nexport const log = (level: LogLevel, message: string) => {\n const packageName = \"[@screeb/angular-sdk]\";\n\n switch (level) {\n case \"info\":\n // eslint-disable-next-line no-console\n console.log(`${packageName} ${message}`);\n break;\n case \"warn\":\n // eslint-disable-next-line no-console\n console.warn(`${packageName} ${message}`);\n break;\n case \"error\":\n // eslint-disable-next-line no-console\n console.error(`${packageName} ${message}`);\n break;\n default:\n // eslint-disable-next-line no-console\n console.log(`${packageName} ${message}`);\n }\n};\n","import { Injectable } from \"@angular/core\";\nimport { Hooks, PropertyRecord, ScreebOptions } from \"@screeb/sdk-browser\";\n\n/** Configuration of Screeb module */\n@Injectable({ providedIn: \"root\" })\nexport class ScreebConfig {\n /** Your website/channel id. */\n websiteId?: string;\n /** The unique identifier of your user. */\n userId?: string;\n /** The properties of your user. */\n userProperties?: PropertyRecord;\n /** Hooks to define callback for various event */\n hooks?: Hooks;\n /**\n * Indicates if Screeb should be automatically loaded.\n * This will ping to the Screeb servers.\n *\n * @remarks if `true`, 'load' does not need to be called manually. Can be used for multistaged environments\n */\n shouldLoad?: boolean;\n /**\n * Indicates if Screeb should be automatically initialized.\n *\n * @remarks if `true`, 'init' does not need to be called manually\n * */\n autoInit?: boolean;\n /**\n * Screeb tag initialization options.\n *\n * @remarks this is used is really particular cases, handle with care.\n * */\n options?: ScreebOptions;\n}\n","import { Inject, Injectable } from \"@angular/core\";\nimport * as _Screeb from \"@screeb/sdk-browser\";\n\nimport CONSTANTS from \"./constants\";\nimport * as logger from \"./logger\";\nimport { ScreebConfig } from \"./screeb-config\";\n\n@Injectable({ providedIn: \"root\" })\nexport class Screeb {\n private isInitialized = false;\n\n // eslint-disable-next-line no-unused-vars\n constructor(@Inject(ScreebConfig) private config: ScreebConfig) {}\n\n private async ensureScreeb(functionName: string, onlyLoaded = false) {\n if (!_Screeb.isLoaded() && !this.config.shouldLoad) {\n const message =\n \"Screeb instance is not loaded because `shouldLoad` is set to `false` in `ScreebModule` configuration.\";\n\n logger.log(\"warn\", message);\n\n return Promise.reject(message);\n }\n if (!this.isInitialized && !onlyLoaded) {\n const message = [\n `\"${functionName}\" was called but Screeb has not been initialized yet. `,\n `Please call 'init' before calling '${functionName}' or `,\n \"set 'autoInit' to true in the `ScreebModule` configuration.\",\n ].join(\"\");\n\n logger.log(\"warn\", message);\n\n return Promise.reject(message);\n }\n return Promise.resolve();\n }\n\n /**\n * Shutdowns current Screeb session.\n *\n * @example\n * ```ts\n * this.screeb.close();\n * ```\n */\n public async close() {\n await this.ensureScreeb(\"close\");\n\n return _Screeb.close();\n }\n\n /**\n * Prints the actual state information of Screeb tag.\n *\n * @example\n * ```ts\n * this.screeb.debug();\n * // ******************* SCREEB SESSION DEBUG *********************\n * // Screeb channel id: <UUID>\n * // Screeb channel type: widget\n * // Screeb respondent id: <UUID>\n * // Screeb survey id: none\n * // Screeb response id: none\n * //\n * // Screeb current session start: Thu May 04 2023 16:53:49 GMT+0200 (Central European Summer Time)\n * // Screeb current session last activity: Thu May 04 2023 17:41:30 GMT+0200 (Central European Summer Time)\n * //\n * // Screeb targeting engine status: disabled\n * // Screeb targeting engine: 3 surveys\n * //\n * // Detected platform: desktop\n * // Detected locale: en-GB\n * // Detected timezone: -120\n * // **************************************************************\n * ```\n */\n public async debug() {\n await this.ensureScreeb(\"debug\");\n\n return _Screeb.debug();\n }\n\n /**\n * Tracks a user event.\n *\n * @param eventName The event name.\n * @param eventProperties The properties of your event.\n * ```text Requirements:\n * - Property names must be limited to 128 characters\n * - No more than 1000 attributes\n * - Supported types for values: string, number, boolean and Date.\n * ```\n *\n * @example\n * ```ts\n * this.screeb.eventTrack(\n * \"Product added to cart\",\n * {\n * product_name: 'Red bike 2021',\n * category: 'sport',\n * color: 'red',\n * price: 299,\n * count: 1,\n * reference: '2CF093TG1',\n * delivery_method: 'UPS',\n * user_logged: false,\n * added_at: new Date(),\n * }\n * );\n * ```\n */\n public async eventTrack(\n eventName: string,\n eventProperties?: _Screeb.PropertyRecord\n ) {\n await this.ensureScreeb(\"eventTrack\");\n\n return _Screeb.eventTrack(eventName, eventProperties);\n }\n\n /**\n * Change the current user identity.\n * Warning: Running surveys will be closed.\n *\n * @param userId The unique identifier of your user.\n * @param userProperties The properties of your user.\n * ```text Requirements:\n * - Property names must be limited to 128 characters\n * - No more than 1000 attributes\n * - Supported types for values: string, number, boolean and Date.\n * ```\n *\n * @example\n * ```ts\n * this.screeb.identity(\n * \"<your-user-id>\",\n * {\n * firstname: '<user-firstname>',\n * lastname: '<user-lastname>',\n * plan: '<user-plan>',\n * last_seen_at: new Date(),\n * authenticated: true\n * }\n * );\n * ```\n */\n public async identity(\n userId: string,\n userProperties?: _Screeb.PropertyRecord\n ) {\n await this.ensureScreeb(\"identity\");\n\n return _Screeb.identity(userId, userProperties);\n }\n\n /**\n * Retrieves the current user identity.\n *\n * @example\n * ```ts\n * console.log(await this.screeb.identityGet());\n * // {\n * // channel_id: \"<UUID>\",\n * // anonymous_id: \"<UUID>\",\n * // user_id: \"<UUID>\",\n * // is_ready: true,\n * // session_id: \"<UUID>\",\n * // session_start: \"2023-05-04T16:30:15.882Z\",\n * // session_end: \"2023-05-04T17:02:09.087Z\",\n * // }\n * ```\n */\n public async identityGet() {\n await this.ensureScreeb(\"identityGet\");\n\n return _Screeb.identityGet();\n }\n\n /**\n * Assigns the current user to a group.\n *\n * @param groupName\n * @param groupType\n * @param groupProperties The properties of your user group.\n * ```text Requirements:\n * - Property names must be limited to 128 characters\n * - No more than 1000 attributes\n * - Supported types for values: string, number, boolean and Date.\n * ```\n *\n * @example\n * ```ts\n * this.screeb.identityGroupAssign(\n * 'company',\n * 'Apple',\n * {\n * address_line_1: 'Apple Campus',\n * address_line_2: '1 Infinite Loop',\n * city: 'Cupertino',\n * zipcode: 95014,\n * state: 'California',\n * country: 'United states',\n * }\n * );\n * ```\n */\n public async identityGroupAssign(\n groupName: string,\n groupType?: string,\n groupProperties?: _Screeb.PropertyRecord\n ) {\n await this.ensureScreeb(\"identityGroupAssign\");\n\n return _Screeb.identityGroupAssign(groupName, groupType, groupProperties);\n }\n\n /**\n * Unassigns the current user to a group.\n *\n * @param groupName The name of your user group.\n * @param groupType The type of your user group.\n *\n * @example\n * ```ts\n * this.screeb.identityGroupUnassign('company', 'Apple');\n * ```\n */\n public async identityGroupUnassign(groupName: string, groupType?: string) {\n await this.ensureScreeb(\"identityGroupUnassign\");\n\n return _Screeb.identityGroupUnassign(groupName, groupType);\n }\n\n /**\n * Adds properties to the current user identity.\n *\n * @param userProperties The properties of your user.\n * ```text Requirements:\n * - Property names must be limited to 128 characters\n * - No more than 1000 attributes\n * - Supported types for values: string, number, boolean and Date.\n * ```\n *\n * @example\n * ```ts\n * // Set user properties\n * this.screeb.identityProperties(\n * {\n * firstname: '<user-firstname>',\n * lastname: '<user-lastname>',\n * plan: '<user-plan>',\n * last_seen_at: new Date(),\n * authenticated: true\n * }\n * );\n *\n * // Delete user property : set values to null\n * this.screeb.identityProperties(\n * {\n * age: null,\n * company: null,\n * logged: true,\n * }\n * );\n * ```\n */\n public async identityProperties(userProperties: _Screeb.PropertyRecord) {\n await this.ensureScreeb(\"identityProperties\");\n\n return _Screeb.identityProperties(userProperties);\n }\n\n /**\n * Resets the current user identity.\n * Warning: This command must be called only once, since it creates a new identity on Screeb side.\n *\n * @example\n * ```ts\n * this.screeb.identityReset();\n * ```\n */\n public async identityReset() {\n await this.ensureScreeb(\"identityReset\");\n\n return _Screeb.identityReset();\n }\n\n /**\n * Interrupts a running survey.\n *\n * @example\n * ```ts\n * this.screeb.surveyClose();\n * ```\n */\n public async surveyClose() {\n await this.ensureScreeb(\"surveyClose\");\n\n return _Screeb.surveyClose();\n }\n\n /**\n * Starts a survey by its ID.\n *\n * @example\n * ```ts\n * this.screeb.surveyStart(\n * '<UUID>',\n * false,\n * {\n * color: \"green\",\n * article_id: 42\n * },\n * {\n * version: \"1.0.0\",\n * onSurveyShowed: (payload) => console.log(\"Survey showed\", payload),\n * },\n * \"en\"\n * );\n * ```\n */\n public async surveyStart(\n surveyId: string,\n allowMultipleResponses: boolean,\n hiddenFields: _Screeb.PropertyRecord,\n hooks?: _Screeb.Hooks,\n language?: string\n ) {\n await this.ensureScreeb(\"surveyStart\");\n\n return _Screeb.surveyStart(\n surveyId,\n allowMultipleResponses,\n hiddenFields,\n hooks,\n language\n );\n }\n\n /**\n * Interrupts a running message.\n *\n * @example\n * ```ts\n * this.screeb.messageClose();\n * ```\n */\n public async messageClose() {\n await this.ensureScreeb(\"messageClose\");\n\n return _Screeb.messageClose();\n }\n\n /**\n * Starts a message by its ID.\n *\n * @example\n * ```ts\n * this.screeb.messageStart(\n * '<UUID>',\n * false,\n * {\n * color: \"green\",\n * article_id: 42\n * },\n * {\n * version: \"1.0.0\",\n * onMessageShowed: (payload) => console.log(\"Message showed\", payload),\n * },\n * \"en\"\n * );\n * ```\n */\n public async messageStart(\n messageId: string,\n hiddenFields: _Screeb.PropertyRecord,\n hooks?: _Screeb.Hooks,\n language?: string\n ) {\n await this.ensureScreeb(\"messageStart\");\n\n return _Screeb.messageStart(messageId, hiddenFields, hooks, language);\n }\n\n /**\n * Forces a targeting check.\n *\n * @example\n * ```ts\n * this.screeb.targetingCheck();\n * ```\n */\n public async targetingCheck() {\n await this.ensureScreeb(\"targetingCheck\");\n\n return _Screeb.targetingCheck();\n }\n\n /**\n * Prints the current state of the targeting engine.\n *\n * @example\n * ```ts\n * console.log(await this.screeb.targetingDebug());\n * // targeting ************ SCREEB TARGETING RULES DEBUG **************\n * // Disabled surveys are not listed here.\n * //\n * // Screeb channel id: <UUID>\n * // Screeb respondent id: <UUID>\n * //\n * // Survey <UUID>:\n * // https://admin.screeb.app/org/last/survey/<UUID>/share\n * //\n * // - Rule of type \"Device type (desktop/mobile/tablet)\": true 🟢\n * // - Rule of type \"Multiple display\": true 🟢\n * // - Rule of type \"Capping per time between survey display on current respondent\": true 🟢\n * // - Rule of type \"User event count\": false 🔴\n * // - Rule of type \"Capping per respondent display count\": false 🔴\n * ```\n */\n public async targetingDebug() {\n await this.ensureScreeb(\"targetingDebug\");\n\n return _Screeb.targetingDebug();\n }\n\n /**\n * Initializes Screeb tag.\n *\n * @param websiteId Your website/channel id.\n * @param userId The unique identifier of your user.\n * @param userProperties The properties of your user.\n * ```text Requirements:\n * - Property names must be limited to 128 characters\n * - No more than 1000 attributes\n * - Supported types for values: string, number, boolean and Date\n * ```\n * @param language Force a specific language for the tag. eg: 'en'. default: browser language.\n *\n * @example\n * ```ts\n * this.screeb.init(\n * \"<your-website-id>\",\n * \"<your-user-id>\",\n * {\n * firstname: '<user-firstname>',\n * lastname: '<user-lastname>',\n * plan: '<user-plan>',\n * last_seen_at: new Date(),\n * authenticated: true\n * },\n * {\n * version: \"1.0.0\",\n * onReady: (payload) => console.log(\"Screeb SDK is ready!\", payload),\n * },\n * \"en\"\n * );\n * ```\n */\n public async init(\n websiteId: string,\n userId?: string,\n userProperties?: _Screeb.PropertyRecord,\n hooks?: _Screeb.Hooks,\n language?: string\n ) {\n await this.ensureScreeb(\"init\", true);\n\n this.isInitialized = true;\n\n return await _Screeb.init(\n websiteId,\n userId,\n userProperties,\n hooks,\n language\n );\n }\n\n /**\n * Appends Screeb tag into your dom.\n *\n * @param options Screeb module options.\n * @param options.window If you're running Screeb tag in an iframe, please set the inner window here.\n * @param options.screebEndpoint Please don't do this.\n *\n * @example\n * ```ts\n * this.screeb.load();\n * ```\n */\n public async load(options?: _Screeb.ScreebOptions) {\n return _Screeb.load({\n sdkName: \"sdk-angular\",\n sdkVersion: CONSTANTS.version,\n ...options,\n });\n }\n}\n","import { Inject, ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { Screeb } from \"./screeb\";\nimport { ScreebConfig } from \"./screeb-config\";\n\n@NgModule({\n providers: [Screeb, ScreebConfig],\n})\nexport class ScreebModule {\n /**\n * This is used to initialize Screeb at the top of your Angular application\n * @param config Configuration to pass to Screeb browser SDK\n *\n * @example\n * ```ts\n * ScreebModule.forRoot({\n * autoInit: true,\n * websiteId: \"<your-website-id>\",\n * userId: \"<your-user-id>\",\n * userProperties: {\n * firstname: '<user-firstname>',\n * lastname: '<user-lastname>',\n * plan: '<user-plan>',\n * last_seen_at: new Date(),\n * authenticated: true\n * },\n * {\n * version: \"1.0.0\",\n * onReady: (payload) => console.log(\"Screeb SDK is ready!\", payload),\n * },\n * })\n * ```\n */\n static forRoot(config: ScreebConfig): ModuleWithProviders<ScreebModule> {\n return {\n ngModule: ScreebModule,\n providers: [Screeb, { provide: ScreebConfig, useValue: config }],\n };\n }\n\n constructor(\n @Inject(ScreebConfig) config: ScreebConfig,\n @Inject(Screeb) screeb: Screeb\n ) {\n if (config.shouldLoad ?? true) {\n screeb.load();\n }\n\n if ((config.autoInit ?? false) && config.websiteId) {\n screeb.init(\n config.websiteId,\n config.userId,\n config.userProperties,\n config.hooks\n );\n }\n }\n}\n","/*\n * Public API Surface of screeb-sdk-angular\n */\n\nexport { ScreebModule } from \"./lib/screeb.module\";\nexport { ScreebConfig } from \"./lib/screeb-config\";\nexport { Screeb } from \"./lib/screeb\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["logger.log"],"mappings":"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"}
|
|
@@ -226,10 +226,41 @@ export declare class Screeb {
|
|
|
226
226
|
* version: "1.0.0",
|
|
227
227
|
* onSurveyShowed: (payload) => console.log("Survey showed", payload),
|
|
228
228
|
* },
|
|
229
|
+
* "en"
|
|
229
230
|
* );
|
|
230
231
|
* ```
|
|
231
232
|
*/
|
|
232
|
-
surveyStart(surveyId: string, allowMultipleResponses: boolean, hiddenFields: _Screeb.PropertyRecord, hooks?: _Screeb.Hooks): Promise<unknown>;
|
|
233
|
+
surveyStart(surveyId: string, allowMultipleResponses: boolean, hiddenFields: _Screeb.PropertyRecord, hooks?: _Screeb.Hooks, language?: string): Promise<unknown>;
|
|
234
|
+
/**
|
|
235
|
+
* Interrupts a running message.
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
* ```ts
|
|
239
|
+
* this.screeb.messageClose();
|
|
240
|
+
* ```
|
|
241
|
+
*/
|
|
242
|
+
messageClose(): Promise<unknown>;
|
|
243
|
+
/**
|
|
244
|
+
* Starts a message by its ID.
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```ts
|
|
248
|
+
* this.screeb.messageStart(
|
|
249
|
+
* '<UUID>',
|
|
250
|
+
* false,
|
|
251
|
+
* {
|
|
252
|
+
* color: "green",
|
|
253
|
+
* article_id: 42
|
|
254
|
+
* },
|
|
255
|
+
* {
|
|
256
|
+
* version: "1.0.0",
|
|
257
|
+
* onMessageShowed: (payload) => console.log("Message showed", payload),
|
|
258
|
+
* },
|
|
259
|
+
* "en"
|
|
260
|
+
* );
|
|
261
|
+
* ```
|
|
262
|
+
*/
|
|
263
|
+
messageStart(messageId: string, hiddenFields: _Screeb.PropertyRecord, hooks?: _Screeb.Hooks, language?: string): Promise<unknown>;
|
|
233
264
|
/**
|
|
234
265
|
* Forces a targeting check.
|
|
235
266
|
*
|
|
@@ -273,6 +304,7 @@ export declare class Screeb {
|
|
|
273
304
|
* - No more than 1000 attributes
|
|
274
305
|
* - Supported types for values: string, number, boolean and Date
|
|
275
306
|
* ```
|
|
307
|
+
* @param language Force a specific language for the tag. eg: 'en'. default: browser language.
|
|
276
308
|
*
|
|
277
309
|
* @example
|
|
278
310
|
* ```ts
|
|
@@ -290,10 +322,11 @@ export declare class Screeb {
|
|
|
290
322
|
* version: "1.0.0",
|
|
291
323
|
* onReady: (payload) => console.log("Screeb SDK is ready!", payload),
|
|
292
324
|
* },
|
|
325
|
+
* "en"
|
|
293
326
|
* );
|
|
294
327
|
* ```
|
|
295
328
|
*/
|
|
296
|
-
init(websiteId: string, userId?: string, userProperties?: _Screeb.PropertyRecord, hooks?: _Screeb.Hooks): Promise<unknown>;
|
|
329
|
+
init(websiteId: string, userId?: string, userProperties?: _Screeb.PropertyRecord, hooks?: _Screeb.Hooks, language?: string): Promise<unknown>;
|
|
297
330
|
/**
|
|
298
331
|
* Appends Screeb tag into your dom.
|
|
299
332
|
*
|
package/docs/classes/Screeb.md
CHANGED
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
- [identityReset](Screeb.md#identityreset)
|
|
28
28
|
- [init](Screeb.md#init)
|
|
29
29
|
- [load](Screeb.md#load)
|
|
30
|
+
- [messageClose](Screeb.md#messageclose)
|
|
31
|
+
- [messageStart](Screeb.md#messagestart)
|
|
30
32
|
- [surveyClose](Screeb.md#surveyclose)
|
|
31
33
|
- [surveyStart](Screeb.md#surveystart)
|
|
32
34
|
- [targetingCheck](Screeb.md#targetingcheck)
|
|
@@ -36,7 +38,7 @@
|
|
|
36
38
|
|
|
37
39
|
### constructor
|
|
38
40
|
|
|
39
|
-
• **new Screeb**(`config`)
|
|
41
|
+
• **new Screeb**(`config`): [`Screeb`](Screeb.md)
|
|
40
42
|
|
|
41
43
|
#### Parameters
|
|
42
44
|
|
|
@@ -44,6 +46,10 @@
|
|
|
44
46
|
| :------ | :------ |
|
|
45
47
|
| `config` | [`ScreebConfig`](ScreebConfig.md) |
|
|
46
48
|
|
|
49
|
+
#### Returns
|
|
50
|
+
|
|
51
|
+
[`Screeb`](Screeb.md)
|
|
52
|
+
|
|
47
53
|
## Properties
|
|
48
54
|
|
|
49
55
|
### config
|
|
@@ -60,13 +66,13 @@ ___
|
|
|
60
66
|
|
|
61
67
|
### close
|
|
62
68
|
|
|
63
|
-
▸ **close**(): `Promise
|
|
69
|
+
▸ **close**(): `Promise`\<`unknown`\>
|
|
64
70
|
|
|
65
71
|
Shutdowns current Screeb session.
|
|
66
72
|
|
|
67
73
|
#### Returns
|
|
68
74
|
|
|
69
|
-
`Promise
|
|
75
|
+
`Promise`\<`unknown`\>
|
|
70
76
|
|
|
71
77
|
**`Example`**
|
|
72
78
|
|
|
@@ -78,13 +84,13 @@ ___
|
|
|
78
84
|
|
|
79
85
|
### debug
|
|
80
86
|
|
|
81
|
-
▸ **debug**(): `Promise
|
|
87
|
+
▸ **debug**(): `Promise`\<`unknown`\>
|
|
82
88
|
|
|
83
89
|
Prints the actual state information of Screeb tag.
|
|
84
90
|
|
|
85
91
|
#### Returns
|
|
86
92
|
|
|
87
|
-
`Promise
|
|
93
|
+
`Promise`\<`unknown`\>
|
|
88
94
|
|
|
89
95
|
**`Example`**
|
|
90
96
|
|
|
@@ -113,7 +119,7 @@ ___
|
|
|
113
119
|
|
|
114
120
|
### ensureScreeb
|
|
115
121
|
|
|
116
|
-
▸
|
|
122
|
+
▸ **ensureScreeb**(`functionName`, `onlyLoaded?`): `Promise`\<`void`\>
|
|
117
123
|
|
|
118
124
|
#### Parameters
|
|
119
125
|
|
|
@@ -124,13 +130,13 @@ ___
|
|
|
124
130
|
|
|
125
131
|
#### Returns
|
|
126
132
|
|
|
127
|
-
`Promise
|
|
133
|
+
`Promise`\<`void`\>
|
|
128
134
|
|
|
129
135
|
___
|
|
130
136
|
|
|
131
137
|
### eventTrack
|
|
132
138
|
|
|
133
|
-
▸ **eventTrack**(`eventName`, `eventProperties?`): `Promise
|
|
139
|
+
▸ **eventTrack**(`eventName`, `eventProperties?`): `Promise`\<`unknown`\>
|
|
134
140
|
|
|
135
141
|
Tracks a user event.
|
|
136
142
|
|
|
@@ -143,7 +149,7 @@ Tracks a user event.
|
|
|
143
149
|
|
|
144
150
|
#### Returns
|
|
145
151
|
|
|
146
|
-
`Promise
|
|
152
|
+
`Promise`\<`unknown`\>
|
|
147
153
|
|
|
148
154
|
**`Example`**
|
|
149
155
|
|
|
@@ -168,7 +174,7 @@ ___
|
|
|
168
174
|
|
|
169
175
|
### identity
|
|
170
176
|
|
|
171
|
-
▸ **identity**(`userId`, `userProperties?`): `Promise
|
|
177
|
+
▸ **identity**(`userId`, `userProperties?`): `Promise`\<`unknown`\>
|
|
172
178
|
|
|
173
179
|
Change the current user identity.
|
|
174
180
|
Warning: Running surveys will be closed.
|
|
@@ -182,7 +188,7 @@ Warning: Running surveys will be closed.
|
|
|
182
188
|
|
|
183
189
|
#### Returns
|
|
184
190
|
|
|
185
|
-
`Promise
|
|
191
|
+
`Promise`\<`unknown`\>
|
|
186
192
|
|
|
187
193
|
**`Example`**
|
|
188
194
|
|
|
@@ -203,13 +209,13 @@ ___
|
|
|
203
209
|
|
|
204
210
|
### identityGet
|
|
205
211
|
|
|
206
|
-
▸ **identityGet**(): `Promise
|
|
212
|
+
▸ **identityGet**(): `Promise`\<`ScreebIdentityGetReturn`\>
|
|
207
213
|
|
|
208
214
|
Retrieves the current user identity.
|
|
209
215
|
|
|
210
216
|
#### Returns
|
|
211
217
|
|
|
212
|
-
`Promise
|
|
218
|
+
`Promise`\<`ScreebIdentityGetReturn`\>
|
|
213
219
|
|
|
214
220
|
**`Example`**
|
|
215
221
|
|
|
@@ -230,7 +236,7 @@ ___
|
|
|
230
236
|
|
|
231
237
|
### identityGroupAssign
|
|
232
238
|
|
|
233
|
-
▸ **identityGroupAssign**(`groupName`, `groupType?`, `groupProperties?`): `Promise
|
|
239
|
+
▸ **identityGroupAssign**(`groupName`, `groupType?`, `groupProperties?`): `Promise`\<`unknown`\>
|
|
234
240
|
|
|
235
241
|
Assigns the current user to a group.
|
|
236
242
|
|
|
@@ -244,7 +250,7 @@ Assigns the current user to a group.
|
|
|
244
250
|
|
|
245
251
|
#### Returns
|
|
246
252
|
|
|
247
|
-
`Promise
|
|
253
|
+
`Promise`\<`unknown`\>
|
|
248
254
|
|
|
249
255
|
**`Example`**
|
|
250
256
|
|
|
@@ -267,7 +273,7 @@ ___
|
|
|
267
273
|
|
|
268
274
|
### identityGroupUnassign
|
|
269
275
|
|
|
270
|
-
▸ **identityGroupUnassign**(`groupName`, `groupType?`): `Promise
|
|
276
|
+
▸ **identityGroupUnassign**(`groupName`, `groupType?`): `Promise`\<`unknown`\>
|
|
271
277
|
|
|
272
278
|
Unassigns the current user to a group.
|
|
273
279
|
|
|
@@ -280,7 +286,7 @@ Unassigns the current user to a group.
|
|
|
280
286
|
|
|
281
287
|
#### Returns
|
|
282
288
|
|
|
283
|
-
`Promise
|
|
289
|
+
`Promise`\<`unknown`\>
|
|
284
290
|
|
|
285
291
|
**`Example`**
|
|
286
292
|
|
|
@@ -292,7 +298,7 @@ ___
|
|
|
292
298
|
|
|
293
299
|
### identityProperties
|
|
294
300
|
|
|
295
|
-
▸ **identityProperties**(`userProperties`): `Promise
|
|
301
|
+
▸ **identityProperties**(`userProperties`): `Promise`\<`unknown`\>
|
|
296
302
|
|
|
297
303
|
Adds properties to the current user identity.
|
|
298
304
|
|
|
@@ -304,7 +310,7 @@ Adds properties to the current user identity.
|
|
|
304
310
|
|
|
305
311
|
#### Returns
|
|
306
312
|
|
|
307
|
-
`Promise
|
|
313
|
+
`Promise`\<`unknown`\>
|
|
308
314
|
|
|
309
315
|
**`Example`**
|
|
310
316
|
|
|
@@ -334,14 +340,14 @@ ___
|
|
|
334
340
|
|
|
335
341
|
### identityReset
|
|
336
342
|
|
|
337
|
-
▸ **identityReset**(): `Promise
|
|
343
|
+
▸ **identityReset**(): `Promise`\<`unknown`\>
|
|
338
344
|
|
|
339
345
|
Resets the current user identity.
|
|
340
346
|
Warning: This command must be called only once, since it creates a new identity on Screeb side.
|
|
341
347
|
|
|
342
348
|
#### Returns
|
|
343
349
|
|
|
344
|
-
`Promise
|
|
350
|
+
`Promise`\<`unknown`\>
|
|
345
351
|
|
|
346
352
|
**`Example`**
|
|
347
353
|
|
|
@@ -353,7 +359,7 @@ ___
|
|
|
353
359
|
|
|
354
360
|
### init
|
|
355
361
|
|
|
356
|
-
▸ **init**(`websiteId`, `userId?`, `userProperties?`, `hooks?`): `Promise
|
|
362
|
+
▸ **init**(`websiteId`, `userId?`, `userProperties?`, `hooks?`, `language?`): `Promise`\<`unknown`\>
|
|
357
363
|
|
|
358
364
|
Initializes Screeb tag.
|
|
359
365
|
|
|
@@ -365,10 +371,11 @@ Initializes Screeb tag.
|
|
|
365
371
|
| `userId?` | `string` | The unique identifier of your user. |
|
|
366
372
|
| `userProperties?` | `PropertyRecord` | The properties of your user. ```text Requirements: - Property names must be limited to 128 characters - No more than 1000 attributes - Supported types for values: string, number, boolean and Date ``` |
|
|
367
373
|
| `hooks?` | `Hooks` | - |
|
|
374
|
+
| `language?` | `string` | Force a specific language for the tag. eg: 'en'. default: browser language. |
|
|
368
375
|
|
|
369
376
|
#### Returns
|
|
370
377
|
|
|
371
|
-
`Promise
|
|
378
|
+
`Promise`\<`unknown`\>
|
|
372
379
|
|
|
373
380
|
**`Example`**
|
|
374
381
|
|
|
@@ -387,6 +394,7 @@ this.screeb.init(
|
|
|
387
394
|
version: "1.0.0",
|
|
388
395
|
onReady: (payload) => console.log("Screeb SDK is ready!", payload),
|
|
389
396
|
},
|
|
397
|
+
"en"
|
|
390
398
|
);
|
|
391
399
|
```
|
|
392
400
|
|
|
@@ -394,7 +402,7 @@ ___
|
|
|
394
402
|
|
|
395
403
|
### load
|
|
396
404
|
|
|
397
|
-
▸ **load**(`options?`): `Promise
|
|
405
|
+
▸ **load**(`options?`): `Promise`\<`undefined`\>
|
|
398
406
|
|
|
399
407
|
Appends Screeb tag into your dom.
|
|
400
408
|
|
|
@@ -406,7 +414,7 @@ Appends Screeb tag into your dom.
|
|
|
406
414
|
|
|
407
415
|
#### Returns
|
|
408
416
|
|
|
409
|
-
`Promise
|
|
417
|
+
`Promise`\<`undefined`\>
|
|
410
418
|
|
|
411
419
|
**`Example`**
|
|
412
420
|
|
|
@@ -416,15 +424,72 @@ this.screeb.load();
|
|
|
416
424
|
|
|
417
425
|
___
|
|
418
426
|
|
|
427
|
+
### messageClose
|
|
428
|
+
|
|
429
|
+
▸ **messageClose**(): `Promise`\<`unknown`\>
|
|
430
|
+
|
|
431
|
+
Interrupts a running message.
|
|
432
|
+
|
|
433
|
+
#### Returns
|
|
434
|
+
|
|
435
|
+
`Promise`\<`unknown`\>
|
|
436
|
+
|
|
437
|
+
**`Example`**
|
|
438
|
+
|
|
439
|
+
```ts
|
|
440
|
+
this.screeb.messageClose();
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
___
|
|
444
|
+
|
|
445
|
+
### messageStart
|
|
446
|
+
|
|
447
|
+
▸ **messageStart**(`messageId`, `hiddenFields`, `hooks?`, `language?`): `Promise`\<`unknown`\>
|
|
448
|
+
|
|
449
|
+
Starts a message by its ID.
|
|
450
|
+
|
|
451
|
+
#### Parameters
|
|
452
|
+
|
|
453
|
+
| Name | Type |
|
|
454
|
+
| :------ | :------ |
|
|
455
|
+
| `messageId` | `string` |
|
|
456
|
+
| `hiddenFields` | `PropertyRecord` |
|
|
457
|
+
| `hooks?` | `Hooks` |
|
|
458
|
+
| `language?` | `string` |
|
|
459
|
+
|
|
460
|
+
#### Returns
|
|
461
|
+
|
|
462
|
+
`Promise`\<`unknown`\>
|
|
463
|
+
|
|
464
|
+
**`Example`**
|
|
465
|
+
|
|
466
|
+
```ts
|
|
467
|
+
this.screeb.messageStart(
|
|
468
|
+
'<UUID>',
|
|
469
|
+
false,
|
|
470
|
+
{
|
|
471
|
+
color: "green",
|
|
472
|
+
article_id: 42
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
version: "1.0.0",
|
|
476
|
+
onMessageShowed: (payload) => console.log("Message showed", payload),
|
|
477
|
+
},
|
|
478
|
+
"en"
|
|
479
|
+
);
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
___
|
|
483
|
+
|
|
419
484
|
### surveyClose
|
|
420
485
|
|
|
421
|
-
▸ **surveyClose**(): `Promise
|
|
486
|
+
▸ **surveyClose**(): `Promise`\<`unknown`\>
|
|
422
487
|
|
|
423
488
|
Interrupts a running survey.
|
|
424
489
|
|
|
425
490
|
#### Returns
|
|
426
491
|
|
|
427
|
-
`Promise
|
|
492
|
+
`Promise`\<`unknown`\>
|
|
428
493
|
|
|
429
494
|
**`Example`**
|
|
430
495
|
|
|
@@ -436,7 +501,7 @@ ___
|
|
|
436
501
|
|
|
437
502
|
### surveyStart
|
|
438
503
|
|
|
439
|
-
▸ **surveyStart**(`surveyId`, `allowMultipleResponses`, `hiddenFields`, `hooks?`): `Promise
|
|
504
|
+
▸ **surveyStart**(`surveyId`, `allowMultipleResponses`, `hiddenFields`, `hooks?`, `language?`): `Promise`\<`unknown`\>
|
|
440
505
|
|
|
441
506
|
Starts a survey by its ID.
|
|
442
507
|
|
|
@@ -448,10 +513,11 @@ Starts a survey by its ID.
|
|
|
448
513
|
| `allowMultipleResponses` | `boolean` |
|
|
449
514
|
| `hiddenFields` | `PropertyRecord` |
|
|
450
515
|
| `hooks?` | `Hooks` |
|
|
516
|
+
| `language?` | `string` |
|
|
451
517
|
|
|
452
518
|
#### Returns
|
|
453
519
|
|
|
454
|
-
`Promise
|
|
520
|
+
`Promise`\<`unknown`\>
|
|
455
521
|
|
|
456
522
|
**`Example`**
|
|
457
523
|
|
|
@@ -467,6 +533,7 @@ this.screeb.surveyStart(
|
|
|
467
533
|
version: "1.0.0",
|
|
468
534
|
onSurveyShowed: (payload) => console.log("Survey showed", payload),
|
|
469
535
|
},
|
|
536
|
+
"en"
|
|
470
537
|
);
|
|
471
538
|
```
|
|
472
539
|
|
|
@@ -474,13 +541,13 @@ ___
|
|
|
474
541
|
|
|
475
542
|
### targetingCheck
|
|
476
543
|
|
|
477
|
-
▸ **targetingCheck**(): `Promise
|
|
544
|
+
▸ **targetingCheck**(): `Promise`\<`unknown`\>
|
|
478
545
|
|
|
479
546
|
Forces a targeting check.
|
|
480
547
|
|
|
481
548
|
#### Returns
|
|
482
549
|
|
|
483
|
-
`Promise
|
|
550
|
+
`Promise`\<`unknown`\>
|
|
484
551
|
|
|
485
552
|
**`Example`**
|
|
486
553
|
|
|
@@ -492,13 +559,13 @@ ___
|
|
|
492
559
|
|
|
493
560
|
### targetingDebug
|
|
494
561
|
|
|
495
|
-
▸ **targetingDebug**(): `Promise
|
|
562
|
+
▸ **targetingDebug**(): `Promise`\<`unknown`\>
|
|
496
563
|
|
|
497
564
|
Prints the current state of the targeting engine.
|
|
498
565
|
|
|
499
566
|
#### Returns
|
|
500
567
|
|
|
501
|
-
`Promise
|
|
568
|
+
`Promise`\<`unknown`\>
|
|
502
569
|
|
|
503
570
|
**`Example`**
|
|
504
571
|
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
### constructor
|
|
18
18
|
|
|
19
|
-
• **new ScreebModule**(`config`, `screeb`)
|
|
19
|
+
• **new ScreebModule**(`config`, `screeb`): [`ScreebModule`](ScreebModule.md)
|
|
20
20
|
|
|
21
21
|
#### Parameters
|
|
22
22
|
|
|
@@ -25,11 +25,15 @@
|
|
|
25
25
|
| `config` | [`ScreebConfig`](ScreebConfig.md) |
|
|
26
26
|
| `screeb` | [`Screeb`](Screeb.md) |
|
|
27
27
|
|
|
28
|
+
#### Returns
|
|
29
|
+
|
|
30
|
+
[`ScreebModule`](ScreebModule.md)
|
|
31
|
+
|
|
28
32
|
## Methods
|
|
29
33
|
|
|
30
34
|
### forRoot
|
|
31
35
|
|
|
32
|
-
▸
|
|
36
|
+
▸ **forRoot**(`config`): `ModuleWithProviders`\<[`ScreebModule`](ScreebModule.md)\>
|
|
33
37
|
|
|
34
38
|
This is used to initialize Screeb at the top of your Angular application
|
|
35
39
|
|
|
@@ -41,7 +45,7 @@ This is used to initialize Screeb at the top of your Angular application
|
|
|
41
45
|
|
|
42
46
|
#### Returns
|
|
43
47
|
|
|
44
|
-
`ModuleWithProviders
|
|
48
|
+
`ModuleWithProviders`\<[`ScreebModule`](ScreebModule.md)\>
|
|
45
49
|
|
|
46
50
|
**`Example`**
|
|
47
51
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@screeb/sdk-angular",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"description": "Screeb's browser sdk, optimized for Angular.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"product discovery",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"replace-version": "replace-in-files --string='0.0.0-dev' --replacement=$npm_package_version projects/screeb-sdk-angular/src/lib/constants.ts"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@screeb/sdk-browser": "^0.1.
|
|
53
|
+
"@screeb/sdk-browser": "^0.1.18"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@angular-devkit/build-angular": "^16.2.6",
|