turbogui-angular 15.3.0 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/turbogui-angular.mjs +136 -315
- package/fesm2022/turbogui-angular.mjs.map +1 -1
- package/main/controller/dialog.service.d.ts +3 -1
- package/main/controller/dialog.service.d.ts.map +1 -1
- package/main/controller/globalerror.service.d.ts +1 -1
- package/main/controller/locales.service.d.ts +4 -2
- package/main/controller/locales.service.d.ts.map +1 -1
- package/main/controller/turbo-api-caller.service.d.ts +18 -0
- package/main/controller/turbo-api-caller.service.d.ts.map +1 -1
- package/main/model/classes/View.d.ts +9 -2
- package/main/model/classes/View.d.ts.map +1 -1
- package/main/view/components/busy-state-base/busy-state-base.component.d.ts.map +1 -1
- package/main/view/components/button-base/button-base.component.d.ts +1 -1
- package/main/view/components/button-container/button-container.component.d.ts.map +1 -1
- package/main/view/components/button-image/button-image.component.d.ts.map +1 -1
- package/main/view/components/dialog-base/dialog-base.component.d.ts.map +1 -1
- package/main/view/components/dialog-date-selection/dialog-date-selection.component.d.ts.map +1 -1
- package/main/view/components/dialog-error/dialog-error.component.d.ts.map +1 -1
- package/main/view/components/dialog-multiple-option/dialog-multiple-option.component.d.ts.map +1 -1
- package/main/view/components/dialog-single-input/dialog-single-input.component.d.ts.map +1 -1
- package/main/view/components/dialog-single-option/dialog-single-option.component.d.ts.map +1 -1
- package/main/view/components/dialog-single-selection-list/dialog-single-selection-list.component.d.ts.map +1 -1
- package/main/view/components/dialog-two-option/dialog-two-option.component.d.ts.map +1 -1
- package/main/view/directives/AutoFocusOnDisplayDirective.d.ts.map +1 -1
- package/main/view/directives/AutoSelectTextOnFocusDirective.d.ts.map +1 -1
- package/main/view/directives/ElementCreatedDirective.d.ts.map +1 -1
- package/main/view/directives/ElementDestroyedDirective.d.ts.map +1 -1
- package/package.json +1 -3
- package/public_api.d.ts +0 -2
- package/public_api.d.ts.map +1 -1
- package/esm2022/main/controller/browser.service.mjs +0 -51
- package/esm2022/main/controller/dialog.service.mjs +0 -406
- package/esm2022/main/controller/globalerror.service.mjs +0 -73
- package/esm2022/main/controller/http.service.mjs +0 -71
- package/esm2022/main/controller/httpservice/HTTPServiceGetRequest.mjs +0 -15
- package/esm2022/main/controller/httpservice/HTTPServicePostRequest.mjs +0 -15
- package/esm2022/main/controller/locales.service.mjs +0 -492
- package/esm2022/main/controller/notification.service.mjs +0 -61
- package/esm2022/main/controller/turbo-api-caller.service.mjs +0 -424
- package/esm2022/main/controller/views.service.mjs +0 -148
- package/esm2022/main/managers/DelayedMethodCallManager.mjs +0 -70
- package/esm2022/main/model/classes/GUINotification.mjs +0 -32
- package/esm2022/main/model/classes/SingletoneStrictClass.mjs +0 -24
- package/esm2022/main/model/classes/View.mjs +0 -24
- package/esm2022/main/model/classes/ViewService.mjs +0 -15
- package/esm2022/main/model/modules/turbogui-angular.module.mjs +0 -48
- package/esm2022/main/view/animations/fade.animation.mjs +0 -35
- package/esm2022/main/view/components/busy-state-base/busy-state-base.component.mjs +0 -38
- package/esm2022/main/view/components/button-base/button-base.component.mjs +0 -180
- package/esm2022/main/view/components/button-container/button-container.component.mjs +0 -34
- package/esm2022/main/view/components/button-image/button-image.component.mjs +0 -47
- package/esm2022/main/view/components/dialog-base/dialog-base.component.mjs +0 -56
- package/esm2022/main/view/components/dialog-date-selection/dialog-date-selection.component.mjs +0 -39
- package/esm2022/main/view/components/dialog-error/dialog-error.component.mjs +0 -48
- package/esm2022/main/view/components/dialog-multiple-option/dialog-multiple-option.component.mjs +0 -42
- package/esm2022/main/view/components/dialog-single-input/dialog-single-input.component.mjs +0 -84
- package/esm2022/main/view/components/dialog-single-option/dialog-single-option.component.mjs +0 -45
- package/esm2022/main/view/components/dialog-single-selection-list/dialog-single-selection-list.component.mjs +0 -138
- package/esm2022/main/view/components/dialog-two-option/dialog-two-option.component.mjs +0 -46
- package/esm2022/main/view/components/views-container/views-container.component.mjs +0 -70
- package/esm2022/main/view/directives/AutoFocusOnDisplayDirective.mjs +0 -39
- package/esm2022/main/view/directives/AutoSelectTextOnFocusDirective.mjs +0 -39
- package/esm2022/main/view/directives/ElementCreatedDirective.mjs +0 -42
- package/esm2022/main/view/directives/ElementDestroyedDirective.mjs +0 -42
- package/esm2022/main/view/forms/ValidatorsPlus.mjs +0 -39
- package/esm2022/public_api.mjs +0 -47
- package/esm2022/turbogui-angular.mjs +0 -5
- package/main/controller/views.service.d.ts +0 -71
- package/main/controller/views.service.d.ts.map +0 -1
- package/main/view/components/views-container/views-container.component.d.ts +0 -46
- package/main/view/components/views-container/views-container.component.d.ts.map +0 -1
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TurboGUI is A library that helps with the most common and generic UI elements and functionalities
|
|
3
|
-
*
|
|
4
|
-
* Website : -> http://www.turbogui.org
|
|
5
|
-
* License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
|
|
6
|
-
* License Url : -> http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
* CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
|
|
8
|
-
*/
|
|
9
|
-
import { Injectable } from '@angular/core';
|
|
10
|
-
import { SingletoneStrictClass } from '../model/classes/SingletoneStrictClass';
|
|
11
|
-
import { animate, style } from '@angular/animations';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "@angular/animations";
|
|
14
|
-
/**
|
|
15
|
-
* Manages adding, removing and manipulating the application views
|
|
16
|
-
*/
|
|
17
|
-
export class ViewsService extends SingletoneStrictClass {
|
|
18
|
-
constructor(animationBuilder) {
|
|
19
|
-
super(ViewsService);
|
|
20
|
-
this.animationBuilder = animationBuilder;
|
|
21
|
-
/**
|
|
22
|
-
* See getter method for docs
|
|
23
|
-
*/
|
|
24
|
-
this._loadedViewClass = null;
|
|
25
|
-
/**
|
|
26
|
-
* See setter method for docs
|
|
27
|
-
*/
|
|
28
|
-
this._viewContainerRef = null;
|
|
29
|
-
/**
|
|
30
|
-
* Contains the reference to the currently loaded view component
|
|
31
|
-
*/
|
|
32
|
-
this._currentComponentRef = null;
|
|
33
|
-
/**
|
|
34
|
-
* Flag that stores if any view is in the process of being loaded
|
|
35
|
-
*/
|
|
36
|
-
this._isLoadingView = false;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Tells if there's any view currently loaded on the application views container
|
|
40
|
-
*/
|
|
41
|
-
get isViewLoaded() {
|
|
42
|
-
return this._loadedViewClass !== null;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Stores a reference to the visual element that will be used as the container for all the views.
|
|
46
|
-
* This is automatically assigned by the tg-views-container component once it is created.
|
|
47
|
-
*
|
|
48
|
-
* @see ViewsContainerComponent for more information
|
|
49
|
-
*/
|
|
50
|
-
set viewContainerRef(ref) {
|
|
51
|
-
if (ref !== null && this._viewContainerRef !== null) {
|
|
52
|
-
throw new Error('Views container already defined. Only one views container element can exist on an application');
|
|
53
|
-
}
|
|
54
|
-
this._viewContainerRef = ref;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Create a new view instance with the specified type and add it to the current application views container. Any currently loaded
|
|
58
|
-
* view will be removed.
|
|
59
|
-
*
|
|
60
|
-
* If we push a view while another one is in the process of being loaded, the new push will be ignored.
|
|
61
|
-
*
|
|
62
|
-
* Make sure this method is called when all the visual components of the application have been created (ngAfterViewInit)
|
|
63
|
-
*
|
|
64
|
-
* @param view The classname for the view that we want to create (must extend View base class). A new angular object
|
|
65
|
-
* will be instantiated and loaded into the views container.
|
|
66
|
-
*/
|
|
67
|
-
async pushView(view) {
|
|
68
|
-
// If the loaded view is the same as the specified one, we will do nothing
|
|
69
|
-
if (this._loadedViewClass === view) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
// If a view is already being loaded, nothing to do
|
|
73
|
-
if (this._isLoadingView) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
this._isLoadingView = true;
|
|
77
|
-
// If a view is already loaded, we will unload it first
|
|
78
|
-
if (this._loadedViewClass !== null) {
|
|
79
|
-
await this.removeCurrentView();
|
|
80
|
-
}
|
|
81
|
-
// Create the new view
|
|
82
|
-
const newComponentRef = this._viewContainerRef.createComponent(view);
|
|
83
|
-
newComponentRef.changeDetectorRef.detectChanges();
|
|
84
|
-
// Set initial opacity to 0
|
|
85
|
-
newComponentRef.location.nativeElement.style.opacity = '0';
|
|
86
|
-
// Fade in the new view
|
|
87
|
-
const fadeInPlayer = this.animationBuilder.build([
|
|
88
|
-
style({ opacity: 0 }),
|
|
89
|
-
animate('300ms ease', style({ opacity: 1 }))
|
|
90
|
-
]).create(newComponentRef.location.nativeElement);
|
|
91
|
-
await new Promise((resolve) => {
|
|
92
|
-
fadeInPlayer.onDone(() => {
|
|
93
|
-
this._currentComponentRef = newComponentRef;
|
|
94
|
-
this._loadedViewClass = view;
|
|
95
|
-
this._isLoadingView = false;
|
|
96
|
-
resolve();
|
|
97
|
-
});
|
|
98
|
-
fadeInPlayer.play();
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Delete the currently loaded view from the views container, and leave it empty.
|
|
103
|
-
* If no view is currently loaded, this method will do nothing
|
|
104
|
-
*/
|
|
105
|
-
async popView() {
|
|
106
|
-
if (this._loadedViewClass !== null && this._currentComponentRef) {
|
|
107
|
-
await this.removeCurrentView();
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Aux method to remove the currently loaded view from the views container using a promise
|
|
112
|
-
*/
|
|
113
|
-
removeCurrentView() {
|
|
114
|
-
if (this._viewContainerRef === null) {
|
|
115
|
-
throw new Error('Views container not defined. Please declare a <views-container> element in your application');
|
|
116
|
-
}
|
|
117
|
-
return new Promise((resolve) => {
|
|
118
|
-
if (this._currentComponentRef) {
|
|
119
|
-
const element = this._currentComponentRef.location.nativeElement;
|
|
120
|
-
const fadeOutPlayer = this.animationBuilder.build([
|
|
121
|
-
style({ opacity: 1 }),
|
|
122
|
-
animate('300ms ease', style({ opacity: 0 }))
|
|
123
|
-
]).create(element);
|
|
124
|
-
fadeOutPlayer.onDone(() => {
|
|
125
|
-
if (this._viewContainerRef !== null) {
|
|
126
|
-
this._viewContainerRef.clear();
|
|
127
|
-
}
|
|
128
|
-
this._currentComponentRef = null;
|
|
129
|
-
this._loadedViewClass = null;
|
|
130
|
-
resolve();
|
|
131
|
-
});
|
|
132
|
-
fadeOutPlayer.play();
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
resolve();
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ViewsService, deps: [{ token: i1.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
140
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ViewsService, providedIn: 'root' }); }
|
|
141
|
-
}
|
|
142
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ViewsService, decorators: [{
|
|
143
|
-
type: Injectable,
|
|
144
|
-
args: [{
|
|
145
|
-
providedIn: 'root',
|
|
146
|
-
}]
|
|
147
|
-
}], ctorParameters: () => [{ type: i1.AnimationBuilder }] });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1cmJvZ3VpLWFuZ3VsYXIvc3JjL21haW4vY29udHJvbGxlci92aWV3cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQTBCLFVBQVUsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUd2RTs7R0FFRztBQUlILE1BQU0sT0FBTyxZQUFhLFNBQVEscUJBQXFCO0lBMkJuRCxZQUFvQixnQkFBa0M7UUFFeEQsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRkUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXhCdEQ7O1dBRUc7UUFDSyxxQkFBZ0IsR0FBc0IsSUFBSSxDQUFDO1FBR25EOztXQUVHO1FBQ0ssc0JBQWlCLEdBQTRCLElBQUksQ0FBQztRQUcxRDs7V0FFRztRQUNLLHlCQUFvQixHQUE4QixJQUFJLENBQUM7UUFHL0Q7O1dBRUc7UUFDSyxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQU0vQixDQUFDO0lBR0Q7O09BRUc7SUFDSCxJQUFJLFlBQVk7UUFFWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUdEOzs7OztPQUtHO0lBQ0gsSUFBSSxnQkFBZ0IsQ0FBQyxHQUE0QjtRQUU3QyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLElBQUksRUFBRTtZQUVqRCxNQUFNLElBQUksS0FBSyxDQUFDLCtGQUErRixDQUFDLENBQUM7U0FDcEg7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDO0lBQ2pDLENBQUM7SUFHRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFnQjtRQUUzQiwwRUFBMEU7UUFDMUUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxFQUFFO1lBRWhDLE9BQU87U0FDVjtRQUVELG1EQUFtRDtRQUNuRCxJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUM7WUFFbkIsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFFM0IsdURBQXVEO1FBQ3ZELElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksRUFBRTtZQUVoQyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQ2xDO1FBRUQsc0JBQXNCO1FBQ3RCLE1BQU0sZUFBZSxHQUFJLElBQUksQ0FBQyxpQkFBc0MsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0YsZUFBZSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRWxELDJCQUEyQjtRQUMzQixlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUUzRCx1QkFBdUI7UUFDdkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztZQUM3QyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDckIsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMvQyxDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFbEQsTUFBTSxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2hDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO2dCQUNyQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsZUFBZSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2dCQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztnQkFDNUIsT0FBTyxFQUFFLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztZQUNILFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFHRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUVULElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFFN0QsTUFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFHRDs7T0FFRztJQUNLLGlCQUFpQjtRQUVyQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLEVBQUU7WUFFakMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2RkFBNkYsQ0FBQyxDQUFDO1NBQ2xIO1FBRUQsT0FBTyxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBRWpDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO2dCQUUzQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztnQkFFakUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztvQkFDOUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUNyQixPQUFPLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUMvQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUVuQixhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFFdEIsSUFBRyxJQUFJLENBQUMsaUJBQWlCLEtBQUssSUFBSSxFQUFDO3dCQUUvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7cUJBQ2xDO29CQUVELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDO2dCQUNkLENBQUMsQ0FBQyxDQUFDO2dCQUVILGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUV4QjtpQkFBTTtnQkFFSCxPQUFPLEVBQUUsQ0FBQzthQUNiO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTFLUSxZQUFZO2tIQUFaLFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUdXJib0dVSSBpcyBBIGxpYnJhcnkgdGhhdCBoZWxwcyB3aXRoIHRoZSBtb3N0IGNvbW1vbiBhbmQgZ2VuZXJpYyBVSSBlbGVtZW50cyBhbmQgZnVuY3Rpb25hbGl0aWVzXHJcbiAqXHJcbiAqIFdlYnNpdGUgOiAtPiBodHRwOi8vd3d3LnR1cmJvZ3VpLm9yZ1xyXG4gKiBMaWNlbnNlIDogLT4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMC4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBMaWNlbnNlIFVybCA6IC0+IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKiBDb3B5UmlnaHQgOiAtPiBDb3B5cmlnaHQgMjAxOCBFZGVydG9uZSBBZHZhbmRlZCBTb2x1dGlvbnMuIGh0dHBzOi8vd3d3LmVkZXJ0b25lLmNvbVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IFR5cGUsIFZpZXdDb250YWluZXJSZWYsIEluamVjdGFibGUsIENvbXBvbmVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWaWV3IH0gZnJvbSAnLi4vbW9kZWwvY2xhc3Nlcy9WaWV3JztcclxuaW1wb3J0IHsgU2luZ2xldG9uZVN0cmljdENsYXNzIH0gZnJvbSAnLi4vbW9kZWwvY2xhc3Nlcy9TaW5nbGV0b25lU3RyaWN0Q2xhc3MnO1xuaW1wb3J0IHsgQW5pbWF0aW9uQnVpbGRlciwgYW5pbWF0ZSwgc3R5bGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxyXG5cclxuLyoqXHJcbiAqIE1hbmFnZXMgYWRkaW5nLCByZW1vdmluZyBhbmQgbWFuaXB1bGF0aW5nIHRoZSBhcHBsaWNhdGlvbiB2aWV3c1xyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFZpZXdzU2VydmljZSBleHRlbmRzIFNpbmdsZXRvbmVTdHJpY3RDbGFzcyB7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VlIGdldHRlciBtZXRob2QgZm9yIGRvY3NcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbG9hZGVkVmlld0NsYXNzOiBUeXBlPFZpZXc+IHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VlIHNldHRlciBtZXRob2QgZm9yIGRvY3NcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiB8IG51bGwgPSBudWxsO1xyXG4gICAgXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb250YWlucyB0aGUgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50bHkgbG9hZGVkIHZpZXcgY29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2N1cnJlbnRDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxWaWV3PiB8IG51bGwgPSBudWxsO1xyXG4gICAgXHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogRmxhZyB0aGF0IHN0b3JlcyBpZiBhbnkgdmlldyBpcyBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBsb2FkZWRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfaXNMb2FkaW5nVmlldyA9IGZhbHNlO1xyXG4gICAgXHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhbmltYXRpb25CdWlsZGVyOiBBbmltYXRpb25CdWlsZGVyKSB7XHJcblxyXG5cdFx0c3VwZXIoVmlld3NTZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZWxscyBpZiB0aGVyZSdzIGFueSB2aWV3IGN1cnJlbnRseSBsb2FkZWQgb24gdGhlIGFwcGxpY2F0aW9uIHZpZXdzIGNvbnRhaW5lclxyXG4gICAgICovXHJcbiAgICBnZXQgaXNWaWV3TG9hZGVkKCkge1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGVkVmlld0NsYXNzICE9PSBudWxsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0b3JlcyBhIHJlZmVyZW5jZSB0byB0aGUgdmlzdWFsIGVsZW1lbnQgdGhhdCB3aWxsIGJlIHVzZWQgYXMgdGhlIGNvbnRhaW5lciBmb3IgYWxsIHRoZSB2aWV3cy5cclxuICAgICAqIFRoaXMgaXMgYXV0b21hdGljYWxseSBhc3NpZ25lZCBieSB0aGUgdGctdmlld3MtY29udGFpbmVyIGNvbXBvbmVudCBvbmNlIGl0IGlzIGNyZWF0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHNlZSBWaWV3c0NvbnRhaW5lckNvbXBvbmVudCBmb3IgbW9yZSBpbmZvcm1hdGlvblxyXG4gICAgICovXHJcbiAgICBzZXQgdmlld0NvbnRhaW5lclJlZihyZWY6IFZpZXdDb250YWluZXJSZWYgfCBudWxsKSB7XHJcblxyXG4gICAgICAgIGlmIChyZWYgIT09IG51bGwgJiYgdGhpcy5fdmlld0NvbnRhaW5lclJlZiAhPT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdWaWV3cyBjb250YWluZXIgYWxyZWFkeSBkZWZpbmVkLiBPbmx5IG9uZSB2aWV3cyBjb250YWluZXIgZWxlbWVudCBjYW4gZXhpc3Qgb24gYW4gYXBwbGljYXRpb24nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYgPSByZWY7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlIGEgbmV3IHZpZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHR5cGUgYW5kIGFkZCBpdCB0byB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiB2aWV3cyBjb250YWluZXIuIEFueSBjdXJyZW50bHkgbG9hZGVkIFxyXG4gICAgICogdmlldyB3aWxsIGJlIHJlbW92ZWQuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHdlIHB1c2ggYSB2aWV3IHdoaWxlIGFub3RoZXIgb25lIGlzIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIGxvYWRlZCwgdGhlIG5ldyBwdXNoIHdpbGwgYmUgaWdub3JlZC5cclxuICAgICAqXHJcbiAgICAgKiBNYWtlIHN1cmUgdGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gYWxsIHRoZSB2aXN1YWwgY29tcG9uZW50cyBvZiB0aGUgYXBwbGljYXRpb24gaGF2ZSBiZWVuIGNyZWF0ZWQgKG5nQWZ0ZXJWaWV3SW5pdClcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmlldyBUaGUgY2xhc3NuYW1lIGZvciB0aGUgdmlldyB0aGF0IHdlIHdhbnQgdG8gY3JlYXRlIChtdXN0IGV4dGVuZCBWaWV3IGJhc2UgY2xhc3MpLiBBIG5ldyBhbmd1bGFyIG9iamVjdCBcclxuICAgICAqICAgICAgICB3aWxsIGJlIGluc3RhbnRpYXRlZCBhbmQgbG9hZGVkIGludG8gdGhlIHZpZXdzIGNvbnRhaW5lci5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgcHVzaFZpZXcodmlldzogVHlwZTxWaWV3Pikge1xyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIElmIHRoZSBsb2FkZWQgdmlldyBpcyB0aGUgc2FtZSBhcyB0aGUgc3BlY2lmaWVkIG9uZSwgd2Ugd2lsbCBkbyBub3RoaW5nXHJcbiAgICAgICAgaWYgKHRoaXMuX2xvYWRlZFZpZXdDbGFzcyA9PT0gdmlldykge1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAvLyBJZiBhIHZpZXcgaXMgYWxyZWFkeSBiZWluZyBsb2FkZWQsIG5vdGhpbmcgdG8gZG9cclxuICAgICAgICBpZih0aGlzLl9pc0xvYWRpbmdWaWV3KXtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5faXNMb2FkaW5nVmlldyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAvLyBJZiBhIHZpZXcgaXMgYWxyZWFkeSBsb2FkZWQsIHdlIHdpbGwgdW5sb2FkIGl0IGZpcnN0XHJcbiAgICAgICAgaWYgKHRoaXMuX2xvYWRlZFZpZXdDbGFzcyAhPT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZW1vdmVDdXJyZW50VmlldygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBuZXcgdmlld1xyXG4gICAgICAgIGNvbnN0IG5ld0NvbXBvbmVudFJlZiA9ICh0aGlzLl92aWV3Q29udGFpbmVyUmVmIGFzIFZpZXdDb250YWluZXJSZWYpLmNyZWF0ZUNvbXBvbmVudCh2aWV3KTtcclxuICAgICAgICBuZXdDb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICAvLyBTZXQgaW5pdGlhbCBvcGFjaXR5IHRvIDBcclxuICAgICAgICBuZXdDb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xyXG5cclxuICAgICAgICAvLyBGYWRlIGluIHRoZSBuZXcgdmlld1xyXG4gICAgICAgIGNvbnN0IGZhZGVJblBsYXllciA9IHRoaXMuYW5pbWF0aW9uQnVpbGRlci5idWlsZChbXHJcbiAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCB9KSxcclxuICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZScsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSlcclxuICAgICAgICBdKS5jcmVhdGUobmV3Q29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xyXG5cclxuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICBmYWRlSW5QbGF5ZXIub25Eb25lKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRDb21wb25lbnRSZWYgPSBuZXdDb21wb25lbnRSZWY7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkZWRWaWV3Q2xhc3MgPSB2aWV3O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faXNMb2FkaW5nVmlldyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgZmFkZUluUGxheWVyLnBsYXkoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWxldGUgdGhlIGN1cnJlbnRseSBsb2FkZWQgdmlldyBmcm9tIHRoZSB2aWV3cyBjb250YWluZXIsIGFuZCBsZWF2ZSBpdCBlbXB0eS5cclxuICAgICAqIElmIG5vIHZpZXcgaXMgY3VycmVudGx5IGxvYWRlZCwgdGhpcyBtZXRob2Qgd2lsbCBkbyBub3RoaW5nXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHBvcFZpZXcoKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9sb2FkZWRWaWV3Q2xhc3MgIT09IG51bGwgJiYgdGhpcy5fY3VycmVudENvbXBvbmVudFJlZikge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZW1vdmVDdXJyZW50VmlldygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEF1eCBtZXRob2QgdG8gcmVtb3ZlIHRoZSBjdXJyZW50bHkgbG9hZGVkIHZpZXcgZnJvbSB0aGUgdmlld3MgY29udGFpbmVyIHVzaW5nIGEgcHJvbWlzZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlbW92ZUN1cnJlbnRWaWV3KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLl92aWV3Q29udGFpbmVyUmVmID09PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZpZXdzIGNvbnRhaW5lciBub3QgZGVmaW5lZC4gUGxlYXNlIGRlY2xhcmUgYSA8dmlld3MtY29udGFpbmVyPiBlbGVtZW50IGluIHlvdXIgYXBwbGljYXRpb24nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRDb21wb25lbnRSZWYpIHtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2N1cnJlbnRDb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgY29uc3QgZmFkZU91dFBsYXllciA9IHRoaXMuYW5pbWF0aW9uQnVpbGRlci5idWlsZChbXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGVhc2UnLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpXHJcbiAgICAgICAgICAgICAgICBdKS5jcmVhdGUoZWxlbWVudCk7XHJcblxyXG4gICAgICAgICAgICAgICAgZmFkZU91dFBsYXllci5vbkRvbmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuX3ZpZXdDb250YWluZXJSZWYgIT09IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Q29tcG9uZW50UmVmID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sb2FkZWRWaWV3Q2xhc3MgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGZhZGVPdXRQbGF5ZXIucGxheSgpO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TurboGUI is A library that helps with the most common and generic UI elements and functionalities
|
|
3
|
-
*
|
|
4
|
-
* Website : -> http://www.turbogui.org
|
|
5
|
-
* License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
|
|
6
|
-
* License Url : -> http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
* CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Sometimes it is necessary to apply some kind of buffer to the user input for certain operations that may be executed
|
|
11
|
-
* several times but we need to capture only the latest of them into a certain period of time. This class does exactly this:
|
|
12
|
-
* we can queue as many times as we want a specific method call and only the last one will be executed under a defined window of time.
|
|
13
|
-
* So for example if a user types keys on an input, we can buffer it for x seconds and perform a request only with the last of its changes.
|
|
14
|
-
* Lots of other UI interaction usages may be interesting with this class.
|
|
15
|
-
*/
|
|
16
|
-
export class DelayedMethodCallManager {
|
|
17
|
-
/**
|
|
18
|
-
* Sometimes it is necessary to apply some kind of buffer to the user input for certain operations that may be executed
|
|
19
|
-
* several times but we need to capture only the latest of them into a certain period of time. This class does exactly this:
|
|
20
|
-
* we can queue as many times as we want a specific method call and only the last one will be executed under a defined window of time.
|
|
21
|
-
* So for example if a user types keys on an input, we can buffer it for x seconds and perform a request only with the last of its changes.
|
|
22
|
-
* Lots of other UI interaction usages may be interesting with this class.
|
|
23
|
-
*
|
|
24
|
-
* @param delay Amount of time to wait before executing the operations . Defaults to 1000 miliseconds.
|
|
25
|
-
*/
|
|
26
|
-
constructor(delay = 1000) {
|
|
27
|
-
this.delay = delay;
|
|
28
|
-
this._functionsToExecute = [];
|
|
29
|
-
this._timerIsRunning = false;
|
|
30
|
-
this._setTimeoutHandler = null;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Add a method to be called once the delay time is finished.
|
|
34
|
-
* Every time a new call to queue is performed, the delay timer is restarted. When the delay time finishes, only the
|
|
35
|
-
* last of the methods that have been pushed by call() will be executed.
|
|
36
|
-
*
|
|
37
|
-
* Use it to queue several user input operations that should be called only once in a period of time, while waiting
|
|
38
|
-
* for the user to finish his input.
|
|
39
|
-
*
|
|
40
|
-
* @param method The function that will be queued for execution after the delay time has passed
|
|
41
|
-
*/
|
|
42
|
-
queue(method) {
|
|
43
|
-
this._functionsToExecute.push(method);
|
|
44
|
-
if (this._timerIsRunning) {
|
|
45
|
-
clearTimeout(this._setTimeoutHandler);
|
|
46
|
-
}
|
|
47
|
-
this._timerIsRunning = true;
|
|
48
|
-
this._setTimeoutHandler = setTimeout(() => { this.run(); }, this.delay);
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Abort all methods that may have been pushed to this class and are waiting to be executed, so none of them
|
|
52
|
-
* is executed when the delay time finishes. Basically everything is cleared and stoped when this method is called.
|
|
53
|
-
*/
|
|
54
|
-
cancel() {
|
|
55
|
-
if (this._setTimeoutHandler !== null) {
|
|
56
|
-
clearTimeout(this._setTimeoutHandler);
|
|
57
|
-
}
|
|
58
|
-
this._functionsToExecute = [];
|
|
59
|
-
this._timerIsRunning = false;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Auxiliary function that performs the call to the latest queued method
|
|
63
|
-
*/
|
|
64
|
-
run() {
|
|
65
|
-
this._functionsToExecute.pop()();
|
|
66
|
-
this._functionsToExecute = [];
|
|
67
|
-
this._timerIsRunning = false;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVsYXllZE1ldGhvZENhbGxNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi9tYW5hZ2Vycy9EZWxheWVkTWV0aG9kQ2FsbE1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUVIOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyx3QkFBd0I7SUFZakM7Ozs7Ozs7O09BUUc7SUFDSCxZQUFvQixRQUFRLElBQUk7UUFBWixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBbEJ4Qix3QkFBbUIsR0FBZSxFQUFFLENBQUM7UUFHckMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFHeEIsdUJBQWtCLEdBQVEsSUFBSSxDQUFDO0lBY3ZDLENBQUM7SUFHRDs7Ozs7Ozs7O09BU0c7SUFDSCxLQUFLLENBQUMsTUFBa0I7UUFFcEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0QyxJQUFHLElBQUksQ0FBQyxlQUFlLEVBQUM7WUFFcEIsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFFNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFHRDs7O09BR0c7SUFDSCxNQUFNO1FBRUYsSUFBRyxJQUFJLENBQUMsa0JBQWtCLEtBQUssSUFBSSxFQUFDO1lBRWhDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN6QztRQUVELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUdEOztPQUVHO0lBQ0ssR0FBRztRQUVOLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQWlCLEVBQUUsQ0FBQztRQUVqRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1FBRTlCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUdXJib0dVSSBpcyBBIGxpYnJhcnkgdGhhdCBoZWxwcyB3aXRoIHRoZSBtb3N0IGNvbW1vbiBhbmQgZ2VuZXJpYyBVSSBlbGVtZW50cyBhbmQgZnVuY3Rpb25hbGl0aWVzXHJcbiAqXHJcbiAqIFdlYnNpdGUgOiAtPiBodHRwOi8vd3d3LnR1cmJvZ3VpLm9yZ1xyXG4gKiBMaWNlbnNlIDogLT4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMC4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBMaWNlbnNlIFVybCA6IC0+IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKiBDb3B5UmlnaHQgOiAtPiBDb3B5cmlnaHQgMjAxOCBFZGVydG9uZSBBZHZhbmRlZCBTb2x1dGlvbnMuIGh0dHBzOi8vd3d3LmVkZXJ0b25lLmNvbVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBTb21ldGltZXMgaXQgaXMgbmVjZXNzYXJ5IHRvIGFwcGx5IHNvbWUga2luZCBvZiBidWZmZXIgdG8gdGhlIHVzZXIgaW5wdXQgZm9yIGNlcnRhaW4gb3BlcmF0aW9ucyB0aGF0IG1heSBiZSBleGVjdXRlZFxyXG4gKiBzZXZlcmFsIHRpbWVzIGJ1dCB3ZSBuZWVkIHRvIGNhcHR1cmUgb25seSB0aGUgbGF0ZXN0IG9mIHRoZW0gaW50byBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFRoaXMgY2xhc3MgZG9lcyBleGFjdGx5IHRoaXM6XHJcbiAqIHdlIGNhbiBxdWV1ZSBhcyBtYW55IHRpbWVzIGFzIHdlIHdhbnQgYSBzcGVjaWZpYyBtZXRob2QgY2FsbCBhbmQgb25seSB0aGUgbGFzdCBvbmUgd2lsbCBiZSBleGVjdXRlZCB1bmRlciBhIGRlZmluZWQgd2luZG93IG9mIHRpbWUuXHJcbiAqIFNvIGZvciBleGFtcGxlIGlmIGEgdXNlciB0eXBlcyBrZXlzIG9uIGFuIGlucHV0LCB3ZSBjYW4gYnVmZmVyIGl0IGZvciB4IHNlY29uZHMgYW5kIHBlcmZvcm0gYSByZXF1ZXN0IG9ubHkgd2l0aCB0aGUgbGFzdCBvZiBpdHMgY2hhbmdlcy5cclxuICogTG90cyBvZiBvdGhlciBVSSBpbnRlcmFjdGlvbiB1c2FnZXMgbWF5IGJlIGludGVyZXN0aW5nIHdpdGggdGhpcyBjbGFzcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEZWxheWVkTWV0aG9kQ2FsbE1hbmFnZXJ7XHJcblxyXG5cclxuICAgIHByaXZhdGUgX2Z1bmN0aW9uc1RvRXhlY3V0ZTogRnVuY3Rpb25bXSA9IFtdO1xyXG5cclxuXHJcbiAgICBwcml2YXRlIF90aW1lcklzUnVubmluZyA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBcclxuICAgIHByaXZhdGUgX3NldFRpbWVvdXRIYW5kbGVyOiBhbnkgPSBudWxsO1xyXG4gICAgXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTb21ldGltZXMgaXQgaXMgbmVjZXNzYXJ5IHRvIGFwcGx5IHNvbWUga2luZCBvZiBidWZmZXIgdG8gdGhlIHVzZXIgaW5wdXQgZm9yIGNlcnRhaW4gb3BlcmF0aW9ucyB0aGF0IG1heSBiZSBleGVjdXRlZFxyXG4gICAgICogc2V2ZXJhbCB0aW1lcyBidXQgd2UgbmVlZCB0byBjYXB0dXJlIG9ubHkgdGhlIGxhdGVzdCBvZiB0aGVtIGludG8gYSBjZXJ0YWluIHBlcmlvZCBvZiB0aW1lLiBUaGlzIGNsYXNzIGRvZXMgZXhhY3RseSB0aGlzOlxyXG4gICAgICogd2UgY2FuIHF1ZXVlIGFzIG1hbnkgdGltZXMgYXMgd2Ugd2FudCBhIHNwZWNpZmljIG1ldGhvZCBjYWxsIGFuZCBvbmx5IHRoZSBsYXN0IG9uZSB3aWxsIGJlIGV4ZWN1dGVkIHVuZGVyIGEgZGVmaW5lZCB3aW5kb3cgb2YgdGltZS5cclxuICAgICAqIFNvIGZvciBleGFtcGxlIGlmIGEgdXNlciB0eXBlcyBrZXlzIG9uIGFuIGlucHV0LCB3ZSBjYW4gYnVmZmVyIGl0IGZvciB4IHNlY29uZHMgYW5kIHBlcmZvcm0gYSByZXF1ZXN0IG9ubHkgd2l0aCB0aGUgbGFzdCBvZiBpdHMgY2hhbmdlcy5cclxuICAgICAqIExvdHMgb2Ygb3RoZXIgVUkgaW50ZXJhY3Rpb24gdXNhZ2VzIG1heSBiZSBpbnRlcmVzdGluZyB3aXRoIHRoaXMgY2xhc3MuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGRlbGF5IEFtb3VudCBvZiB0aW1lIHRvIHdhaXQgYmVmb3JlIGV4ZWN1dGluZyB0aGUgb3BlcmF0aW9ucyAuIERlZmF1bHRzIHRvIDEwMDAgbWlsaXNlY29uZHMuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVsYXkgPSAxMDAwKSB7XHJcbiAgICAgICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhIG1ldGhvZCB0byBiZSBjYWxsZWQgb25jZSB0aGUgZGVsYXkgdGltZSBpcyBmaW5pc2hlZC5cclxuICAgICAqIEV2ZXJ5IHRpbWUgYSBuZXcgY2FsbCB0byBxdWV1ZSBpcyBwZXJmb3JtZWQsIHRoZSBkZWxheSB0aW1lciBpcyByZXN0YXJ0ZWQuIFdoZW4gdGhlIGRlbGF5IHRpbWUgZmluaXNoZXMsIG9ubHkgdGhlXHJcbiAgICAgKiBsYXN0IG9mIHRoZSBtZXRob2RzIHRoYXQgaGF2ZSBiZWVuIHB1c2hlZCBieSBjYWxsKCkgd2lsbCBiZSBleGVjdXRlZC5cclxuICAgICAqXHJcbiAgICAgKiBVc2UgaXQgdG8gcXVldWUgc2V2ZXJhbCB1c2VyIGlucHV0IG9wZXJhdGlvbnMgdGhhdCBzaG91bGQgYmUgY2FsbGVkIG9ubHkgb25jZSBpbiBhIHBlcmlvZCBvZiB0aW1lLCB3aGlsZSB3YWl0aW5nXHJcbiAgICAgKiBmb3IgdGhlIHVzZXIgdG8gZmluaXNoIGhpcyBpbnB1dC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gbWV0aG9kIFRoZSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgcXVldWVkIGZvciBleGVjdXRpb24gYWZ0ZXIgdGhlIGRlbGF5IHRpbWUgaGFzIHBhc3NlZFxyXG4gICAgICovXHJcbiAgICBxdWV1ZShtZXRob2Q6ICgpID0+IHZvaWQpe1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuX2Z1bmN0aW9uc1RvRXhlY3V0ZS5wdXNoKG1ldGhvZCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYodGhpcy5fdGltZXJJc1J1bm5pbmcpe1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3NldFRpbWVvdXRIYW5kbGVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIHRoaXMuX3RpbWVySXNSdW5uaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgdGhpcy5fc2V0VGltZW91dEhhbmRsZXIgPSBzZXRUaW1lb3V0KCgpID0+IHt0aGlzLnJ1bigpIH0sIHRoaXMuZGVsYXkpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQWJvcnQgYWxsIG1ldGhvZHMgdGhhdCBtYXkgaGF2ZSBiZWVuIHB1c2hlZCB0byB0aGlzIGNsYXNzIGFuZCBhcmUgd2FpdGluZyB0byBiZSBleGVjdXRlZCwgc28gbm9uZSBvZiB0aGVtXHJcbiAgICAgKiBpcyBleGVjdXRlZCB3aGVuIHRoZSBkZWxheSB0aW1lIGZpbmlzaGVzLiBCYXNpY2FsbHkgZXZlcnl0aGluZyBpcyBjbGVhcmVkIGFuZCBzdG9wZWQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQuXHJcbiAgICAgKi9cclxuICAgIGNhbmNlbCgpe1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmKHRoaXMuX3NldFRpbWVvdXRIYW5kbGVyICE9PSBudWxsKXtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9zZXRUaW1lb3V0SGFuZGxlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuX2Z1bmN0aW9uc1RvRXhlY3V0ZSA9IFtdO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuX3RpbWVySXNSdW5uaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBBdXhpbGlhcnkgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyB0aGUgY2FsbCB0byB0aGUgbGF0ZXN0IHF1ZXVlZCBtZXRob2RcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBydW4oKXtcclxuICAgICAgICBcclxuICAgICAgICAodGhpcy5fZnVuY3Rpb25zVG9FeGVjdXRlLnBvcCgpIGFzICgpID0+IHZvaWQpKCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5fZnVuY3Rpb25zVG9FeGVjdXRlID0gW107XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5fdGltZXJJc1J1bm5pbmcgPSBmYWxzZTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TurboGUI is A library that helps with the most common and generic UI elements and functionalities
|
|
3
|
-
*
|
|
4
|
-
* Website : -> http://www.turbogui.org
|
|
5
|
-
* License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
|
|
6
|
-
* License Url : -> http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
* CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Defines the data that is contained inside a GUI notification
|
|
11
|
-
*/
|
|
12
|
-
export class GUINotification {
|
|
13
|
-
constructor(name, type = '', data = null) {
|
|
14
|
-
/**
|
|
15
|
-
* The name for this notification
|
|
16
|
-
*/
|
|
17
|
-
this.name = '';
|
|
18
|
-
/**
|
|
19
|
-
* An optional type to categorize this notification in case the name is not enough
|
|
20
|
-
* to uniquely identify it
|
|
21
|
-
*/
|
|
22
|
-
this.type = '';
|
|
23
|
-
/**
|
|
24
|
-
* Additional data to send with the notification
|
|
25
|
-
*/
|
|
26
|
-
this.data = null;
|
|
27
|
-
this.name = name;
|
|
28
|
-
this.type = type;
|
|
29
|
-
this.data = data;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR1VJTm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi9tb2RlbC9jbGFzc2VzL0dVSU5vdGlmaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUg7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUd4QixZQUFZLElBQVksRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLE9BQVksSUFBSTtRQVFyRDs7V0FFRztRQUNILFNBQUksR0FBRyxFQUFFLENBQUM7UUFHVjs7O1dBR0c7UUFDSCxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBR1Y7O1dBRUc7UUFDSCxTQUFJLEdBQVEsSUFBSSxDQUFDO1FBdEJiLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7Q0FvQkoiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogVHVyYm9HVUkgaXMgQSBsaWJyYXJ5IHRoYXQgaGVscHMgd2l0aCB0aGUgbW9zdCBjb21tb24gYW5kIGdlbmVyaWMgVUkgZWxlbWVudHMgYW5kIGZ1bmN0aW9uYWxpdGllc1xyXG4gKlxyXG4gKiBXZWJzaXRlIDogLT4gaHR0cDovL3d3dy50dXJib2d1aS5vcmdcclxuICogTGljZW5zZSA6IC0+IExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuICogTGljZW5zZSBVcmwgOiAtPiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICogQ29weVJpZ2h0IDogLT4gQ29weXJpZ2h0IDIwMTggRWRlcnRvbmUgQWR2YW5kZWQgU29sdXRpb25zLiBodHRwczovL3d3dy5lZGVydG9uZS5jb21cclxuICovXHJcblxyXG4vKipcclxuICogRGVmaW5lcyB0aGUgZGF0YSB0aGF0IGlzIGNvbnRhaW5lZCBpbnNpZGUgYSBHVUkgbm90aWZpY2F0aW9uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgR1VJTm90aWZpY2F0aW9uIHtcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCB0eXBlID0gJycsIGRhdGE6IGFueSA9IG51bGwpIHtcclxuXHJcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG5hbWUgZm9yIHRoaXMgbm90aWZpY2F0aW9uXHJcbiAgICAgKi9cclxuICAgIG5hbWUgPSAnJztcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbiBvcHRpb25hbCB0eXBlIHRvIGNhdGVnb3JpemUgdGhpcyBub3RpZmljYXRpb24gaW4gY2FzZSB0aGUgbmFtZSBpcyBub3QgZW5vdWdoXHJcbiAgICAgKiB0byB1bmlxdWVseSBpZGVudGlmeSBpdFxyXG4gICAgICovXHJcbiAgICB0eXBlID0gJyc7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkaXRpb25hbCBkYXRhIHRvIHNlbmQgd2l0aCB0aGUgbm90aWZpY2F0aW9uXHJcbiAgICAgKi9cclxuICAgIGRhdGE6IGFueSA9IG51bGw7XHJcbn1cclxuIl19
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TurboGUI is A library that helps with the most common and generic UI elements and functionalities
|
|
3
|
-
*
|
|
4
|
-
* Website : -> http://www.turbogui.org
|
|
5
|
-
* License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
|
|
6
|
-
* License Url : -> http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
* CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
|
|
8
|
-
*/
|
|
9
|
-
import { inject } from "@angular/core";
|
|
10
|
-
/**
|
|
11
|
-
* Defines a base class that can be used to create singleton services which cannot be instantiated more than one time
|
|
12
|
-
* during the whole application lifetime.
|
|
13
|
-
*
|
|
14
|
-
* To use it, simply extend this class and pass the parent class type to this constructor via super()
|
|
15
|
-
*/
|
|
16
|
-
export class SingletoneStrictClass {
|
|
17
|
-
constructor(classType) {
|
|
18
|
-
const parent = inject(classType, { skipSelf: true, optional: true });
|
|
19
|
-
if (parent) {
|
|
20
|
-
throw Error(`[${classType.name}]: Can not create more than one instance`);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uZVN0cmljdENsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi9tb2RlbC9jbGFzc2VzL1NpbmdsZXRvbmVTdHJpY3RDbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUFRLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3Qzs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFFakMsWUFBWSxTQUFvQjtRQUU1QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUVwRSxJQUFJLE1BQU0sRUFBRTtZQUVSLE1BQU0sS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksMENBQTBDLENBQUMsQ0FBQztTQUM3RTtJQUNMLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUdXJib0dVSSBpcyBBIGxpYnJhcnkgdGhhdCBoZWxwcyB3aXRoIHRoZSBtb3N0IGNvbW1vbiBhbmQgZ2VuZXJpYyBVSSBlbGVtZW50cyBhbmQgZnVuY3Rpb25hbGl0aWVzXHJcbiAqXHJcbiAqIFdlYnNpdGUgOiAtPiBodHRwOi8vd3d3LnR1cmJvZ3VpLm9yZ1xyXG4gKiBMaWNlbnNlIDogLT4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMC4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBMaWNlbnNlIFVybCA6IC0+IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKiBDb3B5UmlnaHQgOiAtPiBDb3B5cmlnaHQgMjAxOCBFZGVydG9uZSBBZHZhbmRlZCBTb2x1dGlvbnMuIGh0dHBzOi8vd3d3LmVkZXJ0b25lLmNvbVxyXG4gKi9cclxuXG5pbXBvcnQgeyBUeXBlLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXHJcblxyXG4vKipcclxuICogRGVmaW5lcyBhIGJhc2UgY2xhc3MgdGhhdCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgc2luZ2xldG9uIHNlcnZpY2VzIHdoaWNoIGNhbm5vdCBiZSBpbnN0YW50aWF0ZWQgbW9yZSB0aGFuIG9uZSB0aW1lXHJcbiAqIGR1cmluZyB0aGUgd2hvbGUgYXBwbGljYXRpb24gbGlmZXRpbWUuXHJcbiAqIFxyXG4gKiBUbyB1c2UgaXQsIHNpbXBseSBleHRlbmQgdGhpcyBjbGFzcyBhbmQgcGFzcyB0aGUgcGFyZW50IGNsYXNzIHR5cGUgdG8gdGhpcyBjb25zdHJ1Y3RvciB2aWEgc3VwZXIoKSBcclxuICovXHJcbmV4cG9ydCBjbGFzcyBTaW5nbGV0b25lU3RyaWN0Q2xhc3Mge1xyXG4gICAgXHJcblx0Y29uc3RydWN0b3IoY2xhc3NUeXBlOiBUeXBlPGFueT4pIHtcclxuXHRcdFxyXG5cdCAgICBjb25zdCBwYXJlbnQgPSBpbmplY3QoY2xhc3NUeXBlLCB7IHNraXBTZWxmOiB0cnVlLCBvcHRpb25hbDogdHJ1ZX0pO1xyXG5cdCAgICBcclxuXHQgICAgaWYgKHBhcmVudCkge1xyXG5cdFx0XHRcclxuXHQgICAgICAgIHRocm93IEVycm9yKGBbJHtjbGFzc1R5cGUubmFtZX1dOiBDYW4gbm90IGNyZWF0ZSBtb3JlIHRoYW4gb25lIGluc3RhbmNlYCk7XHJcblx0ICAgIH1cclxuXHR9XHJcbn1cclxuIl19
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TurboGUI is A library that helps with the most common and generic UI elements and functionalities
|
|
3
|
-
*
|
|
4
|
-
* Website : -> http://www.turbogui.org
|
|
5
|
-
* License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
|
|
6
|
-
* License Url : -> http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
* CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Defines an application view.
|
|
11
|
-
* Our View components must extend this class so they can be manipulated via ViewsService and be correctly linked to a views-container.
|
|
12
|
-
*/
|
|
13
|
-
export class View {
|
|
14
|
-
/**
|
|
15
|
-
* This constructor is specifically designed to force the view to set the viewContainerRef which will be automatically assigned
|
|
16
|
-
* to the respective view service. If the view has no service, we can set it to null.
|
|
17
|
-
*/
|
|
18
|
-
constructor(viewContainerRef, viewService) {
|
|
19
|
-
if (viewService !== null) {
|
|
20
|
-
viewService.viewContainerRef = viewContainerRef;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1cmJvZ3VpLWFuZ3VsYXIvc3JjL21haW4vbW9kZWwvY2xhc3Nlcy9WaWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFNSDs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLElBQUk7SUFHekI7OztPQUdHO0lBQ0gsWUFBWSxnQkFBa0MsRUFBRSxXQUE0QjtRQUUzRSxJQUFHLFdBQVcsS0FBSyxJQUFJLEVBQUM7WUFFdkIsV0FBVyxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1NBQ2hEO0lBQ0YsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cbmltcG9ydCB7IFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVmlld1NlcnZpY2UgfSBmcm9tIFwiLi9WaWV3U2VydmljZVwiO1xuXHJcblxyXG4vKipcclxuICogRGVmaW5lcyBhbiBhcHBsaWNhdGlvbiB2aWV3LlxyXG4gKiBPdXIgVmlldyBjb21wb25lbnRzIG11c3QgZXh0ZW5kIHRoaXMgY2xhc3Mgc28gdGhleSBjYW4gYmUgbWFuaXB1bGF0ZWQgdmlhIFZpZXdzU2VydmljZSBhbmQgYmUgY29ycmVjdGx5IGxpbmtlZCB0byBhIHZpZXdzLWNvbnRhaW5lci5cclxuICovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWaWV3IHtcclxuXHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoaXMgY29uc3RydWN0b3IgaXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGZvcmNlIHRoZSB2aWV3IHRvIHNldCB0aGUgdmlld0NvbnRhaW5lclJlZiB3aGljaCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgYXNzaWduZWRcclxuXHQgKiB0byB0aGUgcmVzcGVjdGl2ZSB2aWV3IHNlcnZpY2UuIElmIHRoZSB2aWV3IGhhcyBubyBzZXJ2aWNlLCB3ZSBjYW4gc2V0IGl0IHRvIG51bGwuXHJcblx0ICovXHJcblx0Y29uc3RydWN0b3Iodmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgdmlld1NlcnZpY2U6Vmlld1NlcnZpY2V8bnVsbCkge1xyXG5cdFxyXG5cdFx0aWYodmlld1NlcnZpY2UgIT09IG51bGwpe1xyXG5cdFx0XHRcclxuXHRcdFx0dmlld1NlcnZpY2Uudmlld0NvbnRhaW5lclJlZiA9IHZpZXdDb250YWluZXJSZWY7XHJcblx0XHR9XHRcclxuXHR9XHJcbn1cclxuIl19
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TurboGUI is A library that helps with the most common and generic UI elements and functionalities
|
|
3
|
-
*
|
|
4
|
-
* Website : -> http://www.turbogui.org
|
|
5
|
-
* License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
|
|
6
|
-
* License Url : -> http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
* CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Defines a service that is attached to an application view.
|
|
11
|
-
* All our service components that are linked to a view must extend this class so they can be correctly initialized at the view constructor.
|
|
12
|
-
*/
|
|
13
|
-
export class ViewService {
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlld1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dXJib2d1aS1hbmd1bGFyL3NyYy9tYWluL21vZGVsL2NsYXNzZXMvVmlld1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUtIOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsV0FBVztDQU9oQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUdXJib0dVSSBpcyBBIGxpYnJhcnkgdGhhdCBoZWxwcyB3aXRoIHRoZSBtb3N0IGNvbW1vbiBhbmQgZ2VuZXJpYyBVSSBlbGVtZW50cyBhbmQgZnVuY3Rpb25hbGl0aWVzXHJcbiAqXHJcbiAqIFdlYnNpdGUgOiAtPiBodHRwOi8vd3d3LnR1cmJvZ3VpLm9yZ1xyXG4gKiBMaWNlbnNlIDogLT4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMC4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBMaWNlbnNlIFVybCA6IC0+IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKiBDb3B5UmlnaHQgOiAtPiBDb3B5cmlnaHQgMjAxOCBFZGVydG9uZSBBZHZhbmRlZCBTb2x1dGlvbnMuIGh0dHBzOi8vd3d3LmVkZXJ0b25lLmNvbVxyXG4gKi9cclxuXG5pbXBvcnQgeyBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxyXG5cclxuLyoqXHJcbiAqIERlZmluZXMgYSBzZXJ2aWNlIHRoYXQgaXMgYXR0YWNoZWQgdG8gYW4gYXBwbGljYXRpb24gdmlldy5cclxuICogQWxsIG91ciBzZXJ2aWNlIGNvbXBvbmVudHMgdGhhdCBhcmUgbGlua2VkIHRvIGEgdmlldyBtdXN0IGV4dGVuZCB0aGlzIGNsYXNzIHNvIHRoZXkgY2FuIGJlIGNvcnJlY3RseSBpbml0aWFsaXplZCBhdCB0aGUgdmlldyBjb25zdHJ1Y3Rvci5cclxuICovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWaWV3U2VydmljZSB7XHJcblxyXG5cclxuXHQvKipcclxuXHQgKiBBIHJlZmVyZW5jZSB0byB0aGUgdmlldyBjb250YWluZXIgcmVmIHdoaWNoIGlzIG5lY2Vzc2FyeSB0byBwcm9wYWdhdGUgdGhlIHZpZXcgcHJvdmlkZXJzIGFuZCBzZXJ2aWNlcyB0byByZWxhdGVkIGRpYWxvZ3NcclxuXHQgKi9cclxuICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XHRcclxufVxyXG4iXX0=
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TurboGUI is A library that helps with the most common and generic UI elements and functionalities
|
|
3
|
-
*
|
|
4
|
-
* Website : -> http://www.turbogui.org
|
|
5
|
-
* License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
|
|
6
|
-
* License Url : -> http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
* CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
|
|
8
|
-
*/
|
|
9
|
-
import { NgModule } from '@angular/core';
|
|
10
|
-
import { ElementCreatedDirective } from '../../view/directives/ElementCreatedDirective';
|
|
11
|
-
import { ElementDestroyedDirective } from '../../view/directives/ElementDestroyedDirective';
|
|
12
|
-
import { AutoFocusOnDisplayDirective } from '../../view/directives/AutoFocusOnDisplayDirective';
|
|
13
|
-
import { AutoSelectTextOnFocusDirective } from '../../view/directives/AutoSelectTextOnFocusDirective';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
/**
|
|
16
|
-
* This file contains the root module that contains all the library declarations and exports.
|
|
17
|
-
*/
|
|
18
|
-
export class TurboGuiAngularModule {
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TurboGuiAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
20
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: TurboGuiAngularModule, declarations: [ElementCreatedDirective,
|
|
21
|
-
ElementDestroyedDirective,
|
|
22
|
-
AutoFocusOnDisplayDirective,
|
|
23
|
-
AutoSelectTextOnFocusDirective], exports: [ElementCreatedDirective,
|
|
24
|
-
ElementDestroyedDirective,
|
|
25
|
-
AutoFocusOnDisplayDirective,
|
|
26
|
-
AutoSelectTextOnFocusDirective] }); }
|
|
27
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TurboGuiAngularModule }); }
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TurboGuiAngularModule, decorators: [{
|
|
30
|
-
type: NgModule,
|
|
31
|
-
args: [{
|
|
32
|
-
imports: [],
|
|
33
|
-
declarations: [
|
|
34
|
-
ElementCreatedDirective,
|
|
35
|
-
ElementDestroyedDirective,
|
|
36
|
-
AutoFocusOnDisplayDirective,
|
|
37
|
-
AutoSelectTextOnFocusDirective
|
|
38
|
-
],
|
|
39
|
-
providers: [],
|
|
40
|
-
exports: [
|
|
41
|
-
ElementCreatedDirective,
|
|
42
|
-
ElementDestroyedDirective,
|
|
43
|
-
AutoFocusOnDisplayDirective,
|
|
44
|
-
AutoSelectTextOnFocusDirective
|
|
45
|
-
]
|
|
46
|
-
}]
|
|
47
|
-
}] });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVyYm9ndWktYW5ndWxhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dXJib2d1aS1hbmd1bGFyL3NyYy9tYWluL21vZGVsL21vZHVsZXMvdHVyYm9ndWktYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDaEcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0RBQXNELENBQUM7O0FBR3RHOztHQUVHO0FBd0JILE1BQU0sT0FBTyxxQkFBcUI7OEdBQXJCLHFCQUFxQjsrR0FBckIscUJBQXFCLGlCQWpCMUIsdUJBQXVCO1lBQ3ZCLHlCQUF5QjtZQUN6QiwyQkFBMkI7WUFDM0IsOEJBQThCLGFBTzlCLHVCQUF1QjtZQUN2Qix5QkFBeUI7WUFDekIsMkJBQTJCO1lBQzNCLDhCQUE4QjsrR0FJekIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQXZCakMsUUFBUTttQkFBQztvQkFFTixPQUFPLEVBQUUsRUFDUjtvQkFFRCxZQUFZLEVBQUU7d0JBQ1YsdUJBQXVCO3dCQUN2Qix5QkFBeUI7d0JBQ3pCLDJCQUEyQjt3QkFDM0IsOEJBQThCO3FCQUNqQztvQkFFRCxTQUFTLEVBQUUsRUFDVjtvQkFFRCxPQUFPLEVBQUU7d0JBQ0wsdUJBQXVCO3dCQUN2Qix5QkFBeUI7d0JBQ3pCLDJCQUEyQjt3QkFDM0IsOEJBQThCO3FCQUNqQztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUdXJib0dVSSBpcyBBIGxpYnJhcnkgdGhhdCBoZWxwcyB3aXRoIHRoZSBtb3N0IGNvbW1vbiBhbmQgZ2VuZXJpYyBVSSBlbGVtZW50cyBhbmQgZnVuY3Rpb25hbGl0aWVzXHJcbiAqXHJcbiAqIFdlYnNpdGUgOiAtPiBodHRwOi8vd3d3LnR1cmJvZ3VpLm9yZ1xyXG4gKiBMaWNlbnNlIDogLT4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMC4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBMaWNlbnNlIFVybCA6IC0+IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKiBDb3B5UmlnaHQgOiAtPiBDb3B5cmlnaHQgMjAxOCBFZGVydG9uZSBBZHZhbmRlZCBTb2x1dGlvbnMuIGh0dHBzOi8vd3d3LmVkZXJ0b25lLmNvbVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRDcmVhdGVkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdmlldy9kaXJlY3RpdmVzL0VsZW1lbnRDcmVhdGVkRGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRWxlbWVudERlc3Ryb3llZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3ZpZXcvZGlyZWN0aXZlcy9FbGVtZW50RGVzdHJveWVkRGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQXV0b0ZvY3VzT25EaXNwbGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdmlldy9kaXJlY3RpdmVzL0F1dG9Gb2N1c09uRGlzcGxheURpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEF1dG9TZWxlY3RUZXh0T25Gb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3ZpZXcvZGlyZWN0aXZlcy9BdXRvU2VsZWN0VGV4dE9uRm9jdXNEaXJlY3RpdmUnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIHJvb3QgbW9kdWxlIHRoYXQgY29udGFpbnMgYWxsIHRoZSBsaWJyYXJ5IGRlY2xhcmF0aW9ucyBhbmQgZXhwb3J0cy5cclxuICovXHJcbkBOZ01vZHVsZSh7XHJcblxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgXSxcclxuXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBFbGVtZW50Q3JlYXRlZERpcmVjdGl2ZSxcclxuICAgICAgICBFbGVtZW50RGVzdHJveWVkRGlyZWN0aXZlLFxyXG4gICAgICAgIEF1dG9Gb2N1c09uRGlzcGxheURpcmVjdGl2ZSxcclxuICAgICAgICBBdXRvU2VsZWN0VGV4dE9uRm9jdXNEaXJlY3RpdmVcclxuICAgIF0sXHJcblxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICBdLFxyXG5cclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBFbGVtZW50Q3JlYXRlZERpcmVjdGl2ZSxcclxuICAgICAgICBFbGVtZW50RGVzdHJveWVkRGlyZWN0aXZlLFxyXG4gICAgICAgIEF1dG9Gb2N1c09uRGlzcGxheURpcmVjdGl2ZSxcclxuICAgICAgICBBdXRvU2VsZWN0VGV4dE9uRm9jdXNEaXJlY3RpdmVcclxuICAgIF1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBUdXJib0d1aUFuZ3VsYXJNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TurboGUI is A library that helps with the most common and generic UI elements and functionalities
|
|
3
|
-
*
|
|
4
|
-
* Website : -> http://www.turbogui.org
|
|
5
|
-
* License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
|
|
6
|
-
* License Url : -> http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
* CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
|
|
8
|
-
*/
|
|
9
|
-
import { Injectable } from '@angular/core';
|
|
10
|
-
import { trigger, animate, transition, style } from '@angular/animations';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
/**
|
|
13
|
-
* Fade animations
|
|
14
|
-
*/
|
|
15
|
-
export class FadeAnimationClass {
|
|
16
|
-
/**
|
|
17
|
-
* Get a custom trigger to create fade animations when components are added or removed from the application
|
|
18
|
-
*
|
|
19
|
-
* @param triggerName The name for the trigger we want to create
|
|
20
|
-
* @param enter The time and easing that we want to use for the enter state
|
|
21
|
-
* @param leave The time and easing that we want to use for the leave state
|
|
22
|
-
*/
|
|
23
|
-
static getTrigger(triggerName, enter = '1s ease', leave = '300ms ease') {
|
|
24
|
-
return trigger(triggerName, [
|
|
25
|
-
transition('void => *', [style({ opacity: 0 }), animate(enter, style({ opacity: 1 }))]),
|
|
26
|
-
transition('* => void', [animate(leave, style({ opacity: 0 }))])
|
|
27
|
-
]);
|
|
28
|
-
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FadeAnimationClass, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FadeAnimationClass }); }
|
|
31
|
-
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FadeAnimationClass, decorators: [{
|
|
33
|
-
type: Injectable
|
|
34
|
-
}] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFkZS5hbmltYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dXJib2d1aS1hbmd1bGFyL3NyYy9tYWluL3ZpZXcvYW5pbWF0aW9ucy9mYWRlLmFuaW1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRzFFOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUUzQjs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQW1CLEVBQUUsS0FBSyxHQUFHLFNBQVMsRUFBRSxLQUFLLEdBQUcsWUFBWTtRQUUxRSxPQUFPLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckYsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlELENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQWZRLGtCQUFrQjtrSEFBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0cmlnZ2VyLCBhbmltYXRlLCB0cmFuc2l0aW9uLCBzdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBGYWRlIGFuaW1hdGlvbnNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEZhZGVBbmltYXRpb25DbGFzcyB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgYSBjdXN0b20gdHJpZ2dlciB0byBjcmVhdGUgZmFkZSBhbmltYXRpb25zIHdoZW4gY29tcG9uZW50cyBhcmUgYWRkZWQgb3IgcmVtb3ZlZCBmcm9tIHRoZSBhcHBsaWNhdGlvblxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB0cmlnZ2VyTmFtZSBUaGUgbmFtZSBmb3IgdGhlIHRyaWdnZXIgd2Ugd2FudCB0byBjcmVhdGVcclxuICAgICAqIEBwYXJhbSBlbnRlciBUaGUgdGltZSBhbmQgZWFzaW5nIHRoYXQgd2Ugd2FudCB0byB1c2UgZm9yIHRoZSBlbnRlciBzdGF0ZVxyXG4gICAgICogQHBhcmFtIGxlYXZlIFRoZSB0aW1lIGFuZCBlYXNpbmcgdGhhdCB3ZSB3YW50IHRvIHVzZSBmb3IgdGhlIGxlYXZlIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRUcmlnZ2VyKHRyaWdnZXJOYW1lOiBzdHJpbmcsIGVudGVyID0gJzFzIGVhc2UnLCBsZWF2ZSA9ICczMDBtcyBlYXNlJykge1xyXG5cclxuICAgICAgICByZXR1cm4gdHJpZ2dlcih0cmlnZ2VyTmFtZSwgW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgW3N0eWxlKHtvcGFjaXR5OiAwfSksIGFuaW1hdGUoZW50ZXIsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSldKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24oJyogPT4gdm9pZCcsIFthbmltYXRlKGxlYXZlLCBzdHlsZSh7b3BhY2l0eTogMH0pKV0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TurboGUI is A library that helps with the most common and generic UI elements and functionalities
|
|
3
|
-
*
|
|
4
|
-
* Website : -> http://www.turbogui.org
|
|
5
|
-
* License : -> Licensed under the Apache License, Version 2.0. You may not use this file except in compliance with the License.
|
|
6
|
-
* License Url : -> http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
* CopyRight : -> Copyright 2018 Edertone Advanded Solutions. https://www.edertone.com
|
|
8
|
-
*/
|
|
9
|
-
import { Component, HostBinding } from '@angular/core';
|
|
10
|
-
import { FadeAnimationClass } from '../../animations/fade.animation';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
/**
|
|
13
|
-
* This component is used by turboGUI angular library to show the busy state to the user.
|
|
14
|
-
* It is used to block all the user input and progressively shows a busy cursor to notify that the application
|
|
15
|
-
* is waiting for something.
|
|
16
|
-
*
|
|
17
|
-
* We can (should) override this component with our own one to adapt its visual appearance to our application.
|
|
18
|
-
* We can then set dialogService.busyStateComponentClass to our component class at the application start to to
|
|
19
|
-
* override the default one.
|
|
20
|
-
*/
|
|
21
|
-
export class BusyStateBaseComponent {
|
|
22
|
-
constructor() {
|
|
23
|
-
/**
|
|
24
|
-
* This is used to attach the fade animation directly to this component so it fades in and out when created and removed from the app
|
|
25
|
-
*/
|
|
26
|
-
this.busyStateBaseFade = true;
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: BusyStateBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: BusyStateBaseComponent, isStandalone: true, selector: "tg-busy-state-base", host: { properties: { "@busyStateBaseFade": "this.busyStateBaseFade" } }, providers: [], ngImport: i0, template: "<div class=\"darkBg\">\r\n\r\n</div>\r\n\r\n<svg width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" xmlns=\"http://www.w3.org/2000/svg\" stroke=\"#fff\">\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <g transform=\"translate(1 1)\" stroke-width=\"1\">\r\n <circle stroke-opacity=\".2\" cx=\"18\" cy=\"18\" r=\"18\"/>\r\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"rotate\"\r\n from=\"0 18 18\"\r\n to=\"360 18 18\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"/>\r\n </path>\r\n </g>\r\n </g>\r\n</svg>\r\n", styles: [":host{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;z-index:999999999}.darkBg{position:absolute;cursor:progress;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:#00000096;animation-name:bgfadein;animation-duration:30s;animation-timing-function:ease}svg{z-index:5000;width:40%;height:40%;max-width:130px;max-height:130px;animation-name:loadingfadein;animation-duration:3s;animation-timing-function:ease-in}@keyframes loadingfadein{0%{opacity:0}25%{opacity:0}to{opacity:1}}@keyframes bgfadein{0%{opacity:0}4%{opacity:0}14%{opacity:.2}35%{opacity:.5}to{opacity:1}}\n"], animations: [FadeAnimationClass.getTrigger('busyStateBaseFade', '1s ease', '400ms ease')] }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: BusyStateBaseComponent, decorators: [{
|
|
32
|
-
type: Component,
|
|
33
|
-
args: [{ selector: 'tg-busy-state-base', standalone: true, imports: [], providers: [], animations: [FadeAnimationClass.getTrigger('busyStateBaseFade', '1s ease', '400ms ease')], template: "<div class=\"darkBg\">\r\n\r\n</div>\r\n\r\n<svg width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" xmlns=\"http://www.w3.org/2000/svg\" stroke=\"#fff\">\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <g transform=\"translate(1 1)\" stroke-width=\"1\">\r\n <circle stroke-opacity=\".2\" cx=\"18\" cy=\"18\" r=\"18\"/>\r\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"rotate\"\r\n from=\"0 18 18\"\r\n to=\"360 18 18\"\r\n dur=\"1s\"\r\n repeatCount=\"indefinite\"/>\r\n </path>\r\n </g>\r\n </g>\r\n</svg>\r\n", styles: [":host{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;z-index:999999999}.darkBg{position:absolute;cursor:progress;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:#00000096;animation-name:bgfadein;animation-duration:30s;animation-timing-function:ease}svg{z-index:5000;width:40%;height:40%;max-width:130px;max-height:130px;animation-name:loadingfadein;animation-duration:3s;animation-timing-function:ease-in}@keyframes loadingfadein{0%{opacity:0}25%{opacity:0}to{opacity:1}}@keyframes bgfadein{0%{opacity:0}4%{opacity:0}14%{opacity:.2}35%{opacity:.5}to{opacity:1}}\n"] }]
|
|
34
|
-
}], propDecorators: { busyStateBaseFade: [{
|
|
35
|
-
type: HostBinding,
|
|
36
|
-
args: ['@busyStateBaseFade']
|
|
37
|
-
}] } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzeS1zdGF0ZS1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1cmJvZ3VpLWFuZ3VsYXIvc3JjL21haW4vdmlldy9jb21wb25lbnRzL2J1c3ktc3RhdGUtYmFzZS9idXN5LXN0YXRlLWJhc2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi92aWV3L2NvbXBvbmVudHMvYnVzeS1zdGF0ZS1iYXNlL2J1c3ktc3RhdGUtYmFzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBY3JFOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQXBCbkM7UUF1Qkk7O1dBRUc7UUFDZ0Msc0JBQWlCLEdBQUcsSUFBSSxDQUFDO0tBQy9EOzhHQVBZLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDJJQWhCdkIsRUFBRSwwQkNqQmQsaXZCQW9CQSw2cEJERGUsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDOzsyRkFjL0Usc0JBQXNCO2tCQXBCbEMsU0FBUzsrQkFDRyxvQkFBb0IsY0FDbEIsSUFBSSxXQUNULEVBQUUsYUFDQSxFQUFFLGNBRUMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDOzhCQW9CckQsaUJBQWlCO3NCQUFuRCxXQUFXO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUdXJib0dVSSBpcyBBIGxpYnJhcnkgdGhhdCBoZWxwcyB3aXRoIHRoZSBtb3N0IGNvbW1vbiBhbmQgZ2VuZXJpYyBVSSBlbGVtZW50cyBhbmQgZnVuY3Rpb25hbGl0aWVzXHJcbiAqXHJcbiAqIFdlYnNpdGUgOiAtPiBodHRwOi8vd3d3LnR1cmJvZ3VpLm9yZ1xyXG4gKiBMaWNlbnNlIDogLT4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMC4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBMaWNlbnNlIFVybCA6IC0+IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKiBDb3B5UmlnaHQgOiAtPiBDb3B5cmlnaHQgMjAxOCBFZGVydG9uZSBBZHZhbmRlZCBTb2x1dGlvbnMuIGh0dHBzOi8vd3d3LmVkZXJ0b25lLmNvbVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmFkZUFuaW1hdGlvbkNsYXNzIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9ucy9mYWRlLmFuaW1hdGlvbic7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgXHRzZWxlY3RvcjogJ3RnLWJ1c3ktc3RhdGUtYmFzZScsXHJcbiAgXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtdLFxyXG5cdHByb3ZpZGVyczogW10sXHJcbiAgXHR0ZW1wbGF0ZVVybDogJy4vYnVzeS1zdGF0ZS1iYXNlLmNvbXBvbmVudC5odG1sJyxcclxuICBcdGFuaW1hdGlvbnM6IFtGYWRlQW5pbWF0aW9uQ2xhc3MuZ2V0VHJpZ2dlcignYnVzeVN0YXRlQmFzZUZhZGUnLCAnMXMgZWFzZScsICc0MDBtcyBlYXNlJyldLFxyXG4gIFx0c3R5bGVVcmxzOiBbJy4vYnVzeS1zdGF0ZS1iYXNlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuXHJcblxyXG4vKipcclxuICogVGhpcyBjb21wb25lbnQgaXMgdXNlZCBieSB0dXJib0dVSSBhbmd1bGFyIGxpYnJhcnkgdG8gc2hvdyB0aGUgYnVzeSBzdGF0ZSB0byB0aGUgdXNlci5cclxuICogSXQgaXMgdXNlZCB0byBibG9jayBhbGwgdGhlIHVzZXIgaW5wdXQgYW5kIHByb2dyZXNzaXZlbHkgc2hvd3MgYSBidXN5IGN1cnNvciB0byBub3RpZnkgdGhhdCB0aGUgYXBwbGljYXRpb25cclxuICogaXMgd2FpdGluZyBmb3Igc29tZXRoaW5nLlxyXG4gKlxyXG4gKiBXZSBjYW4gKHNob3VsZCkgb3ZlcnJpZGUgdGhpcyBjb21wb25lbnQgd2l0aCBvdXIgb3duIG9uZSB0byBhZGFwdCBpdHMgdmlzdWFsIGFwcGVhcmFuY2UgdG8gb3VyIGFwcGxpY2F0aW9uLlxyXG4gKiBXZSBjYW4gdGhlbiBzZXQgZGlhbG9nU2VydmljZS5idXN5U3RhdGVDb21wb25lbnRDbGFzcyB0byBvdXIgY29tcG9uZW50IGNsYXNzIGF0IHRoZSBhcHBsaWNhdGlvbiBzdGFydCB0byB0b1xyXG4gKiBvdmVycmlkZSB0aGUgZGVmYXVsdCBvbmUuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQnVzeVN0YXRlQmFzZUNvbXBvbmVudCB7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBpcyB1c2VkIHRvIGF0dGFjaCB0aGUgZmFkZSBhbmltYXRpb24gZGlyZWN0bHkgdG8gdGhpcyBjb21wb25lbnQgc28gaXQgZmFkZXMgaW4gYW5kIG91dCB3aGVuIGNyZWF0ZWQgYW5kIHJlbW92ZWQgZnJvbSB0aGUgYXBwXHJcbiAgICAgKi9cclxuICAgIEBIb3N0QmluZGluZygnQGJ1c3lTdGF0ZUJhc2VGYWRlJykgYnVzeVN0YXRlQmFzZUZhZGUgPSB0cnVlO1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkYXJrQmdcIj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPHN2ZyB3aWR0aD1cIjM4XCIgaGVpZ2h0PVwiMzhcIiB2aWV3Qm94PVwiMCAwIDM4IDM4XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHN0cm9rZT1cIiNmZmZcIj5cclxuICAgIDxnIGZpbGw9XCJub25lXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxyXG4gICAgICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxIDEpXCIgc3Ryb2tlLXdpZHRoPVwiMVwiPlxyXG4gICAgICAgICAgICA8Y2lyY2xlIHN0cm9rZS1vcGFjaXR5PVwiLjJcIiBjeD1cIjE4XCIgY3k9XCIxOFwiIHI9XCIxOFwiLz5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0zNiAxOGMwLTkuOTQtOC4wNi0xOC0xOC0xOFwiPlxyXG4gICAgICAgICAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm1cclxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwicm90YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBmcm9tPVwiMCAxOCAxOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdG89XCIzNjAgMTggMThcIlxyXG4gICAgICAgICAgICAgICAgICAgIGR1cj1cIjFzXCJcclxuICAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIi8+XHJcbiAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICA8L2c+XHJcbiAgICA8L2c+XHJcbjwvc3ZnPlxyXG4iXX0=
|