@screeb/sdk-angular 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/screeb-sdk-angular/esm2022/lib/logger.mjs +27 -0
- package/dist/screeb-sdk-angular/esm2022/lib/screeb-config.mjs +13 -0
- package/dist/screeb-sdk-angular/esm2022/lib/screeb.mjs +379 -0
- package/dist/screeb-sdk-angular/esm2022/lib/screeb.module.mjs +59 -0
- package/dist/screeb-sdk-angular/esm2022/public-api.mjs +7 -0
- package/dist/screeb-sdk-angular/esm2022/screeb-sdk-angular.mjs +5 -0
- package/dist/screeb-sdk-angular/fesm2022/screeb-sdk-angular.mjs +475 -0
- package/dist/screeb-sdk-angular/fesm2022/screeb-sdk-angular.mjs.map +1 -0
- package/dist/screeb-sdk-angular/index.d.ts +5 -0
- package/dist/{es → screeb-sdk-angular/lib}/screeb-config.d.ts +3 -0
- package/dist/{es → screeb-sdk-angular/lib}/screeb.d.ts +3 -0
- package/dist/{es → screeb-sdk-angular/lib}/screeb.module.d.ts +7 -3
- package/dist/screeb-sdk-angular/package.json +25 -0
- package/dist/screeb-sdk-angular/public-api.d.ts +3 -0
- package/docs/classes/ScreebModule.md +3 -3
- package/package.json +35 -17
- package/dist/es/index.d.ts +0 -3
- package/dist/es/index.js +0 -653
- /package/dist/{es → screeb-sdk-angular/lib}/logger.d.ts +0 -0
package/README.md
CHANGED
|
@@ -54,9 +54,9 @@ import { ScreebModule } from "@screeb/sdk-angular";
|
|
|
54
54
|
// ...
|
|
55
55
|
ScreebModule.forRoot({
|
|
56
56
|
autoInit: true,
|
|
57
|
-
"<your-website-id>",
|
|
58
|
-
"<your-user-id>",
|
|
59
|
-
{
|
|
57
|
+
websiteId: "<your-website-id>",
|
|
58
|
+
userId: "<your-user-id>",
|
|
59
|
+
userProperties: {
|
|
60
60
|
firstname: '<user-firstname>',
|
|
61
61
|
lastname: '<user-lastname>',
|
|
62
62
|
plan: '<user-plan>',
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logs messages in the console with a corresponding urgency
|
|
3
|
+
*
|
|
4
|
+
* @param level the urgency of the message
|
|
5
|
+
* @param message the message to log in the console
|
|
6
|
+
*/
|
|
7
|
+
export const log = (level, message) => {
|
|
8
|
+
const packageName = "[@screeb/angular-sdk]";
|
|
9
|
+
switch (level) {
|
|
10
|
+
case "info":
|
|
11
|
+
// eslint-disable-next-line no-console
|
|
12
|
+
console.log(`${packageName} ${message}`);
|
|
13
|
+
break;
|
|
14
|
+
case "warn":
|
|
15
|
+
// eslint-disable-next-line no-console
|
|
16
|
+
console.warn(`${packageName} ${message}`);
|
|
17
|
+
break;
|
|
18
|
+
case "error":
|
|
19
|
+
// eslint-disable-next-line no-console
|
|
20
|
+
console.error(`${packageName} ${message}`);
|
|
21
|
+
break;
|
|
22
|
+
default:
|
|
23
|
+
// eslint-disable-next-line no-console
|
|
24
|
+
console.log(`${packageName} ${message}`);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NyZWViLXNkay1hbmd1bGFyL3NyYy9saWIvbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBZSxFQUFFLE9BQWUsRUFBRSxFQUFFO0lBQ3RELE1BQU0sV0FBVyxHQUFHLHVCQUF1QixDQUFDO0lBRTVDLFFBQVEsS0FBSyxFQUFFO1FBQ2IsS0FBSyxNQUFNO1lBQ1Qsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN6QyxNQUFNO1FBQ1IsS0FBSyxNQUFNO1lBQ1Qsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMxQyxNQUFNO1FBQ1IsS0FBSyxPQUFPO1lBQ1Ysc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxXQUFXLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMzQyxNQUFNO1FBQ1I7WUFDRSxzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0tBQzVDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBMb2dMZXZlbCA9IFwiaW5mb1wiIHwgXCJlcnJvclwiIHwgXCJ3YXJuXCI7XG5cbi8qKlxuICogTG9ncyBtZXNzYWdlcyBpbiB0aGUgY29uc29sZSB3aXRoIGEgY29ycmVzcG9uZGluZyB1cmdlbmN5XG4gKlxuICogQHBhcmFtIGxldmVsIHRoZSB1cmdlbmN5IG9mIHRoZSBtZXNzYWdlXG4gKiBAcGFyYW0gbWVzc2FnZSB0aGUgbWVzc2FnZSB0byBsb2cgaW4gdGhlIGNvbnNvbGVcbiAqL1xuZXhwb3J0IGNvbnN0IGxvZyA9IChsZXZlbDogTG9nTGV2ZWwsIG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICBjb25zdCBwYWNrYWdlTmFtZSA9IFwiW0BzY3JlZWIvYW5ndWxhci1zZGtdXCI7XG5cbiAgc3dpdGNoIChsZXZlbCkge1xuICAgIGNhc2UgXCJpbmZvXCI6XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5sb2coYCR7cGFja2FnZU5hbWV9ICR7bWVzc2FnZX1gKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJ3YXJuXCI6XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS53YXJuKGAke3BhY2thZ2VOYW1lfSAke21lc3NhZ2V9YCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiZXJyb3JcIjpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKGAke3BhY2thZ2VOYW1lfSAke21lc3NhZ2V9YCk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKGAke3BhY2thZ2VOYW1lfSAke21lc3NhZ2V9YCk7XG4gIH1cbn07XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/** Configuration of Screeb module */
|
|
4
|
+
class ScreebConfig {
|
|
5
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: ScreebConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: ScreebConfig, providedIn: "root" }); }
|
|
7
|
+
}
|
|
8
|
+
export { ScreebConfig };
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: ScreebConfig, decorators: [{
|
|
10
|
+
type: Injectable,
|
|
11
|
+
args: [{ providedIn: "root" }]
|
|
12
|
+
}] });
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWViLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NjcmVlYi1zZGstYW5ndWxhci9zcmMvbGliL3NjcmVlYi1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MscUNBQXFDO0FBQ3JDLE1BQ2EsWUFBWTtpSUFBWixZQUFZO3FJQUFaLFlBQVksY0FEQyxNQUFNOztTQUNuQixZQUFZOzJGQUFaLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBQcm9wZXJ0eVJlY29yZCwgU2NyZWViT3B0aW9ucyB9IGZyb20gXCJAc2NyZWViL3Nkay1icm93c2VyXCI7XG5cbi8qKiBDb25maWd1cmF0aW9uIG9mIFNjcmVlYiBtb2R1bGUgKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbmV4cG9ydCBjbGFzcyBTY3JlZWJDb25maWcge1xuICAvKiogWW91ciB3ZWJzaXRlL2NoYW5uZWwgaWQuICovXG4gIHdlYnNpdGVJZD86IHN0cmluZztcbiAgLyoqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB5b3VyIHVzZXIuICovXG4gIHVzZXJJZD86IHN0cmluZztcbiAgLyoqIFRoZSBwcm9wZXJ0aWVzIG9mIHlvdXIgdXNlci4gKi9cbiAgdXNlclByb3BlcnRpZXM/OiBQcm9wZXJ0eVJlY29yZDtcbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBTY3JlZWIgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgbG9hZGVkLlxuICAgKiBUaGlzIHdpbGwgcGluZyB0byB0aGUgU2NyZWViIHNlcnZlcnMuXG4gICAqXG4gICAqIEByZW1hcmtzIGlmIGB0cnVlYCwgJ2xvYWQnIGRvZXMgbm90IG5lZWQgdG8gYmUgY2FsbGVkIG1hbnVhbGx5LiBDYW4gYmUgdXNlZCBmb3IgbXVsdGlzdGFnZWQgZW52aXJvbm1lbnRzXG4gICAqL1xuICBzaG91bGRMb2FkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBTY3JlZWIgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgaW5pdGlhbGl6ZWQuXG4gICAqXG4gICAqIEByZW1hcmtzIGlmIGB0cnVlYCwgJ2luaXQnIGRvZXMgbm90IG5lZWQgdG8gYmUgY2FsbGVkIG1hbnVhbGx5XG4gICAqICovXG4gIGF1dG9Jbml0PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNjcmVlYiB0YWcgaW5pdGlhbGl6YXRpb24gb3B0aW9ucy5cbiAgICpcbiAgICogQHJlbWFya3MgdGhpcyBpcyB1c2VkIGlzIHJlYWxseSBwYXJ0aWN1bGFyIGNhc2VzLCBoYW5kbGUgd2l0aCBjYXJlLlxuICAgKiAqL1xuICBvcHRpb25zPzogU2NyZWViT3B0aW9ucztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
import { Inject, Injectable } from "@angular/core";
|
|
2
|
+
import * as _Screeb from "@screeb/sdk-browser";
|
|
3
|
+
import * as logger from "./logger";
|
|
4
|
+
import { ScreebConfig } from "./screeb-config";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./screeb-config";
|
|
7
|
+
class Screeb {
|
|
8
|
+
// eslint-disable-next-line no-unused-vars
|
|
9
|
+
constructor(config) {
|
|
10
|
+
this.config = config;
|
|
11
|
+
this.isInitialized = false;
|
|
12
|
+
}
|
|
13
|
+
async ensureScreeb(functionName, onlyLoaded = false) {
|
|
14
|
+
if (!_Screeb.isLoaded() && !this.config.shouldLoad) {
|
|
15
|
+
const message = "Screeb instance is not loaded because `shouldLoad` is set to `false` in `ScreebModule` configuration.";
|
|
16
|
+
logger.log("warn", message);
|
|
17
|
+
return Promise.reject(message);
|
|
18
|
+
}
|
|
19
|
+
if (!this.isInitialized && !onlyLoaded) {
|
|
20
|
+
const message = [
|
|
21
|
+
`"${functionName}" was called but Screeb has not been initialized yet. `,
|
|
22
|
+
`Please call 'init' before calling '${functionName}' or `,
|
|
23
|
+
"set 'autoInit' to true in the `ScreebModule` configuration.",
|
|
24
|
+
].join("");
|
|
25
|
+
logger.log("warn", message);
|
|
26
|
+
return Promise.reject(message);
|
|
27
|
+
}
|
|
28
|
+
return Promise.resolve();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Shutdowns current Screeb session.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* this.screeb.close();
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
async close() {
|
|
39
|
+
await this.ensureScreeb("close");
|
|
40
|
+
return _Screeb.close();
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Prints the actual state information of Screeb tag.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* this.screeb.debug();
|
|
48
|
+
* // ******************* SCREEB SESSION DEBUG *********************
|
|
49
|
+
* // Screeb channel id: <UUID>
|
|
50
|
+
* // Screeb channel type: widget
|
|
51
|
+
* // Screeb respondent id: <UUID>
|
|
52
|
+
* // Screeb survey id: none
|
|
53
|
+
* // Screeb response id: none
|
|
54
|
+
* //
|
|
55
|
+
* // Screeb current session start: Thu May 04 2023 16:53:49 GMT+0200 (Central European Summer Time)
|
|
56
|
+
* // Screeb current session last activity: Thu May 04 2023 17:41:30 GMT+0200 (Central European Summer Time)
|
|
57
|
+
* //
|
|
58
|
+
* // Screeb targeting engine status: disabled
|
|
59
|
+
* // Screeb targeting engine: 3 surveys
|
|
60
|
+
* //
|
|
61
|
+
* // Detected platform: desktop
|
|
62
|
+
* // Detected locale: en-GB
|
|
63
|
+
* // Detected timezone: -120
|
|
64
|
+
* // **************************************************************
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
async debug() {
|
|
68
|
+
await this.ensureScreeb("debug");
|
|
69
|
+
return _Screeb.debug();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Tracks a user event.
|
|
73
|
+
*
|
|
74
|
+
* @param eventName The event name.
|
|
75
|
+
* @param eventProperties The properties of your event.
|
|
76
|
+
* ```text Requirements:
|
|
77
|
+
* - Property names must be limited to 128 characters
|
|
78
|
+
* - No more than 1000 attributes
|
|
79
|
+
* - Supported types for values: string, number, boolean and Date.
|
|
80
|
+
* ```
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* this.screeb.eventTrack(
|
|
85
|
+
* "Product added to cart",
|
|
86
|
+
* {
|
|
87
|
+
* product_name: 'Red bike 2021',
|
|
88
|
+
* category: 'sport',
|
|
89
|
+
* color: 'red',
|
|
90
|
+
* price: 299,
|
|
91
|
+
* count: 1,
|
|
92
|
+
* reference: '2CF093TG1',
|
|
93
|
+
* delivery_method: 'UPS',
|
|
94
|
+
* user_logged: false,
|
|
95
|
+
* added_at: new Date(),
|
|
96
|
+
* }
|
|
97
|
+
* );
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
async eventTrack(eventName, eventProperties) {
|
|
101
|
+
await this.ensureScreeb("eventTrack");
|
|
102
|
+
return _Screeb.eventTrack(eventName, eventProperties);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Change the current user identity.
|
|
106
|
+
* Warning: Running surveys will be closed.
|
|
107
|
+
*
|
|
108
|
+
* @param userId The unique identifier of your user.
|
|
109
|
+
* @param userProperties The properties of your user.
|
|
110
|
+
* ```text Requirements:
|
|
111
|
+
* - Property names must be limited to 128 characters
|
|
112
|
+
* - No more than 1000 attributes
|
|
113
|
+
* - Supported types for values: string, number, boolean and Date.
|
|
114
|
+
* ```
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```ts
|
|
118
|
+
* this.screeb.identity(
|
|
119
|
+
* "<your-user-id>",
|
|
120
|
+
* {
|
|
121
|
+
* firstname: '<user-firstname>',
|
|
122
|
+
* lastname: '<user-lastname>',
|
|
123
|
+
* plan: '<user-plan>',
|
|
124
|
+
* last_seen_at: new Date(),
|
|
125
|
+
* authenticated: true
|
|
126
|
+
* }
|
|
127
|
+
* );
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
async identity(userId, userProperties) {
|
|
131
|
+
await this.ensureScreeb("identity");
|
|
132
|
+
return _Screeb.identity(userId, userProperties);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Retrieves the current user identity.
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```ts
|
|
139
|
+
* console.log(await this.screeb.identityGet());
|
|
140
|
+
* // {
|
|
141
|
+
* // anonymous_id: "<UUID>",
|
|
142
|
+
* // user_id: "<UUID>",
|
|
143
|
+
* // session_id: "<UUID>",
|
|
144
|
+
* // session_start: "2023-05-04T16:30:15.882Z",
|
|
145
|
+
* // session_end: "2023-05-04T17:02:09.087Z",
|
|
146
|
+
* // channel_id: "<UUID>",
|
|
147
|
+
* // is_ready: true,
|
|
148
|
+
* // }
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
async identityGet() {
|
|
152
|
+
await this.ensureScreeb("identityGet");
|
|
153
|
+
return _Screeb.identityGet();
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Assigns the current user to a group.
|
|
157
|
+
*
|
|
158
|
+
* @param groupName
|
|
159
|
+
* @param groupType
|
|
160
|
+
* @param groupProperties The properties of your user group.
|
|
161
|
+
* ```text Requirements:
|
|
162
|
+
* - Property names must be limited to 128 characters
|
|
163
|
+
* - No more than 1000 attributes
|
|
164
|
+
* - Supported types for values: string, number, boolean and Date.
|
|
165
|
+
* ```
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```ts
|
|
169
|
+
* this.screeb.identityGroupAssign(
|
|
170
|
+
* 'company',
|
|
171
|
+
* 'Apple',
|
|
172
|
+
* {
|
|
173
|
+
* address_line_1: 'Apple Campus',
|
|
174
|
+
* address_line_2: '1 Infinite Loop',
|
|
175
|
+
* city: 'Cupertino',
|
|
176
|
+
* zipcode: 95014,
|
|
177
|
+
* state: 'California',
|
|
178
|
+
* country: 'United states',
|
|
179
|
+
* }
|
|
180
|
+
* );
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
async identityGroupAssign(groupName, groupType, groupProperties) {
|
|
184
|
+
await this.ensureScreeb("identityGroupAssign");
|
|
185
|
+
return _Screeb.identityGroupAssign(groupName, groupType, groupProperties);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Unassigns the current user to a group.
|
|
189
|
+
*
|
|
190
|
+
* @param groupName The name of your user group.
|
|
191
|
+
* @param groupType The type of your user group.
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* ```ts
|
|
195
|
+
* this.screeb.identityGroupUnassign('company', 'Apple');
|
|
196
|
+
* ```
|
|
197
|
+
*/
|
|
198
|
+
async identityGroupUnassign(groupName, groupType) {
|
|
199
|
+
await this.ensureScreeb("identityGroupUnassign");
|
|
200
|
+
return _Screeb.identityGroupUnassign(groupName, groupType);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Adds properties to the current user identity.
|
|
204
|
+
*
|
|
205
|
+
* @param userProperties The properties of your user.
|
|
206
|
+
* ```text Requirements:
|
|
207
|
+
* - Property names must be limited to 128 characters
|
|
208
|
+
* - No more than 1000 attributes
|
|
209
|
+
* - Supported types for values: string, number, boolean and Date.
|
|
210
|
+
* ```
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```ts
|
|
214
|
+
* // Set user properties
|
|
215
|
+
* this.screeb.identityProperties(
|
|
216
|
+
* {
|
|
217
|
+
* firstname: '<user-firstname>',
|
|
218
|
+
* lastname: '<user-lastname>',
|
|
219
|
+
* plan: '<user-plan>',
|
|
220
|
+
* last_seen_at: new Date(),
|
|
221
|
+
* authenticated: true
|
|
222
|
+
* }
|
|
223
|
+
* );
|
|
224
|
+
*
|
|
225
|
+
* // Delete user property : set values to null
|
|
226
|
+
* this.screeb.identityProperties(
|
|
227
|
+
* {
|
|
228
|
+
* age: null,
|
|
229
|
+
* company: null,
|
|
230
|
+
* logged: true,
|
|
231
|
+
* }
|
|
232
|
+
* );
|
|
233
|
+
* ```
|
|
234
|
+
*/
|
|
235
|
+
async identityProperties(userProperties) {
|
|
236
|
+
await this.ensureScreeb("identityProperties");
|
|
237
|
+
return _Screeb.identityProperties(userProperties);
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Resets the current user identity.
|
|
241
|
+
* Warning: This command must be called only once, since it creates a new identity on Screeb side.
|
|
242
|
+
*
|
|
243
|
+
* @example
|
|
244
|
+
* ```ts
|
|
245
|
+
* this.screeb.identityReset();
|
|
246
|
+
* ```
|
|
247
|
+
*/
|
|
248
|
+
async identityReset() {
|
|
249
|
+
await this.ensureScreeb("identityReset");
|
|
250
|
+
return _Screeb.identityReset();
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Interrupts a running survey.
|
|
254
|
+
*
|
|
255
|
+
* @example
|
|
256
|
+
* ```ts
|
|
257
|
+
* this.screeb.surveyClose();
|
|
258
|
+
* ```
|
|
259
|
+
*/
|
|
260
|
+
async surveyClose() {
|
|
261
|
+
await this.ensureScreeb("surveyClose");
|
|
262
|
+
return _Screeb.surveyClose();
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Starts a survey by its ID.
|
|
266
|
+
*
|
|
267
|
+
* @example
|
|
268
|
+
* ```ts
|
|
269
|
+
* this.screeb.surveyStart(
|
|
270
|
+
* '<UUID>',
|
|
271
|
+
* false,
|
|
272
|
+
* {
|
|
273
|
+
* color: "green",
|
|
274
|
+
* article_id: 42
|
|
275
|
+
* }
|
|
276
|
+
* );
|
|
277
|
+
* ```
|
|
278
|
+
*/
|
|
279
|
+
async surveyStart(surveyId, allowMultipleResponses, hiddenFields) {
|
|
280
|
+
await this.ensureScreeb("surveyStart");
|
|
281
|
+
return _Screeb.surveyStart(surveyId, allowMultipleResponses, hiddenFields);
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Forces a targeting check.
|
|
285
|
+
*
|
|
286
|
+
* @example
|
|
287
|
+
* ```ts
|
|
288
|
+
* this.screeb.targetingCheck();
|
|
289
|
+
* ```
|
|
290
|
+
*/
|
|
291
|
+
async targetingCheck() {
|
|
292
|
+
await this.ensureScreeb("targetingCheck");
|
|
293
|
+
return _Screeb.targetingCheck();
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Prints the current state of the targeting engine.
|
|
297
|
+
*
|
|
298
|
+
* @example
|
|
299
|
+
* ```ts
|
|
300
|
+
* console.log(await this.screeb.targetingDebug());
|
|
301
|
+
* // targeting ************ SCREEB TARGETING RULES DEBUG **************
|
|
302
|
+
* // Disabled surveys are not listed here.
|
|
303
|
+
* //
|
|
304
|
+
* // Screeb channel id: <UUID>
|
|
305
|
+
* // Screeb respondent id: <UUID>
|
|
306
|
+
* //
|
|
307
|
+
* // Survey <UUID>:
|
|
308
|
+
* // https://admin.screeb.app/org/last/survey/<UUID>/share
|
|
309
|
+
* //
|
|
310
|
+
* // - Rule of type "Device type (desktop/mobile/tablet)": true 🟢
|
|
311
|
+
* // - Rule of type "Multiple display": true 🟢
|
|
312
|
+
* // - Rule of type "Capping per time between survey display on current respondent": true 🟢
|
|
313
|
+
* // - Rule of type "User event count": false 🔴
|
|
314
|
+
* // - Rule of type "Capping per respondent display count": false 🔴
|
|
315
|
+
* ```
|
|
316
|
+
*/
|
|
317
|
+
async targetingDebug() {
|
|
318
|
+
await this.ensureScreeb("targetingDebug");
|
|
319
|
+
return _Screeb.targetingDebug();
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Initializes Screeb tag.
|
|
323
|
+
*
|
|
324
|
+
* @param websiteId Your website/channel id.
|
|
325
|
+
* @param userId The unique identifier of your user.
|
|
326
|
+
* @param userProperties The properties of your user.
|
|
327
|
+
* ```text Requirements:
|
|
328
|
+
* - Property names must be limited to 128 characters
|
|
329
|
+
* - No more than 1000 attributes
|
|
330
|
+
* - Supported types for values: string, number, boolean and Date
|
|
331
|
+
* ```
|
|
332
|
+
*
|
|
333
|
+
* @example
|
|
334
|
+
* ```ts
|
|
335
|
+
* this.screeb.init(
|
|
336
|
+
* "<your-website-id>",
|
|
337
|
+
* "<your-user-id>",
|
|
338
|
+
* {
|
|
339
|
+
* firstname: '<user-firstname>',
|
|
340
|
+
* lastname: '<user-lastname>',
|
|
341
|
+
* plan: '<user-plan>',
|
|
342
|
+
* last_seen_at: new Date(),
|
|
343
|
+
* authenticated: true
|
|
344
|
+
* }
|
|
345
|
+
* );
|
|
346
|
+
* ```
|
|
347
|
+
*/
|
|
348
|
+
async init(websiteId, userId, userProperties) {
|
|
349
|
+
await this.ensureScreeb("init", true);
|
|
350
|
+
this.isInitialized = true;
|
|
351
|
+
return await _Screeb.init(websiteId, userId, userProperties);
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Appends Screeb tag into your dom.
|
|
355
|
+
*
|
|
356
|
+
* @param options Screeb module options.
|
|
357
|
+
* @param options.window If you're running Screeb tag in an iframe, please set the inner window here.
|
|
358
|
+
* @param options.screebEndpoint Please don't do this.
|
|
359
|
+
*
|
|
360
|
+
* @example
|
|
361
|
+
* ```ts
|
|
362
|
+
* this.screeb.load();
|
|
363
|
+
* ```
|
|
364
|
+
*/
|
|
365
|
+
async load() {
|
|
366
|
+
return _Screeb.load();
|
|
367
|
+
}
|
|
368
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: Screeb, deps: [{ token: ScreebConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
369
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: Screeb, providedIn: "root" }); }
|
|
370
|
+
}
|
|
371
|
+
export { Screeb };
|
|
372
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: Screeb, decorators: [{
|
|
373
|
+
type: Injectable,
|
|
374
|
+
args: [{ providedIn: "root" }]
|
|
375
|
+
}], ctorParameters: function () { return [{ type: i1.ScreebConfig, decorators: [{
|
|
376
|
+
type: Inject,
|
|
377
|
+
args: [ScreebConfig]
|
|
378
|
+
}] }]; } });
|
|
379
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NyZWViLXNkay1hbmd1bGFyL3NyYy9saWIvc2NyZWViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxPQUFPLE1BQU0scUJBQXFCLENBQUM7QUFFL0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxVQUFVLENBQUM7QUFDbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFL0MsTUFDYSxNQUFNO0lBR2pCLDBDQUEwQztJQUMxQyxZQUEwQyxNQUFvQjtRQUFwQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBSHRELGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBR21DLENBQUM7SUFFMUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFvQixFQUFFLFVBQVUsR0FBRyxLQUFLO1FBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtZQUNsRCxNQUFNLE9BQU8sR0FDWCx1R0FBdUcsQ0FBQztZQUUxRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUU1QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN0QyxNQUFNLE9BQU8sR0FBRztnQkFDZCxJQUFJLFlBQVksd0RBQXdEO2dCQUN4RSxzQ0FBc0MsWUFBWSxPQUFPO2dCQUN6RCw2REFBNkQ7YUFDOUQsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFWCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMs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OzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0ICogYXMgX1NjcmVlYiBmcm9tIFwiQHNjcmVlYi9zZGstYnJvd3NlclwiO1xuXG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSBcIi4vbG9nZ2VyXCI7XG5pbXBvcnQgeyBTY3JlZWJDb25maWcgfSBmcm9tIFwiLi9zY3JlZWItY29uZmlnXCI7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbmV4cG9ydCBjbGFzcyBTY3JlZWIge1xuICBwcml2YXRlIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgY29uc3RydWN0b3IoQEluamVjdChTY3JlZWJDb25maWcpIHByaXZhdGUgY29uZmlnOiBTY3JlZWJDb25maWcpIHt9XG5cbiAgcHJpdmF0ZSBhc3luYyBlbnN1cmVTY3JlZWIoZnVuY3Rpb25OYW1lOiBzdHJpbmcsIG9ubHlMb2FkZWQgPSBmYWxzZSkge1xuICAgIGlmICghX1NjcmVlYi5pc0xvYWRlZCgpICYmICF0aGlzLmNvbmZpZy5zaG91bGRMb2FkKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID1cbiAgICAgICAgXCJTY3JlZWIgaW5zdGFuY2UgaXMgbm90IGxvYWRlZCBiZWNhdXNlIGBzaG91bGRMb2FkYCBpcyBzZXQgdG8gYGZhbHNlYCBpbiBgU2NyZWViTW9kdWxlYCBjb25maWd1cmF0aW9uLlwiO1xuXG4gICAgICBsb2dnZXIubG9nKFwid2FyblwiLCBtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCAmJiAhb25seUxvYWRlZCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IFtcbiAgICAgICAgYFwiJHtmdW5jdGlvbk5hbWV9XCIgd2FzIGNhbGxlZCBidXQgU2NyZWViIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCB5ZXQuIGAsXG4gICAgICAgIGBQbGVhc2UgY2FsbCAnaW5pdCcgYmVmb3JlIGNhbGxpbmcgJyR7ZnVuY3Rpb25OYW1lfScgb3IgYCxcbiAgICAgICAgXCJzZXQgJ2F1dG9Jbml0JyB0byB0cnVlIGluIHRoZSBgU2NyZWViTW9kdWxlYCBjb25maWd1cmF0aW9uLlwiLFxuICAgICAgXS5qb2luKFwiXCIpO1xuXG4gICAgICBsb2dnZXIubG9nKFwid2FyblwiLCBtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG1lc3NhZ2UpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2h1dGRvd25zIGN1cnJlbnQgU2NyZWViIHNlc3Npb24uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLmNsb3NlKCk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsb3NlKCkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwiY2xvc2VcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5jbG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByaW50cyB0aGUgYWN0dWFsIHN0YXRlIGluZm9ybWF0aW9uIG9mIFNjcmVlYiB0YWcuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLmRlYnVnKCk7XG4gICAqIC8vICoqKioqKioqKioqKioqKioqKiogU0NSRUVCIFNFU1NJT04gREVCVUcgKioqKioqKioqKioqKioqKioqKioqXG4gICAqIC8vIFNjcmVlYiBjaGFubmVsIGlkOiA8VVVJRD5cbiAgICogLy8gU2NyZWViIGNoYW5uZWwgdHlwZTogd2lkZ2V0XG4gICAqIC8vIFNjcmVlYiByZXNwb25kZW50IGlkOiA8VVVJRD5cbiAgICogLy8gU2NyZWViIHN1cnZleSBpZDogbm9uZVxuICAgKiAvLyBTY3JlZWIgcmVzcG9uc2UgaWQ6IG5vbmVcbiAgICogLy9cbiAgICogLy8gU2NyZWViIGN1cnJlbnQgc2Vzc2lvbiBzdGFydDogVGh1IE1heSAwNCAyMDIzIDE2OjUzOjQ5IEdNVCswMjAwIChDZW50cmFsIEV1cm9wZWFuIFN1bW1lciBUaW1lKVxuICAgKiAvLyBTY3JlZWIgY3VycmVudCBzZXNzaW9uIGxhc3QgYWN0aXZpdHk6IFRodSBNYXkgMDQgMjAyMyAxNzo0MTozMCBHTVQrMDIwMCAoQ2VudHJhbCBFdXJvcGVhbiBTdW1tZXIgVGltZSlcbiAgICogLy9cbiAgICogLy8gU2NyZWViIHRhcmdldGluZyBlbmdpbmUgc3RhdHVzOiBkaXNhYmxlZFxuICAgKiAvLyBTY3JlZWIgdGFyZ2V0aW5nIGVuZ2luZTogMyBzdXJ2ZXlzXG4gICAqIC8vXG4gICAqIC8vIERldGVjdGVkIHBsYXRmb3JtOiBkZXNrdG9wXG4gICAqIC8vIERldGVjdGVkIGxvY2FsZTogZW4tR0JcbiAgICogLy8gRGV0ZWN0ZWQgdGltZXpvbmU6IC0xMjBcbiAgICogLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVidWcoKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJkZWJ1Z1wiKTtcblxuICAgIHJldHVybiBfU2NyZWViLmRlYnVnKCk7XG4gIH1cblxuICAvKipcbiAgICogVHJhY2tzIGEgdXNlciBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50TmFtZSBUaGUgZXZlbnQgbmFtZS5cbiAgICogQHBhcmFtIGV2ZW50UHJvcGVydGllcyBUaGUgcHJvcGVydGllcyBvZiB5b3VyIGV2ZW50LlxuICAgKiBgYGB0ZXh0IFJlcXVpcmVtZW50czpcbiAgICogICAtIFByb3BlcnR5IG5hbWVzIG11c3QgYmUgbGltaXRlZCB0byAxMjggY2hhcmFjdGVyc1xuICAgKiAgIC0gTm8gbW9yZSB0aGFuIDEwMDAgYXR0cmlidXRlc1xuICAgKiAgIC0gU3VwcG9ydGVkIHR5cGVzIGZvciB2YWx1ZXM6IHN0cmluZywgbnVtYmVyLCBib29sZWFuIGFuZCBEYXRlLlxuICAgKiBgYGBcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIuZXZlbnRUcmFjayhcbiAgICogICBcIlByb2R1Y3QgYWRkZWQgdG8gY2FydFwiLFxuICAgKiAgIHtcbiAgICogICAgIHByb2R1Y3RfbmFtZTogJ1JlZCBiaWtlIDIwMjEnLFxuICAgKiAgICAgY2F0ZWdvcnk6ICdzcG9ydCcsXG4gICAqICAgICBjb2xvcjogJ3JlZCcsXG4gICAqICAgICBwcmljZTogMjk5LFxuICAgKiAgICAgY291bnQ6IDEsXG4gICAqICAgICByZWZlcmVuY2U6ICcyQ0YwOTNURzEnLFxuICAgKiAgICAgZGVsaXZlcnlfbWV0aG9kOiAnVVBTJyxcbiAgICogICAgIHVzZXJfbG9nZ2VkOiBmYWxzZSxcbiAgICogICAgIGFkZGVkX2F0OiBuZXcgRGF0ZSgpLFxuICAgKiAgIH1cbiAgICogKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZXZlbnRUcmFjayhcbiAgICBldmVudE5hbWU6IHN0cmluZyxcbiAgICBldmVudFByb3BlcnRpZXM/OiBfU2NyZWViLlByb3BlcnR5UmVjb3JkXG4gICkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwiZXZlbnRUcmFja1wiKTtcblxuICAgIHJldHVybiBfU2NyZWViLmV2ZW50VHJhY2soZXZlbnROYW1lLCBldmVudFByb3BlcnRpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB0aGUgY3VycmVudCB1c2VyIGlkZW50aXR5LlxuICAgKiBXYXJuaW5nOiBSdW5uaW5nIHN1cnZleXMgd2lsbCBiZSBjbG9zZWQuXG4gICAqXG4gICAqIEBwYXJhbSB1c2VySWQgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHlvdXIgdXNlci5cbiAgICogQHBhcmFtIHVzZXJQcm9wZXJ0aWVzIFRoZSBwcm9wZXJ0aWVzIG9mIHlvdXIgdXNlci5cbiAgICogYGBgdGV4dCBSZXF1aXJlbWVudHM6XG4gICAqICAgLSBQcm9wZXJ0eSBuYW1lcyBtdXN0IGJlIGxpbWl0ZWQgdG8gMTI4IGNoYXJhY3RlcnNcbiAgICogICAtIE5vIG1vcmUgdGhhbiAxMDAwIGF0dHJpYnV0ZXNcbiAgICogICAtIFN1cHBvcnRlZCB0eXBlcyBmb3IgdmFsdWVzOiBzdHJpbmcsIG51bWJlciwgYm9vbGVhbiBhbmQgRGF0ZS5cbiAgICogYGBgXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLmlkZW50aXR5KFxuICAgKiAgIFwiPHlvdXItdXNlci1pZD5cIixcbiAgICogICB7XG4gICAqICAgICBmaXJzdG5hbWU6ICc8dXNlci1maXJzdG5hbWU+JyxcbiAgICogICAgIGxhc3RuYW1lOiAnPHVzZXItbGFzdG5hbWU+JyxcbiAgICogICAgIHBsYW46ICc8dXNlci1wbGFuPicsXG4gICAqICAgICBsYXN0X3NlZW5fYXQ6IG5ldyBEYXRlKCksXG4gICAqICAgICBhdXRoZW50aWNhdGVkOiB0cnVlXG4gICAqICAgfVxuICAgKiApO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpZGVudGl0eShcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICB1c2VyUHJvcGVydGllcz86IF9TY3JlZWIuUHJvcGVydHlSZWNvcmRcbiAgKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJpZGVudGl0eVwiKTtcblxuICAgIHJldHVybiBfU2NyZWViLmlkZW50aXR5KHVzZXJJZCwgdXNlclByb3BlcnRpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCB1c2VyIGlkZW50aXR5LlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBjb25zb2xlLmxvZyhhd2FpdCB0aGlzLnNjcmVlYi5pZGVudGl0eUdldCgpKTtcbiAgICogLy8ge1xuICAgKiAvLyAgIGFub255bW91c19pZDogXCI8VVVJRD5cIixcbiAgICogLy8gICB1c2VyX2lkOiBcIjxVVUlEPlwiLFxuICAgKiAvLyAgIHNlc3Npb25faWQ6IFwiPFVVSUQ+XCIsXG4gICAqIC8vICAgc2Vzc2lvbl9zdGFydDogXCIyMDIzLTA1LTA0VDE2OjMwOjE1Ljg4MlpcIixcbiAgICogLy8gICBzZXNzaW9uX2VuZDogXCIyMDIzLTA1LTA0VDE3OjAyOjA5LjA4N1pcIixcbiAgICogLy8gICBjaGFubmVsX2lkOiBcIjxVVUlEPlwiLFxuICAgKiAvLyAgIGlzX3JlYWR5OiB0cnVlLFxuICAgKiAvLyB9XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlkZW50aXR5R2V0KCkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2NyZWViKFwiaWRlbnRpdHlHZXRcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5pZGVudGl0eUdldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzc2lnbnMgdGhlIGN1cnJlbnQgdXNlciB0byBhIGdyb3VwLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JvdXBOYW1lXG4gICAqIEBwYXJhbSBncm91cFR5cGVcbiAgICogQHBhcmFtIGdyb3VwUHJvcGVydGllcyBUaGUgcHJvcGVydGllcyBvZiB5b3VyIHVzZXIgZ3JvdXAuXG4gICAqIGBgYHRleHQgUmVxdWlyZW1lbnRzOlxuICAgKiAgIC0gUHJvcGVydHkgbmFtZXMgbXVzdCBiZSBsaW1pdGVkIHRvIDEyOCBjaGFyYWN0ZXJzXG4gICAqICAgLSBObyBtb3JlIHRoYW4gMTAwMCBhdHRyaWJ1dGVzXG4gICAqICAgLSBTdXBwb3J0ZWQgdHlwZXMgZm9yIHZhbHVlczogc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4gYW5kIERhdGUuXG4gICAqIGBgYFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiB0aGlzLnNjcmVlYi5pZGVudGl0eUdyb3VwQXNzaWduKFxuICAgKiAgICdjb21wYW55JyxcbiAgICogICAnQXBwbGUnLFxuICAgKiAgIHtcbiAgICogICAgIGFkZHJlc3NfbGluZV8xOiAnQXBwbGUgQ2FtcHVzJyxcbiAgICogICAgIGFkZHJlc3NfbGluZV8yOiAnMSBJbmZpbml0ZSBMb29wJyxcbiAgICogICAgIGNpdHk6ICdDdXBlcnRpbm8nLFxuICAgKiAgICAgemlwY29kZTogOTUwMTQsXG4gICAqICAgICBzdGF0ZTogJ0NhbGlmb3JuaWEnLFxuICAgKiAgICAgY291bnRyeTogJ1VuaXRlZCBzdGF0ZXMnLFxuICAgKiAgIH1cbiAgICogKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaWRlbnRpdHlHcm91cEFzc2lnbihcbiAgICBncm91cE5hbWU6IHN0cmluZyxcbiAgICBncm91cFR5cGU/OiBzdHJpbmcsXG4gICAgZ3JvdXBQcm9wZXJ0aWVzPzogX1NjcmVlYi5Qcm9wZXJ0eVJlY29yZFxuICApIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcImlkZW50aXR5R3JvdXBBc3NpZ25cIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5pZGVudGl0eUdyb3VwQXNzaWduKGdyb3VwTmFtZSwgZ3JvdXBUeXBlLCBncm91cFByb3BlcnRpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXNzaWducyB0aGUgY3VycmVudCB1c2VyIHRvIGEgZ3JvdXAuXG4gICAqXG4gICAqIEBwYXJhbSBncm91cE5hbWUgVGhlIG5hbWUgb2YgeW91ciB1c2VyIGdyb3VwLlxuICAgKiBAcGFyYW0gZ3JvdXBUeXBlIFRoZSB0eXBlIG9mIHlvdXIgdXNlciBncm91cC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIuaWRlbnRpdHlHcm91cFVuYXNzaWduKCdjb21wYW55JywgJ0FwcGxlJyk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlkZW50aXR5R3JvdXBVbmFzc2lnbihncm91cE5hbWU6IHN0cmluZywgZ3JvdXBUeXBlPzogc3RyaW5nKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJpZGVudGl0eUdyb3VwVW5hc3NpZ25cIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5pZGVudGl0eUdyb3VwVW5hc3NpZ24oZ3JvdXBOYW1lLCBncm91cFR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgcHJvcGVydGllcyB0byB0aGUgY3VycmVudCB1c2VyIGlkZW50aXR5LlxuICAgKlxuICAgKiBAcGFyYW0gdXNlclByb3BlcnRpZXMgVGhlIHByb3BlcnRpZXMgb2YgeW91ciB1c2VyLlxuICAgKiBgYGB0ZXh0IFJlcXVpcmVtZW50czpcbiAgICogICAtIFByb3BlcnR5IG5hbWVzIG11c3QgYmUgbGltaXRlZCB0byAxMjggY2hhcmFjdGVyc1xuICAgKiAgIC0gTm8gbW9yZSB0aGFuIDEwMDAgYXR0cmlidXRlc1xuICAgKiAgIC0gU3VwcG9ydGVkIHR5cGVzIGZvciB2YWx1ZXM6IHN0cmluZywgbnVtYmVyLCBib29sZWFuIGFuZCBEYXRlLlxuICAgKiBgYGBcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogLy8gU2V0IHVzZXIgcHJvcGVydGllc1xuICAgKiB0aGlzLnNjcmVlYi5pZGVudGl0eVByb3BlcnRpZXMoXG4gICAqICAge1xuICAgKiAgICAgZmlyc3RuYW1lOiAnPHVzZXItZmlyc3RuYW1lPicsXG4gICAqICAgICBsYXN0bmFtZTogJzx1c2VyLWxhc3RuYW1lPicsXG4gICAqICAgICBwbGFuOiAnPHVzZXItcGxhbj4nLFxuICAgKiAgICAgbGFzdF9zZWVuX2F0OiBuZXcgRGF0ZSgpLFxuICAgKiAgICAgYXV0aGVudGljYXRlZDogdHJ1ZVxuICAgKiAgIH1cbiAgICogKTtcbiAgICpcbiAgICogLy8gRGVsZXRlIHVzZXIgcHJvcGVydHkgOiBzZXQgdmFsdWVzIHRvIG51bGxcbiAgICogdGhpcy5zY3JlZWIuaWRlbnRpdHlQcm9wZXJ0aWVzKFxuICAgKiAgIHtcbiAgICogICAgIGFnZTogbnVsbCxcbiAgICogICAgIGNvbXBhbnk6IG51bGwsXG4gICAqICAgICBsb2dnZWQ6IHRydWUsXG4gICAqICAgfVxuICAgKiApO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpZGVudGl0eVByb3BlcnRpZXModXNlclByb3BlcnRpZXM6IF9TY3JlZWIuUHJvcGVydHlSZWNvcmQpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcImlkZW50aXR5UHJvcGVydGllc1wiKTtcblxuICAgIHJldHVybiBfU2NyZWViLmlkZW50aXR5UHJvcGVydGllcyh1c2VyUHJvcGVydGllcyk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBjdXJyZW50IHVzZXIgaWRlbnRpdHkuXG4gICAqIFdhcm5pbmc6IFRoaXMgY29tbWFuZCBtdXN0IGJlIGNhbGxlZCBvbmx5IG9uY2UsIHNpbmNlIGl0IGNyZWF0ZXMgYSBuZXcgaWRlbnRpdHkgb24gU2NyZWViIHNpZGUuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLmlkZW50aXR5UmVzZXQoKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaWRlbnRpdHlSZXNldCgpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcImlkZW50aXR5UmVzZXRcIik7XG5cbiAgICByZXR1cm4gX1NjcmVlYi5pZGVudGl0eVJlc2V0KCk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJydXB0cyBhIHJ1bm5pbmcgc3VydmV5LlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiB0aGlzLnNjcmVlYi5zdXJ2ZXlDbG9zZSgpO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzdXJ2ZXlDbG9zZSgpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcInN1cnZleUNsb3NlXCIpO1xuXG4gICAgcmV0dXJuIF9TY3JlZWIuc3VydmV5Q2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgYSBzdXJ2ZXkgYnkgaXRzIElELlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiB0aGlzLnNjcmVlYi5zdXJ2ZXlTdGFydChcbiAgICogICAnPFVVSUQ+JyxcbiAgICogICBmYWxzZSxcbiAgICogICB7XG4gICAqICAgICBjb2xvcjogXCJncmVlblwiLFxuICAgKiAgICAgYXJ0aWNsZV9pZDogNDJcbiAgICogICB9XG4gICAqICk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHN1cnZleVN0YXJ0KFxuICAgIHN1cnZleUlkOiBzdHJpbmcsXG4gICAgYWxsb3dNdWx0aXBsZVJlc3BvbnNlczogYm9vbGVhbixcbiAgICBoaWRkZW5GaWVsZHM6IF9TY3JlZWIuUHJvcGVydHlSZWNvcmRcbiAgKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJzdXJ2ZXlTdGFydFwiKTtcblxuICAgIHJldHVybiBfU2NyZWViLnN1cnZleVN0YXJ0KHN1cnZleUlkLCBhbGxvd011bHRpcGxlUmVzcG9uc2VzLCBoaWRkZW5GaWVsZHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcmNlcyBhIHRhcmdldGluZyBjaGVjay5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIudGFyZ2V0aW5nQ2hlY2soKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdGFyZ2V0aW5nQ2hlY2soKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJ0YXJnZXRpbmdDaGVja1wiKTtcblxuICAgIHJldHVybiBfU2NyZWViLnRhcmdldGluZ0NoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogUHJpbnRzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSB0YXJnZXRpbmcgZW5naW5lLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBjb25zb2xlLmxvZyhhd2FpdCB0aGlzLnNjcmVlYi50YXJnZXRpbmdEZWJ1ZygpKTtcbiAgICogLy8gdGFyZ2V0aW5nICoqKioqKioqKioqKiBTQ1JFRUIgVEFSR0VUSU5HIFJVTEVTIERFQlVHICoqKioqKioqKioqKioqXG4gICAqIC8vIERpc2FibGVkIHN1cnZleXMgYXJlIG5vdCBsaXN0ZWQgaGVyZS5cbiAgICogLy9cbiAgICogLy8gU2NyZWViIGNoYW5uZWwgaWQ6IDxVVUlEPlxuICAgKiAvLyBTY3JlZWIgcmVzcG9uZGVudCBpZDogPFVVSUQ+XG4gICAqIC8vXG4gICAqIC8vIFN1cnZleSA8VVVJRD46XG4gICAqIC8vIGh0dHBzOi8vYWRtaW4uc2NyZWViLmFwcC9vcmcvbGFzdC9zdXJ2ZXkvPFVVSUQ+L3NoYXJlXG4gICAqIC8vXG4gICAqIC8vICAgLSBSdWxlIG9mIHR5cGUgXCJEZXZpY2UgdHlwZSAoZGVza3RvcC9tb2JpbGUvdGFibGV0KVwiOiB0cnVlIPCfn6JcbiAgICogLy8gICAtIFJ1bGUgb2YgdHlwZSBcIk11bHRpcGxlIGRpc3BsYXlcIjogdHJ1ZSDwn5+iXG4gICAqIC8vICAgLSBSdWxlIG9mIHR5cGUgXCJDYXBwaW5nIHBlciB0aW1lIGJldHdlZW4gc3VydmV5IGRpc3BsYXkgb24gY3VycmVudCByZXNwb25kZW50XCI6IHRydWUg8J+folxuICAgKiAvLyAgIC0gUnVsZSBvZiB0eXBlIFwiVXNlciBldmVudCBjb3VudFwiOiBmYWxzZSDwn5S0XG4gICAqIC8vICAgLSBSdWxlIG9mIHR5cGUgXCJDYXBwaW5nIHBlciByZXNwb25kZW50IGRpc3BsYXkgY291bnRcIjogZmFsc2Ug8J+UtFxuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyB0YXJnZXRpbmdEZWJ1ZygpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNjcmVlYihcInRhcmdldGluZ0RlYnVnXCIpO1xuXG4gICAgcmV0dXJuIF9TY3JlZWIudGFyZ2V0aW5nRGVidWcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyBTY3JlZWIgdGFnLlxuICAgKlxuICAgKiBAcGFyYW0gd2Vic2l0ZUlkIFlvdXIgd2Vic2l0ZS9jaGFubmVsIGlkLlxuICAgKiBAcGFyYW0gdXNlcklkIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB5b3VyIHVzZXIuXG4gICAqIEBwYXJhbSB1c2VyUHJvcGVydGllcyBUaGUgcHJvcGVydGllcyBvZiB5b3VyIHVzZXIuXG4gICAqIGBgYHRleHQgUmVxdWlyZW1lbnRzOlxuICAgKiAgIC0gUHJvcGVydHkgbmFtZXMgbXVzdCBiZSBsaW1pdGVkIHRvIDEyOCBjaGFyYWN0ZXJzXG4gICAqICAgLSBObyBtb3JlIHRoYW4gMTAwMCBhdHRyaWJ1dGVzXG4gICAqICAgLSBTdXBwb3J0ZWQgdHlwZXMgZm9yIHZhbHVlczogc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4gYW5kIERhdGVcbiAgICogYGBgXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHRoaXMuc2NyZWViLmluaXQoXG4gICAqICAgXCI8eW91ci13ZWJzaXRlLWlkPlwiLFxuICAgKiAgIFwiPHlvdXItdXNlci1pZD5cIixcbiAgICogICB7XG4gICAqICAgICBmaXJzdG5hbWU6ICc8dXNlci1maXJzdG5hbWU+JyxcbiAgICogICAgIGxhc3RuYW1lOiAnPHVzZXItbGFzdG5hbWU+JyxcbiAgICogICAgIHBsYW46ICc8dXNlci1wbGFuPicsXG4gICAqICAgICBsYXN0X3NlZW5fYXQ6IG5ldyBEYXRlKCksXG4gICAqICAgICBhdXRoZW50aWNhdGVkOiB0cnVlXG4gICAqICAgfVxuICAgKiApO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBpbml0KFxuICAgIHdlYnNpdGVJZDogc3RyaW5nLFxuICAgIHVzZXJJZD86IHN0cmluZyxcbiAgICB1c2VyUHJvcGVydGllcz86IF9TY3JlZWIuUHJvcGVydHlSZWNvcmRcbiAgKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTY3JlZWIoXCJpbml0XCIsIHRydWUpO1xuXG4gICAgdGhpcy5pc0luaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgIHJldHVybiBhd2FpdCBfU2NyZWViLmluaXQod2Vic2l0ZUlkLCB1c2VySWQsIHVzZXJQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmRzIFNjcmVlYiB0YWcgaW50byB5b3VyIGRvbS5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgU2NyZWViIG1vZHVsZSBvcHRpb25zLlxuICAgKiBAcGFyYW0gb3B0aW9ucy53aW5kb3cgSWYgeW91J3JlIHJ1bm5pbmcgU2NyZWViIHRhZyBpbiBhbiBpZnJhbWUsIHBsZWFzZSBzZXQgdGhlIGlubmVyIHdpbmRvdyBoZXJlLlxuICAgKiBAcGFyYW0gb3B0aW9ucy5zY3JlZWJFbmRwb2ludCBQbGVhc2UgZG9uJ3QgZG8gdGhpcy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdGhpcy5zY3JlZWIubG9hZCgpO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkKCkge1xuICAgIHJldHVybiBfU2NyZWViLmxvYWQoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Inject, NgModule } from "@angular/core";
|
|
2
|
+
import { Screeb } from "./screeb";
|
|
3
|
+
import { ScreebConfig } from "./screeb-config";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./screeb-config";
|
|
6
|
+
import * as i2 from "./screeb";
|
|
7
|
+
class ScreebModule {
|
|
8
|
+
/**
|
|
9
|
+
* This is used to initialize Screeb at the top of your Angular application
|
|
10
|
+
* @param config Configuration to pass to Screeb browser SDK
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* ScreebModule.forRoot({
|
|
15
|
+
* autoInit: true,
|
|
16
|
+
* websiteId: "<your-website-id>",
|
|
17
|
+
* userId: "<your-user-id>",
|
|
18
|
+
* userProperties: {
|
|
19
|
+
* firstname: '<user-firstname>',
|
|
20
|
+
* lastname: '<user-lastname>',
|
|
21
|
+
* plan: '<user-plan>',
|
|
22
|
+
* last_seen_at: new Date(),
|
|
23
|
+
* authenticated: true
|
|
24
|
+
* }
|
|
25
|
+
* })
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
static forRoot(config) {
|
|
29
|
+
return {
|
|
30
|
+
ngModule: ScreebModule,
|
|
31
|
+
providers: [Screeb, { provide: ScreebConfig, useValue: config }],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
constructor(config, screeb) {
|
|
35
|
+
if (config.shouldLoad ?? true) {
|
|
36
|
+
screeb.load();
|
|
37
|
+
}
|
|
38
|
+
if ((config.autoInit ?? false) && config.websiteId) {
|
|
39
|
+
screeb.init(config.websiteId, config.userId, config.userProperties);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: ScreebModule, deps: [{ token: ScreebConfig }, { token: Screeb }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
43
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.4", ngImport: i0, type: ScreebModule }); }
|
|
44
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: ScreebModule, providers: [Screeb, ScreebConfig] }); }
|
|
45
|
+
}
|
|
46
|
+
export { ScreebModule };
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: ScreebModule, decorators: [{
|
|
48
|
+
type: NgModule,
|
|
49
|
+
args: [{
|
|
50
|
+
providers: [Screeb, ScreebConfig],
|
|
51
|
+
}]
|
|
52
|
+
}], ctorParameters: function () { return [{ type: i1.ScreebConfig, decorators: [{
|
|
53
|
+
type: Inject,
|
|
54
|
+
args: [ScreebConfig]
|
|
55
|
+
}] }, { type: i2.Screeb, decorators: [{
|
|
56
|
+
type: Inject,
|
|
57
|
+
args: [Screeb]
|
|
58
|
+
}] }]; } });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWViLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NjcmVlYi1zZGstYW5ndWxhci9zcmMvbGliL3NjcmVlYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBRS9DLE1BR2EsWUFBWTtJQUN2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW1CRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBb0I7UUFDakMsT0FBTztZQUNMLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQ2pFLENBQUM7SUFDSixDQUFDO0lBRUQsWUFDd0IsTUFBb0IsRUFDMUIsTUFBYztRQUU5QixJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNmO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUNsRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDckU7SUFDSCxDQUFDO2lJQXZDVSxZQUFZLGtCQTZCYixZQUFZLGFBQ1osTUFBTTtrSUE5QkwsWUFBWTtrSUFBWixZQUFZLGFBRlosQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDOztTQUV0QixZQUFZOzJGQUFaLFlBQVk7a0JBSHhCLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQztpQkFDbEM7OzBCQThCSSxNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixNQUFNOzJCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFNjcmVlYiB9IGZyb20gXCIuL3NjcmVlYlwiO1xuaW1wb3J0IHsgU2NyZWViQ29uZmlnIH0gZnJvbSBcIi4vc2NyZWViLWNvbmZpZ1wiO1xuXG5ATmdNb2R1bGUoe1xuICBwcm92aWRlcnM6IFtTY3JlZWIsIFNjcmVlYkNvbmZpZ10sXG59KVxuZXhwb3J0IGNsYXNzIFNjcmVlYk1vZHVsZSB7XG4gIC8qKlxuICAgKiBUaGlzIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSBTY3JlZWIgYXQgdGhlIHRvcCBvZiB5b3VyIEFuZ3VsYXIgYXBwbGljYXRpb25cbiAgICogQHBhcmFtIGNvbmZpZyBDb25maWd1cmF0aW9uIHRvIHBhc3MgdG8gU2NyZWViIGJyb3dzZXIgU0RLXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIFNjcmVlYk1vZHVsZS5mb3JSb290KHtcbiAgICogICBhdXRvSW5pdDogdHJ1ZSxcbiAgICogICB3ZWJzaXRlSWQ6IFwiPHlvdXItd2Vic2l0ZS1pZD5cIixcbiAgICogICB1c2VySWQ6IFwiPHlvdXItdXNlci1pZD5cIixcbiAgICogICB1c2VyUHJvcGVydGllczoge1xuICAgKiAgICAgZmlyc3RuYW1lOiAnPHVzZXItZmlyc3RuYW1lPicsXG4gICAqICAgICBsYXN0bmFtZTogJzx1c2VyLWxhc3RuYW1lPicsXG4gICAqICAgICBwbGFuOiAnPHVzZXItcGxhbj4nLFxuICAgKiAgICAgbGFzdF9zZWVuX2F0OiBuZXcgRGF0ZSgpLFxuICAgKiAgICAgYXV0aGVudGljYXRlZDogdHJ1ZVxuICAgKiAgIH1cbiAgICogfSlcbiAgICogYGBgXG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFNjcmVlYkNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8U2NyZWViTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBTY3JlZWJNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtTY3JlZWIsIHsgcHJvdmlkZTogU2NyZWViQ29uZmlnLCB1c2VWYWx1ZTogY29uZmlnIH1dLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFNjcmVlYkNvbmZpZykgY29uZmlnOiBTY3JlZWJDb25maWcsXG4gICAgQEluamVjdChTY3JlZWIpIHNjcmVlYjogU2NyZWViXG4gICkge1xuICAgIGlmIChjb25maWcuc2hvdWxkTG9hZCA/PyB0cnVlKSB7XG4gICAgICBzY3JlZWIubG9hZCgpO1xuICAgIH1cblxuICAgIGlmICgoY29uZmlnLmF1dG9Jbml0ID8/IGZhbHNlKSAmJiBjb25maWcud2Vic2l0ZUlkKSB7XG4gICAgICBzY3JlZWIuaW5pdChjb25maWcud2Vic2l0ZUlkLCBjb25maWcudXNlcklkLCBjb25maWcudXNlclByb3BlcnRpZXMpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of screeb-sdk-angular
|
|
3
|
+
*/
|
|
4
|
+
export { ScreebModule } from "./lib/screeb.module";
|
|
5
|
+
export { ScreebConfig } from "./lib/screeb-config";
|
|
6
|
+
export { Screeb } from "./lib/screeb";
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NjcmVlYi1zZGstYW5ndWxhci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygc2NyZWViLXNkay1hbmd1bGFyXG4gKi9cblxuZXhwb3J0IHsgU2NyZWViTW9kdWxlIH0gZnJvbSBcIi4vbGliL3NjcmVlYi5tb2R1bGVcIjtcbmV4cG9ydCB7IFNjcmVlYkNvbmZpZyB9IGZyb20gXCIuL2xpYi9zY3JlZWItY29uZmlnXCI7XG5leHBvcnQgeyBTY3JlZWIgfSBmcm9tIFwiLi9saWIvc2NyZWViXCI7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWViLXNkay1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvc2NyZWViLXNkay1hbmd1bGFyL3NyYy9zY3JlZWItc2RrLWFuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|