turbogui-angular 7.0.0 → 8.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/esm2020/main/controller/browser.service.mjs +48 -0
- package/esm2020/main/controller/dialog.service.mjs +324 -0
- package/esm2020/main/controller/globalerror.service.mjs +68 -0
- package/esm2020/main/controller/http.service.mjs +70 -0
- package/esm2020/main/controller/localization.service.mjs +22 -0
- package/esm2020/main/controller/notification.service.mjs +56 -0
- package/esm2020/main/controller/user.service.mjs +124 -0
- package/esm2020/main/controller/views.service.mjs +113 -0
- package/esm2020/main/model/modules/turbogui-angular.module.mjs +142 -0
- package/esm2020/main/view/animations/fade.animation.mjs +35 -0
- package/esm2020/main/view/components/busy-state-base/busy-state-base.component.mjs +38 -0
- package/esm2020/main/view/components/button-base/button-base.component.mjs +180 -0
- package/esm2020/main/view/components/button-container/button-container.component.mjs +34 -0
- package/esm2020/main/view/components/button-image/button-image.component.mjs +47 -0
- package/esm2020/main/view/components/dialog-error/dialog-error.component.mjs +41 -0
- package/esm2020/main/view/components/dialog-multiple-option/dialog-multiple-option.component.mjs +38 -0
- package/esm2020/main/view/components/dialog-single-option/dialog-single-option.component.mjs +41 -0
- package/esm2020/main/view/components/dialog-single-selection-list/dialog-single-selection-list.component.mjs +112 -0
- package/esm2020/main/view/components/dialog-two-option/dialog-two-option.component.mjs +42 -0
- package/{esm2015/main/view/components/views-container/views-container.component.js → esm2020/main/view/components/views-container/views-container.component.mjs} +15 -13
- package/esm2020/main/view/directives/AutoFocusOnDisplayDirective.mjs +39 -0
- package/esm2020/main/view/directives/AutoSelectTextOnFocusDirective.mjs +39 -0
- package/esm2020/main/view/directives/ElementCreatedDirective.mjs +42 -0
- package/esm2020/main/view/directives/ElementDestroyedDirective.mjs +42 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +1 -1
- package/esm2020/turbogui-angular.mjs +5 -0
- package/fesm2015/turbogui-angular.mjs +1953 -0
- package/fesm2015/turbogui-angular.mjs.map +1 -0
- package/{fesm2015/turbogui-angular.js → fesm2020/turbogui-angular.mjs} +368 -298
- package/fesm2020/turbogui-angular.mjs.map +1 -0
- package/main/controller/browser.service.d.ts +3 -8
- package/main/controller/browser.service.d.ts.map +1 -1
- package/main/controller/dialog.service.d.ts +3 -8
- package/main/controller/dialog.service.d.ts.map +1 -1
- package/main/controller/globalerror.service.d.ts +3 -0
- package/main/controller/globalerror.service.d.ts.map +1 -1
- package/main/controller/http.service.d.ts +3 -8
- package/main/controller/http.service.d.ts.map +1 -1
- package/main/controller/localization.service.d.ts +3 -8
- package/main/controller/localization.service.d.ts.map +1 -1
- package/main/controller/notification.service.d.ts +3 -8
- package/main/controller/notification.service.d.ts.map +1 -1
- package/main/controller/user.service.d.ts +3 -8
- package/main/controller/user.service.d.ts.map +1 -1
- package/main/controller/views.service.d.ts +3 -0
- package/main/controller/views.service.d.ts.map +1 -1
- package/main/model/modules/turbogui-angular.module.d.ts +23 -8
- package/main/model/modules/turbogui-angular.module.d.ts.map +1 -1
- package/main/view/animations/fade.animation.d.ts +3 -8
- package/main/view/animations/fade.animation.d.ts.map +1 -1
- package/main/view/components/busy-state-base/busy-state-base.component.d.ts +3 -8
- 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 +3 -0
- package/main/view/components/button-base/button-base.component.d.ts.map +1 -1
- package/main/view/components/button-container/button-container.component.d.ts +3 -8
- 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 +3 -0
- package/main/view/components/button-image/button-image.component.d.ts.map +1 -1
- package/main/view/components/dialog-error/dialog-error.component.d.ts +3 -8
- 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 +3 -8
- package/main/view/components/dialog-multiple-option/dialog-multiple-option.component.d.ts.map +1 -1
- package/main/view/components/dialog-single-option/dialog-single-option.component.d.ts +3 -8
- 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 +3 -8
- 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 +3 -8
- package/main/view/components/dialog-two-option/dialog-two-option.component.d.ts.map +1 -1
- package/main/view/components/views-container/views-container.component.d.ts +3 -0
- package/main/view/components/views-container/views-container.component.d.ts.map +1 -1
- package/main/view/directives/AutoFocusOnDisplayDirective.d.ts +3 -0
- package/main/view/directives/AutoFocusOnDisplayDirective.d.ts.map +1 -1
- package/main/view/directives/AutoSelectTextOnFocusDirective.d.ts +3 -0
- package/main/view/directives/AutoSelectTextOnFocusDirective.d.ts.map +1 -1
- package/main/view/directives/ElementCreatedDirective.d.ts +3 -0
- package/main/view/directives/ElementCreatedDirective.d.ts.map +1 -1
- package/main/view/directives/ElementDestroyedDirective.d.ts +3 -0
- package/main/view/directives/ElementDestroyedDirective.d.ts.map +1 -1
- package/package.json +24 -12
- package/turbogui-angular.d.ts +1 -2
- package/turbogui-angular.d.ts.map +1 -1
- package/bundles/turbogui-angular.umd.js +0 -2431
- package/bundles/turbogui-angular.umd.js.map +0 -1
- package/esm2015/main/controller/browser.service.js +0 -48
- package/esm2015/main/controller/dialog.service.js +0 -329
- package/esm2015/main/controller/globalerror.service.js +0 -65
- package/esm2015/main/controller/http.service.js +0 -70
- package/esm2015/main/controller/localization.service.js +0 -19
- package/esm2015/main/controller/notification.service.js +0 -53
- package/esm2015/main/controller/user.service.js +0 -125
- package/esm2015/main/controller/views.service.js +0 -113
- package/esm2015/main/model/modules/turbogui-angular.module.js +0 -93
- package/esm2015/main/view/animations/fade.animation.js +0 -32
- package/esm2015/main/view/components/busy-state-base/busy-state-base.component.js +0 -39
- package/esm2015/main/view/components/button-base/button-base.component.js +0 -149
- package/esm2015/main/view/components/button-container/button-container.component.js +0 -35
- package/esm2015/main/view/components/button-image/button-image.component.js +0 -46
- package/esm2015/main/view/components/dialog-error/dialog-error.component.js +0 -39
- package/esm2015/main/view/components/dialog-multiple-option/dialog-multiple-option.component.js +0 -36
- package/esm2015/main/view/components/dialog-single-option/dialog-single-option.component.js +0 -39
- package/esm2015/main/view/components/dialog-single-selection-list/dialog-single-selection-list.component.js +0 -108
- package/esm2015/main/view/components/dialog-two-option/dialog-two-option.component.js +0 -40
- package/esm2015/main/view/directives/AutoFocusOnDisplayDirective.js +0 -40
- package/esm2015/main/view/directives/AutoSelectTextOnFocusDirective.js +0 -39
- package/esm2015/main/view/directives/ElementCreatedDirective.js +0 -38
- package/esm2015/main/view/directives/ElementDestroyedDirective.js +0 -38
- package/esm2015/turbogui-angular.js +0 -7
- package/fesm2015/turbogui-angular.js.map +0 -1
- package/main/controller/browser.service.ngfactory.d.ts.map +0 -1
- package/main/controller/dialog.service.ngfactory.d.ts.map +0 -1
- package/main/controller/globalerror.service.ngfactory.d.ts.map +0 -1
- package/main/controller/http.service.ngfactory.d.ts.map +0 -1
- package/main/controller/localization.service.ngfactory.d.ts.map +0 -1
- package/main/controller/notification.service.ngfactory.d.ts.map +0 -1
- package/main/controller/user.service.ngfactory.d.ts.map +0 -1
- package/main/controller/views.service.ngfactory.d.ts.map +0 -1
- package/main/model/modules/turbogui-angular.module.ngfactory.d.ts.map +0 -1
- package/main/view/animations/fade.animation.ngfactory.d.ts.map +0 -1
- package/main/view/components/busy-state-base/busy-state-base.component.ngfactory.d.ts.map +0 -1
- package/main/view/components/busy-state-base/busy-state-base.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/main/view/components/button-container/button-container.component.ngfactory.d.ts.map +0 -1
- package/main/view/components/button-container/button-container.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/main/view/components/button-image/button-image.component.ngfactory.d.ts.map +0 -1
- package/main/view/components/button-image/button-image.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/main/view/components/dialog-error/dialog-error.component.ngfactory.d.ts.map +0 -1
- package/main/view/components/dialog-error/dialog-error.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/main/view/components/dialog-multiple-option/dialog-multiple-option.component.ngfactory.d.ts.map +0 -1
- package/main/view/components/dialog-multiple-option/dialog-multiple-option.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/main/view/components/dialog-single-option/dialog-single-option.component.ngfactory.d.ts.map +0 -1
- package/main/view/components/dialog-single-option/dialog-single-option.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/main/view/components/dialog-single-selection-list/dialog-single-selection-list.component.ngfactory.d.ts.map +0 -1
- package/main/view/components/dialog-single-selection-list/dialog-single-selection-list.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/main/view/components/dialog-two-option/dialog-two-option.component.ngfactory.d.ts.map +0 -1
- package/main/view/components/dialog-two-option/dialog-two-option.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/main/view/components/views-container/views-container.component.ngfactory.d.ts.map +0 -1
- package/main/view/components/views-container/views-container.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/main/view/directives/AutoFocusOnDisplayDirective.ngfactory.d.ts.map +0 -1
- package/main/view/directives/AutoSelectTextOnFocusDirective.ngfactory.d.ts.map +0 -1
- package/main/view/directives/ElementCreatedDirective.ngfactory.d.ts.map +0 -1
- package/main/view/directives/ElementDestroyedDirective.ngfactory.d.ts.map +0 -1
- package/turbogui-angular.metadata.json +0 -1
- /package/{esm2015/main/controller/httpservice/HTTPServiceGetRequest.js → esm2020/main/controller/httpservice/HTTPServiceGetRequest.mjs} +0 -0
- /package/{esm2015/main/controller/httpservice/HTTPServicePostRequest.js → esm2020/main/controller/httpservice/HTTPServicePostRequest.mjs} +0 -0
- /package/{esm2015/main/managers/DelayedMethodCallManager.js → esm2020/main/managers/DelayedMethodCallManager.mjs} +0 -0
- /package/{esm2015/main/model/classes/GUINotification.js → esm2020/main/model/classes/GUINotification.mjs} +0 -0
- /package/{esm2015/main/model/classes/View.js → esm2020/main/model/classes/View.mjs} +0 -0
- /package/{esm2015/main/model/classes/ViewModel.js → esm2020/main/model/classes/ViewModel.mjs} +0 -0
- /package/{esm2015/main/model/classes/ViewService.js → esm2020/main/model/classes/ViewService.mjs} +0 -0
- /package/{esm2015/main/view/components/dialog-base/dialog-base.component.js → esm2020/main/view/components/dialog-base/dialog-base.component.mjs} +0 -0
- /package/{esm2015/main/view/components/dialog-options-base/dialog-options-base.component.js → esm2020/main/view/components/dialog-options-base/dialog-options-base.component.mjs} +0 -0
|
@@ -1,125 +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 { ConversionUtils, StringUtils } from 'turbocommons-ts';
|
|
11
|
-
import { HTTPService } from '../controller/http.service';
|
|
12
|
-
import { LocalizationService } from '../controller/localization.service';
|
|
13
|
-
import { HTTPServicePostRequest } from '../controller/httpservice/HTTPServicePostRequest';
|
|
14
|
-
/**
|
|
15
|
-
* Manages the users model and commands
|
|
16
|
-
*/
|
|
17
|
-
export class UserService {
|
|
18
|
-
constructor(httpService, ls) {
|
|
19
|
-
this.httpService = httpService;
|
|
20
|
-
this.ls = ls;
|
|
21
|
-
/**
|
|
22
|
-
* Path to the web service that performs the user login
|
|
23
|
-
*/
|
|
24
|
-
this.loginWebService = 'users/login';
|
|
25
|
-
/**
|
|
26
|
-
* The username that is currently defined and will be used by the login methods
|
|
27
|
-
*/
|
|
28
|
-
this.userName = '';
|
|
29
|
-
/**
|
|
30
|
-
* The password for the user that is currently defined and will be used by the login methods
|
|
31
|
-
*/
|
|
32
|
-
this.password = '';
|
|
33
|
-
/**
|
|
34
|
-
* Check public getter for docs
|
|
35
|
-
*/
|
|
36
|
-
this._isLogged = false;
|
|
37
|
-
/**
|
|
38
|
-
* @see token() getter for more info
|
|
39
|
-
*/
|
|
40
|
-
this._token = '';
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Tells if the services contains a non empty username and password specified
|
|
44
|
-
*/
|
|
45
|
-
get isUserAndPswDefined() {
|
|
46
|
-
return !StringUtils.isEmpty(this.userName) && !StringUtils.isEmpty(this.password);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Tells if exists a user that is currently logged or not
|
|
50
|
-
*/
|
|
51
|
-
get isLogged() {
|
|
52
|
-
return this._isLogged;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Gives the value for the currently active user authentication token or an empty string if no user logged
|
|
56
|
-
*/
|
|
57
|
-
get token() {
|
|
58
|
-
return this._token;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Perform a user login against the configured login webservice
|
|
62
|
-
*
|
|
63
|
-
* @param loginOkCallback Method to be executed once the login finishes chorrectly. An object with all the service response data will be passed to this method
|
|
64
|
-
* @param loginFailCallback Method to be executed once the login finishes incorrectly.
|
|
65
|
-
*/
|
|
66
|
-
login(loginOkCallback = null, loginFailCallback = null) {
|
|
67
|
-
const request = new HTTPServicePostRequest(this.loginWebService);
|
|
68
|
-
request.ignoreGlobalPostParams = true;
|
|
69
|
-
const encodedCredentials = ConversionUtils.stringToBase64(ConversionUtils.stringToBase64(this.userName) + ',' + ConversionUtils.stringToBase64(this.password));
|
|
70
|
-
request.parameters = {
|
|
71
|
-
data: encodedCredentials
|
|
72
|
-
};
|
|
73
|
-
request.successCallback = (response) => {
|
|
74
|
-
if (response !== '') {
|
|
75
|
-
response = JSON.parse(response);
|
|
76
|
-
this._isLogged = true;
|
|
77
|
-
this._token = response.token;
|
|
78
|
-
this.httpService.setGlobalPostParam('token', response.token);
|
|
79
|
-
if (loginOkCallback !== null) {
|
|
80
|
-
loginOkCallback(response);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
this._clearUserAndToken();
|
|
85
|
-
if (loginFailCallback !== null) {
|
|
86
|
-
loginFailCallback();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
this.httpService.execute(request);
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Perform the logout for the currently logged user
|
|
94
|
-
*/
|
|
95
|
-
logout(logoutOkCallback = null) {
|
|
96
|
-
const request = new HTTPServicePostRequest('users/logout');
|
|
97
|
-
request.parameters = {
|
|
98
|
-
token: this._token
|
|
99
|
-
};
|
|
100
|
-
request.successCallback = () => {
|
|
101
|
-
this._clearUserAndToken();
|
|
102
|
-
if (logoutOkCallback !== null) {
|
|
103
|
-
logoutOkCallback();
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
this.httpService.execute(request);
|
|
107
|
-
}
|
|
108
|
-
_clearUserAndToken() {
|
|
109
|
-
this.userName = '';
|
|
110
|
-
this.password = '';
|
|
111
|
-
this._isLogged = false;
|
|
112
|
-
this._token = '';
|
|
113
|
-
if (this.httpService.isGlobalPostParam('token')) {
|
|
114
|
-
this.httpService.deleteGlobalPostParam('token');
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
UserService.decorators = [
|
|
119
|
-
{ type: Injectable }
|
|
120
|
-
];
|
|
121
|
-
UserService.ctorParameters = () => [
|
|
122
|
-
{ type: HTTPService },
|
|
123
|
-
{ type: LocalizationService }
|
|
124
|
-
];
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi9jb250cm9sbGVyL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUcxRjs7R0FFRztBQUVILE1BQU0sT0FBTyxXQUFXO0lBaUNwQixZQUFtQixXQUF3QixFQUN4QixFQUF1QjtRQUR2QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQS9CMUM7O1dBRUc7UUFDSCxvQkFBZSxHQUFHLGFBQWEsQ0FBQztRQUdoQzs7V0FFRztRQUNILGFBQVEsR0FBRyxFQUFFLENBQUM7UUFHZDs7V0FFRztRQUNILGFBQVEsR0FBRyxFQUFFLENBQUM7UUFHZDs7V0FFRztRQUNLLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHMUI7O1dBRUc7UUFDSyxXQUFNLEdBQUcsRUFBRSxDQUFDO0lBS3BCLENBQUM7SUFHRDs7T0FFRztJQUNILElBQUksbUJBQW1CO1FBRW5CLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFHRDs7T0FFRztJQUNILElBQUksUUFBUTtRQUVSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBR0Q7O09BRUc7SUFDSCxJQUFJLEtBQUs7UUFFTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUdEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLGtCQUFvRCxJQUFJLEVBQUUsb0JBQXlDLElBQUk7UUFFekcsTUFBTSxPQUFPLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFakUsT0FBTyxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztRQUV0QyxNQUFNLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQ2pELGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTdHLE9BQU8sQ0FBQyxVQUFVLEdBQUc7WUFDakIsSUFBSSxFQUFFLGtCQUFrQjtTQUMzQixDQUFDO1FBRUYsT0FBTyxDQUFDLGVBQWUsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBRW5DLElBQUksUUFBUSxLQUFLLEVBQUUsRUFBRTtnQkFFakIsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRWhDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFN0QsSUFBSSxlQUFlLEtBQUssSUFBSSxFQUFFO29CQUUxQixlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQzdCO2FBRUo7aUJBQU07Z0JBRUgsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBRTFCLElBQUksaUJBQWlCLEtBQUssSUFBSSxFQUFFO29CQUU1QixpQkFBaUIsRUFBRSxDQUFDO2lCQUN2QjthQUNKO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUdEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1CQUF3QyxJQUFJO1FBRS9DLE1BQU0sT0FBTyxHQUFHLElBQUksc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFM0QsT0FBTyxDQUFDLFVBQVUsR0FBRztZQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDckIsQ0FBQztRQUVGLE9BQU8sQ0FBQyxlQUFlLEdBQUcsR0FBRyxFQUFFO1lBRTNCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBRTFCLElBQUksZ0JBQWdCLEtBQUssSUFBSSxFQUFFO2dCQUUzQixnQkFBZ0IsRUFBRSxDQUFDO2FBQ3RCO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUdPLGtCQUFrQjtRQUV0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUVqQixJQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUM7WUFFM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNuRDtJQUNMLENBQUM7OztZQXZKSixVQUFVOzs7WUFSRixXQUFXO1lBQ1gsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb252ZXJzaW9uVXRpbHMsIFN0cmluZ1V0aWxzIH0gZnJvbSAndHVyYm9jb21tb25zLXRzJztcclxuaW1wb3J0IHsgSFRUUFNlcnZpY2UgfSBmcm9tICcuLi9jb250cm9sbGVyL2h0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9jb250cm9sbGVyL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSFRUUFNlcnZpY2VQb3N0UmVxdWVzdCB9IGZyb20gJy4uL2NvbnRyb2xsZXIvaHR0cHNlcnZpY2UvSFRUUFNlcnZpY2VQb3N0UmVxdWVzdCc7XHJcblxyXG5cclxuLyoqXHJcbiAqIE1hbmFnZXMgdGhlIHVzZXJzIG1vZGVsIGFuZCBjb21tYW5kc1xyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2Uge1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdGggdG8gdGhlIHdlYiBzZXJ2aWNlIHRoYXQgcGVyZm9ybXMgdGhlIHVzZXIgbG9naW5cclxuICAgICAqL1xyXG4gICAgbG9naW5XZWJTZXJ2aWNlID0gJ3VzZXJzL2xvZ2luJztcclxuICAgIFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHVzZXJuYW1lIHRoYXQgaXMgY3VycmVudGx5IGRlZmluZWQgYW5kIHdpbGwgYmUgdXNlZCBieSB0aGUgbG9naW4gbWV0aG9kc1xyXG4gICAgICovXHJcbiAgICB1c2VyTmFtZSA9ICcnO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBwYXNzd29yZCBmb3IgdGhlIHVzZXIgdGhhdCBpcyBjdXJyZW50bHkgZGVmaW5lZCBhbmQgd2lsbCBiZSB1c2VkIGJ5IHRoZSBsb2dpbiBtZXRob2RzXHJcbiAgICAgKi9cclxuICAgIHBhc3N3b3JkID0gJyc7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgcHVibGljIGdldHRlciBmb3IgZG9jc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9pc0xvZ2dlZCA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQHNlZSB0b2tlbigpIGdldHRlciBmb3IgbW9yZSBpbmZvXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3Rva2VuID0gJyc7XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBodHRwU2VydmljZTogSFRUUFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBwdWJsaWMgbHM6IExvY2FsaXphdGlvblNlcnZpY2UpIHtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZWxscyBpZiB0aGUgc2VydmljZXMgY29udGFpbnMgYSBub24gZW1wdHkgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIHNwZWNpZmllZFxyXG4gICAgICovXHJcbiAgICBnZXQgaXNVc2VyQW5kUHN3RGVmaW5lZCgpOiBib29sZWFuICB7XHJcblxyXG4gICAgICAgIHJldHVybiAhU3RyaW5nVXRpbHMuaXNFbXB0eSh0aGlzLnVzZXJOYW1lKSAmJiAhU3RyaW5nVXRpbHMuaXNFbXB0eSh0aGlzLnBhc3N3b3JkKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZWxscyBpZiBleGlzdHMgYSB1c2VyIHRoYXQgaXMgY3VycmVudGx5IGxvZ2dlZCBvciBub3RcclxuICAgICAqL1xyXG4gICAgZ2V0IGlzTG9nZ2VkKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faXNMb2dnZWQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBHaXZlcyB0aGUgdmFsdWUgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIHVzZXIgYXV0aGVudGljYXRpb24gdG9rZW4gb3IgYW4gZW1wdHkgc3RyaW5nIGlmIG5vIHVzZXIgbG9nZ2VkXHJcbiAgICAgKi9cclxuICAgIGdldCB0b2tlbigpIHtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rva2VuO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBlcmZvcm0gYSB1c2VyIGxvZ2luIGFnYWluc3QgdGhlIGNvbmZpZ3VyZWQgbG9naW4gd2Vic2VydmljZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gbG9naW5Pa0NhbGxiYWNrIE1ldGhvZCB0byBiZSBleGVjdXRlZCBvbmNlIHRoZSBsb2dpbiBmaW5pc2hlcyBjaG9ycmVjdGx5LiBBbiBvYmplY3Qgd2l0aCBhbGwgdGhlIHNlcnZpY2UgcmVzcG9uc2UgZGF0YSB3aWxsIGJlIHBhc3NlZCB0byB0aGlzIG1ldGhvZFxyXG4gICAgICogQHBhcmFtIGxvZ2luRmFpbENhbGxiYWNrIE1ldGhvZCB0byBiZSBleGVjdXRlZCBvbmNlIHRoZSBsb2dpbiBmaW5pc2hlcyBpbmNvcnJlY3RseS5cclxuICAgICAqL1xyXG4gICAgbG9naW4obG9naW5Pa0NhbGxiYWNrOiBudWxsIHwgKChyZXNwb25zZTogYW55KSA9PiB2b2lkKSA9IG51bGwsIGxvZ2luRmFpbENhbGxiYWNrOiBudWxsIHwgKCgpID0+IHZvaWQpID0gbnVsbCkge1xyXG5cclxuICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEhUVFBTZXJ2aWNlUG9zdFJlcXVlc3QodGhpcy5sb2dpbldlYlNlcnZpY2UpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHJlcXVlc3QuaWdub3JlR2xvYmFsUG9zdFBhcmFtcyA9IHRydWU7XHJcblxyXG4gICAgICAgIGNvbnN0IGVuY29kZWRDcmVkZW50aWFscyA9IENvbnZlcnNpb25VdGlscy5zdHJpbmdUb0Jhc2U2NChcclxuICAgICAgICAgICAgICAgIENvbnZlcnNpb25VdGlscy5zdHJpbmdUb0Jhc2U2NCh0aGlzLnVzZXJOYW1lKSArICcsJyArIENvbnZlcnNpb25VdGlscy5zdHJpbmdUb0Jhc2U2NCh0aGlzLnBhc3N3b3JkKSk7XHJcblxyXG4gICAgICAgIHJlcXVlc3QucGFyYW1ldGVycyA9IHtcclxuICAgICAgICAgICAgZGF0YTogZW5jb2RlZENyZWRlbnRpYWxzXHJcbiAgICAgICAgfTtcclxuICAgICAgICBcclxuICAgICAgICByZXF1ZXN0LnN1Y2Nlc3NDYWxsYmFjayA9IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2UgIT09ICcnKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBKU09OLnBhcnNlKHJlc3BvbnNlKTsgICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pc0xvZ2dlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90b2tlbiA9IHJlc3BvbnNlLnRva2VuO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5odHRwU2VydmljZS5zZXRHbG9iYWxQb3N0UGFyYW0oJ3Rva2VuJywgcmVzcG9uc2UudG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChsb2dpbk9rQ2FsbGJhY2sgIT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgbG9naW5Pa0NhbGxiYWNrKHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fY2xlYXJVc2VyQW5kVG9rZW4oKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAobG9naW5GYWlsQ2FsbGJhY2sgIT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgbG9naW5GYWlsQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuaHR0cFNlcnZpY2UuZXhlY3V0ZShyZXF1ZXN0KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJmb3JtIHRoZSBsb2dvdXQgZm9yIHRoZSBjdXJyZW50bHkgbG9nZ2VkIHVzZXJcclxuICAgICAqL1xyXG4gICAgbG9nb3V0KGxvZ291dE9rQ2FsbGJhY2s6IG51bGwgfCAoKCkgPT4gdm9pZCkgPSBudWxsKSB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBIVFRQU2VydmljZVBvc3RSZXF1ZXN0KCd1c2Vycy9sb2dvdXQnKTtcclxuICAgICAgICBcclxuICAgICAgICByZXF1ZXN0LnBhcmFtZXRlcnMgPSB7XHJcbiAgICAgICAgICAgIHRva2VuOiB0aGlzLl90b2tlblxyXG4gICAgICAgIH07XHJcbiAgICAgICAgXHJcbiAgICAgICAgcmVxdWVzdC5zdWNjZXNzQ2FsbGJhY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyVXNlckFuZFRva2VuKCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZiAobG9nb3V0T2tDYWxsYmFjayAhPT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgICAgIGxvZ291dE9rQ2FsbGJhY2soKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuaHR0cFNlcnZpY2UuZXhlY3V0ZShyZXF1ZXN0KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgICBwcml2YXRlIF9jbGVhclVzZXJBbmRUb2tlbigpe1xyXG4gICAgXHJcbiAgICAgICAgdGhpcy51c2VyTmFtZSA9ICcnO1xyXG4gICAgICAgIHRoaXMucGFzc3dvcmQgPSAnJztcclxuICAgICAgICB0aGlzLl9pc0xvZ2dlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX3Rva2VuID0gJyc7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYodGhpcy5odHRwU2VydmljZS5pc0dsb2JhbFBvc3RQYXJhbSgndG9rZW4nKSl7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB0aGlzLmh0dHBTZXJ2aWNlLmRlbGV0ZUdsb2JhbFBvc3RQYXJhbSgndG9rZW4nKTtcclxuICAgICAgICB9ICAgIFxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,113 +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, ComponentFactoryResolver } from '@angular/core';
|
|
10
|
-
/**
|
|
11
|
-
* Manages adding, removing and manipulating the application views
|
|
12
|
-
*/
|
|
13
|
-
export class ViewsService {
|
|
14
|
-
constructor(componentFactoryResolver) {
|
|
15
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
16
|
-
/**
|
|
17
|
-
* See getter method for docs
|
|
18
|
-
*/
|
|
19
|
-
this._loadedViewClass = null;
|
|
20
|
-
/**
|
|
21
|
-
* An instance of the model that is assigned to the currently loaded view
|
|
22
|
-
*/
|
|
23
|
-
this._loadedViewModel = null;
|
|
24
|
-
/**
|
|
25
|
-
* See setter method for docs
|
|
26
|
-
*/
|
|
27
|
-
this._viewContainerRef = null;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Tells if there's any view currently loaded on the application views container
|
|
31
|
-
*/
|
|
32
|
-
get isViewLoaded() {
|
|
33
|
-
return this._loadedViewClass !== null;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Stores a reference to the visual element that will be used as the container for all the views.
|
|
37
|
-
* This is automatically assigned by the tg-views-container component once it is created.
|
|
38
|
-
*
|
|
39
|
-
* @see ViewsContainerComponent for more information
|
|
40
|
-
*/
|
|
41
|
-
set viewContainerRef(ref) {
|
|
42
|
-
if (ref !== null && this._viewContainerRef !== null) {
|
|
43
|
-
throw new Error('Views container already defined. Only one views container element can exist on an application');
|
|
44
|
-
}
|
|
45
|
-
this._viewContainerRef = ref;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Create a new view instance with the specified type and add it to the current application views container. Any currently loaded
|
|
49
|
-
* view will be removed
|
|
50
|
-
*
|
|
51
|
-
* Make sure this method is called when all the visual components of the application have been created (ngAfterViewInit)
|
|
52
|
-
*
|
|
53
|
-
* @param view The classname for the view that we want to create and add to the views container (must extend View base class).
|
|
54
|
-
*
|
|
55
|
-
* @return The instance of the newly added and created view.
|
|
56
|
-
*/
|
|
57
|
-
pushView(view) {
|
|
58
|
-
// If a view is already loaded, we will unload it first
|
|
59
|
-
if (this._loadedViewClass !== null) {
|
|
60
|
-
// If the loaded view is the same as the specified one, we will do nothing
|
|
61
|
-
if (this._loadedViewClass === view) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
this.popView();
|
|
65
|
-
}
|
|
66
|
-
this.verifyViewsContainerExist();
|
|
67
|
-
const factory = this.componentFactoryResolver.resolveComponentFactory(view);
|
|
68
|
-
const componentRef = this._viewContainerRef.createComponent(factory);
|
|
69
|
-
this._loadedViewModel = componentRef.instance.modelClass !== null ? new componentRef.instance.modelClass() : null;
|
|
70
|
-
componentRef.changeDetectorRef.detectChanges();
|
|
71
|
-
this._loadedViewClass = view;
|
|
72
|
-
return componentRef;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Get the model that is instantiated for the currently active view. (A view model only lives while its view is active)
|
|
76
|
-
* If no view model is assigned to the current view or no view is loaded, an exception will be thrown.
|
|
77
|
-
*
|
|
78
|
-
* @return The current view model instance, which must be casted to the appropiate ViewModel extended class
|
|
79
|
-
*/
|
|
80
|
-
get model() {
|
|
81
|
-
if (this._loadedViewModel === null) {
|
|
82
|
-
throw new Error('No active model. Make sure a view is loaded with an assigned model. Do not access the model until view is initialized (for example on ngAfterViewInit)');
|
|
83
|
-
}
|
|
84
|
-
return this._loadedViewModel;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Delete the currently loaded view from the views container, and leave it empty.
|
|
88
|
-
* If no view is currently loaded, this method will do nothing
|
|
89
|
-
*/
|
|
90
|
-
popView() {
|
|
91
|
-
this.verifyViewsContainerExist();
|
|
92
|
-
if (this._loadedViewClass !== null) {
|
|
93
|
-
this._viewContainerRef.clear();
|
|
94
|
-
}
|
|
95
|
-
this._loadedViewClass = null;
|
|
96
|
-
this._loadedViewModel = null;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Auxiliary method to test if the views container instance is available on the application
|
|
100
|
-
*/
|
|
101
|
-
verifyViewsContainerExist() {
|
|
102
|
-
if (this._viewContainerRef === null) {
|
|
103
|
-
throw new Error('Views container not defined. Please declare a <views-container> element in your application');
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
ViewsService.decorators = [
|
|
108
|
-
{ type: Injectable }
|
|
109
|
-
];
|
|
110
|
-
ViewsService.ctorParameters = () => [
|
|
111
|
-
{ type: ComponentFactoryResolver }
|
|
112
|
-
];
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1cmJvZ3VpLWFuZ3VsYXIvc3JjL21haW4vY29udHJvbGxlci92aWV3cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQTBCLFVBQVUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs3Rjs7R0FFRztBQUVILE1BQU0sT0FBTyxZQUFZO0lBcUJyQixZQUE2Qix3QkFBa0Q7UUFBbEQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQWxCL0U7O1dBRUc7UUFDSyxxQkFBZ0IsR0FBc0IsSUFBSSxDQUFDO1FBR25EOztXQUVHO1FBQ0sscUJBQWdCLEdBQXFCLElBQUksQ0FBQztRQUdsRDs7V0FFRztRQUNLLHNCQUFpQixHQUE0QixJQUFJLENBQUM7SUFLMUQsQ0FBQztJQUdEOztPQUVHO0lBQ0gsSUFBSSxZQUFZO1FBRVosT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxDQUFDO0lBQzFDLENBQUM7SUFHRDs7Ozs7T0FLRztJQUNILElBQUksZ0JBQWdCLENBQUMsR0FBNEI7UUFFN0MsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLEVBQUU7WUFFakQsTUFBTSxJQUFJLEtBQUssQ0FBQywrRkFBK0YsQ0FBQyxDQUFDO1NBQ3BIO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztJQUNqQyxDQUFDO0lBR0Q7Ozs7Ozs7OztPQVNHO0lBQ0gsUUFBUSxDQUFDLElBQWdCO1FBRXJCLHVEQUF1RDtRQUN2RCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLEVBQUU7WUFFaEMsMEVBQTBFO1lBQzFFLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksRUFBRTtnQkFFaEMsT0FBTzthQUNWO1lBRUQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVFLE1BQU0sWUFBWSxHQUFJLElBQUksQ0FBQyxpQkFBc0MsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRTNILFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBRTdCLE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFHRDs7Ozs7T0FLRztJQUNILElBQUksS0FBSztRQUVMLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksRUFBRTtZQUVoQyxNQUFNLElBQUksS0FBSyxDQUFDLHdKQUF3SixDQUFDLENBQUM7U0FDN0s7UUFFRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBR0Q7OztPQUdHO0lBQ0gsT0FBTztRQUVILElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBRWpDLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksRUFBRTtZQUUvQixJQUFJLENBQUMsaUJBQXNDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDeEQ7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUdEOztPQUVHO0lBQ0sseUJBQXlCO1FBRTdCLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLElBQUksRUFBRTtZQUVqQyxNQUFNLElBQUksS0FBSyxDQUFDLDZGQUE2RixDQUFDLENBQUM7U0FDbEg7SUFDTCxDQUFDOzs7WUF6SUosVUFBVTs7O1lBUmtDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUdXJib0dVSSBpcyBBIGxpYnJhcnkgdGhhdCBoZWxwcyB3aXRoIHRoZSBtb3N0IGNvbW1vbiBhbmQgZ2VuZXJpYyBVSSBlbGVtZW50cyBhbmQgZnVuY3Rpb25hbGl0aWVzXHJcbiAqXHJcbiAqIFdlYnNpdGUgOiAtPiBodHRwOi8vd3d3LnR1cmJvZ3VpLm9yZ1xyXG4gKiBMaWNlbnNlIDogLT4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMC4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBMaWNlbnNlIFVybCA6IC0+IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKiBDb3B5UmlnaHQgOiAtPiBDb3B5cmlnaHQgMjAxOCBFZGVydG9uZSBBZHZhbmRlZCBTb2x1dGlvbnMuIGh0dHBzOi8vd3d3LmVkZXJ0b25lLmNvbVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IFR5cGUsIFZpZXdDb250YWluZXJSZWYsIEluamVjdGFibGUsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWaWV3IH0gZnJvbSAnLi4vbW9kZWwvY2xhc3Nlcy9WaWV3JztcclxuaW1wb3J0IHsgVmlld01vZGVsIH0gZnJvbSAnLi4vbW9kZWwvY2xhc3Nlcy9WaWV3TW9kZWwnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBNYW5hZ2VzIGFkZGluZywgcmVtb3ZpbmcgYW5kIG1hbmlwdWxhdGluZyB0aGUgYXBwbGljYXRpb24gdmlld3NcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFZpZXdzU2VydmljZSB7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VlIGdldHRlciBtZXRob2QgZm9yIGRvY3NcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbG9hZGVkVmlld0NsYXNzOiBUeXBlPFZpZXc+IHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQW4gaW5zdGFuY2Ugb2YgdGhlIG1vZGVsIHRoYXQgaXMgYXNzaWduZWQgdG8gdGhlIGN1cnJlbnRseSBsb2FkZWQgdmlld1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9sb2FkZWRWaWV3TW9kZWw6IFZpZXdNb2RlbCB8IG51bGwgPSBudWxsO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlZSBzZXR0ZXIgbWV0aG9kIGZvciBkb2NzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYgfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZWxscyBpZiB0aGVyZSdzIGFueSB2aWV3IGN1cnJlbnRseSBsb2FkZWQgb24gdGhlIGFwcGxpY2F0aW9uIHZpZXdzIGNvbnRhaW5lclxyXG4gICAgICovXHJcbiAgICBnZXQgaXNWaWV3TG9hZGVkKCkge1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGVkVmlld0NsYXNzICE9PSBudWxsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0b3JlcyBhIHJlZmVyZW5jZSB0byB0aGUgdmlzdWFsIGVsZW1lbnQgdGhhdCB3aWxsIGJlIHVzZWQgYXMgdGhlIGNvbnRhaW5lciBmb3IgYWxsIHRoZSB2aWV3cy5cclxuICAgICAqIFRoaXMgaXMgYXV0b21hdGljYWxseSBhc3NpZ25lZCBieSB0aGUgdGctdmlld3MtY29udGFpbmVyIGNvbXBvbmVudCBvbmNlIGl0IGlzIGNyZWF0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHNlZSBWaWV3c0NvbnRhaW5lckNvbXBvbmVudCBmb3IgbW9yZSBpbmZvcm1hdGlvblxyXG4gICAgICovXHJcbiAgICBzZXQgdmlld0NvbnRhaW5lclJlZihyZWY6IFZpZXdDb250YWluZXJSZWYgfCBudWxsKSB7XHJcblxyXG4gICAgICAgIGlmIChyZWYgIT09IG51bGwgJiYgdGhpcy5fdmlld0NvbnRhaW5lclJlZiAhPT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdWaWV3cyBjb250YWluZXIgYWxyZWFkeSBkZWZpbmVkLiBPbmx5IG9uZSB2aWV3cyBjb250YWluZXIgZWxlbWVudCBjYW4gZXhpc3Qgb24gYW4gYXBwbGljYXRpb24nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYgPSByZWY7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlIGEgbmV3IHZpZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHR5cGUgYW5kIGFkZCBpdCB0byB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiB2aWV3cyBjb250YWluZXIuIEFueSBjdXJyZW50bHkgbG9hZGVkIFxyXG4gICAgICogdmlldyB3aWxsIGJlIHJlbW92ZWRcclxuICAgICAqXHJcbiAgICAgKiBNYWtlIHN1cmUgdGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gYWxsIHRoZSB2aXN1YWwgY29tcG9uZW50cyBvZiB0aGUgYXBwbGljYXRpb24gaGF2ZSBiZWVuIGNyZWF0ZWQgKG5nQWZ0ZXJWaWV3SW5pdClcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmlldyBUaGUgY2xhc3NuYW1lIGZvciB0aGUgdmlldyB0aGF0IHdlIHdhbnQgdG8gY3JlYXRlIGFuZCBhZGQgdG8gdGhlIHZpZXdzIGNvbnRhaW5lciAobXVzdCBleHRlbmQgVmlldyBiYXNlIGNsYXNzKS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIFRoZSBpbnN0YW5jZSBvZiB0aGUgbmV3bHkgYWRkZWQgYW5kIGNyZWF0ZWQgdmlldy4gXHJcbiAgICAgKi9cclxuICAgIHB1c2hWaWV3KHZpZXc6IFR5cGU8Vmlldz4pIHtcclxuXHJcbiAgICAgICAgLy8gSWYgYSB2aWV3IGlzIGFscmVhZHkgbG9hZGVkLCB3ZSB3aWxsIHVubG9hZCBpdCBmaXJzdFxyXG4gICAgICAgIGlmICh0aGlzLl9sb2FkZWRWaWV3Q2xhc3MgIT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBsb2FkZWQgdmlldyBpcyB0aGUgc2FtZSBhcyB0aGUgc3BlY2lmaWVkIG9uZSwgd2Ugd2lsbCBkbyBub3RoaW5nXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9sb2FkZWRWaWV3Q2xhc3MgPT09IHZpZXcpIHtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucG9wVmlldygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy52ZXJpZnlWaWV3c0NvbnRhaW5lckV4aXN0KCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHZpZXcpO1xyXG5cclxuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSAodGhpcy5fdmlld0NvbnRhaW5lclJlZiBhcyBWaWV3Q29udGFpbmVyUmVmKS5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2xvYWRlZFZpZXdNb2RlbCA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5tb2RlbENsYXNzICE9PSBudWxsID8gbmV3IChjb21wb25lbnRSZWYuaW5zdGFuY2UubW9kZWxDbGFzcyBhcyBhbnkpKCkgOiBudWxsO1xyXG5cclxuICAgICAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICB0aGlzLl9sb2FkZWRWaWV3Q2xhc3MgPSB2aWV3O1xyXG5cclxuICAgICAgICByZXR1cm4gY29tcG9uZW50UmVmO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgbW9kZWwgdGhhdCBpcyBpbnN0YW50aWF0ZWQgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIHZpZXcuIChBIHZpZXcgbW9kZWwgb25seSBsaXZlcyB3aGlsZSBpdHMgdmlldyBpcyBhY3RpdmUpXHJcbiAgICAgKiBJZiBubyB2aWV3IG1vZGVsIGlzIGFzc2lnbmVkIHRvIHRoZSBjdXJyZW50IHZpZXcgb3Igbm8gdmlldyBpcyBsb2FkZWQsIGFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93bi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IHZpZXcgbW9kZWwgaW5zdGFuY2UsIHdoaWNoIG11c3QgYmUgY2FzdGVkIHRvIHRoZSBhcHByb3BpYXRlIFZpZXdNb2RlbCBleHRlbmRlZCBjbGFzc1xyXG4gICAgICovXHJcbiAgICBnZXQgbW9kZWwoKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9sb2FkZWRWaWV3TW9kZWwgPT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gYWN0aXZlIG1vZGVsLiBNYWtlIHN1cmUgYSB2aWV3IGlzIGxvYWRlZCB3aXRoIGFuIGFzc2lnbmVkIG1vZGVsLiBEbyBub3QgYWNjZXNzIHRoZSBtb2RlbCB1bnRpbCB2aWV3IGlzIGluaXRpYWxpemVkIChmb3IgZXhhbXBsZSBvbiBuZ0FmdGVyVmlld0luaXQpJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGVkVmlld01vZGVsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlbGV0ZSB0aGUgY3VycmVudGx5IGxvYWRlZCB2aWV3IGZyb20gdGhlIHZpZXdzIGNvbnRhaW5lciwgYW5kIGxlYXZlIGl0IGVtcHR5LlxyXG4gICAgICogSWYgbm8gdmlldyBpcyBjdXJyZW50bHkgbG9hZGVkLCB0aGlzIG1ldGhvZCB3aWxsIGRvIG5vdGhpbmdcclxuICAgICAqL1xyXG4gICAgcG9wVmlldygpIHtcclxuXHJcbiAgICAgICAgdGhpcy52ZXJpZnlWaWV3c0NvbnRhaW5lckV4aXN0KCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9sb2FkZWRWaWV3Q2xhc3MgIT09IG51bGwpIHtcclxuXHJcbiAgICAgICAgICAgICh0aGlzLl92aWV3Q29udGFpbmVyUmVmIGFzIFZpZXdDb250YWluZXJSZWYpLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9sb2FkZWRWaWV3Q2xhc3MgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2xvYWRlZFZpZXdNb2RlbCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXV4aWxpYXJ5IG1ldGhvZCB0byB0ZXN0IGlmIHRoZSB2aWV3cyBjb250YWluZXIgaW5zdGFuY2UgaXMgYXZhaWxhYmxlIG9uIHRoZSBhcHBsaWNhdGlvblxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHZlcmlmeVZpZXdzQ29udGFpbmVyRXhpc3QoKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl92aWV3Q29udGFpbmVyUmVmID09PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZpZXdzIGNvbnRhaW5lciBub3QgZGVmaW5lZC4gUGxlYXNlIGRlY2xhcmUgYSA8dmlld3MtY29udGFpbmVyPiBlbGVtZW50IGluIHlvdXIgYXBwbGljYXRpb24nKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,93 +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 { MatDialogModule } from '@angular/material/dialog';
|
|
11
|
-
import { MatInputModule } from '@angular/material/input';
|
|
12
|
-
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
13
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
14
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
15
|
-
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
16
|
-
import { BusyStateBaseComponent } from '../../view/components/busy-state-base/busy-state-base.component';
|
|
17
|
-
import { DialogService } from '../../controller/dialog.service';
|
|
18
|
-
import { LocalizationService } from '../../controller/localization.service';
|
|
19
|
-
import { HTTPService } from '../../controller/http.service';
|
|
20
|
-
import { NotificationService } from '../../controller/notification.service';
|
|
21
|
-
import { UserService } from '../../controller/user.service';
|
|
22
|
-
import { ViewsService } from '../../controller/views.service';
|
|
23
|
-
import { ViewsContainerComponent } from '../../view/components/views-container/views-container.component';
|
|
24
|
-
import { ButtonImageComponent } from '../../view/components/button-image/button-image.component';
|
|
25
|
-
import { ButtonContainerComponent } from '../../view/components/button-container/button-container.component';
|
|
26
|
-
import { DialogErrorComponent } from '../../view/components/dialog-error/dialog-error.component';
|
|
27
|
-
import { DialogSingleOptionComponent } from '../../view/components/dialog-single-option/dialog-single-option.component';
|
|
28
|
-
import { DialogTwoOptionComponent } from '../../view/components/dialog-two-option/dialog-two-option.component';
|
|
29
|
-
import { DialogSingleSelectionListComponent } from '../../view/components/dialog-single-selection-list/dialog-single-selection-list.component';
|
|
30
|
-
import { DialogMultipleOptionComponent } from '../../view/components/dialog-multiple-option/dialog-multiple-option.component';
|
|
31
|
-
import { BrowserService } from '../../controller/browser.service';
|
|
32
|
-
import { ElementCreatedDirective } from '../../view/directives/ElementCreatedDirective';
|
|
33
|
-
import { ElementDestroyedDirective } from '../../view/directives/ElementDestroyedDirective';
|
|
34
|
-
import { AutoFocusOnDisplayDirective } from '../../view/directives/AutoFocusOnDisplayDirective';
|
|
35
|
-
import { AutoSelectTextOnFocusDirective } from '../../view/directives/AutoSelectTextOnFocusDirective';
|
|
36
|
-
/**
|
|
37
|
-
* This file contains the root module that contains all the library declarations and exports.
|
|
38
|
-
*/
|
|
39
|
-
export class TurboGuiAngularModule {
|
|
40
|
-
}
|
|
41
|
-
TurboGuiAngularModule.decorators = [
|
|
42
|
-
{ type: NgModule, args: [{
|
|
43
|
-
imports: [
|
|
44
|
-
MatDialogModule,
|
|
45
|
-
MatSnackBarModule,
|
|
46
|
-
MatInputModule,
|
|
47
|
-
MatButtonModule,
|
|
48
|
-
MatFormFieldModule,
|
|
49
|
-
BrowserAnimationsModule
|
|
50
|
-
],
|
|
51
|
-
declarations: [
|
|
52
|
-
BusyStateBaseComponent,
|
|
53
|
-
DialogErrorComponent,
|
|
54
|
-
DialogSingleOptionComponent,
|
|
55
|
-
DialogTwoOptionComponent,
|
|
56
|
-
DialogMultipleOptionComponent,
|
|
57
|
-
DialogSingleSelectionListComponent,
|
|
58
|
-
ViewsContainerComponent,
|
|
59
|
-
ButtonImageComponent,
|
|
60
|
-
ButtonContainerComponent,
|
|
61
|
-
ElementCreatedDirective,
|
|
62
|
-
ElementDestroyedDirective,
|
|
63
|
-
AutoFocusOnDisplayDirective,
|
|
64
|
-
AutoSelectTextOnFocusDirective
|
|
65
|
-
],
|
|
66
|
-
// Globally available singleton services are added here
|
|
67
|
-
providers: [
|
|
68
|
-
DialogService,
|
|
69
|
-
LocalizationService,
|
|
70
|
-
HTTPService,
|
|
71
|
-
NotificationService,
|
|
72
|
-
UserService,
|
|
73
|
-
ViewsService,
|
|
74
|
-
BrowserService
|
|
75
|
-
],
|
|
76
|
-
exports: [
|
|
77
|
-
BusyStateBaseComponent,
|
|
78
|
-
ViewsContainerComponent,
|
|
79
|
-
ButtonImageComponent,
|
|
80
|
-
ButtonContainerComponent,
|
|
81
|
-
DialogErrorComponent,
|
|
82
|
-
DialogSingleOptionComponent,
|
|
83
|
-
DialogTwoOptionComponent,
|
|
84
|
-
DialogMultipleOptionComponent,
|
|
85
|
-
DialogSingleSelectionListComponent,
|
|
86
|
-
ElementCreatedDirective,
|
|
87
|
-
ElementDestroyedDirective,
|
|
88
|
-
AutoFocusOnDisplayDirective,
|
|
89
|
-
AutoSelectTextOnFocusDirective
|
|
90
|
-
]
|
|
91
|
-
},] }
|
|
92
|
-
];
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVyYm9ndWktYW5ndWxhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dXJib2d1aS1hbmd1bGFyL3NyYy9tYWluL21vZGVsL21vZHVsZXMvdHVyYm9ndWktYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQ3hILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDJGQUEyRixDQUFDO0FBQy9JLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLCtFQUErRSxDQUFDO0FBQzlILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUd0Rzs7R0FFRztBQXdESCxNQUFNLE9BQU8scUJBQXFCOzs7WUF2RGpDLFFBQVEsU0FBQztnQkFFTixPQUFPLEVBQUU7b0JBQ0wsZUFBZTtvQkFDZixpQkFBaUI7b0JBQ2pCLGNBQWM7b0JBQ2QsZUFBZTtvQkFDZixrQkFBa0I7b0JBQ2xCLHVCQUF1QjtpQkFDMUI7Z0JBRUQsWUFBWSxFQUFFO29CQUNWLHNCQUFzQjtvQkFDdEIsb0JBQW9CO29CQUNwQiwyQkFBMkI7b0JBQzNCLHdCQUF3QjtvQkFDeEIsNkJBQTZCO29CQUM3QixrQ0FBa0M7b0JBQ2xDLHVCQUF1QjtvQkFDdkIsb0JBQW9CO29CQUNwQix3QkFBd0I7b0JBQ3hCLHVCQUF1QjtvQkFDdkIseUJBQXlCO29CQUN6QiwyQkFBMkI7b0JBQzNCLDhCQUE4QjtpQkFDakM7Z0JBRUQsdURBQXVEO2dCQUN2RCxTQUFTLEVBQUU7b0JBQ1AsYUFBYTtvQkFDYixtQkFBbUI7b0JBQ25CLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixXQUFXO29CQUNYLFlBQVk7b0JBQ1osY0FBYztpQkFDakI7Z0JBRUQsT0FBTyxFQUFFO29CQUNMLHNCQUFzQjtvQkFDdEIsdUJBQXVCO29CQUN2QixvQkFBb0I7b0JBQ3BCLHdCQUF3QjtvQkFDeEIsb0JBQW9CO29CQUNwQiwyQkFBMkI7b0JBQzNCLHdCQUF3QjtvQkFDeEIsNkJBQTZCO29CQUM3QixrQ0FBa0M7b0JBQ2xDLHVCQUF1QjtvQkFDdkIseUJBQXlCO29CQUN6QiwyQkFBMkI7b0JBQzNCLDhCQUE4QjtpQkFDakM7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHVyYm9HVUkgaXMgQSBsaWJyYXJ5IHRoYXQgaGVscHMgd2l0aCB0aGUgbW9zdCBjb21tb24gYW5kIGdlbmVyaWMgVUkgZWxlbWVudHMgYW5kIGZ1bmN0aW9uYWxpdGllc1xuICpcbiAqIFdlYnNpdGUgOiAtPiBodHRwOi8vd3d3LnR1cmJvZ3VpLm9yZ1xuICogTGljZW5zZSA6IC0+IExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKiBDb3B5UmlnaHQgOiAtPiBDb3B5cmlnaHQgMjAxOCBFZGVydG9uZSBBZHZhbmRlZCBTb2x1dGlvbnMuIGh0dHBzOi8vd3d3LmVkZXJ0b25lLmNvbVxuICovXG5cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBCdXN5U3RhdGVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdmlldy9jb21wb25lbnRzL2J1c3ktc3RhdGUtYmFzZS9idXN5LXN0YXRlLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250cm9sbGVyL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvaHR0cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250cm9sbGVyL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBWaWV3c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250cm9sbGVyL3ZpZXdzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWaWV3c0NvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3ZpZXcvY29tcG9uZW50cy92aWV3cy1jb250YWluZXIvdmlld3MtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1dHRvbkltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdmlldy9jb21wb25lbnRzL2J1dHRvbi1pbWFnZS9idXR0b24taW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3ZpZXcvY29tcG9uZW50cy9idXR0b24tY29udGFpbmVyL2J1dHRvbi1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ0Vycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdmlldy9jb21wb25lbnRzL2RpYWxvZy1lcnJvci9kaWFsb2ctZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ1NpbmdsZU9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3ZpZXcvY29tcG9uZW50cy9kaWFsb2ctc2luZ2xlLW9wdGlvbi9kaWFsb2ctc2luZ2xlLW9wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlhbG9nVHdvT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdmlldy9jb21wb25lbnRzL2RpYWxvZy10d28tb3B0aW9uL2RpYWxvZy10d28tb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaWFsb2dTaW5nbGVTZWxlY3Rpb25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdmlldy9jb21wb25lbnRzL2RpYWxvZy1zaW5nbGUtc2VsZWN0aW9uLWxpc3QvZGlhbG9nLXNpbmdsZS1zZWxlY3Rpb24tbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dNdWx0aXBsZU9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3ZpZXcvY29tcG9uZW50cy9kaWFsb2ctbXVsdGlwbGUtb3B0aW9uL2RpYWxvZy1tdWx0aXBsZS1vcHRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnJvd3NlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250cm9sbGVyL2Jyb3dzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRDcmVhdGVkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdmlldy9kaXJlY3RpdmVzL0VsZW1lbnRDcmVhdGVkRGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRWxlbWVudERlc3Ryb3llZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3ZpZXcvZGlyZWN0aXZlcy9FbGVtZW50RGVzdHJveWVkRGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQXV0b0ZvY3VzT25EaXNwbGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdmlldy9kaXJlY3RpdmVzL0F1dG9Gb2N1c09uRGlzcGxheURpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEF1dG9TZWxlY3RUZXh0T25Gb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3ZpZXcvZGlyZWN0aXZlcy9BdXRvU2VsZWN0VGV4dE9uRm9jdXNEaXJlY3RpdmUnO1xuXG5cbi8qKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSByb290IG1vZHVsZSB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgbGlicmFyeSBkZWNsYXJhdGlvbnMgYW5kIGV4cG9ydHMuXG4gKi9cbkBOZ01vZHVsZSh7XG5cbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgTWF0U25hY2tCYXJNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGVcbiAgICBdLFxuXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEJ1c3lTdGF0ZUJhc2VDb21wb25lbnQsXG4gICAgICAgIERpYWxvZ0Vycm9yQ29tcG9uZW50LFxuICAgICAgICBEaWFsb2dTaW5nbGVPcHRpb25Db21wb25lbnQsXG4gICAgICAgIERpYWxvZ1R3b09wdGlvbkNvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nTXVsdGlwbGVPcHRpb25Db21wb25lbnQsXG4gICAgICAgIERpYWxvZ1NpbmdsZVNlbGVjdGlvbkxpc3RDb21wb25lbnQsXG4gICAgICAgIFZpZXdzQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgICBCdXR0b25JbWFnZUNvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgICBFbGVtZW50Q3JlYXRlZERpcmVjdGl2ZSxcbiAgICAgICAgRWxlbWVudERlc3Ryb3llZERpcmVjdGl2ZSxcbiAgICAgICAgQXV0b0ZvY3VzT25EaXNwbGF5RGlyZWN0aXZlLFxuICAgICAgICBBdXRvU2VsZWN0VGV4dE9uRm9jdXNEaXJlY3RpdmVcbiAgICBdLFxuXG4gICAgLy8gR2xvYmFsbHkgYXZhaWxhYmxlIHNpbmdsZXRvbiBzZXJ2aWNlcyBhcmUgYWRkZWQgaGVyZVxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgICAgICBIVFRQU2VydmljZSxcbiAgICAgICAgTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICAgICAgVXNlclNlcnZpY2UsXG4gICAgICAgIFZpZXdzU2VydmljZSxcbiAgICAgICAgQnJvd3NlclNlcnZpY2VcbiAgICBdLFxuXG4gICAgZXhwb3J0czogW1xuICAgICAgICBCdXN5U3RhdGVCYXNlQ29tcG9uZW50LFxuICAgICAgICBWaWV3c0NvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uSW1hZ2VDb21wb25lbnQsXG4gICAgICAgIEJ1dHRvbkNvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nRXJyb3JDb21wb25lbnQsXG4gICAgICAgIERpYWxvZ1NpbmdsZU9wdGlvbkNvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nVHdvT3B0aW9uQ29tcG9uZW50LFxuICAgICAgICBEaWFsb2dNdWx0aXBsZU9wdGlvbkNvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nU2luZ2xlU2VsZWN0aW9uTGlzdENvbXBvbmVudCxcbiAgICAgICAgRWxlbWVudENyZWF0ZWREaXJlY3RpdmUsXG4gICAgICAgIEVsZW1lbnREZXN0cm95ZWREaXJlY3RpdmUsXG4gICAgICAgIEF1dG9Gb2N1c09uRGlzcGxheURpcmVjdGl2ZSxcbiAgICAgICAgQXV0b1NlbGVjdFRleHRPbkZvY3VzRGlyZWN0aXZlXG4gICAgXVxufSlcblxuZXhwb3J0IGNsYXNzIFR1cmJvR3VpQW5ndWxhck1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -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
|
-
import { Injectable } from '@angular/core';
|
|
10
|
-
import { trigger, animate, transition, style } from '@angular/animations';
|
|
11
|
-
/**
|
|
12
|
-
* Fade animations
|
|
13
|
-
*/
|
|
14
|
-
export class FadeAnimationClass {
|
|
15
|
-
/**
|
|
16
|
-
* Get a custom trigger to create fade animations when components are added or removed from the application
|
|
17
|
-
*
|
|
18
|
-
* @param triggerName The name for the trigger we want to create
|
|
19
|
-
* @param enter The time and easing that we want to use for the enter state
|
|
20
|
-
* @param leave The time and easing that we want to use for the leave state
|
|
21
|
-
*/
|
|
22
|
-
static getTrigger(triggerName, enter = '1s ease', leave = '0s ease') {
|
|
23
|
-
return trigger(triggerName, [
|
|
24
|
-
transition(':enter', [style({ opacity: 0 }), animate(enter)]),
|
|
25
|
-
transition(':leave', [style({ opacity: 1 }), animate(leave, style({ opacity: 0 }))])
|
|
26
|
-
]);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
FadeAnimationClass.decorators = [
|
|
30
|
-
{ type: Injectable }
|
|
31
|
-
];
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFkZS5hbmltYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dXJib2d1aS1hbmd1bGFyL3NyYy9tYWluL3ZpZXcvYW5pbWF0aW9ucy9mYWRlLmFuaW1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHMUU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBRTNCOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBbUIsRUFBRSxLQUFLLEdBQUcsU0FBUyxFQUFFLEtBQUssR0FBRyxTQUFTO1FBRXZFLE9BQU8sT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUNDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMzRCxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDaEYsQ0FBQyxDQUFDO0lBQ25DLENBQUM7OztZQWhCSixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0cmlnZ2VyLCBhbmltYXRlLCB0cmFuc2l0aW9uLCBzdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBGYWRlIGFuaW1hdGlvbnNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEZhZGVBbmltYXRpb25DbGFzcyB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgYSBjdXN0b20gdHJpZ2dlciB0byBjcmVhdGUgZmFkZSBhbmltYXRpb25zIHdoZW4gY29tcG9uZW50cyBhcmUgYWRkZWQgb3IgcmVtb3ZlZCBmcm9tIHRoZSBhcHBsaWNhdGlvblxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB0cmlnZ2VyTmFtZSBUaGUgbmFtZSBmb3IgdGhlIHRyaWdnZXIgd2Ugd2FudCB0byBjcmVhdGVcclxuICAgICAqIEBwYXJhbSBlbnRlciBUaGUgdGltZSBhbmQgZWFzaW5nIHRoYXQgd2Ugd2FudCB0byB1c2UgZm9yIHRoZSBlbnRlciBzdGF0ZVxyXG4gICAgICogQHBhcmFtIGxlYXZlIFRoZSB0aW1lIGFuZCBlYXNpbmcgdGhhdCB3ZSB3YW50IHRvIHVzZSBmb3IgdGhlIGxlYXZlIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRUcmlnZ2VyKHRyaWdnZXJOYW1lOiBzdHJpbmcsIGVudGVyID0gJzFzIGVhc2UnLCBsZWF2ZSA9ICcwcyBlYXNlJykge1xyXG5cclxuICAgICAgICByZXR1cm4gdHJpZ2dlcih0cmlnZ2VyTmFtZSwgW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHtvcGFjaXR5OiAwfSksIGFuaW1hdGUoZW50ZXIpXSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbc3R5bGUoe29wYWNpdHk6IDF9KSwgYW5pbWF0ZShsZWF2ZSwgc3R5bGUoe29wYWNpdHk6IDB9KSldKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,39 +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
|
-
/**
|
|
12
|
-
* This component is used by turboGUI angular library to show the busy state to the user.
|
|
13
|
-
* It is used to block all the user input and progressively shows a busy cursor to notify that the application
|
|
14
|
-
* is waiting for something.
|
|
15
|
-
*
|
|
16
|
-
* We can (should) override this component with our own one to adapt its visual appearance to our application.
|
|
17
|
-
* We can then set dialogService.busyStateComponentClass to our component class at the application start to to
|
|
18
|
-
* override the default one.
|
|
19
|
-
*/
|
|
20
|
-
export class BusyStateBaseComponent {
|
|
21
|
-
constructor() {
|
|
22
|
-
/**
|
|
23
|
-
* 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
|
|
24
|
-
*/
|
|
25
|
-
this.busyStateBaseFade = true;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
BusyStateBaseComponent.decorators = [
|
|
29
|
-
{ type: Component, args: [{
|
|
30
|
-
selector: 'tg-busy-state-base',
|
|
31
|
-
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",
|
|
32
|
-
animations: [FadeAnimationClass.getTrigger('busyStateBaseFade', '1s ease', '400ms ease')],
|
|
33
|
-
styles: [":host{position:fixed;top:0px;left:0px;right:0px;bottom:0px;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
|
-
},] }
|
|
35
|
-
];
|
|
36
|
-
BusyStateBaseComponent.propDecorators = {
|
|
37
|
-
busyStateBaseFade: [{ type: HostBinding, args: ['@busyStateBaseFade',] }]
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzeS1zdGF0ZS1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1cmJvZ3VpLWFuZ3VsYXIvc3JjL21haW4vdmlldy9jb21wb25lbnRzL2J1c3ktc3RhdGUtYmFzZS9idXN5LXN0YXRlLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdyRTs7Ozs7Ozs7R0FRRztBQVNILE1BQU0sT0FBTyxzQkFBc0I7SUFSbkM7UUFXSTs7V0FFRztRQUNnQyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDaEUsQ0FBQzs7O1lBZkEsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLDJ2QkFBK0M7Z0JBQy9DLFVBQVUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7O2FBRTFGOzs7Z0NBU0ksV0FBVyxTQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUdXJib0dVSSBpcyBBIGxpYnJhcnkgdGhhdCBoZWxwcyB3aXRoIHRoZSBtb3N0IGNvbW1vbiBhbmQgZ2VuZXJpYyBVSSBlbGVtZW50cyBhbmQgZnVuY3Rpb25hbGl0aWVzXHJcbiAqXHJcbiAqIFdlYnNpdGUgOiAtPiBodHRwOi8vd3d3LnR1cmJvZ3VpLm9yZ1xyXG4gKiBMaWNlbnNlIDogLT4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMC4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBMaWNlbnNlIFVybCA6IC0+IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKiBDb3B5UmlnaHQgOiAtPiBDb3B5cmlnaHQgMjAxOCBFZGVydG9uZSBBZHZhbmRlZCBTb2x1dGlvbnMuIGh0dHBzOi8vd3d3LmVkZXJ0b25lLmNvbVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmFkZUFuaW1hdGlvbkNsYXNzIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9ucy9mYWRlLmFuaW1hdGlvbic7XHJcblxyXG5cclxuLyoqXHJcbiAqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgYnkgdHVyYm9HVUkgYW5ndWxhciBsaWJyYXJ5IHRvIHNob3cgdGhlIGJ1c3kgc3RhdGUgdG8gdGhlIHVzZXIuXHJcbiAqIEl0IGlzIHVzZWQgdG8gYmxvY2sgYWxsIHRoZSB1c2VyIGlucHV0IGFuZCBwcm9ncmVzc2l2ZWx5IHNob3dzIGEgYnVzeSBjdXJzb3IgdG8gbm90aWZ5IHRoYXQgdGhlIGFwcGxpY2F0aW9uXHJcbiAqIGlzIHdhaXRpbmcgZm9yIHNvbWV0aGluZy5cclxuICpcclxuICogV2UgY2FuIChzaG91bGQpIG92ZXJyaWRlIHRoaXMgY29tcG9uZW50IHdpdGggb3VyIG93biBvbmUgdG8gYWRhcHQgaXRzIHZpc3VhbCBhcHBlYXJhbmNlIHRvIG91ciBhcHBsaWNhdGlvbi5cclxuICogV2UgY2FuIHRoZW4gc2V0IGRpYWxvZ1NlcnZpY2UuYnVzeVN0YXRlQ29tcG9uZW50Q2xhc3MgdG8gb3VyIGNvbXBvbmVudCBjbGFzcyBhdCB0aGUgYXBwbGljYXRpb24gc3RhcnQgdG8gdG9cclxuICogb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb25lLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Zy1idXN5LXN0YXRlLWJhc2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idXN5LXN0YXRlLWJhc2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGFuaW1hdGlvbnM6IFtGYWRlQW5pbWF0aW9uQ2xhc3MuZ2V0VHJpZ2dlcignYnVzeVN0YXRlQmFzZUZhZGUnLCAnMXMgZWFzZScsICc0MDBtcyBlYXNlJyldLFxyXG4gIHN0eWxlVXJsczogWycuL2J1c3ktc3RhdGUtYmFzZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEJ1c3lTdGF0ZUJhc2VDb21wb25lbnQge1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgaXMgdXNlZCB0byBhdHRhY2ggdGhlIGZhZGUgYW5pbWF0aW9uIGRpcmVjdGx5IHRvIHRoaXMgY29tcG9uZW50IHNvIGl0IGZhZGVzIGluIGFuZCBvdXQgd2hlbiBjcmVhdGVkIGFuZCByZW1vdmVkIGZyb20gdGhlIGFwcFxyXG4gICAgICovXHJcbiAgICBASG9zdEJpbmRpbmcoJ0BidXN5U3RhdGVCYXNlRmFkZScpIGJ1c3lTdGF0ZUJhc2VGYWRlID0gdHJ1ZTtcclxufVxyXG4iXX0=
|
|
@@ -1,149 +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 { HostBinding, HostListener, Input, Directive } from '@angular/core';
|
|
10
|
-
/**
|
|
11
|
-
* This is the base class for all button components
|
|
12
|
-
*/
|
|
13
|
-
export class ButtonBaseComponent {
|
|
14
|
-
constructor() {
|
|
15
|
-
/**
|
|
16
|
-
* Defines the actual opacity that is binded on the html part
|
|
17
|
-
*/
|
|
18
|
-
this.currentOpacity = .7;
|
|
19
|
-
/**
|
|
20
|
-
* Defines the actual scale that is binded on the html part
|
|
21
|
-
*/
|
|
22
|
-
this.currentScale = 'scale(1)';
|
|
23
|
-
/**
|
|
24
|
-
* Defines if the button can be clicked or not
|
|
25
|
-
*/
|
|
26
|
-
this.pointerEvents = 'initial';
|
|
27
|
-
/**
|
|
28
|
-
* Specifies if the button animations must rollback when the user releases the mouse or pointer after pressing it
|
|
29
|
-
*/
|
|
30
|
-
this.releaseOnMouseUp = true;
|
|
31
|
-
/**
|
|
32
|
-
* Specifies the amount of milliseconds that the button will vibrate when it gets clicked (only on compatible devices and browsers)
|
|
33
|
-
* Set it to 0 to disable click vibration
|
|
34
|
-
*/
|
|
35
|
-
this.vibrateOnClick = 25;
|
|
36
|
-
/**
|
|
37
|
-
* Defines the button opacity when it is not clicked
|
|
38
|
-
*/
|
|
39
|
-
this.defaultOpacity = .7;
|
|
40
|
-
/**
|
|
41
|
-
* Defines the image scale when it is not clicked
|
|
42
|
-
*/
|
|
43
|
-
this.defaultScale = 1;
|
|
44
|
-
/**
|
|
45
|
-
* Defines the button opacity when it is hovered
|
|
46
|
-
*/
|
|
47
|
-
this.hoverOpacity = .8;
|
|
48
|
-
/**
|
|
49
|
-
* Defines the image scale when it is hovered
|
|
50
|
-
*/
|
|
51
|
-
this.hoverScale = 1;
|
|
52
|
-
/**
|
|
53
|
-
* Defines the button opacity when it is clicked
|
|
54
|
-
*/
|
|
55
|
-
this.clickOpacity = 1;
|
|
56
|
-
/**
|
|
57
|
-
* Defines the image scale when it is clicked
|
|
58
|
-
*/
|
|
59
|
-
this.clickScale = 1;
|
|
60
|
-
/**
|
|
61
|
-
* Defines the button opacity when it is disabled
|
|
62
|
-
*/
|
|
63
|
-
this.disabledOpacity = .2;
|
|
64
|
-
/**
|
|
65
|
-
* Stores the value that tells if the button is enabled or disabled
|
|
66
|
-
*/
|
|
67
|
-
this._enabled = true;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Specifies if the button is enabled or disabled
|
|
71
|
-
*/
|
|
72
|
-
set enabled(v) {
|
|
73
|
-
this._enabled = v;
|
|
74
|
-
this.currentOpacity = v ? this.defaultOpacity : this.disabledOpacity;
|
|
75
|
-
this.pointerEvents = v ? 'initial' : 'none';
|
|
76
|
-
}
|
|
77
|
-
;
|
|
78
|
-
/**
|
|
79
|
-
* Set button default values
|
|
80
|
-
*/
|
|
81
|
-
ngOnInit() {
|
|
82
|
-
this.currentOpacity = this._enabled ? this.defaultOpacity : this.disabledOpacity;
|
|
83
|
-
this.currentScale = 'scale(1)';
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Listens for the mouse over the button component
|
|
87
|
-
*/
|
|
88
|
-
onMouseOver() {
|
|
89
|
-
if (this._enabled) {
|
|
90
|
-
this.currentOpacity = this.hoverOpacity;
|
|
91
|
-
this.currentScale = 'scale(' + this.hoverScale + ')';
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Listens for the mouse out of the button component
|
|
96
|
-
*/
|
|
97
|
-
onMouseOut() {
|
|
98
|
-
if (this._enabled) {
|
|
99
|
-
this.currentOpacity = this.defaultOpacity;
|
|
100
|
-
this.currentScale = 'scale(' + this.defaultScale + ')';
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Listens for the mouse down on the button component
|
|
105
|
-
*/
|
|
106
|
-
onMouseDown() {
|
|
107
|
-
if (this._enabled) {
|
|
108
|
-
this.currentOpacity = this.clickOpacity;
|
|
109
|
-
this.currentScale = 'scale(' + this.clickScale + ')';
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Listens for the mouse up of the button component
|
|
114
|
-
*/
|
|
115
|
-
onMouseUp() {
|
|
116
|
-
if (this._enabled) {
|
|
117
|
-
if (this.vibrateOnClick > 0 && window.navigator && window.navigator.vibrate) {
|
|
118
|
-
window.navigator.vibrate(this.vibrateOnClick);
|
|
119
|
-
}
|
|
120
|
-
if (this.releaseOnMouseUp) {
|
|
121
|
-
this.currentOpacity = this.defaultOpacity;
|
|
122
|
-
this.currentScale = 'scale(' + this.defaultScale + ')';
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
ButtonBaseComponent.decorators = [
|
|
128
|
-
{ type: Directive }
|
|
129
|
-
];
|
|
130
|
-
ButtonBaseComponent.propDecorators = {
|
|
131
|
-
currentOpacity: [{ type: HostBinding, args: ['style.opacity',] }],
|
|
132
|
-
currentScale: [{ type: HostBinding, args: ['style.transform',] }],
|
|
133
|
-
pointerEvents: [{ type: HostBinding, args: ['style.pointer-events',] }],
|
|
134
|
-
releaseOnMouseUp: [{ type: Input }],
|
|
135
|
-
vibrateOnClick: [{ type: Input }],
|
|
136
|
-
defaultOpacity: [{ type: Input }],
|
|
137
|
-
defaultScale: [{ type: Input }],
|
|
138
|
-
hoverOpacity: [{ type: Input }],
|
|
139
|
-
hoverScale: [{ type: Input }],
|
|
140
|
-
clickOpacity: [{ type: Input }],
|
|
141
|
-
clickScale: [{ type: Input }],
|
|
142
|
-
disabledOpacity: [{ type: Input }],
|
|
143
|
-
enabled: [{ type: Input }],
|
|
144
|
-
onMouseOver: [{ type: HostListener, args: ['mouseover',] }],
|
|
145
|
-
onMouseOut: [{ type: HostListener, args: ['mouseout',] }, { type: HostListener, args: ['pointerout',] }, { type: HostListener, args: ['pointerleave',] }],
|
|
146
|
-
onMouseDown: [{ type: HostListener, args: ['pointerdown',] }],
|
|
147
|
-
onMouseUp: [{ type: HostListener, args: ['pointerup',] }]
|
|
148
|
-
};
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi92aWV3L2NvbXBvbmVudHMvYnV0dG9uLWJhc2UvYnV0dG9uLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3BGOztHQUVHO0FBRUgsTUFBTSxPQUFnQixtQkFBbUI7SUFEekM7UUFJSTs7V0FFRztRQUMyQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUdsRDs7V0FFRztRQUM2QixpQkFBWSxHQUFHLFVBQVUsQ0FBQztRQUcxRDs7V0FFRztRQUNrQyxrQkFBYSxHQUFHLFNBQVMsQ0FBQztRQUcvRDs7V0FFRztRQUNNLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUdqQzs7O1dBR0c7UUFDTSxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUc3Qjs7V0FFRztRQUNNLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRzdCOztXQUVHO1FBQ00saUJBQVksR0FBRyxDQUFDLENBQUM7UUFHMUI7O1dBRUc7UUFDTSxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUczQjs7V0FFRztRQUNNLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFHeEI7O1dBRUc7UUFDTSxpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUcxQjs7V0FFRztRQUNNLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFHeEI7O1dBRUc7UUFDTSxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUc5Qjs7V0FFRztRQUNLLGFBQVEsR0FBRyxJQUFJLENBQUM7SUEwRjVCLENBQUM7SUF2Rkc7O09BRUc7SUFDSCxJQUFhLE9BQU8sQ0FBQyxDQUFTO1FBRTFCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRWxCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBRXJFLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNoRCxDQUFDO0lBQUEsQ0FBQztJQUdGOztPQUVHO0lBQ0gsUUFBUTtRQUVKLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNqRixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQztJQUNuQyxDQUFDO0lBR0Q7O09BRUc7SUFFSCxXQUFXO1FBRVAsSUFBRyxJQUFJLENBQUMsUUFBUSxFQUFDO1lBRWIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxHQUFJLElBQUksQ0FBQyxVQUE0QixHQUFHLEdBQUcsQ0FBQztTQUMzRTtJQUNMLENBQUM7SUFHRDs7T0FFRztJQUlILFVBQVU7UUFFTixJQUFHLElBQUksQ0FBQyxRQUFRLEVBQUM7WUFFYixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLEdBQUksSUFBSSxDQUFDLFlBQThCLEdBQUcsR0FBRyxDQUFDO1NBQzdFO0lBQ0wsQ0FBQztJQUdEOztPQUVHO0lBRUgsV0FBVztRQUVQLElBQUcsSUFBSSxDQUFDLFFBQVEsRUFBQztZQUViLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsR0FBSSxJQUFJLENBQUMsVUFBNEIsR0FBRyxHQUFHLENBQUM7U0FDM0U7SUFDTCxDQUFDO0lBR0Q7O09BRUc7SUFFSCxTQUFTO1FBRUwsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBRWYsSUFBSSxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFO2dCQUV6RSxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDakQ7WUFFRCxJQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBQztnQkFFckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsR0FBSSxJQUFJLENBQUMsWUFBOEIsR0FBRyxHQUFHLENBQUM7YUFDN0U7U0FDSjtJQUNMLENBQUM7OztZQXpLSixTQUFTOzs7NkJBT0wsV0FBVyxTQUFDLGVBQWU7MkJBTTNCLFdBQVcsU0FBQyxpQkFBaUI7NEJBTTdCLFdBQVcsU0FBQyxzQkFBc0I7K0JBTWxDLEtBQUs7NkJBT0wsS0FBSzs2QkFNTCxLQUFLOzJCQU1MLEtBQUs7MkJBTUwsS0FBSzt5QkFNTCxLQUFLOzJCQU1MLEtBQUs7eUJBTUwsS0FBSzs4QkFNTCxLQUFLO3NCQVlMLEtBQUs7MEJBdUJMLFlBQVksU0FBQyxXQUFXO3lCQWN4QixZQUFZLFNBQUMsVUFBVSxjQUN2QixZQUFZLFNBQUMsWUFBWSxjQUN6QixZQUFZLFNBQUMsY0FBYzswQkFjM0IsWUFBWSxTQUFDLGFBQWE7d0JBYzFCLFlBQVksU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuLyoqXHJcbiAqIFRoaXMgaXMgdGhlIGJhc2UgY2xhc3MgZm9yIGFsbCBidXR0b24gY29tcG9uZW50c1xyXG4gKi9cclxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQnV0dG9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB0aGUgYWN0dWFsIG9wYWNpdHkgdGhhdCBpcyBiaW5kZWQgb24gdGhlIGh0bWwgcGFydFxyXG4gICAgICovXHJcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm9wYWNpdHknKSBjdXJyZW50T3BhY2l0eSA9IC43O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgdGhlIGFjdHVhbCBzY2FsZSB0aGF0IGlzIGJpbmRlZCBvbiB0aGUgaHRtbCBwYXJ0XHJcbiAgICAgKi9cclxuICAgIEBIb3N0QmluZGluZygnc3R5bGUudHJhbnNmb3JtJykgY3VycmVudFNjYWxlID0gJ3NjYWxlKDEpJztcclxuICAgIFxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgaWYgdGhlIGJ1dHRvbiBjYW4gYmUgY2xpY2tlZCBvciBub3RcclxuICAgICAqL1xyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb2ludGVyLWV2ZW50cycpIHBvaW50ZXJFdmVudHMgPSAnaW5pdGlhbCc7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3BlY2lmaWVzIGlmIHRoZSBidXR0b24gYW5pbWF0aW9ucyBtdXN0IHJvbGxiYWNrIHdoZW4gdGhlIHVzZXIgcmVsZWFzZXMgdGhlIG1vdXNlIG9yIHBvaW50ZXIgYWZ0ZXIgcHJlc3NpbmcgaXRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcmVsZWFzZU9uTW91c2VVcCA9IHRydWU7XHJcbiAgICBcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBTcGVjaWZpZXMgdGhlIGFtb3VudCBvZiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgYnV0dG9uIHdpbGwgdmlicmF0ZSB3aGVuIGl0IGdldHMgY2xpY2tlZCAob25seSBvbiBjb21wYXRpYmxlIGRldmljZXMgYW5kIGJyb3dzZXJzKVxyXG4gICAgICogU2V0IGl0IHRvIDAgdG8gZGlzYWJsZSBjbGljayB2aWJyYXRpb25cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgdmlicmF0ZU9uQ2xpY2sgPSAyNTtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmVzIHRoZSBidXR0b24gb3BhY2l0eSB3aGVuIGl0IGlzIG5vdCBjbGlja2VkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGRlZmF1bHRPcGFjaXR5ID0gLjc7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB0aGUgaW1hZ2Ugc2NhbGUgd2hlbiBpdCBpcyBub3QgY2xpY2tlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBkZWZhdWx0U2NhbGUgPSAxO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgdGhlIGJ1dHRvbiBvcGFjaXR5IHdoZW4gaXQgaXMgaG92ZXJlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBob3Zlck9wYWNpdHkgPSAuODtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmVzIHRoZSBpbWFnZSBzY2FsZSB3aGVuIGl0IGlzIGhvdmVyZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgaG92ZXJTY2FsZSA9IDE7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB0aGUgYnV0dG9uIG9wYWNpdHkgd2hlbiBpdCBpcyBjbGlja2VkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGNsaWNrT3BhY2l0eSA9IDE7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB0aGUgaW1hZ2Ugc2NhbGUgd2hlbiBpdCBpcyBjbGlja2VkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGNsaWNrU2NhbGUgPSAxO1xyXG4gICAgXHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB0aGUgYnV0dG9uIG9wYWNpdHkgd2hlbiBpdCBpcyBkaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZE9wYWNpdHkgPSAuMjtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9yZXMgdGhlIHZhbHVlIHRoYXQgdGVsbHMgaWYgdGhlIGJ1dHRvbiBpcyBlbmFibGVkIG9yIGRpc2FibGVkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2VuYWJsZWQgPSB0cnVlO1xyXG4gICAgXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTcGVjaWZpZXMgaWYgdGhlIGJ1dHRvbiBpcyBlbmFibGVkIG9yIGRpc2FibGVkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHNldCBlbmFibGVkKHY6Ym9vbGVhbil7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5fZW5hYmxlZCA9IHY7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5jdXJyZW50T3BhY2l0eSA9IHYgPyB0aGlzLmRlZmF1bHRPcGFjaXR5IDogdGhpcy5kaXNhYmxlZE9wYWNpdHk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5wb2ludGVyRXZlbnRzID0gdiA/ICdpbml0aWFsJyA6ICdub25lJzsgXHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCBidXR0b24gZGVmYXVsdCB2YWx1ZXNcclxuICAgICAqL1xyXG4gICAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgICAgIHRoaXMuY3VycmVudE9wYWNpdHkgPSB0aGlzLl9lbmFibGVkID8gdGhpcy5kZWZhdWx0T3BhY2l0eSA6IHRoaXMuZGlzYWJsZWRPcGFjaXR5O1xyXG4gICAgICAgIHRoaXMuY3VycmVudFNjYWxlID0gJ3NjYWxlKDEpJztcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0ZW5zIGZvciB0aGUgbW91c2Ugb3ZlciB0aGUgYnV0dG9uIGNvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZW92ZXInKVxyXG4gICAgb25Nb3VzZU92ZXIoKSB7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuX2VuYWJsZWQpe1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50T3BhY2l0eSA9IHRoaXMuaG92ZXJPcGFjaXR5O1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTY2FsZSA9ICdzY2FsZSgnICsgKHRoaXMuaG92ZXJTY2FsZSBhcyBhbnkgYXMgc3RyaW5nKSArICcpJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlzdGVucyBmb3IgdGhlIG1vdXNlIG91dCBvZiB0aGUgYnV0dG9uIGNvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZW91dCcpXHJcbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyb3V0JylcclxuICAgIEBIb3N0TGlzdGVuZXIoJ3BvaW50ZXJsZWF2ZScpXHJcbiAgICBvbk1vdXNlT3V0KCkge1xyXG5cclxuICAgICAgICBpZih0aGlzLl9lbmFibGVkKXtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE9wYWNpdHkgPSB0aGlzLmRlZmF1bHRPcGFjaXR5O1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTY2FsZSA9ICdzY2FsZSgnICsgKHRoaXMuZGVmYXVsdFNjYWxlIGFzIGFueSBhcyBzdHJpbmcpICsgJyknO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0ZW5zIGZvciB0aGUgbW91c2UgZG93biBvbiB0aGUgYnV0dG9uIGNvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyZG93bicpXHJcbiAgICBvbk1vdXNlRG93bigpIHtcclxuXHJcbiAgICAgICAgaWYodGhpcy5fZW5hYmxlZCl7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRPcGFjaXR5ID0gdGhpcy5jbGlja09wYWNpdHk7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNjYWxlID0gJ3NjYWxlKCcgKyAodGhpcy5jbGlja1NjYWxlIGFzIGFueSBhcyBzdHJpbmcpICsgJyknOyBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlzdGVucyBmb3IgdGhlIG1vdXNlIHVwIG9mIHRoZSBidXR0b24gY29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3BvaW50ZXJ1cCcpXHJcbiAgICBvbk1vdXNlVXAoKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9lbmFibGVkKSB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZiAodGhpcy52aWJyYXRlT25DbGljayA+IDAgJiYgd2luZG93Lm5hdmlnYXRvciAmJiB3aW5kb3cubmF2aWdhdG9yLnZpYnJhdGUpIHtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgd2luZG93Lm5hdmlnYXRvci52aWJyYXRlKHRoaXMudmlicmF0ZU9uQ2xpY2spO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZih0aGlzLnJlbGVhc2VPbk1vdXNlVXApe1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRPcGFjaXR5ID0gdGhpcy5kZWZhdWx0T3BhY2l0eTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNjYWxlID0gJ3NjYWxlKCcgKyAodGhpcy5kZWZhdWx0U2NhbGUgYXMgYW55IGFzIHN0cmluZykgKyAnKSc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|