@osovitny/anatoly 2.0.45 → 2.0.46
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 +35 -26
- package/bundles/osovitny-anatoly.umd.js.map +1 -1
- package/bundles/osovitny-anatoly.umd.min.js +2 -2
- package/bundles/osovitny-anatoly.umd.min.js.map +1 -1
- package/esm2015/lib/core/core.module.js +5 -2
- package/esm2015/lib/core/services/idle.service.js +31 -22
- package/esm2015/lib/core/services/web-storage.service.js +7 -10
- package/fesm2015/osovitny-anatoly.js +35 -25
- package/fesm2015/osovitny-anatoly.js.map +1 -1
- package/lib/core/services/idle.service.d.ts +9 -6
- package/lib/core/services/web-storage.service.d.ts +0 -1
- package/osovitny-anatoly.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import { AppContextService } from './services/appcontext.service';
|
|
|
7
7
|
import { LoadingService } from './services/loading.service';
|
|
8
8
|
import { DigitalMarketingService } from './services/dm.service';
|
|
9
9
|
import { GoogleAnalyticsService } from './services/google-analytics.service';
|
|
10
|
+
import { LocalStorageService, SessionStorageService } from './services/web-storage.service';
|
|
10
11
|
//notifications
|
|
11
12
|
import { NotificationService } from './notifications/services/notification-service';
|
|
12
13
|
//Guards
|
|
@@ -29,7 +30,9 @@ AnatolyCoreModule.decorators = [
|
|
|
29
30
|
AppContextService,
|
|
30
31
|
LoadingService,
|
|
31
32
|
DigitalMarketingService,
|
|
32
|
-
GoogleAnalyticsService
|
|
33
|
+
GoogleAnalyticsService,
|
|
34
|
+
LocalStorageService,
|
|
35
|
+
SessionStorageService
|
|
33
36
|
],
|
|
34
37
|
},] }
|
|
35
38
|
];
|
|
@@ -37,4 +40,4 @@ AnatolyCoreModule.ctorParameters = () => [
|
|
|
37
40
|
{ type: Injector },
|
|
38
41
|
{ type: AnatolyCoreModule, decorators: [{ type: Optional }, { type: SkipSelf }] }
|
|
39
42
|
];
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29yZS9jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxTQUFTO0FBQ1QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRXpELFVBQVU7QUFDVixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFNUYsZUFBZTtBQUNmLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBRWxGLFFBQVE7QUFDUixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxNQUFNLENBQUMsSUFBSSxnQkFBMEIsQ0FBQztBQWdCdEMsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUFvQixRQUFrQixFQUEwQixZQUErQjtRQUEzRSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBRXhELGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDbkMsQ0FBQzs7O1lBbkJGLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFNBQVMsRUFBRTtvQkFDVCxjQUFjO29CQUNkLG1CQUFtQjtvQkFDbkIsaUJBQWlCO29CQUNqQixjQUFjO29CQUNkLHVCQUF1QjtvQkFDdkIsc0JBQXNCO29CQUN0QixtQkFBbUI7b0JBQ25CLHFCQUFxQjtpQkFDdEI7YUFDRjs7O1lBbENPLFFBQVE7WUFvQ2dFLGlCQUFpQix1QkFBdEQsUUFBUSxZQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdG9yLCBOZ01vZHVsZSwgT3B0aW9uYWwsIFNraXBTZWxmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG4vL0xvZ2dpbmdcclxuaW1wb3J0IHtMb2dnaW5nU2VydmljZX0gZnJvbSAnLi9sb2dnaW5nL2xvZ2dpbmcuc2VydmljZSc7XHJcblxyXG4vL1NlcnZpY2VzXHJcbmltcG9ydCB7IEFwcENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcHBjb250ZXh0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2FkaW5nU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbG9hZGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlnaXRhbE1hcmtldGluZ1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHb29nbGVBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9nb29nbGUtYW5hbHl0aWNzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3dlYi1zdG9yYWdlLnNlcnZpY2UnO1xyXG5cclxuLy9ub3RpZmljYXRpb25zXHJcbmltcG9ydCB7Tm90aWZpY2F0aW9uU2VydmljZX0gZnJvbSAnLi9ub3RpZmljYXRpb25zL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1zZXJ2aWNlJztcclxuXHJcbi8vR3VhcmRzXHJcbmltcG9ydCB7dGhyb3dJZkFscmVhZHlMb2FkZWR9IGZyb20gJy4vZ3VhcmRzL29uY2UtaW1wb3J0Lmd1YXJkJztcclxuXHJcbmV4cG9ydCBsZXQgSW5qZWN0b3JJbnN0YW5jZTogSW5qZWN0b3I7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgTG9nZ2luZ1NlcnZpY2UsXHJcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgQXBwQ29udGV4dFNlcnZpY2UsXHJcbiAgICBMb2FkaW5nU2VydmljZSxcclxuICAgIERpZ2l0YWxNYXJrZXRpbmdTZXJ2aWNlLFxyXG4gICAgR29vZ2xlQW5hbHl0aWNzU2VydmljZSxcclxuICAgIExvY2FsU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5hdG9seUNvcmVNb2R1bGUge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU6IEFuYXRvbHlDb3JlTW9kdWxlKSB7XHJcbiAgICB0aHJvd0lmQWxyZWFkeUxvYWRlZChwYXJlbnRNb2R1bGUsICdBbmF0b2x5Q29yZU1vZHVsZScpO1xyXG5cclxuICAgIEluamVjdG9ySW5zdGFuY2UgPSB0aGlzLmluamVjdG9yO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -16,50 +16,59 @@
|
|
|
16
16
|
Copyright (c) 2016-20201Osovitny Inc. All rights reserved.
|
|
17
17
|
</file>
|
|
18
18
|
*/
|
|
19
|
-
//
|
|
20
|
-
import { Injectable } from
|
|
21
|
-
//
|
|
22
|
-
import { fromEvent, merge, Subject, timer } from
|
|
19
|
+
//Node
|
|
20
|
+
import { Injectable } from '@angular/core';
|
|
21
|
+
//RxJs
|
|
22
|
+
import { fromEvent, merge, Subject, timer } from 'rxjs';
|
|
23
23
|
import * as i0 from "@angular/core";
|
|
24
24
|
export class IdleService {
|
|
25
25
|
constructor() {
|
|
26
26
|
this.expired$ = new Subject();
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
//Private
|
|
29
|
+
resetTimeCounters(timeOutSeconds) {
|
|
30
|
+
this.timeOutSeconds = timeOutSeconds;
|
|
30
31
|
this.timeOutMilliSeconds = timeOutSeconds * 1000;
|
|
31
|
-
this.
|
|
32
|
-
this.resetTimer();
|
|
33
|
-
});
|
|
34
|
-
this.startTimer();
|
|
35
|
-
return this.expired$;
|
|
32
|
+
this.startDate = new Date();
|
|
36
33
|
}
|
|
37
34
|
startTimer() {
|
|
38
|
-
this.timer$ = timer(this.timeOutMilliSeconds,
|
|
39
|
-
|
|
35
|
+
this.timer$ = timer(this.timeOutMilliSeconds, 1 * 1000).subscribe((res) => {
|
|
36
|
+
let nowDate = new Date();
|
|
37
|
+
let exiredDate = new Date(this.startDate.getTime() + this.timeOutMilliSeconds);
|
|
38
|
+
if (nowDate.getTime() >= exiredDate.getTime()) {
|
|
39
|
+
//console.log("nowDate: " + nowDate);
|
|
40
|
+
//console.log("exiredDate: " + exiredDate);
|
|
41
|
+
this.expired$.next(true);
|
|
42
|
+
}
|
|
40
43
|
});
|
|
41
44
|
}
|
|
42
45
|
resetTimer() {
|
|
43
|
-
this.
|
|
46
|
+
this.startDate = new Date();
|
|
47
|
+
}
|
|
48
|
+
//Public
|
|
49
|
+
startWatching(timeOutSeconds) {
|
|
50
|
+
this.idle$ = merge(fromEvent(document, 'mousemove'), fromEvent(document, 'click'), fromEvent(document, 'mousedown'), fromEvent(document, 'keypress'), fromEvent(document, 'DOMMouseScroll'), fromEvent(document, 'mousewheel'), fromEvent(document, 'touchmove'), fromEvent(document, 'MSPointerMove'), fromEvent(window, 'mousemove'), fromEvent(window, 'resize'));
|
|
51
|
+
this.resetTimeCounters(timeOutSeconds);
|
|
52
|
+
this.idleSubscription = this.idle$.subscribe((res) => {
|
|
53
|
+
this.resetTimer();
|
|
54
|
+
});
|
|
44
55
|
this.startTimer();
|
|
56
|
+
return this.expired$;
|
|
45
57
|
}
|
|
46
|
-
|
|
58
|
+
stopWatching() {
|
|
47
59
|
this.timer$.unsubscribe();
|
|
48
60
|
this.idleSubscription.unsubscribe();
|
|
49
61
|
}
|
|
50
|
-
restartIdleTimer() {
|
|
62
|
+
restartIdleTimer(timeOutSeconds) {
|
|
51
63
|
this.timer$.unsubscribe();
|
|
52
|
-
this.
|
|
53
|
-
this.idleSubscription = this.idle$.subscribe((res) => {
|
|
54
|
-
this.resetTimer();
|
|
55
|
-
});
|
|
64
|
+
this.resetTimeCounters(timeOutSeconds);
|
|
56
65
|
this.startTimer();
|
|
57
66
|
}
|
|
58
67
|
}
|
|
59
68
|
IdleService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IdleService_Factory() { return new IdleService(); }, token: IdleService, providedIn: "root" });
|
|
60
69
|
IdleService.decorators = [
|
|
61
70
|
{ type: Injectable, args: [{
|
|
62
|
-
providedIn:
|
|
71
|
+
providedIn: 'root'
|
|
63
72
|
},] }
|
|
64
73
|
];
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvcmUvc2VydmljZXMvaWRsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE1BQU07QUFDTixPQUFPLEVBQWMsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUtwRSxNQUFNLE9BQU8sV0FBVztJQUh4QjtRQWFTLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztLQStENUQ7SUE3REMsU0FBUztJQUNELGlCQUFpQixDQUFDLGNBQWM7UUFDdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDeEUsSUFBSSxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBRS9FLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDN0MscUNBQXFDO2dCQUNyQywyQ0FBMkM7Z0JBRTNDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFFBQVE7SUFDRCxhQUFhLENBQUMsY0FBYztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FDaEIsU0FBUyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFDaEMsU0FBUyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFDNUIsU0FBUyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFDaEMsU0FBUyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFDL0IsU0FBUyxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxFQUNyQyxTQUFTLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxFQUNqQyxTQUFTLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxFQUNoQyxTQUFTLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxFQUNwQyxTQUFTLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUM5QixTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUM1QixDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25ELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVNLGdCQUFnQixDQUFDLGNBQWM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7Ozs7WUEzRUYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjYgSnVuIDIwMjBcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMDFPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vL1J4SnNcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbUV2ZW50LCBtZXJnZSwgU3ViamVjdCwgdGltZXIgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIElkbGVTZXJ2aWNlIHtcclxuICBwcml2YXRlIGlkbGUkOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgcHJpdmF0ZSB0aW1lciQ7XHJcbiAgcHJpdmF0ZSBpZGxlU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvL0RhdGVzL1RpbWVvdXRzXHJcbiAgcHJpdmF0ZSBzdGFydERhdGU7XHJcbiAgcHJpdmF0ZSB0aW1lT3V0U2Vjb25kczogbnVtYmVyO1xyXG4gIHByaXZhdGUgdGltZU91dE1pbGxpU2Vjb25kczogbnVtYmVyO1xyXG5cclxuICBwdWJsaWMgZXhwaXJlZCQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuICAvL1ByaXZhdGVcclxuICBwcml2YXRlIHJlc2V0VGltZUNvdW50ZXJzKHRpbWVPdXRTZWNvbmRzKSB7XHJcbiAgICB0aGlzLnRpbWVPdXRTZWNvbmRzID0gdGltZU91dFNlY29uZHM7XHJcbiAgICB0aGlzLnRpbWVPdXRNaWxsaVNlY29uZHMgPSB0aW1lT3V0U2Vjb25kcyAqIDEwMDA7XHJcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXJ0VGltZXIoKSB7XHJcbiAgICB0aGlzLnRpbWVyJCA9IHRpbWVyKHRoaXMudGltZU91dE1pbGxpU2Vjb25kcywgMSAqIDEwMDApLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGxldCBub3dEYXRlID0gbmV3IERhdGUoKTtcclxuICAgICAgbGV0IGV4aXJlZERhdGUgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZS5nZXRUaW1lKCkgKyB0aGlzLnRpbWVPdXRNaWxsaVNlY29uZHMpO1xyXG5cclxuICAgICAgaWYgKG5vd0RhdGUuZ2V0VGltZSgpID49IGV4aXJlZERhdGUuZ2V0VGltZSgpKSB7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcIm5vd0RhdGU6IFwiICsgbm93RGF0ZSk7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcImV4aXJlZERhdGU6IFwiICsgZXhpcmVkRGF0ZSk7XHJcblxyXG4gICAgICAgIHRoaXMuZXhwaXJlZCQubmV4dCh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0VGltZXIoKSB7XHJcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgfVxyXG5cclxuICAvL1B1YmxpY1xyXG4gIHB1YmxpYyBzdGFydFdhdGNoaW5nKHRpbWVPdXRTZWNvbmRzKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMuaWRsZSQgPSBtZXJnZShcclxuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnbW91c2Vtb3ZlJyksXHJcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyksXHJcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ21vdXNlZG93bicpLFxyXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlwcmVzcycpLFxyXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdET01Nb3VzZVNjcm9sbCcpLFxyXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZXdoZWVsJyksXHJcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNobW92ZScpLFxyXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdNU1BvaW50ZXJNb3ZlJyksXHJcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdtb3VzZW1vdmUnKSxcclxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLFxyXG4gICAgKTtcclxuICAgXHJcbiAgICB0aGlzLnJlc2V0VGltZUNvdW50ZXJzKHRpbWVPdXRTZWNvbmRzKTtcclxuXHJcbiAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24gPSB0aGlzLmlkbGUkLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIHRoaXMucmVzZXRUaW1lcigpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zdGFydFRpbWVyKCk7XHJcbiAgICByZXR1cm4gdGhpcy5leHBpcmVkJDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9wV2F0Y2hpbmcoKSB7XHJcbiAgICB0aGlzLnRpbWVyJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzdGFydElkbGVUaW1lcih0aW1lT3V0U2Vjb25kcykge1xyXG4gICAgdGhpcy50aW1lciQudW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICB0aGlzLnJlc2V0VGltZUNvdW50ZXJzKHRpbWVPdXRTZWNvbmRzKTtcclxuICAgIHRoaXMuc3RhcnRUaW1lcigpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -16,32 +16,29 @@
|
|
|
16
16
|
Copyright (c) 2016-20201Osovitny Inc. All rights reserved.
|
|
17
17
|
</file>
|
|
18
18
|
*/
|
|
19
|
-
//
|
|
19
|
+
//Node
|
|
20
20
|
import { Injectable } from '@angular/core';
|
|
21
|
-
// App
|
|
22
|
-
import { AppCoreSettings } from '../consts/settings';
|
|
23
21
|
class WebStorageService {
|
|
24
22
|
constructor(storage) {
|
|
25
|
-
this.currentClientKey = AppCoreSettings.SERVICES_CONF.selectedClientID;
|
|
26
23
|
this.storage =
|
|
27
24
|
storage === 'local' || storage === 'localStorage'
|
|
28
25
|
? localStorage
|
|
29
26
|
: sessionStorage;
|
|
30
27
|
}
|
|
31
28
|
setItem(key, value) {
|
|
32
|
-
this.storage.setItem(
|
|
29
|
+
this.storage.setItem(key, value);
|
|
33
30
|
}
|
|
34
31
|
setObject(key, value) {
|
|
35
|
-
this.storage.setItem(
|
|
32
|
+
this.storage.setItem(key, JSON.stringify(value));
|
|
36
33
|
}
|
|
37
34
|
getItem(key) {
|
|
38
|
-
return this.storage.getItem(
|
|
35
|
+
return this.storage.getItem(key);
|
|
39
36
|
}
|
|
40
37
|
getObject(key) {
|
|
41
|
-
return JSON.parse(this.storage.getItem(
|
|
38
|
+
return JSON.parse(this.storage.getItem(key) || '{}');
|
|
42
39
|
}
|
|
43
40
|
remove(key) {
|
|
44
|
-
this.storage.removeItem(
|
|
41
|
+
this.storage.removeItem(key);
|
|
45
42
|
}
|
|
46
43
|
}
|
|
47
44
|
export class LocalStorageService extends WebStorageService {
|
|
@@ -62,4 +59,4 @@ SessionStorageService.decorators = [
|
|
|
62
59
|
{ type: Injectable }
|
|
63
60
|
];
|
|
64
61
|
SessionStorageService.ctorParameters = () => [];
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb3JlL3NlcnZpY2VzL3dlYi1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFLekMsTUFBTSxpQkFBaUI7SUFHckIsWUFBWSxPQUFlO1FBQ3pCLElBQUksQ0FBQyxPQUFPO1lBQ1YsT0FBTyxLQUFLLE9BQU8sSUFBSSxPQUFPLEtBQUssY0FBYztnQkFDL0MsQ0FBQyxDQUFDLFlBQVk7Z0JBQ2QsQ0FBQyxDQUFDLGNBQWMsQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLO1FBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQUcsRUFBRSxLQUFLO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQUc7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHO1FBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztDQUNGO0FBR0QsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGlCQUFpQjtJQUN4RDtRQUNFLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QixDQUFDOzs7WUFKRixVQUFVOzs7QUFRWCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsaUJBQWlCO0lBQzFEO1FBQ0UsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDMUIsQ0FBQzs7O1lBSkYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI2IEp1biAyMDIwXHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjAxT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7QXBwQ29yZVNldHRpbmdzfSBmcm9tICcuLi9jb25zdHMvc2V0dGluZ3MnO1xyXG5cclxuY2xhc3MgV2ViU3RvcmFnZVNlcnZpY2Uge1xyXG4gIHN0b3JhZ2U6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3Ioc3RvcmFnZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnN0b3JhZ2UgPVxyXG4gICAgICBzdG9yYWdlID09PSAnbG9jYWwnIHx8IHN0b3JhZ2UgPT09ICdsb2NhbFN0b3JhZ2UnXHJcbiAgICAgICAgPyBsb2NhbFN0b3JhZ2VcclxuICAgICAgICA6IHNlc3Npb25TdG9yYWdlO1xyXG4gIH1cclxuXHJcbiAgc2V0SXRlbShrZXksIHZhbHVlKSB7XHJcbiAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHNldE9iamVjdChrZXksIHZhbHVlKSB7XHJcbiAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtKGtleSkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5nZXRJdGVtKGtleSk7XHJcbiAgfVxyXG5cclxuICBnZXRPYmplY3Qoa2V5KSB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShcclxuICAgICAgdGhpcy5zdG9yYWdlLmdldEl0ZW0oa2V5KSB8fCAne30nXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKGtleSkge1xyXG4gICAgdGhpcy5zdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZVNlcnZpY2UgZXh0ZW5kcyBXZWJTdG9yYWdlU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcignbG9jYWxTdG9yYWdlJyk7XHJcbiAgfVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgZXh0ZW5kcyBXZWJTdG9yYWdlU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcignc2Vzc2lvblN0b3JhZ2UnKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -2,7 +2,7 @@ import { Injectable, ɵɵdefineInjectable, ɵɵinject, Pipe, NgModule, APP_INITI
|
|
|
2
2
|
import { ActivatedRoute, Router, NavigationEnd, NavigationStart, NavigationCancel, NavigationError } from '@angular/router';
|
|
3
3
|
import { HttpResponse, HttpClient } from '@angular/common/http';
|
|
4
4
|
import { tap, map } from 'rxjs/operators';
|
|
5
|
-
import { BehaviorSubject, Subject, merge, fromEvent
|
|
5
|
+
import { BehaviorSubject, Subject, timer, merge, fromEvent } from 'rxjs';
|
|
6
6
|
import { TranslateService, TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
|
7
7
|
import { isValid, format, formatDistance, formatDistanceToNow } from 'date-fns';
|
|
8
8
|
import { utcToZonedTime } from 'date-fns-tz';
|
|
@@ -1321,41 +1321,50 @@ class IdleService {
|
|
|
1321
1321
|
constructor() {
|
|
1322
1322
|
this.expired$ = new Subject();
|
|
1323
1323
|
}
|
|
1324
|
-
|
|
1325
|
-
|
|
1324
|
+
//Private
|
|
1325
|
+
resetTimeCounters(timeOutSeconds) {
|
|
1326
|
+
this.timeOutSeconds = timeOutSeconds;
|
|
1326
1327
|
this.timeOutMilliSeconds = timeOutSeconds * 1000;
|
|
1327
|
-
this.
|
|
1328
|
-
this.resetTimer();
|
|
1329
|
-
});
|
|
1330
|
-
this.startTimer();
|
|
1331
|
-
return this.expired$;
|
|
1328
|
+
this.startDate = new Date();
|
|
1332
1329
|
}
|
|
1333
1330
|
startTimer() {
|
|
1334
|
-
this.timer$ = timer(this.timeOutMilliSeconds,
|
|
1335
|
-
|
|
1331
|
+
this.timer$ = timer(this.timeOutMilliSeconds, 1 * 1000).subscribe((res) => {
|
|
1332
|
+
let nowDate = new Date();
|
|
1333
|
+
let exiredDate = new Date(this.startDate.getTime() + this.timeOutMilliSeconds);
|
|
1334
|
+
if (nowDate.getTime() >= exiredDate.getTime()) {
|
|
1335
|
+
//console.log("nowDate: " + nowDate);
|
|
1336
|
+
//console.log("exiredDate: " + exiredDate);
|
|
1337
|
+
this.expired$.next(true);
|
|
1338
|
+
}
|
|
1336
1339
|
});
|
|
1337
1340
|
}
|
|
1338
1341
|
resetTimer() {
|
|
1339
|
-
this.
|
|
1342
|
+
this.startDate = new Date();
|
|
1343
|
+
}
|
|
1344
|
+
//Public
|
|
1345
|
+
startWatching(timeOutSeconds) {
|
|
1346
|
+
this.idle$ = merge(fromEvent(document, 'mousemove'), fromEvent(document, 'click'), fromEvent(document, 'mousedown'), fromEvent(document, 'keypress'), fromEvent(document, 'DOMMouseScroll'), fromEvent(document, 'mousewheel'), fromEvent(document, 'touchmove'), fromEvent(document, 'MSPointerMove'), fromEvent(window, 'mousemove'), fromEvent(window, 'resize'));
|
|
1347
|
+
this.resetTimeCounters(timeOutSeconds);
|
|
1348
|
+
this.idleSubscription = this.idle$.subscribe((res) => {
|
|
1349
|
+
this.resetTimer();
|
|
1350
|
+
});
|
|
1340
1351
|
this.startTimer();
|
|
1352
|
+
return this.expired$;
|
|
1341
1353
|
}
|
|
1342
|
-
|
|
1354
|
+
stopWatching() {
|
|
1343
1355
|
this.timer$.unsubscribe();
|
|
1344
1356
|
this.idleSubscription.unsubscribe();
|
|
1345
1357
|
}
|
|
1346
|
-
restartIdleTimer() {
|
|
1358
|
+
restartIdleTimer(timeOutSeconds) {
|
|
1347
1359
|
this.timer$.unsubscribe();
|
|
1348
|
-
this.
|
|
1349
|
-
this.idleSubscription = this.idle$.subscribe((res) => {
|
|
1350
|
-
this.resetTimer();
|
|
1351
|
-
});
|
|
1360
|
+
this.resetTimeCounters(timeOutSeconds);
|
|
1352
1361
|
this.startTimer();
|
|
1353
1362
|
}
|
|
1354
1363
|
}
|
|
1355
1364
|
IdleService.ɵprov = ɵɵdefineInjectable({ factory: function IdleService_Factory() { return new IdleService(); }, token: IdleService, providedIn: "root" });
|
|
1356
1365
|
IdleService.decorators = [
|
|
1357
1366
|
{ type: Injectable, args: [{
|
|
1358
|
-
providedIn:
|
|
1367
|
+
providedIn: 'root'
|
|
1359
1368
|
},] }
|
|
1360
1369
|
];
|
|
1361
1370
|
|
|
@@ -1379,26 +1388,25 @@ IdleService.decorators = [
|
|
|
1379
1388
|
*/
|
|
1380
1389
|
class WebStorageService {
|
|
1381
1390
|
constructor(storage) {
|
|
1382
|
-
this.currentClientKey = AppCoreSettings.SERVICES_CONF.selectedClientID;
|
|
1383
1391
|
this.storage =
|
|
1384
1392
|
storage === 'local' || storage === 'localStorage'
|
|
1385
1393
|
? localStorage
|
|
1386
1394
|
: sessionStorage;
|
|
1387
1395
|
}
|
|
1388
1396
|
setItem(key, value) {
|
|
1389
|
-
this.storage.setItem(
|
|
1397
|
+
this.storage.setItem(key, value);
|
|
1390
1398
|
}
|
|
1391
1399
|
setObject(key, value) {
|
|
1392
|
-
this.storage.setItem(
|
|
1400
|
+
this.storage.setItem(key, JSON.stringify(value));
|
|
1393
1401
|
}
|
|
1394
1402
|
getItem(key) {
|
|
1395
|
-
return this.storage.getItem(
|
|
1403
|
+
return this.storage.getItem(key);
|
|
1396
1404
|
}
|
|
1397
1405
|
getObject(key) {
|
|
1398
|
-
return JSON.parse(this.storage.getItem(
|
|
1406
|
+
return JSON.parse(this.storage.getItem(key) || '{}');
|
|
1399
1407
|
}
|
|
1400
1408
|
remove(key) {
|
|
1401
|
-
this.storage.removeItem(
|
|
1409
|
+
this.storage.removeItem(key);
|
|
1402
1410
|
}
|
|
1403
1411
|
}
|
|
1404
1412
|
class LocalStorageService extends WebStorageService {
|
|
@@ -1555,7 +1563,9 @@ AnatolyCoreModule.decorators = [
|
|
|
1555
1563
|
AppContextService,
|
|
1556
1564
|
LoadingService,
|
|
1557
1565
|
DigitalMarketingService,
|
|
1558
|
-
GoogleAnalyticsService
|
|
1566
|
+
GoogleAnalyticsService,
|
|
1567
|
+
LocalStorageService,
|
|
1568
|
+
SessionStorageService
|
|
1559
1569
|
],
|
|
1560
1570
|
},] }
|
|
1561
1571
|
];
|