turbogui-angular 7.0.0 → 9.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 +140 -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 +1951 -0
- package/fesm2015/turbogui-angular.mjs.map +1 -0
- package/{fesm2015/turbogui-angular.js → fesm2020/turbogui-angular.mjs} +366 -298
- package/fesm2020/turbogui-angular.mjs.map +1 -0
- package/index.d.ts +6 -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 +25 -13
- 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.d.ts +0 -7
- 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
|
@@ -0,0 +1,180 @@
|
|
|
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
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
/**
|
|
12
|
+
* This is the base class for all button components
|
|
13
|
+
*/
|
|
14
|
+
export class ButtonBaseComponent {
|
|
15
|
+
constructor() {
|
|
16
|
+
/**
|
|
17
|
+
* Defines the actual opacity that is binded on the html part
|
|
18
|
+
*/
|
|
19
|
+
this.currentOpacity = .7;
|
|
20
|
+
/**
|
|
21
|
+
* Defines the actual scale that is binded on the html part
|
|
22
|
+
*/
|
|
23
|
+
this.currentScale = 'scale(1)';
|
|
24
|
+
/**
|
|
25
|
+
* Defines if the button can be clicked or not
|
|
26
|
+
*/
|
|
27
|
+
this.pointerEvents = 'initial';
|
|
28
|
+
/**
|
|
29
|
+
* Specifies if the button animations must rollback when the user releases the mouse or pointer after pressing it
|
|
30
|
+
*/
|
|
31
|
+
this.releaseOnMouseUp = true;
|
|
32
|
+
/**
|
|
33
|
+
* Specifies the amount of milliseconds that the button will vibrate when it gets clicked (only on compatible devices and browsers)
|
|
34
|
+
* Set it to 0 to disable click vibration
|
|
35
|
+
*/
|
|
36
|
+
this.vibrateOnClick = 25;
|
|
37
|
+
/**
|
|
38
|
+
* Defines the button opacity when it is not clicked
|
|
39
|
+
*/
|
|
40
|
+
this.defaultOpacity = .7;
|
|
41
|
+
/**
|
|
42
|
+
* Defines the image scale when it is not clicked
|
|
43
|
+
*/
|
|
44
|
+
this.defaultScale = 1;
|
|
45
|
+
/**
|
|
46
|
+
* Defines the button opacity when it is hovered
|
|
47
|
+
*/
|
|
48
|
+
this.hoverOpacity = .8;
|
|
49
|
+
/**
|
|
50
|
+
* Defines the image scale when it is hovered
|
|
51
|
+
*/
|
|
52
|
+
this.hoverScale = 1;
|
|
53
|
+
/**
|
|
54
|
+
* Defines the button opacity when it is clicked
|
|
55
|
+
*/
|
|
56
|
+
this.clickOpacity = 1;
|
|
57
|
+
/**
|
|
58
|
+
* Defines the image scale when it is clicked
|
|
59
|
+
*/
|
|
60
|
+
this.clickScale = 1;
|
|
61
|
+
/**
|
|
62
|
+
* Defines the button opacity when it is disabled
|
|
63
|
+
*/
|
|
64
|
+
this.disabledOpacity = .2;
|
|
65
|
+
/**
|
|
66
|
+
* Stores the value that tells if the button is enabled or disabled
|
|
67
|
+
*/
|
|
68
|
+
this._enabled = true;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Specifies if the button is enabled or disabled
|
|
72
|
+
*/
|
|
73
|
+
set enabled(v) {
|
|
74
|
+
this._enabled = v;
|
|
75
|
+
this.currentOpacity = v ? this.defaultOpacity : this.disabledOpacity;
|
|
76
|
+
this.pointerEvents = v ? 'initial' : 'none';
|
|
77
|
+
}
|
|
78
|
+
;
|
|
79
|
+
/**
|
|
80
|
+
* Set button default values
|
|
81
|
+
*/
|
|
82
|
+
ngOnInit() {
|
|
83
|
+
this.currentOpacity = this._enabled ? this.defaultOpacity : this.disabledOpacity;
|
|
84
|
+
this.currentScale = 'scale(1)';
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Listens for the mouse over the button component
|
|
88
|
+
*/
|
|
89
|
+
onMouseOver() {
|
|
90
|
+
if (this._enabled) {
|
|
91
|
+
this.currentOpacity = this.hoverOpacity;
|
|
92
|
+
this.currentScale = 'scale(' + this.hoverScale + ')';
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Listens for the mouse out of the button component
|
|
97
|
+
*/
|
|
98
|
+
onMouseOut() {
|
|
99
|
+
if (this._enabled) {
|
|
100
|
+
this.currentOpacity = this.defaultOpacity;
|
|
101
|
+
this.currentScale = 'scale(' + this.defaultScale + ')';
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Listens for the mouse down on the button component
|
|
106
|
+
*/
|
|
107
|
+
onMouseDown() {
|
|
108
|
+
if (this._enabled) {
|
|
109
|
+
this.currentOpacity = this.clickOpacity;
|
|
110
|
+
this.currentScale = 'scale(' + this.clickScale + ')';
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Listens for the mouse up of the button component
|
|
115
|
+
*/
|
|
116
|
+
onMouseUp() {
|
|
117
|
+
if (this._enabled) {
|
|
118
|
+
if (this.vibrateOnClick > 0 && window.navigator && window.navigator.vibrate) {
|
|
119
|
+
window.navigator.vibrate(this.vibrateOnClick);
|
|
120
|
+
}
|
|
121
|
+
if (this.releaseOnMouseUp) {
|
|
122
|
+
this.currentOpacity = this.defaultOpacity;
|
|
123
|
+
this.currentScale = 'scale(' + this.defaultScale + ')';
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
ButtonBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ButtonBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
129
|
+
ButtonBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: ButtonBaseComponent, inputs: { releaseOnMouseUp: "releaseOnMouseUp", vibrateOnClick: "vibrateOnClick", defaultOpacity: "defaultOpacity", defaultScale: "defaultScale", hoverOpacity: "hoverOpacity", hoverScale: "hoverScale", clickOpacity: "clickOpacity", clickScale: "clickScale", disabledOpacity: "disabledOpacity", enabled: "enabled" }, host: { listeners: { "mouseover": "onMouseOver()", "mouseout": "onMouseOut()", "pointerout": "onMouseOut()", "pointerleave": "onMouseOut()", "pointerdown": "onMouseDown()", "pointerup": "onMouseUp()" }, properties: { "style.opacity": "this.currentOpacity", "style.transform": "this.currentScale", "style.pointer-events": "this.pointerEvents" } }, ngImport: i0 });
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ButtonBaseComponent, decorators: [{
|
|
131
|
+
type: Directive
|
|
132
|
+
}], propDecorators: { currentOpacity: [{
|
|
133
|
+
type: HostBinding,
|
|
134
|
+
args: ['style.opacity']
|
|
135
|
+
}], currentScale: [{
|
|
136
|
+
type: HostBinding,
|
|
137
|
+
args: ['style.transform']
|
|
138
|
+
}], pointerEvents: [{
|
|
139
|
+
type: HostBinding,
|
|
140
|
+
args: ['style.pointer-events']
|
|
141
|
+
}], releaseOnMouseUp: [{
|
|
142
|
+
type: Input
|
|
143
|
+
}], vibrateOnClick: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], defaultOpacity: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], defaultScale: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}], hoverOpacity: [{
|
|
150
|
+
type: Input
|
|
151
|
+
}], hoverScale: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], clickOpacity: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}], clickScale: [{
|
|
156
|
+
type: Input
|
|
157
|
+
}], disabledOpacity: [{
|
|
158
|
+
type: Input
|
|
159
|
+
}], enabled: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}], onMouseOver: [{
|
|
162
|
+
type: HostListener,
|
|
163
|
+
args: ['mouseover']
|
|
164
|
+
}], onMouseOut: [{
|
|
165
|
+
type: HostListener,
|
|
166
|
+
args: ['mouseout']
|
|
167
|
+
}, {
|
|
168
|
+
type: HostListener,
|
|
169
|
+
args: ['pointerout']
|
|
170
|
+
}, {
|
|
171
|
+
type: HostListener,
|
|
172
|
+
args: ['pointerleave']
|
|
173
|
+
}], onMouseDown: [{
|
|
174
|
+
type: HostListener,
|
|
175
|
+
args: ['pointerdown']
|
|
176
|
+
}], onMouseUp: [{
|
|
177
|
+
type: HostListener,
|
|
178
|
+
args: ['pointerup']
|
|
179
|
+
}] } });
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi92aWV3L2NvbXBvbmVudHMvYnV0dG9uLWJhc2UvYnV0dG9uLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdwRjs7R0FFRztBQUVILE1BQU0sT0FBZ0IsbUJBQW1CO0lBRHpDO1FBSUk7O1dBRUc7UUFDMkIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFHbEQ7O1dBRUc7UUFDNkIsaUJBQVksR0FBRyxVQUFVLENBQUM7UUFHMUQ7O1dBRUc7UUFDa0Msa0JBQWEsR0FBRyxTQUFTLENBQUM7UUFHL0Q7O1dBRUc7UUFDTSxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFHakM7OztXQUdHO1FBQ00sbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFHN0I7O1dBRUc7UUFDTSxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUc3Qjs7V0FFRztRQUNNLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBRzFCOztXQUVHO1FBQ00saUJBQVksR0FBRyxFQUFFLENBQUM7UUFHM0I7O1dBRUc7UUFDTSxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBR3hCOztXQUVHO1FBQ00saUJBQVksR0FBRyxDQUFDLENBQUM7UUFHMUI7O1dBRUc7UUFDTSxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBR3hCOztXQUVHO1FBQ00sb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFHOUI7O1dBRUc7UUFDSyxhQUFRLEdBQUcsSUFBSSxDQUFDO0tBMEYzQjtJQXZGRzs7T0FFRztJQUNILElBQWEsT0FBTyxDQUFDLENBQVM7UUFFMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFFbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7UUFFckUsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2hELENBQUM7SUFBQSxDQUFDO0lBR0Y7O09BRUc7SUFDSCxRQUFRO1FBRUosSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ2pGLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO0lBQ25DLENBQUM7SUFHRDs7T0FFRztJQUVILFdBQVc7UUFFUCxJQUFHLElBQUksQ0FBQyxRQUFRLEVBQUM7WUFFYixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLEdBQUksSUFBSSxDQUFDLFVBQTRCLEdBQUcsR0FBRyxDQUFDO1NBQzNFO0lBQ0wsQ0FBQztJQUdEOztPQUVHO0lBSUgsVUFBVTtRQUVOLElBQUcsSUFBSSxDQUFDLFFBQVEsRUFBQztZQUViLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsR0FBSSxJQUFJLENBQUMsWUFBOEIsR0FBRyxHQUFHLENBQUM7U0FDN0U7SUFDTCxDQUFDO0lBR0Q7O09BRUc7SUFFSCxXQUFXO1FBRVAsSUFBRyxJQUFJLENBQUMsUUFBUSxFQUFDO1lBRWIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxHQUFJLElBQUksQ0FBQyxVQUE0QixHQUFHLEdBQUcsQ0FBQztTQUMzRTtJQUNMLENBQUM7SUFHRDs7T0FFRztJQUVILFNBQVM7UUFFTCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFFZixJQUFJLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7Z0JBRXpFLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUNqRDtZQUVELElBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFDO2dCQUVyQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxHQUFJLElBQUksQ0FBQyxZQUE4QixHQUFHLEdBQUcsQ0FBQzthQUM3RTtTQUNKO0lBQ0wsQ0FBQzs7Z0hBeEtpQixtQkFBbUI7b0dBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUR4QyxTQUFTOzhCQU93QixjQUFjO3NCQUEzQyxXQUFXO3VCQUFDLGVBQWU7Z0JBTUksWUFBWTtzQkFBM0MsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBTU8sYUFBYTtzQkFBakQsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBTTFCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBTUcsWUFBWTtzQkFBcEIsS0FBSztnQkFNRyxZQUFZO3NCQUFwQixLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTUcsWUFBWTtzQkFBcEIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1HLGVBQWU7c0JBQXZCLEtBQUs7Z0JBWU8sT0FBTztzQkFBbkIsS0FBSztnQkF3Qk4sV0FBVztzQkFEVixZQUFZO3VCQUFDLFdBQVc7Z0JBaUJ6QixVQUFVO3NCQUhULFlBQVk7dUJBQUMsVUFBVTs7c0JBQ3ZCLFlBQVk7dUJBQUMsWUFBWTs7c0JBQ3pCLFlBQVk7dUJBQUMsY0FBYztnQkFlNUIsV0FBVztzQkFEVixZQUFZO3VCQUFDLGFBQWE7Z0JBZTNCLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuLyoqXHJcbiAqIFRoaXMgaXMgdGhlIGJhc2UgY2xhc3MgZm9yIGFsbCBidXR0b24gY29tcG9uZW50c1xyXG4gKi9cclxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQnV0dG9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB0aGUgYWN0dWFsIG9wYWNpdHkgdGhhdCBpcyBiaW5kZWQgb24gdGhlIGh0bWwgcGFydFxyXG4gICAgICovXHJcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm9wYWNpdHknKSBjdXJyZW50T3BhY2l0eSA9IC43O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgdGhlIGFjdHVhbCBzY2FsZSB0aGF0IGlzIGJpbmRlZCBvbiB0aGUgaHRtbCBwYXJ0XHJcbiAgICAgKi9cclxuICAgIEBIb3N0QmluZGluZygnc3R5bGUudHJhbnNmb3JtJykgY3VycmVudFNjYWxlID0gJ3NjYWxlKDEpJztcclxuICAgIFxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgaWYgdGhlIGJ1dHRvbiBjYW4gYmUgY2xpY2tlZCBvciBub3RcclxuICAgICAqL1xyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb2ludGVyLWV2ZW50cycpIHBvaW50ZXJFdmVudHMgPSAnaW5pdGlhbCc7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3BlY2lmaWVzIGlmIHRoZSBidXR0b24gYW5pbWF0aW9ucyBtdXN0IHJvbGxiYWNrIHdoZW4gdGhlIHVzZXIgcmVsZWFzZXMgdGhlIG1vdXNlIG9yIHBvaW50ZXIgYWZ0ZXIgcHJlc3NpbmcgaXRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcmVsZWFzZU9uTW91c2VVcCA9IHRydWU7XHJcbiAgICBcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBTcGVjaWZpZXMgdGhlIGFtb3VudCBvZiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgYnV0dG9uIHdpbGwgdmlicmF0ZSB3aGVuIGl0IGdldHMgY2xpY2tlZCAob25seSBvbiBjb21wYXRpYmxlIGRldmljZXMgYW5kIGJyb3dzZXJzKVxyXG4gICAgICogU2V0IGl0IHRvIDAgdG8gZGlzYWJsZSBjbGljayB2aWJyYXRpb25cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgdmlicmF0ZU9uQ2xpY2sgPSAyNTtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmVzIHRoZSBidXR0b24gb3BhY2l0eSB3aGVuIGl0IGlzIG5vdCBjbGlja2VkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGRlZmF1bHRPcGFjaXR5ID0gLjc7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB0aGUgaW1hZ2Ugc2NhbGUgd2hlbiBpdCBpcyBub3QgY2xpY2tlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBkZWZhdWx0U2NhbGUgPSAxO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgdGhlIGJ1dHRvbiBvcGFjaXR5IHdoZW4gaXQgaXMgaG92ZXJlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBob3Zlck9wYWNpdHkgPSAuODtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmVzIHRoZSBpbWFnZSBzY2FsZSB3aGVuIGl0IGlzIGhvdmVyZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgaG92ZXJTY2FsZSA9IDE7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB0aGUgYnV0dG9uIG9wYWNpdHkgd2hlbiBpdCBpcyBjbGlja2VkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGNsaWNrT3BhY2l0eSA9IDE7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB0aGUgaW1hZ2Ugc2NhbGUgd2hlbiBpdCBpcyBjbGlja2VkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGNsaWNrU2NhbGUgPSAxO1xyXG4gICAgXHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB0aGUgYnV0dG9uIG9wYWNpdHkgd2hlbiBpdCBpcyBkaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZE9wYWNpdHkgPSAuMjtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9yZXMgdGhlIHZhbHVlIHRoYXQgdGVsbHMgaWYgdGhlIGJ1dHRvbiBpcyBlbmFibGVkIG9yIGRpc2FibGVkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2VuYWJsZWQgPSB0cnVlO1xyXG4gICAgXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTcGVjaWZpZXMgaWYgdGhlIGJ1dHRvbiBpcyBlbmFibGVkIG9yIGRpc2FibGVkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHNldCBlbmFibGVkKHY6Ym9vbGVhbil7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5fZW5hYmxlZCA9IHY7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5jdXJyZW50T3BhY2l0eSA9IHYgPyB0aGlzLmRlZmF1bHRPcGFjaXR5IDogdGhpcy5kaXNhYmxlZE9wYWNpdHk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5wb2ludGVyRXZlbnRzID0gdiA/ICdpbml0aWFsJyA6ICdub25lJzsgXHJcbiAgICB9O1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCBidXR0b24gZGVmYXVsdCB2YWx1ZXNcclxuICAgICAqL1xyXG4gICAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgICAgIHRoaXMuY3VycmVudE9wYWNpdHkgPSB0aGlzLl9lbmFibGVkID8gdGhpcy5kZWZhdWx0T3BhY2l0eSA6IHRoaXMuZGlzYWJsZWRPcGFjaXR5O1xyXG4gICAgICAgIHRoaXMuY3VycmVudFNjYWxlID0gJ3NjYWxlKDEpJztcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0ZW5zIGZvciB0aGUgbW91c2Ugb3ZlciB0aGUgYnV0dG9uIGNvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZW92ZXInKVxyXG4gICAgb25Nb3VzZU92ZXIoKSB7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuX2VuYWJsZWQpe1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50T3BhY2l0eSA9IHRoaXMuaG92ZXJPcGFjaXR5O1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTY2FsZSA9ICdzY2FsZSgnICsgKHRoaXMuaG92ZXJTY2FsZSBhcyBhbnkgYXMgc3RyaW5nKSArICcpJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlzdGVucyBmb3IgdGhlIG1vdXNlIG91dCBvZiB0aGUgYnV0dG9uIGNvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZW91dCcpXHJcbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyb3V0JylcclxuICAgIEBIb3N0TGlzdGVuZXIoJ3BvaW50ZXJsZWF2ZScpXHJcbiAgICBvbk1vdXNlT3V0KCkge1xyXG5cclxuICAgICAgICBpZih0aGlzLl9lbmFibGVkKXtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE9wYWNpdHkgPSB0aGlzLmRlZmF1bHRPcGFjaXR5O1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTY2FsZSA9ICdzY2FsZSgnICsgKHRoaXMuZGVmYXVsdFNjYWxlIGFzIGFueSBhcyBzdHJpbmcpICsgJyknO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0ZW5zIGZvciB0aGUgbW91c2UgZG93biBvbiB0aGUgYnV0dG9uIGNvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyZG93bicpXHJcbiAgICBvbk1vdXNlRG93bigpIHtcclxuXHJcbiAgICAgICAgaWYodGhpcy5fZW5hYmxlZCl7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRPcGFjaXR5ID0gdGhpcy5jbGlja09wYWNpdHk7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNjYWxlID0gJ3NjYWxlKCcgKyAodGhpcy5jbGlja1NjYWxlIGFzIGFueSBhcyBzdHJpbmcpICsgJyknOyBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlzdGVucyBmb3IgdGhlIG1vdXNlIHVwIG9mIHRoZSBidXR0b24gY29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3BvaW50ZXJ1cCcpXHJcbiAgICBvbk1vdXNlVXAoKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9lbmFibGVkKSB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZiAodGhpcy52aWJyYXRlT25DbGljayA+IDAgJiYgd2luZG93Lm5hdmlnYXRvciAmJiB3aW5kb3cubmF2aWdhdG9yLnZpYnJhdGUpIHtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgd2luZG93Lm5hdmlnYXRvci52aWJyYXRlKHRoaXMudmlicmF0ZU9uQ2xpY2spO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZih0aGlzLnJlbGVhc2VPbk1vdXNlVXApe1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRPcGFjaXR5ID0gdGhpcy5kZWZhdWx0T3BhY2l0eTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNjYWxlID0gJ3NjYWxlKCcgKyAodGhpcy5kZWZhdWx0U2NhbGUgYXMgYW55IGFzIHN0cmluZykgKyAnKSc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,34 @@
|
|
|
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 { ButtonBaseComponent } from '../../../view/components/button-base/button-base.component';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
/**
|
|
14
|
+
* This component is a basic button without visual appearance, that is used as a container to load any content.
|
|
15
|
+
*/
|
|
16
|
+
export class ButtonContainerComponent extends ButtonBaseComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
/**
|
|
20
|
+
* 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
|
|
21
|
+
*/
|
|
22
|
+
this.buttonFade = true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
ButtonContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ButtonContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
+
ButtonContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ButtonContainerComponent, selector: "tg-button-container", host: { properties: { "@buttonFade": "this.buttonFade" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>", styles: [":host{-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .3s ease,transform .2s cubic-bezier(.04,.62,.58,1);display:flex;justify-content:center;align-items:center}\n"], animations: [FadeAnimationClass.getTrigger('buttonFade', '300ms ease', '300ms ease')] });
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ButtonContainerComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: 'tg-button-container', animations: [FadeAnimationClass.getTrigger('buttonFade', '300ms ease', '300ms ease')], template: "<ng-content></ng-content>", styles: [":host{-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .3s ease,transform .2s cubic-bezier(.04,.62,.58,1);display:flex;justify-content:center;align-items:center}\n"] }]
|
|
30
|
+
}], propDecorators: { buttonFade: [{
|
|
31
|
+
type: HostBinding,
|
|
32
|
+
args: ['@buttonFade']
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dXJib2d1aS1hbmd1bGFyL3NyYy9tYWluL3ZpZXcvY29tcG9uZW50cy9idXR0b24tY29udGFpbmVyL2J1dHRvbi1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi92aWV3L2NvbXBvbmVudHMvYnV0dG9uLWNvbnRhaW5lci9idXR0b24tY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0REFBNEQsQ0FBQzs7QUFHakc7O0dBRUc7QUFTSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsbUJBQW1CO0lBUmpFOztRQVdJOztXQUVHO1FBQ3lCLGVBQVUsR0FBRyxJQUFJLENBQUM7S0FDakQ7O3FIQVBZLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDhJQ3pCckMsMkJBQXlCLHdTRG9CWCxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDOzJGQUsxRSx3QkFBd0I7a0JBUnBDLFNBQVM7K0JBQ0UscUJBQXFCLGNBRW5CLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7OEJBV3ZELFVBQVU7c0JBQXJDLFdBQVc7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUdXJib0dVSSBpcyBBIGxpYnJhcnkgdGhhdCBoZWxwcyB3aXRoIHRoZSBtb3N0IGNvbW1vbiBhbmQgZ2VuZXJpYyBVSSBlbGVtZW50cyBhbmQgZnVuY3Rpb25hbGl0aWVzXHJcbiAqXHJcbiAqIFdlYnNpdGUgOiAtPiBodHRwOi8vd3d3LnR1cmJvZ3VpLm9yZ1xyXG4gKiBMaWNlbnNlIDogLT4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMC4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBMaWNlbnNlIFVybCA6IC0+IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKiBDb3B5UmlnaHQgOiAtPiBDb3B5cmlnaHQgMjAxOCBFZGVydG9uZSBBZHZhbmRlZCBTb2x1dGlvbnMuIGh0dHBzOi8vd3d3LmVkZXJ0b25lLmNvbVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmFkZUFuaW1hdGlvbkNsYXNzIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9ucy9mYWRlLmFuaW1hdGlvbic7XHJcbmltcG9ydCB7IEJ1dHRvbkJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi92aWV3L2NvbXBvbmVudHMvYnV0dG9uLWJhc2UvYnV0dG9uLWJhc2UuY29tcG9uZW50JztcclxuXHJcblxyXG4vKipcclxuICogVGhpcyBjb21wb25lbnQgaXMgYSBiYXNpYyBidXR0b24gd2l0aG91dCB2aXN1YWwgYXBwZWFyYW5jZSwgdGhhdCBpcyB1c2VkIGFzIGEgY29udGFpbmVyIHRvIGxvYWQgYW55IGNvbnRlbnQuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RnLWJ1dHRvbi1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24tY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBhbmltYXRpb25zOiBbRmFkZUFuaW1hdGlvbkNsYXNzLmdldFRyaWdnZXIoJ2J1dHRvbkZhZGUnLCAnMzAwbXMgZWFzZScsICczMDBtcyBlYXNlJyldLFxyXG4gIHN0eWxlVXJsczogWycuL2J1dHRvbi1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBCdXR0b25Db250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBCdXR0b25CYXNlQ29tcG9uZW50IHtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGlzIHVzZWQgdG8gYXR0YWNoIHRoZSBmYWRlIGFuaW1hdGlvbiBkaXJlY3RseSB0byB0aGlzIGNvbXBvbmVudCBzbyBpdCBmYWRlcyBpbiBhbmQgb3V0IHdoZW4gY3JlYXRlZCBhbmQgcmVtb3ZlZCBmcm9tIHRoZSBhcHBcclxuICAgICAqL1xyXG4gICAgQEhvc3RCaW5kaW5nKCdAYnV0dG9uRmFkZScpIGJ1dHRvbkZhZGUgPSB0cnVlO1xyXG59XHJcbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD4iXX0=
|
|
@@ -0,0 +1,47 @@
|
|
|
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, Input } from '@angular/core';
|
|
10
|
+
import { FadeAnimationClass } from '../../animations/fade.animation';
|
|
11
|
+
import { ButtonBaseComponent } from '../../../view/components/button-base/button-base.component';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
/**
|
|
14
|
+
* This component is a basic button that uses an image as its visual appearance
|
|
15
|
+
*/
|
|
16
|
+
export class ButtonImageComponent extends ButtonBaseComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
/**
|
|
20
|
+
* 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
|
|
21
|
+
*/
|
|
22
|
+
this.buttonFade = true;
|
|
23
|
+
/**
|
|
24
|
+
* Defines the path to the image that is shown by this button
|
|
25
|
+
*/
|
|
26
|
+
this.src = '';
|
|
27
|
+
/**
|
|
28
|
+
* Defines the percentual size of the image based on the button size. 100 means the image will fill the whole button,
|
|
29
|
+
* 50 only half, etc..
|
|
30
|
+
*/
|
|
31
|
+
this.percentSize = 100;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
ButtonImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ButtonImageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
ButtonImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ButtonImageComponent, selector: "tg-button-image", inputs: { src: "src", percentSize: "percentSize" }, host: { properties: { "@buttonFade": "this.buttonFade" } }, usesInheritance: true, ngImport: i0, template: "<img src=\"{{src}}\"\r\n [style.width]=\"percentSize + '%'\"\r\n [style.height]=\"percentSize + '%'\" />", styles: [":host{-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .3s ease,transform .2s cubic-bezier(.04,.62,.58,1);display:flex;justify-content:center;align-items:center}img{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}\n"], animations: [FadeAnimationClass.getTrigger('buttonFade', '300ms ease', '300ms ease')] });
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ButtonImageComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ selector: 'tg-button-image', animations: [FadeAnimationClass.getTrigger('buttonFade', '300ms ease', '300ms ease')], template: "<img src=\"{{src}}\"\r\n [style.width]=\"percentSize + '%'\"\r\n [style.height]=\"percentSize + '%'\" />", styles: [":host{-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .3s ease,transform .2s cubic-bezier(.04,.62,.58,1);display:flex;justify-content:center;align-items:center}img{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}\n"] }]
|
|
39
|
+
}], propDecorators: { buttonFade: [{
|
|
40
|
+
type: HostBinding,
|
|
41
|
+
args: ['@buttonFade']
|
|
42
|
+
}], src: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], percentSize: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWltYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1cmJvZ3VpLWFuZ3VsYXIvc3JjL21haW4vdmlldy9jb21wb25lbnRzL2J1dHRvbi1pbWFnZS9idXR0b24taW1hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi92aWV3L2NvbXBvbmVudHMvYnV0dG9uLWltYWdlL2J1dHRvbi1pbWFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDREQUE0RCxDQUFDOztBQUdqRzs7R0FFRztBQVNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFSN0Q7O1FBV0k7O1dBRUc7UUFDeUIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUc5Qzs7V0FFRztRQUNNLFFBQUcsR0FBRyxFQUFFLENBQUM7UUFHbEI7OztXQUdHO1FBQ00sZ0JBQVcsR0FBRyxHQUFHLENBQUM7S0FDOUI7O2lIQXBCWSxvQkFBb0I7cUdBQXBCLG9CQUFvQiw4TEN6QmpDLGdIQUV5Qyx3YURrQjNCLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7MkZBSzFFLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FFZixDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDOzhCQVd2RCxVQUFVO3NCQUFyQyxXQUFXO3VCQUFDLGFBQWE7Z0JBTWpCLEdBQUc7c0JBQVgsS0FBSztnQkFPRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGYWRlQW5pbWF0aW9uQ2xhc3MgfSBmcm9tICcuLi8uLi9hbmltYXRpb25zL2ZhZGUuYW5pbWF0aW9uJztcclxuaW1wb3J0IHsgQnV0dG9uQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3ZpZXcvY29tcG9uZW50cy9idXR0b24tYmFzZS9idXR0b24tYmFzZS5jb21wb25lbnQnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBUaGlzIGNvbXBvbmVudCBpcyBhIGJhc2ljIGJ1dHRvbiB0aGF0IHVzZXMgYW4gaW1hZ2UgYXMgaXRzIHZpc3VhbCBhcHBlYXJhbmNlXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RnLWJ1dHRvbi1pbWFnZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi1pbWFnZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgYW5pbWF0aW9uczogW0ZhZGVBbmltYXRpb25DbGFzcy5nZXRUcmlnZ2VyKCdidXR0b25GYWRlJywgJzMwMG1zIGVhc2UnLCAnMzAwbXMgZWFzZScpXSxcclxuICBzdHlsZVVybHM6IFsnLi9idXR0b24taW1hZ2UuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBCdXR0b25JbWFnZUNvbXBvbmVudCBleHRlbmRzIEJ1dHRvbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgaXMgdXNlZCB0byBhdHRhY2ggdGhlIGZhZGUgYW5pbWF0aW9uIGRpcmVjdGx5IHRvIHRoaXMgY29tcG9uZW50IHNvIGl0IGZhZGVzIGluIGFuZCBvdXQgd2hlbiBjcmVhdGVkIGFuZCByZW1vdmVkIGZyb20gdGhlIGFwcFxyXG4gICAgICovXHJcbiAgICBASG9zdEJpbmRpbmcoJ0BidXR0b25GYWRlJykgYnV0dG9uRmFkZSA9IHRydWU7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB0aGUgcGF0aCB0byB0aGUgaW1hZ2UgdGhhdCBpcyBzaG93biBieSB0aGlzIGJ1dHRvblxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBzcmMgPSAnJztcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZpbmVzIHRoZSBwZXJjZW50dWFsIHNpemUgb2YgdGhlIGltYWdlIGJhc2VkIG9uIHRoZSBidXR0b24gc2l6ZS4gMTAwIG1lYW5zIHRoZSBpbWFnZSB3aWxsIGZpbGwgdGhlIHdob2xlIGJ1dHRvbixcclxuICAgICAqIDUwIG9ubHkgaGFsZiwgZXRjLi5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcGVyY2VudFNpemUgPSAxMDA7XHJcbn1cclxuIiwiPGltZyBzcmM9XCJ7e3NyY319XCJcclxuICAgIFtzdHlsZS53aWR0aF09XCJwZXJjZW50U2l6ZSArICclJ1wiXHJcbiAgICBbc3R5bGUuaGVpZ2h0XT1cInBlcmNlbnRTaXplICsgJyUnXCIgLz4iXX0=
|
|
@@ -0,0 +1,41 @@
|
|
|
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, Inject } from '@angular/core';
|
|
10
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
11
|
+
import { DialogOptionsBaseComponent } from '../dialog-options-base/dialog-options-base.component';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@angular/material/dialog";
|
|
14
|
+
import * as i2 from "@angular/material/button";
|
|
15
|
+
import * as i3 from "@angular/common";
|
|
16
|
+
/**
|
|
17
|
+
* A dialog component with a single option button, to be used for error notifications
|
|
18
|
+
*/
|
|
19
|
+
export class DialogErrorComponent extends DialogOptionsBaseComponent {
|
|
20
|
+
constructor(dialogRef, data) {
|
|
21
|
+
super();
|
|
22
|
+
this.dialogRef = dialogRef;
|
|
23
|
+
this.data = data;
|
|
24
|
+
if (data.texts.length < 1) {
|
|
25
|
+
throw new Error('DialogErrorComponent expects 2 texts: The title and optionally a description');
|
|
26
|
+
}
|
|
27
|
+
if (data.options.length !== 1) {
|
|
28
|
+
throw new Error('DialogErrorComponent expects only one option');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
DialogErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogErrorComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
+
DialogErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DialogErrorComponent, selector: "tg-dialog-error", usesInheritance: true, ngImport: i0, template: "<div class=\"titleAndIconContainer\">\r\n <h3>\r\n {{data.texts[0]}}\r\n </h3>\r\n \r\n <!-- error icon -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\">\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\r\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\" fill=\"#ff0000\" />\r\n </svg>\r\n \r\n</div>\r\n\r\n<p *ngIf=\"data.texts.length > 1\">\r\n {{data.texts[1]}}\r\n</p>\r\n\r\n<button mat-raised-button color=\"warn\"\r\n (click)=\"dialogRef.close(0)\">\r\n \r\n {{data.options[0]}}\r\n \r\n</button>", styles: [":host{position:relative;min-height:300px}.titleAndIconContainer{display:flex;flex-direction:row;align-items:center}h3{margin-top:0;margin-bottom:25px;width:82%}svg{width:18%;height:auto}p{margin-bottom:52px}button{float:right;width:50%;min-width:50px}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogErrorComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ selector: 'tg-dialog-error', template: "<div class=\"titleAndIconContainer\">\r\n <h3>\r\n {{data.texts[0]}}\r\n </h3>\r\n \r\n <!-- error icon -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\">\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\r\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\" fill=\"#ff0000\" />\r\n </svg>\r\n \r\n</div>\r\n\r\n<p *ngIf=\"data.texts.length > 1\">\r\n {{data.texts[1]}}\r\n</p>\r\n\r\n<button mat-raised-button color=\"warn\"\r\n (click)=\"dialogRef.close(0)\">\r\n \r\n {{data.options[0]}}\r\n \r\n</button>", styles: [":host{position:relative;min-height:300px}.titleAndIconContainer{display:flex;flex-direction:row;align-items:center}h3{margin-top:0;margin-bottom:25px;width:82%}svg{width:18%;height:auto}p{margin-bottom:52px}button{float:right;width:50%;min-width:50px}\n"] }]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
38
|
+
type: Inject,
|
|
39
|
+
args: [MAT_DIALOG_DATA]
|
|
40
|
+
}] }]; } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWVycm9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1cmJvZ3VpLWFuZ3VsYXIvc3JjL21haW4vdmlldy9jb21wb25lbnRzL2RpYWxvZy1lcnJvci9kaWFsb2ctZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi92aWV3L2NvbXBvbmVudHMvZGlhbG9nLWVycm9yL2RpYWxvZy1lcnJvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7QUFHbEc7O0dBRUc7QUFRSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsMEJBQTBCO0lBRWhFLFlBQW1CLFNBQW1ELEVBQWtDLElBQVM7UUFFN0csS0FBSyxFQUFFLENBQUM7UUFGTyxjQUFTLEdBQVQsU0FBUyxDQUEwQztRQUFrQyxTQUFJLEdBQUosSUFBSSxDQUFLO1FBSTdHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBRXZCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEVBQThFLENBQUMsQ0FBQztTQUNuRztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBRTNCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztTQUNuRTtJQUNMLENBQUM7O2lIQWZRLG9CQUFvQiw4Q0FFbUQsZUFBZTtxR0FGdEYsb0JBQW9CLDhFQ3hCakMsK3BCQXNCUzsyRkRFSSxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0UsaUJBQWlCOzswQkFRZ0QsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBEaWFsb2dPcHRpb25zQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2RpYWxvZy1vcHRpb25zLWJhc2UvZGlhbG9nLW9wdGlvbnMtYmFzZS5jb21wb25lbnQnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBBIGRpYWxvZyBjb21wb25lbnQgd2l0aCBhIHNpbmdsZSBvcHRpb24gYnV0dG9uLCB0byBiZSB1c2VkIGZvciBlcnJvciBub3RpZmljYXRpb25zXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RnLWRpYWxvZy1lcnJvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy1lcnJvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLWVycm9yLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRGlhbG9nRXJyb3JDb21wb25lbnQgZXh0ZW5kcyBEaWFsb2dPcHRpb25zQmFzZUNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERpYWxvZ09wdGlvbnNCYXNlQ29tcG9uZW50PiwgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnkpIHtcclxuXHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAoZGF0YS50ZXh0cy5sZW5ndGggPCAxKSB7XHJcblxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RpYWxvZ0Vycm9yQ29tcG9uZW50IGV4cGVjdHMgMiB0ZXh0czogVGhlIHRpdGxlIGFuZCBvcHRpb25hbGx5IGEgZGVzY3JpcHRpb24nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkYXRhLm9wdGlvbnMubGVuZ3RoICE9PSAxKSB7XHJcblxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RpYWxvZ0Vycm9yQ29tcG9uZW50IGV4cGVjdHMgb25seSBvbmUgb3B0aW9uJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0aXRsZUFuZEljb25Db250YWluZXJcIj5cclxuICAgIDxoMz5cclxuICAgICAgICB7e2RhdGEudGV4dHNbMF19fVxyXG4gICAgPC9oMz5cclxuICAgIFxyXG4gICAgPCEtLSBlcnJvciBpY29uIC0tPlxyXG4gICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNMCAwaDI0djI0SDB6XCIgZmlsbD1cIm5vbmVcIi8+XHJcbiAgICAgICAgPHBhdGggZD1cIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDE1aC0ydi0yaDJ2MnptMC00aC0yVjdoMnY2elwiIGZpbGw9XCIjZmYwMDAwXCIgLz5cclxuICAgIDwvc3ZnPlxyXG4gICAgXHJcbjwvZGl2PlxyXG5cclxuPHAgKm5nSWY9XCJkYXRhLnRleHRzLmxlbmd0aCA+IDFcIj5cclxuICAgIHt7ZGF0YS50ZXh0c1sxXX19XHJcbjwvcD5cclxuXHJcbjxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJ3YXJuXCJcclxuICAgIChjbGljayk9XCJkaWFsb2dSZWYuY2xvc2UoMClcIj5cclxuICAgIFxyXG4gICAge3tkYXRhLm9wdGlvbnNbMF19fVxyXG4gICAgXHJcbjwvYnV0dG9uPiJdfQ==
|
package/esm2020/main/view/components/dialog-multiple-option/dialog-multiple-option.component.mjs
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
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, Inject } from '@angular/core';
|
|
10
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
11
|
+
import { DialogOptionsBaseComponent } from '../dialog-options-base/dialog-options-base.component';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@angular/material/dialog";
|
|
14
|
+
import * as i2 from "@angular/material/button";
|
|
15
|
+
import * as i3 from "@angular/common";
|
|
16
|
+
/**
|
|
17
|
+
* A dialog component that is designed to show more than one option buttons (usually more than two), to be used with dialog service
|
|
18
|
+
*/
|
|
19
|
+
export class DialogMultipleOptionComponent extends DialogOptionsBaseComponent {
|
|
20
|
+
constructor(dialogRef, data) {
|
|
21
|
+
super();
|
|
22
|
+
this.dialogRef = dialogRef;
|
|
23
|
+
this.data = data;
|
|
24
|
+
if (data.texts.length < 1) {
|
|
25
|
+
throw new Error('DialogMultipleOptionComponent expects 2 texts: The title and optionally a description');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
DialogMultipleOptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogMultipleOptionComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
DialogMultipleOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DialogMultipleOptionComponent, selector: "tg-dialog-multiple-option", usesInheritance: true, ngImport: i0, template: "<h3>\r\n {{data.texts[0]}}\r\n</h3>\r\n\r\n<p *ngIf=\"data.texts.length > 1\">\r\n {{data.texts[1]}}\r\n</p>\r\n\r\n<button mat-raised-button color=\"primary\"\r\n *ngFor=\"let option of data.options; let i = index\"\r\n (click)=\"dialogRef.close(i)\">\r\n \r\n {{option}}\r\n \r\n</button>", styles: [":host{display:flex;flex-direction:column;min-height:193px}h3{margin-bottom:45px}button{margin-bottom:25px}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogMultipleOptionComponent, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: 'tg-dialog-multiple-option', template: "<h3>\r\n {{data.texts[0]}}\r\n</h3>\r\n\r\n<p *ngIf=\"data.texts.length > 1\">\r\n {{data.texts[1]}}\r\n</p>\r\n\r\n<button mat-raised-button color=\"primary\"\r\n *ngFor=\"let option of data.options; let i = index\"\r\n (click)=\"dialogRef.close(i)\">\r\n \r\n {{option}}\r\n \r\n</button>", styles: [":host{display:flex;flex-direction:column;min-height:193px}h3{margin-bottom:45px}button{margin-bottom:25px}\n"] }]
|
|
34
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
35
|
+
type: Inject,
|
|
36
|
+
args: [MAT_DIALOG_DATA]
|
|
37
|
+
}] }]; } });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLW11bHRpcGxlLW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dXJib2d1aS1hbmd1bGFyL3NyYy9tYWluL3ZpZXcvY29tcG9uZW50cy9kaWFsb2ctbXVsdGlwbGUtb3B0aW9uL2RpYWxvZy1tdWx0aXBsZS1vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi92aWV3L2NvbXBvbmVudHMvZGlhbG9nLW11bHRpcGxlLW9wdGlvbi9kaWFsb2ctbXVsdGlwbGUtb3B0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7OztBQUdsRzs7R0FFRztBQVFILE1BQU0sT0FBTyw2QkFBOEIsU0FBUSwwQkFBMEI7SUFFekUsWUFBbUIsU0FBbUQsRUFBa0MsSUFBUztRQUU3RyxLQUFLLEVBQUUsQ0FBQztRQUZPLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBQWtDLFNBQUksR0FBSixJQUFJLENBQUs7UUFJN0csSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFFdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1RkFBdUYsQ0FBQyxDQUFDO1NBQzVHO0lBQ0wsQ0FBQzs7MEhBVlEsNkJBQTZCLDhDQUUwQyxlQUFlOzhHQUZ0Riw2QkFBNkIsd0ZDeEIxQyx5VEFjUzsyRkRVSSw2QkFBNkI7a0JBUHpDLFNBQVM7K0JBQ0UsMkJBQTJCOzswQkFRc0MsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBEaWFsb2dPcHRpb25zQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2RpYWxvZy1vcHRpb25zLWJhc2UvZGlhbG9nLW9wdGlvbnMtYmFzZS5jb21wb25lbnQnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBBIGRpYWxvZyBjb21wb25lbnQgdGhhdCBpcyBkZXNpZ25lZCB0byBzaG93IG1vcmUgdGhhbiBvbmUgb3B0aW9uIGJ1dHRvbnMgKHVzdWFsbHkgbW9yZSB0aGFuIHR3byksIHRvIGJlIHVzZWQgd2l0aCBkaWFsb2cgc2VydmljZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Zy1kaWFsb2ctbXVsdGlwbGUtb3B0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLW11bHRpcGxlLW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLW11bHRpcGxlLW9wdGlvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIERpYWxvZ011bHRpcGxlT3B0aW9uQ29tcG9uZW50IGV4dGVuZHMgRGlhbG9nT3B0aW9uc0Jhc2VDb21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxEaWFsb2dPcHRpb25zQmFzZUNvbXBvbmVudD4sIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55KSB7XHJcblxyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKGRhdGEudGV4dHMubGVuZ3RoIDwgMSkge1xyXG5cclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEaWFsb2dNdWx0aXBsZU9wdGlvbkNvbXBvbmVudCBleHBlY3RzIDIgdGV4dHM6IFRoZSB0aXRsZSBhbmQgb3B0aW9uYWxseSBhIGRlc2NyaXB0aW9uJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxoMz5cclxuICAgIHt7ZGF0YS50ZXh0c1swXX19XHJcbjwvaDM+XHJcblxyXG48cCAqbmdJZj1cImRhdGEudGV4dHMubGVuZ3RoID4gMVwiPlxyXG4gICAge3tkYXRhLnRleHRzWzFdfX1cclxuPC9wPlxyXG5cclxuPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBkYXRhLm9wdGlvbnM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgKGNsaWNrKT1cImRpYWxvZ1JlZi5jbG9zZShpKVwiPlxyXG4gICAgXHJcbiAgICB7e29wdGlvbn19XHJcbiAgICBcclxuPC9idXR0b24+Il19
|
|
@@ -0,0 +1,41 @@
|
|
|
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, Inject } from '@angular/core';
|
|
10
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
11
|
+
import { DialogOptionsBaseComponent } from '../dialog-options-base/dialog-options-base.component';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@angular/material/dialog";
|
|
14
|
+
import * as i2 from "@angular/material/button";
|
|
15
|
+
import * as i3 from "@angular/common";
|
|
16
|
+
/**
|
|
17
|
+
* A dialog component with a single option button, to be used with dialog service
|
|
18
|
+
*/
|
|
19
|
+
export class DialogSingleOptionComponent extends DialogOptionsBaseComponent {
|
|
20
|
+
constructor(dialogRef, data) {
|
|
21
|
+
super();
|
|
22
|
+
this.dialogRef = dialogRef;
|
|
23
|
+
this.data = data;
|
|
24
|
+
if (data.texts.length < 1) {
|
|
25
|
+
throw new Error('DialogSingleOptionComponent expects 2 texts: The title and optionally a description');
|
|
26
|
+
}
|
|
27
|
+
if (data.options.length !== 1) {
|
|
28
|
+
throw new Error('DialogSingleOptionComponent expects only one option');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
DialogSingleOptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogSingleOptionComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
+
DialogSingleOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DialogSingleOptionComponent, selector: "tg-dialog-single-option", usesInheritance: true, ngImport: i0, template: "<h3>\r\n {{data.texts[0]}}\r\n</h3>\r\n\r\n<p *ngIf=\"data.texts.length > 1\">\r\n {{data.texts[1]}}\r\n</p>\r\n\r\n<button mat-raised-button color=\"primary\"\r\n (click)=\"dialogRef.close(0)\">\r\n \r\n {{data.options[0]}}\r\n \r\n</button>", styles: [":host{min-height:300px}h3{margin-bottom:25px}p{margin-bottom:52px}button{float:right}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogSingleOptionComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ selector: 'tg-dialog-single-option', template: "<h3>\r\n {{data.texts[0]}}\r\n</h3>\r\n\r\n<p *ngIf=\"data.texts.length > 1\">\r\n {{data.texts[1]}}\r\n</p>\r\n\r\n<button mat-raised-button color=\"primary\"\r\n (click)=\"dialogRef.close(0)\">\r\n \r\n {{data.options[0]}}\r\n \r\n</button>", styles: [":host{min-height:300px}h3{margin-bottom:25px}p{margin-bottom:52px}button{float:right}\n"] }]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
38
|
+
type: Inject,
|
|
39
|
+
args: [MAT_DIALOG_DATA]
|
|
40
|
+
}] }]; } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXNpbmdsZS1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi92aWV3L2NvbXBvbmVudHMvZGlhbG9nLXNpbmdsZS1vcHRpb24vZGlhbG9nLXNpbmdsZS1vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi92aWV3L2NvbXBvbmVudHMvZGlhbG9nLXNpbmdsZS1vcHRpb24vZGlhbG9nLXNpbmdsZS1vcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7O0FBR2xHOztHQUVHO0FBUUgsTUFBTSxPQUFPLDJCQUE0QixTQUFRLDBCQUEwQjtJQUV2RSxZQUFtQixTQUFtRCxFQUFrQyxJQUFTO1FBRTdHLEtBQUssRUFBRSxDQUFDO1FBRk8sY0FBUyxHQUFULFNBQVMsQ0FBMEM7UUFBa0MsU0FBSSxHQUFKLElBQUksQ0FBSztRQUk3RyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUV2QixNQUFNLElBQUksS0FBSyxDQUFDLHFGQUFxRixDQUFDLENBQUM7U0FDMUc7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUUzQixNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDMUU7SUFDTCxDQUFDOzt3SEFmUSwyQkFBMkIsOENBRTRDLGVBQWU7NEdBRnRGLDJCQUEyQixzRkN4QnhDLHNRQWFTOzJGRFdJLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSx5QkFBeUI7OzBCQVF3QyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogVHVyYm9HVUkgaXMgQSBsaWJyYXJ5IHRoYXQgaGVscHMgd2l0aCB0aGUgbW9zdCBjb21tb24gYW5kIGdlbmVyaWMgVUkgZWxlbWVudHMgYW5kIGZ1bmN0aW9uYWxpdGllc1xyXG4gKlxyXG4gKiBXZWJzaXRlIDogLT4gaHR0cDovL3d3dy50dXJib2d1aS5vcmdcclxuICogTGljZW5zZSA6IC0+IExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuICogTGljZW5zZSBVcmwgOiAtPiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICogQ29weVJpZ2h0IDogLT4gQ29weXJpZ2h0IDIwMTggRWRlcnRvbmUgQWR2YW5kZWQgU29sdXRpb25zLiBodHRwczovL3d3dy5lZGVydG9uZS5jb21cclxuICovXHJcblxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IERpYWxvZ09wdGlvbnNCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vZGlhbG9nLW9wdGlvbnMtYmFzZS9kaWFsb2ctb3B0aW9ucy1iYXNlLmNvbXBvbmVudCc7XHJcblxyXG5cclxuLyoqXHJcbiAqIEEgZGlhbG9nIGNvbXBvbmVudCB3aXRoIGEgc2luZ2xlIG9wdGlvbiBidXR0b24sIHRvIGJlIHVzZWQgd2l0aCBkaWFsb2cgc2VydmljZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Zy1kaWFsb2ctc2luZ2xlLW9wdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy1zaW5nbGUtb3B0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kaWFsb2ctc2luZ2xlLW9wdGlvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIERpYWxvZ1NpbmdsZU9wdGlvbkNvbXBvbmVudCBleHRlbmRzIERpYWxvZ09wdGlvbnNCYXNlQ29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RGlhbG9nT3B0aW9uc0Jhc2VDb21wb25lbnQ+LCBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSkge1xyXG5cclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChkYXRhLnRleHRzLmxlbmd0aCA8IDEpIHtcclxuXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRGlhbG9nU2luZ2xlT3B0aW9uQ29tcG9uZW50IGV4cGVjdHMgMiB0ZXh0czogVGhlIHRpdGxlIGFuZCBvcHRpb25hbGx5IGEgZGVzY3JpcHRpb24nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkYXRhLm9wdGlvbnMubGVuZ3RoICE9PSAxKSB7XHJcblxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RpYWxvZ1NpbmdsZU9wdGlvbkNvbXBvbmVudCBleHBlY3RzIG9ubHkgb25lIG9wdGlvbicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8aDM+XHJcbiAgICB7e2RhdGEudGV4dHNbMF19fVxyXG48L2gzPlxyXG5cclxuPHAgKm5nSWY9XCJkYXRhLnRleHRzLmxlbmd0aCA+IDFcIj5cclxuICAgIHt7ZGF0YS50ZXh0c1sxXX19XHJcbjwvcD5cclxuXHJcbjxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCJcclxuICAgIChjbGljayk9XCJkaWFsb2dSZWYuY2xvc2UoMClcIj5cclxuICAgIFxyXG4gICAge3tkYXRhLm9wdGlvbnNbMF19fVxyXG4gICAgXHJcbjwvYnV0dG9uPiJdfQ==
|
|
@@ -0,0 +1,112 @@
|
|
|
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, Inject } from '@angular/core';
|
|
10
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
11
|
+
import { DialogOptionsBaseComponent } from '../dialog-options-base/dialog-options-base.component';
|
|
12
|
+
import { StringUtils } from 'turbocommons-ts';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/material/dialog";
|
|
15
|
+
import * as i2 from "../../../controller/browser.service";
|
|
16
|
+
import * as i3 from "@angular/material/form-field";
|
|
17
|
+
import * as i4 from "@angular/material/input";
|
|
18
|
+
import * as i5 from "@angular/material/button";
|
|
19
|
+
import * as i6 from "@angular/common";
|
|
20
|
+
import * as i7 from "../../directives/AutoFocusOnDisplayDirective";
|
|
21
|
+
/**
|
|
22
|
+
* A dialog component which allows us to select one single item from a list. The elements on that list are displayed on a table
|
|
23
|
+
* which may show a scroll if necessary when there are many elements on the list.
|
|
24
|
+
*
|
|
25
|
+
* It also allows us to filter inside the list with a custom text that we can type into a search input, which is optional.
|
|
26
|
+
*
|
|
27
|
+
* texts parameter must contain the title, the description (optional), the filter input title (optional), and the submit button caption.
|
|
28
|
+
* If that caption is not provided, the selection will be automatically performed once user clicks on an element on the list. Otherwise,
|
|
29
|
+
* the element will be selected on the list and the selection will be performed once the user clicks on the submit button.
|
|
30
|
+
*
|
|
31
|
+
* options parameter must contain the list of elements that will be displayed to the user
|
|
32
|
+
*/
|
|
33
|
+
export class DialogSingleSelectionListComponent extends DialogOptionsBaseComponent {
|
|
34
|
+
constructor(dialogRef, browserService, data) {
|
|
35
|
+
super();
|
|
36
|
+
this.dialogRef = dialogRef;
|
|
37
|
+
this.browserService = browserService;
|
|
38
|
+
this.data = data;
|
|
39
|
+
/**
|
|
40
|
+
* Declare a reference to the string utils class so it can be used on the html part
|
|
41
|
+
*/
|
|
42
|
+
this.stringUtils = StringUtils;
|
|
43
|
+
/**
|
|
44
|
+
* Contains the list of elements that will be directly shown to the user at the component list.
|
|
45
|
+
* It may be filtered or not depending on this component setup and the user input
|
|
46
|
+
*/
|
|
47
|
+
this.filteredOptions = [];
|
|
48
|
+
/**
|
|
49
|
+
* Contains the original list of elements that are provided to be listed on this component before
|
|
50
|
+
* being possibly filtered. It is only used as a backup, not shown to the user
|
|
51
|
+
*/
|
|
52
|
+
this.originalOptions = [];
|
|
53
|
+
/**
|
|
54
|
+
* The same list as the originally provided but processed for a better text search.
|
|
55
|
+
* It will be used to perform the search, but not shown to the user.
|
|
56
|
+
*/
|
|
57
|
+
this.originalOptionsFullTextSearch = [];
|
|
58
|
+
/**
|
|
59
|
+
* Stores the index for the element that's been selected by the user
|
|
60
|
+
*/
|
|
61
|
+
this.selectedItemIndex = -1;
|
|
62
|
+
/**
|
|
63
|
+
* This method is used to greatly improve ngFor performance with arrays of primitive values. It tells the refresh
|
|
64
|
+
* function to work by index instead of by value. The change in performance when refreshing the list is massive.
|
|
65
|
+
*/
|
|
66
|
+
this.trackByFn = (index, _value) => index;
|
|
67
|
+
if (data.texts.length < 1) {
|
|
68
|
+
throw new Error('DialogSingleSelectionListComponent expects 4 texts: The title, the description (optional), the filter input title (optional), and the submit button caption');
|
|
69
|
+
}
|
|
70
|
+
if (data.options.length < 1) {
|
|
71
|
+
throw new Error('DialogSingleSelectionListComponent expects one or more options');
|
|
72
|
+
}
|
|
73
|
+
this.originalOptions = data.options;
|
|
74
|
+
for (let option of this.originalOptions) {
|
|
75
|
+
this.filteredOptions.push(option);
|
|
76
|
+
this.originalOptionsFullTextSearch.push(StringUtils.formatForFullTextSearch(option));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Method to calculate the max possible height that the list items container is allowed to have
|
|
81
|
+
*/
|
|
82
|
+
getListItemsContainerMaxheight() {
|
|
83
|
+
return (this.browserService.getWindowHeight() * 0.6) + 'px';
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* When the user types a value on the input element to filter the list, this method will perform
|
|
87
|
+
* that filtering and refresh the list
|
|
88
|
+
*/
|
|
89
|
+
onSearchChange(input) {
|
|
90
|
+
this.selectedItemIndex = -1;
|
|
91
|
+
let inputValue = StringUtils.formatForFullTextSearch(input.value);
|
|
92
|
+
for (let i = 0; i < this.originalOptionsFullTextSearch.length; i++) {
|
|
93
|
+
if (inputValue === '' ||
|
|
94
|
+
this.originalOptionsFullTextSearch[i].indexOf(inputValue) >= 0) {
|
|
95
|
+
this.filteredOptions[i] = this.originalOptions[i];
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
this.filteredOptions[i] = '';
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
DialogSingleSelectionListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogSingleSelectionListComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.BrowserService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
104
|
+
DialogSingleSelectionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DialogSingleSelectionListComponent, selector: "tg-dialog-single-selection-list", usesInheritance: true, ngImport: i0, template: "<h3>\r\n {{data.texts[0]}}\r\n</h3>\r\n\r\n<p *ngIf=\"data.texts.length > 1 && !stringUtils.isEmpty(data.texts[1])\">\r\n {{data.texts[1]}}\r\n</p>\r\n\r\n<mat-form-field *ngIf=\"data.texts.length > 2 && !stringUtils.isEmpty(data.texts[2])\"\r\n class=\"searchItemInputContainer\">\r\n \r\n <input matInput autoFocusOnDisplay\r\n placeholder=\"{{data.texts[2]}}\"\r\n (input)=\"onSearchChange($event.target)\">\r\n \r\n</mat-form-field>\r\n\r\n<div class=\"listItemsContainer\"\r\n [style.max-height]=\"getListItemsContainerMaxheight()\">\r\n\r\n <div class=\"listItemContainer\"\r\n [style.background-color]=\"selectedItemIndex === i ? '#90d1ffad' : (i % 2 === 0 ? 'initial' : '#00000009')\"\r\n *ngFor=\"let item of filteredOptions; let i = index; trackBy: trackByFn\"\r\n (click)=\"data.texts.length < 4 ? dialogRef.close(i) : selectedItemIndex = i\">\r\n \r\n <p *ngIf=\"item !== ''\">\r\n {{item}}\r\n </p>\r\n \r\n </div>\r\n\r\n</div>\r\n\r\n<button mat-raised-button color=\"primary\"\r\n [disabled]=\"selectedItemIndex < 0\"\r\n (click)=\"dialogRef.close(selectedItemIndex)\"\r\n *ngIf=\"data.texts.length > 3\">\r\n\r\n {{data.texts[3]}}\r\n \r\n</button>", styles: [":host{min-height:300px}h3{margin-top:0;margin-bottom:10px}p{margin-top:0;margin-bottom:5px}.searchItemInputContainer{width:100%;margin-top:0;margin-bottom:0}.listItemsContainer{overflow-y:auto;border:1px solid rgba(0,0,0,.2);border-radius:4px;margin-bottom:5px}.listItemContainer p{line-height:36px;width:calc(100% - 12px);margin:0 0 0 6px}button{float:right}\n"], dependencies: [{ kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.AutoFocusOnDisplayDirective, selector: "[autoFocusOnDisplay]" }] });
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogSingleSelectionListComponent, decorators: [{
|
|
106
|
+
type: Component,
|
|
107
|
+
args: [{ selector: 'tg-dialog-single-selection-list', template: "<h3>\r\n {{data.texts[0]}}\r\n</h3>\r\n\r\n<p *ngIf=\"data.texts.length > 1 && !stringUtils.isEmpty(data.texts[1])\">\r\n {{data.texts[1]}}\r\n</p>\r\n\r\n<mat-form-field *ngIf=\"data.texts.length > 2 && !stringUtils.isEmpty(data.texts[2])\"\r\n class=\"searchItemInputContainer\">\r\n \r\n <input matInput autoFocusOnDisplay\r\n placeholder=\"{{data.texts[2]}}\"\r\n (input)=\"onSearchChange($event.target)\">\r\n \r\n</mat-form-field>\r\n\r\n<div class=\"listItemsContainer\"\r\n [style.max-height]=\"getListItemsContainerMaxheight()\">\r\n\r\n <div class=\"listItemContainer\"\r\n [style.background-color]=\"selectedItemIndex === i ? '#90d1ffad' : (i % 2 === 0 ? 'initial' : '#00000009')\"\r\n *ngFor=\"let item of filteredOptions; let i = index; trackBy: trackByFn\"\r\n (click)=\"data.texts.length < 4 ? dialogRef.close(i) : selectedItemIndex = i\">\r\n \r\n <p *ngIf=\"item !== ''\">\r\n {{item}}\r\n </p>\r\n \r\n </div>\r\n\r\n</div>\r\n\r\n<button mat-raised-button color=\"primary\"\r\n [disabled]=\"selectedItemIndex < 0\"\r\n (click)=\"dialogRef.close(selectedItemIndex)\"\r\n *ngIf=\"data.texts.length > 3\">\r\n\r\n {{data.texts[3]}}\r\n \r\n</button>", styles: [":host{min-height:300px}h3{margin-top:0;margin-bottom:10px}p{margin-top:0;margin-bottom:5px}.searchItemInputContainer{width:100%;margin-top:0;margin-bottom:0}.listItemsContainer{overflow-y:auto;border:1px solid rgba(0,0,0,.2);border-radius:4px;margin-bottom:5px}.listItemContainer p{line-height:36px;width:calc(100% - 12px);margin:0 0 0 6px}button{float:right}\n"] }]
|
|
108
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.BrowserService }, { type: undefined, decorators: [{
|
|
109
|
+
type: Inject,
|
|
110
|
+
args: [MAT_DIALOG_DATA]
|
|
111
|
+
}] }]; } });
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXNpbmdsZS1zZWxlY3Rpb24tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dXJib2d1aS1hbmd1bGFyL3NyYy9tYWluL3ZpZXcvY29tcG9uZW50cy9kaWFsb2ctc2luZ2xlLXNlbGVjdGlvbi1saXN0L2RpYWxvZy1zaW5nbGUtc2VsZWN0aW9uLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVyYm9ndWktYW5ndWxhci9zcmMvbWFpbi92aWV3L2NvbXBvbmVudHMvZGlhbG9nLXNpbmdsZS1zZWxlY3Rpb24tbGlzdC9kaWFsb2ctc2luZ2xlLXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRWxHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7O0FBRzlDOzs7Ozs7Ozs7OztHQVdHO0FBUUgsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLDBCQUEwQjtJQW1DOUUsWUFBbUIsU0FBbUQsRUFDbkQsY0FBOEIsRUFDTCxJQUFTO1FBRWpELEtBQUssRUFBRSxDQUFDO1FBSk8sY0FBUyxHQUFULFNBQVMsQ0FBMEM7UUFDbkQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ0wsU0FBSSxHQUFKLElBQUksQ0FBSztRQWxDckQ7O1dBRUc7UUFDSCxnQkFBVyxHQUFHLFdBQVcsQ0FBQztRQUUxQjs7O1dBR0c7UUFDSCxvQkFBZSxHQUFZLEVBQUUsQ0FBQztRQUc5Qjs7O1dBR0c7UUFDSyxvQkFBZSxHQUFZLEVBQUUsQ0FBQztRQUd0Qzs7O1dBR0c7UUFDSyxrQ0FBNkIsR0FBWSxFQUFFLENBQUM7UUFHcEQ7O1dBRUc7UUFDSCxzQkFBaUIsR0FBRyxDQUFDLENBQUMsQ0FBQztRQThEdkI7OztXQUdHO1FBQ0gsY0FBUyxHQUFHLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBekRqRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUV2QixNQUFNLElBQUksS0FBSyxDQUFDLDZKQUE2SixDQUFDLENBQUM7U0FDbEw7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUV6QixNQUFNLElBQUksS0FBSyxDQUFDLGdFQUFnRSxDQUFDLENBQUM7U0FDckY7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFcEMsS0FBSSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFDO1lBRW5DLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDeEY7SUFDTCxDQUFDO0lBR0Q7O09BRUc7SUFDSCw4QkFBOEI7UUFFMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ2hFLENBQUM7SUFHRDs7O09BR0c7SUFDSCxjQUFjLENBQUMsS0FBc0I7UUFFakMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRTVCLElBQUksVUFBVSxHQUFHLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUM7WUFFL0QsSUFBRyxVQUFVLEtBQUssRUFBRTtnQkFDakIsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUM7Z0JBRTlELElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUVyRDtpQkFBSTtnQkFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUNoQztTQUNKO0lBQ0wsQ0FBQzs7K0hBNUZRLGtDQUFrQyw0RUFxQ3ZCLGVBQWU7bUhBckMxQixrQ0FBa0MsOEZDbkMvQywrd0NBd0NTOzJGRExJLGtDQUFrQztrQkFQOUMsU0FBUzsrQkFDRSxpQ0FBaUM7OzBCQTJDNUIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFR1cmJvR1VJIGlzIEEgbGlicmFyeSB0aGF0IGhlbHBzIHdpdGggdGhlIG1vc3QgY29tbW9uIGFuZCBnZW5lcmljIFVJIGVsZW1lbnRzIGFuZCBmdW5jdGlvbmFsaXRpZXNcclxuICpcclxuICogV2Vic2l0ZSA6IC0+IGh0dHA6Ly93d3cudHVyYm9ndWkub3JnXHJcbiAqIExpY2Vuc2UgOiAtPiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIExpY2Vuc2UgVXJsIDogLT4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqIENvcHlSaWdodCA6IC0+IENvcHlyaWdodCAyMDE4IEVkZXJ0b25lIEFkdmFuZGVkIFNvbHV0aW9ucy4gaHR0cHM6Ly93d3cuZWRlcnRvbmUuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBEaWFsb2dPcHRpb25zQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2RpYWxvZy1vcHRpb25zLWJhc2UvZGlhbG9nLW9wdGlvbnMtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbnRyb2xsZXIvYnJvd3Nlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RyaW5nVXRpbHMgfSBmcm9tICd0dXJib2NvbW1vbnMtdHMnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBBIGRpYWxvZyBjb21wb25lbnQgd2hpY2ggYWxsb3dzIHVzIHRvIHNlbGVjdCBvbmUgc2luZ2xlIGl0ZW0gZnJvbSBhIGxpc3QuIFRoZSBlbGVtZW50cyBvbiB0aGF0IGxpc3QgYXJlIGRpc3BsYXllZCBvbiBhIHRhYmxlXHJcbiAqIHdoaWNoIG1heSBzaG93IGEgc2Nyb2xsIGlmIG5lY2Vzc2FyeSB3aGVuIHRoZXJlIGFyZSBtYW55IGVsZW1lbnRzIG9uIHRoZSBsaXN0LlxyXG4gKiBcclxuICogSXQgYWxzbyBhbGxvd3MgdXMgdG8gZmlsdGVyIGluc2lkZSB0aGUgbGlzdCB3aXRoIGEgY3VzdG9tIHRleHQgdGhhdCB3ZSBjYW4gdHlwZSBpbnRvIGEgc2VhcmNoIGlucHV0LCB3aGljaCBpcyBvcHRpb25hbC5cclxuICpcclxuICogdGV4dHMgcGFyYW1ldGVyIG11c3QgY29udGFpbiB0aGUgdGl0bGUsIHRoZSBkZXNjcmlwdGlvbiAob3B0aW9uYWwpLCB0aGUgZmlsdGVyIGlucHV0IHRpdGxlIChvcHRpb25hbCksIGFuZCB0aGUgc3VibWl0IGJ1dHRvbiBjYXB0aW9uLlxyXG4gKiBJZiB0aGF0IGNhcHRpb24gaXMgbm90IHByb3ZpZGVkLCB0aGUgc2VsZWN0aW9uIHdpbGwgYmUgYXV0b21hdGljYWxseSBwZXJmb3JtZWQgb25jZSB1c2VyIGNsaWNrcyBvbiBhbiBlbGVtZW50IG9uIHRoZSBsaXN0LiBPdGhlcndpc2UsIFxyXG4gKiB0aGUgZWxlbWVudCB3aWxsIGJlIHNlbGVjdGVkIG9uIHRoZSBsaXN0IGFuZCB0aGUgc2VsZWN0aW9uIHdpbGwgYmUgcGVyZm9ybWVkIG9uY2UgdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSBzdWJtaXQgYnV0dG9uLlxyXG4gKlxyXG4gKiBvcHRpb25zIHBhcmFtZXRlciBtdXN0IGNvbnRhaW4gdGhlIGxpc3Qgb2YgZWxlbWVudHMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlciAgXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RnLWRpYWxvZy1zaW5nbGUtc2VsZWN0aW9uLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctc2luZ2xlLXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kaWFsb2ctc2luZ2xlLXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRGlhbG9nU2luZ2xlU2VsZWN0aW9uTGlzdENvbXBvbmVudCBleHRlbmRzIERpYWxvZ09wdGlvbnNCYXNlQ29tcG9uZW50IHtcclxuICAgIFxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIERlY2xhcmUgYSByZWZlcmVuY2UgdG8gdGhlIHN0cmluZyB1dGlscyBjbGFzcyBzbyBpdCBjYW4gYmUgdXNlZCBvbiB0aGUgaHRtbCBwYXJ0XHJcbiAgICAgKi9cclxuICAgIHN0cmluZ1V0aWxzID0gU3RyaW5nVXRpbHM7XHJcbiAgICBcclxuICAgIC8qKiBcclxuICAgICAqIENvbnRhaW5zIHRoZSBsaXN0IG9mIGVsZW1lbnRzIHRoYXQgd2lsbCBiZSBkaXJlY3RseSBzaG93biB0byB0aGUgdXNlciBhdCB0aGUgY29tcG9uZW50IGxpc3QuXHJcbiAgICAgKiBJdCBtYXkgYmUgZmlsdGVyZWQgb3Igbm90IGRlcGVuZGluZyBvbiB0aGlzIGNvbXBvbmVudCBzZXR1cCBhbmQgdGhlIHVzZXIgaW5wdXRcclxuICAgICAqL1xyXG4gICAgZmlsdGVyZWRPcHRpb25zOnN0cmluZ1tdID0gW107XHJcbiAgICBcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBDb250YWlucyB0aGUgb3JpZ2luYWwgbGlzdCBvZiBlbGVtZW50cyB0aGF0IGFyZSBwcm92aWRlZCB0byBiZSBsaXN0ZWQgb24gdGhpcyBjb21wb25lbnQgYmVmb3JlXHJcbiAgICAgKiBiZWluZyBwb3NzaWJseSBmaWx0ZXJlZC4gSXQgaXMgb25seSB1c2VkIGFzIGEgYmFja3VwLCBub3Qgc2hvd24gdG8gdGhlIHVzZXJcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBvcmlnaW5hbE9wdGlvbnM6c3RyaW5nW10gPSBbXTtcclxuICAgIFxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzYW1lIGxpc3QgYXMgdGhlIG9yaWdpbmFsbHkgcHJvdmlkZWQgYnV0IHByb2Nlc3NlZCBmb3IgYSBiZXR0ZXIgdGV4dCBzZWFyY2guXHJcbiAgICAgKiBJdCB3aWxsIGJlIHVzZWQgdG8gcGVyZm9ybSB0aGUgc2VhcmNoLCBidXQgbm90IHNob3duIHRvIHRoZSB1c2VyLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIG9yaWdpbmFsT3B0aW9uc0Z1bGxUZXh0U2VhcmNoOnN0cmluZ1tdID0gW107XHJcbiAgICAgICBcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9yZXMgdGhlIGluZGV4IGZvciB0aGUgZWxlbWVudCB0aGF0J3MgYmVlbiBzZWxlY3RlZCBieSB0aGUgdXNlclxyXG4gICAgICovXHJcbiAgICBzZWxlY3RlZEl0ZW1JbmRleCA9IC0xO1xyXG4gICAgXHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERpYWxvZ09wdGlvbnNCYXNlQ29tcG9uZW50PixcclxuICAgICAgICAgICAgICAgIHB1YmxpYyBicm93c2VyU2VydmljZTogQnJvd3NlclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSkge1xyXG5cclxuICAgICAgICBzdXBlcigpO1xyXG5cclxuICAgICAgICBpZiAoZGF0YS50ZXh0cy5sZW5ndGggPCAxKSB7XHJcblxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RpYWxvZ1NpbmdsZVNlbGVjdGlvbkxpc3RDb21wb25lbnQgZXhwZWN0cyA0IHRleHRzOiBUaGUgdGl0bGUsIHRoZSBkZXNjcmlwdGlvbiAob3B0aW9uYWwpLCB0aGUgZmlsdGVyIGlucHV0IHRpdGxlIChvcHRpb25hbCksIGFuZCB0aGUgc3VibWl0IGJ1dHRvbiBjYXB0aW9uJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChkYXRhLm9wdGlvbnMubGVuZ3RoIDwgMSkge1xyXG5cclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEaWFsb2dTaW5nbGVTZWxlY3Rpb25MaXN0Q29tcG9uZW50IGV4cGVjdHMgb25lIG9yIG1vcmUgb3B0aW9ucycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICB0aGlzLm9yaWdpbmFsT3B0aW9ucyA9IGRhdGEub3B0aW9ucztcclxuICAgICAgICBcclxuICAgICAgICBmb3IobGV0IG9wdGlvbiBvZiB0aGlzLm9yaWdpbmFsT3B0aW9ucyl7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucy5wdXNoKG9wdGlvbik7XHJcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxPcHRpb25zRnVsbFRleHRTZWFyY2gucHVzaChTdHJpbmdVdGlscy5mb3JtYXRGb3JGdWxsVGV4dFNlYXJjaChvcHRpb24pKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgdG8gY2FsY3VsYXRlIHRoZSBtYXggcG9zc2libGUgaGVpZ2h0IHRoYXQgdGhlIGxpc3QgaXRlbXMgY29udGFpbmVyIGlzIGFsbG93ZWQgdG8gaGF2ZVxyXG4gICAgICovXHJcbiAgICBnZXRMaXN0SXRlbXNDb250YWluZXJNYXhoZWlnaHQoKXtcclxuICAgICAgICBcclxuICAgICAgICByZXR1cm4gKHRoaXMuYnJvd3NlclNlcnZpY2UuZ2V0V2luZG93SGVpZ2h0KCkgKiAwLjYpICsgJ3B4JztcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXaGVuIHRoZSB1c2VyIHR5cGVzIGEgdmFsdWUgb24gdGhlIGlucHV0IGVsZW1lbnQgdG8gZmlsdGVyIHRoZSBsaXN0LCB0aGlzIG1ldGhvZCB3aWxsIHBlcmZvcm1cclxuICAgICAqIHRoYXQgZmlsdGVyaW5nIGFuZCByZWZyZXNoIHRoZSBsaXN0XHJcbiAgICAgKi9cclxuICAgIG9uU2VhcmNoQ2hhbmdlKGlucHV0OkhUTUxJbnB1dEVsZW1lbnQpe1xyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbUluZGV4ID0gLTE7XHJcbiAgICAgICBcclxuICAgICAgICBsZXQgaW5wdXRWYWx1ZSA9IFN0cmluZ1V0aWxzLmZvcm1hdEZvckZ1bGxUZXh0U2VhcmNoKGlucHV0LnZhbHVlKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm9yaWdpbmFsT3B0aW9uc0Z1bGxUZXh0U2VhcmNoLmxlbmd0aDsgaSsrKXtcclxuXHJcbiAgICAgICAgICAgIGlmKGlucHV0VmFsdWUgPT09ICcnIHx8XHJcbiAgICAgICAgICAgICAgIHRoaXMub3JpZ2luYWxPcHRpb25zRnVsbFRleHRTZWFyY2hbaV0uaW5kZXhPZihpbnB1dFZhbHVlKSA+PSAwKXtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc1tpXSA9IHRoaXMub3JpZ2luYWxPcHRpb25zW2ldO1xyXG5cclxuICAgICAgICAgICAgfWVsc2V7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNbaV0gPSAnJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGdyZWF0bHkgaW1wcm92ZSBuZ0ZvciBwZXJmb3JtYW5jZSB3aXRoIGFycmF5cyBvZiBwcmltaXRpdmUgdmFsdWVzLiBJdCB0ZWxscyB0aGUgcmVmcmVzaFxyXG4gICAgICogZnVuY3Rpb24gdG8gd29yayBieSBpbmRleCBpbnN0ZWFkIG9mIGJ5IHZhbHVlLiBUaGUgY2hhbmdlIGluIHBlcmZvcm1hbmNlIHdoZW4gcmVmcmVzaGluZyB0aGUgbGlzdCBpcyBtYXNzaXZlLiBcclxuICAgICAqL1xyXG4gICAgdHJhY2tCeUZuID0gKGluZGV4OiBudW1iZXIsIF92YWx1ZTogc3RyaW5nKSA9PiBpbmRleDtcclxufVxyXG4iLCI8aDM+XHJcbiAgICB7e2RhdGEudGV4dHNbMF19fVxyXG48L2gzPlxyXG5cclxuPHAgKm5nSWY9XCJkYXRhLnRleHRzLmxlbmd0aCA+IDEgJmFtcDsmYW1wOyAhc3RyaW5nVXRpbHMuaXNFbXB0eShkYXRhLnRleHRzWzFdKVwiPlxyXG4gICAge3tkYXRhLnRleHRzWzFdfX1cclxuPC9wPlxyXG5cclxuPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiZGF0YS50ZXh0cy5sZW5ndGggPiAyICZhbXA7JmFtcDsgIXN0cmluZ1V0aWxzLmlzRW1wdHkoZGF0YS50ZXh0c1syXSlcIlxyXG4gICAgY2xhc3M9XCJzZWFyY2hJdGVtSW5wdXRDb250YWluZXJcIj5cclxuICAgIFxyXG4gICAgPGlucHV0IG1hdElucHV0IGF1dG9Gb2N1c09uRGlzcGxheVxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3tkYXRhLnRleHRzWzJdfX1cIlxyXG4gICAgICAgIChpbnB1dCk9XCJvblNlYXJjaENoYW5nZSgkZXZlbnQudGFyZ2V0KVwiPlxyXG4gICAgICAgIFxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuPGRpdiBjbGFzcz1cImxpc3RJdGVtc0NvbnRhaW5lclwiXHJcbiAgICBbc3R5bGUubWF4LWhlaWdodF09XCJnZXRMaXN0SXRlbXNDb250YWluZXJNYXhoZWlnaHQoKVwiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJsaXN0SXRlbUNvbnRhaW5lclwiXHJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwic2VsZWN0ZWRJdGVtSW5kZXggPT09IGkgPyAnIzkwZDFmZmFkJyA6IChpICUgMiA9PT0gMCA/ICdpbml0aWFsJyA6ICcjMDAwMDAwMDknKVwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRPcHRpb25zOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgIChjbGljayk9XCJkYXRhLnRleHRzLmxlbmd0aCA8IDQgPyBkaWFsb2dSZWYuY2xvc2UoaSkgOiBzZWxlY3RlZEl0ZW1JbmRleCA9IGlcIj5cclxuICAgIFxyXG4gICAgICAgIDxwICpuZ0lmPVwiaXRlbSAhPT0gJydcIj5cclxuICAgICAgICAgICAge3tpdGVtfX1cclxuICAgICAgICA8L3A+XHJcbiAgICBcclxuICAgIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcblxyXG48YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICBbZGlzYWJsZWRdPVwic2VsZWN0ZWRJdGVtSW5kZXggPCAwXCJcclxuICAgIChjbGljayk9XCJkaWFsb2dSZWYuY2xvc2Uoc2VsZWN0ZWRJdGVtSW5kZXgpXCJcclxuICAgICpuZ0lmPVwiZGF0YS50ZXh0cy5sZW5ndGggPiAzXCI+XHJcblxyXG4gICAge3tkYXRhLnRleHRzWzNdfX1cclxuICAgIFxyXG48L2J1dHRvbj4iXX0=
|