@screeb/sdk-angular 0.1.10 → 0.1.12

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