@screeb/sdk-angular 0.1.10 → 0.1.11
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 +11 -8
- package/dist/screeb-sdk-angular/esm2022/lib/screeb.module.mjs +5 -5
- package/dist/screeb-sdk-angular/fesm2022/screeb-sdk-angular.mjs +18 -15
- package/dist/screeb-sdk-angular/fesm2022/screeb-sdk-angular.mjs.map +1 -1
- package/dist/screeb-sdk-angular/lib/screeb.d.ts +5 -2
- package/docs/classes/Screeb.md +41 -33
- package/docs/classes/ScreebConfig.md +5 -1
- package/docs/classes/ScreebModule.md +7 -3
- package/package.json +2 -2
- package/readme/screeb-logo.svg +15 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export default { version: "0.1.
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export default { version: "0.1.11" };
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NyZWViLXNkay1hbmd1bGFyL3NyYy9saWIvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7IHZlcnNpb246IFwiMC4xLjExXCIgfTtcbiJdfQ==
|
|
@@ -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,13 @@ 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);
|
|
287
288
|
}
|
|
288
289
|
/**
|
|
289
290
|
* Forces a targeting check.
|
|
@@ -334,6 +335,7 @@ export class Screeb {
|
|
|
334
335
|
* - No more than 1000 attributes
|
|
335
336
|
* - Supported types for values: string, number, boolean and Date
|
|
336
337
|
* ```
|
|
338
|
+
* @param language Force a specific language for the tag. eg: 'en'. default: browser language.
|
|
337
339
|
*
|
|
338
340
|
* @example
|
|
339
341
|
* ```ts
|
|
@@ -351,13 +353,14 @@ export class Screeb {
|
|
|
351
353
|
* version: "1.0.0",
|
|
352
354
|
* onReady: (payload) => console.log("Screeb SDK is ready!", payload),
|
|
353
355
|
* },
|
|
356
|
+
* "en"
|
|
354
357
|
* );
|
|
355
358
|
* ```
|
|
356
359
|
*/
|
|
357
|
-
async init(websiteId, userId, userProperties, hooks) {
|
|
360
|
+
async init(websiteId, userId, userProperties, hooks, language) {
|
|
358
361
|
await this.ensureScreeb("init", true);
|
|
359
362
|
this.isInitialized = true;
|
|
360
|
-
return await _Screeb.init(websiteId, userId, userProperties, hooks);
|
|
363
|
+
return await _Screeb.init(websiteId, userId, userProperties, hooks, language);
|
|
361
364
|
}
|
|
362
365
|
/**
|
|
363
366
|
* Appends Screeb tag into your dom.
|
|
@@ -378,14 +381,14 @@ export class Screeb {
|
|
|
378
381
|
...options,
|
|
379
382
|
});
|
|
380
383
|
}
|
|
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.
|
|
384
|
+
/** @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 }); }
|
|
385
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Screeb, providedIn: "root" }); }
|
|
383
386
|
}
|
|
384
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
387
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Screeb, decorators: [{
|
|
385
388
|
type: Injectable,
|
|
386
389
|
args: [{ providedIn: "root" }]
|
|
387
390
|
}], ctorParameters: function () { return [{ type: i1.ScreebConfig, decorators: [{
|
|
388
391
|
type: Inject,
|
|
389
392
|
args: [ScreebConfig]
|
|
390
393
|
}] }]; } });
|
|
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=
|
|
394
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NyZWViLXNkay1hbmd1bGFyL3NyYy9saWIvc2NyZWViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxPQUFPLE1BQU0scUJBQXFCLENBQUM7QUFFL0MsT0FBTyxTQUFTLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRy9DLE1BQU0sT0FBTyxNQUFNO0lBR2pCLDBDQUEwQztJQUMxQyxZQUEwQyxNQUFvQjtRQUFwQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBSHRELGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBR21DLENBQUM7SUFFMUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFvQixFQUFFLFVBQVUsR0FBRyxLQUFLO1FBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtZQUNsRCxNQUFNLE9BQU8sR0FDWCx1R0FBdUcsQ0FBQztZQUUxRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUU1QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN0QyxNQUFNLE9BQU8sR0FBRztnQkFDZCxJQUFJLFlBQVksd0RBQXdEO2dCQUN4RSxzQ0FBc0MsWUFBWSxPQUFPO2dCQUN6RCw2REFBNkQ7YUFDOUQsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFWCxNQUFN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SUFBSSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFVBQVUsRUFBRSxTQUFTLENBQUMsT0FBTztZQUM3QixHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO2tJQTViVSxNQUFNLGtCQUlHLFlBQVk7c0lBSnJCLE1BQU0sY0FETyxNQUFNOzs0RkFDbkIsTUFBTTtrQkFEbEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUtuQixNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0ICogYXMgX1NjcmVlYiBmcm9tIFwiQHNjcmVlYi9zZGstYnJvd3NlclwiO1xuXG5pbXBvcnQgQ09OU1RBTlRTIGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0ICogYXMgbG9nZ2VyIGZyb20gXCIuL2xvZ2dlclwiO1xuaW1wb3J0IHsgU2NyZWViQ29uZmlnIH0gZnJvbSBcIi4vc2NyZWViLWNvbmZpZ1wiO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46IFwicm9vdFwiIH0pXG5leHBvcnQgY2xhc3MgU2NyZWViIHtcbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoU2NyZWViQ29uZmlnKSBwcml2YXRlIGNvbmZpZzogU2NyZWViQ29uZmlnKSB7fVxuXG4gIHByaXZhdGUgYXN5bmMgZW5zdXJlU2NyZWViKGZ1bmN0aW9uTmFtZTogc3RyaW5nLCBvbmx5TG9hZGVkID0gZmFsc2UpIHtcbiAgICBpZiAoIV9TY3JlZWIuaXNMb2FkZWQoKSAmJiAhdGhpcy5jb25maWcuc2hvdWxkTG9hZCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICAgIFwiU2NyZWViIGluc3RhbmNlIGlzIG5vdCBsb2FkZWQgYmVjYXVzZSBgc2hvdWxkTG9hZGAgaXMgc2V0IHRvIGBmYWxzZWAgaW4gYFNjcmVlYk1vZHVsZWAgY29uZmlndXJhdGlvbi5cIjtcblxuICAgICAgbG9nZ2VyLmxvZyhcIndhcm5cIiwgbWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChtZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzSW5pdGlhbGl6ZWQgJiYgIW9ubHlMb2FkZWQpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBbXG4gICAgICAgIGBcIiR7ZnVuY3Rpb25OYW1lfVwiIHdhcyBjYWxsZWQgYnV0IFNjcmVlYiBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgeWV0LiBgLFxuICAgICAgICBgUGxlYXNlIGNhbGwgJ2luaXQnIGJlZm9yZSBjYWxsaW5nICcke2Z1bmN0aW9uTmFtZX0nIG9yIGAsXG4gICAgICAgIFwic2V0ICdhdXRvSW5pdCcgdG8gdHJ1ZSBpbiB0aGUgYFNjcmVlYk1vZHVsZWAgY29uZmlndXJhdGlvbi5cIixcbiAgICAgIF0uam9pbihcIlwiKTtcblxuICAgICAgbG9nZ2VyLmxvZyhcIndhcm5cIiwgbWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChtZXNzYWdlKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNodXRkb3ducyBjdXJyZW50IFNjcmVlYiBzZXNzaW9uLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiB0aGlzLnNjcmVlYi5jbG9zZSgpO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbG9zZSgpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcImNsb3NlXCIpO1xuXG4gICAgcmV0dXJuIF9TY3JlZWIuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmludHMgdGhlIGFjdHVhbCBzdGF0ZSBpbmZvcm1hdGlvbiBvZiBTY3JlZWIgdGFnLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiB0aGlzLnNjcmVlYi5kZWJ1ZygpO1xuICAgKiAvLyAqKioqKioqKioqKioqKioqKioqIFNDUkVFQiBTRVNTSU9OIERFQlVHICoqKioqKioqKioqKioqKioqKioqKlxuICAgKiAvLyBTY3JlZWIgY2hhbm5lbCBpZDogPFVVSUQ+XG4gICAqIC8vIFNjcmVlYiBjaGFubmVsIHR5cGU6IHdpZGdldFxuICAgKiAvLyBTY3JlZWIgcmVzcG9uZGVudCBpZDogPFVVSUQ+XG4gICAqIC8vIFNjcmVlYiBzdXJ2ZXkgaWQ6IG5vbmVcbiAgICogLy8gU2NyZWViIHJlc3BvbnNlIGlkOiBub25lXG4gICAqIC8vXG4gICAqIC8vIFNjcmVlYiBjdXJyZW50IHNlc3Npb24gc3RhcnQ6IFRodSBNYXkgMDQgMjAyMyAxNjo1Mzo0OSBHTVQrMDIwMCAoQ2VudHJhbCBFdXJvcGVhbiBTdW1tZXIgVGltZSlcbiAgICogLy8gU2NyZWViIGN1cnJlbnQgc2Vzc2lvbiBsYXN0IGFjdGl2aXR5OiBUaHUgTWF5IDA0IDIwMjMgMTc6NDE6MzAgR01UKzAyMDAgKENlbnRyYWwgRXVyb3BlYW4gU3VtbWVyIFRpbWUpXG4gICAqIC8vXG4gICAqIC8vIFNjcmVlYiB0YXJnZXRpbmcgZW5naW5lIHN0YXR1czogZGlzYWJsZWRcbiAgICogLy8gU2NyZWViIHRhcmdldGluZyBlbmdpbmU6IDMgc3VydmV5c1xuICAgKiAvL1xuICAgKiAvLyBEZXRlY3RlZCBwbGF0Zm9ybTogZGVza3RvcFxuICAgKiAvLyBEZXRlY3RlZCBsb2NhbGU6IGVuLUdCXG4gICAqIC8vIERldGVjdGVkIHRpbWV6b25lOiAtMTIwXG4gICAqIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlYnVnKCkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwiZGVidWdcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5kZWJ1ZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYWNrcyBhIHVzZXIgZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudE5hbWUgVGhlIGV2ZW50IG5hbWUuXG4gICAqIEBwYXJhbSBldmVudFByb3BlcnRpZXMgVGhlIHByb3BlcnRpZXMgb2YgeW91ciBldmVudC5cbiAgICogYGBgdGV4dCBSZXF1aXJlbWVudHM6XG4gICAqICAgLSBQcm9wZXJ0eSBuYW1lcyBtdXN0IGJlIGxpbWl0ZWQgdG8gMTI4IGNoYXJhY3RlcnNcbiAgICogICAtIE5vIG1vcmUgdGhhbiAxMDAwIGF0dHJpYnV0ZXNcbiAgICogICAtIFN1cHBvcnRlZCB0eXBlcyBmb3IgdmFsdWVzOiBzdHJpbmcsIG51bWJlciwgYm9vbGVhbiBhbmQgRGF0ZS5cbiAgICogYGBgXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLmV2ZW50VHJhY2soXG4gICAqICAgXCJQcm9kdWN0IGFkZGVkIHRvIGNhcnRcIixcbiAgICogICB7XG4gICAqICAgICBwcm9kdWN0X25hbWU6ICdSZWQgYmlrZSAyMDIxJyxcbiAgICogICAgIGNhdGVnb3J5OiAnc3BvcnQnLFxuICAgKiAgICAgY29sb3I6ICdyZWQnLFxuICAgKiAgICAgcHJpY2U6IDI5OSxcbiAgICogICAgIGNvdW50OiAxLFxuICAgKiAgICAgcmVmZXJlbmNlOiAnMkNGMDkzVEcxJyxcbiAgICogICAgIGRlbGl2ZXJ5X21ldGhvZDogJ1VQUycsXG4gICAqICAgICB1c2VyX2xvZ2dlZDogZmFsc2UsXG4gICAqICAgICBhZGRlZF9hdDogbmV3IERhdGUoKSxcbiAgICogICB9XG4gICAqICk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGV2ZW50VHJhY2soXG4gICAgZXZlbnROYW1lOiBzdHJpbmcsXG4gICAgZXZlbnRQcm9wZXJ0aWVzPzogX1NjcmVlYi5Qcm9wZXJ0eVJlY29yZFxuICApIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcImV2ZW50VHJhY2tcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5ldmVudFRyYWNrKGV2ZW50TmFtZSwgZXZlbnRQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgdGhlIGN1cnJlbnQgdXNlciBpZGVudGl0eS5cbiAgICogV2FybmluZzogUnVubmluZyBzdXJ2ZXlzIHdpbGwgYmUgY2xvc2VkLlxuICAgKlxuICAgKiBAcGFyYW0gdXNlcklkIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB5b3VyIHVzZXIuXG4gICAqIEBwYXJhbSB1c2VyUHJvcGVydGllcyBUaGUgcHJvcGVydGllcyBvZiB5b3VyIHVzZXIuXG4gICAqIGBgYHRleHQgUmVxdWlyZW1lbnRzOlxuICAgKiAgIC0gUHJvcGVydHkgbmFtZXMgbXVzdCBiZSBsaW1pdGVkIHRvIDEyOCBjaGFyYWN0ZXJzXG4gICAqICAgLSBObyBtb3JlIHRoYW4gMTAwMCBhdHRyaWJ1dGVzXG4gICAqICAgLSBTdXBwb3J0ZWQgdHlwZXMgZm9yIHZhbHVlczogc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4gYW5kIERhdGUuXG4gICAqIGBgYFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiB0aGlzLnNjcmVlYi5pZGVudGl0eShcbiAgICogICBcIjx5b3VyLXVzZXItaWQ+XCIsXG4gICAqICAge1xuICAgKiAgICAgZmlyc3RuYW1lOiAnPHVzZXItZmlyc3RuYW1lPicsXG4gICAqICAgICBsYXN0bmFtZTogJzx1c2VyLWxhc3RuYW1lPicsXG4gICAqICAgICBwbGFuOiAnPHVzZXItcGxhbj4nLFxuICAgKiAgICAgbGFzdF9zZWVuX2F0OiBuZXcgRGF0ZSgpLFxuICAgKiAgICAgYXV0aGVudGljYXRlZDogdHJ1ZVxuICAgKiAgIH1cbiAgICogKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaWRlbnRpdHkoXG4gICAgdXNlcklkOiBzdHJpbmcsXG4gICAgdXNlclByb3BlcnRpZXM/OiBfU2NyZWViLlByb3BlcnR5UmVjb3JkXG4gICkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwiaWRlbnRpdHlcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5pZGVudGl0eSh1c2VySWQsIHVzZXJQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgdXNlciBpZGVudGl0eS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogY29uc29sZS5sb2coYXdhaXQgdGhpcy5zY3JlZWIuaWRlbnRpdHlHZXQoKSk7XG4gICAqIC8vIHtcbiAgICogLy8gICBjaGFubmVsX2lkOiBcIjxVVUlEPlwiLFxuICAgKiAvLyAgIGFub255bW91c19pZDogXCI8VVVJRD5cIixcbiAgICogLy8gICB1c2VyX2lkOiBcIjxVVUlEPlwiLFxuICAgKiAvLyAgIGlzX3JlYWR5OiB0cnVlLFxuICAgKiAvLyAgIHNlc3Npb25faWQ6IFwiPFVVSUQ+XCIsXG4gICAqIC8vICAgc2Vzc2lvbl9zdGFydDogXCIyMDIzLTA1LTA0VDE2OjMwOjE1Ljg4MlpcIixcbiAgICogLy8gICBzZXNzaW9uX2VuZDogXCIyMDIzLTA1LTA0VDE3OjAyOjA5LjA4N1pcIixcbiAgICogLy8gfVxuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpZGVudGl0eUdldCgpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcImlkZW50aXR5R2V0XCIpO1xuXG4gICAgcmV0dXJuIF9TY3JlZWIuaWRlbnRpdHlHZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3NpZ25zIHRoZSBjdXJyZW50IHVzZXIgdG8gYSBncm91cC5cbiAgICpcbiAgICogQHBhcmFtIGdyb3VwTmFtZVxuICAgKiBAcGFyYW0gZ3JvdXBUeXBlXG4gICAqIEBwYXJhbSBncm91cFByb3BlcnRpZXMgVGhlIHByb3BlcnRpZXMgb2YgeW91ciB1c2VyIGdyb3VwLlxuICAgKiBgYGB0ZXh0IFJlcXVpcmVtZW50czpcbiAgICogICAtIFByb3BlcnR5IG5hbWVzIG11c3QgYmUgbGltaXRlZCB0byAxMjggY2hhcmFjdGVyc1xuICAgKiAgIC0gTm8gbW9yZSB0aGFuIDEwMDAgYXR0cmlidXRlc1xuICAgKiAgIC0gU3VwcG9ydGVkIHR5cGVzIGZvciB2YWx1ZXM6IHN0cmluZywgbnVtYmVyLCBib29sZWFuIGFuZCBEYXRlLlxuICAgKiBgYGBcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIuaWRlbnRpdHlHcm91cEFzc2lnbihcbiAgICogICAnY29tcGFueScsXG4gICAqICAgJ0FwcGxlJyxcbiAgICogICB7XG4gICAqICAgICBhZGRyZXNzX2xpbmVfMTogJ0FwcGxlIENhbXB1cycsXG4gICAqICAgICBhZGRyZXNzX2xpbmVfMjogJzEgSW5maW5pdGUgTG9vcCcsXG4gICAqICAgICBjaXR5OiAnQ3VwZXJ0aW5vJyxcbiAgICogICAgIHppcGNvZGU6IDk1MDE0LFxuICAgKiAgICAgc3RhdGU6ICdDYWxpZm9ybmlhJyxcbiAgICogICAgIGNvdW50cnk6ICdVbml0ZWQgc3RhdGVzJyxcbiAgICogICB9XG4gICAqICk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlkZW50aXR5R3JvdXBBc3NpZ24oXG4gICAgZ3JvdXBOYW1lOiBzdHJpbmcsXG4gICAgZ3JvdXBUeXBlPzogc3RyaW5nLFxuICAgIGdyb3VwUHJvcGVydGllcz86IF9TY3JlZWIuUHJvcGVydHlSZWNvcmRcbiAgKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJpZGVudGl0eUdyb3VwQXNzaWduXCIpO1xuXG4gICAgcmV0dXJuIF9TY3JlZWIuaWRlbnRpdHlHcm91cEFzc2lnbihncm91cE5hbWUsIGdyb3VwVHlwZSwgZ3JvdXBQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFzc2lnbnMgdGhlIGN1cnJlbnQgdXNlciB0byBhIGdyb3VwLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JvdXBOYW1lIFRoZSBuYW1lIG9mIHlvdXIgdXNlciBncm91cC5cbiAgICogQHBhcmFtIGdyb3VwVHlwZSBUaGUgdHlwZSBvZiB5b3VyIHVzZXIgZ3JvdXAuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLmlkZW50aXR5R3JvdXBVbmFzc2lnbignY29tcGFueScsICdBcHBsZScpO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpZGVudGl0eUdyb3VwVW5hc3NpZ24oZ3JvdXBOYW1lOiBzdHJpbmcsIGdyb3VwVHlwZT86IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwiaWRlbnRpdHlHcm91cFVuYXNzaWduXCIpO1xuXG4gICAgcmV0dXJuIF9TY3JlZWIuaWRlbnRpdHlHcm91cFVuYXNzaWduKGdyb3VwTmFtZSwgZ3JvdXBUeXBlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHByb3BlcnRpZXMgdG8gdGhlIGN1cnJlbnQgdXNlciBpZGVudGl0eS5cbiAgICpcbiAgICogQHBhcmFtIHVzZXJQcm9wZXJ0aWVzIFRoZSBwcm9wZXJ0aWVzIG9mIHlvdXIgdXNlci5cbiAgICogYGBgdGV4dCBSZXF1aXJlbWVudHM6XG4gICAqICAgLSBQcm9wZXJ0eSBuYW1lcyBtdXN0IGJlIGxpbWl0ZWQgdG8gMTI4IGNoYXJhY3RlcnNcbiAgICogICAtIE5vIG1vcmUgdGhhbiAxMDAwIGF0dHJpYnV0ZXNcbiAgICogICAtIFN1cHBvcnRlZCB0eXBlcyBmb3IgdmFsdWVzOiBzdHJpbmcsIG51bWJlciwgYm9vbGVhbiBhbmQgRGF0ZS5cbiAgICogYGBgXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIC8vIFNldCB1c2VyIHByb3BlcnRpZXNcbiAgICogdGhpcy5zY3JlZWIuaWRlbnRpdHlQcm9wZXJ0aWVzKFxuICAgKiAgIHtcbiAgICogICAgIGZpcnN0bmFtZTogJzx1c2VyLWZpcnN0bmFtZT4nLFxuICAgKiAgICAgbGFzdG5hbWU6ICc8dXNlci1sYXN0bmFtZT4nLFxuICAgKiAgICAgcGxhbjogJzx1c2VyLXBsYW4+JyxcbiAgICogICAgIGxhc3Rfc2Vlbl9hdDogbmV3IERhdGUoKSxcbiAgICogICAgIGF1dGhlbnRpY2F0ZWQ6IHRydWVcbiAgICogICB9XG4gICAqICk7XG4gICAqXG4gICAqIC8vIERlbGV0ZSB1c2VyIHByb3BlcnR5IDogc2V0IHZhbHVlcyB0byBudWxsXG4gICAqIHRoaXMuc2NyZWViLmlkZW50aXR5UHJvcGVydGllcyhcbiAgICogICB7XG4gICAqICAgICBhZ2U6IG51bGwsXG4gICAqICAgICBjb21wYW55OiBudWxsLFxuICAgKiAgICAgbG9nZ2VkOiB0cnVlLFxuICAgKiAgIH1cbiAgICogKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaWRlbnRpdHlQcm9wZXJ0aWVzKHVzZXJQcm9wZXJ0aWVzOiBfU2NyZWViLlByb3BlcnR5UmVjb3JkKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJpZGVudGl0eVByb3BlcnRpZXNcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5pZGVudGl0eVByb3BlcnRpZXModXNlclByb3BlcnRpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgY3VycmVudCB1c2VyIGlkZW50aXR5LlxuICAgKiBXYXJuaW5nOiBUaGlzIGNvbW1hbmQgbXVzdCBiZSBjYWxsZWQgb25seSBvbmNlLCBzaW5jZSBpdCBjcmVhdGVzIGEgbmV3IGlkZW50aXR5IG9uIFNjcmVlYiBzaWRlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiB0aGlzLnNjcmVlYi5pZGVudGl0eVJlc2V0KCk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlkZW50aXR5UmVzZXQoKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJpZGVudGl0eVJlc2V0XCIpO1xuXG4gICAgcmV0dXJuIF9TY3JlZWIuaWRlbnRpdHlSZXNldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEludGVycnVwdHMgYSBydW5uaW5nIHN1cnZleS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIuc3VydmV5Q2xvc2UoKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc3VydmV5Q2xvc2UoKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJzdXJ2ZXlDbG9zZVwiKTtcblxuICAgIHJldHVybiBfU2NyZWViLnN1cnZleUNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnRzIGEgc3VydmV5IGJ5IGl0cyBJRC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIuc3VydmV5U3RhcnQoXG4gICAqICAgJzxVVUlEPicsXG4gICAqICAgZmFsc2UsXG4gICAqICAge1xuICAgKiAgICAgY29sb3I6IFwiZ3JlZW5cIixcbiAgICogICAgIGFydGljbGVfaWQ6IDQyXG4gICAqICAgfSxcbiAgICogICB7XG4gICAqICAgICB2ZXJzaW9uOiBcIjEuMC4wXCIsXG4gICAqICAgICBvblN1cnZleVNob3dlZDogKHBheWxvYWQpID0+IGNvbnNvbGUubG9nKFwiU3VydmV5IHNob3dlZFwiLCBwYXlsb2FkKSxcbiAgICogICB9LFxuICAgKiAgIFwiZW5cIlxuICAgKiApO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzdXJ2ZXlTdGFydChcbiAgICBzdXJ2ZXlJZDogc3RyaW5nLFxuICAgIGFsbG93TXVsdGlwbGVSZXNwb25zZXM6IGJvb2xlYW4sXG4gICAgaGlkZGVuRmllbGRzOiBfU2NyZWViLlByb3BlcnR5UmVjb3JkLFxuICAgIGhvb2tzPzogX1NjcmVlYi5Ib29rcyxcbiAgICBsYW5ndWFnZT86IHN0cmluZ1xuICApIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcInN1cnZleVN0YXJ0XCIpO1xuXG4gICAgcmV0dXJuIF9TY3JlZWIuc3VydmV5U3RhcnQoXG4gICAgICBzdXJ2ZXlJZCxcbiAgICAgIGFsbG93TXVsdGlwbGVSZXNwb25zZXMsXG4gICAgICBoaWRkZW5GaWVsZHMsXG4gICAgICBob29rcyxcbiAgICAgIGxhbmd1YWdlXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgYSB0YXJnZXRpbmcgY2hlY2suXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLnRhcmdldGluZ0NoZWNrKCk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHRhcmdldGluZ0NoZWNrKCkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwidGFyZ2V0aW5nQ2hlY2tcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi50YXJnZXRpbmdDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByaW50cyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgdGFyZ2V0aW5nIGVuZ2luZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogY29uc29sZS5sb2coYXdhaXQgdGhpcy5zY3JlZWIudGFyZ2V0aW5nRGVidWcoKSk7XG4gICAqIC8vIHRhcmdldGluZyAqKioqKioqKioqKiogU0NSRUVCIFRBUkdFVElORyBSVUxFUyBERUJVRyAqKioqKioqKioqKioqKlxuICAgKiAvLyBEaXNhYmxlZCBzdXJ2ZXlzIGFyZSBub3QgbGlzdGVkIGhlcmUuXG4gICAqIC8vXG4gICAqIC8vIFNjcmVlYiBjaGFubmVsIGlkOiA8VVVJRD5cbiAgICogLy8gU2NyZWViIHJlc3BvbmRlbnQgaWQ6IDxVVUlEPlxuICAgKiAvL1xuICAgKiAvLyBTdXJ2ZXkgPFVVSUQ+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.11" };
|
|
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,13 @@ 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);
|
|
323
324
|
}
|
|
324
325
|
/**
|
|
325
326
|
* Forces a targeting check.
|
|
@@ -370,6 +371,7 @@ class Screeb {
|
|
|
370
371
|
* - No more than 1000 attributes
|
|
371
372
|
* - Supported types for values: string, number, boolean and Date
|
|
372
373
|
* ```
|
|
374
|
+
* @param language Force a specific language for the tag. eg: 'en'. default: browser language.
|
|
373
375
|
*
|
|
374
376
|
* @example
|
|
375
377
|
* ```ts
|
|
@@ -387,13 +389,14 @@ class Screeb {
|
|
|
387
389
|
* version: "1.0.0",
|
|
388
390
|
* onReady: (payload) => console.log("Screeb SDK is ready!", payload),
|
|
389
391
|
* },
|
|
392
|
+
* "en"
|
|
390
393
|
* );
|
|
391
394
|
* ```
|
|
392
395
|
*/
|
|
393
|
-
async init(websiteId, userId, userProperties, hooks) {
|
|
396
|
+
async init(websiteId, userId, userProperties, hooks, language) {
|
|
394
397
|
await this.ensureScreeb("init", true);
|
|
395
398
|
this.isInitialized = true;
|
|
396
|
-
return await _Screeb.init(websiteId, userId, userProperties, hooks);
|
|
399
|
+
return await _Screeb.init(websiteId, userId, userProperties, hooks, language);
|
|
397
400
|
}
|
|
398
401
|
/**
|
|
399
402
|
* Appends Screeb tag into your dom.
|
|
@@ -414,10 +417,10 @@ class Screeb {
|
|
|
414
417
|
...options,
|
|
415
418
|
});
|
|
416
419
|
}
|
|
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.
|
|
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" }); }
|
|
419
422
|
}
|
|
420
|
-
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: [{
|
|
421
424
|
type: Injectable,
|
|
422
425
|
args: [{ providedIn: "root" }]
|
|
423
426
|
}], ctorParameters: function () { return [{ type: ScreebConfig, decorators: [{
|
|
@@ -464,11 +467,11 @@ class ScreebModule {
|
|
|
464
467
|
screeb.init(config.websiteId, config.userId, config.userProperties, config.hooks);
|
|
465
468
|
}
|
|
466
469
|
}
|
|
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.
|
|
470
|
+
/** @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 }); }
|
|
471
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ScreebModule }); }
|
|
472
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebModule, providers: [Screeb, ScreebConfig] }); }
|
|
470
473
|
}
|
|
471
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
474
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebModule, decorators: [{
|
|
472
475
|
type: NgModule,
|
|
473
476
|
args: [{
|
|
474
477
|
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.11\" };\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 * 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,11 @@ 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>;
|
|
233
234
|
/**
|
|
234
235
|
* Forces a targeting check.
|
|
235
236
|
*
|
|
@@ -273,6 +274,7 @@ export declare class Screeb {
|
|
|
273
274
|
* - No more than 1000 attributes
|
|
274
275
|
* - Supported types for values: string, number, boolean and Date
|
|
275
276
|
* ```
|
|
277
|
+
* @param language Force a specific language for the tag. eg: 'en'. default: browser language.
|
|
276
278
|
*
|
|
277
279
|
* @example
|
|
278
280
|
* ```ts
|
|
@@ -290,10 +292,11 @@ export declare class Screeb {
|
|
|
290
292
|
* version: "1.0.0",
|
|
291
293
|
* onReady: (payload) => console.log("Screeb SDK is ready!", payload),
|
|
292
294
|
* },
|
|
295
|
+
* "en"
|
|
293
296
|
* );
|
|
294
297
|
* ```
|
|
295
298
|
*/
|
|
296
|
-
init(websiteId: string, userId?: string, userProperties?: _Screeb.PropertyRecord, hooks?: _Screeb.Hooks): Promise<unknown>;
|
|
299
|
+
init(websiteId: string, userId?: string, userProperties?: _Screeb.PropertyRecord, hooks?: _Screeb.Hooks, language?: string): Promise<unknown>;
|
|
297
300
|
/**
|
|
298
301
|
* Appends Screeb tag into your dom.
|
|
299
302
|
*
|
package/docs/classes/Screeb.md
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
|
|
37
37
|
### constructor
|
|
38
38
|
|
|
39
|
-
• **new Screeb**(`config`)
|
|
39
|
+
• **new Screeb**(`config`): [`Screeb`](Screeb.md)
|
|
40
40
|
|
|
41
41
|
#### Parameters
|
|
42
42
|
|
|
@@ -44,6 +44,10 @@
|
|
|
44
44
|
| :------ | :------ |
|
|
45
45
|
| `config` | [`ScreebConfig`](ScreebConfig.md) |
|
|
46
46
|
|
|
47
|
+
#### Returns
|
|
48
|
+
|
|
49
|
+
[`Screeb`](Screeb.md)
|
|
50
|
+
|
|
47
51
|
## Properties
|
|
48
52
|
|
|
49
53
|
### config
|
|
@@ -60,13 +64,13 @@ ___
|
|
|
60
64
|
|
|
61
65
|
### close
|
|
62
66
|
|
|
63
|
-
▸ **close**(): `Promise
|
|
67
|
+
▸ **close**(): `Promise`\<`unknown`\>
|
|
64
68
|
|
|
65
69
|
Shutdowns current Screeb session.
|
|
66
70
|
|
|
67
71
|
#### Returns
|
|
68
72
|
|
|
69
|
-
`Promise
|
|
73
|
+
`Promise`\<`unknown`\>
|
|
70
74
|
|
|
71
75
|
**`Example`**
|
|
72
76
|
|
|
@@ -78,13 +82,13 @@ ___
|
|
|
78
82
|
|
|
79
83
|
### debug
|
|
80
84
|
|
|
81
|
-
▸ **debug**(): `Promise
|
|
85
|
+
▸ **debug**(): `Promise`\<`unknown`\>
|
|
82
86
|
|
|
83
87
|
Prints the actual state information of Screeb tag.
|
|
84
88
|
|
|
85
89
|
#### Returns
|
|
86
90
|
|
|
87
|
-
`Promise
|
|
91
|
+
`Promise`\<`unknown`\>
|
|
88
92
|
|
|
89
93
|
**`Example`**
|
|
90
94
|
|
|
@@ -113,7 +117,7 @@ ___
|
|
|
113
117
|
|
|
114
118
|
### ensureScreeb
|
|
115
119
|
|
|
116
|
-
▸
|
|
120
|
+
▸ **ensureScreeb**(`functionName`, `onlyLoaded?`): `Promise`\<`void`\>
|
|
117
121
|
|
|
118
122
|
#### Parameters
|
|
119
123
|
|
|
@@ -124,13 +128,13 @@ ___
|
|
|
124
128
|
|
|
125
129
|
#### Returns
|
|
126
130
|
|
|
127
|
-
`Promise
|
|
131
|
+
`Promise`\<`void`\>
|
|
128
132
|
|
|
129
133
|
___
|
|
130
134
|
|
|
131
135
|
### eventTrack
|
|
132
136
|
|
|
133
|
-
▸ **eventTrack**(`eventName`, `eventProperties?`): `Promise
|
|
137
|
+
▸ **eventTrack**(`eventName`, `eventProperties?`): `Promise`\<`unknown`\>
|
|
134
138
|
|
|
135
139
|
Tracks a user event.
|
|
136
140
|
|
|
@@ -143,7 +147,7 @@ Tracks a user event.
|
|
|
143
147
|
|
|
144
148
|
#### Returns
|
|
145
149
|
|
|
146
|
-
`Promise
|
|
150
|
+
`Promise`\<`unknown`\>
|
|
147
151
|
|
|
148
152
|
**`Example`**
|
|
149
153
|
|
|
@@ -168,7 +172,7 @@ ___
|
|
|
168
172
|
|
|
169
173
|
### identity
|
|
170
174
|
|
|
171
|
-
▸ **identity**(`userId`, `userProperties?`): `Promise
|
|
175
|
+
▸ **identity**(`userId`, `userProperties?`): `Promise`\<`unknown`\>
|
|
172
176
|
|
|
173
177
|
Change the current user identity.
|
|
174
178
|
Warning: Running surveys will be closed.
|
|
@@ -182,7 +186,7 @@ Warning: Running surveys will be closed.
|
|
|
182
186
|
|
|
183
187
|
#### Returns
|
|
184
188
|
|
|
185
|
-
`Promise
|
|
189
|
+
`Promise`\<`unknown`\>
|
|
186
190
|
|
|
187
191
|
**`Example`**
|
|
188
192
|
|
|
@@ -203,13 +207,13 @@ ___
|
|
|
203
207
|
|
|
204
208
|
### identityGet
|
|
205
209
|
|
|
206
|
-
▸ **identityGet**(): `Promise
|
|
210
|
+
▸ **identityGet**(): `Promise`\<`ScreebIdentityGetReturn`\>
|
|
207
211
|
|
|
208
212
|
Retrieves the current user identity.
|
|
209
213
|
|
|
210
214
|
#### Returns
|
|
211
215
|
|
|
212
|
-
`Promise
|
|
216
|
+
`Promise`\<`ScreebIdentityGetReturn`\>
|
|
213
217
|
|
|
214
218
|
**`Example`**
|
|
215
219
|
|
|
@@ -230,7 +234,7 @@ ___
|
|
|
230
234
|
|
|
231
235
|
### identityGroupAssign
|
|
232
236
|
|
|
233
|
-
▸ **identityGroupAssign**(`groupName`, `groupType?`, `groupProperties?`): `Promise
|
|
237
|
+
▸ **identityGroupAssign**(`groupName`, `groupType?`, `groupProperties?`): `Promise`\<`unknown`\>
|
|
234
238
|
|
|
235
239
|
Assigns the current user to a group.
|
|
236
240
|
|
|
@@ -244,7 +248,7 @@ Assigns the current user to a group.
|
|
|
244
248
|
|
|
245
249
|
#### Returns
|
|
246
250
|
|
|
247
|
-
`Promise
|
|
251
|
+
`Promise`\<`unknown`\>
|
|
248
252
|
|
|
249
253
|
**`Example`**
|
|
250
254
|
|
|
@@ -267,7 +271,7 @@ ___
|
|
|
267
271
|
|
|
268
272
|
### identityGroupUnassign
|
|
269
273
|
|
|
270
|
-
▸ **identityGroupUnassign**(`groupName`, `groupType?`): `Promise
|
|
274
|
+
▸ **identityGroupUnassign**(`groupName`, `groupType?`): `Promise`\<`unknown`\>
|
|
271
275
|
|
|
272
276
|
Unassigns the current user to a group.
|
|
273
277
|
|
|
@@ -280,7 +284,7 @@ Unassigns the current user to a group.
|
|
|
280
284
|
|
|
281
285
|
#### Returns
|
|
282
286
|
|
|
283
|
-
`Promise
|
|
287
|
+
`Promise`\<`unknown`\>
|
|
284
288
|
|
|
285
289
|
**`Example`**
|
|
286
290
|
|
|
@@ -292,7 +296,7 @@ ___
|
|
|
292
296
|
|
|
293
297
|
### identityProperties
|
|
294
298
|
|
|
295
|
-
▸ **identityProperties**(`userProperties`): `Promise
|
|
299
|
+
▸ **identityProperties**(`userProperties`): `Promise`\<`unknown`\>
|
|
296
300
|
|
|
297
301
|
Adds properties to the current user identity.
|
|
298
302
|
|
|
@@ -304,7 +308,7 @@ Adds properties to the current user identity.
|
|
|
304
308
|
|
|
305
309
|
#### Returns
|
|
306
310
|
|
|
307
|
-
`Promise
|
|
311
|
+
`Promise`\<`unknown`\>
|
|
308
312
|
|
|
309
313
|
**`Example`**
|
|
310
314
|
|
|
@@ -334,14 +338,14 @@ ___
|
|
|
334
338
|
|
|
335
339
|
### identityReset
|
|
336
340
|
|
|
337
|
-
▸ **identityReset**(): `Promise
|
|
341
|
+
▸ **identityReset**(): `Promise`\<`unknown`\>
|
|
338
342
|
|
|
339
343
|
Resets the current user identity.
|
|
340
344
|
Warning: This command must be called only once, since it creates a new identity on Screeb side.
|
|
341
345
|
|
|
342
346
|
#### Returns
|
|
343
347
|
|
|
344
|
-
`Promise
|
|
348
|
+
`Promise`\<`unknown`\>
|
|
345
349
|
|
|
346
350
|
**`Example`**
|
|
347
351
|
|
|
@@ -353,7 +357,7 @@ ___
|
|
|
353
357
|
|
|
354
358
|
### init
|
|
355
359
|
|
|
356
|
-
▸ **init**(`websiteId`, `userId?`, `userProperties?`, `hooks?`): `Promise
|
|
360
|
+
▸ **init**(`websiteId`, `userId?`, `userProperties?`, `hooks?`, `language?`): `Promise`\<`unknown`\>
|
|
357
361
|
|
|
358
362
|
Initializes Screeb tag.
|
|
359
363
|
|
|
@@ -365,10 +369,11 @@ Initializes Screeb tag.
|
|
|
365
369
|
| `userId?` | `string` | The unique identifier of your user. |
|
|
366
370
|
| `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
371
|
| `hooks?` | `Hooks` | - |
|
|
372
|
+
| `language?` | `string` | Force a specific language for the tag. eg: 'en'. default: browser language. |
|
|
368
373
|
|
|
369
374
|
#### Returns
|
|
370
375
|
|
|
371
|
-
`Promise
|
|
376
|
+
`Promise`\<`unknown`\>
|
|
372
377
|
|
|
373
378
|
**`Example`**
|
|
374
379
|
|
|
@@ -387,6 +392,7 @@ this.screeb.init(
|
|
|
387
392
|
version: "1.0.0",
|
|
388
393
|
onReady: (payload) => console.log("Screeb SDK is ready!", payload),
|
|
389
394
|
},
|
|
395
|
+
"en"
|
|
390
396
|
);
|
|
391
397
|
```
|
|
392
398
|
|
|
@@ -394,7 +400,7 @@ ___
|
|
|
394
400
|
|
|
395
401
|
### load
|
|
396
402
|
|
|
397
|
-
▸ **load**(`options?`): `Promise
|
|
403
|
+
▸ **load**(`options?`): `Promise`\<`undefined`\>
|
|
398
404
|
|
|
399
405
|
Appends Screeb tag into your dom.
|
|
400
406
|
|
|
@@ -406,7 +412,7 @@ Appends Screeb tag into your dom.
|
|
|
406
412
|
|
|
407
413
|
#### Returns
|
|
408
414
|
|
|
409
|
-
`Promise
|
|
415
|
+
`Promise`\<`undefined`\>
|
|
410
416
|
|
|
411
417
|
**`Example`**
|
|
412
418
|
|
|
@@ -418,13 +424,13 @@ ___
|
|
|
418
424
|
|
|
419
425
|
### surveyClose
|
|
420
426
|
|
|
421
|
-
▸ **surveyClose**(): `Promise
|
|
427
|
+
▸ **surveyClose**(): `Promise`\<`unknown`\>
|
|
422
428
|
|
|
423
429
|
Interrupts a running survey.
|
|
424
430
|
|
|
425
431
|
#### Returns
|
|
426
432
|
|
|
427
|
-
`Promise
|
|
433
|
+
`Promise`\<`unknown`\>
|
|
428
434
|
|
|
429
435
|
**`Example`**
|
|
430
436
|
|
|
@@ -436,7 +442,7 @@ ___
|
|
|
436
442
|
|
|
437
443
|
### surveyStart
|
|
438
444
|
|
|
439
|
-
▸ **surveyStart**(`surveyId`, `allowMultipleResponses`, `hiddenFields`, `hooks?`): `Promise
|
|
445
|
+
▸ **surveyStart**(`surveyId`, `allowMultipleResponses`, `hiddenFields`, `hooks?`, `language?`): `Promise`\<`unknown`\>
|
|
440
446
|
|
|
441
447
|
Starts a survey by its ID.
|
|
442
448
|
|
|
@@ -448,10 +454,11 @@ Starts a survey by its ID.
|
|
|
448
454
|
| `allowMultipleResponses` | `boolean` |
|
|
449
455
|
| `hiddenFields` | `PropertyRecord` |
|
|
450
456
|
| `hooks?` | `Hooks` |
|
|
457
|
+
| `language?` | `string` |
|
|
451
458
|
|
|
452
459
|
#### Returns
|
|
453
460
|
|
|
454
|
-
`Promise
|
|
461
|
+
`Promise`\<`unknown`\>
|
|
455
462
|
|
|
456
463
|
**`Example`**
|
|
457
464
|
|
|
@@ -467,6 +474,7 @@ this.screeb.surveyStart(
|
|
|
467
474
|
version: "1.0.0",
|
|
468
475
|
onSurveyShowed: (payload) => console.log("Survey showed", payload),
|
|
469
476
|
},
|
|
477
|
+
"en"
|
|
470
478
|
);
|
|
471
479
|
```
|
|
472
480
|
|
|
@@ -474,13 +482,13 @@ ___
|
|
|
474
482
|
|
|
475
483
|
### targetingCheck
|
|
476
484
|
|
|
477
|
-
▸ **targetingCheck**(): `Promise
|
|
485
|
+
▸ **targetingCheck**(): `Promise`\<`unknown`\>
|
|
478
486
|
|
|
479
487
|
Forces a targeting check.
|
|
480
488
|
|
|
481
489
|
#### Returns
|
|
482
490
|
|
|
483
|
-
`Promise
|
|
491
|
+
`Promise`\<`unknown`\>
|
|
484
492
|
|
|
485
493
|
**`Example`**
|
|
486
494
|
|
|
@@ -492,13 +500,13 @@ ___
|
|
|
492
500
|
|
|
493
501
|
### targetingDebug
|
|
494
502
|
|
|
495
|
-
▸ **targetingDebug**(): `Promise
|
|
503
|
+
▸ **targetingDebug**(): `Promise`\<`unknown`\>
|
|
496
504
|
|
|
497
505
|
Prints the current state of the targeting engine.
|
|
498
506
|
|
|
499
507
|
#### Returns
|
|
500
508
|
|
|
501
|
-
`Promise
|
|
509
|
+
`Promise`\<`unknown`\>
|
|
502
510
|
|
|
503
511
|
**`Example`**
|
|
504
512
|
|
|
@@ -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.11",
|
|
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.17"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@angular-devkit/build-angular": "^16.2.6",
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<svg width="773" height="366" viewBox="0 0 773 366" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_201_47)">
|
|
3
|
+
<path fill-rule="evenodd" clip-rule="evenodd"
|
|
4
|
+
d="M711.7 197.1C714.6 194.1 717.2 191.1 719.7 187.9C750.7 201 772.5 230.9 772.4 266.5V364.7L684.5 365.3H606.7C558.6 365.3 520.5 325.3 520.5 277.1C520.5 261.5 524.5 245.9 531.5 232H630.4C661.2 232 690.1 219.5 711.7 197.1ZM600.2 292.8C609.1 292.8 616.1 285.6 616.1 276.9C616.1 268.4 609 261.2 600.2 261.2C591.5 261.2 584.5 268.4 584.5 276.9C584.5 285.6 591.5 292.8 600.2 292.8ZM645.5 292.8C654.4 292.8 661.4 285.6 661.4 276.9C661.4 268.4 654.4 261.2 645.5 261.2C636.8 261.2 629.8 268.4 629.8 276.9C629.8 285.6 636.8 292.8 645.5 292.8ZM690.9 292.8C699.8 292.8 706.8 285.6 706.8 276.9C706.8 268.4 699.7 261.2 690.9 261.2C682.2 261.2 675.2 268.4 675.2 276.9C675.2 285.6 682.2 292.8 690.9 292.8Z"
|
|
5
|
+
fill="#5e21f1" />
|
|
6
|
+
<path fill-rule="evenodd" clip-rule="evenodd"
|
|
7
|
+
d="M626.5 213C682 213 725.9 166.6 725.9 111.1C725.9 55.6 682 0 626.4 0H102.7C47.2 0 0 42.7 0 98.3V211.8L102.7 213H626.5ZM98.8 147.6C98.8 151.7 100.9 155.4 103.8 157.5C117.2 167.1 133.1 171.9 148.6 171.7C174.4 171.7 192.5 158.4 192.5 134.6V134.3C192.5 113.4 178.9 104.7 154.6 98.4C133.9 93.1 128.8 90.6 128.8 82.7V82.4C128.8 76.6 134.1 72 144.2 72C152.4 72 160.6 74.9 169.3 80C171.4 81.2 173.4 81.9 176 81.9C182.8 81.9 188.3 76.6 188.3 69.8C188.3 64.7 185.4 61.1 182.5 59.4C171.8 52.6 159.1 48.8 144.6 48.8C120.1 48.8 102.7 63.2 102.7 84.9V85.2C102.7 109 118.3 115.6 142.4 121.8C162.4 126.9 166.5 130.3 166.5 137V137.4C166.5 144.4 160 148.7 149.2 148.7C137.6 148.7 127.7 144.6 118.6 137.9C116.9 136.7 114.5 135.5 111.1 135.5C104.3 135.5 98.8 140.8 98.8 147.6ZM200.8 124.9V124.6C200.8 98.4 220.8 76.9 248.8 76.9C262.6 76.9 272.4 80.7 280.1 87.2C281.8 88.6 284.2 91.6 284.2 96.1C284.2 102.6 278.9 107.7 272.4 107.7C269 107.7 266.4 106.3 264.9 105.1C260.3 101.5 255.5 99.3 248.7 99.3C235.7 99.3 226.5 110.8 226.5 124.3V124.6C226.5 138.6 235.6 149.9 249.7 149.9C256.5 149.9 261.8 147.5 266.8 143.6C268.2 142.6 270.7 141.2 273.8 141.2C280 141.2 284.7 146.2 284.7 152.3C284.7 155.7 283.2 158.5 280.9 160.5C273.2 167.5 263.5 172.3 248.4 172.3C220.9 172.2 200.8 151.1 200.8 124.9ZM308.1 77.5C300.9 77.5 295.1 83.3 295.1 90.5V158.1C295.1 165.3 300.9 171.1 308.1 171.1C315.3 171.1 321.1 165.3 321.1 158.1V133.8C321.1 115.4 328.4 105.3 341.6 102.2C346.9 101 351.3 96.9 351.3 90.1C351.3 82.8 346.7 77.5 338.7 77.5C331 77.5 324.9 85.7 321.1 94.6V90.5C321.1 83.3 315.3 77.5 308.1 77.5ZM521.3 121C521.3 102 507.8 76.9 477.2 76.9C458.9 76.9 444.3 87.1 437 101.9C430.9 88.5 418 76.9 397.2 76.9C370.5 76.9 351.9 98.4 351.9 124.6V124.9C351.9 152.9 372.2 172.3 399.8 172.3C413.1 172.3 423.6 168 431.6 161.2C433.5 159.5 435 156.9 435 153.5C435 147.7 430.7 143.2 424.9 143.2C422.2 143.2 420.5 143.9 418.6 145.3C413.3 149.2 407.3 151.5 400.1 151.5C388.5 151.5 380.3 145.3 377.7 133.6H432.561C436.215 156.976 455.14 172.4 479.8 172.4C493.1 172.4 503.6 168.1 511.6 161.3C513.5 159.6 515 157 515 153.6C515 147.8 510.7 143.3 504.9 143.3C502.2 143.3 500.5 144 498.6 145.4C493.3 149.3 487.3 151.6 480.1 151.6C468.5 151.6 460.3 145.4 457.7 133.7H509.2C516 133.4 521.3 128.5 521.3 121ZM432.5 133.2L432.522 133.349C432.308 133.302 432.246 133.251 432.5 133.2ZM377.4 117.2C379.5 105.4 386.5 97.7 397.2 97.7C408.1 97.7 415 105.6 416.5 117.2H377.4ZM457.4 117.2C459.5 105.4 466.5 97.7 477.2 97.7C488.1 97.7 495 105.6 496.5 117.2H457.4ZM546.4 44.4C539.2 44.4 533.4 50.2 533.4 57.4V158.3C533.4 165.5 539.2 171.3 546.4 171.3C553.6 171.3 559.4 165.5 559.4 158.5V158.3C565.5 165.7 574.1 172 587.9 172C609.6 172 629.6 155.2 629.6 124.6V124.3C629.6 93.7 609.3 76.9 587.9 76.9C574.4 76.9 565.7 83.3 559.4 91.8V57.4C559.4 50.2 553.6 44.4 546.4 44.4ZM603.7 124.3V124.6C603.7 139.9 593.4 149.9 581.3 149.9C569.2 149.9 559.1 139.8 559.1 124.6V124.3C559.1 109.1 569.2 99 581.3 99C593.4 99 603.7 109.1 603.7 124.3Z"
|
|
8
|
+
fill="#5e21f1" />
|
|
9
|
+
</g>
|
|
10
|
+
<defs>
|
|
11
|
+
<clipPath id="clip0_201_47">
|
|
12
|
+
<rect width="772.5" height="365.4" fill="#5e21f1" />
|
|
13
|
+
</clipPath>
|
|
14
|
+
</defs>
|
|
15
|
+
</svg>
|