@screeb/sdk-angular 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/README.md +35 -7
  2. package/dist/sdk-angular/esm2022/lib/constants.mjs +2 -0
  3. package/dist/sdk-angular/esm2022/lib/logger.mjs +27 -0
  4. package/dist/sdk-angular/esm2022/lib/screeb-config.mjs +12 -0
  5. package/dist/sdk-angular/esm2022/lib/screeb.mjs +444 -0
  6. package/dist/sdk-angular/esm2022/lib/screeb.module.mjs +62 -0
  7. package/dist/sdk-angular/esm2022/public-api.mjs +7 -0
  8. package/dist/sdk-angular/esm2022/screeb-sdk-angular.mjs +5 -0
  9. package/dist/{screeb-sdk-angular → sdk-angular}/fesm2022/screeb-sdk-angular.mjs +5 -17
  10. package/dist/sdk-angular/fesm2022/screeb-sdk-angular.mjs.map +1 -0
  11. package/dist/{screeb-sdk-angular → sdk-angular}/index.d.ts +1 -1
  12. package/dist/{screeb-sdk-angular → sdk-angular}/lib/screeb-config.d.ts +3 -1
  13. package/dist/{screeb-sdk-angular → sdk-angular}/lib/screeb.d.ts +1 -10
  14. package/dist/{screeb-sdk-angular → sdk-angular}/package.json +1 -1
  15. package/docs/classes/Screeb.md +2 -20
  16. package/docs/classes/ScreebConfig.md +9 -0
  17. package/package.json +30 -30
  18. package/dist/screeb-sdk-angular/esm2022/lib/constants.mjs +0 -2
  19. package/dist/screeb-sdk-angular/esm2022/lib/logger.mjs +0 -27
  20. package/dist/screeb-sdk-angular/esm2022/lib/screeb-config.mjs +0 -12
  21. package/dist/screeb-sdk-angular/esm2022/lib/screeb.mjs +0 -456
  22. package/dist/screeb-sdk-angular/esm2022/lib/screeb.module.mjs +0 -62
  23. package/dist/screeb-sdk-angular/esm2022/public-api.mjs +0 -7
  24. package/dist/screeb-sdk-angular/esm2022/screeb-sdk-angular.mjs +0 -5
  25. package/dist/screeb-sdk-angular/fesm2022/screeb-sdk-angular.mjs.map +0 -1
  26. /package/dist/{screeb-sdk-angular → sdk-angular}/lib/constants.d.ts +0 -0
  27. /package/dist/{screeb-sdk-angular → sdk-angular}/lib/logger.d.ts +0 -0
  28. /package/dist/{screeb-sdk-angular → sdk-angular}/lib/screeb.module.d.ts +0 -0
  29. /package/dist/{screeb-sdk-angular → sdk-angular}/public-api.d.ts +0 -0
