@osovitny/anatoly 2.0.25 → 2.0.26
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 +1803 -1638
- 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/convert.js +1 -5
- package/esm2015/lib/core/core.module.js +7 -8
- package/esm2015/lib/core/go/base-go.service.js +4 -4
- package/esm2015/lib/core/interceptors/httpInterceptor.js +2 -2
- package/esm2015/lib/core/localization/localization.service.js +3 -3
- package/esm2015/lib/core/localization/localizationSettings.module.js +3 -3
- package/esm2015/lib/core/notifications/services/notification-service.js +1 -1
- package/esm2015/lib/core/services/appcontext.service.js +12 -12
- package/esm2015/lib/core/services/idle.service.js +65 -0
- package/esm2015/lib/core/services/web-storage.service.js +65 -0
- package/esm2015/lib/data/consts.js +2 -2
- package/esm2015/lib/data/data.module.js +6 -6
- package/esm2015/lib/data/services/notifications/notifications-api-service.js +45 -0
- package/esm2015/lib/ui/components/billing/buyaccess-button.component.js +9 -9
- package/esm2015/lib/ui/components/billing/upgrade-plan-button.component.js +7 -7
- package/esm2015/lib/ui/components/html-editor/base-html-editor.component.js +19 -19
- package/esm2015/lib/ui/components/loading/loading.component.js +49 -0
- package/esm2015/lib/ui/components/spinner/spinner.component.js +73 -0
- package/esm2015/lib/ui/pipes/filesize.pipe.js +41 -0
- package/esm2015/lib/ui/pipes/replace-text.pipe.js +36 -0
- package/esm2015/lib/ui/pipes/safeHtml.pipe.js +36 -0
- package/esm2015/lib/ui/ui.module.js +19 -13
- package/esm2015/public-api.js +57 -9
- package/fesm2015/osovitny-anatoly.js +1450 -1287
- package/fesm2015/osovitny-anatoly.js.map +1 -1
- package/lib/core/convert.d.ts +0 -4
- package/lib/core/go/base-go.service.d.ts +1 -1
- package/lib/core/services/appcontext.service.d.ts +2 -2
- package/lib/core/services/idle.service.d.ts +13 -0
- package/lib/core/services/web-storage.service.d.ts +17 -0
- package/lib/data/services/notifications/notifications-api-service.d.ts +9 -0
- package/lib/ui/components/billing/buyaccess-button.component.d.ts +3 -3
- package/lib/ui/components/billing/upgrade-plan-button.component.d.ts +1 -1
- package/lib/ui/components/html-editor/base-html-editor.component.d.ts +2 -2
- package/lib/ui/components/loading/loading.component.d.ts +10 -0
- package/lib/ui/components/spinner/spinner.component.d.ts +22 -0
- package/lib/ui/pipes/filesize.pipe.d.ts +5 -0
- package/lib/ui/pipes/replace-text.pipe.d.ts +4 -0
- package/lib/ui/pipes/safeHtml.pipe.d.ts +7 -0
- package/lib/ui/ui.module.d.ts +2 -3
- package/osovitny-anatoly.metadata.json +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +53 -8
- package/esm2015/lib/core/alerts.js +0 -145
- package/esm2015/lib/core/consts/index.js +0 -21
- package/esm2015/lib/core/index.js +0 -37
- package/esm2015/lib/core/localization/index.js +0 -26
- package/esm2015/lib/data/index.js +0 -26
- package/esm2015/lib/ui/index.js +0 -43
- package/lib/core/alerts.d.ts +0 -12
- package/lib/core/consts/index.d.ts +0 -2
- package/lib/core/index.d.ts +0 -13
- package/lib/core/localization/index.d.ts +0 -4
- package/lib/data/index.d.ts +0 -5
- package/lib/ui/index.d.ts +0 -16
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
30 April 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
// Node
|
|
20
|
+
import { Injectable } from '@angular/core';
|
|
21
|
+
import { HttpClient } from '@angular/common/http';
|
|
22
|
+
import { BaseApiService } from '../../base/base-api.service';
|
|
23
|
+
import { consts } from '../../consts';
|
|
24
|
+
import * as i0 from "@angular/core";
|
|
25
|
+
import * as i1 from "@angular/common/http";
|
|
26
|
+
export class NotificationsApiService extends BaseApiService {
|
|
27
|
+
constructor(http) {
|
|
28
|
+
super(http);
|
|
29
|
+
this.http = http;
|
|
30
|
+
this.baseUrl = consts.notificationsApiPath;
|
|
31
|
+
}
|
|
32
|
+
retrieveNotifications() {
|
|
33
|
+
return this.get('retrieveNotifications');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
NotificationsApiService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NotificationsApiService_Factory() { return new NotificationsApiService(i0.ɵɵinject(i1.HttpClient)); }, token: NotificationsApiService, providedIn: "root" });
|
|
37
|
+
NotificationsApiService.decorators = [
|
|
38
|
+
{ type: Injectable, args: [{
|
|
39
|
+
providedIn: 'root'
|
|
40
|
+
},] }
|
|
41
|
+
];
|
|
42
|
+
NotificationsApiService.ctorParameters = () => [
|
|
43
|
+
{ type: HttpClient }
|
|
44
|
+
];
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1hcGktc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9kYXRhL3NlcnZpY2VzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1hcGktc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixPQUFPO0FBQ1AsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFPaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQUt0QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBYztJQUN6RCxZQUFzQixJQUFnQjtRQUNwQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFEUSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBRXBDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDO0lBQzdDLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDM0MsQ0FBQzs7OztZQVhGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBWk8sVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDMwIEFwcmlsIDIwMjBcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMCBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG4vLyBSeEpTXHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcblxyXG4vLyBBcHBcclxuaW1wb3J0IHsgSU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbm90aWZpY2F0aW9ucy9pbnRlcmZhY2VzL25vdGlmaWNhdGlvbic7XHJcbmltcG9ydCB7IEJhc2VBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYmFzZS9iYXNlLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgY29uc3RzIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNBcGlTZXJ2aWNlIGV4dGVuZHMgQmFzZUFwaVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgICBzdXBlcihodHRwKTtcclxuICAgIHRoaXMuYmFzZVVybCA9IGNvbnN0cy5ub3RpZmljYXRpb25zQXBpUGF0aDtcclxuICB9XHJcblxyXG4gIHJldHJpZXZlTm90aWZpY2F0aW9ucygpOiBPYnNlcnZhYmxlPElOb3RpZmljYXRpb25bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0KCdyZXRyaWV2ZU5vdGlmaWNhdGlvbnMnKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
</file>
|
|
18
18
|
*/
|
|
19
19
|
// Node
|
|
20
|
-
import { Component, Input } from
|
|
20
|
+
import { Component, Input } from '@angular/core';
|
|
21
21
|
// Services
|
|
22
|
-
import { AppContextService } from
|
|
23
|
-
import { BillingApiService } from
|
|
24
|
-
import { Alerts } from
|
|
22
|
+
import { AppContextService } from '../../../core/services/appcontext.service';
|
|
23
|
+
import { BillingApiService } from '../../../data/services/billing-api.service';
|
|
24
|
+
import { Alerts } from '../../../core/notifications/alerts';
|
|
25
25
|
export class BuyAccessButtonComponent {
|
|
26
26
|
constructor(appcontext, api) {
|
|
27
27
|
this.appcontext = appcontext;
|
|
@@ -29,7 +29,7 @@ export class BuyAccessButtonComponent {
|
|
|
29
29
|
this.contextUpdated = false;
|
|
30
30
|
this.isUserSignedIn = false;
|
|
31
31
|
this.currentPlan = 0;
|
|
32
|
-
this.currentPlanTitle =
|
|
32
|
+
this.currentPlanTitle = '';
|
|
33
33
|
}
|
|
34
34
|
ngOnInit() {
|
|
35
35
|
if (!this.appcontext.isUserSignedIn()) {
|
|
@@ -48,9 +48,9 @@ export class BuyAccessButtonComponent {
|
|
|
48
48
|
onBuyPlan() {
|
|
49
49
|
const text = `Requested plan: ${this.plantitle} `;
|
|
50
50
|
const that = this;
|
|
51
|
-
Alerts.
|
|
51
|
+
Alerts.areYouSure(text, 'Buying access', 'Confirm change', 'Cancel', () => {
|
|
52
52
|
that.api.buyAccess(that.plan, () => {
|
|
53
|
-
Alerts.
|
|
53
|
+
Alerts.success('Access Granted', null, null, () => {
|
|
54
54
|
window.location.reload();
|
|
55
55
|
});
|
|
56
56
|
});
|
|
@@ -59,7 +59,7 @@ export class BuyAccessButtonComponent {
|
|
|
59
59
|
}
|
|
60
60
|
BuyAccessButtonComponent.decorators = [
|
|
61
61
|
{ type: Component, args: [{
|
|
62
|
-
selector:
|
|
62
|
+
selector: 'anatoly-buyaccess-button',
|
|
63
63
|
template: "<div *ngIf=\"contextUpdated\">\r\n <div *ngIf=\"!isUserSignedIn\">\r\n <anatoly-signup-button classbtn=\"btn btn-block btn-primary\"></anatoly-signup-button>\r\n </div>\r\n\r\n <div *ngIf=\"isUserSignedIn\">\r\n <button class=\"btn btn-block btn-success selectPlan\" *ngIf=\"plan == currentPlan\">\r\n Your Plan\r\n </button>\r\n\r\n <button class=\"btn btn-block btn-warning selectPlan\" *ngIf=\"plan != currentPlan && currentPlan == 1\" (click)=\"onBuyPlan()\">\r\n Buy Now\r\n </button>\r\n </div>\r\n</div>\r\n"
|
|
64
64
|
},] }
|
|
65
65
|
];
|
|
@@ -71,4 +71,4 @@ BuyAccessButtonComponent.propDecorators = {
|
|
|
71
71
|
plan: [{ type: Input }],
|
|
72
72
|
plantitle: [{ type: Input }]
|
|
73
73
|
};
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV5YWNjZXNzLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9iaWxsaW5nL2J1eWFjY2Vzcy1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxXQUFXO0FBQ1gsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDN0UsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBTzFELE1BQU0sT0FBTyx3QkFBd0I7SUFTbkMsWUFDVSxVQUE2QixFQUM3QixHQUFzQjtRQUR0QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVZ6QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFRMUIsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUMzQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUU3QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO2FBQzdEO1lBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUM7UUFDbEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWxCLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1lBQ3hFLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUNqQyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMsR0FBRyxFQUFFO29CQUM5QyxNQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQyxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUEvQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLDRpQkFBZ0Q7YUFDakQ7OztZQVJPLGlCQUFpQjtZQUNqQixpQkFBaUI7OzttQkFjdEIsS0FBSzt3QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTQgQXVnIDIwMThcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMCBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4vLyBTZXJ2aWNlc1xyXG5pbXBvcnQge0FwcENvbnRleHRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2FwcGNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7QmlsbGluZ0FwaVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2RhdGEvc2VydmljZXMvYmlsbGluZy1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7QWxlcnRzfSBmcm9tICcuLi8uLi8uLi9jb3JlL25vdGlmaWNhdGlvbnMvYWxlcnRzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FuYXRvbHktYnV5YWNjZXNzLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2J1eWFjY2Vzcy1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnV5QWNjZXNzQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgY29udGV4dFVwZGF0ZWQgPSBmYWxzZTtcclxuICBwdWJsaWMgaXNVc2VyU2lnbmVkSW4gPSBmYWxzZTtcclxuICBwdWJsaWMgY3VycmVudFBsYW4gPSAwO1xyXG4gIHB1YmxpYyBjdXJyZW50UGxhblRpdGxlID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHBsYW46IG51bWJlcjtcclxuICBASW5wdXQoKSBwbGFudGl0bGU6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFwcGNvbnRleHQ6IEFwcENvbnRleHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcGk6IEJpbGxpbmdBcGlTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5hcHBjb250ZXh0LmlzVXNlclNpZ25lZEluKCkpIHtcclxuICAgICAgdGhpcy5jb250ZXh0VXBkYXRlZCA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFwcGNvbnRleHQuZ2V0Q3VycmVudCgoY3VycmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmlzVXNlclNpZ25lZEluID0gY3VycmVudC5pc1VzZXJTaWduZWRJbjtcclxuXHJcbiAgICAgIGlmICh0aGlzLmlzVXNlclNpZ25lZEluKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGxhbiA9IGN1cnJlbnQuYWNjb3VudC5iaWxsaW5nUGxhbjtcclxuICAgICAgICB0aGlzLmN1cnJlbnRQbGFuVGl0bGUgPSBjdXJyZW50LmFjY291bnQuYmlsbGluZ1BsYW5Bc1N0cmluZztcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jb250ZXh0VXBkYXRlZCA9IHRydWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQnV5UGxhbigpIHtcclxuICAgIGNvbnN0IHRleHQgPSBgUmVxdWVzdGVkIHBsYW46ICR7dGhpcy5wbGFudGl0bGV9IGA7XHJcbiAgICBjb25zdCB0aGF0ID0gdGhpcztcclxuXHJcbiAgICBBbGVydHMuYXJlWW91U3VyZSh0ZXh0LCAnQnV5aW5nIGFjY2VzcycsICdDb25maXJtIGNoYW5nZScsICdDYW5jZWwnLCAoKSA9PiB7XHJcbiAgICAgIHRoYXQuYXBpLmJ1eUFjY2Vzcyh0aGF0LnBsYW4sICgpID0+IHtcclxuICAgICAgICBBbGVydHMuc3VjY2VzcygnQWNjZXNzIEdyYW50ZWQnLCBudWxsLCBudWxsLCgpID0+IHtcclxuICAgICAgICAgICh3aW5kb3cgYXMgYW55KS5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
</file>
|
|
18
18
|
*/
|
|
19
19
|
// Node
|
|
20
|
-
import { Component, Input } from
|
|
21
|
-
import { BillingApiService } from
|
|
22
|
-
import { Alerts } from
|
|
20
|
+
import { Component, Input } from '@angular/core';
|
|
21
|
+
import { BillingApiService } from '../../../data/services/billing-api.service';
|
|
22
|
+
import { Alerts } from '../../../core/notifications/alerts';
|
|
23
23
|
// Services
|
|
24
24
|
export class UpgradePlanButtonComponent {
|
|
25
25
|
constructor(api) {
|
|
@@ -28,9 +28,9 @@ export class UpgradePlanButtonComponent {
|
|
|
28
28
|
onUpgradePlan() {
|
|
29
29
|
const text = `Current plan: ${this.currentplantitle} New plan: ${this.requestedplantitle}`;
|
|
30
30
|
const that = this;
|
|
31
|
-
Alerts.
|
|
31
|
+
Alerts.areYouSure(text, 'Change billing plan', 'Confirm change', 'Cancel', () => {
|
|
32
32
|
that.api.requestNewSubscription(that.requestedplan, () => {
|
|
33
|
-
Alerts.
|
|
33
|
+
Alerts.success('Your request for changing plan has been sent.', null, null, () => {
|
|
34
34
|
window.location.reload();
|
|
35
35
|
});
|
|
36
36
|
});
|
|
@@ -39,7 +39,7 @@ export class UpgradePlanButtonComponent {
|
|
|
39
39
|
}
|
|
40
40
|
UpgradePlanButtonComponent.decorators = [
|
|
41
41
|
{ type: Component, args: [{
|
|
42
|
-
selector:
|
|
42
|
+
selector: 'anatoly-upgrade-plan-button',
|
|
43
43
|
template: "<button class=\"btn btn-block btn-primary\" (click)=\"onUpgradePlan()\">\r\n Upgrade\r\n</button>\r\n"
|
|
44
44
|
},] }
|
|
45
45
|
];
|
|
@@ -51,4 +51,4 @@ UpgradePlanButtonComponent.propDecorators = {
|
|
|
51
51
|
requestedplan: [{ type: Input }],
|
|
52
52
|
requestedplantitle: [{ type: Input }]
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1wbGFuLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9iaWxsaW5nL3VwZ3JhZGUtcGxhbi1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFMUQsV0FBVztBQU1YLE1BQU0sT0FBTywwQkFBMEI7SUFLckMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFBRyxDQUFDO0lBRTlDLGFBQWE7UUFDWCxNQUFNLElBQUksR0FBRyxpQkFBaUIsSUFBSSxDQUFDLGdCQUFnQixjQUFjLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzNGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUVsQixNQUFNLENBQUMsVUFBVSxDQUNmLElBQUksRUFDSixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO2dCQUN2RCxNQUFNLENBQUMsT0FBTyxDQUNaLCtDQUErQyxFQUMvQyxJQUFJLEVBQUMsSUFBSSxFQUNULEdBQUcsRUFBRTtvQkFDRixNQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQyxDQUFDLENBQ0YsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDOzs7WUFoQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw2QkFBNkI7Z0JBQ3ZDLGtIQUFtRDthQUNwRDs7O1lBUk8saUJBQWlCOzs7K0JBVXRCLEtBQUs7NEJBQ0wsS0FBSztpQ0FDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTIgTm92IDIwMTdcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMCBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtCaWxsaW5nQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZGF0YS9zZXJ2aWNlcy9iaWxsaW5nLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHtBbGVydHN9IGZyb20gJy4uLy4uLy4uL2NvcmUvbm90aWZpY2F0aW9ucy9hbGVydHMnO1xyXG5cclxuLy8gU2VydmljZXNcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW5hdG9seS11cGdyYWRlLXBsYW4tYnV0dG9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBncmFkZS1wbGFuLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGdyYWRlUGxhbkJ1dHRvbkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgY3VycmVudHBsYW50aXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJlcXVlc3RlZHBsYW46IG51bWJlcjtcclxuICBASW5wdXQoKSByZXF1ZXN0ZWRwbGFudGl0bGU6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGk6IEJpbGxpbmdBcGlTZXJ2aWNlKSB7fVxyXG5cclxuICBvblVwZ3JhZGVQbGFuKCkge1xyXG4gICAgY29uc3QgdGV4dCA9IGBDdXJyZW50IHBsYW46ICR7dGhpcy5jdXJyZW50cGxhbnRpdGxlfSBOZXcgcGxhbjogJHt0aGlzLnJlcXVlc3RlZHBsYW50aXRsZX1gO1xyXG4gICAgY29uc3QgdGhhdCA9IHRoaXM7XHJcblxyXG4gICAgQWxlcnRzLmFyZVlvdVN1cmUoXHJcbiAgICAgIHRleHQsXHJcbiAgICAgICdDaGFuZ2UgYmlsbGluZyBwbGFuJyxcclxuICAgICAgJ0NvbmZpcm0gY2hhbmdlJyxcclxuICAgICAgJ0NhbmNlbCcsXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICB0aGF0LmFwaS5yZXF1ZXN0TmV3U3Vic2NyaXB0aW9uKHRoYXQucmVxdWVzdGVkcGxhbiwgKCkgPT4ge1xyXG4gICAgICAgICAgQWxlcnRzLnN1Y2Nlc3MoXHJcbiAgICAgICAgICAgICdZb3VyIHJlcXVlc3QgZm9yIGNoYW5naW5nIHBsYW4gaGFzIGJlZW4gc2VudC4nLFxyXG4gICAgICAgICAgICBudWxsLG51bGwsXHJcbiAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAod2luZG93IGFzIGFueSkubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -16,28 +16,28 @@
|
|
|
16
16
|
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
17
|
</file>
|
|
18
18
|
*/
|
|
19
|
-
//Node
|
|
20
|
-
import { Input } from
|
|
21
|
-
//Custom
|
|
22
|
-
import { AppCoreSettings } from
|
|
23
|
-
import { BaseEditComponent } from
|
|
24
|
-
import { DefaultEditorOptions } from
|
|
19
|
+
// Node
|
|
20
|
+
import { Input } from '@angular/core';
|
|
21
|
+
// Custom
|
|
22
|
+
import { AppCoreSettings } from '../../../core/consts/settings';
|
|
23
|
+
import { BaseEditComponent } from '../base-edit.component';
|
|
24
|
+
import { DefaultEditorOptions } from './html-editor.defaultoptions';
|
|
25
25
|
export class BaseHtmlEditorComponent extends BaseEditComponent {
|
|
26
26
|
constructor() {
|
|
27
27
|
super();
|
|
28
28
|
this.froalaEditorInitialized = false;
|
|
29
29
|
this.afterInitializedActions = [];
|
|
30
|
-
//Inputs
|
|
31
|
-
this.editorLabelText =
|
|
30
|
+
// Inputs
|
|
31
|
+
this.editorLabelText = 'Html';
|
|
32
32
|
this.editorOptions = {};
|
|
33
33
|
}
|
|
34
34
|
ngOnInit() {
|
|
35
35
|
let opt = this.editorOptions;
|
|
36
|
-
if (typeof this.editorOptions ==
|
|
36
|
+
if (typeof this.editorOptions == 'string') {
|
|
37
37
|
opt = JSON.parse(this.editorOptions);
|
|
38
38
|
}
|
|
39
39
|
let newOptions = $.extend({}, DefaultEditorOptions, opt);
|
|
40
|
-
|
|
40
|
+
const key = AppCoreSettings.froalaEditorKey;
|
|
41
41
|
if (key) {
|
|
42
42
|
newOptions = $.extend({}, newOptions, JSON.parse('{ "key": "' + key + '" }'));
|
|
43
43
|
}
|
|
@@ -47,18 +47,18 @@ export class BaseHtmlEditorComponent extends BaseEditComponent {
|
|
|
47
47
|
this.options = newOptions;
|
|
48
48
|
}
|
|
49
49
|
ngAfterViewInit() {
|
|
50
|
-
|
|
50
|
+
const that = this;
|
|
51
51
|
setTimeout(function () {
|
|
52
52
|
that.froalaEditorInitialized = true;
|
|
53
53
|
that.onInitialized();
|
|
54
54
|
}, 300);
|
|
55
55
|
}
|
|
56
56
|
onInitialized() {
|
|
57
|
-
|
|
58
|
-
//Clear actions
|
|
57
|
+
const actions = this.afterInitializedActions;
|
|
58
|
+
// Clear actions
|
|
59
59
|
this.afterInitializedActions = [];
|
|
60
60
|
if (actions) {
|
|
61
|
-
for (
|
|
61
|
+
for (let i = 0; i < actions.length; i++) {
|
|
62
62
|
actions[i]();
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -68,9 +68,9 @@ export class BaseHtmlEditorComponent extends BaseEditComponent {
|
|
|
68
68
|
return this.froalaEditor.getEditor();
|
|
69
69
|
return null;
|
|
70
70
|
}
|
|
71
|
-
//Public Funcs
|
|
71
|
+
// Public Funcs
|
|
72
72
|
doAfterInitialized(action) {
|
|
73
|
-
|
|
73
|
+
const that = this;
|
|
74
74
|
if (!this.froalaEditorInitialized) {
|
|
75
75
|
this.afterInitializedActions.push(() => {
|
|
76
76
|
action(that);
|
|
@@ -86,8 +86,8 @@ export class BaseHtmlEditorComponent extends BaseEditComponent {
|
|
|
86
86
|
}
|
|
87
87
|
setUploadParams(uploadType, uploadParentId) {
|
|
88
88
|
this.doAfterInitialized(function (that) {
|
|
89
|
-
|
|
90
|
-
if (typeof editor ==
|
|
89
|
+
const editor = that.getEditor();
|
|
90
|
+
if (typeof editor == 'undefined' || editor == null) {
|
|
91
91
|
return;
|
|
92
92
|
}
|
|
93
93
|
editor.opts.imageUploadParams.uploadType = uploadType;
|
|
@@ -99,4 +99,4 @@ BaseHtmlEditorComponent.propDecorators = {
|
|
|
99
99
|
editorLabelText: [{ type: Input }],
|
|
100
100
|
editorOptions: [{ type: Input }]
|
|
101
101
|
};
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1odG1sLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9odG1sLWVkaXRvci9iYXNlLWh0bWwtZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixPQUFPO0FBQ1AsT0FBTyxFQUFnQixLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDM0QsU0FBUztBQUNULE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUVsRSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsaUJBQWlCO0lBYTVEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFSSCw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFDaEMsNEJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBRXBDLFNBQVM7UUFDQSxvQkFBZSxHQUFHLE1BQU0sQ0FBQztRQUN6QixrQkFBYSxHQUFXLEVBQUUsQ0FBQztJQUlwQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDN0IsSUFBSSxPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksUUFBUSxFQUFFO1lBQ3pDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUN0QztRQUVELElBQUksVUFBVSxHQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUM7UUFFNUMsSUFBSSxHQUFHLEVBQUU7WUFDUCxVQUFVLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FDbkIsRUFBRSxFQUNGLFVBQVUsRUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQ3ZDLENBQUM7U0FDSDtRQUVELElBQUksVUFBVSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTtZQUN0RCxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQ2xEO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsVUFBVSxDQUFDO1lBQ1QsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztZQUNwQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBRTdDLGdCQUFnQjtRQUNoQixJQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBRWxDLElBQUksT0FBTyxFQUFFO1lBQ1gsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ2Q7U0FDRjtJQUNILENBQUM7SUFFUyxTQUFTO1FBQ2pCLElBQUksSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFNUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZUFBZTtJQUNSLGtCQUFrQixDQUFDLE1BQU07UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWxCLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDakMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNmLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVNLGlCQUFpQixDQUFDLE9BQU87UUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sZUFBZSxDQUFDLFVBQVUsRUFBRSxjQUFjO1FBQy9DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLElBQUk7WUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksT0FBTyxNQUFNLElBQUksV0FBVyxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7Z0JBQ2xELE9BQU87YUFDUjtZQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUN0RCxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDaEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7OEJBdEZBLEtBQUs7NEJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDEyIERlYyAyMDE3XHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjAgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbi8vIEN1c3RvbVxyXG5pbXBvcnQge0FwcENvcmVTZXR0aW5nc30gZnJvbSAnLi4vLi4vLi4vY29yZS9jb25zdHMvc2V0dGluZ3MnO1xyXG5pbXBvcnQge0Jhc2VFZGl0Q29tcG9uZW50fSBmcm9tICcuLi9iYXNlLWVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtEZWZhdWx0RWRpdG9yT3B0aW9uc30gZnJvbSAnLi9odG1sLWVkaXRvci5kZWZhdWx0b3B0aW9ucyc7XHJcblxyXG5leHBvcnQgY2xhc3MgQmFzZUh0bWxFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlRWRpdENvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBwcm90ZWN0ZWQgZnJvYWxhRWRpdG9yO1xyXG5cclxuICAvLyBQdWJsaWMgbWVtYmVyc1xyXG4gIHB1YmxpYyBvcHRpb25zO1xyXG4gIHB1YmxpYyBmcm9hbGFFZGl0b3JJbml0aWFsaXplZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBhZnRlckluaXRpYWxpemVkQWN0aW9ucyA9IFtdO1xyXG5cclxuICAvLyBJbnB1dHNcclxuICBASW5wdXQoKSBlZGl0b3JMYWJlbFRleHQgPSAnSHRtbCc7XHJcbiAgQElucHV0KCkgZWRpdG9yT3B0aW9uczogT2JqZWN0ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgbGV0IG9wdCA9IHRoaXMuZWRpdG9yT3B0aW9ucztcclxuICAgIGlmICh0eXBlb2YgdGhpcy5lZGl0b3JPcHRpb25zID09ICdzdHJpbmcnKSB7XHJcbiAgICAgIG9wdCA9IEpTT04ucGFyc2UodGhpcy5lZGl0b3JPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbmV3T3B0aW9uczogYW55ID0gJC5leHRlbmQoe30sIERlZmF1bHRFZGl0b3JPcHRpb25zLCBvcHQpO1xyXG4gICAgY29uc3Qga2V5ID0gQXBwQ29yZVNldHRpbmdzLmZyb2FsYUVkaXRvcktleTtcclxuXHJcbiAgICBpZiAoa2V5KSB7XHJcbiAgICAgIG5ld09wdGlvbnMgPSAkLmV4dGVuZChcclxuICAgICAgICB7fSxcclxuICAgICAgICBuZXdPcHRpb25zLFxyXG4gICAgICAgIEpTT04ucGFyc2UoJ3sgXCJrZXlcIjogXCInICsga2V5ICsgJ1wiIH0nKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChuZXdPcHRpb25zLmV2ZW50cyAmJiBuZXdPcHRpb25zLmV2ZW50cy5pbml0aWFsaXplZCkge1xyXG4gICAgICBuZXdPcHRpb25zLmV2ZW50cy5pbml0aWFsaXplZC5vdmVycmlkZGVuID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vcHRpb25zID0gbmV3T3B0aW9ucztcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xyXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHRoYXQuZnJvYWxhRWRpdG9ySW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICB0aGF0Lm9uSW5pdGlhbGl6ZWQoKTtcclxuICAgIH0sIDMwMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uSW5pdGlhbGl6ZWQoKSB7XHJcbiAgICBjb25zdCBhY3Rpb25zID0gdGhpcy5hZnRlckluaXRpYWxpemVkQWN0aW9ucztcclxuXHJcbiAgICAvLyBDbGVhciBhY3Rpb25zXHJcbiAgICB0aGlzLmFmdGVySW5pdGlhbGl6ZWRBY3Rpb25zID0gW107XHJcblxyXG4gICAgaWYgKGFjdGlvbnMpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhY3Rpb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgYWN0aW9uc1tpXSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0RWRpdG9yKCkge1xyXG4gICAgaWYgKHRoaXMuZnJvYWxhRWRpdG9yKSByZXR1cm4gdGhpcy5mcm9hbGFFZGl0b3IuZ2V0RWRpdG9yKCk7XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLyBQdWJsaWMgRnVuY3NcclxuICBwdWJsaWMgZG9BZnRlckluaXRpYWxpemVkKGFjdGlvbikge1xyXG4gICAgY29uc3QgdGhhdCA9IHRoaXM7XHJcblxyXG4gICAgaWYgKCF0aGlzLmZyb2FsYUVkaXRvckluaXRpYWxpemVkKSB7XHJcbiAgICAgIHRoaXMuYWZ0ZXJJbml0aWFsaXplZEFjdGlvbnMucHVzaCgoKSA9PiB7XHJcbiAgICAgICAgYWN0aW9uKHRoYXQpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGFjdGlvbih0aGF0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0aWFsaXplQ29udHJvbChjb250cm9sKSB7XHJcbiAgICB0aGlzLmZyb2FsYUVkaXRvciA9IGNvbnRyb2w7XHJcbiAgICB0aGlzLmZyb2FsYUVkaXRvci5pbml0aWFsaXplKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VXBsb2FkUGFyYW1zKHVwbG9hZFR5cGUsIHVwbG9hZFBhcmVudElkKSB7XHJcbiAgICB0aGlzLmRvQWZ0ZXJJbml0aWFsaXplZChmdW5jdGlvbiAodGhhdCkge1xyXG4gICAgICBjb25zdCBlZGl0b3IgPSB0aGF0LmdldEVkaXRvcigpO1xyXG4gICAgICBpZiAodHlwZW9mIGVkaXRvciA9PSAndW5kZWZpbmVkJyB8fCBlZGl0b3IgPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgZWRpdG9yLm9wdHMuaW1hZ2VVcGxvYWRQYXJhbXMudXBsb2FkVHlwZSA9IHVwbG9hZFR5cGU7XHJcbiAgICAgIGVkaXRvci5vcHRzLmltYWdlVXBsb2FkUGFyYW1zLnVwbG9hZFBhcmVudElkID0gdXBsb2FkUGFyZW50SWQ7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
9 May 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
// Node
|
|
20
|
+
import { Component } from '@angular/core';
|
|
21
|
+
import { Subs } from '../../../core/subs';
|
|
22
|
+
import { LoadingService } from '../../../core/services/loading.service';
|
|
23
|
+
export class LoadingComponent {
|
|
24
|
+
constructor(loadingService) {
|
|
25
|
+
this.loadingService = loadingService;
|
|
26
|
+
// Private
|
|
27
|
+
this.subs = new Subs();
|
|
28
|
+
// Public
|
|
29
|
+
this.show = false;
|
|
30
|
+
}
|
|
31
|
+
ngOnInit() {
|
|
32
|
+
this.subs.sink = this.loadingService.subscribe((state) => {
|
|
33
|
+
this.show = state;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
ngOnDestroy() {
|
|
37
|
+
this.subs.unsubscribe();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
LoadingComponent.decorators = [
|
|
41
|
+
{ type: Component, args: [{
|
|
42
|
+
selector: 'anatoly-loading',
|
|
43
|
+
template: "<div *ngIf=\"show\">\r\n <span id=\"pnlLoading\" class=\"k-icon k-i-loading\"></span>\r\n</div>\r\n"
|
|
44
|
+
},] }
|
|
45
|
+
];
|
|
46
|
+
LoadingComponent.ctorParameters = () => [
|
|
47
|
+
{ type: LoadingService }
|
|
48
|
+
];
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUMsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDeEMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBTXRFLE1BQU0sT0FBTyxnQkFBZ0I7SUFPM0IsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBTmxELFVBQVU7UUFDRixTQUFJLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUVoQyxTQUFTO1FBQ1QsU0FBSSxHQUFHLEtBQUssQ0FBQztJQUdiLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQixDQUFDOzs7WUF0QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLGdIQUF1QzthQUN4Qzs7O1lBTE8sY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDkgTWF5IDIwMjBcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMCBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTdWJzfSBmcm9tICcuLi8uLi8uLi9jb3JlL3N1YnMnO1xyXG5pbXBvcnQge0xvYWRpbmdTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2xvYWRpbmcuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FuYXRvbHktbG9hZGluZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xvYWRpbmcuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2FkaW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8vIFByaXZhdGVcclxuICBwcml2YXRlIHN1YnM6IFN1YnMgPSBuZXcgU3VicygpO1xyXG5cclxuICAvLyBQdWJsaWNcclxuICBzaG93ID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9hZGluZ1NlcnZpY2U6IExvYWRpbmdTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc3Vicy5zaW5rID0gdGhpcy5sb2FkaW5nU2VydmljZS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvdyA9IHN0YXRlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3Vicy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
16 May 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
// Node
|
|
20
|
+
import { Component, Inject, Input, ViewEncapsulation } from '@angular/core';
|
|
21
|
+
import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';
|
|
22
|
+
import { DOCUMENT } from '@angular/common';
|
|
23
|
+
const SpinnerSpinKit = {
|
|
24
|
+
spinnerLine: 'spinner-line-material',
|
|
25
|
+
// ToDo
|
|
26
|
+
ChasingDots: 'spinner-chasing-dots',
|
|
27
|
+
CubeGrid: 'spinner-cube-grid',
|
|
28
|
+
DoubleBounce: 'spinner-double-bounce',
|
|
29
|
+
RotatingPlane: 'spinner-rotationg-plane',
|
|
30
|
+
SpinnerPulse: 'spinner-spinner-pulse',
|
|
31
|
+
ThreeBounce: 'spinner-three-bounce',
|
|
32
|
+
WanderingCubes: 'spinner-wandering-cubes',
|
|
33
|
+
Wave: 'spinner-wave'
|
|
34
|
+
};
|
|
35
|
+
export class SpinnerComponent {
|
|
36
|
+
constructor(router, document) {
|
|
37
|
+
this.router = router;
|
|
38
|
+
this.document = document;
|
|
39
|
+
this.isSpinnerVisible = true;
|
|
40
|
+
this.spinnerSpinKit = SpinnerSpinKit;
|
|
41
|
+
this.backgroundColor = '#007CB0';
|
|
42
|
+
this.spinner = SpinnerSpinKit.spinnerLine;
|
|
43
|
+
this.router.events.subscribe(event => {
|
|
44
|
+
if (event instanceof NavigationStart) {
|
|
45
|
+
this.isSpinnerVisible = true;
|
|
46
|
+
}
|
|
47
|
+
else if (event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError) {
|
|
48
|
+
this.isSpinnerVisible = false;
|
|
49
|
+
}
|
|
50
|
+
}, () => {
|
|
51
|
+
this.isSpinnerVisible = false;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
ngOnDestroy() {
|
|
55
|
+
this.isSpinnerVisible = false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
SpinnerComponent.decorators = [
|
|
59
|
+
{ type: Component, args: [{
|
|
60
|
+
selector: 'spinner',
|
|
61
|
+
template: "<div id=\"spinner-loader\" *ngIf=\"isSpinnerVisible\">\r\n <div class=\"loader-bg\">\r\n <div class=\"spinner-line-material\" [class.colored]=\"!backgroundColor\" *ngIf=\"spinner === spinnerSpinKit.spinnerLine\">\r\n <div class=\"spinner-child spinner-bounce1\" [style.background-color]='backgroundColor'></div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
62
|
+
encapsulation: ViewEncapsulation.None
|
|
63
|
+
},] }
|
|
64
|
+
];
|
|
65
|
+
SpinnerComponent.ctorParameters = () => [
|
|
66
|
+
{ type: Router },
|
|
67
|
+
{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
|
|
68
|
+
];
|
|
69
|
+
SpinnerComponent.propDecorators = {
|
|
70
|
+
backgroundColor: [{ type: Input }],
|
|
71
|
+
spinner: [{ type: Input }]
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFHLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxNQUFNLGNBQWMsR0FBRztJQUNyQixXQUFXLEVBQUUsdUJBQXVCO0lBRXBDLE9BQU87SUFDUCxXQUFXLEVBQUUsc0JBQXNCO0lBQ25DLFFBQVEsRUFBRSxtQkFBbUI7SUFDN0IsWUFBWSxFQUFFLHVCQUF1QjtJQUNyQyxhQUFhLEVBQUUseUJBQXlCO0lBQ3hDLFlBQVksRUFBRSx1QkFBdUI7SUFDckMsV0FBVyxFQUFFLHNCQUFzQjtJQUNuQyxjQUFjLEVBQUUseUJBQXlCO0lBQ3pDLElBQUksRUFBRSxjQUFjO0NBQ3JCLENBQUM7QUFPRixNQUFNLE9BQU8sZ0JBQWdCO0lBTzNCLFlBQW9CLE1BQWMsRUFBNEIsUUFBa0I7UUFBNUQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUE0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTmhGLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixtQkFBYyxHQUFHLGNBQWMsQ0FBQztRQUV2QixvQkFBZSxHQUFHLFNBQVMsQ0FBQztRQUM1QixZQUFPLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQztRQUc1QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxLQUFLLFlBQVksZUFBZSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2FBQzlCO2lCQUFNLElBQUksS0FBSyxZQUFZLGFBQWEsSUFBSSxLQUFLLFlBQVksZ0JBQWdCLElBQUksS0FBSyxZQUFZLGVBQWUsRUFBRTtnQkFDbEgsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQzthQUMvQjtRQUNILENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7OztZQTFCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLG9YQUF1QztnQkFDdkMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQXJCMEUsTUFBTTtZQTZCUCxRQUFRLHVCQUEzQyxNQUFNLFNBQUMsUUFBUTs7OzhCQUhuRCxLQUFLO3NCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxNiBNYXkgMjAyMFxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIwIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TmF2aWdhdGlvbkNhbmNlbCwgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvbkVycm9yLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmNvbnN0IFNwaW5uZXJTcGluS2l0ID0ge1xyXG4gIHNwaW5uZXJMaW5lOiAnc3Bpbm5lci1saW5lLW1hdGVyaWFsJyxcclxuXHJcbiAgLy8gVG9Eb1xyXG4gIENoYXNpbmdEb3RzOiAnc3Bpbm5lci1jaGFzaW5nLWRvdHMnLFxyXG4gIEN1YmVHcmlkOiAnc3Bpbm5lci1jdWJlLWdyaWQnLFxyXG4gIERvdWJsZUJvdW5jZTogJ3NwaW5uZXItZG91YmxlLWJvdW5jZScsXHJcbiAgUm90YXRpbmdQbGFuZTogJ3NwaW5uZXItcm90YXRpb25nLXBsYW5lJyxcclxuICBTcGlubmVyUHVsc2U6ICdzcGlubmVyLXNwaW5uZXItcHVsc2UnLFxyXG4gIFRocmVlQm91bmNlOiAnc3Bpbm5lci10aHJlZS1ib3VuY2UnLFxyXG4gIFdhbmRlcmluZ0N1YmVzOiAnc3Bpbm5lci13YW5kZXJpbmctY3ViZXMnLFxyXG4gIFdhdmU6ICdzcGlubmVyLXdhdmUnXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwaW5uZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGlubmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGlubmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBpc1NwaW5uZXJWaXNpYmxlID0gdHJ1ZTtcclxuICBzcGlubmVyU3BpbktpdCA9IFNwaW5uZXJTcGluS2l0O1xyXG5cclxuICBASW5wdXQoKSBiYWNrZ3JvdW5kQ29sb3IgPSAnIzAwN0NCMCc7XHJcbiAgQElucHV0KCkgc3Bpbm5lciA9IFNwaW5uZXJTcGluS2l0LnNwaW5uZXJMaW5lO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCkge1xyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xyXG4gICAgICAgIHRoaXMuaXNTcGlubmVyVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbCB8fCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcikge1xyXG4gICAgICAgIHRoaXMuaXNTcGlubmVyVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9LCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNTcGlubmVyVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTcGlubmVyVmlzaWJsZSA9IGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
26 Jun 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
// Node
|
|
20
|
+
import { Pipe } from '@angular/core';
|
|
21
|
+
export class FileSizePipe {
|
|
22
|
+
constructor() {
|
|
23
|
+
this.units = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];
|
|
24
|
+
}
|
|
25
|
+
transform(bytes = 0, precision = 0) {
|
|
26
|
+
if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes))
|
|
27
|
+
return '';
|
|
28
|
+
let unit = 0;
|
|
29
|
+
while (bytes >= 1024) {
|
|
30
|
+
bytes /= 1024;
|
|
31
|
+
unit++;
|
|
32
|
+
}
|
|
33
|
+
return bytes.toFixed(+precision) + ' ' + this.units[unit];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
FileSizePipe.decorators = [
|
|
37
|
+
{ type: Pipe, args: [{
|
|
38
|
+
name: 'filesize',
|
|
39
|
+
},] }
|
|
40
|
+
];
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXNpemUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS9waXBlcy9maWxlc2l6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUtsRCxNQUFNLE9BQU8sWUFBWTtJQUh6QjtRQUlVLFVBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFjMUQsQ0FBQztJQVpDLFNBQVMsQ0FBQyxRQUFnQixDQUFDLEVBQUUsWUFBb0IsQ0FBQztRQUNoRCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUVwRSxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFFYixPQUFPLEtBQUssSUFBSSxJQUFJLEVBQUU7WUFDcEIsS0FBSyxJQUFJLElBQUksQ0FBQztZQUNkLElBQUksRUFBRSxDQUFDO1NBQ1I7UUFFRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDOzs7WUFqQkYsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxVQUFVO2FBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjYgSnVuIDIwMjBcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMCBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnZmlsZXNpemUnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVNpemVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgcHJpdmF0ZSB1bml0cyA9IFsnQnl0ZXMnLCAnS0InLCAnTUInLCAnR0InLCAnVEInLCAnUEInXTtcclxuXHJcbiAgdHJhbnNmb3JtKGJ5dGVzOiBudW1iZXIgPSAwLCBwcmVjaXNpb246IG51bWJlciA9IDApOiBzdHJpbmcge1xyXG4gICAgaWYgKGlzTmFOKHBhcnNlRmxvYXQoU3RyaW5nKGJ5dGVzKSkpIHx8ICFpc0Zpbml0ZShieXRlcykpIHJldHVybiAnJztcclxuXHJcbiAgICBsZXQgdW5pdCA9IDA7XHJcblxyXG4gICAgd2hpbGUgKGJ5dGVzID49IDEwMjQpIHtcclxuICAgICAgYnl0ZXMgLz0gMTAyNDtcclxuICAgICAgdW5pdCsrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBieXRlcy50b0ZpeGVkKCtwcmVjaXNpb24pICsgJyAnICsgdGhpcy51bml0c1t1bml0XTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
26 Jun 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
// Node
|
|
20
|
+
import { Pipe } from "@angular/core";
|
|
21
|
+
export class ReplaceTextPipe {
|
|
22
|
+
transform(inputData, search, replacement) {
|
|
23
|
+
if (inputData) {
|
|
24
|
+
return inputData.replace(new RegExp(search, "g"), replacement);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return inputData;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
ReplaceTextPipe.decorators = [
|
|
32
|
+
{ type: Pipe, args: [{
|
|
33
|
+
name: "replaceText",
|
|
34
|
+
},] }
|
|
35
|
+
];
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS10ZXh0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvcGlwZXMvcmVwbGFjZS10ZXh0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBS3BELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFNBQVMsQ0FBQyxTQUFpQixFQUFFLE1BQWMsRUFBRSxXQUFtQjtRQUM5RCxJQUFJLFNBQVMsRUFBRTtZQUNiLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7U0FDaEU7YUFBTTtZQUNMLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQzs7O1lBVkYsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxhQUFhO2FBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjYgSnVuIDIwMjBcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMCBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogXCJyZXBsYWNlVGV4dFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwbGFjZVRleHRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKGlucHV0RGF0YTogc3RyaW5nLCBzZWFyY2g6IHN0cmluZywgcmVwbGFjZW1lbnQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoaW5wdXREYXRhKSB7XHJcbiAgICAgIHJldHVybiBpbnB1dERhdGEucmVwbGFjZShuZXcgUmVnRXhwKHNlYXJjaCwgXCJnXCIpLCByZXBsYWNlbWVudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gaW5wdXREYXRhO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
27 Oct 2019
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
// Node
|
|
20
|
+
import { Pipe } from '@angular/core';
|
|
21
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
22
|
+
export class SafeHtmlPipe {
|
|
23
|
+
constructor(sanitized) {
|
|
24
|
+
this.sanitized = sanitized;
|
|
25
|
+
}
|
|
26
|
+
transform(value) {
|
|
27
|
+
return this.sanitized.bypassSecurityTrustHtml(value);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
SafeHtmlPipe.decorators = [
|
|
31
|
+
{ type: Pipe, args: [{ name: 'safeHtml' },] }
|
|
32
|
+
];
|
|
33
|
+
SafeHtmlPipe.ctorParameters = () => [
|
|
34
|
+
{ type: DomSanitizer }
|
|
35
|
+
];
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZUh0bWwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS9waXBlcy9zYWZlSHRtbC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFJdkQsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFJLENBQUM7SUFFaEQsU0FBUyxDQUFDLEtBQUs7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7O1lBTkYsSUFBSSxTQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTs7O1lBSGxCLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyNyBPY3QgMjAxOVxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIwIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5cclxuQFBpcGUoeyBuYW1lOiAnc2FmZUh0bWwnIH0pXHJcbmV4cG9ydCBjbGFzcyBTYWZlSHRtbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplZDogRG9tU2FuaXRpemVyKSB7IH1cclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZWQuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
|