@osovitny/anatoly 2.1.8 → 2.1.10
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/bundles/osovitny-anatoly.umd.js +142 -78
- package/bundles/osovitny-anatoly.umd.js.map +1 -1
- package/esm2015/lib/core/consts/settings.js +1 -4
- package/esm2015/lib/core/consts/urls.js +1 -4
- package/esm2015/lib/core/services/appcontext.service.js +58 -21
- package/esm2015/lib/core/utils.js +26 -1
- package/esm2015/lib/ui/components/billing/buyaccess-button.component.js +2 -5
- package/fesm2015/osovitny-anatoly.js +143 -91
- package/fesm2015/osovitny-anatoly.js.map +1 -1
- package/lib/core/services/appcontext.service.d.ts +12 -5
- package/lib/core/utils.d.ts +1 -0
- package/osovitny-anatoly.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -10,12 +10,9 @@
|
|
|
10
10
|
Created:
|
|
11
11
|
26 Jun 2020
|
|
12
12
|
|
|
13
|
-
Version:
|
|
14
|
-
1.0
|
|
15
|
-
|
|
16
13
|
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
17
14
|
</file>
|
|
18
15
|
*/
|
|
19
16
|
export const ContextInitState = JSON.parse((document.getElementById('contextInitState')).getAttribute('data-contextinitstate'));
|
|
20
17
|
export const AppCoreSettings = JSON.parse((document.getElementById('appCoreSettings')).getAttribute('data-appcoresettings'));
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb25zdHMvc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN2QyxDQUNDLFFBQVEsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FDdkIsQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUMsQ0FDN0QsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN0QyxDQUNDLFFBQVEsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FDdEIsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsQ0FDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI2IEp1biAyMDIwXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNvbnN0IENvbnRleHRJbml0U3RhdGUgPSBKU09OLnBhcnNlKFxyXG4gICgoXHJcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGV4dEluaXRTdGF0ZScpXHJcbiAgKSBhcyBIVE1MSW5wdXRFbGVtZW50KS5nZXRBdHRyaWJ1dGUoJ2RhdGEtY29udGV4dGluaXRzdGF0ZScpXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3QgQXBwQ29yZVNldHRpbmdzID0gSlNPTi5wYXJzZShcclxuICAoKFxyXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FwcENvcmVTZXR0aW5ncycpXHJcbiAgKSBhcyBIVE1MSW5wdXRFbGVtZW50KS5nZXRBdHRyaWJ1dGUoJ2RhdGEtYXBwY29yZXNldHRpbmdzJylcclxuKTtcclxuIl19
|
|
@@ -9,9 +9,6 @@
|
|
|
9
9
|
Created:
|
|
10
10
|
5 May 2020
|
|
11
11
|
|
|
12
|
-
Version:
|
|
13
|
-
1.0
|
|
14
|
-
|
|
15
12
|
Copyright (c) 2020 Deloitte Tax. All rights reserved.
|
|
16
13
|
</file>
|
|
17
14
|
*/
|
|
@@ -19,4 +16,4 @@ export const Urls = {
|
|
|
19
16
|
// SignalR Notifications
|
|
20
17
|
notificationsSocketUrl: '/hubs/notifications'
|
|
21
18
|
};
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL2NvbnN0cy91cmxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0VBYUU7QUFFRixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUc7SUFDbEIsd0JBQXdCO0lBQ3hCLHNCQUFzQixFQUFFLHFCQUFxQjtDQUM5QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIE1JQ0VcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhb3Nvdml0bnlAZGVsb2l0dGUuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICA1IE1heSAyMDIwXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAyMCBEZWxvaXR0ZSBUYXguIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBVcmxzID0ge1xyXG4gIC8vIFNpZ25hbFIgTm90aWZpY2F0aW9uc1xyXG4gIG5vdGlmaWNhdGlvbnNTb2NrZXRVcmw6ICcvaHVicy9ub3RpZmljYXRpb25zJ1xyXG59XHJcbiJdfQ==
|
|
@@ -10,9 +10,6 @@
|
|
|
10
10
|
Created:
|
|
11
11
|
13 Nov 2017
|
|
12
12
|
|
|
13
|
-
Version:
|
|
14
|
-
1.0
|
|
15
|
-
|
|
16
13
|
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
17
14
|
</file>
|
|
18
15
|
*/
|
|
@@ -22,53 +19,93 @@ import { HttpClient } from '@angular/common/http';
|
|
|
22
19
|
// App
|
|
23
20
|
import { ContextInitState } from '../consts/settings';
|
|
24
21
|
import { BaseApiService } from '../../data/base/base-api.service';
|
|
22
|
+
import { SessionStorageService } from './web-storage.service';
|
|
25
23
|
export class AppContextService extends BaseApiService {
|
|
26
|
-
constructor(http) {
|
|
24
|
+
constructor(http, sessionStorage) {
|
|
27
25
|
super(http);
|
|
28
26
|
this.http = http;
|
|
29
|
-
this.
|
|
30
|
-
|
|
27
|
+
this.sessionStorage = sessionStorage;
|
|
28
|
+
//Consts
|
|
29
|
+
this.storageKeyName = 'appContext';
|
|
31
30
|
this.subscription = null;
|
|
31
|
+
this.successes = [];
|
|
32
32
|
this.baseUrl = '/api/appContext';
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
updateContextIfExpired() {
|
|
35
|
+
let context = this.sessionStorage.getObject(this.storageKeyName);
|
|
36
|
+
if (!context) {
|
|
36
37
|
return;
|
|
37
38
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
let lu = context.lastRequested;
|
|
40
|
+
if (lu) {
|
|
41
|
+
let now = new Date();
|
|
42
|
+
let lastRequested = new Date(context.lastRequested);
|
|
43
|
+
let in2Mins = new Date(lastRequested.getFullYear(), lastRequested.getMonth(), lastRequested.getDate(), lastRequested.getHours(), lastRequested.getMinutes() + 2, 0, 0);
|
|
44
|
+
if (in2Mins.getTime() < now.getTime()) {
|
|
45
|
+
this.updateCurrentContext();
|
|
46
|
+
}
|
|
41
47
|
}
|
|
42
|
-
this.successes.push(success);
|
|
43
|
-
if (this.subscription != null) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
this.subscription = this.get('GetCurrentContext', null).subscribe((data) => {
|
|
47
|
-
this.dataReceived(data);
|
|
48
|
-
}, (e) => { });
|
|
49
48
|
}
|
|
50
49
|
dataReceived(data) {
|
|
51
50
|
this.current = data;
|
|
52
51
|
for (let i = 0; i < this.successes.length; i++) {
|
|
53
52
|
let success = this.successes[i];
|
|
54
|
-
success
|
|
53
|
+
if (success) {
|
|
54
|
+
success(data);
|
|
55
|
+
}
|
|
55
56
|
}
|
|
56
57
|
this.successes = [];
|
|
57
58
|
this.subscription.unsubscribe();
|
|
58
59
|
this.subscription = null;
|
|
59
60
|
this.current = null;
|
|
60
61
|
}
|
|
62
|
+
getCurrent(success = null, getCachedIfExist = true) {
|
|
63
|
+
let current = this.current;
|
|
64
|
+
if (getCachedIfExist && current != null) {
|
|
65
|
+
if (success) {
|
|
66
|
+
success(current);
|
|
67
|
+
}
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (success) {
|
|
71
|
+
this.successes.push(success);
|
|
72
|
+
}
|
|
73
|
+
if (this.subscription != null) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
let now = new Date();
|
|
77
|
+
console.log('Requesting a new AppContext at ' + now);
|
|
78
|
+
this.subscription = this.get('getCurrentContext', null).subscribe((data) => {
|
|
79
|
+
this.dataReceived(data);
|
|
80
|
+
}, (e) => {
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
updateCurrentContext(success = null) {
|
|
84
|
+
this.getCurrent(success, false);
|
|
85
|
+
}
|
|
86
|
+
clearCurrentContex() {
|
|
87
|
+
this.sessionStorage.remove(this.storageKeyName);
|
|
88
|
+
}
|
|
61
89
|
isUserSignedIn() {
|
|
62
90
|
return ContextInitState.isUserSignedIn;
|
|
63
91
|
}
|
|
64
92
|
isUserAdmin() {
|
|
65
93
|
return ContextInitState.isUserAdmin;
|
|
66
94
|
}
|
|
95
|
+
//current
|
|
96
|
+
get current() {
|
|
97
|
+
this.updateContextIfExpired();
|
|
98
|
+
return this.sessionStorage.getObject(this.storageKeyName);
|
|
99
|
+
}
|
|
100
|
+
set current(value) {
|
|
101
|
+
this.sessionStorage.setObject(this.storageKeyName, value);
|
|
102
|
+
}
|
|
67
103
|
}
|
|
68
104
|
AppContextService.decorators = [
|
|
69
105
|
{ type: Injectable }
|
|
70
106
|
];
|
|
71
107
|
AppContextService.ctorParameters = () => [
|
|
72
|
-
{ type: HttpClient }
|
|
108
|
+
{ type: HttpClient },
|
|
109
|
+
{ type: SessionStorageService }
|
|
73
110
|
];
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBR2hELE1BQU07QUFDTixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFHN0QsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGNBQWM7SUFPbkQsWUFDWSxJQUFnQixFQUNsQixjQUFxQztRQUM3QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFGRixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQVIvQyxRQUFRO1FBQ0EsbUJBQWMsR0FBRyxZQUFZLENBQUM7UUFFOUIsaUJBQVksR0FBaUIsSUFBSSxDQUFDO1FBQ2xDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFNckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztJQUNuQyxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVqRSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTztTQUNSO1FBRUQsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUUvQixJQUFJLEVBQUUsRUFBRTtZQUNOLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxhQUFhLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BELElBQUksT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsYUFBYSxDQUFDLE9BQU8sRUFBRSxFQUNuRyxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsYUFBYSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFbEUsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNyQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzthQUM3QjtTQUNGO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUFJO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5QyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksT0FBTyxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNmO1NBQ0Y7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBb0IsSUFBSSxFQUFFLG1CQUE0QixJQUFJO1FBQ25FLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFM0IsSUFBSSxnQkFBZ0IsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFO1lBQ3ZDLElBQUksT0FBTyxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNsQjtZQUVELE9BQU87U0FDUjtRQUVELElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUI7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFO1lBQzdCLE9BQU87U0FDUjtRQUVELElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUMvRCxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDLEVBQ0QsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNOLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELG9CQUFvQixDQUFDLFVBQW9CLElBQUk7UUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxTQUFTO0lBQ1QsSUFBVyxPQUFPO1FBQ2hCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxJQUFXLE9BQU8sQ0FBQyxLQUFVO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7O1lBMUdGLFVBQVU7OztZQVJILFVBQVU7WUFNVCxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxMyBOb3YgMjAxN1xyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuXHJcbi8vIEFwcFxyXG5pbXBvcnQge0NvbnRleHRJbml0U3RhdGV9IGZyb20gJy4uL2NvbnN0cy9zZXR0aW5ncyc7XHJcbmltcG9ydCB7QmFzZUFwaVNlcnZpY2V9IGZyb20gJy4uLy4uL2RhdGEvYmFzZS9iYXNlLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi93ZWItc3RvcmFnZS5zZXJ2aWNlJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXBwQ29udGV4dFNlcnZpY2UgZXh0ZW5kcyBCYXNlQXBpU2VydmljZSB7XHJcbiAgLy9Db25zdHNcclxuICBwcml2YXRlIHN0b3JhZ2VLZXlOYW1lID0gJ2FwcENvbnRleHQnO1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICBwcml2YXRlIHN1Y2Nlc3NlcyA9IFtdOyAgXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsIFxyXG4gICAgcHJpdmF0ZSBzZXNzaW9uU3RvcmFnZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihodHRwKTtcclxuICAgIHRoaXMuYmFzZVVybCA9ICcvYXBpL2FwcENvbnRleHQnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVDb250ZXh0SWZFeHBpcmVkKCkge1xyXG4gICAgbGV0IGNvbnRleHQgPSB0aGlzLnNlc3Npb25TdG9yYWdlLmdldE9iamVjdCh0aGlzLnN0b3JhZ2VLZXlOYW1lKTtcclxuXHJcbiAgICBpZiAoIWNvbnRleHQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBsdSA9IGNvbnRleHQubGFzdFJlcXVlc3RlZDtcclxuXHJcbiAgICBpZiAobHUpIHtcclxuICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGxldCBsYXN0UmVxdWVzdGVkID0gbmV3IERhdGUoY29udGV4dC5sYXN0UmVxdWVzdGVkKTtcclxuICAgICAgbGV0IGluMk1pbnMgPSBuZXcgRGF0ZShsYXN0UmVxdWVzdGVkLmdldEZ1bGxZZWFyKCksIGxhc3RSZXF1ZXN0ZWQuZ2V0TW9udGgoKSwgbGFzdFJlcXVlc3RlZC5nZXREYXRlKCksXHJcbiAgICAgICAgbGFzdFJlcXVlc3RlZC5nZXRIb3VycygpLCBsYXN0UmVxdWVzdGVkLmdldE1pbnV0ZXMoKSArIDIsIDAsIDApO1xyXG5cclxuICAgICAgaWYgKGluMk1pbnMuZ2V0VGltZSgpIDwgbm93LmdldFRpbWUoKSkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlQ3VycmVudENvbnRleHQoKTtcclxuICAgICAgfVxyXG4gICAgfSAgICBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGF0YVJlY2VpdmVkKGRhdGEpIHtcclxuICAgIHRoaXMuY3VycmVudCA9IGRhdGE7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN1Y2Nlc3Nlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgc3VjY2VzcyA9IHRoaXMuc3VjY2Vzc2VzW2ldO1xyXG4gICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgIHN1Y2Nlc3MoZGF0YSk7XHJcbiAgICAgIH0gICAgICBcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1Y2Nlc3NlcyA9IFtdO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgIHRoaXMuY3VycmVudCA9IG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXRDdXJyZW50KHN1Y2Nlc3M6IEZ1bmN0aW9uID0gbnVsbCwgZ2V0Q2FjaGVkSWZFeGlzdDogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGxldCBjdXJyZW50ID0gdGhpcy5jdXJyZW50O1xyXG5cclxuICAgIGlmIChnZXRDYWNoZWRJZkV4aXN0ICYmIGN1cnJlbnQgIT0gbnVsbCkgeyAgICBcclxuICAgICAgaWYgKHN1Y2Nlc3MpIHtcclxuICAgICAgICBzdWNjZXNzKGN1cnJlbnQpO1xyXG4gICAgICB9IFxyXG5cclxuICAgICAgcmV0dXJuOyAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdWNjZXNzKSB7XHJcbiAgICAgIHRoaXMuc3VjY2Vzc2VzLnB1c2goc3VjY2Vzcyk7XHJcbiAgICB9ICAgIFxyXG5cclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbiAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnNvbGUubG9nKCdSZXF1ZXN0aW5nIGEgbmV3IEFwcENvbnRleHQgYXQgJyArIG5vdyk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmdldCgnZ2V0Q3VycmVudENvbnRleHQnLCBudWxsKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXRhUmVjZWl2ZWQoZGF0YSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlKSA9PiB7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDdXJyZW50Q29udGV4dChzdWNjZXNzOiBGdW5jdGlvbiA9IG51bGwpIHtcclxuICAgIHRoaXMuZ2V0Q3VycmVudChzdWNjZXNzLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckN1cnJlbnRDb250ZXgoKSB7XHJcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZSh0aGlzLnN0b3JhZ2VLZXlOYW1lKTtcclxuICB9XHJcblxyXG4gIGlzVXNlclNpZ25lZEluKCkge1xyXG4gICAgcmV0dXJuIENvbnRleHRJbml0U3RhdGUuaXNVc2VyU2lnbmVkSW47XHJcbiAgfVxyXG5cclxuICBpc1VzZXJBZG1pbigpIHtcclxuICAgIHJldHVybiBDb250ZXh0SW5pdFN0YXRlLmlzVXNlckFkbWluO1xyXG4gIH1cclxuXHJcbiAgLy9jdXJyZW50XHJcbiAgcHVibGljIGdldCBjdXJyZW50KCkge1xyXG4gICAgdGhpcy51cGRhdGVDb250ZXh0SWZFeHBpcmVkKCk7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRPYmplY3QodGhpcy5zdG9yYWdlS2V5TmFtZSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgY3VycmVudCh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnNldE9iamVjdCh0aGlzLnN0b3JhZ2VLZXlOYW1lLCB2YWx1ZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -55,5 +55,30 @@ export class Utils {
|
|
|
55
55
|
Utils.downloadFile(fileName, downloadURL);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
+
/*
|
|
59
|
+
Author:
|
|
60
|
+
https://medium.com/@mhagemann/the-ultimate-way-to-slugify-a-url-string-in-javascript-b8e4a0d849e1
|
|
61
|
+
*/
|
|
62
|
+
static slugify(text, prefix = '', postfix = '') {
|
|
63
|
+
const a = 'àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;';
|
|
64
|
+
const b = 'aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------';
|
|
65
|
+
const p = new RegExp(a.split('').join('|'), 'g');
|
|
66
|
+
/*
|
|
67
|
+
https://css-tricks.com/snippets/javascript/strip-html-tags-in-javascript/
|
|
68
|
+
https://stackoverflow.com/questions/822452/strip-html-from-text-javascript
|
|
69
|
+
*/
|
|
70
|
+
text = text.replace(/(<([^>]+)>)/gi, '');
|
|
71
|
+
let result = text
|
|
72
|
+
.toString()
|
|
73
|
+
.toLowerCase()
|
|
74
|
+
.replace(/\s+/g, '-') // Replace spaces with -
|
|
75
|
+
.replace(p, c => b.charAt(a.indexOf(c))) // Replace special characters
|
|
76
|
+
.replace(/&/g, '-and-') // Replace & with 'and'
|
|
77
|
+
.replace(/[^\w\-]+/g, '') // Remove all non-word characters
|
|
78
|
+
.replace(/\-\-+/g, '-') // Replace multiple - with single -
|
|
79
|
+
.replace(/^-+/, '') // Trim - from start of text
|
|
80
|
+
.replace(/-+$/, ''); // Trim - from end of text
|
|
81
|
+
return prefix + result + postfix;
|
|
82
|
+
}
|
|
58
83
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixNQUFNLE9BQU8sS0FBSztJQUNULE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJO1FBQ25DLE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJO1FBQ3BDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFELHdEQUF3RDtRQUN4RCxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxHQUFHLFdBQVcsQ0FBQyxFQUV2RCxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixPQUFPLE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFVLEVBQUUsR0FBVztRQUNuRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdkIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDaEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUN2QixNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDM0IsTUFBTSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDbkIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBWSxFQUFFLEdBQVc7UUFDbEQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQVcsRUFBRSxRQUFnQjtRQUMxRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUU7WUFDckMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDcEQ7YUFBTTtZQUNMLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RELEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUdEOzs7TUFHRTtJQUNLLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBWSxFQUFFLFNBQWlCLEVBQUUsRUFBRSxVQUFrQixFQUFFO1FBQzNFLE1BQU0sQ0FBQyxHQUFHLGlGQUFpRixDQUFDO1FBQzVGLE1BQU0sQ0FBQyxHQUFHLGlGQUFpRixDQUFDO1FBQzVGLE1BQU0sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWpEOzs7VUFHRTtRQUNGLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV6QyxJQUFJLE1BQU0sR0FBRyxJQUFJO2FBQ2QsUUFBUSxFQUFFO2FBQ1YsV0FBVyxFQUFFO2FBQ2IsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyx3QkFBd0I7YUFDN0MsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJBQTZCO2FBQ3JFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsdUJBQXVCO2FBQzlDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsaUNBQWlDO2FBQzFELE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsbUNBQW1DO2FBQzFELE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsNEJBQTRCO2FBQy9DLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQywwQkFBMEI7UUFFakQsT0FBTyxNQUFNLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxOSBNYXJjaCAyMDIwXHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5leHBvcnQgY2xhc3MgVXRpbHMge1xyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0VmFsdWVCeU5hbWVJblFTKG5hbWUpIHtcclxuICAgIHJldHVybiBVdGlscy5nZXRWYWx1ZUJ5TmFtZShsb2NhdGlvbi5zZWFyY2gsIG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRWYWx1ZUJ5TmFtZSh1cmwsIG5hbWUpIHtcclxuICAgIG5hbWUgPSBuYW1lLnJlcGxhY2UoL1tcXFtdLywgJ1xcXFxbJykucmVwbGFjZSgvW1xcXV0vLCAnXFxcXF0nKTtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpvbmUtdmFyaWFibGUtcGVyLWRlY2xhcmF0aW9uXHJcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoJ1tcXFxcPyZdJyArIG5hbWUgKyAnPShbXiYjXSopJyksXHJcblxyXG4gICAgcmVzdWx0cyA9IHJlZ2V4LmV4ZWModXJsKTtcclxuICAgIHJldHVybiByZXN1bHRzID09PSBudWxsID8gJycgOiBkZWNvZGVVUklDb21wb25lbnQocmVzdWx0c1sxXS5yZXBsYWNlKC9cXCsvZywgJyAnKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvcHlUb0NsaXBCb2FyZChldmVudDogYW55LCB2YWw6IHN0cmluZykge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICBjb25zdCBzZWxCb3ggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xyXG4gICAgc2VsQm94LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcclxuICAgIHNlbEJveC5zdHlsZS5sZWZ0ID0gJzAnO1xyXG4gICAgc2VsQm94LnN0eWxlLnRvcCA9ICcwJztcclxuICAgIHNlbEJveC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xyXG4gICAgc2VsQm94LnZhbHVlID0gdmFsO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzZWxCb3gpO1xyXG4gICAgc2VsQm94LmZvY3VzKCk7XHJcbiAgICBzZWxCb3guc2VsZWN0KCk7XHJcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzZWxCb3gpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBkb3dubG9hZEZpbGUobmFtZTogc3RyaW5nLCB1cmw6IHN0cmluZykge1xyXG4gICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGxpbmsuZG93bmxvYWQgPSBuYW1lO1xyXG4gICAgbGluay5ocmVmID0gdXJsO1xyXG4gICAgbGluay5jbGljaygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBkb3dubG9hZEJsb2JGaWxlKHZhbHVlOiBCbG9iLCBmaWxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKSB7XHJcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYih2YWx1ZSwgZmlsZU5hbWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZG93bmxvYWRVUkwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTCh2YWx1ZSk7XHJcbiAgICAgIFV0aWxzLmRvd25sb2FkRmlsZShmaWxlTmFtZSwgZG93bmxvYWRVUkwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBdXRob3I6IFxyXG4gICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BtaGFnZW1hbm4vdGhlLXVsdGltYXRlLXdheS10by1zbHVnaWZ5LWEtdXJsLXN0cmluZy1pbi1qYXZhc2NyaXB0LWI4ZTRhMGQ4NDllMVxyXG4gICovXHJcbiAgcHVibGljIHN0YXRpYyBzbHVnaWZ5KHRleHQ6IHN0cmluZywgcHJlZml4OiBzdHJpbmcgPSAnJywgcG9zdGZpeDogc3RyaW5nID0gJycpIHtcclxuICAgIGNvbnN0IGEgPSAnw6DDocOiw6TDpsOjw6XEgcSDxIXDp8SHxI3EkcSPw6jDqcOqw6vEk8SXxJnEm8Sfx7XhuKfDrsOvw63Eq8Svw6zFguG4v8OxxYTHucWIw7TDtsOyw7PFk8O4xY3DtcWR4bmVxZXFmcOfxZvFocWfyJnFpcibw7vDvMO5w7rFq8eYxa/FscWz4bqD4bqNw7/DvcW+xbrFvMK3L18sOjsnO1xyXG4gICAgY29uc3QgYiA9ICdhYWFhYWFhYWFhY2NjZGRlZWVlZWVlZWdnaGlpaWlpaWxtbm5ubm9vb29vb29vb3BycnNzc3NzdHR1dXV1dXV1dXV3eHl5enp6LS0tLS0tJztcclxuICAgIGNvbnN0IHAgPSBuZXcgUmVnRXhwKGEuc3BsaXQoJycpLmpvaW4oJ3wnKSwgJ2cnKTtcclxuXHJcbiAgICAvKlxyXG4gICAgICBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL2phdmFzY3JpcHQvc3RyaXAtaHRtbC10YWdzLWluLWphdmFzY3JpcHQvXHJcbiAgICAgIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzgyMjQ1Mi9zdHJpcC1odG1sLWZyb20tdGV4dC1qYXZhc2NyaXB0XHJcbiAgICAqL1xyXG4gICAgdGV4dCA9IHRleHQucmVwbGFjZSgvKDwoW14+XSspPikvZ2ksICcnKTtcclxuXHJcbiAgICBsZXQgcmVzdWx0ID0gdGV4dFxyXG4gICAgICAudG9TdHJpbmcoKVxyXG4gICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAucmVwbGFjZSgvXFxzKy9nLCAnLScpIC8vIFJlcGxhY2Ugc3BhY2VzIHdpdGggLVxyXG4gICAgICAucmVwbGFjZShwLCBjID0+IGIuY2hhckF0KGEuaW5kZXhPZihjKSkpIC8vIFJlcGxhY2Ugc3BlY2lhbCBjaGFyYWN0ZXJzXHJcbiAgICAgIC5yZXBsYWNlKC8mL2csICctYW5kLScpIC8vIFJlcGxhY2UgJiB3aXRoICdhbmQnXHJcbiAgICAgIC5yZXBsYWNlKC9bXlxcd1xcLV0rL2csICcnKSAvLyBSZW1vdmUgYWxsIG5vbi13b3JkIGNoYXJhY3RlcnNcclxuICAgICAgLnJlcGxhY2UoL1xcLVxcLSsvZywgJy0nKSAvLyBSZXBsYWNlIG11bHRpcGxlIC0gd2l0aCBzaW5nbGUgLVxyXG4gICAgICAucmVwbGFjZSgvXi0rLywgJycpIC8vIFRyaW0gLSBmcm9tIHN0YXJ0IG9mIHRleHRcclxuICAgICAgLnJlcGxhY2UoLy0rJC8sICcnKTsgLy8gVHJpbSAtIGZyb20gZW5kIG9mIHRleHRcclxuXHJcbiAgICByZXR1cm4gcHJlZml4ICsgcmVzdWx0ICsgcG9zdGZpeDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -10,15 +10,12 @@
|
|
|
10
10
|
Created:
|
|
11
11
|
14 Aug 2018
|
|
12
12
|
|
|
13
|
-
Version:
|
|
14
|
-
1.0
|
|
15
|
-
|
|
16
13
|
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
17
14
|
</file>
|
|
18
15
|
*/
|
|
19
16
|
// Node
|
|
20
17
|
import { Component, Input } from '@angular/core';
|
|
21
|
-
//
|
|
18
|
+
// App
|
|
22
19
|
import { AppContextService } from '../../../core/services/appcontext.service';
|
|
23
20
|
import { BillingApiService } from '../../../data/services/billing-api.service';
|
|
24
21
|
import { Alerts } from '../../../core/notifications/alerts';
|
|
@@ -71,4 +68,4 @@ BuyAccessButtonComponent.propDecorators = {
|
|
|
71
68
|
plan: [{ type: Input }],
|
|
72
69
|
plantitle: [{ type: Input }]
|
|
73
70
|
};
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV5YWNjZXNzLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9iaWxsaW5nL2J1eWFjY2Vzcy1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRXZELE1BQU07QUFDTixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFNMUQsTUFBTSxPQUFPLHdCQUF3QjtJQVNuQyxZQUNVLFVBQTZCLEVBQzdCLEdBQXNCO1FBRHRCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBVnpCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztJQVU3QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBRTdDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUM7YUFDN0Q7WUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxJQUFJLEdBQUcsbUJBQW1CLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQztRQUNsRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFFbEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ2pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxHQUFHLEVBQUU7b0JBQzlDLE1BQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQWpERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsNGlCQUFnRDthQUNqRDs7O1lBUE8saUJBQWlCO1lBQ2pCLGlCQUFpQjs7O21CQWF0QixLQUFLO3dCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxNCBBdWcgMjAxOFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLy8gQXBwXHJcbmltcG9ydCB7QXBwQ29udGV4dFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHtCaWxsaW5nQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZGF0YS9zZXJ2aWNlcy9iaWxsaW5nLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHtBbGVydHN9IGZyb20gJy4uLy4uLy4uL2NvcmUvbm90aWZpY2F0aW9ucy9hbGVydHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbmF0b2x5LWJ1eWFjY2Vzcy1idXR0b24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idXlhY2Nlc3MtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1eUFjY2Vzc0J1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIGNvbnRleHRVcGRhdGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGlzVXNlclNpZ25lZEluID0gZmFsc2U7XHJcbiAgcHVibGljIGN1cnJlbnRQbGFuID0gMDtcclxuICBwdWJsaWMgY3VycmVudFBsYW5UaXRsZSA9ICcnO1xyXG5cclxuICBASW5wdXQoKSBwbGFuOiBudW1iZXI7XHJcbiAgQElucHV0KCkgcGxhbnRpdGxlOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhcHBjb250ZXh0OiBBcHBDb250ZXh0U2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpOiBCaWxsaW5nQXBpU2VydmljZVxyXG4gICkge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmFwcGNvbnRleHQuaXNVc2VyU2lnbmVkSW4oKSkge1xyXG4gICAgICB0aGlzLmNvbnRleHRVcGRhdGVkID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBwY29udGV4dC5nZXRDdXJyZW50KChjdXJyZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuaXNVc2VyU2lnbmVkSW4gPSBjdXJyZW50LmlzVXNlclNpZ25lZEluO1xyXG5cclxuICAgICAgaWYgKHRoaXMuaXNVc2VyU2lnbmVkSW4pIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRQbGFuID0gY3VycmVudC5hY2NvdW50LmJpbGxpbmdQbGFuO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBsYW5UaXRsZSA9IGN1cnJlbnQuYWNjb3VudC5iaWxsaW5nUGxhbkFzU3RyaW5nO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmNvbnRleHRVcGRhdGVkID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25CdXlQbGFuKCkge1xyXG4gICAgY29uc3QgdGV4dCA9IGBSZXF1ZXN0ZWQgcGxhbjogJHt0aGlzLnBsYW50aXRsZX0gYDtcclxuICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xyXG5cclxuICAgIEFsZXJ0cy5hcmVZb3VTdXJlKHRleHQsICdCdXlpbmcgYWNjZXNzJywgJ0NvbmZpcm0gY2hhbmdlJywgJ0NhbmNlbCcsICgpID0+IHtcclxuICAgICAgdGhhdC5hcGkuYnV5QWNjZXNzKHRoYXQucGxhbiwgKCkgPT4ge1xyXG4gICAgICAgIEFsZXJ0cy5zdWNjZXNzKCdBY2Nlc3MgR3JhbnRlZCcsIG51bGwsIG51bGwsKCkgPT4ge1xyXG4gICAgICAgICAgKHdpbmRvdyBhcyBhbnkpLmxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -34,9 +34,6 @@ import { FroalaEditorModule, FroalaViewModule } from 'angular-froala-wysiwyg';
|
|
|
34
34
|
Created:
|
|
35
35
|
26 Jun 2020
|
|
36
36
|
|
|
37
|
-
Version:
|
|
38
|
-
1.0
|
|
39
|
-
|
|
40
37
|
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
41
38
|
</file>
|
|
42
39
|
*/
|
|
@@ -54,9 +51,6 @@ const AppCoreSettings = JSON.parse((document.getElementById('appCoreSettings')).
|
|
|
54
51
|
Created:
|
|
55
52
|
5 May 2020
|
|
56
53
|
|
|
57
|
-
Version:
|
|
58
|
-
1.0
|
|
59
|
-
|
|
60
54
|
Copyright (c) 2020 Deloitte Tax. All rights reserved.
|
|
61
55
|
</file>
|
|
62
56
|
*/
|
|
@@ -1277,7 +1271,7 @@ BaseApiService.ctorParameters = () => [
|
|
|
1277
1271
|
Anatoly Osovitny
|
|
1278
1272
|
|
|
1279
1273
|
Created:
|
|
1280
|
-
|
|
1274
|
+
26 Jun 2020
|
|
1281
1275
|
|
|
1282
1276
|
Version:
|
|
1283
1277
|
1.0
|
|
@@ -1285,54 +1279,154 @@ BaseApiService.ctorParameters = () => [
|
|
|
1285
1279
|
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
1286
1280
|
</file>
|
|
1287
1281
|
*/
|
|
1282
|
+
class WebStorageService {
|
|
1283
|
+
constructor(storage) {
|
|
1284
|
+
this.storage =
|
|
1285
|
+
storage === 'local' || storage === 'localStorage'
|
|
1286
|
+
? localStorage
|
|
1287
|
+
: sessionStorage;
|
|
1288
|
+
}
|
|
1289
|
+
setItem(key, value) {
|
|
1290
|
+
this.storage.setItem(key, value);
|
|
1291
|
+
}
|
|
1292
|
+
setObject(key, value) {
|
|
1293
|
+
this.storage.setItem(key, JSON.stringify(value));
|
|
1294
|
+
}
|
|
1295
|
+
getItem(key) {
|
|
1296
|
+
return this.storage.getItem(key);
|
|
1297
|
+
}
|
|
1298
|
+
getObject(key) {
|
|
1299
|
+
let value = this.storage.getItem(key);
|
|
1300
|
+
if (!value) {
|
|
1301
|
+
return null;
|
|
1302
|
+
}
|
|
1303
|
+
return JSON.parse(value);
|
|
1304
|
+
}
|
|
1305
|
+
remove(key) {
|
|
1306
|
+
this.storage.removeItem(key);
|
|
1307
|
+
}
|
|
1308
|
+
}
|
|
1309
|
+
class LocalStorageService extends WebStorageService {
|
|
1310
|
+
constructor() {
|
|
1311
|
+
super('localStorage');
|
|
1312
|
+
}
|
|
1313
|
+
}
|
|
1314
|
+
LocalStorageService.decorators = [
|
|
1315
|
+
{ type: Injectable }
|
|
1316
|
+
];
|
|
1317
|
+
LocalStorageService.ctorParameters = () => [];
|
|
1318
|
+
class SessionStorageService extends WebStorageService {
|
|
1319
|
+
constructor() {
|
|
1320
|
+
super('sessionStorage');
|
|
1321
|
+
}
|
|
1322
|
+
}
|
|
1323
|
+
SessionStorageService.decorators = [
|
|
1324
|
+
{ type: Injectable }
|
|
1325
|
+
];
|
|
1326
|
+
SessionStorageService.ctorParameters = () => [];
|
|
1327
|
+
|
|
1328
|
+
/*
|
|
1329
|
+
<file>
|
|
1330
|
+
Project:
|
|
1331
|
+
@osovitny/anatoly
|
|
1332
|
+
|
|
1333
|
+
Authors:
|
|
1334
|
+
Vadim Osovitny
|
|
1335
|
+
Anatoly Osovitny
|
|
1336
|
+
|
|
1337
|
+
Created:
|
|
1338
|
+
13 Nov 2017
|
|
1339
|
+
|
|
1340
|
+
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
1341
|
+
</file>
|
|
1342
|
+
*/
|
|
1288
1343
|
class AppContextService extends BaseApiService {
|
|
1289
|
-
constructor(http) {
|
|
1344
|
+
constructor(http, sessionStorage) {
|
|
1290
1345
|
super(http);
|
|
1291
1346
|
this.http = http;
|
|
1292
|
-
this.
|
|
1293
|
-
|
|
1347
|
+
this.sessionStorage = sessionStorage;
|
|
1348
|
+
//Consts
|
|
1349
|
+
this.storageKeyName = 'appContext';
|
|
1294
1350
|
this.subscription = null;
|
|
1351
|
+
this.successes = [];
|
|
1295
1352
|
this.baseUrl = '/api/appContext';
|
|
1296
1353
|
}
|
|
1297
|
-
|
|
1298
|
-
|
|
1354
|
+
updateContextIfExpired() {
|
|
1355
|
+
let context = this.sessionStorage.getObject(this.storageKeyName);
|
|
1356
|
+
if (!context) {
|
|
1299
1357
|
return;
|
|
1300
1358
|
}
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1359
|
+
let lu = context.lastRequested;
|
|
1360
|
+
if (lu) {
|
|
1361
|
+
let now = new Date();
|
|
1362
|
+
let lastRequested = new Date(context.lastRequested);
|
|
1363
|
+
let in2Mins = new Date(lastRequested.getFullYear(), lastRequested.getMonth(), lastRequested.getDate(), lastRequested.getHours(), lastRequested.getMinutes() + 2, 0, 0);
|
|
1364
|
+
if (in2Mins.getTime() < now.getTime()) {
|
|
1365
|
+
this.updateCurrentContext();
|
|
1366
|
+
}
|
|
1308
1367
|
}
|
|
1309
|
-
this.subscription = this.get('GetCurrentContext', null).subscribe((data) => {
|
|
1310
|
-
this.dataReceived(data);
|
|
1311
|
-
}, (e) => { });
|
|
1312
1368
|
}
|
|
1313
1369
|
dataReceived(data) {
|
|
1314
1370
|
this.current = data;
|
|
1315
1371
|
for (let i = 0; i < this.successes.length; i++) {
|
|
1316
1372
|
let success = this.successes[i];
|
|
1317
|
-
success
|
|
1373
|
+
if (success) {
|
|
1374
|
+
success(data);
|
|
1375
|
+
}
|
|
1318
1376
|
}
|
|
1319
1377
|
this.successes = [];
|
|
1320
1378
|
this.subscription.unsubscribe();
|
|
1321
1379
|
this.subscription = null;
|
|
1322
1380
|
this.current = null;
|
|
1323
1381
|
}
|
|
1382
|
+
getCurrent(success = null, getCachedIfExist = true) {
|
|
1383
|
+
let current = this.current;
|
|
1384
|
+
if (getCachedIfExist && current != null) {
|
|
1385
|
+
if (success) {
|
|
1386
|
+
success(current);
|
|
1387
|
+
}
|
|
1388
|
+
return;
|
|
1389
|
+
}
|
|
1390
|
+
if (success) {
|
|
1391
|
+
this.successes.push(success);
|
|
1392
|
+
}
|
|
1393
|
+
if (this.subscription != null) {
|
|
1394
|
+
return;
|
|
1395
|
+
}
|
|
1396
|
+
let now = new Date();
|
|
1397
|
+
console.log('Requesting a new AppContext at ' + now);
|
|
1398
|
+
this.subscription = this.get('getCurrentContext', null).subscribe((data) => {
|
|
1399
|
+
this.dataReceived(data);
|
|
1400
|
+
}, (e) => {
|
|
1401
|
+
});
|
|
1402
|
+
}
|
|
1403
|
+
updateCurrentContext(success = null) {
|
|
1404
|
+
this.getCurrent(success, false);
|
|
1405
|
+
}
|
|
1406
|
+
clearCurrentContex() {
|
|
1407
|
+
this.sessionStorage.remove(this.storageKeyName);
|
|
1408
|
+
}
|
|
1324
1409
|
isUserSignedIn() {
|
|
1325
1410
|
return ContextInitState.isUserSignedIn;
|
|
1326
1411
|
}
|
|
1327
1412
|
isUserAdmin() {
|
|
1328
1413
|
return ContextInitState.isUserAdmin;
|
|
1329
1414
|
}
|
|
1415
|
+
//current
|
|
1416
|
+
get current() {
|
|
1417
|
+
this.updateContextIfExpired();
|
|
1418
|
+
return this.sessionStorage.getObject(this.storageKeyName);
|
|
1419
|
+
}
|
|
1420
|
+
set current(value) {
|
|
1421
|
+
this.sessionStorage.setObject(this.storageKeyName, value);
|
|
1422
|
+
}
|
|
1330
1423
|
}
|
|
1331
1424
|
AppContextService.decorators = [
|
|
1332
1425
|
{ type: Injectable }
|
|
1333
1426
|
];
|
|
1334
1427
|
AppContextService.ctorParameters = () => [
|
|
1335
|
-
{ type: HttpClient }
|
|
1428
|
+
{ type: HttpClient },
|
|
1429
|
+
{ type: SessionStorageService }
|
|
1336
1430
|
];
|
|
1337
1431
|
|
|
1338
1432
|
/*
|
|
@@ -1404,70 +1498,6 @@ IdleService.decorators = [
|
|
|
1404
1498
|
},] }
|
|
1405
1499
|
];
|
|
1406
1500
|
|
|
1407
|
-
/*
|
|
1408
|
-
<file>
|
|
1409
|
-
Project:
|
|
1410
|
-
@osovitny/anatoly
|
|
1411
|
-
|
|
1412
|
-
Authors:
|
|
1413
|
-
Vadim Osovitny
|
|
1414
|
-
Anatoly Osovitny
|
|
1415
|
-
|
|
1416
|
-
Created:
|
|
1417
|
-
26 Jun 2020
|
|
1418
|
-
|
|
1419
|
-
Version:
|
|
1420
|
-
1.0
|
|
1421
|
-
|
|
1422
|
-
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
1423
|
-
</file>
|
|
1424
|
-
*/
|
|
1425
|
-
class WebStorageService {
|
|
1426
|
-
constructor(storage) {
|
|
1427
|
-
this.storage =
|
|
1428
|
-
storage === 'local' || storage === 'localStorage'
|
|
1429
|
-
? localStorage
|
|
1430
|
-
: sessionStorage;
|
|
1431
|
-
}
|
|
1432
|
-
setItem(key, value) {
|
|
1433
|
-
this.storage.setItem(key, value);
|
|
1434
|
-
}
|
|
1435
|
-
setObject(key, value) {
|
|
1436
|
-
this.storage.setItem(key, JSON.stringify(value));
|
|
1437
|
-
}
|
|
1438
|
-
getItem(key) {
|
|
1439
|
-
return this.storage.getItem(key);
|
|
1440
|
-
}
|
|
1441
|
-
getObject(key) {
|
|
1442
|
-
let value = this.storage.getItem(key);
|
|
1443
|
-
if (!value) {
|
|
1444
|
-
return null;
|
|
1445
|
-
}
|
|
1446
|
-
return JSON.parse(value);
|
|
1447
|
-
}
|
|
1448
|
-
remove(key) {
|
|
1449
|
-
this.storage.removeItem(key);
|
|
1450
|
-
}
|
|
1451
|
-
}
|
|
1452
|
-
class LocalStorageService extends WebStorageService {
|
|
1453
|
-
constructor() {
|
|
1454
|
-
super('localStorage');
|
|
1455
|
-
}
|
|
1456
|
-
}
|
|
1457
|
-
LocalStorageService.decorators = [
|
|
1458
|
-
{ type: Injectable }
|
|
1459
|
-
];
|
|
1460
|
-
LocalStorageService.ctorParameters = () => [];
|
|
1461
|
-
class SessionStorageService extends WebStorageService {
|
|
1462
|
-
constructor() {
|
|
1463
|
-
super('sessionStorage');
|
|
1464
|
-
}
|
|
1465
|
-
}
|
|
1466
|
-
SessionStorageService.decorators = [
|
|
1467
|
-
{ type: Injectable }
|
|
1468
|
-
];
|
|
1469
|
-
SessionStorageService.ctorParameters = () => [];
|
|
1470
|
-
|
|
1471
1501
|
/*
|
|
1472
1502
|
<file>
|
|
1473
1503
|
Project:
|
|
@@ -1705,6 +1735,31 @@ class Utils {
|
|
|
1705
1735
|
Utils.downloadFile(fileName, downloadURL);
|
|
1706
1736
|
}
|
|
1707
1737
|
}
|
|
1738
|
+
/*
|
|
1739
|
+
Author:
|
|
1740
|
+
https://medium.com/@mhagemann/the-ultimate-way-to-slugify-a-url-string-in-javascript-b8e4a0d849e1
|
|
1741
|
+
*/
|
|
1742
|
+
static slugify(text, prefix = '', postfix = '') {
|
|
1743
|
+
const a = 'àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;';
|
|
1744
|
+
const b = 'aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------';
|
|
1745
|
+
const p = new RegExp(a.split('').join('|'), 'g');
|
|
1746
|
+
/*
|
|
1747
|
+
https://css-tricks.com/snippets/javascript/strip-html-tags-in-javascript/
|
|
1748
|
+
https://stackoverflow.com/questions/822452/strip-html-from-text-javascript
|
|
1749
|
+
*/
|
|
1750
|
+
text = text.replace(/(<([^>]+)>)/gi, '');
|
|
1751
|
+
let result = text
|
|
1752
|
+
.toString()
|
|
1753
|
+
.toLowerCase()
|
|
1754
|
+
.replace(/\s+/g, '-') // Replace spaces with -
|
|
1755
|
+
.replace(p, c => b.charAt(a.indexOf(c))) // Replace special characters
|
|
1756
|
+
.replace(/&/g, '-and-') // Replace & with 'and'
|
|
1757
|
+
.replace(/[^\w\-]+/g, '') // Remove all non-word characters
|
|
1758
|
+
.replace(/\-\-+/g, '-') // Replace multiple - with single -
|
|
1759
|
+
.replace(/^-+/, '') // Trim - from start of text
|
|
1760
|
+
.replace(/-+$/, ''); // Trim - from end of text
|
|
1761
|
+
return prefix + result + postfix;
|
|
1762
|
+
}
|
|
1708
1763
|
}
|
|
1709
1764
|
|
|
1710
1765
|
/*
|
|
@@ -2221,9 +2276,6 @@ BaseDialog.propDecorators = {
|
|
|
2221
2276
|
Created:
|
|
2222
2277
|
14 Aug 2018
|
|
2223
2278
|
|
|
2224
|
-
Version:
|
|
2225
|
-
1.0
|
|
2226
|
-
|
|
2227
2279
|
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
2228
2280
|
</file>
|
|
2229
2281
|
*/
|