@ts-core/angular 15.0.1 → 15.0.3
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/VICommonModule.d.ts +10 -13
- package/application/ApplicationComponent.d.ts +1 -3
- package/directive/ResizeDirective.d.ts +2 -2
- package/directive/SelectOnFocusDirective.d.ts +1 -1
- package/esm2020/VICommonModule.mjs +4 -14
- package/esm2020/application/ApplicationComponent.mjs +2 -3
- package/esm2020/application/MessageBaseComponent.mjs +1 -1
- package/esm2020/directive/AutoScrollBottomDirective.mjs +2 -2
- package/esm2020/directive/ResizeDirective.mjs +5 -5
- package/esm2020/directive/SelectOnFocusDirective.mjs +2 -2
- package/esm2020/language/LanguageModule.mjs +1 -8
- package/esm2020/manager/ResizeManager.mjs +3 -11
- package/esm2020/pipe/CamelCasePipe.mjs +4 -12
- package/esm2020/pipe/StartCasePipe.mjs +4 -5
- package/esm2020/pipe/TimePipe.mjs +3 -2
- package/esm2020/pipe/TruncatePipe.mjs +3 -5
- package/esm2020/public-api.mjs +1 -68
- package/esm2020/service/PipeBaseService.mjs +1 -1
- package/esm2020/theme/ThemeAssetDirective.mjs +1 -1
- package/esm2020/theme/ThemeStyleDirective.mjs +2 -2
- package/esm2020/util/ViewUtil.mjs +1 -1
- package/fesm2015/ts-core-angular.mjs +3091 -7551
- package/fesm2015/ts-core-angular.mjs.map +1 -1
- package/fesm2020/ts-core-angular.mjs +3057 -7515
- package/fesm2020/ts-core-angular.mjs.map +1 -1
- package/htdocs/common.js +3 -3
- package/manager/ResizeManager.d.ts +1 -1
- package/package.json +3 -10
- package/pipe/CamelCasePipe.d.ts +0 -1
- package/public-api.d.ts +0 -60
- package/style/_core.scss +120 -0
- package/style/_filter.scss +14 -0
- package/style/_mouse.scss +27 -0
- package/style/_scroll.scss +20 -0
- package/style/_text.scss +20 -0
- package/application/ShellBaseComponent.d.ts +0 -20
- package/bottomSheet/BottomSheetImpl.d.ts +0 -77
- package/bottomSheet/BottomSheetModule.d.ts +0 -13
- package/bottomSheet/BottomSheetService.d.ts +0 -31
- package/bottomSheet/component/BottomSheetBaseComponent.d.ts +0 -13
- package/component/VIComponentModule.d.ts +0 -33
- package/component/cdk-table/CdkTableBaseComponent.d.ts +0 -60
- package/component/cdk-table/CdkTableDataSource.d.ts +0 -13
- package/component/cdk-table/CdkTableFilterableMapCollection.d.ts +0 -14
- package/component/cdk-table/CdkTablePaginableBookmarkMapCollection.d.ts +0 -11
- package/component/cdk-table/CdkTablePaginableMapCollection.d.ts +0 -13
- package/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.d.ts +0 -9
- package/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.d.ts +0 -18
- package/component/cdk-table/cdk-table-paginable-bookmark/cdk-table-paginable-bookmark.component.d.ts +0 -9
- package/component/cdk-table/cell/CdkTableCellClassNamePipe.d.ts +0 -8
- package/component/cdk-table/cell/CdkTableCellStyleNamePipe.d.ts +0 -10
- package/component/cdk-table/cell/CdkTableCellValuePipe.d.ts +0 -17
- package/component/cdk-table/cell/CdkTableCellValuePipePure.d.ts +0 -8
- package/component/cdk-table/column/CdkTableColumnClassNamePipe.d.ts +0 -8
- package/component/cdk-table/column/CdkTableColumnStyleNamePipe.d.ts +0 -10
- package/component/cdk-table/column/ICdkTableColumn.d.ts +0 -25
- package/component/cdk-table/row/CdkTableRowClassNamePipe.d.ts +0 -8
- package/component/cdk-table/row/CdkTableRowStyleNamePipe.d.ts +0 -10
- package/component/cdk-table/row/ICdkTableRow.d.ts +0 -8
- package/component/language/language-selector/language-selector.component.d.ts +0 -19
- package/component/menu-list/menu-list.component.d.ts +0 -9
- package/component/select-list/select-list.component.d.ts +0 -9
- package/component/tab-group/tab-group.component.d.ts +0 -16
- package/directive/MenuTriggerForDirective.d.ts +0 -11
- package/error/WindowClosedError.d.ts +0 -6
- package/esm2020/application/ShellBaseComponent.mjs +0 -78
- package/esm2020/bottomSheet/BottomSheetImpl.mjs +0 -273
- package/esm2020/bottomSheet/BottomSheetModule.mjs +0 -37
- package/esm2020/bottomSheet/BottomSheetService.mjs +0 -107
- package/esm2020/bottomSheet/component/BottomSheetBaseComponent.mjs +0 -59
- package/esm2020/component/VIComponentModule.mjs +0 -117
- package/esm2020/component/cdk-table/CdkTableBaseComponent.mjs +0 -192
- package/esm2020/component/cdk-table/CdkTableDataSource.mjs +0 -58
- package/esm2020/component/cdk-table/CdkTableFilterableMapCollection.mjs +0 -94
- package/esm2020/component/cdk-table/CdkTablePaginableBookmarkMapCollection.mjs +0 -49
- package/esm2020/component/cdk-table/CdkTablePaginableMapCollection.mjs +0 -57
- package/esm2020/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.mjs +0 -37
- package/esm2020/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.mjs +0 -65
- package/esm2020/component/cdk-table/cdk-table-paginable-bookmark/cdk-table-paginable-bookmark.component.mjs +0 -37
- package/esm2020/component/cdk-table/cell/CdkTableCellClassNamePipe.mjs +0 -25
- package/esm2020/component/cdk-table/cell/CdkTableCellStyleNamePipe.mjs +0 -22
- package/esm2020/component/cdk-table/cell/CdkTableCellValuePipe.mjs +0 -77
- package/esm2020/component/cdk-table/cell/CdkTableCellValuePipePure.mjs +0 -22
- package/esm2020/component/cdk-table/column/CdkTableColumnClassNamePipe.mjs +0 -22
- package/esm2020/component/cdk-table/column/CdkTableColumnStyleNamePipe.mjs +0 -22
- package/esm2020/component/cdk-table/column/ICdkTableColumn.mjs +0 -2
- package/esm2020/component/cdk-table/row/CdkTableRowClassNamePipe.mjs +0 -22
- package/esm2020/component/cdk-table/row/CdkTableRowStyleNamePipe.mjs +0 -22
- package/esm2020/component/cdk-table/row/ICdkTableRow.mjs +0 -2
- package/esm2020/component/language/language-selector/language-selector.component.mjs +0 -79
- package/esm2020/component/menu-list/menu-list.component.mjs +0 -16
- package/esm2020/component/select-list/select-list.component.mjs +0 -16
- package/esm2020/component/tab-group/tab-group.component.mjs +0 -71
- package/esm2020/directive/MenuTriggerForDirective.mjs +0 -53
- package/esm2020/error/WindowClosedError.mjs +0 -19
- package/esm2020/language/LanguageMatPaginatorIntl.mjs +0 -62
- package/esm2020/language/LanguageMomentDateAdapter.mjs +0 -13
- package/esm2020/notification/INotification.mjs +0 -7
- package/esm2020/notification/INotificationContent.mjs +0 -132
- package/esm2020/notification/NotificationConfig.mjs +0 -16
- package/esm2020/notification/NotificationFactory.mjs +0 -19
- package/esm2020/notification/NotificationImpl.mjs +0 -139
- package/esm2020/notification/NotificationModule.mjs +0 -53
- package/esm2020/notification/NotificationProperties.mjs +0 -2
- package/esm2020/notification/NotificationService.mjs +0 -239
- package/esm2020/notification/component/NotificationBaseComponent.mjs +0 -4
- package/esm2020/notification/component/NotificationQuestionBaseComponent.mjs +0 -50
- package/esm2020/notification/component/notification/notification.component.mjs +0 -61
- package/esm2020/service/BootstrapBreakpointService.mjs +0 -116
- package/esm2020/window/IWindow.mjs +0 -32
- package/esm2020/window/IWindowContent.mjs +0 -132
- package/esm2020/window/WindowBase.mjs +0 -168
- package/esm2020/window/WindowConfig.mjs +0 -232
- package/esm2020/window/WindowFactory.mjs +0 -27
- package/esm2020/window/WindowImpl.mjs +0 -361
- package/esm2020/window/WindowModule.mjs +0 -58
- package/esm2020/window/WindowProperties.mjs +0 -2
- package/esm2020/window/WindowService.mjs +0 -366
- package/esm2020/window/WindowServiceEvent.mjs +0 -9
- package/esm2020/window/component/WindowBaseComponent.mjs +0 -75
- package/esm2020/window/component/WindowDragAreaDirective.mjs +0 -97
- package/esm2020/window/component/WindowDragable.mjs +0 -69
- package/esm2020/window/component/WindowElement.mjs +0 -95
- package/esm2020/window/component/WindowQuestionBaseComponent.mjs +0 -17
- package/esm2020/window/component/WindowResizeable.mjs +0 -88
- package/esm2020/window/component/window-close-element/window-close-element.component.mjs +0 -55
- package/esm2020/window/component/window-expand-element/window-expand-element.component.mjs +0 -56
- package/esm2020/window/component/window-minimize-element/window-minimize-element.component.mjs +0 -75
- package/esm2020/window/component/window-question/window-question.component.mjs +0 -50
- package/esm2020/window/component/window-resize-element/window-resize-element.component.mjs +0 -56
- package/language/LanguageMatPaginatorIntl.d.ts +0 -20
- package/language/LanguageMomentDateAdapter.d.ts +0 -5
- package/notification/INotification.d.ts +0 -26
- package/notification/INotificationContent.d.ts +0 -31
- package/notification/NotificationConfig.d.ts +0 -13
- package/notification/NotificationFactory.d.ts +0 -11
- package/notification/NotificationImpl.d.ts +0 -38
- package/notification/NotificationModule.d.ts +0 -18
- package/notification/NotificationProperties.d.ts +0 -9
- package/notification/NotificationService.d.ts +0 -56
- package/notification/component/NotificationBaseComponent.d.ts +0 -3
- package/notification/component/NotificationQuestionBaseComponent.d.ts +0 -10
- package/notification/component/notification/notification.component.d.ts +0 -14
- package/service/BootstrapBreakpointService.d.ts +0 -45
- package/style/mat/bootstrap/_background.scss +0 -10
- package/style/mat/bootstrap/_border.scss +0 -207
- package/style/mat/bootstrap/_text.scss +0 -43
- package/style/mat/bootstrap/_variables.scss +0 -8
- package/style/mat/vi-mat-bootstrap.scss +0 -50
- package/style/mat/vi-mat.scss +0 -570
- package/style/mixin.scss +0 -69
- package/style/mouse.scss +0 -47
- package/window/IWindow.d.ts +0 -41
- package/window/IWindowContent.d.ts +0 -34
- package/window/WindowBase.d.ts +0 -33
- package/window/WindowConfig.d.ts +0 -64
- package/window/WindowFactory.d.ts +0 -12
- package/window/WindowImpl.d.ts +0 -89
- package/window/WindowModule.d.ts +0 -20
- package/window/WindowProperties.d.ts +0 -9
- package/window/WindowService.d.ts +0 -71
- package/window/WindowServiceEvent.d.ts +0 -7
- package/window/component/WindowBaseComponent.d.ts +0 -20
- package/window/component/WindowDragAreaDirective.d.ts +0 -19
- package/window/component/WindowDragable.d.ts +0 -13
- package/window/component/WindowElement.d.ts +0 -22
- package/window/component/WindowQuestionBaseComponent.d.ts +0 -5
- package/window/component/WindowResizeable.d.ts +0 -10
- package/window/component/window-close-element/window-close-element.component.d.ts +0 -12
- package/window/component/window-expand-element/window-expand-element.component.d.ts +0 -12
- package/window/component/window-minimize-element/window-minimize-element.component.d.ts +0 -15
- package/window/component/window-question/window-question.component.d.ts +0 -12
- package/window/component/window-resize-element/window-resize-element.component.d.ts +0 -12
|
@@ -1,361 +0,0 @@
|
|
|
1
|
-
import { Subject, filter, takeUntil } from 'rxjs';
|
|
2
|
-
import { ViewUtil } from '../util/ViewUtil';
|
|
3
|
-
import { WindowEvent } from './IWindow';
|
|
4
|
-
import { WindowBase } from './WindowBase';
|
|
5
|
-
import * as _ from 'lodash';
|
|
6
|
-
import { ArrayUtil } from '@ts-core/common';
|
|
7
|
-
export class WindowImpl extends WindowBase {
|
|
8
|
-
// --------------------------------------------------------------------------
|
|
9
|
-
//
|
|
10
|
-
// Constructor
|
|
11
|
-
//
|
|
12
|
-
// --------------------------------------------------------------------------
|
|
13
|
-
constructor(properties) {
|
|
14
|
-
super();
|
|
15
|
-
// --------------------------------------------------------------------------
|
|
16
|
-
//
|
|
17
|
-
// Properties
|
|
18
|
-
//
|
|
19
|
-
// --------------------------------------------------------------------------
|
|
20
|
-
this._isBlink = false;
|
|
21
|
-
this._isShaking = false;
|
|
22
|
-
this._isOnTop = false;
|
|
23
|
-
this._isDisabled = false;
|
|
24
|
-
this._isMinimized = false;
|
|
25
|
-
this.isOpened = false;
|
|
26
|
-
this.isWasOnTop = false;
|
|
27
|
-
// --------------------------------------------------------------------------
|
|
28
|
-
//
|
|
29
|
-
// Protected Methods
|
|
30
|
-
//
|
|
31
|
-
// --------------------------------------------------------------------------
|
|
32
|
-
this.setClosed = () => {
|
|
33
|
-
this.isOpened = false;
|
|
34
|
-
this.emit(WindowEvent.CLOSED);
|
|
35
|
-
this.destroy();
|
|
36
|
-
};
|
|
37
|
-
this.setOpened = () => {
|
|
38
|
-
this.isOpened = true;
|
|
39
|
-
this.emit(WindowEvent.OPENED);
|
|
40
|
-
};
|
|
41
|
-
this.blinkToggle = () => {
|
|
42
|
-
this.isBlink = !this.isBlink;
|
|
43
|
-
};
|
|
44
|
-
this.stopShaking = () => {
|
|
45
|
-
this.isShaking = false;
|
|
46
|
-
};
|
|
47
|
-
this.emitResize = () => {
|
|
48
|
-
this.emit(WindowEvent.RESIZED);
|
|
49
|
-
};
|
|
50
|
-
this.resizeHandler = () => {
|
|
51
|
-
if (!this.isOpened) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
clearTimeout(this.resizeTimer);
|
|
55
|
-
this.resizeTimer = setTimeout(this.emitResize, WindowImpl.RESIZE_DELAY);
|
|
56
|
-
};
|
|
57
|
-
this.mouseDownHandlerProxy = (event) => {
|
|
58
|
-
this.mouseDownHandler(event);
|
|
59
|
-
};
|
|
60
|
-
this.mouseClickHandlerProxy = (event) => {
|
|
61
|
-
this.mouseClickHandler(event);
|
|
62
|
-
};
|
|
63
|
-
this.observer = new Subject();
|
|
64
|
-
this.elements = new Array();
|
|
65
|
-
this.properties = properties;
|
|
66
|
-
this.content.window = this;
|
|
67
|
-
// Have to save for unsubscribe on destroy
|
|
68
|
-
this._wrapper = this.properties.overlay.hostElement;
|
|
69
|
-
this._backdrop = this.properties.overlay.backdropElement;
|
|
70
|
-
this._container = this.properties.overlay.overlayElement;
|
|
71
|
-
this.setProperties();
|
|
72
|
-
this.getReference().afterOpened().pipe(takeUntil(this.destroyed)).subscribe(this.setOpened);
|
|
73
|
-
this.getReference().afterClosed().pipe(takeUntil(this.destroyed)).subscribe(this.setClosed);
|
|
74
|
-
this.events
|
|
75
|
-
.pipe(filter(event => event === WindowEvent.CONTENT_READY), takeUntil(this.destroyed))
|
|
76
|
-
.subscribe(this.updatePosition);
|
|
77
|
-
}
|
|
78
|
-
// --------------------------------------------------------------------------
|
|
79
|
-
//
|
|
80
|
-
// Elements Methods
|
|
81
|
-
//
|
|
82
|
-
// --------------------------------------------------------------------------
|
|
83
|
-
elementsCreate() {
|
|
84
|
-
this.elements = new Array();
|
|
85
|
-
}
|
|
86
|
-
elementsDestroy() {
|
|
87
|
-
this.elements.forEach(item => this.elementDestroy(item));
|
|
88
|
-
this.elements = null;
|
|
89
|
-
}
|
|
90
|
-
elementAdd(item) {
|
|
91
|
-
this.elements.push(item);
|
|
92
|
-
item.instance.window = this;
|
|
93
|
-
return item;
|
|
94
|
-
}
|
|
95
|
-
elementRemove(item) {
|
|
96
|
-
ArrayUtil.remove(this.elements, item);
|
|
97
|
-
this.elementDestroy(item);
|
|
98
|
-
return item;
|
|
99
|
-
}
|
|
100
|
-
elementDestroy(item) {
|
|
101
|
-
item.instance.window = null;
|
|
102
|
-
item.destroy();
|
|
103
|
-
return item;
|
|
104
|
-
}
|
|
105
|
-
setProperties() {
|
|
106
|
-
super.setProperties();
|
|
107
|
-
ViewUtil.addClass(this.container, 'vi-window');
|
|
108
|
-
ViewUtil.toggleClass(this.container, 'vi-modal', this.config.isModal);
|
|
109
|
-
this.container.addEventListener('click', this.mouseClickHandlerProxy, true);
|
|
110
|
-
this.container.addEventListener('mousedown', this.mouseDownHandlerProxy);
|
|
111
|
-
/*
|
|
112
|
-
if (!this.config.isModal) {
|
|
113
|
-
this.container.addEventListener('mousedown', this.mouseDownHandlerProxy);
|
|
114
|
-
}
|
|
115
|
-
*/
|
|
116
|
-
this.elementsCreate();
|
|
117
|
-
}
|
|
118
|
-
commitIsBlinkProperties() { }
|
|
119
|
-
commitIsShakingProperties() { }
|
|
120
|
-
commitIsDisabledProperties() { }
|
|
121
|
-
commitIsMinimizedProperties() { }
|
|
122
|
-
getConfig() {
|
|
123
|
-
return this.properties.config;
|
|
124
|
-
}
|
|
125
|
-
getContainer() {
|
|
126
|
-
return this.container;
|
|
127
|
-
}
|
|
128
|
-
getReference() {
|
|
129
|
-
return this.properties.reference;
|
|
130
|
-
}
|
|
131
|
-
isNeedClickStopPropagation(event) {
|
|
132
|
-
if (!this.isWasOnTop) {
|
|
133
|
-
return true;
|
|
134
|
-
}
|
|
135
|
-
let element = _.find(this.elements, item => item.location.nativeElement === event.target);
|
|
136
|
-
if (_.isNil(element)) {
|
|
137
|
-
return false;
|
|
138
|
-
}
|
|
139
|
-
element.instance.clickHandler(event);
|
|
140
|
-
return true;
|
|
141
|
-
}
|
|
142
|
-
stopBlinkIfNeed() {
|
|
143
|
-
this.isBlink = false;
|
|
144
|
-
if (!this.blinkTimer) {
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
clearInterval(this.blinkTimer);
|
|
148
|
-
this.blinkTimer = null;
|
|
149
|
-
}
|
|
150
|
-
mouseDownHandler(event) {
|
|
151
|
-
this.setOnTop();
|
|
152
|
-
}
|
|
153
|
-
mouseClickHandler(event) {
|
|
154
|
-
if (this.isNeedClickStopPropagation(event)) {
|
|
155
|
-
event.stopPropagation();
|
|
156
|
-
}
|
|
157
|
-
if (!this.isWasOnTop) {
|
|
158
|
-
this.isWasOnTop = true;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
// --------------------------------------------------------------------------
|
|
162
|
-
//
|
|
163
|
-
// Public Methods
|
|
164
|
-
//
|
|
165
|
-
// --------------------------------------------------------------------------
|
|
166
|
-
emit(event) {
|
|
167
|
-
this.observer.next(event);
|
|
168
|
-
}
|
|
169
|
-
close() {
|
|
170
|
-
this.getReference().close();
|
|
171
|
-
}
|
|
172
|
-
destroy() {
|
|
173
|
-
if (this.isDestroyed) {
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
super.destroy();
|
|
177
|
-
this.elementsDestroy();
|
|
178
|
-
this._container.removeEventListener('click', this.mouseClickHandlerProxy, true);
|
|
179
|
-
this._container.removeEventListener('mousedown', this.mouseDownHandlerProxy);
|
|
180
|
-
if (!_.isNil(this.content)) {
|
|
181
|
-
this.content.destroy();
|
|
182
|
-
}
|
|
183
|
-
if (!_.isNil(this.observer)) {
|
|
184
|
-
this.observer.complete();
|
|
185
|
-
this.observer = null;
|
|
186
|
-
}
|
|
187
|
-
this.properties = null;
|
|
188
|
-
this._wrapper = null;
|
|
189
|
-
this._backdrop = null;
|
|
190
|
-
this._container = null;
|
|
191
|
-
clearInterval(this.blinkTimer);
|
|
192
|
-
this.blinkTimer = null;
|
|
193
|
-
clearInterval(this.shakeTimer);
|
|
194
|
-
this.shakeTimer = null;
|
|
195
|
-
clearTimeout(this.resizeTimer);
|
|
196
|
-
this.resizeTimer = null;
|
|
197
|
-
}
|
|
198
|
-
blink() {
|
|
199
|
-
clearInterval(this.blinkTimer);
|
|
200
|
-
this.blinkTimer = setInterval(this.blinkToggle, WindowImpl.BLINK_DELAY);
|
|
201
|
-
}
|
|
202
|
-
shake() {
|
|
203
|
-
if (this.isShaking) {
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
this.isShaking = true;
|
|
207
|
-
clearInterval(this.shakeTimer);
|
|
208
|
-
this.shakeTimer = setInterval(this.stopShaking, WindowImpl.SHAKE_DELAY);
|
|
209
|
-
}
|
|
210
|
-
setOnTop() {
|
|
211
|
-
this.isWasOnTop = this.isOnTop;
|
|
212
|
-
this.emit(WindowEvent.SET_ON_TOP);
|
|
213
|
-
}
|
|
214
|
-
// --------------------------------------------------------------------------
|
|
215
|
-
//
|
|
216
|
-
// Size Methods
|
|
217
|
-
//
|
|
218
|
-
// --------------------------------------------------------------------------
|
|
219
|
-
getWidth() {
|
|
220
|
-
return this.width;
|
|
221
|
-
}
|
|
222
|
-
getHeight() {
|
|
223
|
-
return this.height;
|
|
224
|
-
}
|
|
225
|
-
setWidth(value, isNeedNotify = true) {
|
|
226
|
-
this.width = value;
|
|
227
|
-
if (isNeedNotify) {
|
|
228
|
-
this.resizeHandler();
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
setHeight(value, isNeedNotify = true) {
|
|
232
|
-
this.height = value;
|
|
233
|
-
if (isNeedNotify) {
|
|
234
|
-
this.resizeHandler();
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
setSize(width, height) {
|
|
238
|
-
this.setWidth(width, false);
|
|
239
|
-
this.setHeight(height, false);
|
|
240
|
-
this.resizeHandler();
|
|
241
|
-
}
|
|
242
|
-
// --------------------------------------------------------------------------
|
|
243
|
-
//
|
|
244
|
-
// Move Methods
|
|
245
|
-
//
|
|
246
|
-
// --------------------------------------------------------------------------
|
|
247
|
-
getX() {
|
|
248
|
-
return this.x;
|
|
249
|
-
}
|
|
250
|
-
setX(value, isNeedNotify = true) {
|
|
251
|
-
this.x = value;
|
|
252
|
-
if (isNeedNotify) {
|
|
253
|
-
this.emit(WindowEvent.MOVED);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
getY() {
|
|
257
|
-
return this.y;
|
|
258
|
-
}
|
|
259
|
-
setY(value, isNeedNotify = true) {
|
|
260
|
-
this.y = value;
|
|
261
|
-
if (isNeedNotify) {
|
|
262
|
-
this.emit(WindowEvent.MOVED);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
move(x, y) {
|
|
266
|
-
this.setX(x, false);
|
|
267
|
-
this.setY(y, false);
|
|
268
|
-
this.emit(WindowEvent.MOVED);
|
|
269
|
-
}
|
|
270
|
-
// --------------------------------------------------------------------------
|
|
271
|
-
//
|
|
272
|
-
// Private Properties
|
|
273
|
-
//
|
|
274
|
-
// --------------------------------------------------------------------------
|
|
275
|
-
get isBlink() {
|
|
276
|
-
return this._isBlink;
|
|
277
|
-
}
|
|
278
|
-
set isBlink(value) {
|
|
279
|
-
if (value === this._isBlink) {
|
|
280
|
-
return;
|
|
281
|
-
}
|
|
282
|
-
this._isBlink = value;
|
|
283
|
-
this.commitIsBlinkProperties();
|
|
284
|
-
}
|
|
285
|
-
get isShaking() {
|
|
286
|
-
return this._isShaking;
|
|
287
|
-
}
|
|
288
|
-
set isShaking(value) {
|
|
289
|
-
if (value === this._isShaking) {
|
|
290
|
-
return;
|
|
291
|
-
}
|
|
292
|
-
this._isShaking = value;
|
|
293
|
-
this.commitIsShakingProperties();
|
|
294
|
-
}
|
|
295
|
-
// --------------------------------------------------------------------------
|
|
296
|
-
//
|
|
297
|
-
// Public Properties
|
|
298
|
-
//
|
|
299
|
-
// --------------------------------------------------------------------------
|
|
300
|
-
get events() {
|
|
301
|
-
return this.observer.asObservable();
|
|
302
|
-
}
|
|
303
|
-
get config() {
|
|
304
|
-
return this.properties.config;
|
|
305
|
-
}
|
|
306
|
-
get content() {
|
|
307
|
-
return this.properties.reference ? this.properties.reference.componentInstance : null;
|
|
308
|
-
}
|
|
309
|
-
get container() {
|
|
310
|
-
return this._container;
|
|
311
|
-
}
|
|
312
|
-
get wrapper() {
|
|
313
|
-
return this._wrapper;
|
|
314
|
-
}
|
|
315
|
-
get backdrop() {
|
|
316
|
-
return this._backdrop;
|
|
317
|
-
}
|
|
318
|
-
get isOnTop() {
|
|
319
|
-
return this._isOnTop;
|
|
320
|
-
}
|
|
321
|
-
set isOnTop(value) {
|
|
322
|
-
if (value === this._isOnTop) {
|
|
323
|
-
return;
|
|
324
|
-
}
|
|
325
|
-
this._isOnTop = value;
|
|
326
|
-
clearInterval(this.blinkTimer);
|
|
327
|
-
this.isBlink = false;
|
|
328
|
-
}
|
|
329
|
-
get isMinimized() {
|
|
330
|
-
return this._isMinimized;
|
|
331
|
-
}
|
|
332
|
-
set isMinimized(value) {
|
|
333
|
-
if (value === this._isMinimized) {
|
|
334
|
-
return;
|
|
335
|
-
}
|
|
336
|
-
this._isMinimized = value;
|
|
337
|
-
this.commitIsMinimizedProperties();
|
|
338
|
-
this.emit(WindowEvent.MINIMIZED_CHANGED);
|
|
339
|
-
this.stopBlinkIfNeed();
|
|
340
|
-
}
|
|
341
|
-
get isDisabled() {
|
|
342
|
-
return this._isDisabled;
|
|
343
|
-
}
|
|
344
|
-
set isDisabled(value) {
|
|
345
|
-
if (value === this._isDisabled) {
|
|
346
|
-
return;
|
|
347
|
-
}
|
|
348
|
-
this._isDisabled = value;
|
|
349
|
-
this.commitIsDisabledProperties();
|
|
350
|
-
this.emit(WindowEvent.DISABLED_CHANGED);
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
// --------------------------------------------------------------------------
|
|
354
|
-
//
|
|
355
|
-
// Constants
|
|
356
|
-
//
|
|
357
|
-
// --------------------------------------------------------------------------
|
|
358
|
-
WindowImpl.BLINK_DELAY = 500;
|
|
359
|
-
WindowImpl.SHAKE_DELAY = 500;
|
|
360
|
-
WindowImpl.RESIZE_DELAY = 200;
|
|
361
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2luZG93SW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93aW5kb3cvV2luZG93SW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQVcsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzVDLE1BQU0sT0FBTyxVQUFvQixTQUFRLFVBQWE7SUEwQ2xELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsZUFBZTtJQUNmLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBWSxVQUE0QjtRQUNwQyxLQUFLLEVBQUUsQ0FBQztRQXRDWiw2RUFBNkU7UUFDN0UsRUFBRTtRQUNGLGNBQWM7UUFDZCxFQUFFO1FBQ0YsNkVBQTZFO1FBRXJFLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUs1QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTlCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQTRFcEMsNkVBQTZFO1FBQzdFLEVBQUU7UUFDRixxQkFBcUI7UUFDckIsRUFBRTtRQUNGLDZFQUE2RTtRQUVuRSxjQUFTLEdBQUcsR0FBUyxFQUFFO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENB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QUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsV0FBVyxDQUFDLEtBQWM7UUFDakMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRTtZQUM3QixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBVyxVQUFVLENBQUMsS0FBYztRQUNoQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUMsQ0FBQzs7QUEzYkQsNkVBQTZFO0FBQzdFLEVBQUU7QUFDRixhQUFhO0FBQ2IsRUFBRTtBQUNGLDZFQUE2RTtBQUUvRCxzQkFBVyxHQUFHLEdBQUcsQ0FBQztBQUNsQixzQkFBVyxHQUFHLEdBQUcsQ0FBQztBQUNsQix1QkFBWSxHQUFHLEdBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBWaWV3VXRpbCB9IGZyb20gJy4uL3V0aWwvVmlld1V0aWwnO1xuaW1wb3J0IHsgSVdpbmRvdywgV2luZG93RXZlbnQgfSBmcm9tICcuL0lXaW5kb3cnO1xuaW1wb3J0IHsgSVdpbmRvd0NvbnRlbnQgfSBmcm9tICcuL0lXaW5kb3dDb250ZW50JztcbmltcG9ydCB7IFdpbmRvd0Jhc2UgfSBmcm9tICcuL1dpbmRvd0Jhc2UnO1xuaW1wb3J0IHsgV2luZG93Q29uZmlnIH0gZnJvbSAnLi9XaW5kb3dDb25maWcnO1xuaW1wb3J0IHsgV2luZG93UHJvcGVydGllcyB9IGZyb20gJy4vV2luZG93UHJvcGVydGllcyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBXaW5kb3dFbGVtZW50IH0gZnJvbSAnLi9jb21wb25lbnQvV2luZG93RWxlbWVudCc7XG5pbXBvcnQgeyBBcnJheVV0aWwgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBXaW5kb3dJbXBsPFQgPSBhbnk+IGV4dGVuZHMgV2luZG93QmFzZTxUPiBpbXBsZW1lbnRzIElXaW5kb3cge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgQ29uc3RhbnRzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIHN0YXRpYyBCTElOS19ERUxBWSA9IDUwMDtcbiAgICBwdWJsaWMgc3RhdGljIFNIQUtFX0RFTEFZID0gNTAwO1xuICAgIHB1YmxpYyBzdGF0aWMgUkVTSVpFX0RFTEFZID0gMjAwO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJpdmF0ZSBfaXNCbGluazogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgYmxpbmtUaW1lcjogYW55O1xuXG4gICAgcHJpdmF0ZSBfaXNTaGFraW5nOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBzaGFrZVRpbWVyOiBhbnk7XG5cbiAgICBwcml2YXRlIHJlc2l6ZVRpbWVyOiBhbnk7XG5cbiAgICBwcml2YXRlIF9pc09uVG9wOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzTWluaW1pemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGlzT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBpc1dhc09uVG9wOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF93cmFwcGVyOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIF9iYWNrZHJvcDogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBfY29udGFpbmVyOiBIVE1MRWxlbWVudDtcblxuICAgIHByb3RlY3RlZCBlbGVtZW50czogQXJyYXk8Q29tcG9uZW50UmVmPFdpbmRvd0VsZW1lbnQ+PjtcbiAgICBwcm90ZWN0ZWQgcHJvcGVydGllczogV2luZG93UHJvcGVydGllcztcblxuICAgIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgb2JzZXJ2ZXI6IFN1YmplY3Q8c3RyaW5nPjtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgQ29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiBXaW5kb3dQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgICB0aGlzLmVsZW1lbnRzID0gbmV3IEFycmF5KCk7XG5cbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICAgICAgdGhpcy5jb250ZW50LndpbmRvdyA9IHRoaXM7XG5cbiAgICAgICAgLy8gSGF2ZSB0byBzYXZlIGZvciB1bnN1YnNjcmliZSBvbiBkZXN0cm95XG4gICAgICAgIHRoaXMuX3dyYXBwZXIgPSB0aGlzLnByb3BlcnRpZXMub3ZlcmxheS5ob3N0RWxlbWVudDtcbiAgICAgICAgdGhpcy5fYmFja2Ryb3AgPSB0aGlzLnByb3BlcnRpZXMub3ZlcmxheS5iYWNrZHJvcEVsZW1lbnQ7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lciA9IHRoaXMucHJvcGVydGllcy5vdmVybGF5Lm92ZXJsYXlFbGVtZW50O1xuXG4gICAgICAgIHRoaXMuc2V0UHJvcGVydGllcygpO1xuICAgICAgICB0aGlzLmdldFJlZmVyZW5jZSgpLmFmdGVyT3BlbmVkKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUodGhpcy5zZXRPcGVuZWQpO1xuICAgICAgICB0aGlzLmdldFJlZmVyZW5jZSgpLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUodGhpcy5zZXRDbG9zZWQpO1xuXG4gICAgICAgIHRoaXMuZXZlbnRzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgPT09IFdpbmRvd0V2ZW50LkNPTlRFTlRfUkVBRFkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy51cGRhdGVQb3NpdGlvbik7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBFbGVtZW50cyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRzQ3JlYXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRzID0gbmV3IEFycmF5KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRzRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50cy5mb3JFYWNoKGl0ZW0gPT4gdGhpcy5lbGVtZW50RGVzdHJveShpdGVtKSk7XG4gICAgICAgIHRoaXMuZWxlbWVudHMgPSBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBlbGVtZW50QWRkKGl0ZW06IENvbXBvbmVudFJlZjxXaW5kb3dFbGVtZW50Pik6IENvbXBvbmVudFJlZjxXaW5kb3dFbGVtZW50PiB7XG4gICAgICAgIHRoaXMuZWxlbWVudHMucHVzaChpdGVtKTtcbiAgICAgICAgaXRlbS5pbnN0YW5jZS53aW5kb3cgPSB0aGlzO1xuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZWxlbWVudFJlbW92ZShpdGVtOiBDb21wb25lbnRSZWY8V2luZG93RWxlbWVudD4pOiBDb21wb25lbnRSZWY8V2luZG93RWxlbWVudD4ge1xuICAgICAgICBBcnJheVV0aWwucmVtb3ZlKHRoaXMuZWxlbWVudHMsIGl0ZW0pO1xuICAgICAgICB0aGlzLmVsZW1lbnREZXN0cm95KGl0ZW0pO1xuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZWxlbWVudERlc3Ryb3koaXRlbTogQ29tcG9uZW50UmVmPFdpbmRvd0VsZW1lbnQ+KTogQ29tcG9uZW50UmVmPFdpbmRvd0VsZW1lbnQ+IHtcbiAgICAgICAgaXRlbS5pbnN0YW5jZS53aW5kb3cgPSBudWxsO1xuICAgICAgICBpdGVtLmRlc3Ryb3koKTtcbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBzZXRDbG9zZWQgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuaXNPcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50LkNMT1NFRCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgc2V0T3BlbmVkID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzT3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50Lk9QRU5FRCk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBibGlua1RvZ2dsZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc0JsaW5rID0gIXRoaXMuaXNCbGluaztcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIHN0b3BTaGFraW5nID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzU2hha2luZyA9IGZhbHNlO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgZW1pdFJlc2l6ZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50LlJFU0laRUQpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgc2V0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuc2V0UHJvcGVydGllcygpO1xuICAgICAgICBWaWV3VXRpbC5hZGRDbGFzcyh0aGlzLmNvbnRhaW5lciwgJ3ZpLXdpbmRvdycpO1xuICAgICAgICBWaWV3VXRpbC50b2dnbGVDbGFzcyh0aGlzLmNvbnRhaW5lciwgJ3ZpLW1vZGFsJywgdGhpcy5jb25maWcuaXNNb2RhbCk7XG5cbiAgICAgICAgdGhpcy5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm1vdXNlQ2xpY2tIYW5kbGVyUHJveHksIHRydWUpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm1vdXNlRG93bkhhbmRsZXJQcm94eSk7XG4gICAgICAgIC8qXG4gICAgICAgIGlmICghdGhpcy5jb25maWcuaXNNb2RhbCkge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5tb3VzZURvd25IYW5kbGVyUHJveHkpO1xuICAgICAgICB9XG4gICAgICAgICovXG5cbiAgICAgICAgdGhpcy5lbGVtZW50c0NyZWF0ZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb21taXRJc0JsaW5rUHJvcGVydGllcygpOiB2b2lkIHt9XG4gICAgcHJvdGVjdGVkIGNvbW1pdElzU2hha2luZ1Byb3BlcnRpZXMoKTogdm9pZCB7fVxuICAgIHByb3RlY3RlZCBjb21taXRJc0Rpc2FibGVkUHJvcGVydGllcygpOiB2b2lkIHt9XG4gICAgcHJvdGVjdGVkIGNvbW1pdElzTWluaW1pemVkUHJvcGVydGllcygpOiB2b2lkIHt9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0Q29uZmlnKCk6IFdpbmRvd0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMuY29uZmlnO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgZ2V0Q29udGFpbmVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgZ2V0UmVmZXJlbmNlKCk6IE1hdERpYWxvZ1JlZjxJV2luZG93Q29udGVudDxUPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzLnJlZmVyZW5jZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXNOZWVkQ2xpY2tTdG9wUHJvcGFnYXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzV2FzT25Ub3ApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBlbGVtZW50ID0gXy5maW5kKHRoaXMuZWxlbWVudHMsIGl0ZW0gPT4gaXRlbS5sb2NhdGlvbi5uYXRpdmVFbGVtZW50ID09PSBldmVudC50YXJnZXQpO1xuICAgICAgICBpZiAoXy5pc05pbChlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsZW1lbnQuaW5zdGFuY2UuY2xpY2tIYW5kbGVyKGV2ZW50KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wQmxpbmtJZk5lZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNCbGluayA9IGZhbHNlO1xuICAgICAgICBpZiAoIXRoaXMuYmxpbmtUaW1lcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5ibGlua1RpbWVyKTtcbiAgICAgICAgdGhpcy5ibGlua1RpbWVyID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzaXplSGFuZGxlciA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzT3BlbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZXIpO1xuICAgICAgICB0aGlzLnJlc2l6ZVRpbWVyID0gc2V0VGltZW91dCh0aGlzLmVtaXRSZXNpemUsIFdpbmRvd0ltcGwuUkVTSVpFX0RFTEFZKTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIG1vdXNlRG93bkhhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPblRvcCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBtb3VzZUNsaWNrSGFuZGxlcihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc05lZWRDbGlja1N0b3BQcm9wYWdhdGlvbihldmVudCkpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5pc1dhc09uVG9wKSB7XG4gICAgICAgICAgICB0aGlzLmlzV2FzT25Ub3AgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtb3VzZURvd25IYW5kbGVyUHJveHkgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5tb3VzZURvd25IYW5kbGVyKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBtb3VzZUNsaWNrSGFuZGxlclByb3h5ID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMubW91c2VDbGlja0hhbmRsZXIoZXZlbnQpO1xuICAgIH07XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGVtaXQoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRSZWZlcmVuY2UoKS5jbG9zZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5lbGVtZW50c0Rlc3Ryb3koKTtcblxuICAgICAgICB0aGlzLl9jb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm1vdXNlQ2xpY2tIYW5kbGVyUHJveHksIHRydWUpO1xuICAgICAgICB0aGlzLl9jb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5tb3VzZURvd25IYW5kbGVyUHJveHkpO1xuXG4gICAgICAgIGlmICghXy5pc05pbCh0aGlzLmNvbnRlbnQpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQuZGVzdHJveSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMub2JzZXJ2ZXIpKSB7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJvcGVydGllcyA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5fd3JhcHBlciA9IG51bGw7XG4gICAgICAgIHRoaXMuX2JhY2tkcm9wID0gbnVsbDtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyID0gbnVsbDtcblxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYmxpbmtUaW1lcik7XG4gICAgICAgIHRoaXMuYmxpbmtUaW1lciA9IG51bGw7XG5cbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnNoYWtlVGltZXIpO1xuICAgICAgICB0aGlzLnNoYWtlVGltZXIgPSBudWxsO1xuXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVyKTtcbiAgICAgICAgdGhpcy5yZXNpemVUaW1lciA9IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGJsaW5rKCk6IHZvaWQge1xuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYmxpbmtUaW1lcik7XG4gICAgICAgIHRoaXMuYmxpbmtUaW1lciA9IHNldEludGVydmFsKHRoaXMuYmxpbmtUb2dnbGUsIFdpbmRvd0ltcGwuQkxJTktfREVMQVkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaGFrZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTaGFraW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc1NoYWtpbmcgPSB0cnVlO1xuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuc2hha2VUaW1lcik7XG4gICAgICAgIHRoaXMuc2hha2VUaW1lciA9IHNldEludGVydmFsKHRoaXMuc3RvcFNoYWtpbmcsIFdpbmRvd0ltcGwuU0hBS0VfREVMQVkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRPblRvcCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1dhc09uVG9wID0gdGhpcy5pc09uVG9wO1xuICAgICAgICB0aGlzLmVtaXQoV2luZG93RXZlbnQuU0VUX09OX1RPUCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBTaXplIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0V2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2lkdGg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5oZWlnaHQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFdpZHRoKHZhbHVlOiBudW1iZXIsIGlzTmVlZE5vdGlmeTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53aWR0aCA9IHZhbHVlO1xuICAgICAgICBpZiAoaXNOZWVkTm90aWZ5KSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRIZWlnaHQodmFsdWU6IG51bWJlciwgaXNOZWVkTm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmhlaWdodCA9IHZhbHVlO1xuICAgICAgICBpZiAoaXNOZWVkTm90aWZ5KSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTaXplKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0V2lkdGgod2lkdGgsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5zZXRIZWlnaHQoaGVpZ2h0LCBmYWxzZSk7XG4gICAgICAgIHRoaXMucmVzaXplSGFuZGxlcigpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgTW92ZSBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldFgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0WCh2YWx1ZTogbnVtYmVyLCBpc05lZWROb3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMueCA9IHZhbHVlO1xuICAgICAgICBpZiAoaXNOZWVkTm90aWZ5KSB7XG4gICAgICAgICAgICB0aGlzLmVtaXQoV2luZG93RXZlbnQuTU9WRUQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFkoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueTtcbiAgICB9XG4gICAgcHVibGljIHNldFkodmFsdWU6IG51bWJlciwgaXNOZWVkTm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnkgPSB2YWx1ZTtcbiAgICAgICAgaWYgKGlzTmVlZE5vdGlmeSkge1xuICAgICAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50Lk1PVkVEKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBtb3ZlKHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0WCh4LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuc2V0WSh5LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5NT1ZFRCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcml2YXRlIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGlzQmxpbmsoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0JsaW5rO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgc2V0IGlzQmxpbmsodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc0JsaW5rKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNCbGluayA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbW1pdElzQmxpbmtQcm9wZXJ0aWVzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBpc1NoYWtpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1NoYWtpbmc7XG4gICAgfVxuICAgIHByb3RlY3RlZCBzZXQgaXNTaGFraW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5faXNTaGFraW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNTaGFraW5nID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29tbWl0SXNTaGFraW5nUHJvcGVydGllcygpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0IGV2ZW50cygpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vYnNlcnZlci5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBXaW5kb3dDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzLmNvbmZpZztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbnRlbnQoKTogSVdpbmRvd0NvbnRlbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzLnJlZmVyZW5jZSA/IHRoaXMucHJvcGVydGllcy5yZWZlcmVuY2UuY29tcG9uZW50SW5zdGFuY2UgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29udGFpbmVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHdyYXBwZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fd3JhcHBlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJhY2tkcm9wKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JhY2tkcm9wO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNPblRvcCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzT25Ub3A7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaXNPblRvcCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2lzT25Ub3ApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc09uVG9wID0gdmFsdWU7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5ibGlua1RpbWVyKTtcbiAgICAgICAgdGhpcy5pc0JsaW5rID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc01pbmltaXplZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTWluaW1pemVkO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGlzTWluaW1pemVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5faXNNaW5pbWl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc01pbmltaXplZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbW1pdElzTWluaW1pemVkUHJvcGVydGllcygpO1xuICAgICAgICB0aGlzLmVtaXQoV2luZG93RXZlbnQuTUlOSU1JWkVEX0NIQU5HRUQpO1xuICAgICAgICB0aGlzLnN0b3BCbGlua0lmTmVlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRGlzYWJsZWQ7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaXNEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2lzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc0Rpc2FibGVkID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29tbWl0SXNEaXNhYmxlZFByb3BlcnRpZXMoKTtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50LkRJU0FCTEVEX0NIQU5HRUQpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { MatDialogModule } from '@angular/material/dialog';
|
|
3
|
-
import { CookieModule } from '../cookie/CookieModule';
|
|
4
|
-
import { LanguageModule } from '../language/LanguageModule';
|
|
5
|
-
import { WindowService } from './WindowService';
|
|
6
|
-
import { CommonModule } from '@angular/common';
|
|
7
|
-
import { FormsModule } from '@angular/forms';
|
|
8
|
-
import { WindowDragAreaDirective } from './component/WindowDragAreaDirective';
|
|
9
|
-
import { WindowQuestionComponent } from './component/window-question/window-question.component';
|
|
10
|
-
import { WindowCloseElementComponent } from './component/window-close-element/window-close-element.component';
|
|
11
|
-
import { WindowExpandElementComponent } from './component/window-expand-element/window-expand-element.component';
|
|
12
|
-
import { WindowResizeElementComponent } from './component/window-resize-element/window-resize-element.component';
|
|
13
|
-
import { WindowMinimizeElementComponent } from './component/window-minimize-element/window-minimize-element.component';
|
|
14
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
const IMPORTS = [CommonModule, FormsModule, MatButtonModule, MatDialogModule, CookieModule, LanguageModule];
|
|
17
|
-
const ENTRY_COMPONENTS = [
|
|
18
|
-
WindowQuestionComponent,
|
|
19
|
-
WindowCloseElementComponent,
|
|
20
|
-
WindowExpandElementComponent,
|
|
21
|
-
WindowResizeElementComponent,
|
|
22
|
-
WindowMinimizeElementComponent
|
|
23
|
-
];
|
|
24
|
-
const DECLARATIONS = [WindowDragAreaDirective, ...ENTRY_COMPONENTS];
|
|
25
|
-
const EXPORTS = [...DECLARATIONS];
|
|
26
|
-
export class WindowModule {
|
|
27
|
-
// --------------------------------------------------------------------------
|
|
28
|
-
//
|
|
29
|
-
// Static Methods
|
|
30
|
-
//
|
|
31
|
-
// --------------------------------------------------------------------------
|
|
32
|
-
static forRoot() {
|
|
33
|
-
return {
|
|
34
|
-
ngModule: WindowModule,
|
|
35
|
-
providers: [WindowService]
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
WindowModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: WindowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
40
|
-
WindowModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: WindowModule, declarations: [WindowDragAreaDirective, WindowQuestionComponent,
|
|
41
|
-
WindowCloseElementComponent,
|
|
42
|
-
WindowExpandElementComponent,
|
|
43
|
-
WindowResizeElementComponent,
|
|
44
|
-
WindowMinimizeElementComponent], imports: [CommonModule, FormsModule, MatButtonModule, MatDialogModule, CookieModule, LanguageModule], exports: [WindowDragAreaDirective, WindowQuestionComponent,
|
|
45
|
-
WindowCloseElementComponent,
|
|
46
|
-
WindowExpandElementComponent,
|
|
47
|
-
WindowResizeElementComponent,
|
|
48
|
-
WindowMinimizeElementComponent] });
|
|
49
|
-
WindowModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: WindowModule, imports: [IMPORTS] });
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: WindowModule, decorators: [{
|
|
51
|
-
type: NgModule,
|
|
52
|
-
args: [{
|
|
53
|
-
imports: IMPORTS,
|
|
54
|
-
declarations: DECLARATIONS,
|
|
55
|
-
exports: EXPORTS
|
|
56
|
-
}]
|
|
57
|
-
}] });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2luZG93TW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3dpbmRvdy9XaW5kb3dNb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDaEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDOUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDakgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDakgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDdkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUUzRCxNQUFNLE9BQU8sR0FBRyxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDNUcsTUFBTSxnQkFBZ0IsR0FBRztJQUNyQix1QkFBdUI7SUFDdkIsMkJBQTJCO0lBQzNCLDRCQUE0QjtJQUM1Qiw0QkFBNEI7SUFDNUIsOEJBQThCO0NBQ2pDLENBQUM7QUFDRixNQUFNLFlBQVksR0FBRyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztBQUNwRSxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUM7QUFPbEMsTUFBTSxPQUFPLFlBQVk7SUFDckIsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLDZFQUE2RTtJQUV0RSxNQUFNLENBQUMsT0FBTztRQUNqQixPQUFPO1lBQ0gsUUFBUSxFQUFFLFlBQVk7WUFDdEIsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO1NBQzdCLENBQUM7SUFDTixDQUFDOzt5R0FaUSxZQUFZOzBHQUFaLFlBQVksaUJBUkgsdUJBQXVCLEVBTnpDLHVCQUF1QjtRQUN2QiwyQkFBMkI7UUFDM0IsNEJBQTRCO1FBQzVCLDRCQUE0QjtRQUM1Qiw4QkFBOEIsYUFOakIsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxjQUFjLGFBUXBGLHVCQUF1QixFQU56Qyx1QkFBdUI7UUFDdkIsMkJBQTJCO1FBQzNCLDRCQUE0QjtRQUM1Qiw0QkFBNEI7UUFDNUIsOEJBQThCOzBHQVVyQixZQUFZLFlBSlosT0FBTzsyRkFJUCxZQUFZO2tCQUx4QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxPQUFPO29CQUNoQixZQUFZLEVBQUUsWUFBWTtvQkFDMUIsT0FBTyxFQUFFLE9BQU87aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBDb29raWVNb2R1bGUgfSBmcm9tICcuLi9jb29raWUvQ29va2llTW9kdWxlJztcbmltcG9ydCB7IExhbmd1YWdlTW9kdWxlIH0gZnJvbSAnLi4vbGFuZ3VhZ2UvTGFuZ3VhZ2VNb2R1bGUnO1xuaW1wb3J0IHsgV2luZG93U2VydmljZSB9IGZyb20gJy4vV2luZG93U2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBXaW5kb3dEcmFnQXJlYURpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50L1dpbmRvd0RyYWdBcmVhRGlyZWN0aXZlJztcbmltcG9ydCB7IFdpbmRvd1F1ZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQvd2luZG93LXF1ZXN0aW9uL3dpbmRvdy1xdWVzdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2luZG93Q2xvc2VFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQvd2luZG93LWNsb3NlLWVsZW1lbnQvd2luZG93LWNsb3NlLWVsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFdpbmRvd0V4cGFuZEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudC93aW5kb3ctZXhwYW5kLWVsZW1lbnQvd2luZG93LWV4cGFuZC1lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaW5kb3dSZXNpemVFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQvd2luZG93LXJlc2l6ZS1lbGVtZW50L3dpbmRvdy1yZXNpemUtZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2luZG93TWluaW1pemVFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQvd2luZG93LW1pbmltaXplLWVsZW1lbnQvd2luZG93LW1pbmltaXplLWVsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbmNvbnN0IElNUE9SVFMgPSBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIENvb2tpZU1vZHVsZSwgTGFuZ3VhZ2VNb2R1bGVdO1xuY29uc3QgRU5UUllfQ09NUE9ORU5UUyA9IFtcbiAgICBXaW5kb3dRdWVzdGlvbkNvbXBvbmVudCxcbiAgICBXaW5kb3dDbG9zZUVsZW1lbnRDb21wb25lbnQsXG4gICAgV2luZG93RXhwYW5kRWxlbWVudENvbXBvbmVudCxcbiAgICBXaW5kb3dSZXNpemVFbGVtZW50Q29tcG9uZW50LFxuICAgIFdpbmRvd01pbmltaXplRWxlbWVudENvbXBvbmVudFxuXTtcbmNvbnN0IERFQ0xBUkFUSU9OUyA9IFtXaW5kb3dEcmFnQXJlYURpcmVjdGl2ZSwgLi4uRU5UUllfQ09NUE9ORU5UU107XG5jb25zdCBFWFBPUlRTID0gWy4uLkRFQ0xBUkFUSU9OU107XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogSU1QT1JUUyxcbiAgICBkZWNsYXJhdGlvbnM6IERFQ0xBUkFUSU9OUyxcbiAgICBleHBvcnRzOiBFWFBPUlRTXG59KVxuZXhwb3J0IGNsYXNzIFdpbmRvd01vZHVsZSB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0U3RhdGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxXaW5kb3dNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBXaW5kb3dNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtXaW5kb3dTZXJ2aWNlXVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2luZG93UHJvcGVydGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93aW5kb3cvV2luZG93UHJvcGVydGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBJV2luZG93Q29udGVudCB9IGZyb20gJy4vSVdpbmRvd0NvbnRlbnQnO1xuaW1wb3J0IHsgV2luZG93Q29uZmlnIH0gZnJvbSAnLi9XaW5kb3dDb25maWcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdpbmRvd1Byb3BlcnRpZXM8VSA9IGFueT4ge1xuICAgIHJlZmVyZW5jZT86IE1hdERpYWxvZ1JlZjxJV2luZG93Q29udGVudDxVPj47XG4gICAgY29uZmlnPzogV2luZG93Q29uZmlnO1xuICAgIG92ZXJsYXk/OiBPdmVybGF5UmVmO1xufVxuIl19
|