@sam-senior/sam-utils 2.0.3 → 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.
Files changed (41) hide show
  1. package/README.md +1 -1
  2. package/esm2022/lib/has-integrated-role.model.mjs +2 -0
  3. package/esm2022/lib/sam-utils.service.mjs +216 -0
  4. package/esm2022/lib/tenant-information.mjs +2 -0
  5. package/esm2022/lib/user-roles.model.mjs +4 -0
  6. package/esm2022/lib/user.model.mjs +2 -0
  7. package/esm2022/public-api.mjs +5 -0
  8. package/esm2022/sam-senior-sam-utils.mjs +5 -0
  9. package/fesm2022/sam-senior-sam-utils.mjs +227 -0
  10. package/fesm2022/sam-senior-sam-utils.mjs.map +1 -0
  11. package/{sam-senior-sam-utils.d.ts → index.d.ts} +5 -4
  12. package/lib/has-integrated-role.model.d.ts +3 -3
  13. package/lib/sam-utils.service.d.ts +29 -26
  14. package/lib/tenant-information.d.ts +3 -3
  15. package/lib/user-roles.model.d.ts +3 -3
  16. package/lib/user.model.d.ts +16 -16
  17. package/package.json +21 -14
  18. package/public-api.d.ts +1 -1
  19. package/bundles/sam-senior-sam-utils.umd.js +0 -549
  20. package/bundles/sam-senior-sam-utils.umd.js.map +0 -1
  21. package/bundles/sam-senior-sam-utils.umd.min.js +0 -2
  22. package/bundles/sam-senior-sam-utils.umd.min.js.map +0 -1
  23. package/esm2015/lib/has-integrated-role.model.js +0 -13
  24. package/esm2015/lib/sam-utils.service.js +0 -351
  25. package/esm2015/lib/tenant-information.js +0 -13
  26. package/esm2015/lib/user-roles.model.js +0 -11
  27. package/esm2015/lib/user.model.js +0 -39
  28. package/esm2015/public-api.js +0 -9
  29. package/esm2015/sam-senior-sam-utils.js +0 -9
  30. package/esm5/lib/has-integrated-role.model.js +0 -13
  31. package/esm5/lib/sam-utils.service.js +0 -435
  32. package/esm5/lib/tenant-information.js +0 -13
  33. package/esm5/lib/user-roles.model.js +0 -15
  34. package/esm5/lib/user.model.js +0 -39
  35. package/esm5/public-api.js +0 -9
  36. package/esm5/sam-senior-sam-utils.js +0 -9
  37. package/fesm2015/sam-senior-sam-utils.js +0 -351
  38. package/fesm2015/sam-senior-sam-utils.js.map +0 -1
  39. package/fesm5/sam-senior-sam-utils.js +0 -434
  40. package/fesm5/sam-senior-sam-utils.js.map +0 -1
  41. package/sam-senior-sam-utils.metadata.json +0 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # SamUtils
2
2
 
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.1.3.
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.13.
4
4
 
5
5
  ## Code scaffolding
6
6
 
@@ -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
- export * from './public-api';
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
- export declare class SamUtilsService {
8
- private httpClient;
9
- private static HAS_LOADED;
10
- constructor(httpClient: HttpClient);
11
- getUrlWithoutIds(urlParts: any): any;
12
- setUserProperties(product: string): Promise<void>;
13
- pageLoading(page: string, product: string): void;
14
- getBaseURL(): string;
15
- sendToAnalytics(eventName: string, params: any, product?: string): Promise<void>;
16
- createObservableWithValue<T>(value: any): Observable<T>;
17
- getBrowser(): string;
18
- getG7BridgeURL(): string;
19
- getActiveUser(): Observable<User>;
20
- getRolesByActiveUser(user: any): Observable<UserRoles>;
21
- getTenatInformation(schemaName: string): Observable<TenantInformation>;
22
- hasIntegratedRole(): Observable<HasIntegratedRoleModel>;
23
- private getHeaders;
24
- getG7Token(): any;
25
- trackSale(tracksaleKey: string, tracksaleCampaign: string, pageUrl: string): Promise<void>;
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
+ }