@@ -0,0 +1,62 @@
1
+ import { Inject, NgModule } from "@angular/core";
2
+ import { Screeb } from "./screeb";
3
+ import { ScreebConfig } from "./screeb-config";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./screeb-config";
6
+ import * as i2 from "./screeb";
7
+ export class ScreebModule {
8
+ /**
9
+ * This is used to initialize Screeb at the top of your Angular application
10
+ * @param config Configuration to pass to Screeb browser SDK
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * ScreebModule.forRoot({
15
+ * autoInit: true,
16
+ * websiteId: "<your-website-id>",
17
+ * userId: "<your-user-id>",
18
+ * userProperties: {
19
+ * firstname: '<user-firstname>',
20
+ * lastname: '<user-lastname>',
21
+ * plan: '<user-plan>',
22
+ * last_seen_at: new Date(),
23
+ * authenticated: true
24
+ * },
25
+ * {
26
+ * version: "1.0.0",
27
+ * onReady: (payload) => console.log("Screeb SDK is ready!", payload),
28
+ * },
29
+ * })
30
+ * ```
31
+ */
32
+ static forRoot(config) {
33
+ return {
34
+ ngModule: ScreebModule,
35
+ providers: [Screeb, { provide: ScreebConfig, useValue: config }],
36
+ };
37
+ }
38
+ constructor(config, screeb) {
39
+ if (config.shouldLoad ?? true) {
40
+ screeb.load();
41
+ }
42
+ if ((config.autoInit ?? false) && config.websiteId) {
43
+ screeb.init(config.websiteId, config.userId, config.userProperties, config.hooks, undefined, config.spaNavigationHandler);
44
+ }
45
+ }
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
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebModule, decorators: [{
51
+ type: NgModule,
52
+ args: [{
53
+ providers: [Screeb, ScreebConfig],
54
+ }]
55
+ }], ctorParameters: function () { return [{ type: i1.ScreebConfig, decorators: [{
56
+ type: Inject,
57
+ args: [ScreebConfig]
58
+ }] }, { type: i2.Screeb, decorators: [{
59
+ type: Inject,
60
+ args: [Screeb]
61
+ }] }]; } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWViLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay1hbmd1bGFyL3NyYy9saWIvc2NyZWViLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFLL0MsTUFBTSxPQUFPLFlBQVk7SUFDdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BdUJHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFvQjtRQUNqQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLFlBQVk7WUFDdEIsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7U0FDakUsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUN3QixNQUFvQixFQUMxQixNQUFjO1FBRTlCLElBQUksTUFBTSxDQUFDLFVBQVUsSUFBSSxJQUFJLEVBQUU7WUFDN0IsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQ2xELE1BQU0sQ0FBQyxJQUFJLENBQ1QsTUFBTSxDQUFDLFNBQVMsRUFDaEIsTUFBTSxDQUFDLE1BQU0sRUFDYixNQUFNLENBQUMsY0FBYyxFQUNyQixNQUFNLENBQUMsS0FBSyxFQUNaLFNBQVMsRUFDVCxNQUFNLENBQUMsb0JBQW9CLENBQzVCLENBQUM7U0FDSDtJQUNILENBQUM7a0lBbERVLFlBQVksa0JBaUNiLFlBQVksYUFDWixNQUFNO21JQWxDTCxZQUFZO21JQUFaLFlBQVksYUFGWixDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUM7OzRGQUV0QixZQUFZO2tCQUh4QixRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUM7aUJBQ2xDOzswQkFrQ0ksTUFBTTsyQkFBQyxZQUFZOzswQkFDbkIsTUFBTTsyQkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTY3JlZWIgfSBmcm9tIFwiLi9zY3JlZWJcIjtcbmltcG9ydCB7IFNjcmVlYkNvbmZpZyB9IGZyb20gXCIuL3NjcmVlYi1jb25maWdcIjtcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbU2NyZWViLCBTY3JlZWJDb25maWddLFxufSlcbmV4cG9ydCBjbGFzcyBTY3JlZWJNb2R1bGUge1xuICAvKipcbiAgICogVGhpcyBpcyB1c2VkIHRvIGluaXRpYWxpemUgU2NyZWViIGF0IHRoZSB0b3Agb2YgeW91ciBBbmd1bGFyIGFwcGxpY2F0aW9uXG4gICAqIEBwYXJhbSBjb25maWcgQ29uZmlndXJhdGlvbiB0byBwYXNzIHRvIFNjcmVlYiBicm93c2VyIFNES1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBTY3JlZWJNb2R1bGUuZm9yUm9vdCh7XG4gICAqICAgYXV0b0luaXQ6IHRydWUsXG4gICAqICAgd2Vic2l0ZUlkOiBcIjx5b3VyLXdlYnNpdGUtaWQ+XCIsXG4gICAqICAgdXNlcklkOiBcIjx5b3VyLXVzZXItaWQ+XCIsXG4gICAqICAgdXNlclByb3BlcnRpZXM6IHtcbiAgICogICAgIGZpcnN0bmFtZTogJzx1c2VyLWZpcnN0bmFtZT4nLFxuICAgKiAgICAgbGFzdG5hbWU6ICc8dXNlci1sYXN0bmFtZT4nLFxuICAgKiAgICAgcGxhbjogJzx1c2VyLXBsYW4+JyxcbiAgICogICAgIGxhc3Rfc2Vlbl9hdDogbmV3IERhdGUoKSxcbiAgICogICAgIGF1dGhlbnRpY2F0ZWQ6IHRydWVcbiAgICogICB9LFxuICAgKiAgIHtcbiAgICogICAgIHZlcnNpb246IFwiMS4wLjBcIixcbiAgICogICAgIG9uUmVhZHk6IChwYXlsb2FkKSA9PiBjb25zb2xlLmxvZyhcIlNjcmVlYiBTREsgaXMgcmVhZHkhXCIsIHBheWxvYWQpLFxuICAgKiAgIH0sXG4gICAqIH0pXG4gICAqIGBgYFxuICAgKi9cbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBTY3JlZWJDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFNjcmVlYk1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogU2NyZWViTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbU2NyZWViLCB7IHByb3ZpZGU6IFNjcmVlYkNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyB9XSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChTY3JlZWJDb25maWcpIGNvbmZpZzogU2NyZWViQ29uZmlnLFxuICAgIEBJbmplY3QoU2NyZWViKSBzY3JlZWI6IFNjcmVlYlxuICApIHtcbiAgICBpZiAoY29uZmlnLnNob3VsZExvYWQgPz8gdHJ1ZSkge1xuICAgICAgc2NyZWViLmxvYWQoKTtcbiAgICB9XG5cbiAgICBpZiAoKGNvbmZpZy5hdXRvSW5pdCA/PyBmYWxzZSkgJiYgY29uZmlnLndlYnNpdGVJZCkge1xuICAgICAgc2NyZWViLmluaXQoXG4gICAgICAgIGNvbmZpZy53ZWJzaXRlSWQsXG4gICAgICAgIGNvbmZpZy51c2VySWQsXG4gICAgICAgIGNvbmZpZy51c2VyUHJvcGVydGllcyxcbiAgICAgICAgY29uZmlnLmhvb2tzLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIGNvbmZpZy5zcGFOYXZpZ2F0aW9uSGFuZGxlclxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ /*
2
+ * Public API Surface of @screeb/sdk-angular
3
+ */
4
+ export { ScreebModule } from "./lib/screeb.module";
5
+ export { ScreebConfig } from "./lib/screeb-config";
6
+ export { Screeb } from "./lib/screeb";
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3Nkay1hbmd1bGFyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAc2NyZWViL3Nkay1hbmd1bGFyXG4gKi9cblxuZXhwb3J0IHsgU2NyZWViTW9kdWxlIH0gZnJvbSBcIi4vbGliL3NjcmVlYi5tb2R1bGVcIjtcbmV4cG9ydCB7IFNjcmVlYkNvbmZpZyB9IGZyb20gXCIuL2xpYi9zY3JlZWItY29uZmlnXCI7XG5leHBvcnQgeyBTY3JlZWIgfSBmcm9tIFwiLi9saWIvc2NyZWViXCI7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWViLXNkay1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvc2RrLWFuZ3VsYXIvc3JjL3NjcmVlYi1zZGstYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -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.5.0" };
5
+ var CONSTANTS = { version: "0.7.0" };
6
6
 
7
7
  /**
8
8
  * Logs messages in the console with a corresponding urgency
@@ -384,18 +384,6 @@ class Screeb {
384
384
  await this.ensureScreeb("sessionReplayStart");
385
385
  return _Screeb.sessionReplayStart();
386
386
  }
387
- /**
388
- * Forces a targeting check.
389
- *
390
- * @example
391
- * ```ts
392
- * this.screeb.targetingCheck();
393
- * ```
394
- */
395
- async targetingCheck() {
396
- await this.ensureScreeb("targetingCheck");
397
- return _Screeb.targetingCheck();
398
- }
399
387
  /**
400
388
  * Prints the current state of the targeting engine.
401
389
  *
@@ -455,10 +443,10 @@ class Screeb {
455
443
  * );
456
444
  * ```
457
445
  */
458
- async init(websiteId, userId, userProperties, hooks, language) {
446
+ async init(websiteId, userId, userProperties, hooks, language, spaNavigationHandler) {
459
447
  await this.ensureScreeb("init", true);
460
448
  this.isInitialized = true;
461
- return await _Screeb.init(websiteId, userId, userProperties, hooks, language);
449
+ return await _Screeb.init(websiteId, userId, userProperties, hooks, language, spaNavigationHandler);
462
450
  }
463
451
  /**
464
452
  * Appends Screeb tag into your dom.
@@ -526,7 +514,7 @@ class ScreebModule {
526
514
  screeb.load();
527
515
  }
528
516
  if ((config.autoInit ?? false) && config.websiteId) {
529
- screeb.init(config.websiteId, config.userId, config.userProperties, config.hooks);
517
+ screeb.init(config.websiteId, config.userId, config.userProperties, config.hooks, undefined, config.spaNavigationHandler);
530
518
  }
531
519
  }
532
520
  /** @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 }); }
@@ -547,7 +535,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
547
535
  }] }]; } });
548
536
 
549
537
  /*
550
- * Public API Surface of screeb-sdk-angular
538
+ * Public API Surface of @screeb/sdk-angular
551
539
  */
552
540
 
553
541
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screeb-sdk-angular.mjs","sources":["../../../projects/sdk-angular/src/lib/constants.ts","../../../projects/sdk-angular/src/lib/logger.ts","../../../projects/sdk-angular/src/lib/screeb-config.ts","../../../projects/sdk-angular/src/lib/screeb.ts","../../../projects/sdk-angular/src/lib/screeb.module.ts","../../../projects/sdk-angular/src/public-api.ts","../../../projects/sdk-angular/src/screeb-sdk-angular.ts"],"sourcesContent":["export default { version: \"0.7.0\" };\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 {\n HooksInit,\n PropertyRecord,\n ScreebOptions,\n SpaNavigationHandler,\n} 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?: HooksInit;\n /** Optional handler for the `in-page-spa` \"Navigate to URL\" target (custom SPA routers). */\n spaNavigationHandler?: SpaNavigationHandler;\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 * '<UUID>',\n * false,\n * { // optional\n * color: \"green\",\n * article_id: 42\n * },\n * { // optional\n * version: \"1.0.0\",\n * onSurveyShowed: (payload) => console.log(\"Survey showed\", payload),\n * },\n * \"en\", // optional\n * \"#screeb-survey-container\" // optional\n * );\n * ```\n */\n public async surveyStart(\n surveyId: string,\n distributionId: string,\n allowMultipleResponses: boolean,\n hiddenFields?: _Screeb.PropertyRecord,\n hooks?: _Screeb.HooksSurveyStart,\n language?: string,\n selectors?: string | string[]\n ) {\n await this.ensureScreeb(\"surveyStart\");\n\n return _Screeb.surveyStart(\n surveyId,\n distributionId,\n allowMultipleResponses,\n hiddenFields,\n hooks,\n language,\n selectors\n );\n }\n\n /**\n * Interrupts a running message.\n *\n * @example\n * ```ts\n * this.screeb.messageClose();\n * ```\n */\n public async messageClose() {\n await this.ensureScreeb(\"messageClose\");\n\n return _Screeb.messageClose();\n }\n\n /**\n * Starts a message by its ID.\n *\n * @example\n * ```ts\n * this.screeb.messageStart(\n * '<UUID>',\n * false,\n * {\n * color: \"green\",\n * article_id: 42\n * },\n * {\n * version: \"1.0.0\",\n * onMessageShowed: (payload) => console.log(\"Message showed\", payload),\n * },\n * \"en\"\n * );\n * ```\n */\n public async messageStart(\n messageId: string,\n allowMultipleResponses = true,\n hiddenFields?: _Screeb.PropertyRecord,\n hooks?: _Screeb.HooksMessageStart,\n language?: string\n ) {\n await this.ensureScreeb(\"messageStart\");\n\n return _Screeb.messageStart(\n messageId,\n allowMultipleResponses,\n hiddenFields,\n hooks,\n language\n );\n }\n\n /**\n * Interrupts a running session replay.\n *\n * @example\n * ```ts\n * this.screeb.sessionReplayStop();\n * ```\n */\n public async sessionReplayStop() {\n await this.ensureScreeb(\"sessionReplayStop\");\n\n return _Screeb.sessionReplayStop();\n }\n\n /**\n * Starts a session replay.\n *\n * @example\n * ```ts\n * this.screeb.sessionReplayStart();\n * ```\n */\n public async sessionReplayStart() {\n await this.ensureScreeb(\"sessionReplayStart\");\n\n return _Screeb.sessionReplayStart();\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.HooksInit,\n language?: string,\n spaNavigationHandler?: _Screeb.SpaNavigationHandler\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 spaNavigationHandler\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 undefined,\n config.spaNavigationHandler\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":";;;;AAAA,gBAAe,EAAE,OAAO,EAAE,OAAO,EAAE;;ACEnC;;;;;AAKG;AACI,MAAM,GAAG,GAAG,CAAC,KAAe,EAAE,OAAe,KAAI;IACtD,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAE5C,IAAA,QAAQ,KAAK;AACX,QAAA,KAAK,MAAM;;YAET,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,WAAW,CAAI,CAAA,EAAA,OAAO,CAAE,CAAA,CAAC,CAAC;YACzC,MAAM;AACR,QAAA,KAAK,MAAM;;YAET,OAAO,CAAC,IAAI,CAAC,CAAA,EAAG,WAAW,CAAI,CAAA,EAAA,OAAO,CAAE,CAAA,CAAC,CAAC;YAC1C,MAAM;AACR,QAAA,KAAK,OAAO;;YAEV,OAAO,CAAC,KAAK,CAAC,CAAA,EAAG,WAAW,CAAI,CAAA,EAAA,OAAO,CAAE,CAAA,CAAC,CAAC;YAC3C,MAAM;AACR,QAAA;;YAEE,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,WAAW,CAAI,CAAA,EAAA,OAAO,CAAE,CAAA,CAAC,CAAC;AAC5C,KAAA;AACH,CAAC;;ACpBD;MAEa,YAAY,CAAA;kIAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA,CAAA,EAAA;;4FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCDrB,MAAM,CAAA;;AAIjB,IAAA,WAAA,CAA0C,MAAoB,EAAA;QAApB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;QAHtD,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;KAGoC;AAE1D,IAAA,MAAM,YAAY,CAAC,YAAoB,EAAE,UAAU,GAAG,KAAK,EAAA;AACjE,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAClD,MAAM,OAAO,GACX,uGAAuG,CAAC;AAE1G,YAAAA,GAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,UAAU,EAAE;AACtC,YAAA,MAAM,OAAO,GAAG;AACd,gBAAA,CAAA,CAAA,EAAI,YAAY,CAAwD,sDAAA,CAAA;AACxE,gBAAA,CAAA,mCAAA,EAAsC,YAAY,CAAO,KAAA,CAAA;gBACzD,6DAA6D;AAC9D,aAAA,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX,YAAAA,GAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KAC1B;AAED;;;;;;;AAOG;AACI,IAAA,MAAM,KAAK,GAAA;AAChB,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAEjC,QAAA,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;KACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,IAAA,MAAM,KAAK,GAAA;AAChB,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAEjC,QAAA,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;KACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BG;AACI,IAAA,MAAM,UAAU,CACrB,SAAiB,EACjB,eAAwC,EAAA;AAExC,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEtC,OAAO,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;KACvD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACI,IAAA,MAAM,QAAQ,CACnB,MAAc,EACd,cAAuC,EAAA;AAEvC,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAEpC,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;KACjD;AAED;;;;;;;;;;;;;;;;AAgBG;AACI,IAAA,MAAM,WAAW,GAAA;AACtB,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;AAEvC,QAAA,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;KAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACI,IAAA,MAAM,mBAAmB,CAC9B,SAAiB,EACjB,SAAkB,EAClB,eAAwC,EAAA;AAExC,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QAE/C,OAAO,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;KAC3E;AAED;;;;;;;;;;AAUG;AACI,IAAA,MAAM,qBAAqB,CAAC,SAAiB,EAAE,SAAkB,EAAA;AACtE,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;QAEjD,OAAO,OAAO,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;KAC5D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;IACI,MAAM,kBAAkB,CAAC,cAAsC,EAAA;AACpE,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;AAE9C,QAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;KACnD;AAED;;;;;;;;AAQG;AACI,IAAA,MAAM,aAAa,GAAA;AACxB,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;AAEzC,QAAA,OAAO,OAAO,CAAC,aAAa,EAAE,CAAC;KAChC;AAED;;;;;;;AAOG;AACI,IAAA,MAAM,WAAW,GAAA;AACtB,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;AAEvC,QAAA,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;KAC9B;AAED;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,IAAA,MAAM,WAAW,CACtB,QAAgB,EAChB,cAAsB,EACtB,sBAA+B,EAC/B,YAAqC,EACrC,KAAgC,EAChC,QAAiB,EACjB,SAA6B,EAAA;AAE7B,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;AAEvC,QAAA,OAAO,OAAO,CAAC,WAAW,CACxB,QAAQ,EACR,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,SAAS,CACV,CAAC;KACH;AAED;;;;;;;AAOG;AACI,IAAA,MAAM,YAAY,GAAA;AACvB,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;AAExC,QAAA,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC;KAC/B;AAED;;;;;;;;;;;;;;;;;;;AAmBG;AACI,IAAA,MAAM,YAAY,CACvB,SAAiB,EACjB,sBAAsB,GAAG,IAAI,EAC7B,YAAqC,EACrC,KAAiC,EACjC,QAAiB,EAAA;AAEjB,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;AAExC,QAAA,OAAO,OAAO,CAAC,YAAY,CACzB,SAAS,EACT,sBAAsB,EACtB,YAAY,EACZ,KAAK,EACL,QAAQ,CACT,CAAC;KACH;AAED;;;;;;;AAOG;AACI,IAAA,MAAM,iBAAiB,GAAA;AAC5B,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;AAE7C,QAAA,OAAO,OAAO,CAAC,iBAAiB,EAAE,CAAC;KACpC;AAED;;;;;;;AAOG;AACI,IAAA,MAAM,kBAAkB,GAAA;AAC7B,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;AAE9C,QAAA,OAAO,OAAO,CAAC,kBAAkB,EAAE,CAAC;KACrC;AAED;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,IAAA,MAAM,cAAc,GAAA;AACzB,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAE1C,QAAA,OAAO,OAAO,CAAC,cAAc,EAAE,CAAC;KACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;AACI,IAAA,MAAM,IAAI,CACf,SAAiB,EACjB,MAAe,EACf,cAAuC,EACvC,KAAyB,EACzB,QAAiB,EACjB,oBAAmD,EAAA;QAEnD,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAEtC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAE1B,QAAA,OAAO,MAAM,OAAO,CAAC,IAAI,CACvB,SAAS,EACT,MAAM,EACN,cAAc,EACd,KAAK,EACL,QAAQ,EACR,oBAAoB,CACrB,CAAC;KACH;AAED;;;;;;;;;;;AAWG;IACI,MAAM,IAAI,CAAC,OAA+B,EAAA;QAC/C,OAAO,OAAO,CAAC,IAAI,CAAC;AAClB,YAAA,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,SAAS,CAAC,OAAO;AAC7B,YAAA,GAAG,OAAO;AACX,SAAA,CAAC,CAAC;KACJ;AAtgBU,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAM,kBAIG,YAAY,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAJrB,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAM,cADO,MAAM,EAAA,CAAA,CAAA,EAAA;;4FACnB,MAAM,EAAA,UAAA,EAAA,CAAA;kBADlB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;0BAKnB,MAAM;2BAAC,YAAY,CAAA;;;MCLrB,YAAY,CAAA;AACvB;;;;;;;;;;;;;;;;;;;;;;;AAuBG;IACH,OAAO,OAAO,CAAC,MAAoB,EAAA;QACjC,OAAO;AACL,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;SACjE,CAAC;KACH;IAED,WACwB,CAAA,MAAoB,EAC1B,MAAc,EAAA;AAE9B,QAAA,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE;YAC7B,MAAM,CAAC,IAAI,EAAE,CAAC;AACf,SAAA;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,EAAE;YAClD,MAAM,CAAC,IAAI,CACT,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,KAAK,EACZ,SAAS,EACT,MAAM,CAAC,oBAAoB,CAC5B,CAAC;AACH,SAAA;KACF;kIAlDU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAiCb,YAAY,EAAA,EAAA,EAAA,KAAA,EACZ,MAAM,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;mIAlCL,YAAY,EAAA,CAAA,CAAA,EAAA;AAAZ,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAFZ,SAAA,EAAA,CAAC,MAAM,EAAE,YAAY,CAAC,EAAA,CAAA,CAAA,EAAA;;4FAEtB,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC;AAClC,iBAAA,CAAA;;0BAkCI,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,MAAM,CAAA;;;ACzClB;;AAEG;;ACFH;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
- /// <amd-module name="screeb-sdk-angular" />
4
+ /// <amd-module name="@screeb/sdk-angular" />
5
5
  export * from './public-api';
@@ -1,4 +1,4 @@
1
- import { HooksInit, PropertyRecord, ScreebOptions } from "@screeb/sdk-browser";
1
+ import { HooksInit, PropertyRecord, ScreebOptions, SpaNavigationHandler } from "@screeb/sdk-browser";
2
2
  import * as i0 from "@angular/core";
3
3
  /** Configuration of Screeb module */
4
4
  export declare class ScreebConfig {
@@ -10,6 +10,8 @@ export declare class ScreebConfig {
10
10
  userProperties?: PropertyRecord;
11
11
  /** Hooks to define callback for various event */
12
12
  hooks?: HooksInit;
13
+ /** Optional handler for the `in-page-spa` "Navigate to URL" target (custom SPA routers). */
14
+ spaNavigationHandler?: SpaNavigationHandler;
13
15
  /**
14
16
  * Indicates if Screeb should be automatically loaded.
15
17
  * This will ping to the Screeb servers.
@@ -281,15 +281,6 @@ export declare class Screeb {
281
281
  * ```
282
282
  */
283
283
  sessionReplayStart(): Promise<unknown>;
284
- /**
285
- * Forces a targeting check.
286
- *
287
- * @example
288
- * ```ts
289
- * this.screeb.targetingCheck();
290
- * ```
291
- */
292
- targetingCheck(): Promise<unknown>;
293
284
  /**
294
285
  * Prints the current state of the targeting engine.
295
286
  *
@@ -346,7 +337,7 @@ export declare class Screeb {
346
337
  * );
347
338
  * ```
348
339
  */
349
- init(websiteId: string, userId?: string, userProperties?: _Screeb.PropertyRecord, hooks?: _Screeb.HooksInit, language?: string): Promise<unknown>;
340
+ init(websiteId: string, userId?: string, userProperties?: _Screeb.PropertyRecord, hooks?: _Screeb.HooksInit, language?: string, spaNavigationHandler?: _Screeb.SpaNavigationHandler): Promise<unknown>;
350
341
  /**
351
342
  * Appends Screeb tag into your dom.
352
343
  *
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "screeb-sdk-angular",
2
+ "name": "@screeb/sdk-angular",
3
3
  "version": "0.0.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=10",
@@ -33,7 +33,6 @@
33
33
  - [sessionReplayStop](Screeb.md#sessionreplaystop)
34
34
  - [surveyClose](Screeb.md#surveyclose)
35
35
  - [surveyStart](Screeb.md#surveystart)
36
- - [targetingCheck](Screeb.md#targetingcheck)
37
36
  - [targetingDebug](Screeb.md#targetingdebug)
38
37
 
39
38
  ## Constructors
@@ -361,7 +360,7 @@ ___
361
360
 
362
361
  ### init
363
362
 
364
- ▸ **init**(`websiteId`, `userId?`, `userProperties?`, `hooks?`, `language?`): `Promise`\<`unknown`\>
363
+ ▸ **init**(`websiteId`, `userId?`, `userProperties?`, `hooks?`, `language?`, `spaNavigationHandler?`): `Promise`\<`unknown`\>
365
364
 
366
365
  Initializes Screeb tag.
367
366
 
@@ -374,6 +373,7 @@ Initializes Screeb tag.
374
373
  | `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 ``` |
375
374
  | `hooks?` | `HooksInit` | - |
376
375
  | `language?` | `string` | Force a specific language for the tag. eg: 'en'. default: browser language. |
376
+ | `spaNavigationHandler?` | `SpaNavigationHandler` | - |
377
377
 
378
378
  #### Returns
379
379
 
@@ -582,24 +582,6 @@ this.screeb.surveyStart(
582
582
 
583
583
  ___
584
584
 
585
- ### targetingCheck
586
-
587
- ▸ **targetingCheck**(): `Promise`\<`unknown`\>
588
-
589
- Forces a targeting check.
590
-
591
- #### Returns
592
-
593
- `Promise`\<`unknown`\>
594
-
595
- **`Example`**
596
-
597
- ```ts
598
- this.screeb.targetingCheck();
599
- ```
600
-
601
- ___
602
-
603
585
  ### targetingDebug
604
586
 
605
587
  ▸ **targetingDebug**(): `Promise`\<`unknown`\>
@@ -16,6 +16,7 @@ Configuration of Screeb module
16
16
  - [hooks](ScreebConfig.md#hooks)
17
17
  - [options](ScreebConfig.md#options)
18
18
  - [shouldLoad](ScreebConfig.md#shouldload)
19
+ - [spaNavigationHandler](ScreebConfig.md#spanavigationhandler)
19
20
  - [userId](ScreebConfig.md#userid)
20
21
  - [userProperties](ScreebConfig.md#userproperties)
21
22
  - [websiteId](ScreebConfig.md#websiteid)
@@ -77,6 +78,14 @@ if `true`, 'load' does not need to be called manually. Can be used for multistag
77
78
 
78
79
  ___
79
80
 
81
+ ### spaNavigationHandler
82
+
83
+ • `Optional` **spaNavigationHandler**: `SpaNavigationHandler`
84
+
85
+ Optional handler for the `in-page-spa` "Navigate to URL" target (custom SPA routers).
86
+
87
+ ___
88
+
80
89
  ### userId
81
90
 
82
91
  • `Optional` **userId**: `string`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@screeb/sdk-angular",
3
- "version": "0.5.0",
3
+ "version": "0.7.0",
4
4
  "description": "Screeb's browser sdk, optimized for Angular.",
5
5
  "keywords": [
6
6
  "product discovery",
@@ -13,25 +13,25 @@
13
13
  ],
14
14
  "homepage": "https://screeb.app",
15
15
  "bugs": {
16
- "url": "https://github.com/ScreebApp/sdk-js/issues",
16
+ "url": "https://github.com/ScreebApp/sdk/issues",
17
17
  "email": "support@screeb.app"
18
18
  },
19
19
  "repository": {
20
20
  "type": "git",
21
- "url": "https://github.com/ScreebApp/sdk-js.git",
22
- "directory": "packages/screeb-sdk-angular"
21
+ "url": "https://github.com/ScreebApp/sdk.git",
22
+ "directory": "packages/sdk-angular"
23
23
  },
24
24
  "license": "MIT",
25
25
  "author": "Screeb's frontend team",
26
26
  "sideEffects": false,
27
- "module": "dist/screeb-sdk-angular/fesm2022/screeb-sdk-angular.mjs",
28
- "typings": "dist/screeb-sdk-angular/index.d.ts",
27
+ "module": "dist/sdk-angular/esm2022/public-api.mjs",
28
+ "typings": "dist/sdk-angular/index.d.ts",
29
29
  "exports": {
30
30
  ".": {
31
- "types": "./dist/screeb-sdk-angular/index.d.ts",
32
- "esm2022": "./dist/screeb-sdk-angular/esm2022/screeb-sdk-angular.mjs",
33
- "esm": "./dist/screeb-sdk-angular/esm2022/screeb-sdk-angular.mjs",
34
- "default": "./dist/screeb-sdk-angular/fesm2022/screeb-sdk-angular.mjs"
31
+ "types": "./dist/sdk-angular/index.d.ts",
32
+ "esm2022": "./dist/sdk-angular/esm2022/public-api.mjs",
33
+ "esm": "./dist/sdk-angular/esm2022/public-api.mjs",
34
+ "default": "./dist/sdk-angular/esm2022/public-api.mjs"
35
35
  }
36
36
  },
37
37
  "files": [
@@ -41,40 +41,40 @@
41
41
  ],
42
42
  "scripts": {
43
43
  "ng": "ng",
44
- "build": "npm run replace-version && ng build && git checkout -f projects/screeb-sdk-angular/src/lib/constants.ts",
44
+ "build": "npm run replace-version && ng build && git checkout -f projects/sdk-angular/src/lib/constants.ts",
45
45
  "build:watch": "ng build --watch --configuration development",
46
- "build:doc": "typedoc projects/screeb-sdk-angular/src/public-api.ts",
46
+ "build:doc": "typedoc projects/sdk-angular/src/public-api.ts",
47
47
  "clean": "rm -Rf dist",
48
48
  "lint": "eslint .",
49
49
  "test": "echo '@TODO'",
50
- "replace-version": "replace-in-files --string='0.0.0-dev' --replacement=$npm_package_version projects/screeb-sdk-angular/src/lib/constants.ts"
50
+ "replace-version": "replace-in-files --string='0.0.0-dev' --replacement=$npm_package_version projects/sdk-angular/src/lib/constants.ts"
51
51
  },
52
52
  "dependencies": {
53
- "@screeb/sdk-browser": "^0.5.0"
53
+ "@screeb/sdk-browser": "^0.7.0"
54
54
  },
55
55
  "devDependencies": {
56
- "@angular-devkit/build-angular": "^16.2.6",
57
- "@angular/animations": "^16.2.8",
58
- "@angular/cli": "~16.2.6",
56
+ "@angular-devkit/build-angular": "^16.2.16",
57
+ "@angular/animations": "^16.2.12",
58
+ "@angular/cli": "~16.2.16",
59
59
  "@angular/common": ">=16",
60
- "@angular/compiler": "^16.2.8",
61
- "@angular/compiler-cli": "^16.2.8",
60
+ "@angular/compiler": "^16.2.12",
61
+ "@angular/compiler-cli": "^16.2.12",
62
62
  "@angular/core": ">=16",
63
- "@angular/forms": "^16.2.8",
64
- "@angular/platform-browser": "^16.2.8",
65
- "@angular/platform-browser-dynamic": "^16.2.8",
66
- "@angular/router": "^16.2.8",
67
- "@screeb/eslint-config": "^0.1.6",
68
- "@types/jasmine": "~5.1.0",
63
+ "@angular/forms": "^16.2.12",
64
+ "@angular/platform-browser": "^16.2.12",
65
+ "@angular/platform-browser-dynamic": "^16.2.12",
66
+ "@angular/router": "^16.2.12",
67
+ "@screeb/eslint-config": "^0.1.8",
68
+ "@types/jasmine": "~5.1.15",
69
69
  "@typescript-eslint/eslint-plugin": "^6.7.5",
70
70
  "eslint": "^8.51.0",
71
71
  "eslint-plugin-import": "^2.28.1",
72
- "eslint-plugin-jest": "^27.4.2",
72
+ "eslint-plugin-jest": "^27.4.3",
73
73
  "eslint-plugin-jsx-a11y": "^6.7.1",
74
74
  "eslint-plugin-prettier": "^5.0.1",
75
- "jasmine-core": "~5.1.1",
75
+ "jasmine-core": "~5.1.2",
76
76
  "jest": "^29.7.0",
77
- "karma": "~6.4.2",
77
+ "karma": "~6.4.4",
78
78
  "karma-chrome-launcher": "~3.2.0",
79
79
  "karma-coverage": "~2.2.1",
80
80
  "karma-jasmine": "~5.1.0",
@@ -82,8 +82,8 @@
82
82
  "ng-packagr": "^16.2.3",
83
83
  "prettier": "^3.0.3",
84
84
  "replace-in-files-cli": "^2.2.0",
85
- "rxjs": "~7.8.1",
86
- "tslib": "^2.6.2",
85
+ "rxjs": "~7.8.2",
86
+ "tslib": "^2.6.3",
87
87
  "typedoc": "^0.25.2",
88
88
  "typedoc-plugin-markdown": "^3.16.0",
89
89
  "typescript": "~5.1",
@@ -1,2 +0,0 @@
1
- export default { version: "0.5.0" };
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NyZWViLXNkay1hbmd1bGFyL3NyYy9saWIvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7IHZlcnNpb246IFwiMC41LjBcIiB9O1xuIl19
@@ -1,27 +0,0 @@
1
- /**
2
- * Logs messages in the console with a corresponding urgency
3
- *
4
- * @param level the urgency of the message
5
- * @param message the message to log in the console
6
- */
7
- export const log = (level, message) => {
8
- const packageName = "[@screeb/angular-sdk]";
9
- switch (level) {
10
- case "info":
11
- // eslint-disable-next-line no-console
12
- console.log(`${packageName} ${message}`);
13
- break;
14
- case "warn":
15
- // eslint-disable-next-line no-console
16
- console.warn(`${packageName} ${message}`);
17
- break;
18
- case "error":
19
- // eslint-disable-next-line no-console
20
- console.error(`${packageName} ${message}`);
21
- break;
22
- default:
23
- // eslint-disable-next-line no-console
24
- console.log(`${packageName} ${message}`);
25
- }
26
- };
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NyZWViLXNkay1hbmd1bGFyL3NyYy9saWIvbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBZSxFQUFFLE9BQWUsRUFBRSxFQUFFO0lBQ3RELE1BQU0sV0FBVyxHQUFHLHVCQUF1QixDQUFDO0lBRTVDLFFBQVEsS0FBSyxFQUFFO1FBQ2IsS0FBSyxNQUFNO1lBQ1Qsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN6QyxNQUFNO1FBQ1IsS0FBSyxNQUFNO1lBQ1Qsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMxQyxNQUFNO1FBQ1IsS0FBSyxPQUFPO1lBQ1Ysc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxXQUFXLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMzQyxNQUFNO1FBQ1I7WUFDRSxzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0tBQzVDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBMb2dMZXZlbCA9IFwiaW5mb1wiIHwgXCJlcnJvclwiIHwgXCJ3YXJuXCI7XG5cbi8qKlxuICogTG9ncyBtZXNzYWdlcyBpbiB0aGUgY29uc29sZSB3aXRoIGEgY29ycmVzcG9uZGluZyB1cmdlbmN5XG4gKlxuICogQHBhcmFtIGxldmVsIHRoZSB1cmdlbmN5IG9mIHRoZSBtZXNzYWdlXG4gKiBAcGFyYW0gbWVzc2FnZSB0aGUgbWVzc2FnZSB0byBsb2cgaW4gdGhlIGNvbnNvbGVcbiAqL1xuZXhwb3J0IGNvbnN0IGxvZyA9IChsZXZlbDogTG9nTGV2ZWwsIG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICBjb25zdCBwYWNrYWdlTmFtZSA9IFwiW0BzY3JlZWIvYW5ndWxhci1zZGtdXCI7XG5cbiAgc3dpdGNoIChsZXZlbCkge1xuICAgIGNhc2UgXCJpbmZvXCI6XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5sb2coYCR7cGFja2FnZU5hbWV9ICR7bWVzc2FnZX1gKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJ3YXJuXCI6XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS53YXJuKGAke3BhY2thZ2VOYW1lfSAke21lc3NhZ2V9YCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiZXJyb3JcIjpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKGAke3BhY2thZ2VOYW1lfSAke21lc3NhZ2V9YCk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKGAke3BhY2thZ2VOYW1lfSAke21lc3NhZ2V9YCk7XG4gIH1cbn07XG4iXX0=
@@ -1,12 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- /** Configuration of Screeb module */
4
- export class ScreebConfig {
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
- }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScreebConfig, decorators: [{
9
- type: Injectable,
10
- args: [{ providedIn: "root" }]
11
- }] });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWViLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NjcmVlYi1zZGstYW5ndWxhci9zcmMvbGliL3NjcmVlYi1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MscUNBQXFDO0FBRXJDLE1BQU0sT0FBTyxZQUFZO2tJQUFaLFlBQVk7c0lBQVosWUFBWSxjQURDLE1BQU07OzRGQUNuQixZQUFZO2tCQUR4QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSG9va3NJbml0LCBQcm9wZXJ0eVJlY29yZCwgU2NyZWViT3B0aW9ucyB9IGZyb20gXCJAc2NyZWViL3Nkay1icm93c2VyXCI7XG5cbi8qKiBDb25maWd1cmF0aW9uIG9mIFNjcmVlYiBtb2R1bGUgKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbmV4cG9ydCBjbGFzcyBTY3JlZWJDb25maWcge1xuICAvKiogWW91ciB3ZWJzaXRlL2NoYW5uZWwgaWQuICovXG4gIHdlYnNpdGVJZD86IHN0cmluZztcbiAgLyoqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB5b3VyIHVzZXIuICovXG4gIHVzZXJJZD86IHN0cmluZztcbiAgLyoqIFRoZSBwcm9wZXJ0aWVzIG9mIHlvdXIgdXNlci4gKi9cbiAgdXNlclByb3BlcnRpZXM/OiBQcm9wZXJ0eVJlY29yZDtcbiAgLyoqIEhvb2tzIHRvIGRlZmluZSBjYWxsYmFjayBmb3IgdmFyaW91cyBldmVudCAqL1xuICBob29rcz86IEhvb2tzSW5pdDtcbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBTY3JlZWIgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgbG9hZGVkLlxuICAgKiBUaGlzIHdpbGwgcGluZyB0byB0aGUgU2NyZWViIHNlcnZlcnMuXG4gICAqXG4gICAqIEByZW1hcmtzIGlmIGB0cnVlYCwgJ2xvYWQnIGRvZXMgbm90IG5lZWQgdG8gYmUgY2FsbGVkIG1hbnVhbGx5LiBDYW4gYmUgdXNlZCBmb3IgbXVsdGlzdGFnZWQgZW52aXJvbm1lbnRzXG4gICAqL1xuICBzaG91bGRMb2FkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBTY3JlZWIgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgaW5pdGlhbGl6ZWQuXG4gICAqXG4gICAqIEByZW1hcmtzIGlmIGB0cnVlYCwgJ2luaXQnIGRvZXMgbm90IG5lZWQgdG8gYmUgY2FsbGVkIG1hbnVhbGx5XG4gICAqICovXG4gIGF1dG9Jbml0PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNjcmVlYiB0YWcgaW5pdGlhbGl6YXRpb24gb3B0aW9ucy5cbiAgICpcbiAgICogQHJlbWFya3MgdGhpcyBpcyB1c2VkIGlzIHJlYWxseSBwYXJ0aWN1bGFyIGNhc2VzLCBoYW5kbGUgd2l0aCBjYXJlLlxuICAgKiAqL1xuICBvcHRpb25zPzogU2NyZWViT3B0aW9ucztcbn1cbiJdfQ==