@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.
Files changed (173) hide show
  1. package/VICommonModule.d.ts +10 -13
  2. package/application/ApplicationComponent.d.ts +1 -3
  3. package/directive/ResizeDirective.d.ts +2 -2
  4. package/directive/SelectOnFocusDirective.d.ts +1 -1
  5. package/esm2020/VICommonModule.mjs +4 -14
  6. package/esm2020/application/ApplicationComponent.mjs +2 -3
  7. package/esm2020/application/MessageBaseComponent.mjs +1 -1
  8. package/esm2020/directive/AutoScrollBottomDirective.mjs +2 -2
  9. package/esm2020/directive/ResizeDirective.mjs +5 -5
  10. package/esm2020/directive/SelectOnFocusDirective.mjs +2 -2
  11. package/esm2020/language/LanguageModule.mjs +1 -8
  12. package/esm2020/manager/ResizeManager.mjs +3 -11
  13. package/esm2020/pipe/CamelCasePipe.mjs +4 -12
  14. package/esm2020/pipe/StartCasePipe.mjs +4 -5
  15. package/esm2020/pipe/TimePipe.mjs +3 -2
  16. package/esm2020/pipe/TruncatePipe.mjs +3 -5
  17. package/esm2020/public-api.mjs +1 -68
  18. package/esm2020/service/PipeBaseService.mjs +1 -1
  19. package/esm2020/theme/ThemeAssetDirective.mjs +1 -1
  20. package/esm2020/theme/ThemeStyleDirective.mjs +2 -2
  21. package/esm2020/util/ViewUtil.mjs +1 -1
  22. package/fesm2015/ts-core-angular.mjs +3091 -7551
  23. package/fesm2015/ts-core-angular.mjs.map +1 -1
  24. package/fesm2020/ts-core-angular.mjs +3057 -7515
  25. package/fesm2020/ts-core-angular.mjs.map +1 -1
  26. package/htdocs/common.js +3 -3
  27. package/manager/ResizeManager.d.ts +1 -1
  28. package/package.json +3 -10
  29. package/pipe/CamelCasePipe.d.ts +0 -1
  30. package/public-api.d.ts +0 -60
  31. package/style/_core.scss +120 -0
  32. package/style/_filter.scss +14 -0
  33. package/style/_mouse.scss +27 -0
  34. package/style/_scroll.scss +20 -0
  35. package/style/_text.scss +20 -0
  36. package/application/ShellBaseComponent.d.ts +0 -20
  37. package/bottomSheet/BottomSheetImpl.d.ts +0 -77
  38. package/bottomSheet/BottomSheetModule.d.ts +0 -13
  39. package/bottomSheet/BottomSheetService.d.ts +0 -31
  40. package/bottomSheet/component/BottomSheetBaseComponent.d.ts +0 -13
  41. package/component/VIComponentModule.d.ts +0 -33
  42. package/component/cdk-table/CdkTableBaseComponent.d.ts +0 -60
  43. package/component/cdk-table/CdkTableDataSource.d.ts +0 -13
  44. package/component/cdk-table/CdkTableFilterableMapCollection.d.ts +0 -14
  45. package/component/cdk-table/CdkTablePaginableBookmarkMapCollection.d.ts +0 -11
  46. package/component/cdk-table/CdkTablePaginableMapCollection.d.ts +0 -13
  47. package/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.d.ts +0 -9
  48. package/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.d.ts +0 -18
  49. package/component/cdk-table/cdk-table-paginable-bookmark/cdk-table-paginable-bookmark.component.d.ts +0 -9
  50. package/component/cdk-table/cell/CdkTableCellClassNamePipe.d.ts +0 -8
  51. package/component/cdk-table/cell/CdkTableCellStyleNamePipe.d.ts +0 -10
  52. package/component/cdk-table/cell/CdkTableCellValuePipe.d.ts +0 -17
  53. package/component/cdk-table/cell/CdkTableCellValuePipePure.d.ts +0 -8
  54. package/component/cdk-table/column/CdkTableColumnClassNamePipe.d.ts +0 -8
  55. package/component/cdk-table/column/CdkTableColumnStyleNamePipe.d.ts +0 -10
  56. package/component/cdk-table/column/ICdkTableColumn.d.ts +0 -25
  57. package/component/cdk-table/row/CdkTableRowClassNamePipe.d.ts +0 -8
  58. package/component/cdk-table/row/CdkTableRowStyleNamePipe.d.ts +0 -10
  59. package/component/cdk-table/row/ICdkTableRow.d.ts +0 -8
  60. package/component/language/language-selector/language-selector.component.d.ts +0 -19
  61. package/component/menu-list/menu-list.component.d.ts +0 -9
  62. package/component/select-list/select-list.component.d.ts +0 -9
  63. package/component/tab-group/tab-group.component.d.ts +0 -16
  64. package/directive/MenuTriggerForDirective.d.ts +0 -11
  65. package/error/WindowClosedError.d.ts +0 -6
  66. package/esm2020/application/ShellBaseComponent.mjs +0 -78
  67. package/esm2020/bottomSheet/BottomSheetImpl.mjs +0 -273
  68. package/esm2020/bottomSheet/BottomSheetModule.mjs +0 -37
  69. package/esm2020/bottomSheet/BottomSheetService.mjs +0 -107
  70. package/esm2020/bottomSheet/component/BottomSheetBaseComponent.mjs +0 -59
  71. package/esm2020/component/VIComponentModule.mjs +0 -117
  72. package/esm2020/component/cdk-table/CdkTableBaseComponent.mjs +0 -192
  73. package/esm2020/component/cdk-table/CdkTableDataSource.mjs +0 -58
  74. package/esm2020/component/cdk-table/CdkTableFilterableMapCollection.mjs +0 -94
  75. package/esm2020/component/cdk-table/CdkTablePaginableBookmarkMapCollection.mjs +0 -49
  76. package/esm2020/component/cdk-table/CdkTablePaginableMapCollection.mjs +0 -57
  77. package/esm2020/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.mjs +0 -37
  78. package/esm2020/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.mjs +0 -65
  79. package/esm2020/component/cdk-table/cdk-table-paginable-bookmark/cdk-table-paginable-bookmark.component.mjs +0 -37
  80. package/esm2020/component/cdk-table/cell/CdkTableCellClassNamePipe.mjs +0 -25
  81. package/esm2020/component/cdk-table/cell/CdkTableCellStyleNamePipe.mjs +0 -22
  82. package/esm2020/component/cdk-table/cell/CdkTableCellValuePipe.mjs +0 -77
  83. package/esm2020/component/cdk-table/cell/CdkTableCellValuePipePure.mjs +0 -22
  84. package/esm2020/component/cdk-table/column/CdkTableColumnClassNamePipe.mjs +0 -22
  85. package/esm2020/component/cdk-table/column/CdkTableColumnStyleNamePipe.mjs +0 -22
  86. package/esm2020/component/cdk-table/column/ICdkTableColumn.mjs +0 -2
  87. package/esm2020/component/cdk-table/row/CdkTableRowClassNamePipe.mjs +0 -22
  88. package/esm2020/component/cdk-table/row/CdkTableRowStyleNamePipe.mjs +0 -22
  89. package/esm2020/component/cdk-table/row/ICdkTableRow.mjs +0 -2
  90. package/esm2020/component/language/language-selector/language-selector.component.mjs +0 -79
  91. package/esm2020/component/menu-list/menu-list.component.mjs +0 -16
  92. package/esm2020/component/select-list/select-list.component.mjs +0 -16
  93. package/esm2020/component/tab-group/tab-group.component.mjs +0 -71
  94. package/esm2020/directive/MenuTriggerForDirective.mjs +0 -53
  95. package/esm2020/error/WindowClosedError.mjs +0 -19
  96. package/esm2020/language/LanguageMatPaginatorIntl.mjs +0 -62
  97. package/esm2020/language/LanguageMomentDateAdapter.mjs +0 -13
  98. package/esm2020/notification/INotification.mjs +0 -7
  99. package/esm2020/notification/INotificationContent.mjs +0 -132
  100. package/esm2020/notification/NotificationConfig.mjs +0 -16
  101. package/esm2020/notification/NotificationFactory.mjs +0 -19
  102. package/esm2020/notification/NotificationImpl.mjs +0 -139
  103. package/esm2020/notification/NotificationModule.mjs +0 -53
  104. package/esm2020/notification/NotificationProperties.mjs +0 -2
  105. package/esm2020/notification/NotificationService.mjs +0 -239
  106. package/esm2020/notification/component/NotificationBaseComponent.mjs +0 -4
  107. package/esm2020/notification/component/NotificationQuestionBaseComponent.mjs +0 -50
  108. package/esm2020/notification/component/notification/notification.component.mjs +0 -61
  109. package/esm2020/service/BootstrapBreakpointService.mjs +0 -116
  110. package/esm2020/window/IWindow.mjs +0 -32
  111. package/esm2020/window/IWindowContent.mjs +0 -132
  112. package/esm2020/window/WindowBase.mjs +0 -168
  113. package/esm2020/window/WindowConfig.mjs +0 -232
  114. package/esm2020/window/WindowFactory.mjs +0 -27
  115. package/esm2020/window/WindowImpl.mjs +0 -361
  116. package/esm2020/window/WindowModule.mjs +0 -58
  117. package/esm2020/window/WindowProperties.mjs +0 -2
  118. package/esm2020/window/WindowService.mjs +0 -366
  119. package/esm2020/window/WindowServiceEvent.mjs +0 -9
  120. package/esm2020/window/component/WindowBaseComponent.mjs +0 -75
  121. package/esm2020/window/component/WindowDragAreaDirective.mjs +0 -97
  122. package/esm2020/window/component/WindowDragable.mjs +0 -69
  123. package/esm2020/window/component/WindowElement.mjs +0 -95
  124. package/esm2020/window/component/WindowQuestionBaseComponent.mjs +0 -17
  125. package/esm2020/window/component/WindowResizeable.mjs +0 -88
  126. package/esm2020/window/component/window-close-element/window-close-element.component.mjs +0 -55
  127. package/esm2020/window/component/window-expand-element/window-expand-element.component.mjs +0 -56
  128. package/esm2020/window/component/window-minimize-element/window-minimize-element.component.mjs +0 -75
  129. package/esm2020/window/component/window-question/window-question.component.mjs +0 -50
  130. package/esm2020/window/component/window-resize-element/window-resize-element.component.mjs +0 -56
  131. package/language/LanguageMatPaginatorIntl.d.ts +0 -20
  132. package/language/LanguageMomentDateAdapter.d.ts +0 -5
  133. package/notification/INotification.d.ts +0 -26
  134. package/notification/INotificationContent.d.ts +0 -31
  135. package/notification/NotificationConfig.d.ts +0 -13
  136. package/notification/NotificationFactory.d.ts +0 -11
  137. package/notification/NotificationImpl.d.ts +0 -38
  138. package/notification/NotificationModule.d.ts +0 -18
  139. package/notification/NotificationProperties.d.ts +0 -9
  140. package/notification/NotificationService.d.ts +0 -56
  141. package/notification/component/NotificationBaseComponent.d.ts +0 -3
  142. package/notification/component/NotificationQuestionBaseComponent.d.ts +0 -10
  143. package/notification/component/notification/notification.component.d.ts +0 -14
  144. package/service/BootstrapBreakpointService.d.ts +0 -45
  145. package/style/mat/bootstrap/_background.scss +0 -10
  146. package/style/mat/bootstrap/_border.scss +0 -207
  147. package/style/mat/bootstrap/_text.scss +0 -43
  148. package/style/mat/bootstrap/_variables.scss +0 -8
  149. package/style/mat/vi-mat-bootstrap.scss +0 -50
  150. package/style/mat/vi-mat.scss +0 -570
  151. package/style/mixin.scss +0 -69
  152. package/style/mouse.scss +0 -47
  153. package/window/IWindow.d.ts +0 -41
  154. package/window/IWindowContent.d.ts +0 -34
  155. package/window/WindowBase.d.ts +0 -33
  156. package/window/WindowConfig.d.ts +0 -64
  157. package/window/WindowFactory.d.ts +0 -12
  158. package/window/WindowImpl.d.ts +0 -89
  159. package/window/WindowModule.d.ts +0 -20
  160. package/window/WindowProperties.d.ts +0 -9
  161. package/window/WindowService.d.ts +0 -71
  162. package/window/WindowServiceEvent.d.ts +0 -7
  163. package/window/component/WindowBaseComponent.d.ts +0 -20
  164. package/window/component/WindowDragAreaDirective.d.ts +0 -19
  165. package/window/component/WindowDragable.d.ts +0 -13
  166. package/window/component/WindowElement.d.ts +0 -22
  167. package/window/component/WindowQuestionBaseComponent.d.ts +0 -5
  168. package/window/component/WindowResizeable.d.ts +0 -10
  169. package/window/component/window-close-element/window-close-element.component.d.ts +0 -12
  170. package/window/component/window-expand-element/window-expand-element.component.d.ts +0 -12
  171. package/window/component/window-minimize-element/window-minimize-element.component.d.ts +0 -15
  172. package/window/component/window-question/window-question.component.d.ts +0 -12
  173. package/window/component/window-resize-element/window-resize-element.component.d.ts +0 -12
