@sam-senior/sam-utils 2.0.4 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/has-integrated-role.model.mjs +2 -0
- package/esm2022/lib/sam-utils.service.mjs +216 -0
- package/esm2022/lib/tenant-information.mjs +2 -0
- package/esm2022/lib/user-roles.model.mjs +4 -0
- package/esm2022/lib/user.model.mjs +2 -0
- package/esm2022/public-api.mjs +5 -0
- package/esm2022/sam-senior-sam-utils.mjs +5 -0
- package/fesm2022/sam-senior-sam-utils.mjs +227 -0
- package/fesm2022/sam-senior-sam-utils.mjs.map +1 -0
- package/{sam-senior-sam-utils.d.ts → index.d.ts} +5 -4
- package/lib/has-integrated-role.model.d.ts +3 -3
- package/lib/sam-utils.service.d.ts +29 -26
- package/lib/tenant-information.d.ts +3 -3
- package/lib/user-roles.model.d.ts +3 -3
- package/lib/user.model.d.ts +16 -16
- package/package.json +21 -14
- package/public-api.d.ts +1 -1
- package/bundles/sam-senior-sam-utils.umd.js +0 -549
- package/bundles/sam-senior-sam-utils.umd.js.map +0 -1
- package/bundles/sam-senior-sam-utils.umd.min.js +0 -2
- package/bundles/sam-senior-sam-utils.umd.min.js.map +0 -1
- package/esm2015/lib/has-integrated-role.model.js +0 -13
- package/esm2015/lib/sam-utils.service.js +0 -351
- package/esm2015/lib/tenant-information.js +0 -13
- package/esm2015/lib/user-roles.model.js +0 -11
- package/esm2015/lib/user.model.js +0 -39
- package/esm2015/public-api.js +0 -9
- package/esm2015/sam-senior-sam-utils.js +0 -9
- package/esm5/lib/has-integrated-role.model.js +0 -13
- package/esm5/lib/sam-utils.service.js +0 -435
- package/esm5/lib/tenant-information.js +0 -13
- package/esm5/lib/user-roles.model.js +0 -15
- package/esm5/lib/user.model.js +0 -39
- package/esm5/public-api.js +0 -9
- package/esm5/sam-senior-sam-utils.js +0 -9
- package/fesm2015/sam-senior-sam-utils.js +0 -351
- package/fesm2015/sam-senior-sam-utils.js.map +0 -1
- package/fesm5/sam-senior-sam-utils.js +0 -434
- package/fesm5/sam-senior-sam-utils.js.map +0 -1
- package/sam-senior-sam-utils.metadata.json +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLWludGVncmF0ZWQtcm9sZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhbS11dGlscy9zcmMvbGliL2hhcy1pbnRlZ3JhdGVkLXJvbGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSGFzSW50ZWdyYXRlZFJvbGVNb2RlbCB7XHJcbiAgaGFzSW50ZWdyYXRlZFJvbGU6IGJvb2xlYW47XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
export class SamUtilsService {
|
|
7
|
+
httpClient;
|
|
8
|
+
static HAS_LOADED = false;
|
|
9
|
+
constructor(httpClient) {
|
|
10
|
+
this.httpClient = httpClient;
|
|
11
|
+
}
|
|
12
|
+
getUrlWithoutIds(urlParts) {
|
|
13
|
+
return urlParts.map(urlPart => {
|
|
14
|
+
let url = urlPart;
|
|
15
|
+
try {
|
|
16
|
+
const id = parseFloat(urlPart);
|
|
17
|
+
if (id > 0 || id === 'new') {
|
|
18
|
+
url = '{id}';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
catch (_) {
|
|
22
|
+
url = urlPart;
|
|
23
|
+
}
|
|
24
|
+
return url;
|
|
25
|
+
}).join('/');
|
|
26
|
+
}
|
|
27
|
+
async setUserProperties(product) {
|
|
28
|
+
const user = await this.getActiveUser().toPromise();
|
|
29
|
+
gtag('set', 'user_properties', {
|
|
30
|
+
product_g7: product,
|
|
31
|
+
tenant: user.tenantName,
|
|
32
|
+
username: user.username
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
pageLoading(page, product) {
|
|
36
|
+
if (!SamUtilsService.HAS_LOADED && window.performance) {
|
|
37
|
+
SamUtilsService.HAS_LOADED = true;
|
|
38
|
+
const timeSincePageLoad = Math.round(performance.now());
|
|
39
|
+
this.sendToAnalytics('tempo_carregamento_tela', {
|
|
40
|
+
time_value: (timeSincePageLoad / 1000),
|
|
41
|
+
page: page
|
|
42
|
+
}, product).then();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
getBaseURL() {
|
|
46
|
+
try {
|
|
47
|
+
const cookie = document.cookie.split(';').filter(cookieStr => {
|
|
48
|
+
return cookieStr.includes('com.senior.base.url');
|
|
49
|
+
});
|
|
50
|
+
return decodeURIComponent(cookie[0].split('=')[1]).slice(0, -1);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
throw Error('Platform G7 not configured in this app');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async sendToAnalytics(eventName, params, product) {
|
|
57
|
+
const user = await this.getActiveUser().toPromise();
|
|
58
|
+
gtag('event', eventName, {
|
|
59
|
+
...params,
|
|
60
|
+
environment: this.getBaseURL(),
|
|
61
|
+
user: user.username,
|
|
62
|
+
tentant: user.tenantName,
|
|
63
|
+
product: product ? product : params.product,
|
|
64
|
+
debug_mode: true
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
createObservableWithValue(value) {
|
|
68
|
+
return new Observable(observer => {
|
|
69
|
+
observer.next(value);
|
|
70
|
+
observer.complete();
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/* tslint:disable */
|
|
74
|
+
getBrowser() {
|
|
75
|
+
if ((!!window['opr'] && !!window['opr'].addons) || !!window['opera'] || navigator.userAgent.indexOf(' OPR/') >= 0) { // Opera 8.0+
|
|
76
|
+
return 'Opera';
|
|
77
|
+
}
|
|
78
|
+
else if (typeof InstallTrigger !== 'undefined') { // Firefox 1.0+
|
|
79
|
+
return 'Firefox';
|
|
80
|
+
}
|
|
81
|
+
else if (/constructor/i.test(window['HTMLElement']) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && safari.pushNotification))) { // Safari 3.0+ "[object HTMLElementConstructor]"
|
|
82
|
+
return 'Safari';
|
|
83
|
+
}
|
|
84
|
+
else if ( /*@cc_on!@*/false || !!document['documentMode']) { // Internet Explorer 6-11
|
|
85
|
+
return 'Internet Explorer';
|
|
86
|
+
}
|
|
87
|
+
else if (!( /*@cc_on!@*/false || !!document['documentMode']) && !!window['StyleMedia']) { //Edge 20+
|
|
88
|
+
return 'Edge';
|
|
89
|
+
}
|
|
90
|
+
else if (!!window['chrome']) { // Chrome 1+
|
|
91
|
+
return 'Chrome';
|
|
92
|
+
}
|
|
93
|
+
return 'unknown';
|
|
94
|
+
}
|
|
95
|
+
/* tslint:enable */
|
|
96
|
+
getG7BridgeURL() {
|
|
97
|
+
try {
|
|
98
|
+
const dt = document.cookie.split(';').filter(cookieStr => {
|
|
99
|
+
return cookieStr.includes('com.senior.services.url');
|
|
100
|
+
});
|
|
101
|
+
return decodeURIComponent(dt[0].split('=')[1]).slice(0, -1);
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
throw Error('Platform G7 not configured in this app');
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
getActiveUser() {
|
|
108
|
+
return this.httpClient.get(`${this.getG7BridgeURL()}/rest/platform/user/queries/getUser`, {
|
|
109
|
+
headers: this.getHeaders()
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
getRolesByActiveUser(user) {
|
|
113
|
+
return this.httpClient.get(`${this.getG7BridgeURL()}/rest/platform/authorization/queries/getUserRoles?user=${user}`, {
|
|
114
|
+
headers: this.getHeaders()
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
getTenatInformation(schemaName) {
|
|
118
|
+
return this.httpClient.get(`${this.getG7BridgeURL()}/rest/sam/administration/queries/getErpCode`, {
|
|
119
|
+
params: {
|
|
120
|
+
schemaName: schemaName
|
|
121
|
+
},
|
|
122
|
+
headers: this.getHeaders()
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
hasIntegratedRole() {
|
|
126
|
+
return this.httpClient.get(`${this.getG7BridgeURL()}/rest/sam/application/queries/hasIntegratedRole`, {
|
|
127
|
+
headers: this.getHeaders()
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
getHeaders() {
|
|
131
|
+
const token = this.getG7Token();
|
|
132
|
+
return new HttpHeaders().set('Authorization', `${token.token_type} ${token.access_token}`);
|
|
133
|
+
}
|
|
134
|
+
getG7Token() {
|
|
135
|
+
try {
|
|
136
|
+
const seniorToken = document.cookie.split(';').filter(cookieStr => {
|
|
137
|
+
return cookieStr.includes('com.senior.token');
|
|
138
|
+
});
|
|
139
|
+
return JSON.parse(decodeURIComponent(seniorToken[0].split('=')[1]));
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
throw Error('Platform G7 not configured in this app');
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
async trackSale(tracksaleKey, tracksaleCampaign, pageUrl) {
|
|
146
|
+
if (!window.show_tacksale) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const userInformation = await this.getActiveUser().toPromise();
|
|
150
|
+
let roles = '';
|
|
151
|
+
if (window.can_capture_role) {
|
|
152
|
+
const role = await this.getRolesByActiveUser(userInformation.username).toPromise();
|
|
153
|
+
roles = role.roles.join(', ');
|
|
154
|
+
}
|
|
155
|
+
const hasIntegratedRole = await this.hasIntegratedRole().toPromise();
|
|
156
|
+
const tenantInformation = await this.getTenatInformation(userInformation.tenantName).toPromise();
|
|
157
|
+
const browser = this.getBrowser();
|
|
158
|
+
const fullname = userInformation.fullName.replace('+', ' ');
|
|
159
|
+
const email = userInformation.email;
|
|
160
|
+
(function (f, b, g) {
|
|
161
|
+
const a = {
|
|
162
|
+
key: tracksaleKey,
|
|
163
|
+
campaign: tracksaleCampaign,
|
|
164
|
+
name: fullname,
|
|
165
|
+
email: email,
|
|
166
|
+
tags: {
|
|
167
|
+
'tenant': userInformation.tenantName,
|
|
168
|
+
'papel': roles,
|
|
169
|
+
'device': browser,
|
|
170
|
+
'uf': '',
|
|
171
|
+
'SAM': !hasIntegratedRole.hasIntegratedRole,
|
|
172
|
+
'GAS': hasIntegratedRole.hasIntegratedRole,
|
|
173
|
+
'GestaoIncidentes': '',
|
|
174
|
+
'Cameras': '',
|
|
175
|
+
'PortariaVirtual': '',
|
|
176
|
+
'Autoatendimento': '',
|
|
177
|
+
'pagina': pageUrl,
|
|
178
|
+
'ID ERP': tenantInformation.erpCode
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
// Seguindo o exemplo da arquitera.
|
|
182
|
+
// Fonte não será alterado nesta task;
|
|
183
|
+
let e;
|
|
184
|
+
const c = f.getElementsByTagName(b)[0];
|
|
185
|
+
if (f.getElementById(g)) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
e = f.createElement(b);
|
|
189
|
+
e.id = g;
|
|
190
|
+
e.src = 'https://cdn.tracksale.co/tracksale-js/tracksale.js';
|
|
191
|
+
e.type = 'text/javascript';
|
|
192
|
+
e.async = true;
|
|
193
|
+
e.onload = e.onreadystatechange = function () {
|
|
194
|
+
const h = this.readyState;
|
|
195
|
+
if (h && h !== 'complete' && h !== 'loaded') {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
try {
|
|
199
|
+
const d = new Tracksale();
|
|
200
|
+
d.init(a);
|
|
201
|
+
}
|
|
202
|
+
catch (i) { }
|
|
203
|
+
};
|
|
204
|
+
c.parentNode.insertBefore(e, c);
|
|
205
|
+
}(document, 'script', 'tracksale-js'));
|
|
206
|
+
}
|
|
207
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SamUtilsService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
208
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SamUtilsService, providedIn: 'root' });
|
|
209
|
+
}
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SamUtilsService, decorators: [{
|
|
211
|
+
type: Injectable,
|
|
212
|
+
args: [{
|
|
213
|
+
providedIn: 'root'
|
|
214
|
+
}]
|
|
215
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtLXV0aWxzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYW0tdXRpbHMvc3JjL2xpYi9zYW0tdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFjL0QsTUFBTSxPQUFPLGVBQWU7SUFLaEI7SUFIRixNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUVsQyxZQUNVLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDNUIsQ0FBQztJQUVFLGdCQUFnQixDQUFDLFFBQVE7UUFDOUIsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzVCLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQztZQUNsQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBUSxDQUFDO2dCQUN0QyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEtBQUssRUFBRSxDQUFDO29CQUMzQixHQUFHLEdBQUcsTUFBTSxDQUFDO2dCQUNmLENBQUM7WUFDSCxDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDWCxHQUFHLEdBQUcsT0FBTyxDQUFDO1lBQ2hCLENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBZTtRQUM1QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztR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O2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4vdXNlci5tb2RlbCc7XHJcbmltcG9ydCB7IFVzZXJSb2xlcyB9IGZyb20gJy4vdXNlci1yb2xlcy5tb2RlbCc7XHJcbmltcG9ydCB7IEhhc0ludGVncmF0ZWRSb2xlTW9kZWwgfSBmcm9tICcuL2hhcy1pbnRlZ3JhdGVkLXJvbGUubW9kZWwnO1xyXG5pbXBvcnQgeyBUZW5hbnRJbmZvcm1hdGlvbiB9IGZyb20gJy4vdGVuYW50LWluZm9ybWF0aW9uJztcclxuXHJcbmRlY2xhcmUgY29uc3QgSW5zdGFsbFRyaWdnZXI6IGFueTtcclxuZGVjbGFyZSBjb25zdCBzYWZhcmk6IGFueTtcclxuZGVjbGFyZSBjb25zdCBUcmFja3NhbGU6IGFueTtcclxuZGVjbGFyZSBsZXQgZ3RhZzogRnVuY3Rpb247XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYW1VdGlsc1NlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBIQVNfTE9BREVEID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgcHVibGljIGdldFVybFdpdGhvdXRJZHModXJsUGFydHMpIHtcclxuICAgIHJldHVybiB1cmxQYXJ0cy5tYXAodXJsUGFydCA9PiB7XHJcbiAgICAgIGxldCB1cmwgPSB1cmxQYXJ0O1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IGlkID0gcGFyc2VGbG9hdCh1cmxQYXJ0KSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGlkID4gMCB8fCBpZCA9PT0gJ25ldycpIHtcclxuICAgICAgICAgIHVybCA9ICd7aWR9JztcclxuICAgICAgICB9XHJcbiAgICAgIH0gY2F0Y2ggKF8pIHtcclxuICAgICAgICB1cmwgPSB1cmxQYXJ0O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB1cmw7XHJcbiAgICB9KS5qb2luKCcvJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2V0VXNlclByb3BlcnRpZXMocHJvZHVjdDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVVc2VyKCkudG9Qcm9taXNlKCk7XHJcbiAgICBndGFnKCdzZXQnLCAndXNlcl9wcm9wZXJ0aWVzJywge1xyXG4gICAgICBwcm9kdWN0X2c3OiBwcm9kdWN0LFxyXG4gICAgICB0ZW5hbnQ6IHVzZXIudGVuYW50TmFtZSxcclxuICAgICAgdXNlcm5hbWU6IHVzZXIudXNlcm5hbWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBhZ2VMb2FkaW5nKHBhZ2U6IHN0cmluZywgcHJvZHVjdDogc3RyaW5nKSB7XHJcbiAgICBpZiAoIVNhbVV0aWxzU2VydmljZS5IQVNfTE9BREVEICYmIHdpbmRvdy5wZXJmb3JtYW5jZSkge1xyXG4gICAgICBTYW1VdGlsc1NlcnZpY2UuSEFTX0xPQURFRCA9IHRydWU7XHJcbiAgICAgIGNvbnN0IHRpbWVTaW5jZVBhZ2VMb2FkID0gTWF0aC5yb3VuZChwZXJmb3JtYW5jZS5ub3coKSk7XHJcbiAgICAgIHRoaXMuc2VuZFRvQW5hbHl0aWNzKCd0ZW1wb19jYXJyZWdhbWVudG9fdGVsYScsIHtcclxuICAgICAgICB0aW1lX3ZhbHVlOiAodGltZVNpbmNlUGFnZUxvYWQgLyAxMDAwKSxcclxuICAgICAgICBwYWdlOiBwYWdlXHJcbiAgICAgIH0sIHByb2R1Y3QpLnRoZW4oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRCYXNlVVJMKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgY29va2llID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7JykuZmlsdGVyKGNvb2tpZVN0ciA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGNvb2tpZVN0ci5pbmNsdWRlcygnY29tLnNlbmlvci5iYXNlLnVybCcpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChcclxuICAgICAgICBjb29raWVbMF0uc3BsaXQoJz0nKVsxXVxyXG4gICAgICApLnNsaWNlKDAsIC0xKTtcclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICB0aHJvdyBFcnJvcignUGxhdGZvcm0gRzcgbm90IGNvbmZpZ3VyZWQgaW4gdGhpcyBhcHAnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZW5kVG9BbmFseXRpY3MoZXZlbnROYW1lOiBzdHJpbmcsIHBhcmFtczogYW55LCBwcm9kdWN0Pzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVVc2VyKCkudG9Qcm9taXNlKCk7XHJcbiAgICBndGFnKCdldmVudCcsIGV2ZW50TmFtZSwge1xyXG4gICAgICAuLi5wYXJhbXMsXHJcbiAgICAgIGVudmlyb25tZW50OiB0aGlzLmdldEJhc2VVUkwoKSxcclxuICAgICAgdXNlcjogdXNlci51c2VybmFtZSxcclxuICAgICAgdGVudGFudDogdXNlci50ZW5hbnROYW1lLFxyXG4gICAgICBwcm9kdWN0OiBwcm9kdWN0ID8gcHJvZHVjdCA6IHBhcmFtcy5wcm9kdWN0LFxyXG4gICAgICBkZWJ1Z19tb2RlOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVPYnNlcnZhYmxlV2l0aFZhbHVlPFQ+KHZhbHVlKSB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VD4ob2JzZXJ2ZXIgPT4ge1xyXG4gICAgICBvYnNlcnZlci5uZXh0KHZhbHVlKTtcclxuICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyogdHNsaW50OmRpc2FibGUgKi9cclxuICBwdWJsaWMgZ2V0QnJvd3NlcigpOiBzdHJpbmcge1xyXG4gICAgaWYgKCghIXdpbmRvd1snb3ByJ10gJiYgISF3aW5kb3dbJ29wciddLmFkZG9ucykgfHwgISF3aW5kb3dbJ29wZXJhJ10gfHwgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCcgT1BSLycpID49IDApIHsgLy8gT3BlcmEgOC4wK1xyXG4gICAgICByZXR1cm4gJ09wZXJhJztcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIEluc3RhbGxUcmlnZ2VyICE9PSAndW5kZWZpbmVkJykgeyAvLyBGaXJlZm94IDEuMCtcclxuICAgICAgcmV0dXJuICdGaXJlZm94JztcclxuICAgIH0gZWxzZSBpZiAoL2NvbnN0cnVjdG9yL2kudGVzdCh3aW5kb3dbJ0hUTUxFbGVtZW50J10gYXMgYW55KSB8fCAoZnVuY3Rpb24gKHApIHsgcmV0dXJuIHAudG9TdHJpbmcoKSA9PT0gXCJbb2JqZWN0IFNhZmFyaVJlbW90ZU5vdGlmaWNhdGlvbl1cIjsgfSkoIXdpbmRvd1snc2FmYXJpJ10gfHwgKHR5cGVvZiBzYWZhcmkgIT09ICd1bmRlZmluZWQnICYmIHNhZmFyaS5wdXNoTm90aWZpY2F0aW9uKSkpIHsgLy8gU2FmYXJpIDMuMCsgXCJbb2JqZWN0IEhUTUxFbGVtZW50Q29uc3RydWN0b3JdXCJcclxuICAgICAgcmV0dXJuICdTYWZhcmknO1xyXG4gICAgfSBlbHNlIGlmICgvKkBjY19vbiFAKi9mYWxzZSB8fCAhIWRvY3VtZW50Wydkb2N1bWVudE1vZGUnXSkgeyAvLyBJbnRlcm5ldCBFeHBsb3JlciA2LTExXHJcbiAgICAgIHJldHVybiAnSW50ZXJuZXQgRXhwbG9yZXInO1xyXG4gICAgfSBlbHNlIGlmICghKC8qQGNjX29uIUAqL2ZhbHNlIHx8ICEhZG9jdW1lbnRbJ2RvY3VtZW50TW9kZSddKSAmJiAhIXdpbmRvd1snU3R5bGVNZWRpYSddKSB7IC8vRWRnZSAyMCtcclxuICAgICAgcmV0dXJuICdFZGdlJztcclxuICAgIH0gZWxzZSBpZiAoISF3aW5kb3dbJ2Nocm9tZSddKSB7Ly8gQ2hyb21lIDErXHJcbiAgICAgIHJldHVybiAnQ2hyb21lJztcclxuICAgIH1cclxuICAgIHJldHVybiAndW5rbm93bic7XHJcbiAgfVxyXG4gIC8qIHRzbGludDplbmFibGUgKi9cclxuXHJcbiAgcHVibGljIGdldEc3QnJpZGdlVVJMKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgZHQgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKS5maWx0ZXIoY29va2llU3RyID0+IHtcclxuICAgICAgICByZXR1cm4gY29va2llU3RyLmluY2x1ZGVzKCdjb20uc2VuaW9yLnNlcnZpY2VzLnVybCcpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChcclxuICAgICAgICBkdFswXS5zcGxpdCgnPScpWzFdXHJcbiAgICAgICkuc2xpY2UoMCwgLTEpO1xyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIHRocm93IEVycm9yKCdQbGF0Zm9ybSBHNyBub3QgY29uZmlndXJlZCBpbiB0aGlzIGFwcCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFjdGl2ZVVzZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxVc2VyPihgJHt0aGlzLmdldEc3QnJpZGdlVVJMKCl9L3Jlc3QvcGxhdGZvcm0vdXNlci9xdWVyaWVzL2dldFVzZXJgLCB7XHJcbiAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSb2xlc0J5QWN0aXZlVXNlcih1c2VyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxVc2VyUm9sZXM+KGAke3RoaXMuZ2V0RzdCcmlkZ2VVUkwoKX0vcmVzdC9wbGF0Zm9ybS9hdXRob3JpemF0aW9uL3F1ZXJpZXMvZ2V0VXNlclJvbGVzP3VzZXI9JHt1c2VyfWAsIHtcclxuICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKClcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRlbmF0SW5mb3JtYXRpb24oc2NoZW1hTmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxUZW5hbnRJbmZvcm1hdGlvbj4oYCR7dGhpcy5nZXRHN0JyaWRnZVVSTCgpfS9yZXN0L3NhbS9hZG1pbmlzdHJhdGlvbi9xdWVyaWVzL2dldEVycENvZGVgLCB7XHJcbiAgICAgIHBhcmFtczoge1xyXG4gICAgICAgIHNjaGVtYU5hbWU6IHNjaGVtYU5hbWVcclxuICAgICAgfSxcclxuICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKClcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc0ludGVncmF0ZWRSb2xlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8SGFzSW50ZWdyYXRlZFJvbGVNb2RlbD4oYCR7dGhpcy5nZXRHN0JyaWRnZVVSTCgpfS9yZXN0L3NhbS9hcHBsaWNhdGlvbi9xdWVyaWVzL2hhc0ludGVncmF0ZWRSb2xlYCwge1xyXG4gICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEhlYWRlcnMoKSB7XHJcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuZ2V0RzdUb2tlbigpO1xyXG4gICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycygpLnNldCgnQXV0aG9yaXphdGlvbicsIGAke3Rva2VuLnRva2VuX3R5cGV9ICR7dG9rZW4uYWNjZXNzX3Rva2VufWApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEc3VG9rZW4oKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBzZW5pb3JUb2tlbiA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpLmZpbHRlcihjb29raWVTdHIgPT4ge1xyXG4gICAgICAgIHJldHVybiBjb29raWVTdHIuaW5jbHVkZXMoJ2NvbS5zZW5pb3IudG9rZW4nKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChzZW5pb3JUb2tlblswXS5zcGxpdCgnPScpWzFdKSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ1BsYXRmb3JtIEc3IG5vdCBjb25maWd1cmVkIGluIHRoaXMgYXBwJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgdHJhY2tTYWxlKHRyYWNrc2FsZUtleTogc3RyaW5nLCB0cmFja3NhbGVDYW1wYWlnbjogc3RyaW5nLCBwYWdlVXJsOiBzdHJpbmcpIHtcclxuICAgIGlmICghKHdpbmRvdyBhcyBhbnkpLnNob3dfdGFja3NhbGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHVzZXJJbmZvcm1hdGlvbiA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlVXNlcigpLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgIGxldCByb2xlcyA9ICcnO1xyXG4gICAgaWYgKCh3aW5kb3cgYXMgYW55KS5jYW5fY2FwdHVyZV9yb2xlKSB7XHJcbiAgICAgIGNvbnN0IHJvbGUgPSBhd2FpdCB0aGlzLmdldFJvbGVzQnlBY3RpdmVVc2VyKHVzZXJJbmZvcm1hdGlvbi51c2VybmFtZSkudG9Qcm9taXNlKCk7XHJcbiAgICAgIHJvbGVzID0gcm9sZS5yb2xlcy5qb2luKCcsICcpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGhhc0ludGVncmF0ZWRSb2xlID0gYXdhaXQgdGhpcy5oYXNJbnRlZ3JhdGVkUm9sZSgpLnRvUHJvbWlzZSgpO1xyXG4gICAgY29uc3QgdGVuYW50SW5mb3JtYXRpb24gPSBhd2FpdCB0aGlzLmdldFRlbmF0SW5mb3JtYXRpb24odXNlckluZm9ybWF0aW9uLnRlbmFudE5hbWUpLnRvUHJvbWlzZSgpO1xyXG4gICAgY29uc3QgYnJvd3NlciA9IHRoaXMuZ2V0QnJvd3NlcigpO1xyXG4gICAgY29uc3QgZnVsbG5hbWUgPSB1c2VySW5mb3JtYXRpb24uZnVsbE5hbWUucmVwbGFjZSgnKycsICcgJyk7XHJcbiAgICBjb25zdCBlbWFpbCA9IHVzZXJJbmZvcm1hdGlvbi5lbWFpbDtcclxuICAgIChmdW5jdGlvbiAoZiwgYiwgZykge1xyXG4gICAgICBjb25zdCBhID0ge1xyXG4gICAgICAgIGtleTogdHJhY2tzYWxlS2V5LFxyXG4gICAgICAgIGNhbXBhaWduOiB0cmFja3NhbGVDYW1wYWlnbixcclxuICAgICAgICBuYW1lOiBmdWxsbmFtZSxcclxuICAgICAgICBlbWFpbDogZW1haWwsXHJcbiAgICAgICAgdGFnczoge1xyXG4gICAgICAgICAgJ3RlbmFudCc6IHVzZXJJbmZvcm1hdGlvbi50ZW5hbnROYW1lLFxyXG4gICAgICAgICAgJ3BhcGVsJzogcm9sZXMsXHJcbiAgICAgICAgICAnZGV2aWNlJzogYnJvd3NlcixcclxuICAgICAgICAgICd1Zic6ICcnLFxyXG4gICAgICAgICAgJ1NBTSc6ICFoYXNJbnRlZ3JhdGVkUm9sZS5oYXNJbnRlZ3JhdGVkUm9sZSxcclxuICAgICAgICAgICdHQVMnOiBoYXNJbnRlZ3JhdGVkUm9sZS5oYXNJbnRlZ3JhdGVkUm9sZSxcclxuICAgICAgICAgICdHZXN0YW9JbmNpZGVudGVzJzogJycsXHJcbiAgICAgICAgICAnQ2FtZXJhcyc6ICcnLFxyXG4gICAgICAgICAgJ1BvcnRhcmlhVmlydHVhbCc6ICcnLFxyXG4gICAgICAgICAgJ0F1dG9hdGVuZGltZW50byc6ICcnLFxyXG4gICAgICAgICAgJ3BhZ2luYSc6IHBhZ2VVcmwsXHJcbiAgICAgICAgICAnSUQgRVJQJzogdGVuYW50SW5mb3JtYXRpb24uZXJwQ29kZVxyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgLy8gU2VndWluZG8gbyBleGVtcGxvIGRhIGFycXVpdGVyYS5cclxuICAgICAgLy8gRm9udGUgbsOjbyBzZXLDoSBhbHRlcmFkbyBuZXN0YSB0YXNrO1xyXG4gICAgICBsZXQgZTtcclxuICAgICAgY29uc3QgYyA9IGYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYilbMF07XHJcbiAgICAgIGlmIChmLmdldEVsZW1lbnRCeUlkKGcpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGUgPSBmLmNyZWF0ZUVsZW1lbnQoYik7XHJcbiAgICAgIGUuaWQgPSBnO1xyXG4gICAgICBlLnNyYyA9ICdodHRwczovL2Nkbi50cmFja3NhbGUuY28vdHJhY2tzYWxlLWpzL3RyYWNrc2FsZS5qcyc7XHJcbiAgICAgIGUudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xyXG4gICAgICBlLmFzeW5jID0gdHJ1ZTtcclxuICAgICAgZS5vbmxvYWQgPSBlLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBjb25zdCBoID0gdGhpcy5yZWFkeVN0YXRlO1xyXG4gICAgICAgIGlmIChoICYmIGggIT09ICdjb21wbGV0ZScgJiYgaCAhPT0gJ2xvYWRlZCcpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGNvbnN0IGQgPSBuZXcgVHJhY2tzYWxlKCk7XHJcbiAgICAgICAgICBkLmluaXQoYSk7XHJcbiAgICAgICAgfSBjYXRjaCAoaSkgeyB9XHJcbiAgICAgIH07XHJcbiAgICAgIGMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSwgYyk7XHJcbiAgICB9KGRvY3VtZW50LCAnc2NyaXB0JywgJ3RyYWNrc2FsZS1qcycpKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWluZm9ybWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FtLXV0aWxzL3NyYy9saWIvdGVuYW50LWluZm9ybWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFRlbmFudEluZm9ybWF0aW9uIHtcclxuICBlcnBDb2RlOiBudW1iZXI7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export class UserRoles {
|
|
2
|
+
roles;
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1yb2xlcy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhbS11dGlscy9zcmMvbGliL3VzZXItcm9sZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFNBQVM7SUFDcEIsS0FBSyxDQUFXO0NBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFVzZXJSb2xlcyB7XHJcbiAgcm9sZXM6IHN0cmluZ1tdO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhbS11dGlscy9zcmMvbGliL3VzZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVXNlciB7XHJcbiAgYWRtaW46IGJvb2xlYW47XHJcbiAgYWxsb3dlZFRvQ2hhbmdlUGFzc3dvcmQ6IGJvb2xlYW47XHJcbiAgYXV0aGVudGljYXRpb25UeXBlOiBzdHJpbmc7XHJcbiAgYmxvY2tlZDogYm9vbGVhbjtcclxuICBjaGFuZ2VQYXNzd29yZDogYm9vbGVhbjtcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgZnVsbE5hbWU6IHN0cmluZztcclxuICBpZDogc3RyaW5nO1xyXG4gIGxvY2FsZTogc3RyaW5nO1xyXG4gIHRlbmFudERvbWFpbjogc3RyaW5nO1xyXG4gIHRlbmFudExvY2FsZTogc3RyaW5nO1xyXG4gIHRlbmFudE5hbWU6IHN0cmluZztcclxuICB1c2VybmFtZTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of sam-utils
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/sam-utils.service';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NhbS11dGlscy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygc2FtLXV0aWxzXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2FtLXV0aWxzLnNlcnZpY2UnO1xyXG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtLXNlbmlvci1zYW0tdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9zYW0tdXRpbHMvc3JjL3NhbS1zZW5pb3Itc2FtLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
import * as i1 from '@angular/common/http';
|
|
5
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
6
|
+
|
|
7
|
+
class SamUtilsService {
|
|
8
|
+
httpClient;
|
|
9
|
+
static HAS_LOADED = false;
|
|
10
|
+
constructor(httpClient) {
|
|
11
|
+
this.httpClient = httpClient;
|
|
12
|
+
}
|
|
13
|
+
getUrlWithoutIds(urlParts) {
|
|
14
|
+
return urlParts.map(urlPart => {
|
|
15
|
+
let url = urlPart;
|
|
16
|
+
try {
|
|
17
|
+
const id = parseFloat(urlPart);
|
|
18
|
+
if (id > 0 || id === 'new') {
|
|
19
|
+
url = '{id}';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch (_) {
|
|
23
|
+
url = urlPart;
|
|
24
|
+
}
|
|
25
|
+
return url;
|
|
26
|
+
}).join('/');
|
|
27
|
+
}
|
|
28
|
+
async setUserProperties(product) {
|
|
29
|
+
const user = await this.getActiveUser().toPromise();
|
|
30
|
+
gtag('set', 'user_properties', {
|
|
31
|
+
product_g7: product,
|
|
32
|
+
tenant: user.tenantName,
|
|
33
|
+
username: user.username
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
pageLoading(page, product) {
|
|
37
|
+
if (!SamUtilsService.HAS_LOADED && window.performance) {
|
|
38
|
+
SamUtilsService.HAS_LOADED = true;
|
|
39
|
+
const timeSincePageLoad = Math.round(performance.now());
|
|
40
|
+
this.sendToAnalytics('tempo_carregamento_tela', {
|
|
41
|
+
time_value: (timeSincePageLoad / 1000),
|
|
42
|
+
page: page
|
|
43
|
+
}, product).then();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
getBaseURL() {
|
|
47
|
+
try {
|
|
48
|
+
const cookie = document.cookie.split(';').filter(cookieStr => {
|
|
49
|
+
return cookieStr.includes('com.senior.base.url');
|
|
50
|
+
});
|
|
51
|
+
return decodeURIComponent(cookie[0].split('=')[1]).slice(0, -1);
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
throw Error('Platform G7 not configured in this app');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async sendToAnalytics(eventName, params, product) {
|
|
58
|
+
const user = await this.getActiveUser().toPromise();
|
|
59
|
+
gtag('event', eventName, {
|
|
60
|
+
...params,
|
|
61
|
+
environment: this.getBaseURL(),
|
|
62
|
+
user: user.username,
|
|
63
|
+
tentant: user.tenantName,
|
|
64
|
+
product: product ? product : params.product,
|
|
65
|
+
debug_mode: true
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
createObservableWithValue(value) {
|
|
69
|
+
return new Observable(observer => {
|
|
70
|
+
observer.next(value);
|
|
71
|
+
observer.complete();
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/* tslint:disable */
|
|
75
|
+
getBrowser() {
|
|
76
|
+
if ((!!window['opr'] && !!window['opr'].addons) || !!window['opera'] || navigator.userAgent.indexOf(' OPR/') >= 0) { // Opera 8.0+
|
|
77
|
+
return 'Opera';
|
|
78
|
+
}
|
|
79
|
+
else if (typeof InstallTrigger !== 'undefined') { // Firefox 1.0+
|
|
80
|
+
return 'Firefox';
|
|
81
|
+
}
|
|
82
|
+
else if (/constructor/i.test(window['HTMLElement']) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && safari.pushNotification))) { // Safari 3.0+ "[object HTMLElementConstructor]"
|
|
83
|
+
return 'Safari';
|
|
84
|
+
}
|
|
85
|
+
else if ( /*@cc_on!@*/false || !!document['documentMode']) { // Internet Explorer 6-11
|
|
86
|
+
return 'Internet Explorer';
|
|
87
|
+
}
|
|
88
|
+
else if (!( /*@cc_on!@*/false || !!document['documentMode']) && !!window['StyleMedia']) { //Edge 20+
|
|
89
|
+
return 'Edge';
|
|
90
|
+
}
|
|
91
|
+
else if (!!window['chrome']) { // Chrome 1+
|
|
92
|
+
return 'Chrome';
|
|
93
|
+
}
|
|
94
|
+
return 'unknown';
|
|
95
|
+
}
|
|
96
|
+
/* tslint:enable */
|
|
97
|
+
getG7BridgeURL() {
|
|
98
|
+
try {
|
|
99
|
+
const dt = document.cookie.split(';').filter(cookieStr => {
|
|
100
|
+
return cookieStr.includes('com.senior.services.url');
|
|
101
|
+
});
|
|
102
|
+
return decodeURIComponent(dt[0].split('=')[1]).slice(0, -1);
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
throw Error('Platform G7 not configured in this app');
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
getActiveUser() {
|
|
109
|
+
return this.httpClient.get(`${this.getG7BridgeURL()}/rest/platform/user/queries/getUser`, {
|
|
110
|
+
headers: this.getHeaders()
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
getRolesByActiveUser(user) {
|
|
114
|
+
return this.httpClient.get(`${this.getG7BridgeURL()}/rest/platform/authorization/queries/getUserRoles?user=${user}`, {
|
|
115
|
+
headers: this.getHeaders()
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
getTenatInformation(schemaName) {
|
|
119
|
+
return this.httpClient.get(`${this.getG7BridgeURL()}/rest/sam/administration/queries/getErpCode`, {
|
|
120
|
+
params: {
|
|
121
|
+
schemaName: schemaName
|
|
122
|
+
},
|
|
123
|
+
headers: this.getHeaders()
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
hasIntegratedRole() {
|
|
127
|
+
return this.httpClient.get(`${this.getG7BridgeURL()}/rest/sam/application/queries/hasIntegratedRole`, {
|
|
128
|
+
headers: this.getHeaders()
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
getHeaders() {
|
|
132
|
+
const token = this.getG7Token();
|
|
133
|
+
return new HttpHeaders().set('Authorization', `${token.token_type} ${token.access_token}`);
|
|
134
|
+
}
|
|
135
|
+
getG7Token() {
|
|
136
|
+
try {
|
|
137
|
+
const seniorToken = document.cookie.split(';').filter(cookieStr => {
|
|
138
|
+
return cookieStr.includes('com.senior.token');
|
|
139
|
+
});
|
|
140
|
+
return JSON.parse(decodeURIComponent(seniorToken[0].split('=')[1]));
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
throw Error('Platform G7 not configured in this app');
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
async trackSale(tracksaleKey, tracksaleCampaign, pageUrl) {
|
|
147
|
+
if (!window.show_tacksale) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const userInformation = await this.getActiveUser().toPromise();
|
|
151
|
+
let roles = '';
|
|
152
|
+
if (window.can_capture_role) {
|
|
153
|
+
const role = await this.getRolesByActiveUser(userInformation.username).toPromise();
|
|
154
|
+
roles = role.roles.join(', ');
|
|
155
|
+
}
|
|
156
|
+
const hasIntegratedRole = await this.hasIntegratedRole().toPromise();
|
|
157
|
+
const tenantInformation = await this.getTenatInformation(userInformation.tenantName).toPromise();
|
|
158
|
+
const browser = this.getBrowser();
|
|
159
|
+
const fullname = userInformation.fullName.replace('+', ' ');
|
|
160
|
+
const email = userInformation.email;
|
|
161
|
+
(function (f, b, g) {
|
|
162
|
+
const a = {
|
|
163
|
+
key: tracksaleKey,
|
|
164
|
+
campaign: tracksaleCampaign,
|
|
165
|
+
name: fullname,
|
|
166
|
+
email: email,
|
|
167
|
+
tags: {
|
|
168
|
+
'tenant': userInformation.tenantName,
|
|
169
|
+
'papel': roles,
|
|
170
|
+
'device': browser,
|
|
171
|
+
'uf': '',
|
|
172
|
+
'SAM': !hasIntegratedRole.hasIntegratedRole,
|
|
173
|
+
'GAS': hasIntegratedRole.hasIntegratedRole,
|
|
174
|
+
'GestaoIncidentes': '',
|
|
175
|
+
'Cameras': '',
|
|
176
|
+
'PortariaVirtual': '',
|
|
177
|
+
'Autoatendimento': '',
|
|
178
|
+
'pagina': pageUrl,
|
|
179
|
+
'ID ERP': tenantInformation.erpCode
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
// Seguindo o exemplo da arquitera.
|
|
183
|
+
// Fonte não será alterado nesta task;
|
|
184
|
+
let e;
|
|
185
|
+
const c = f.getElementsByTagName(b)[0];
|
|
186
|
+
if (f.getElementById(g)) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
e = f.createElement(b);
|
|
190
|
+
e.id = g;
|
|
191
|
+
e.src = 'https://cdn.tracksale.co/tracksale-js/tracksale.js';
|
|
192
|
+
e.type = 'text/javascript';
|
|
193
|
+
e.async = true;
|
|
194
|
+
e.onload = e.onreadystatechange = function () {
|
|
195
|
+
const h = this.readyState;
|
|
196
|
+
if (h && h !== 'complete' && h !== 'loaded') {
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
try {
|
|
200
|
+
const d = new Tracksale();
|
|
201
|
+
d.init(a);
|
|
202
|
+
}
|
|
203
|
+
catch (i) { }
|
|
204
|
+
};
|
|
205
|
+
c.parentNode.insertBefore(e, c);
|
|
206
|
+
}(document, 'script', 'tracksale-js'));
|
|
207
|
+
}
|
|
208
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SamUtilsService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
209
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SamUtilsService, providedIn: 'root' });
|
|
210
|
+
}
|
|
211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SamUtilsService, decorators: [{
|
|
212
|
+
type: Injectable,
|
|
213
|
+
args: [{
|
|
214
|
+
providedIn: 'root'
|
|
215
|
+
}]
|
|
216
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
217
|
+
|
|
218
|
+
/*
|
|
219
|
+
* Public API Surface of sam-utils
|
|
220
|
+
*/
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Generated bundle index. Do not edit.
|
|
224
|
+
*/
|
|
225
|
+
|
|
226
|
+
export { SamUtilsService };
|
|
227
|
+
//# sourceMappingURL=sam-senior-sam-utils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sam-senior-sam-utils.mjs","sources":["../../../projects/sam-utils/src/lib/sam-utils.service.ts","../../../projects/sam-utils/src/public-api.ts","../../../projects/sam-utils/src/sam-senior-sam-utils.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { User } from './user.model';\r\nimport { UserRoles } from './user-roles.model';\r\nimport { HasIntegratedRoleModel } from './has-integrated-role.model';\r\nimport { TenantInformation } from './tenant-information';\r\n\r\ndeclare const InstallTrigger: any;\r\ndeclare const safari: any;\r\ndeclare const Tracksale: any;\r\ndeclare let gtag: Function;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SamUtilsService {\r\n\r\n private static HAS_LOADED = false;\r\n\r\n constructor(\r\n private httpClient: HttpClient\r\n ) { }\r\n\r\n public getUrlWithoutIds(urlParts) {\r\n return urlParts.map(urlPart => {\r\n let url = urlPart;\r\n try {\r\n const id = parseFloat(urlPart) as any;\r\n if (id > 0 || id === 'new') {\r\n url = '{id}';\r\n }\r\n } catch (_) {\r\n url = urlPart;\r\n }\r\n return url;\r\n }).join('/');\r\n }\r\n\r\n public async setUserProperties(product: string) {\r\n const user = await this.getActiveUser().toPromise();\r\n gtag('set', 'user_properties', {\r\n product_g7: product,\r\n tenant: user.tenantName,\r\n username: user.username\r\n });\r\n }\r\n\r\n public pageLoading(page: string, product: string) {\r\n if (!SamUtilsService.HAS_LOADED && window.performance) {\r\n SamUtilsService.HAS_LOADED = true;\r\n const timeSincePageLoad = Math.round(performance.now());\r\n this.sendToAnalytics('tempo_carregamento_tela', {\r\n time_value: (timeSincePageLoad / 1000),\r\n page: page\r\n }, product).then();\r\n }\r\n }\r\n\r\n public getBaseURL() {\r\n try {\r\n const cookie = document.cookie.split(';').filter(cookieStr => {\r\n return cookieStr.includes('com.senior.base.url');\r\n });\r\n return decodeURIComponent(\r\n cookie[0].split('=')[1]\r\n ).slice(0, -1);\r\n } catch (err) {\r\n throw Error('Platform G7 not configured in this app');\r\n }\r\n }\r\n\r\n public async sendToAnalytics(eventName: string, params: any, product?: string) {\r\n const user = await this.getActiveUser().toPromise();\r\n gtag('event', eventName, {\r\n ...params,\r\n environment: this.getBaseURL(),\r\n user: user.username,\r\n tentant: user.tenantName,\r\n product: product ? product : params.product,\r\n debug_mode: true\r\n });\r\n }\r\n\r\n public createObservableWithValue<T>(value) {\r\n return new Observable<T>(observer => {\r\n observer.next(value);\r\n observer.complete();\r\n });\r\n }\r\n\r\n /* tslint:disable */\r\n public getBrowser(): string {\r\n if ((!!window['opr'] && !!window['opr'].addons) || !!window['opera'] || navigator.userAgent.indexOf(' OPR/') >= 0) { // Opera 8.0+\r\n return 'Opera';\r\n } else if (typeof InstallTrigger !== 'undefined') { // Firefox 1.0+\r\n return 'Firefox';\r\n } else if (/constructor/i.test(window['HTMLElement'] as any) || (function (p) { return p.toString() === \"[object SafariRemoteNotification]\"; })(!window['safari'] || (typeof safari !== 'undefined' && safari.pushNotification))) { // Safari 3.0+ \"[object HTMLElementConstructor]\"\r\n return 'Safari';\r\n } else if (/*@cc_on!@*/false || !!document['documentMode']) { // Internet Explorer 6-11\r\n return 'Internet Explorer';\r\n } else if (!(/*@cc_on!@*/false || !!document['documentMode']) && !!window['StyleMedia']) { //Edge 20+\r\n return 'Edge';\r\n } else if (!!window['chrome']) {// Chrome 1+\r\n return 'Chrome';\r\n }\r\n return 'unknown';\r\n }\r\n /* tslint:enable */\r\n\r\n public getG7BridgeURL() {\r\n try {\r\n const dt = document.cookie.split(';').filter(cookieStr => {\r\n return cookieStr.includes('com.senior.services.url');\r\n });\r\n return decodeURIComponent(\r\n dt[0].split('=')[1]\r\n ).slice(0, -1);\r\n } catch (err) {\r\n throw Error('Platform G7 not configured in this app');\r\n }\r\n }\r\n\r\n public getActiveUser() {\r\n return this.httpClient.get<User>(`${this.getG7BridgeURL()}/rest/platform/user/queries/getUser`, {\r\n headers: this.getHeaders()\r\n });\r\n }\r\n\r\n public getRolesByActiveUser(user) {\r\n return this.httpClient.get<UserRoles>(`${this.getG7BridgeURL()}/rest/platform/authorization/queries/getUserRoles?user=${user}`, {\r\n headers: this.getHeaders()\r\n });\r\n }\r\n\r\n public getTenatInformation(schemaName: string) {\r\n return this.httpClient.get<TenantInformation>(`${this.getG7BridgeURL()}/rest/sam/administration/queries/getErpCode`, {\r\n params: {\r\n schemaName: schemaName\r\n },\r\n headers: this.getHeaders()\r\n });\r\n }\r\n\r\n public hasIntegratedRole() {\r\n return this.httpClient.get<HasIntegratedRoleModel>(`${this.getG7BridgeURL()}/rest/sam/application/queries/hasIntegratedRole`, {\r\n headers: this.getHeaders()\r\n });\r\n }\r\n\r\n private getHeaders() {\r\n const token = this.getG7Token();\r\n return new HttpHeaders().set('Authorization', `${token.token_type} ${token.access_token}`);\r\n }\r\n\r\n public getG7Token() {\r\n try {\r\n const seniorToken = document.cookie.split(';').filter(cookieStr => {\r\n return cookieStr.includes('com.senior.token');\r\n });\r\n return JSON.parse(decodeURIComponent(seniorToken[0].split('=')[1]));\r\n } catch (err) {\r\n throw Error('Platform G7 not configured in this app');\r\n }\r\n }\r\n\r\n public async trackSale(tracksaleKey: string, tracksaleCampaign: string, pageUrl: string) {\r\n if (!(window as any).show_tacksale) {\r\n return;\r\n }\r\n\r\n const userInformation = await this.getActiveUser().toPromise();\r\n\r\n let roles = '';\r\n if ((window as any).can_capture_role) {\r\n const role = await this.getRolesByActiveUser(userInformation.username).toPromise();\r\n roles = role.roles.join(', ');\r\n }\r\n\r\n const hasIntegratedRole = await this.hasIntegratedRole().toPromise();\r\n const tenantInformation = await this.getTenatInformation(userInformation.tenantName).toPromise();\r\n const browser = this.getBrowser();\r\n const fullname = userInformation.fullName.replace('+', ' ');\r\n const email = userInformation.email;\r\n (function (f, b, g) {\r\n const a = {\r\n key: tracksaleKey,\r\n campaign: tracksaleCampaign,\r\n name: fullname,\r\n email: email,\r\n tags: {\r\n 'tenant': userInformation.tenantName,\r\n 'papel': roles,\r\n 'device': browser,\r\n 'uf': '',\r\n 'SAM': !hasIntegratedRole.hasIntegratedRole,\r\n 'GAS': hasIntegratedRole.hasIntegratedRole,\r\n 'GestaoIncidentes': '',\r\n 'Cameras': '',\r\n 'PortariaVirtual': '',\r\n 'Autoatendimento': '',\r\n 'pagina': pageUrl,\r\n 'ID ERP': tenantInformation.erpCode\r\n }\r\n };\r\n // Seguindo o exemplo da arquitera.\r\n // Fonte não será alterado nesta task;\r\n let e;\r\n const c = f.getElementsByTagName(b)[0];\r\n if (f.getElementById(g)) {\r\n return;\r\n }\r\n e = f.createElement(b);\r\n e.id = g;\r\n e.src = 'https://cdn.tracksale.co/tracksale-js/tracksale.js';\r\n e.type = 'text/javascript';\r\n e.async = true;\r\n e.onload = e.onreadystatechange = function () {\r\n const h = this.readyState;\r\n if (h && h !== 'complete' && h !== 'loaded') {\r\n return;\r\n }\r\n try {\r\n const d = new Tracksale();\r\n d.init(a);\r\n } catch (i) { }\r\n };\r\n c.parentNode.insertBefore(e, c);\r\n }(document, 'script', 'tracksale-js'));\r\n }\r\n}\r\n","/*\r\n * Public API Surface of sam-utils\r\n */\r\n\r\nexport * from './lib/sam-utils.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
/// <amd-module name="@sam-senior/sam-utils" />
|
|
5
|
+
export * from './public-api';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export interface HasIntegratedRoleModel {
|
|
2
|
-
hasIntegratedRole: boolean;
|
|
3
|
-
}
|
|
1
|
+
export interface HasIntegratedRoleModel {
|
|
2
|
+
hasIntegratedRole: boolean;
|
|
3
|
+
}
|
|
@@ -1,26 +1,29 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import { HttpClient } from '@angular/common/http';
|
|
3
|
-
import { User } from './user.model';
|
|
4
|
-
import { UserRoles } from './user-roles.model';
|
|
5
|
-
import { HasIntegratedRoleModel } from './has-integrated-role.model';
|
|
6
|
-
import { TenantInformation } from './tenant-information';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
private
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import { User } from './user.model';
|
|
4
|
+
import { UserRoles } from './user-roles.model';
|
|
5
|
+
import { HasIntegratedRoleModel } from './has-integrated-role.model';
|
|
6
|
+
import { TenantInformation } from './tenant-information';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare class SamUtilsService {
|
|
9
|
+
private httpClient;
|
|
10
|
+
private static HAS_LOADED;
|
|
11
|
+
constructor(httpClient: HttpClient);
|
|
12
|
+
getUrlWithoutIds(urlParts: any): any;
|
|
13
|
+
setUserProperties(product: string): Promise<void>;
|
|
14
|
+
pageLoading(page: string, product: string): void;
|
|
15
|
+
getBaseURL(): string;
|
|
16
|
+
sendToAnalytics(eventName: string, params: any, product?: string): Promise<void>;
|
|
17
|
+
createObservableWithValue<T>(value: any): Observable<T>;
|
|
18
|
+
getBrowser(): string;
|
|
19
|
+
getG7BridgeURL(): string;
|
|
20
|
+
getActiveUser(): Observable<User>;
|
|
21
|
+
getRolesByActiveUser(user: any): Observable<UserRoles>;
|
|
22
|
+
getTenatInformation(schemaName: string): Observable<TenantInformation>;
|
|
23
|
+
hasIntegratedRole(): Observable<HasIntegratedRoleModel>;
|
|
24
|
+
private getHeaders;
|
|
25
|
+
getG7Token(): any;
|
|
26
|
+
trackSale(tracksaleKey: string, tracksaleCampaign: string, pageUrl: string): Promise<void>;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SamUtilsService, never>;
|
|
28
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SamUtilsService>;
|
|
29
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export interface TenantInformation {
|
|
2
|
-
erpCode: number;
|
|
3
|
-
}
|
|
1
|
+
export interface TenantInformation {
|
|
2
|
+
erpCode: number;
|
|
3
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare class UserRoles {
|
|
2
|
-
roles: string[];
|
|
3
|
-
}
|
|
1
|
+
export declare class UserRoles {
|
|
2
|
+
roles: string[];
|
|
3
|
+
}
|