@@ -1,273 +0,0 @@
1
- import { Subject, takeUntil } from 'rxjs';
2
- import * as _ from 'lodash';
3
- import { DestroyableContainer } from '@ts-core/common';
4
- import { WindowEvent } from '../window/IWindow';
5
- import { ViewUtil } from '../util/ViewUtil';
6
- import { WindowImpl } from '../window/WindowImpl';
7
- import { ArrayUtil } from '@ts-core/common';
8
- export class BottomSheetImpl extends DestroyableContainer {
9
- // --------------------------------------------------------------------------
10
- //
11
- // Constructor
12
- //
13
- // --------------------------------------------------------------------------
14
- constructor(properties) {
15
- super();
16
- // --------------------------------------------------------------------------
17
- //
18
- // Properties
19
- //
20
- // --------------------------------------------------------------------------
21
- this._isBlink = false;
22
- this._isDisabled = false;
23
- // --------------------------------------------------------------------------
24
- //
25
- // Protected Methods
26
- //
27
- // --------------------------------------------------------------------------
28
- this.setClosed = () => {
29
- this.emit(WindowEvent.CLOSED);
30
- this.destroy();
31
- };
32
- this.setOpened = () => {
33
- this.emit(WindowEvent.OPENED);
34
- };
35
- this.blinkToggle = () => {
36
- this.isBlink = !this.isBlink;
37
- };
38
- this.mouseDownHandlerProxy = (event) => {
39
- this.mouseDownHandler(event);
40
- };
41
- this.mouseClickHandlerProxy = (event) => {
42
- this.mouseClickHandler(event);
43
- };
44
- this.observer = new Subject();
45
- this.properties = properties;
46
- this.content.window = this;
47
- // Have to save for unsubscribe on destroy
48
- this._wrapper = this.properties.overlay.hostElement;
49
- this._backdrop = this.properties.overlay.backdropElement;
50
- this._container = this.properties.overlay.overlayElement;
51
- this.setProperties();
52
- this.elementsCreate();
53
- this.getReference().afterOpened().pipe(takeUntil(this.destroyed)).subscribe(this.setOpened);
54
- this.getReference().afterDismissed().pipe(takeUntil(this.destroyed)).subscribe(this.setClosed);
55
- }
56
- // --------------------------------------------------------------------------
57
- //
58
- // Elements Methods
59
- //
60
- // --------------------------------------------------------------------------
61
- elementsCreate() {
62
- this.elements = new Array();
63
- }
64
- elementsDestroy() {
65
- this.elements.forEach(item => this.elementDestroy(item));
66
- this.elements = null;
67
- }
68
- elementAdd(item) {
69
- this.elements.push(item);
70
- item.instance.window = this;
71
- return item;
72
- }
73
- elementRemove(item) {
74
- ArrayUtil.remove(this.elements, item);
75
- this.elementDestroy(item);
76
- return item;
77
- }
78
- elementDestroy(item) {
79
- item.instance.window = null;
80
- item.destroy();
81
- return item;
82
- }
83
- setProperties() {
84
- ViewUtil.addClass(this.container, 'vi-bottom-sheet');
85
- ViewUtil.toggleClass(this.container, 'vi-modal', this.config.isModal);
86
- this.container.addEventListener('click', this.mouseClickHandlerProxy, true);
87
- this.container.addEventListener('mousedown', this.mouseDownHandlerProxy);
88
- /*
89
- if (!this.config.isModal) {
90
- this.container.addEventListener('mousedown', this.mouseDownHandlerProxy);
91
- }
92
- */
93
- }
94
- commitIsBlinkProperties() { }
95
- commitIsDisabledProperties() { }
96
- getConfig() {
97
- return this.properties.config;
98
- }
99
- getContainer() {
100
- return this.container;
101
- }
102
- getReference() {
103
- return this.properties.reference;
104
- }
105
- isNeedClickStopPropagation(event) {
106
- let element = _.find(this.elements, item => item.location.nativeElement === event.target);
107
- if (_.isNil(element)) {
108
- return false;
109
- }
110
- element.instance.clickHandler(event);
111
- return true;
112
- }
113
- stopBlinkIfNeed() {
114
- this.isBlink = false;
115
- if (!this.blinkTimer) {
116
- return;
117
- }
118
- clearInterval(this.blinkTimer);
119
- this.blinkTimer = null;
120
- }
121
- // --------------------------------------------------------------------------
122
- //
123
- // Event Handlers
124
- //
125
- // --------------------------------------------------------------------------
126
- mouseDownHandler(event) {
127
- this.setOnTop();
128
- }
129
- mouseClickHandler(event) {
130
- if (this.isNeedClickStopPropagation(event)) {
131
- event.stopPropagation();
132
- }
133
- }
134
- // --------------------------------------------------------------------------
135
- //
136
- // Public Methods
137
- //
138
- // --------------------------------------------------------------------------
139
- emit(event) {
140
- this.observer.next(event);
141
- }
142
- close() {
143
- this.getReference().dismiss();
144
- }
145
- destroy() {
146
- if (this.isDestroyed) {
147
- return;
148
- }
149
- super.destroy();
150
- this.elementsDestroy();
151
- this._container.removeEventListener('click', this.mouseClickHandlerProxy, true);
152
- this._container.removeEventListener('mousedown', this.mouseDownHandlerProxy);
153
- if (!_.isNil(this.content)) {
154
- this.content.destroy();
155
- }
156
- if (!_.isNil(this.observer)) {
157
- this.observer.complete();
158
- this.observer = null;
159
- }
160
- this.properties = null;
161
- this._wrapper = null;
162
- this._backdrop = null;
163
- this._container = null;
164
- clearInterval(this.blinkTimer);
165
- this.blinkTimer = null;
166
- }
167
- blink() {
168
- clearInterval(this.blinkTimer);
169
- this.blinkTimer = setInterval(this.blinkToggle, WindowImpl.BLINK_DELAY);
170
- }
171
- shake() { }
172
- setOnTop() { }
173
- // --------------------------------------------------------------------------
174
- //
175
- // Size Methods
176
- //
177
- // --------------------------------------------------------------------------
178
- getWidth() {
179
- return NaN;
180
- }
181
- getHeight() {
182
- return NaN;
183
- }
184
- setWidth(value, isNeedNotify = true) { }
185
- setHeight(value, isNeedNotify = true) { }
186
- setSize(width, height) { }
187
- // --------------------------------------------------------------------------
188
- //
189
- // Move Methods
190
- //
191
- // --------------------------------------------------------------------------
192
- getX() {
193
- return NaN;
194
- }
195
- setX(value, isNeedNotify = true) { }
196
- getY() {
197
- return NaN;
198
- }
199
- setY(value, isNeedNotify = true) { }
200
- move(x, y) { }
201
- // --------------------------------------------------------------------------
202
- //
203
- // Private Properties
204
- //
205
- // --------------------------------------------------------------------------
206
- get reference() {
207
- return this.properties.reference;
208
- }
209
- get isBlink() {
210
- return this._isBlink;
211
- }
212
- set isBlink(value) {
213
- if (value === this._isBlink) {
214
- return;
215
- }
216
- this._isBlink = value;
217
- this.commitIsBlinkProperties();
218
- }
219
- get isShaking() {
220
- return false;
221
- }
222
- set isShaking(value) { }
223
- // --------------------------------------------------------------------------
224
- //
225
- // Public Properties
226
- //
227
- // --------------------------------------------------------------------------
228
- get events() {
229
- return this.observer.asObservable();
230
- }
231
- get config() {
232
- return this.properties.config;
233
- }
234
- get content() {
235
- return !_.isNil(this.reference) ? this.reference.instance : null;
236
- }
237
- get container() {
238
- return this._container;
239
- }
240
- get wrapper() {
241
- return this._wrapper;
242
- }
243
- get backdrop() {
244
- return this._backdrop;
245
- }
246
- get isOnTop() {
247
- return false;
248
- }
249
- set isOnTop(value) { }
250
- get isMinimized() {
251
- return false;
252
- }
253
- set isMinimized(value) { }
254
- get isDisabled() {
255
- return this._isDisabled;
256
- }
257
- set isDisabled(value) {
258
- if (value === this._isDisabled) {
259
- return;
260
- }
261
- this._isDisabled = value;
262
- this.commitIsDisabledProperties();
263
- this.emit(WindowEvent.DISABLED_CHANGED);
264
- }
265
- }
266
- // --------------------------------------------------------------------------
267
- //
268
- // Constants
269
- //
270
- // --------------------------------------------------------------------------
271
- BottomSheetImpl.BLINK_DELAY = 500;
272
- BottomSheetImpl.SHAKE_DELAY = 500;
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm90dG9tU2hlZXRJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JvdHRvbVNoZWV0L0JvdHRvbVNoZWV0SW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHdkQsT0FBTyxFQUFXLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzVDLE1BQU0sT0FBTyxlQUF5QixTQUFRLG9CQUFvQjtJQThCOUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFZLFVBQTRCO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBM0JaLDZFQUE2RTtRQUM3RSxFQUFFO1FBQ0YsY0FBYztRQUNkLEVBQUU7UUFDRiw2RUFBNkU7UUFFckUsYUFBUSxHQUFZLEtBQUssQ0FBQztRQU0xQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQWtFckMsNkVBQTZFO1FBQzdFLEVBQUU7UUFDRixxQkFBcUI7UUFDckIsRUFBRTtRQUNGLDZFQUE2RTtRQUVuRSxjQUFTLEdBQUcsR0FBUyxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUM7UUFFUSxjQUFTLEdBQUcsR0FBUyxFQUFFO1lBQzdCLElBQUks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Q0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELElBQVcsT0FBTyxDQUFDLEtBQWMsSUFBRyxDQUFDO0lBRXJDLElBQVcsV0FBVztRQUNsQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsSUFBVyxXQUFXLENBQUMsS0FBYyxJQUFHLENBQUM7SUFFekMsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBVyxVQUFVLENBQUMsS0FBYztRQUNoQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUMsQ0FBQzs7QUF0VkQsNkVBQTZFO0FBQzdFLEVBQUU7QUFDRixhQUFhO0FBQ2IsRUFBRTtBQUNGLDZFQUE2RTtBQUUvRCwyQkFBVyxHQUFHLEdBQUcsQ0FBQztBQUNsQiwyQkFBVyxHQUFHLEdBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBEZXN0cm95YWJsZUNvbnRhaW5lciB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldFJlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldCc7XG5pbXBvcnQgeyBXaW5kb3dDb25maWcgfSBmcm9tICcuLi93aW5kb3cvV2luZG93Q29uZmlnJztcbmltcG9ydCB7IElXaW5kb3csIFdpbmRvd0V2ZW50IH0gZnJvbSAnLi4vd2luZG93L0lXaW5kb3cnO1xuaW1wb3J0IHsgSVdpbmRvd0NvbnRlbnQgfSBmcm9tICcuLi93aW5kb3cvSVdpbmRvd0NvbnRlbnQnO1xuaW1wb3J0IHsgV2luZG93UHJvcGVydGllcyB9IGZyb20gJy4uL3dpbmRvdy9XaW5kb3dQcm9wZXJ0aWVzJztcbmltcG9ydCB7IFZpZXdVdGlsIH0gZnJvbSAnLi4vdXRpbC9WaWV3VXRpbCc7XG5pbXBvcnQgeyBXaW5kb3dJbXBsIH0gZnJvbSAnLi4vd2luZG93L1dpbmRvd0ltcGwnO1xuaW1wb3J0IHsgV2luZG93RWxlbWVudCB9IGZyb20gJy4uL3dpbmRvdy9jb21wb25lbnQvV2luZG93RWxlbWVudCc7XG5pbXBvcnQgeyBBcnJheVV0aWwgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBCb3R0b21TaGVldEltcGw8VCA9IGFueT4gZXh0ZW5kcyBEZXN0cm95YWJsZUNvbnRhaW5lciBpbXBsZW1lbnRzIElXaW5kb3cge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgQ29uc3RhbnRzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIHN0YXRpYyBCTElOS19ERUxBWSA9IDUwMDtcbiAgICBwdWJsaWMgc3RhdGljIFNIQUtFX0RFTEFZID0gNTAwO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJpdmF0ZSBfaXNCbGluazogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgYmxpbmtUaW1lcjogYW55O1xuXG4gICAgcHJpdmF0ZSBfd3JhcHBlcjogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBfYmFja2Ryb3A6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgX2NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBfaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRzOiBBcnJheTxDb21wb25lbnRSZWY8V2luZG93RWxlbWVudD4+O1xuICAgIHByb3RlY3RlZCBwcm9wZXJ0aWVzOiBXaW5kb3dQcm9wZXJ0aWVzO1xuXG4gICAgcHJvdGVjdGVkIG9ic2VydmVyOiBTdWJqZWN0PHN0cmluZz47XG4gICAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6IFdpbmRvd1Byb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICAgICAgdGhpcy5jb250ZW50LndpbmRvdyA9IHRoaXM7XG5cbiAgICAgICAgLy8gSGF2ZSB0byBzYXZlIGZvciB1bnN1YnNjcmliZSBvbiBkZXN0cm95XG4gICAgICAgIHRoaXMuX3dyYXBwZXIgPSB0aGlzLnByb3BlcnRpZXMub3ZlcmxheS5ob3N0RWxlbWVudDtcbiAgICAgICAgdGhpcy5fYmFja2Ryb3AgPSB0aGlzLnByb3BlcnRpZXMub3ZlcmxheS5iYWNrZHJvcEVsZW1lbnQ7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lciA9IHRoaXMucHJvcGVydGllcy5vdmVybGF5Lm92ZXJsYXlFbGVtZW50O1xuXG4gICAgICAgIHRoaXMuc2V0UHJvcGVydGllcygpO1xuICAgICAgICB0aGlzLmVsZW1lbnRzQ3JlYXRlKCk7XG5cbiAgICAgICAgdGhpcy5nZXRSZWZlcmVuY2UoKS5hZnRlck9wZW5lZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKHRoaXMuc2V0T3BlbmVkKTtcbiAgICAgICAgdGhpcy5nZXRSZWZlcmVuY2UoKS5hZnRlckRpc21pc3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKHRoaXMuc2V0Q2xvc2VkKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIEVsZW1lbnRzIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgZWxlbWVudHNDcmVhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudHMgPSBuZXcgQXJyYXkoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZWxlbWVudHNEZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRzLmZvckVhY2goaXRlbSA9PiB0aGlzLmVsZW1lbnREZXN0cm95KGl0ZW0pKTtcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRBZGQoaXRlbTogQ29tcG9uZW50UmVmPFdpbmRvd0VsZW1lbnQ+KTogQ29tcG9uZW50UmVmPFdpbmRvd0VsZW1lbnQ+IHtcbiAgICAgICAgdGhpcy5lbGVtZW50cy5wdXNoKGl0ZW0pO1xuICAgICAgICBpdGVtLmluc3RhbmNlLndpbmRvdyA9IHRoaXM7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBlbGVtZW50UmVtb3ZlKGl0ZW06IENvbXBvbmVudFJlZjxXaW5kb3dFbGVtZW50Pik6IENvbXBvbmVudFJlZjxXaW5kb3dFbGVtZW50PiB7XG4gICAgICAgIEFycmF5VXRpbC5yZW1vdmUodGhpcy5lbGVtZW50cywgaXRlbSk7XG4gICAgICAgIHRoaXMuZWxlbWVudERlc3Ryb3koaXRlbSk7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBlbGVtZW50RGVzdHJveShpdGVtOiBDb21wb25lbnRSZWY8V2luZG93RWxlbWVudD4pOiBDb21wb25lbnRSZWY8V2luZG93RWxlbWVudD4ge1xuICAgICAgICBpdGVtLmluc3RhbmNlLndpbmRvdyA9IG51bGw7XG4gICAgICAgIGl0ZW0uZGVzdHJveSgpO1xuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFByb3RlY3RlZCBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIHNldENsb3NlZCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50LkNMT1NFRCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgc2V0T3BlbmVkID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmVtaXQoV2luZG93RXZlbnQuT1BFTkVEKTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIGJsaW5rVG9nZ2xlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzQmxpbmsgPSAhdGhpcy5pc0JsaW5rO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgc2V0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgVmlld1V0aWwuYWRkQ2xhc3ModGhpcy5jb250YWluZXIsICd2aS1ib3R0b20tc2hlZXQnKTtcbiAgICAgICAgVmlld1V0aWwudG9nZ2xlQ2xhc3ModGhpcy5jb250YWluZXIsICd2aS1tb2RhbCcsIHRoaXMuY29uZmlnLmlzTW9kYWwpO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5tb3VzZUNsaWNrSGFuZGxlclByb3h5LCB0cnVlKTtcbiAgICAgICAgdGhpcy5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5tb3VzZURvd25IYW5kbGVyUHJveHkpO1xuICAgICAgICAvKlxuICAgICAgICBpZiAoIXRoaXMuY29uZmlnLmlzTW9kYWwpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMubW91c2VEb3duSGFuZGxlclByb3h5KTtcbiAgICAgICAgfVxuICAgICAgICAqL1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb21taXRJc0JsaW5rUHJvcGVydGllcygpOiB2b2lkIHt9XG5cbiAgICBwcm90ZWN0ZWQgY29tbWl0SXNEaXNhYmxlZFByb3BlcnRpZXMoKTogdm9pZCB7fVxuXG4gICAgcHJvdGVjdGVkIGdldENvbmZpZygpOiBXaW5kb3dDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzLmNvbmZpZztcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldENvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lcjtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldFJlZmVyZW5jZSgpOiBNYXRCb3R0b21TaGVldFJlZjxJV2luZG93Q29udGVudDxUPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzLnJlZmVyZW5jZSBhcyBhbnk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzTmVlZENsaWNrU3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBlbGVtZW50ID0gXy5maW5kKHRoaXMuZWxlbWVudHMsIGl0ZW0gPT4gaXRlbS5sb2NhdGlvbi5uYXRpdmVFbGVtZW50ID09PSBldmVudC50YXJnZXQpO1xuICAgICAgICBpZiAoXy5pc05pbChlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsZW1lbnQuaW5zdGFuY2UuY2xpY2tIYW5kbGVyKGV2ZW50KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wQmxpbmtJZk5lZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNCbGluayA9IGZhbHNlO1xuICAgICAgICBpZiAoIXRoaXMuYmxpbmtUaW1lcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5ibGlua1RpbWVyKTtcbiAgICAgICAgdGhpcy5ibGlua1RpbWVyID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIEV2ZW50IEhhbmRsZXJzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIG1vdXNlRG93bkhhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPblRvcCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBtb3VzZUNsaWNrSGFuZGxlcihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc05lZWRDbGlja1N0b3BQcm9wYWdhdGlvbihldmVudCkpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtb3VzZURvd25IYW5kbGVyUHJveHkgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5tb3VzZURvd25IYW5kbGVyKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBtb3VzZUNsaWNrSGFuZGxlclByb3h5ID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMubW91c2VDbGlja0hhbmRsZXIoZXZlbnQpO1xuICAgIH07XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGVtaXQoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRSZWZlcmVuY2UoKS5kaXNtaXNzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmVsZW1lbnRzRGVzdHJveSgpO1xuXG4gICAgICAgIHRoaXMuX2NvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMubW91c2VDbGlja0hhbmRsZXJQcm94eSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm1vdXNlRG93bkhhbmRsZXJQcm94eSk7XG5cbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMuY29udGVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudC5kZXN0cm95KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIV8uaXNOaWwodGhpcy5vYnNlcnZlcikpIHtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gbnVsbDtcblxuICAgICAgICB0aGlzLl93cmFwcGVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5fYmFja2Ryb3AgPSBudWxsO1xuICAgICAgICB0aGlzLl9jb250YWluZXIgPSBudWxsO1xuXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5ibGlua1RpbWVyKTtcbiAgICAgICAgdGhpcy5ibGlua1RpbWVyID0gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYmxpbmsoKTogdm9pZCB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5ibGlua1RpbWVyKTtcbiAgICAgICAgdGhpcy5ibGlua1RpbWVyID0gc2V0SW50ZXJ2YWwodGhpcy5ibGlua1RvZ2dsZSwgV2luZG93SW1wbC5CTElOS19ERUxBWSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNoYWtlKCk6IHZvaWQge31cblxuICAgIHB1YmxpYyBzZXRPblRvcCgpOiB2b2lkIHt9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFNpemUgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXRXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTmFOO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE5hTjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0V2lkdGgodmFsdWU6IG51bWJlciwgaXNOZWVkTm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge31cblxuICAgIHB1YmxpYyBzZXRIZWlnaHQodmFsdWU6IG51bWJlciwgaXNOZWVkTm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge31cblxuICAgIHB1YmxpYyBzZXRTaXplKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogdm9pZCB7fVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBNb3ZlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0WCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTmFOO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRYKHZhbHVlOiBudW1iZXIsIGlzTmVlZE5vdGlmeTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHt9XG5cbiAgICBwdWJsaWMgZ2V0WSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTmFOO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0WSh2YWx1ZTogbnVtYmVyLCBpc05lZWROb3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7fVxuXG4gICAgcHVibGljIG1vdmUoeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkIHt9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFByaXZhdGUgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBnZXQgcmVmZXJlbmNlKCk6IE1hdEJvdHRvbVNoZWV0UmVmPElXaW5kb3dDb250ZW50PFQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMucmVmZXJlbmNlIGFzIGFueTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGlzQmxpbmsoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0JsaW5rO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgc2V0IGlzQmxpbmsodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc0JsaW5rKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNCbGluayA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbW1pdElzQmxpbmtQcm9wZXJ0aWVzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBpc1NoYWtpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIHNldCBpc1NoYWtpbmcodmFsdWU6IGJvb2xlYW4pIHt9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldCBldmVudHMoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JzZXJ2ZXIuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb25maWcoKTogV2luZG93Q29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5jb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb250ZW50KCk6IElXaW5kb3dDb250ZW50IHtcbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHRoaXMucmVmZXJlbmNlKSA/IHRoaXMucmVmZXJlbmNlLmluc3RhbmNlIDogbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250YWluZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB3cmFwcGVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dyYXBwZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBiYWNrZHJvcCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9iYWNrZHJvcDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzT25Ub3AoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcHVibGljIHNldCBpc09uVG9wKHZhbHVlOiBib29sZWFuKSB7fVxuXG4gICAgcHVibGljIGdldCBpc01pbmltaXplZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGlzTWluaW1pemVkKHZhbHVlOiBib29sZWFuKSB7fVxuXG4gICAgcHVibGljIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNEaXNhYmxlZDtcbiAgICB9XG4gICAgcHVibGljIHNldCBpc0Rpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5faXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzRGlzYWJsZWQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb21taXRJc0Rpc2FibGVkUHJvcGVydGllcygpO1xuICAgICAgICB0aGlzLmVtaXQoV2luZG93RXZlbnQuRElTQUJMRURfQ0hBTkdFRCk7XG4gICAgfVxufVxuIl19
@@ -1,37 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { LanguageModule } from '../language/LanguageModule';
6
- import { BottomSheetService } from './BottomSheetService';
7
- import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
8
- import * as i0 from "@angular/core";
9
- const IMPORTS = [CommonModule, FormsModule, MatBottomSheetModule, MatButtonModule, LanguageModule];
10
- const ENTRY_COMPONENTS = [];
11
- const DECLARATIONS = [...ENTRY_COMPONENTS];
12
- const EXPORTS = [...DECLARATIONS];
13
- export class BottomSheetModule {
14
- // --------------------------------------------------------------------------
15
- //
16
- // Static Methods
17
- //
18
- // --------------------------------------------------------------------------
19
- static forRoot() {
20
- return {
21
- ngModule: BottomSheetModule,
22
- providers: [BottomSheetService]
23
- };
24
- }
25
- }
26
- BottomSheetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BottomSheetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
27
- BottomSheetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: BottomSheetModule, imports: [CommonModule, FormsModule, MatBottomSheetModule, MatButtonModule, LanguageModule] });
28
- BottomSheetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BottomSheetModule, imports: [IMPORTS] });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BottomSheetModule, decorators: [{
30
- type: NgModule,
31
- args: [{
32
- imports: IMPORTS,
33
- declarations: DECLARATIONS,
34
- exports: EXPORTS
35
- }]
36
- }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm90dG9tU2hlZXRNb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYm90dG9tU2hlZXQvQm90dG9tU2hlZXRNb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUV0RSxNQUFNLE9BQU8sR0FBRyxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ25HLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0FBQzVCLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO0FBRTNDLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztBQU1sQyxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0Ysa0JBQWtCO0lBQ2xCLEVBQUU7SUFDRiw2RUFBNkU7SUFFdEUsTUFBTSxDQUFDLE9BQU87UUFDakIsT0FBTztZQUNILFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7U0FDbEMsQ0FBQztJQUNOLENBQUM7OzhHQVpRLGlCQUFpQjsrR0FBakIsaUJBQWlCLFlBVmIsWUFBWSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsY0FBYzsrR0FVcEYsaUJBQWlCLFlBSmpCLE9BQU87MkZBSVAsaUJBQWlCO2tCQUw3QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxPQUFPO29CQUNoQixZQUFZLEVBQUUsWUFBWTtvQkFDMUIsT0FBTyxFQUFFLE9BQU87aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBMYW5ndWFnZU1vZHVsZSB9IGZyb20gJy4uL2xhbmd1YWdlL0xhbmd1YWdlTW9kdWxlJztcbmltcG9ydCB7IEJvdHRvbVNoZWV0U2VydmljZSB9IGZyb20gJy4vQm90dG9tU2hlZXRTZXJ2aWNlJztcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcblxuY29uc3QgSU1QT1JUUyA9IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRCb3R0b21TaGVldE1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBMYW5ndWFnZU1vZHVsZV07XG5jb25zdCBFTlRSWV9DT01QT05FTlRTID0gW107XG5jb25zdCBERUNMQVJBVElPTlMgPSBbLi4uRU5UUllfQ09NUE9ORU5UU107XG5cbmNvbnN0IEVYUE9SVFMgPSBbLi4uREVDTEFSQVRJT05TXTtcbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogSU1QT1JUUyxcbiAgICBkZWNsYXJhdGlvbnM6IERFQ0xBUkFUSU9OUyxcbiAgICBleHBvcnRzOiBFWFBPUlRTXG59KVxuZXhwb3J0IGNsYXNzIEJvdHRvbVNoZWV0TW9kdWxlIHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRTdGF0aWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEJvdHRvbVNoZWV0TW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogQm90dG9tU2hlZXRNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtCb3R0b21TaGVldFNlcnZpY2VdXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
@@ -1,107 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Destroyable } from '@ts-core/common';
3
- import { ObservableData } from '@ts-core/common';
4
- import * as _ from 'lodash';
5
- import { Subject } from 'rxjs';
6
- import { WindowFactory } from '../window/WindowFactory';
7
- import { WindowConfig } from '../window/WindowConfig';
8
- import { WindowServiceEvent } from '../window/WindowServiceEvent';
9
- import { QuestionManager } from '../question/QuestionManager';
10
- import { QuestionMode } from '../question/IQuestion';
11
- import { WindowQuestionComponent } from '../window/component/window-question/window-question.component';
12
- import { BottomSheetBaseComponent } from './component/BottomSheetBaseComponent';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@angular/material/bottom-sheet";
15
- import * as i2 from "@ts-core/frontend";
16
- export class BottomSheetService extends Destroyable {
17
- // --------------------------------------------------------------------------
18
- //
19
- // Constructor
20
- //
21
- // --------------------------------------------------------------------------
22
- constructor(dialog, language) {
23
- super();
24
- this.dialog = dialog;
25
- this.language = language;
26
- this.observer = new Subject();
27
- this.factory = new WindowFactory(BottomSheetBaseComponent);
28
- this.questionComponent = WindowQuestionComponent;
29
- }
30
- // --------------------------------------------------------------------------
31
- //
32
- // Public Methods
33
- //
34
- // --------------------------------------------------------------------------
35
- open(component, config) {
36
- let reference = this.dialog.open(component, config);
37
- let window = this.factory.create({ config, reference: reference, overlay: reference._overlayRef });
38
- this.observer.next(new ObservableData(WindowServiceEvent.OPEN_STARTED, window));
39
- let subscription = window.events.subscribe(event => {
40
- switch (event) {
41
- case WindowServiceEvent.OPENED:
42
- this._window = window;
43
- this.observer.next(new ObservableData(WindowServiceEvent.OPENED, window));
44
- this.observer.next(new ObservableData(WindowServiceEvent.OPEN_FINISHED, window));
45
- break;
46
- case WindowServiceEvent.CLOSED:
47
- subscription.unsubscribe();
48
- this._window = null;
49
- this.observer.next(new ObservableData(WindowServiceEvent.CLOSED, window));
50
- break;
51
- }
52
- });
53
- return window.content;
54
- }
55
- removeAll() { }
56
- destroy() {
57
- if (this.isDestroyed) {
58
- return;
59
- }
60
- super.destroy();
61
- this.removeAll();
62
- if (!_.isNil(this.observer)) {
63
- this.observer.complete();
64
- this.observer = null;
65
- }
66
- this._window = null;
67
- this.factory = null;
68
- this.questionComponent = null;
69
- this.dialog = null;
70
- this.language = null;
71
- }
72
- // --------------------------------------------------------------------------
73
- //
74
- // Additional Methods
75
- //
76
- // --------------------------------------------------------------------------
77
- info(translationId, translation, questionOptions, configOptions) {
78
- let text = this.language.translate(translationId, translation);
79
- let config = _.assign(new WindowConfig(true, false, 450), configOptions);
80
- config.data = new QuestionManager(_.assign(questionOptions, { mode: QuestionMode.INFO, text }));
81
- return this.open(this.questionComponent, config).config.data;
82
- }
83
- question(translationId, translation, questionOptions, configOptions) {
84
- let text = this.language.translate(translationId, translation);
85
- let config = _.assign(new WindowConfig(true, false, 450), configOptions);
86
- config.data = new QuestionManager(_.assign(questionOptions, { mode: QuestionMode.QUESTION, text }));
87
- return this.open(this.questionComponent, config).config.data;
88
- }
89
- // --------------------------------------------------------------------------
90
- //
91
- // Public Properties
92
- //
93
- // --------------------------------------------------------------------------
94
- get window() {
95
- return this._window;
96
- }
97
- get events() {
98
- return this.observer.asObservable();
99
- }
100
- }
101
- BottomSheetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BottomSheetService, deps: [{ token: i1.MatBottomSheet }, { token: i2.LanguageService }], target: i0.ɵɵFactoryTarget.Injectable });
102
- BottomSheetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BottomSheetService, providedIn: 'root' });
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BottomSheetService, decorators: [{
104
- type: Injectable,
105
- args: [{ providedIn: 'root' }]
106
- }], ctorParameters: function () { return [{ type: i1.MatBottomSheet }, { type: i2.LanguageService }]; } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm90dG9tU2hlZXRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JvdHRvbVNoZWV0L0JvdHRvbVNoZWV0U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFlBQVksRUFBdUIsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUErQixZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQUdoRixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBVztJQWlCL0MsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFZLE1BQXNCLEVBQUUsUUFBeUI7UUFDekQsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUks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TyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQzs7K0dBdEhRLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBREwsTUFBTTsyRkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0LCBNYXRCb3R0b21TaGVldENvbmZpZywgTWF0Qm90dG9tU2hlZXRSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ib3R0b20tc2hlZXQnO1xuaW1wb3J0IHsgRGVzdHJveWFibGUgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZURhdGEgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQHRzLWNvcmUvZnJvbnRlbmQnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgV2luZG93RmFjdG9yeSB9IGZyb20gJy4uL3dpbmRvdy9XaW5kb3dGYWN0b3J5JztcbmltcG9ydCB7IElXaW5kb3cgfSBmcm9tICcuLi93aW5kb3cvSVdpbmRvdyc7XG5pbXBvcnQgeyBXaW5kb3dDb25maWcsIFdpbmRvd0NvbmZpZ09wdGlvbnMgfSBmcm9tICcuLi93aW5kb3cvV2luZG93Q29uZmlnJztcbmltcG9ydCB7IElXaW5kb3dDb250ZW50IH0gZnJvbSAnLi4vd2luZG93L0lXaW5kb3dDb250ZW50JztcbmltcG9ydCB7IFdpbmRvd1NlcnZpY2VFdmVudCB9IGZyb20gJy4uL3dpbmRvdy9XaW5kb3dTZXJ2aWNlRXZlbnQnO1xuaW1wb3J0IHsgUXVlc3Rpb25NYW5hZ2VyIH0gZnJvbSAnLi4vcXVlc3Rpb24vUXVlc3Rpb25NYW5hZ2VyJztcbmltcG9ydCB7IElRdWVzdGlvbiwgSVF1ZXN0aW9uT3B0aW9ucywgUXVlc3Rpb25Nb2RlIH0gZnJvbSAnLi4vcXVlc3Rpb24vSVF1ZXN0aW9uJztcbmltcG9ydCB7IFdpbmRvd1F1ZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vd2luZG93L2NvbXBvbmVudC93aW5kb3ctcXVlc3Rpb24vd2luZG93LXF1ZXN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb3R0b21TaGVldEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudC9Cb3R0b21TaGVldEJhc2VDb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEJvdHRvbVNoZWV0U2VydmljZSBleHRlbmRzIERlc3Ryb3lhYmxlIHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGZhY3Rvcnk6IFdpbmRvd0ZhY3Rvcnk8SVdpbmRvdz47XG4gICAgcHVibGljIHF1ZXN0aW9uQ29tcG9uZW50OiBDb21wb25lbnRUeXBlPElXaW5kb3dDb250ZW50PjtcblxuICAgIHByb3RlY3RlZCBfd2luZG93OiBJV2luZG93O1xuXG4gICAgcHJvdGVjdGVkIGRpYWxvZzogTWF0Qm90dG9tU2hlZXQ7XG4gICAgcHJvdGVjdGVkIGxhbmd1YWdlOiBMYW5ndWFnZVNlcnZpY2U7XG5cbiAgICBwcml2YXRlIG9ic2VydmVyOiBTdWJqZWN0PE9ic2VydmFibGVEYXRhPFdpbmRvd1NlcnZpY2VFdmVudCwgSVdpbmRvdz4+O1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0Q29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3RvcihkaWFsb2c6IE1hdEJvdHRvbVNoZWV0LCBsYW5ndWFnZTogTGFuZ3VhZ2VTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZGlhbG9nID0gZGlhbG9nO1xuICAgICAgICB0aGlzLmxhbmd1YWdlID0gbGFuZ3VhZ2U7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgICAgIHRoaXMuZmFjdG9yeSA9IG5ldyBXaW5kb3dGYWN0b3J5KEJvdHRvbVNoZWV0QmFzZUNvbXBvbmVudCk7XG4gICAgICAgIHRoaXMucXVlc3Rpb25Db21wb25lbnQgPSBXaW5kb3dRdWVzdGlvbkNvbXBvbmVudDtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBvcGVuPFQgZXh0ZW5kcyBJV2luZG93Q29udGVudD4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LCBjb25maWc6IFdpbmRvd0NvbmZpZyk6IFQge1xuICAgICAgICBsZXQgcmVmZXJlbmNlOiBNYXRCb3R0b21TaGVldFJlZjxUPiA9IHRoaXMuZGlhbG9nLm9wZW4oY29tcG9uZW50LCBjb25maWcgYXMgTWF0Qm90dG9tU2hlZXRDb25maWc8VD4pO1xuXG4gICAgICAgIGxldCB3aW5kb3cgPSB0aGlzLmZhY3RvcnkuY3JlYXRlKHsgY29uZmlnLCByZWZlcmVuY2U6IHJlZmVyZW5jZSBhcyBhbnksIG92ZXJsYXk6IChyZWZlcmVuY2UgYXMgYW55KS5fb3ZlcmxheVJlZiB9KTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShXaW5kb3dTZXJ2aWNlRXZlbnQuT1BFTl9TVEFSVEVELCB3aW5kb3cpKTtcblxuICAgICAgICBsZXQgc3Vic2NyaXB0aW9uID0gd2luZG93LmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChldmVudCkge1xuICAgICAgICAgICAgICAgIGNhc2UgV2luZG93U2VydmljZUV2ZW50Lk9QRU5FRDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fd2luZG93ID0gd2luZG93O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKFdpbmRvd1NlcnZpY2VFdmVudC5PUEVORUQsIHdpbmRvdykpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKFdpbmRvd1NlcnZpY2VFdmVudC5PUEVOX0ZJTklTSEVELCB3aW5kb3cpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIFdpbmRvd1NlcnZpY2VFdmVudC5DTE9TRUQ6XG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl93aW5kb3cgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKFdpbmRvd1NlcnZpY2VFdmVudC5DTE9TRUQsIHdpbmRvdykpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB3aW5kb3cuY29udGVudCBhcyBUO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVBbGwoKTogdm9pZCB7fVxuXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLnJlbW92ZUFsbCgpO1xuXG4gICAgICAgIGlmICghXy5pc05pbCh0aGlzLm9ic2VydmVyKSkge1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl93aW5kb3cgPSBudWxsO1xuXG4gICAgICAgIHRoaXMuZmFjdG9yeSA9IG51bGw7XG4gICAgICAgIHRoaXMucXVlc3Rpb25Db21wb25lbnQgPSBudWxsO1xuXG4gICAgICAgIHRoaXMuZGlhbG9nID0gbnVsbDtcbiAgICAgICAgdGhpcy5sYW5ndWFnZSA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0QWRkaXRpb25hbCBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGluZm8odHJhbnNsYXRpb25JZD86IHN0cmluZywgdHJhbnNsYXRpb24/OiBhbnksIHF1ZXN0aW9uT3B0aW9ucz86IElRdWVzdGlvbk9wdGlvbnMsIGNvbmZpZ09wdGlvbnM/OiBXaW5kb3dDb25maWdPcHRpb25zKTogSVF1ZXN0aW9uIHtcbiAgICAgICAgbGV0IHRleHQgPSB0aGlzLmxhbmd1YWdlLnRyYW5zbGF0ZSh0cmFuc2xhdGlvbklkLCB0cmFuc2xhdGlvbik7XG4gICAgICAgIGxldCBjb25maWc6IFdpbmRvd0NvbmZpZzxRdWVzdGlvbk1hbmFnZXI+ID0gXy5hc3NpZ24obmV3IFdpbmRvd0NvbmZpZyh0cnVlLCBmYWxzZSwgNDUwKSwgY29uZmlnT3B0aW9ucyk7XG4gICAgICAgIGNvbmZpZy5kYXRhID0gbmV3IFF1ZXN0aW9uTWFuYWdlcihfLmFzc2lnbihxdWVzdGlvbk9wdGlvbnMsIHsgbW9kZTogUXVlc3Rpb25Nb2RlLklORk8sIHRleHQgfSkpO1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuKHRoaXMucXVlc3Rpb25Db21wb25lbnQsIGNvbmZpZykuY29uZmlnLmRhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIHF1ZXN0aW9uKHRyYW5zbGF0aW9uSWQ/OiBzdHJpbmcsIHRyYW5zbGF0aW9uPzogYW55LCBxdWVzdGlvbk9wdGlvbnM/OiBJUXVlc3Rpb25PcHRpb25zLCBjb25maWdPcHRpb25zPzogV2luZG93Q29uZmlnT3B0aW9ucyk6IElRdWVzdGlvbiB7XG4gICAgICAgIGxldCB0ZXh0ID0gdGhpcy5sYW5ndWFnZS50cmFuc2xhdGUodHJhbnNsYXRpb25JZCwgdHJhbnNsYXRpb24pO1xuICAgICAgICBsZXQgY29uZmlnOiBXaW5kb3dDb25maWc8UXVlc3Rpb25NYW5hZ2VyPiA9IF8uYXNzaWduKG5ldyBXaW5kb3dDb25maWcodHJ1ZSwgZmFsc2UsIDQ1MCksIGNvbmZpZ09wdGlvbnMpO1xuICAgICAgICBjb25maWcuZGF0YSA9IG5ldyBRdWVzdGlvbk1hbmFnZXIoXy5hc3NpZ24ocXVlc3Rpb25PcHRpb25zLCB7IG1vZGU6IFF1ZXN0aW9uTW9kZS5RVUVTVElPTiwgdGV4dCB9KSk7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW4odGhpcy5xdWVzdGlvbkNvbXBvbmVudCwgY29uZmlnKS5jb25maWcuZGF0YTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXQgd2luZG93KCk6IElXaW5kb3cge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2luZG93O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZXZlbnRzKCk6IE9ic2VydmFibGU8T2JzZXJ2YWJsZURhdGE8V2luZG93U2VydmljZUV2ZW50LCBJV2luZG93Pj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vYnNlcnZlci5hc09ic2VydmFibGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,59 +0,0 @@
1
- import { ViewContainerRef } from '@angular/core';
2
- import { ViewUtil } from '../../util/ViewUtil';
3
- import { BottomSheetImpl } from '../BottomSheetImpl';
4
- import { WindowBaseComponent } from '../../window/component/WindowBaseComponent';
5
- export class BottomSheetBaseComponent extends BottomSheetImpl {
6
- // --------------------------------------------------------------------------
7
- //
8
- // Protected Methods
9
- //
10
- // --------------------------------------------------------------------------
11
- elementsCreate() {
12
- super.elementsCreate();
13
- if (!(this.content.container instanceof ViewContainerRef)) {
14
- return;
15
- }
16
- if (!this.config.disableClose) {
17
- this.elementAdd(this.content.container.createComponent(BottomSheetBaseComponent.CLOSE_COMPONENT));
18
- }
19
- if (this.config.isExpandable) {
20
- this.elementAdd(this.content.container.createComponent(BottomSheetBaseComponent.EXPAND_COMPONENT));
21
- }
22
- }
23
- commitIsBlinkProperties() {
24
- ViewUtil.toggleClass(this.container, this.blinkClass, this.isBlink);
25
- }
26
- commitIsDisabledProperties() {
27
- ViewUtil.toggleClass(this.container, this.disabledClass, this.isDisabled);
28
- ViewUtil.toggleClass(this.content.element, this.disabledClass, this.isDisabled);
29
- ViewUtil.toggleClass(this.content.element.nativeElement.parentElement, this.disabledClass, this.isDisabled);
30
- }
31
- commitIsShakingProperties() {
32
- ViewUtil.toggleClass(this.container, this.shakingClass, this.isShaking);
33
- }
34
- // --------------------------------------------------------------------------
35
- //
36
- // Protected Properties
37
- //
38
- // --------------------------------------------------------------------------
39
- get blinkClass() {
40
- return 'vi-blink';
41
- }
42
- get disabledClass() {
43
- return 'vi-disabled';
44
- }
45
- get minimizedClass() {
46
- return 'vi-minimized';
47
- }
48
- get shakingClass() {
49
- return 'shake-constant shake-horizontal';
50
- }
51
- }
52
- // --------------------------------------------------------------------------
53
- //
54
- // Static Properties
55
- //
56
- // --------------------------------------------------------------------------
57
- BottomSheetBaseComponent.CLOSE_COMPONENT = WindowBaseComponent.CLOSE_COMPONENT;
58
- BottomSheetBaseComponent.EXPAND_COMPONENT = WindowBaseComponent.EXPAND_COMPONENT;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm90dG9tU2hlZXRCYXNlQ29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JvdHRvbVNoZWV0L2NvbXBvbmVudC9Cb3R0b21TaGVldEJhc2VDb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFakYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGVBQWU7SUFVekQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixxQkFBcUI7SUFDckIsRUFBRTtJQUNGLDZFQUE2RTtJQUVuRSxjQUFjO1FBQ3BCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsWUFBWSxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3ZELE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtZQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1NBQ3JHO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtZQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7U0FDdEc7SUFDTCxDQUFDO0lBRVMsdUJBQXVCO1FBQzdCLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRVMsMEJBQTBCO1FBQ2hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxRSxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hGLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoSCxDQUFDO0lBRVMseUJBQXlCO1FBQy9CLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRix3QkFBd0I7SUFDeEIsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxJQUFjLFVBQVU7UUFDcEIsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQWMsYUFBYTtRQUN2QixPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYyxjQUFjO1FBQ3hCLE9BQU8sY0FBYyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFjLFlBQVk7UUFDdEIsT0FBTyxpQ0FBaUMsQ0FBQztJQUM3QyxDQUFDOztBQS9ERCw2RUFBNkU7QUFDN0UsRUFBRTtBQUNGLHFCQUFxQjtBQUNyQixFQUFFO0FBQ0YsNkVBQTZFO0FBRS9ELHdDQUFlLEdBQUcsbUJBQW1CLENBQUMsZUFBZSxDQUFDO0FBQ3RELHlDQUFnQixHQUFHLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmlld1V0aWwgfSBmcm9tICcuLi8uLi91dGlsL1ZpZXdVdGlsJztcbmltcG9ydCB7IEJvdHRvbVNoZWV0SW1wbCB9IGZyb20gJy4uL0JvdHRvbVNoZWV0SW1wbCc7XG5pbXBvcnQgeyBXaW5kb3dCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2luZG93L2NvbXBvbmVudC9XaW5kb3dCYXNlQ29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIEJvdHRvbVNoZWV0QmFzZUNvbXBvbmVudCBleHRlbmRzIEJvdHRvbVNoZWV0SW1wbCB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBTdGF0aWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBzdGF0aWMgQ0xPU0VfQ09NUE9ORU5UID0gV2luZG93QmFzZUNvbXBvbmVudC5DTE9TRV9DT01QT05FTlQ7XG4gICAgcHVibGljIHN0YXRpYyBFWFBBTkRfQ09NUE9ORU5UID0gV2luZG93QmFzZUNvbXBvbmVudC5FWFBBTkRfQ09NUE9ORU5UO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBlbGVtZW50c0NyZWF0ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuZWxlbWVudHNDcmVhdGUoKTtcblxuICAgICAgICBpZiAoISh0aGlzLmNvbnRlbnQuY29udGFpbmVyIGluc3RhbmNlb2YgVmlld0NvbnRhaW5lclJlZikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuY29uZmlnLmRpc2FibGVDbG9zZSkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50QWRkKHRoaXMuY29udGVudC5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KEJvdHRvbVNoZWV0QmFzZUNvbXBvbmVudC5DTE9TRV9DT01QT05FTlQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb25maWcuaXNFeHBhbmRhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRBZGQodGhpcy5jb250ZW50LmNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoQm90dG9tU2hlZXRCYXNlQ29tcG9uZW50LkVYUEFORF9DT01QT05FTlQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb21taXRJc0JsaW5rUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgVmlld1V0aWwudG9nZ2xlQ2xhc3ModGhpcy5jb250YWluZXIsIHRoaXMuYmxpbmtDbGFzcywgdGhpcy5pc0JsaW5rKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29tbWl0SXNEaXNhYmxlZFByb3BlcnRpZXMoKTogdm9pZCB7XG4gICAgICAgIFZpZXdVdGlsLnRvZ2dsZUNsYXNzKHRoaXMuY29udGFpbmVyLCB0aGlzLmRpc2FibGVkQ2xhc3MsIHRoaXMuaXNEaXNhYmxlZCk7XG4gICAgICAgIFZpZXdVdGlsLnRvZ2dsZUNsYXNzKHRoaXMuY29udGVudC5lbGVtZW50LCB0aGlzLmRpc2FibGVkQ2xhc3MsIHRoaXMuaXNEaXNhYmxlZCk7XG4gICAgICAgIFZpZXdVdGlsLnRvZ2dsZUNsYXNzKHRoaXMuY29udGVudC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgdGhpcy5kaXNhYmxlZENsYXNzLCB0aGlzLmlzRGlzYWJsZWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb21taXRJc1NoYWtpbmdQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICBWaWV3VXRpbC50b2dnbGVDbGFzcyh0aGlzLmNvbnRhaW5lciwgdGhpcy5zaGFraW5nQ2xhc3MsIHRoaXMuaXNTaGFraW5nKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFByb3RlY3RlZCBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGdldCBibGlua0NsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAndmktYmxpbmsnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgZGlzYWJsZWRDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ3ZpLWRpc2FibGVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IG1pbmltaXplZENsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAndmktbWluaW1pemVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNoYWtpbmdDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ3NoYWtlLWNvbnN0YW50IHNoYWtlLWhvcml6b250YWwnO1xuICAgIH1cbn1cbiJdfQ==