@ts-core/angular 15.0.2 → 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 (161) hide show
  1. package/VICommonModule.d.ts +10 -13
  2. package/application/ApplicationComponent.d.ts +1 -3
  3. package/esm2020/VICommonModule.mjs +4 -14
  4. package/esm2020/application/ApplicationComponent.mjs +2 -3
  5. package/esm2020/application/MessageBaseComponent.mjs +1 -1
  6. package/esm2020/language/LanguageModule.mjs +1 -8
  7. package/esm2020/pipe/CamelCasePipe.mjs +4 -12
  8. package/esm2020/pipe/StartCasePipe.mjs +4 -5
  9. package/esm2020/pipe/TimePipe.mjs +3 -2
  10. package/esm2020/pipe/TruncatePipe.mjs +3 -5
  11. package/esm2020/public-api.mjs +1 -68
  12. package/esm2020/service/PipeBaseService.mjs +1 -1
  13. package/esm2020/theme/ThemeAssetDirective.mjs +1 -1
  14. package/fesm2015/ts-core-angular.mjs +3023 -7419
  15. package/fesm2015/ts-core-angular.mjs.map +1 -1
  16. package/fesm2020/ts-core-angular.mjs +3003 -7397
  17. package/fesm2020/ts-core-angular.mjs.map +1 -1
  18. package/package.json +3 -9
  19. package/pipe/CamelCasePipe.d.ts +0 -1
  20. package/public-api.d.ts +0 -60
  21. package/style/_core.scss +120 -0
  22. package/style/_text.scss +9 -1
  23. package/application/ShellBaseComponent.d.ts +0 -20
  24. package/bottomSheet/BottomSheetImpl.d.ts +0 -66
  25. package/bottomSheet/BottomSheetModule.d.ts +0 -13
  26. package/bottomSheet/BottomSheetService.d.ts +0 -31
  27. package/bottomSheet/component/BottomSheetBaseComponent.d.ts +0 -8
  28. package/component/VIComponentModule.d.ts +0 -33
  29. package/component/cdk-table/CdkTableBaseComponent.d.ts +0 -60
  30. package/component/cdk-table/CdkTableDataSource.d.ts +0 -13
  31. package/component/cdk-table/CdkTableFilterableMapCollection.d.ts +0 -14
  32. package/component/cdk-table/CdkTablePaginableBookmarkMapCollection.d.ts +0 -11
  33. package/component/cdk-table/CdkTablePaginableMapCollection.d.ts +0 -13
  34. package/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.d.ts +0 -9
  35. package/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.d.ts +0 -18
  36. package/component/cdk-table/cdk-table-paginable-bookmark/cdk-table-paginable-bookmark.component.d.ts +0 -9
  37. package/component/cdk-table/cell/CdkTableCellClassNamePipe.d.ts +0 -8
  38. package/component/cdk-table/cell/CdkTableCellStyleNamePipe.d.ts +0 -10
  39. package/component/cdk-table/cell/CdkTableCellValuePipe.d.ts +0 -17
  40. package/component/cdk-table/cell/CdkTableCellValuePipePure.d.ts +0 -8
  41. package/component/cdk-table/column/CdkTableColumnClassNamePipe.d.ts +0 -8
  42. package/component/cdk-table/column/CdkTableColumnStyleNamePipe.d.ts +0 -10
  43. package/component/cdk-table/column/ICdkTableColumn.d.ts +0 -25
  44. package/component/cdk-table/row/CdkTableRowClassNamePipe.d.ts +0 -8
  45. package/component/cdk-table/row/CdkTableRowStyleNamePipe.d.ts +0 -10
  46. package/component/cdk-table/row/ICdkTableRow.d.ts +0 -8
  47. package/component/language/language-selector/language-selector.component.d.ts +0 -19
  48. package/component/menu-list/menu-list.component.d.ts +0 -9
  49. package/component/select-list/select-list.component.d.ts +0 -9
  50. package/component/tab-group/tab-group.component.d.ts +0 -18
  51. package/directive/MenuTriggerForDirective.d.ts +0 -11
  52. package/error/WindowClosedError.d.ts +0 -6
  53. package/esm2020/application/ShellBaseComponent.mjs +0 -78
  54. package/esm2020/bottomSheet/BottomSheetImpl.mjs +0 -228
  55. package/esm2020/bottomSheet/BottomSheetModule.mjs +0 -37
  56. package/esm2020/bottomSheet/BottomSheetService.mjs +0 -107
  57. package/esm2020/bottomSheet/component/BottomSheetBaseComponent.mjs +0 -44
  58. package/esm2020/component/VIComponentModule.mjs +0 -117
  59. package/esm2020/component/cdk-table/CdkTableBaseComponent.mjs +0 -192
  60. package/esm2020/component/cdk-table/CdkTableDataSource.mjs +0 -58
  61. package/esm2020/component/cdk-table/CdkTableFilterableMapCollection.mjs +0 -94
  62. package/esm2020/component/cdk-table/CdkTablePaginableBookmarkMapCollection.mjs +0 -49
  63. package/esm2020/component/cdk-table/CdkTablePaginableMapCollection.mjs +0 -57
  64. package/esm2020/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.mjs +0 -37
  65. package/esm2020/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.mjs +0 -65
  66. package/esm2020/component/cdk-table/cdk-table-paginable-bookmark/cdk-table-paginable-bookmark.component.mjs +0 -37
  67. package/esm2020/component/cdk-table/cell/CdkTableCellClassNamePipe.mjs +0 -25
  68. package/esm2020/component/cdk-table/cell/CdkTableCellStyleNamePipe.mjs +0 -22
  69. package/esm2020/component/cdk-table/cell/CdkTableCellValuePipe.mjs +0 -77
  70. package/esm2020/component/cdk-table/cell/CdkTableCellValuePipePure.mjs +0 -22
  71. package/esm2020/component/cdk-table/column/CdkTableColumnClassNamePipe.mjs +0 -22
  72. package/esm2020/component/cdk-table/column/CdkTableColumnStyleNamePipe.mjs +0 -22
  73. package/esm2020/component/cdk-table/column/ICdkTableColumn.mjs +0 -2
  74. package/esm2020/component/cdk-table/row/CdkTableRowClassNamePipe.mjs +0 -22
  75. package/esm2020/component/cdk-table/row/CdkTableRowStyleNamePipe.mjs +0 -22
  76. package/esm2020/component/cdk-table/row/ICdkTableRow.mjs +0 -2
  77. package/esm2020/component/language/language-selector/language-selector.component.mjs +0 -79
  78. package/esm2020/component/menu-list/menu-list.component.mjs +0 -16
  79. package/esm2020/component/select-list/select-list.component.mjs +0 -16
  80. package/esm2020/component/tab-group/tab-group.component.mjs +0 -82
  81. package/esm2020/directive/MenuTriggerForDirective.mjs +0 -55
  82. package/esm2020/error/WindowClosedError.mjs +0 -19
  83. package/esm2020/language/LanguageMatPaginatorIntl.mjs +0 -60
  84. package/esm2020/language/LanguageMomentDateAdapter.mjs +0 -13
  85. package/esm2020/notification/INotification.mjs +0 -7
  86. package/esm2020/notification/INotificationContent.mjs +0 -132
  87. package/esm2020/notification/NotificationConfig.mjs +0 -16
  88. package/esm2020/notification/NotificationFactory.mjs +0 -19
  89. package/esm2020/notification/NotificationImpl.mjs +0 -139
  90. package/esm2020/notification/NotificationModule.mjs +0 -53
  91. package/esm2020/notification/NotificationProperties.mjs +0 -2
  92. package/esm2020/notification/NotificationService.mjs +0 -239
  93. package/esm2020/notification/component/NotificationBaseComponent.mjs +0 -4
  94. package/esm2020/notification/component/NotificationQuestionBaseComponent.mjs +0 -50
  95. package/esm2020/notification/component/notification/notification.component.mjs +0 -61
  96. package/esm2020/service/BootstrapBreakpointService.mjs +0 -116
  97. package/esm2020/window/IWindow.mjs +0 -33
  98. package/esm2020/window/IWindowContent.mjs +0 -132
  99. package/esm2020/window/WindowBase.mjs +0 -168
  100. package/esm2020/window/WindowConfig.mjs +0 -232
  101. package/esm2020/window/WindowFactory.mjs +0 -27
  102. package/esm2020/window/WindowImpl.mjs +0 -354
  103. package/esm2020/window/WindowModule.mjs +0 -58
  104. package/esm2020/window/WindowProperties.mjs +0 -2
  105. package/esm2020/window/WindowService.mjs +0 -366
  106. package/esm2020/window/WindowServiceEvent.mjs +0 -9
  107. package/esm2020/window/component/WindowBaseComponent.mjs +0 -75
  108. package/esm2020/window/component/WindowDragAreaDirective.mjs +0 -97
  109. package/esm2020/window/component/WindowDragable.mjs +0 -69
  110. package/esm2020/window/component/WindowElement.mjs +0 -95
  111. package/esm2020/window/component/WindowQuestionBaseComponent.mjs +0 -17
  112. package/esm2020/window/component/WindowResizeable.mjs +0 -88
  113. package/esm2020/window/component/window-close-element/window-close-element.component.mjs +0 -55
  114. package/esm2020/window/component/window-expand-element/window-expand-element.component.mjs +0 -56
  115. package/esm2020/window/component/window-minimize-element/window-minimize-element.component.mjs +0 -75
  116. package/esm2020/window/component/window-question/window-question.component.mjs +0 -50
  117. package/esm2020/window/component/window-resize-element/window-resize-element.component.mjs +0 -56
  118. package/language/LanguageMatPaginatorIntl.d.ts +0 -20
  119. package/language/LanguageMomentDateAdapter.d.ts +0 -5
  120. package/notification/INotification.d.ts +0 -26
  121. package/notification/INotificationContent.d.ts +0 -31
  122. package/notification/NotificationConfig.d.ts +0 -13
  123. package/notification/NotificationFactory.d.ts +0 -11
  124. package/notification/NotificationImpl.d.ts +0 -38
  125. package/notification/NotificationModule.d.ts +0 -18
  126. package/notification/NotificationProperties.d.ts +0 -9
  127. package/notification/NotificationService.d.ts +0 -56
  128. package/notification/component/NotificationBaseComponent.d.ts +0 -3
  129. package/notification/component/NotificationQuestionBaseComponent.d.ts +0 -10
  130. package/notification/component/notification/notification.component.d.ts +0 -14
  131. package/service/BootstrapBreakpointService.d.ts +0 -45
  132. package/style/mat/_core.scss +0 -317
  133. package/style/mat/_index.scss +0 -169
  134. package/style/mat/_variables.scss +0 -1
  135. package/style/mat/bootstrap/_background.scss +0 -28
  136. package/style/mat/bootstrap/_border.scss +0 -202
  137. package/style/mat/bootstrap/_index.scss +0 -27
  138. package/style/mat/bootstrap/_text.scss +0 -47
  139. package/style/mat/helper/_theme.scss +0 -96
  140. package/style/mat/helper/_typography.scss +0 -15
  141. package/window/IWindow.d.ts +0 -42
  142. package/window/IWindowContent.d.ts +0 -34
  143. package/window/WindowBase.d.ts +0 -33
  144. package/window/WindowConfig.d.ts +0 -64
  145. package/window/WindowFactory.d.ts +0 -12
  146. package/window/WindowImpl.d.ts +0 -88
  147. package/window/WindowModule.d.ts +0 -20
  148. package/window/WindowProperties.d.ts +0 -9
  149. package/window/WindowService.d.ts +0 -71
  150. package/window/WindowServiceEvent.d.ts +0 -7
  151. package/window/component/WindowBaseComponent.d.ts +0 -20
  152. package/window/component/WindowDragAreaDirective.d.ts +0 -19
  153. package/window/component/WindowDragable.d.ts +0 -13
  154. package/window/component/WindowElement.d.ts +0 -22
  155. package/window/component/WindowQuestionBaseComponent.d.ts +0 -5
  156. package/window/component/WindowResizeable.d.ts +0 -10
  157. package/window/component/window-close-element/window-close-element.component.d.ts +0 -12
  158. package/window/component/window-expand-element/window-expand-element.component.d.ts +0 -12
  159. package/window/component/window-minimize-element/window-minimize-element.component.d.ts +0 -15
  160. package/window/component/window-question/window-question.component.d.ts +0 -12
  161. package/window/component/window-resize-element/window-resize-element.component.d.ts +0 -12
@@ -1,239 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { ObservableData } from '@ts-core/common';
3
- import { ArrayUtil, DateUtil, ObjectUtil } from '@ts-core/common';
4
- import * as _ from 'lodash';
5
- import { Subject } from 'rxjs';
6
- import { QuestionMode } from '../question/IQuestion';
7
- import { QuestionManager } from '../question/QuestionManager';
8
- import { WindowEvent } from '../window/IWindow';
9
- import { WindowAlign } from '../window/WindowConfig';
10
- import { NotificationEvent } from './INotification';
11
- import { NotificationConfig } from './NotificationConfig';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/material/dialog";
14
- import * as i2 from "@ts-core/frontend";
15
- export class NotificationService {
16
- // --------------------------------------------------------------------------
17
- //
18
- // Constructor
19
- //
20
- // --------------------------------------------------------------------------
21
- constructor(dialog, language) {
22
- this.gapY = 25;
23
- this.minWidth = 25;
24
- this.minHeight = 25;
25
- this.paddingTop = 25;
26
- this.paddingLeft = 25;
27
- this.paddingRight = 25;
28
- this.paddingBottom = 25;
29
- this.defaultCloseDuration = 10 * DateUtil.MILISECONDS_SECOND;
30
- this._configs = [];
31
- this._closedConfigs = [];
32
- this._notifications = new Map();
33
- this.dialog = dialog;
34
- this.language = language;
35
- this.observer = new Subject();
36
- }
37
- // --------------------------------------------------------------------------
38
- //
39
- // Public Methods
40
- //
41
- // --------------------------------------------------------------------------
42
- open(component, config) {
43
- let notification = null;
44
- if (!_.isNil(config.id)) {
45
- notification = this.getById(config.id);
46
- if (notification) {
47
- return notification.content;
48
- }
49
- }
50
- this.setDefaultProperties(config);
51
- let reference = this.dialog.open(component, config);
52
- notification = this.factory.create({ config, reference, overlay: reference['_ref'].overlayRef });
53
- let subscription = notification.events.subscribe(event => {
54
- switch (event) {
55
- case WindowEvent.OPENED:
56
- this.add(config, reference.componentInstance);
57
- this.checkPosition(notification);
58
- if (config.sound) {
59
- // Assets.playSound(config.sound);
60
- }
61
- break;
62
- case WindowEvent.CLOSED:
63
- subscription.unsubscribe();
64
- this.close(config);
65
- break;
66
- case NotificationEvent.REMOVED:
67
- subscription.unsubscribe();
68
- this.remove(config);
69
- break;
70
- }
71
- });
72
- return notification.content;
73
- }
74
- // --------------------------------------------------------------------------
75
- //
76
- // Private Methods
77
- //
78
- // --------------------------------------------------------------------------
79
- getById(id) {
80
- let item = _.find(Array.from(this._notifications.values()), item => item.config.id === id);
81
- return !_.isNil(item) ? item.notification : null;
82
- }
83
- setDefaultProperties(config) {
84
- if (_.isNaN(config.defaultMinWidth)) {
85
- config.defaultMinWidth = this.minWidth;
86
- }
87
- if (_.isNaN(config.defaultMinHeight)) {
88
- config.defaultMinHeight = this.minHeight;
89
- }
90
- if (_.isNaN(config.paddingTop)) {
91
- config.paddingTop = this.paddingTop;
92
- }
93
- if (_.isNaN(config.paddingLeft)) {
94
- config.paddingLeft = this.paddingLeft;
95
- }
96
- if (_.isNaN(config.paddingRight)) {
97
- config.paddingRight = this.paddingRight;
98
- }
99
- if (_.isNaN(config.paddingBottom)) {
100
- config.paddingBottom = this.paddingBottom;
101
- }
102
- if (_.isNaN(config.closeDuration)) {
103
- config.closeDuration = this.defaultCloseDuration;
104
- }
105
- config.verticalAlign = WindowAlign.START;
106
- config.horizontalAlign = WindowAlign.END;
107
- config.setDefaultProperties();
108
- }
109
- checkPosition(item) {
110
- let previous = this.getPrevious(item);
111
- if (!_.isNil(previous)) {
112
- item.setY(previous.getY() + previous.getHeight() + this.gapY);
113
- }
114
- }
115
- getPrevious(value) {
116
- if (this.notifications.size === 0) {
117
- return null;
118
- }
119
- let items = Array.from(this.notifications.values());
120
- for (let i = 0; i < items.length; i++) {
121
- if (items[i].notification === value) {
122
- if (i === 0) {
123
- return null;
124
- }
125
- return items[i - 1].notification;
126
- }
127
- }
128
- return null;
129
- }
130
- // --------------------------------------------------------------------------
131
- //
132
- // Setters Methods
133
- //
134
- // --------------------------------------------------------------------------
135
- add(config, content) {
136
- this._configs.push(config);
137
- this.observer.next(new ObservableData(NotificationServiceEvent.ADDED, config));
138
- this._notifications.set(config, content);
139
- this.observer.next(new ObservableData(NotificationServiceEvent.OPENED, content.notification));
140
- }
141
- // --------------------------------------------------------------------------
142
- //
143
- // Help Methods
144
- //
145
- // --------------------------------------------------------------------------
146
- get(value) {
147
- if (_.isNil(value)) {
148
- return null;
149
- }
150
- if (value instanceof NotificationConfig) {
151
- return value;
152
- }
153
- let id = value.toString();
154
- if (ObjectUtil.instanceOf(value, ['id'])) {
155
- id = value.id;
156
- }
157
- for (let item of this.configs) {
158
- if (item.id === id) {
159
- return item;
160
- }
161
- }
162
- return null;
163
- }
164
- has(value) {
165
- return !_.isNil(this.get(value));
166
- }
167
- remove(value) {
168
- let config = this.get(value);
169
- if (_.isNil(config)) {
170
- return;
171
- }
172
- this.close(config);
173
- ArrayUtil.remove(this._configs, config);
174
- ArrayUtil.remove(this._closedConfigs, config);
175
- this.observer.next(new ObservableData(NotificationServiceEvent.REMOVED, config));
176
- config.destroy();
177
- }
178
- removeAll() {
179
- this.configs.forEach(item => this.remove(item));
180
- }
181
- close(value) {
182
- let config = this.get(value);
183
- if (_.isNil(config)) {
184
- return null;
185
- }
186
- let notification = this._notifications.get(config);
187
- if (_.isNil(notification)) {
188
- return null;
189
- }
190
- notification.close();
191
- this._notifications.delete(config);
192
- this._closedConfigs.push(config);
193
- this.observer.next(new ObservableData(NotificationServiceEvent.CLOSED, notification.notification));
194
- return notification.notification;
195
- }
196
- info(translationId, translation, questionOptions, configOptions) {
197
- let text = this.language.translate(translationId, translation);
198
- let data = new QuestionManager(_.assign(questionOptions, { mode: QuestionMode.INFO, text }));
199
- let config = _.assign(new NotificationConfig(data), configOptions);
200
- return this.open(this.questionComponent, config).config.data;
201
- }
202
- question(translationId, translation, questionOptions, configOptions) {
203
- let text = this.language.translate(translationId, translation);
204
- let data = new QuestionManager(_.assign(questionOptions, { mode: QuestionMode.QUESTION, text }));
205
- let config = _.assign(new NotificationConfig(data), configOptions);
206
- return this.open(this.questionComponent, config).config.data;
207
- }
208
- // --------------------------------------------------------------------------
209
- //
210
- // Public Properties
211
- //
212
- // --------------------------------------------------------------------------
213
- get events() {
214
- return this.observer.asObservable();
215
- }
216
- get configs() {
217
- return this._configs;
218
- }
219
- get closedConfigs() {
220
- return this._closedConfigs;
221
- }
222
- get notifications() {
223
- return this._notifications;
224
- }
225
- }
226
- NotificationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationService, deps: [{ token: i1.MatDialog }, { token: i2.LanguageService }], target: i0.ɵɵFactoryTarget.Injectable });
227
- NotificationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationService, providedIn: 'root' });
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationService, decorators: [{
229
- type: Injectable,
230
- args: [{ providedIn: 'root' }]
231
- }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.LanguageService }]; } });
232
- export var NotificationServiceEvent;
233
- (function (NotificationServiceEvent) {
234
- NotificationServiceEvent["OPENED"] = "OPENED";
235
- NotificationServiceEvent["CLOSED"] = "CLOSED";
236
- NotificationServiceEvent["ADDED"] = "ADDED";
237
- NotificationServiceEvent["REMOVED"] = "REMOVED";
238
- })(NotificationServiceEvent || (NotificationServiceEvent = {}));
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpY2F0aW9uU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub3RpZmljYXRpb24vTm90aWZpY2F0aW9uU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBK0IsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxrQkFBa0IsRUFBNkIsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQUlyRixNQUFNLE9BQU8sbUJBQW1CO0lBK0I1Qiw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLFlBQVksTUFBaUIsRUFBRSxRQUF5QjtRQWxCakQsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUVsQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixpQkFBWSxHQUFXLEVBQUUs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TUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNuRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDakUsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YscUJBQXFCO0lBQ3JCLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQzs7Z0hBOVFRLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRE4sTUFBTTsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUFvUmxDLE1BQU0sQ0FBTixJQUFZLHdCQUtYO0FBTEQsV0FBWSx3QkFBd0I7SUFDaEMsNkNBQWlCLENBQUE7SUFDakIsNkNBQWlCLENBQUE7SUFDakIsMkNBQWUsQ0FBQTtJQUNmLCtDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyx3QkFBd0IsS0FBeEIsd0JBQXdCLFFBS25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZURhdGEgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgQXJyYXlVdGlsLCBEYXRlVXRpbCwgT2JqZWN0VXRpbCB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAdHMtY29yZS9mcm9udGVuZCc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJUXVlc3Rpb24sIElRdWVzdGlvbk9wdGlvbnMsIFF1ZXN0aW9uTW9kZSB9IGZyb20gJy4uL3F1ZXN0aW9uL0lRdWVzdGlvbic7XG5pbXBvcnQgeyBRdWVzdGlvbk1hbmFnZXIgfSBmcm9tICcuLi9xdWVzdGlvbi9RdWVzdGlvbk1hbmFnZXInO1xuaW1wb3J0IHsgV2luZG93RXZlbnQgfSBmcm9tICcuLi93aW5kb3cvSVdpbmRvdyc7XG5pbXBvcnQgeyBXaW5kb3dBbGlnbiB9IGZyb20gJy4uL3dpbmRvdy9XaW5kb3dDb25maWcnO1xuaW1wb3J0IHsgSU5vdGlmaWNhdGlvbiwgTm90aWZpY2F0aW9uRXZlbnQgfSBmcm9tICcuL0lOb3RpZmljYXRpb24nO1xuaW1wb3J0IHsgSU5vdGlmaWNhdGlvbkNvbnRlbnQgfSBmcm9tICcuL0lOb3RpZmljYXRpb25Db250ZW50JztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkNvbmZpZywgTm90aWZpY2F0aW9uQ29uZmlnT3B0aW9ucyB9IGZyb20gJy4vTm90aWZpY2F0aW9uQ29uZmlnJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkZhY3RvcnkgfSBmcm9tICcuL05vdGlmaWNhdGlvbkZhY3RvcnknO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblNlcnZpY2Uge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZmFjdG9yeTogTm90aWZpY2F0aW9uRmFjdG9yeTxJTm90aWZpY2F0aW9uPjtcbiAgICBwdWJsaWMgcXVlc3Rpb25Db21wb25lbnQ6IENvbXBvbmVudFR5cGU8SU5vdGlmaWNhdGlvbkNvbnRlbnQ8YW55Pj47XG5cbiAgICBwcm90ZWN0ZWQgZGlhbG9nOiBNYXREaWFsb2c7XG4gICAgcHJvdGVjdGVkIGxhbmd1YWdlOiBMYW5ndWFnZVNlcnZpY2U7XG5cbiAgICBwcm90ZWN0ZWQgX2NvbmZpZ3M6IEFycmF5PE5vdGlmaWNhdGlvbkNvbmZpZz47XG4gICAgcHJvdGVjdGVkIF9jbG9zZWRDb25maWdzOiBBcnJheTxOb3RpZmljYXRpb25Db25maWc+O1xuICAgIHByb3RlY3RlZCBfbm90aWZpY2F0aW9uczogTWFwPE5vdGlmaWNhdGlvbkNvbmZpZywgSU5vdGlmaWNhdGlvbkNvbnRlbnQ8YW55Pj47XG5cbiAgICBwcml2YXRlIG9ic2VydmVyOiBTdWJqZWN0PE9ic2VydmFibGVEYXRhPE5vdGlmaWNhdGlvblNlcnZpY2VFdmVudCwgSU5vdGlmaWNhdGlvbiB8IE5vdGlmaWNhdGlvbkNvbmZpZz4+O1xuXG4gICAgcHVibGljIGdhcFk6IG51bWJlciA9IDI1O1xuXG4gICAgcHVibGljIG1pbldpZHRoOiBudW1iZXIgPSAyNTtcbiAgICBwdWJsaWMgbWluSGVpZ2h0OiBudW1iZXIgPSAyNTtcblxuICAgIHB1YmxpYyBwYWRkaW5nVG9wOiBudW1iZXIgPSAyNTtcbiAgICBwdWJsaWMgcGFkZGluZ0xlZnQ6IG51bWJlciA9IDI1O1xuICAgIHB1YmxpYyBwYWRkaW5nUmlnaHQ6IG51bWJlciA9IDI1O1xuICAgIHB1YmxpYyBwYWRkaW5nQm90dG9tOiBudW1iZXIgPSAyNTtcblxuICAgIHB1YmxpYyBkZWZhdWx0Q2xvc2VEdXJhdGlvbjogbnVtYmVyID0gMTAgKiBEYXRlVXRpbC5NSUxJU0VDT05EU19TRUNPTkQ7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKGRpYWxvZzogTWF0RGlhbG9nLCBsYW5ndWFnZTogTGFuZ3VhZ2VTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuX2NvbmZpZ3MgPSBbXTtcbiAgICAgICAgdGhpcy5fY2xvc2VkQ29uZmlncyA9IFtdO1xuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gbmV3IE1hcCgpO1xuXG4gICAgICAgIHRoaXMuZGlhbG9nID0gZGlhbG9nO1xuICAgICAgICB0aGlzLmxhbmd1YWdlID0gbGFuZ3VhZ2U7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIG9wZW48VD4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPElOb3RpZmljYXRpb25Db250ZW50PFQ+PiwgY29uZmlnOiBOb3RpZmljYXRpb25Db25maWcpOiBJTm90aWZpY2F0aW9uQ29udGVudDxUPiB7XG4gICAgICAgIGxldCBub3RpZmljYXRpb24gPSBudWxsO1xuICAgICAgICBpZiAoIV8uaXNOaWwoY29uZmlnLmlkKSkge1xuICAgICAgICAgICAgbm90aWZpY2F0aW9uID0gdGhpcy5nZXRCeUlkKGNvbmZpZy5pZCk7XG4gICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbi5jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXREZWZhdWx0UHJvcGVydGllcyhjb25maWcpO1xuXG4gICAgICAgIGxldCByZWZlcmVuY2U6IE1hdERpYWxvZ1JlZjxJTm90aWZpY2F0aW9uQ29udGVudDxUPj4gPSB0aGlzLmRpYWxvZy5vcGVuKGNvbXBvbmVudCwgY29uZmlnKTtcbiAgICAgICAgbm90aWZpY2F0aW9uID0gdGhpcy5mYWN0b3J5LmNyZWF0ZSh7IGNvbmZpZywgcmVmZXJlbmNlLCBvdmVybGF5OiByZWZlcmVuY2VbJ19yZWYnXS5vdmVybGF5UmVmIH0pO1xuXG4gICAgICAgIGxldCBzdWJzY3JpcHRpb24gPSBub3RpZmljYXRpb24uZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgY2FzZSBXaW5kb3dFdmVudC5PUEVORUQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkKGNvbmZpZywgcmVmZXJlbmNlLmNvbXBvbmVudEluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja1Bvc2l0aW9uKG5vdGlmaWNhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb25maWcuc291bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFzc2V0cy5wbGF5U291bmQoY29uZmlnLnNvdW5kKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgV2luZG93RXZlbnQuQ0xPU0VEOlxuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZShjb25maWcpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnQuUkVNT1ZFRDpcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlKGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbi5jb250ZW50O1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByaXZhdGUgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByaXZhdGUgZ2V0QnlJZChpZDogc3RyaW5nKTogSU5vdGlmaWNhdGlvbiB7XG4gICAgICAgIGxldCBpdGVtID0gXy5maW5kKEFycmF5LmZyb20odGhpcy5fbm90aWZpY2F0aW9ucy52YWx1ZXMoKSksIGl0ZW0gPT4gaXRlbS5jb25maWcuaWQgPT09IGlkKTtcbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKGl0ZW0pID8gaXRlbS5ub3RpZmljYXRpb24gOiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGVmYXVsdFByb3BlcnRpZXMoY29uZmlnOiBOb3RpZmljYXRpb25Db25maWcpOiB2b2lkIHtcbiAgICAgICAgaWYgKF8uaXNOYU4oY29uZmlnLmRlZmF1bHRNaW5XaWR0aCkpIHtcbiAgICAgICAgICAgIGNvbmZpZy5kZWZhdWx0TWluV2lkdGggPSB0aGlzLm1pbldpZHRoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfLmlzTmFOKGNvbmZpZy5kZWZhdWx0TWluSGVpZ2h0KSkge1xuICAgICAgICAgICAgY29uZmlnLmRlZmF1bHRNaW5IZWlnaHQgPSB0aGlzLm1pbkhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfLmlzTmFOKGNvbmZpZy5wYWRkaW5nVG9wKSkge1xuICAgICAgICAgICAgY29uZmlnLnBhZGRpbmdUb3AgPSB0aGlzLnBhZGRpbmdUb3A7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKF8uaXNOYU4oY29uZmlnLnBhZGRpbmdMZWZ0KSkge1xuICAgICAgICAgICAgY29uZmlnLnBhZGRpbmdMZWZ0ID0gdGhpcy5wYWRkaW5nTGVmdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXy5pc05hTihjb25maWcucGFkZGluZ1JpZ2h0KSkge1xuICAgICAgICAgICAgY29uZmlnLnBhZGRpbmdSaWdodCA9IHRoaXMucGFkZGluZ1JpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChfLmlzTmFOKGNvbmZpZy5wYWRkaW5nQm90dG9tKSkge1xuICAgICAgICAgICAgY29uZmlnLnBhZGRpbmdCb3R0b20gPSB0aGlzLnBhZGRpbmdCb3R0b207XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXy5pc05hTihjb25maWcuY2xvc2VEdXJhdGlvbikpIHtcbiAgICAgICAgICAgIGNvbmZpZy5jbG9zZUR1cmF0aW9uID0gdGhpcy5kZWZhdWx0Q2xvc2VEdXJhdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbmZpZy52ZXJ0aWNhbEFsaWduID0gV2luZG93QWxpZ24uU1RBUlQ7XG4gICAgICAgIGNvbmZpZy5ob3Jpem9udGFsQWxpZ24gPSBXaW5kb3dBbGlnbi5FTkQ7XG4gICAgICAgIGNvbmZpZy5zZXREZWZhdWx0UHJvcGVydGllcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tQb3NpdGlvbihpdGVtOiBJTm90aWZpY2F0aW9uKTogdm9pZCB7XG4gICAgICAgIGxldCBwcmV2aW91cyA9IHRoaXMuZ2V0UHJldmlvdXMoaXRlbSk7XG4gICAgICAgIGlmICghXy5pc05pbChwcmV2aW91cykpIHtcbiAgICAgICAgICAgIGl0ZW0uc2V0WShwcmV2aW91cy5nZXRZKCkgKyBwcmV2aW91cy5nZXRIZWlnaHQoKSArIHRoaXMuZ2FwWSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByZXZpb3VzKHZhbHVlOiBJTm90aWZpY2F0aW9uKTogSU5vdGlmaWNhdGlvbiB7XG4gICAgICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvbnMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaXRlbXMgPSBBcnJheS5mcm9tKHRoaXMubm90aWZpY2F0aW9ucy52YWx1ZXMoKSk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpdGVtc1tpXS5ub3RpZmljYXRpb24gPT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtc1tpIC0gMV0ubm90aWZpY2F0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFNldHRlcnMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByaXZhdGUgYWRkPFQ+KGNvbmZpZzogTm90aWZpY2F0aW9uQ29uZmlnLCBjb250ZW50OiBJTm90aWZpY2F0aW9uQ29udGVudDxUPik6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb25maWdzLnB1c2goY29uZmlnKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShOb3RpZmljYXRpb25TZXJ2aWNlRXZlbnQuQURERUQsIGNvbmZpZykpO1xuXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMuc2V0KGNvbmZpZywgY29udGVudCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTm90aWZpY2F0aW9uU2VydmljZUV2ZW50Lk9QRU5FRCwgY29udGVudC5ub3RpZmljYXRpb24pKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRIZWxwIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0KHZhbHVlOiBOb3RpZmljYXRpb25JZCk6IE5vdGlmaWNhdGlvbkNvbmZpZyB7XG4gICAgICAgIGlmIChfLmlzTmlsKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTm90aWZpY2F0aW9uQ29uZmlnKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaWQgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICBpZiAoT2JqZWN0VXRpbC5pbnN0YW5jZU9mPE5vdGlmaWNhdGlvbkNvbmZpZ09wdGlvbnM+KHZhbHVlLCBbJ2lkJ10pKSB7XG4gICAgICAgICAgICBpZCA9IHZhbHVlLmlkO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5jb25maWdzKSB7XG4gICAgICAgICAgICBpZiAoaXRlbS5pZCA9PT0gaWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzKHZhbHVlOiBOb3RpZmljYXRpb25JZCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIV8uaXNOaWwodGhpcy5nZXQodmFsdWUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlKHZhbHVlOiBOb3RpZmljYXRpb25JZCk6IHZvaWQge1xuICAgICAgICBsZXQgY29uZmlnID0gdGhpcy5nZXQodmFsdWUpO1xuICAgICAgICBpZiAoXy5pc05pbChjb25maWcpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsb3NlKGNvbmZpZyk7XG4gICAgICAgIEFycmF5VXRpbC5yZW1vdmUodGhpcy5fY29uZmlncywgY29uZmlnKTtcbiAgICAgICAgQXJyYXlVdGlsLnJlbW92ZSh0aGlzLl9jbG9zZWRDb25maWdzLCBjb25maWcpO1xuICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKE5vdGlmaWNhdGlvblNlcnZpY2VFdmVudC5SRU1PVkVELCBjb25maWcpKTtcbiAgICAgICAgY29uZmlnLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlQWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpZ3MuZm9yRWFjaChpdGVtID0+IHRoaXMucmVtb3ZlKGl0ZW0pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UodmFsdWU6IE5vdGlmaWNhdGlvbklkKTogSU5vdGlmaWNhdGlvbiB7XG4gICAgICAgIGxldCBjb25maWcgPSB0aGlzLmdldCh2YWx1ZSk7XG4gICAgICAgIGlmIChfLmlzTmlsKGNvbmZpZykpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG5vdGlmaWNhdGlvbiA9IHRoaXMuX25vdGlmaWNhdGlvbnMuZ2V0KGNvbmZpZyk7XG4gICAgICAgIGlmIChfLmlzTmlsKG5vdGlmaWNhdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgbm90aWZpY2F0aW9uLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMuZGVsZXRlKGNvbmZpZyk7XG5cbiAgICAgICAgdGhpcy5fY2xvc2VkQ29uZmlncy5wdXNoKGNvbmZpZyk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTm90aWZpY2F0aW9uU2VydmljZUV2ZW50LkNMT1NFRCwgbm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbikpO1xuICAgICAgICByZXR1cm4gbm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5mbyh0cmFuc2xhdGlvbklkPzogc3RyaW5nLCB0cmFuc2xhdGlvbj86IGFueSwgcXVlc3Rpb25PcHRpb25zPzogSVF1ZXN0aW9uT3B0aW9ucywgY29uZmlnT3B0aW9ucz86IE5vdGlmaWNhdGlvbkNvbmZpZ09wdGlvbnMpOiBJUXVlc3Rpb24ge1xuICAgICAgICBsZXQgdGV4dCA9IHRoaXMubGFuZ3VhZ2UudHJhbnNsYXRlKHRyYW5zbGF0aW9uSWQsIHRyYW5zbGF0aW9uKTtcbiAgICAgICAgbGV0IGRhdGEgPSBuZXcgUXVlc3Rpb25NYW5hZ2VyKF8uYXNzaWduKHF1ZXN0aW9uT3B0aW9ucywgeyBtb2RlOiBRdWVzdGlvbk1vZGUuSU5GTywgdGV4dCB9KSk7XG4gICAgICAgIGxldCBjb25maWcgPSBfLmFzc2lnbihuZXcgTm90aWZpY2F0aW9uQ29uZmlnKGRhdGEpLCBjb25maWdPcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIHRoaXMub3Blbih0aGlzLnF1ZXN0aW9uQ29tcG9uZW50LCBjb25maWcpLmNvbmZpZy5kYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBxdWVzdGlvbih0cmFuc2xhdGlvbklkPzogc3RyaW5nLCB0cmFuc2xhdGlvbj86IGFueSwgcXVlc3Rpb25PcHRpb25zPzogSVF1ZXN0aW9uT3B0aW9ucywgY29uZmlnT3B0aW9ucz86IE5vdGlmaWNhdGlvbkNvbmZpZ09wdGlvbnMpOiBJUXVlc3Rpb24ge1xuICAgICAgICBsZXQgdGV4dCA9IHRoaXMubGFuZ3VhZ2UudHJhbnNsYXRlKHRyYW5zbGF0aW9uSWQsIHRyYW5zbGF0aW9uKTtcbiAgICAgICAgbGV0IGRhdGEgPSBuZXcgUXVlc3Rpb25NYW5hZ2VyKF8uYXNzaWduKHF1ZXN0aW9uT3B0aW9ucywgeyBtb2RlOiBRdWVzdGlvbk1vZGUuUVVFU1RJT04sIHRleHQgfSkpO1xuICAgICAgICBsZXQgY29uZmlnID0gXy5hc3NpZ24obmV3IE5vdGlmaWNhdGlvbkNvbmZpZyhkYXRhKSwgY29uZmlnT3B0aW9ucyk7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW4odGhpcy5xdWVzdGlvbkNvbXBvbmVudCwgY29uZmlnKS5jb25maWcuZGF0YTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXQgZXZlbnRzKCk6IE9ic2VydmFibGU8T2JzZXJ2YWJsZURhdGE8Tm90aWZpY2F0aW9uU2VydmljZUV2ZW50LCBOb3RpZmljYXRpb25Db25maWcgfCBJTm90aWZpY2F0aW9uPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vYnNlcnZlci5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbmZpZ3MoKTogQXJyYXk8Tm90aWZpY2F0aW9uQ29uZmlnPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWdzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2xvc2VkQ29uZmlncygpOiBBcnJheTxOb3RpZmljYXRpb25Db25maWc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nsb3NlZENvbmZpZ3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBub3RpZmljYXRpb25zKCk6IE1hcDxOb3RpZmljYXRpb25Db25maWcsIElOb3RpZmljYXRpb25Db250ZW50PGFueT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vdGlmaWNhdGlvbnM7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25JZCA9IHN0cmluZyB8IE5vdGlmaWNhdGlvbkNvbmZpZyB8IE5vdGlmaWNhdGlvbkNvbmZpZ09wdGlvbnM7XG5cbmV4cG9ydCBlbnVtIE5vdGlmaWNhdGlvblNlcnZpY2VFdmVudCB7XG4gICAgT1BFTkVEID0gJ09QRU5FRCcsXG4gICAgQ0xPU0VEID0gJ0NMT1NFRCcsXG4gICAgQURERUQgPSAnQURERUQnLFxuICAgIFJFTU9WRUQgPSAnUkVNT1ZFRCdcbn1cbiJdfQ==
@@ -1,4 +0,0 @@
1
- import { NotificationImpl } from '../../notification/NotificationImpl';
2
- export class NotificationBaseComponent extends NotificationImpl {
3
- }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpY2F0aW9uQmFzZUNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ub3RpZmljYXRpb24vY29tcG9uZW50L05vdGlmaWNhdGlvbkJhc2VDb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFdkUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGdCQUFnQjtDQUFHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm90aWZpY2F0aW9uSW1wbCB9IGZyb20gJy4uLy4uL25vdGlmaWNhdGlvbi9Ob3RpZmljYXRpb25JbXBsJztcblxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkJhc2VDb21wb25lbnQgZXh0ZW5kcyBOb3RpZmljYXRpb25JbXBsIHt9XG4iXX0=
@@ -1,50 +0,0 @@
1
- import { Component, HostListener } from '@angular/core';
2
- import { INotificationContent } from '../../notification/INotificationContent';
3
- import { ViewUtil } from '../../util/ViewUtil';
4
- import * as i0 from "@angular/core";
5
- export class NotificationQuestionBaseComponent extends INotificationContent {
6
- // --------------------------------------------------------------------------
7
- //
8
- // Protected Methods
9
- //
10
- // --------------------------------------------------------------------------
11
- commitConfigProperties() {
12
- super.commitConfigProperties();
13
- if (this.isInfo) {
14
- ViewUtil.addClass(this.container, 'mouse-active');
15
- }
16
- this.data.closePromise.then(() => {
17
- if (!this.isDestroyed) {
18
- this.remove();
19
- }
20
- });
21
- }
22
- // --------------------------------------------------------------------------
23
- //
24
- // Event Handlers
25
- //
26
- // --------------------------------------------------------------------------
27
- clickHandler() {
28
- if (this.isInfo) {
29
- this.data.closeClickHandler();
30
- }
31
- }
32
- // --------------------------------------------------------------------------
33
- //
34
- // Protected Properties
35
- //
36
- // --------------------------------------------------------------------------
37
- get isInfo() {
38
- return this.data ? this.data.isInfo : false;
39
- }
40
- }
41
- NotificationQuestionBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationQuestionBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
42
- NotificationQuestionBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NotificationQuestionBaseComponent, selector: "ng-component", host: { listeners: { "click": "clickHandler()" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationQuestionBaseComponent, decorators: [{
44
- type: Component,
45
- args: [{ template: '' }]
46
- }], propDecorators: { clickHandler: [{
47
- type: HostListener,
48
- args: ['click']
49
- }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpY2F0aW9uUXVlc3Rpb25CYXNlQ29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25vdGlmaWNhdGlvbi9jb21wb25lbnQvTm90aWZpY2F0aW9uUXVlc3Rpb25CYXNlQ29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHL0MsTUFBTSxPQUFnQixpQ0FBa0MsU0FBUSxvQkFBcUM7SUFDakcsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixxQkFBcUI7SUFDckIsRUFBRTtJQUNGLDZFQUE2RTtJQUVuRSxzQkFBc0I7UUFDNUIsS0FBSyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFFL0IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1NBQ3JEO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ2pCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLDZFQUE2RTtJQUd0RSxZQUFZO1FBQ2YsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0Ysd0JBQXdCO0lBQ3hCLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsSUFBYyxNQUFNO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDOzs4SEExQ2lCLGlDQUFpQztrSEFBakMsaUNBQWlDLCtIQURoQyxFQUFFOzJGQUNILGlDQUFpQztrQkFEdEQsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBNkJoQixZQUFZO3NCQURsQixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU5vdGlmaWNhdGlvbkNvbnRlbnQgfSBmcm9tICcuLi8uLi9ub3RpZmljYXRpb24vSU5vdGlmaWNhdGlvbkNvbnRlbnQnO1xuaW1wb3J0IHsgUXVlc3Rpb25NYW5hZ2VyIH0gZnJvbSAnLi4vLi4vcXVlc3Rpb24vUXVlc3Rpb25NYW5hZ2VyJztcbmltcG9ydCB7IFZpZXdVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC9WaWV3VXRpbCc7XG5cbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOb3RpZmljYXRpb25RdWVzdGlvbkJhc2VDb21wb25lbnQgZXh0ZW5kcyBJTm90aWZpY2F0aW9uQ29udGVudDxRdWVzdGlvbk1hbmFnZXI+IHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBjb21taXRDb25maWdQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5jb21taXRDb25maWdQcm9wZXJ0aWVzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNJbmZvKSB7XG4gICAgICAgICAgICBWaWV3VXRpbC5hZGRDbGFzcyh0aGlzLmNvbnRhaW5lciwgJ21vdXNlLWFjdGl2ZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kYXRhLmNsb3NlUHJvbWlzZS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdEV2ZW50IEhhbmRsZXJzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIHB1YmxpYyBjbGlja0hhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzSW5mbykge1xuICAgICAgICAgICAgdGhpcy5kYXRhLmNsb3NlQ2xpY2tIYW5kbGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcm90ZWN0ZWQgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBnZXQgaXNJbmZvKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhID8gdGhpcy5kYXRhLmlzSW5mbyA6IGZhbHNlO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,61 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { ViewUtil } from '../../../util/ViewUtil';
3
- import { NotificationQuestionBaseComponent } from '../NotificationQuestionBaseComponent';
4
- import * as _ from 'lodash';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@ts-core/frontend";
7
- import * as i2 from "../../NotificationService";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "@angular/material/button";
10
- export class NotificationComponent extends NotificationQuestionBaseComponent {
11
- // --------------------------------------------------------------------------
12
- //
13
- // Constructor
14
- //
15
- // --------------------------------------------------------------------------
16
- constructor(container, language, notifications) {
17
- super(container);
18
- this.language = language;
19
- this.notifications = notifications;
20
- ViewUtil.addClasses(container.element, 'd-block');
21
- ViewUtil.setAttribute(container.element, 'tabindex', '-1');
22
- }
23
- // --------------------------------------------------------------------------
24
- //
25
- // Protected Methods
26
- //
27
- // --------------------------------------------------------------------------
28
- commitConfigProperties() {
29
- super.commitConfigProperties();
30
- if (this.language.isHasTranslation(this.data.options.yesTextId)) {
31
- this.data.yesText = this.language.translate(this.data.options.yesTextId);
32
- }
33
- if (this.language.isHasTranslation(this.data.options.notTextId)) {
34
- this.data.notText = this.language.translate(this.data.options.notTextId);
35
- }
36
- if (this.language.isHasTranslation(this.data.options.checkTextId)) {
37
- this.data.checkText = this.language.translate(this.data.options.checkTextId);
38
- }
39
- if (this.language.isHasTranslation(this.data.options.closeTextId)) {
40
- this.data.closeText = this.language.translate(this.data.options.closeTextId);
41
- }
42
- }
43
- // --------------------------------------------------------------------------
44
- //
45
- // Public Methods
46
- //
47
- // --------------------------------------------------------------------------
48
- remove() {
49
- super.remove();
50
- if (_.isNil(this.notification)) {
51
- this.notifications.remove(this.config);
52
- }
53
- }
54
- }
55
- NotificationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.LanguageService }, { token: i2.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
56
- NotificationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NotificationComponent, selector: "vi-notification", usesInheritance: true, ngImport: i0, template: "<p class=\"text m-4 text-center mouse-inactive text-word-wrap-break-word\" [innerHTML]=\"data?.text\"></p>\n\n<div class=\"text-center border-sm-top p-3\" *ngIf=\"data?.isQuestion\">\n\n <button class=\"mr-3 me-3\" (click)=\"data?.yesClickHandler()\" tabindex=\"-1\" color=\"primary\" mat-stroked-button>\n <span [innerHTML]=\"data?.yesText\"></span>\n </button>\n\n <button (click)=\"data?.notClickHandler()\" tabindex=\"-1\" mat-stroked-button>\n <span [innerHTML]=\"data?.notText\"></span>\n </button>\n\n</div>", styles: [":host{max-width:280px;min-width:200px;box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationComponent, decorators: [{
58
- type: Component,
59
- args: [{ selector: 'vi-notification', template: "<p class=\"text m-4 text-center mouse-inactive text-word-wrap-break-word\" [innerHTML]=\"data?.text\"></p>\n\n<div class=\"text-center border-sm-top p-3\" *ngIf=\"data?.isQuestion\">\n\n <button class=\"mr-3 me-3\" (click)=\"data?.yesClickHandler()\" tabindex=\"-1\" color=\"primary\" mat-stroked-button>\n <span [innerHTML]=\"data?.yesText\"></span>\n </button>\n\n <button (click)=\"data?.notClickHandler()\" tabindex=\"-1\" mat-stroked-button>\n <span [innerHTML]=\"data?.notText\"></span>\n </button>\n\n</div>", styles: [":host{max-width:280px;min-width:200px;box-sizing:border-box}\n"] }]
60
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.LanguageService }, { type: i2.NotificationService }]; } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9ub3RpZmljYXRpb24vY29tcG9uZW50L25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL25vdGlmaWNhdGlvbi9jb21wb25lbnQvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUc1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7Ozs7OztBQU81QixNQUFNLE9BQU8scUJBQXNCLFNBQVEsaUNBQWlDO0lBQ3hFLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsZUFBZTtJQUNmLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBWSxTQUEyQixFQUFVLFFBQXlCLEVBQVUsYUFBa0M7UUFDbEgsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRDRCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBRWxILFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNsRCxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLHFCQUFxQjtJQUNyQixFQUFFO0lBQ0YsNkVBQTZFO0lBRW5FLHNCQUFzQjtRQUM1QixLQUFLLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUUvQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDNUU7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDNUU7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDaEY7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDaEY7SUFDTCxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLDZFQUE2RTtJQUV0RSxNQUFNO1FBQ1QsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUM7SUFDTCxDQUFDOztrSEEvQ1EscUJBQXFCO3NHQUFyQixxQkFBcUIsOEVDWmxDLDhoQkFZTTsyRkRBTyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAdHMtY29yZS9mcm9udGVuZCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vTm90aWZpY2F0aW9uU2VydmljZSc7XG5pbXBvcnQgeyBWaWV3VXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvVmlld1V0aWwnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uUXVlc3Rpb25CYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vTm90aWZpY2F0aW9uUXVlc3Rpb25CYXNlQ29tcG9uZW50JztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd2aS1ub3RpZmljYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnbm90aWZpY2F0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uQ29tcG9uZW50IGV4dGVuZHMgTm90aWZpY2F0aW9uUXVlc3Rpb25CYXNlQ29tcG9uZW50IHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBsYW5ndWFnZTogTGFuZ3VhZ2VTZXJ2aWNlLCBwcml2YXRlIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoY29udGFpbmVyKTtcbiAgICAgICAgVmlld1V0aWwuYWRkQ2xhc3Nlcyhjb250YWluZXIuZWxlbWVudCwgJ2QtYmxvY2snKTtcbiAgICAgICAgVmlld1V0aWwuc2V0QXR0cmlidXRlKGNvbnRhaW5lci5lbGVtZW50LCAndGFiaW5kZXgnLCAnLTEnKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBjb21taXRDb25maWdQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5jb21taXRDb25maWdQcm9wZXJ0aWVzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMubGFuZ3VhZ2UuaXNIYXNUcmFuc2xhdGlvbih0aGlzLmRhdGEub3B0aW9ucy55ZXNUZXh0SWQpKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEueWVzVGV4dCA9IHRoaXMubGFuZ3VhZ2UudHJhbnNsYXRlKHRoaXMuZGF0YS5vcHRpb25zLnllc1RleHRJZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubGFuZ3VhZ2UuaXNIYXNUcmFuc2xhdGlvbih0aGlzLmRhdGEub3B0aW9ucy5ub3RUZXh0SWQpKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEubm90VGV4dCA9IHRoaXMubGFuZ3VhZ2UudHJhbnNsYXRlKHRoaXMuZGF0YS5vcHRpb25zLm5vdFRleHRJZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubGFuZ3VhZ2UuaXNIYXNUcmFuc2xhdGlvbih0aGlzLmRhdGEub3B0aW9ucy5jaGVja1RleHRJZCkpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YS5jaGVja1RleHQgPSB0aGlzLmxhbmd1YWdlLnRyYW5zbGF0ZSh0aGlzLmRhdGEub3B0aW9ucy5jaGVja1RleHRJZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubGFuZ3VhZ2UuaXNIYXNUcmFuc2xhdGlvbih0aGlzLmRhdGEub3B0aW9ucy5jbG9zZVRleHRJZCkpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YS5jbG9zZVRleHQgPSB0aGlzLmxhbmd1YWdlLnRyYW5zbGF0ZSh0aGlzLmRhdGEub3B0aW9ucy5jbG9zZVRleHRJZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyByZW1vdmUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnJlbW92ZSgpO1xuICAgICAgICBpZiAoXy5pc05pbCh0aGlzLm5vdGlmaWNhdGlvbikpIHtcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9ucy5yZW1vdmUodGhpcy5jb25maWcpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPHAgY2xhc3M9XCJ0ZXh0IG0tNCB0ZXh0LWNlbnRlciBtb3VzZS1pbmFjdGl2ZSB0ZXh0LXdvcmQtd3JhcC1icmVhay13b3JkXCIgW2lubmVySFRNTF09XCJkYXRhPy50ZXh0XCI+PC9wPlxuXG48ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgYm9yZGVyLXNtLXRvcCBwLTNcIiAqbmdJZj1cImRhdGE/LmlzUXVlc3Rpb25cIj5cblxuICAgIDxidXR0b24gY2xhc3M9XCJtci0zIG1lLTNcIiAoY2xpY2spPVwiZGF0YT8ueWVzQ2xpY2tIYW5kbGVyKClcIiB0YWJpbmRleD1cIi0xXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0LXN0cm9rZWQtYnV0dG9uPlxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImRhdGE/Lnllc1RleHRcIj48L3NwYW4+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uIChjbGljayk9XCJkYXRhPy5ub3RDbGlja0hhbmRsZXIoKVwiIHRhYmluZGV4PVwiLTFcIiBtYXQtc3Ryb2tlZC1idXR0b24+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiZGF0YT8ubm90VGV4dFwiPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cblxuPC9kaXY+Il19
@@ -1,116 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { DestroyableContainer } from '@ts-core/common';
3
- import { ObservableData } from '@ts-core/common';
4
- import * as _ from 'lodash';
5
- import { merge, Subject } from 'rxjs';
6
- import { filter, map, takeUntil } from 'rxjs';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/cdk/layout";
9
- export class BootstrapBreakpointService extends DestroyableContainer {
10
- // --------------------------------------------------------------------------
11
- //
12
- // Constructor
13
- //
14
- // --------------------------------------------------------------------------
15
- constructor(service) {
16
- super();
17
- this.service = service;
18
- this.observer = new Subject();
19
- this.initialize();
20
- }
21
- // --------------------------------------------------------------------------
22
- //
23
- // Protected Methods
24
- //
25
- // --------------------------------------------------------------------------
26
- initialize(sm = BootstrapBreakpointService.DEFAULT_SM, md = BootstrapBreakpointService.DEFAULT_MD, lg = BootstrapBreakpointService.DEFAULT_LG, xl = BootstrapBreakpointService.DEFAULT_XL, xxl = BootstrapBreakpointService.DEFAULT_XXL) {
27
- this.items = [
28
- { name: BootstrapBreakpoint.XXL, value: `(min-width: ${xxl}px)` },
29
- { name: BootstrapBreakpoint.XL, value: `(min-width: ${xl}px)` },
30
- { name: BootstrapBreakpoint.LG, value: `(min-width: ${lg}px)` },
31
- { name: BootstrapBreakpoint.MD, value: `(min-width: ${md}px)` },
32
- { name: BootstrapBreakpoint.SM, value: `(min-width: 0px)` }
33
- ];
34
- merge(...this.items.map(item => this.service.observe(item.value)))
35
- .pipe(takeUntil(this.destroyed))
36
- .subscribe(() => this.setBreakpoint(this.getBreakpoint()));
37
- }
38
- getBreakpoint() {
39
- for (let item of this.items) {
40
- if (this.service.isMatched(item.value)) {
41
- return item.name;
42
- }
43
- }
44
- return null;
45
- }
46
- setBreakpoint(value) {
47
- if (value === this._breakpoint) {
48
- return;
49
- }
50
- this._breakpoint = value;
51
- this.observer.next(new ObservableData(BootstrapBreakpointServiceEvent.CHANGED, this.breakpoint));
52
- }
53
- // --------------------------------------------------------------------------
54
- //
55
- // Public Methods
56
- //
57
- // --------------------------------------------------------------------------
58
- isEqual(item) {
59
- return item === this.breakpoint;
60
- }
61
- isUp(item) {
62
- return _.findIndex(this.items, { name: this.breakpoint }) < _.findIndex(this.items, { name: item });
63
- }
64
- isUpOrEqual(item) {
65
- return this.isEqual(item) || this.isUp(item);
66
- }
67
- isDown(item) {
68
- return _.findIndex(this.items, { name: this.breakpoint }) > _.findIndex(this.items, { name: item });
69
- }
70
- isDownOrEqual(item) {
71
- return this.isEqual(item) || this.isDown(item);
72
- }
73
- // --------------------------------------------------------------------------
74
- //
75
- // Public Properties
76
- //
77
- // --------------------------------------------------------------------------
78
- get breakpoint() {
79
- return this._breakpoint;
80
- }
81
- get events() {
82
- return this.observer.asObservable();
83
- }
84
- get changed() {
85
- return this.events.pipe(filter(item => item.type === BootstrapBreakpointServiceEvent.CHANGED), map(item => item.data));
86
- }
87
- }
88
- // --------------------------------------------------------------------------
89
- //
90
- // Constants
91
- //
92
- // --------------------------------------------------------------------------
93
- BootstrapBreakpointService.DEFAULT_SM = 576;
94
- BootstrapBreakpointService.DEFAULT_MD = 768;
95
- BootstrapBreakpointService.DEFAULT_LG = 992;
96
- BootstrapBreakpointService.DEFAULT_XL = 1200;
97
- BootstrapBreakpointService.DEFAULT_XXL = 1400;
98
- BootstrapBreakpointService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BootstrapBreakpointService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
99
- BootstrapBreakpointService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BootstrapBreakpointService, providedIn: 'root' });
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BootstrapBreakpointService, decorators: [{
101
- type: Injectable,
102
- args: [{ providedIn: 'root' }]
103
- }], ctorParameters: function () { return [{ type: i1.BreakpointObserver }]; } });
104
- export var BootstrapBreakpointServiceEvent;
105
- (function (BootstrapBreakpointServiceEvent) {
106
- BootstrapBreakpointServiceEvent["CHANGED"] = "CHANGED";
107
- })(BootstrapBreakpointServiceEvent || (BootstrapBreakpointServiceEvent = {}));
108
- export var BootstrapBreakpoint;
109
- (function (BootstrapBreakpoint) {
110
- BootstrapBreakpoint["SM"] = "sm";
111
- BootstrapBreakpoint["MD"] = "md";
112
- BootstrapBreakpoint["LG"] = "lg";
113
- BootstrapBreakpoint["XL"] = "xl";
114
- BootstrapBreakpoint["XXL"] = "xxl";
115
- })(BootstrapBreakpoint || (BootstrapBreakpoint = {}));
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vdHN0cmFwQnJlYWtwb2ludFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZS9Cb290c3RyYXBCcmVha3BvaW50U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsS0FBSyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUc5QyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsb0JBQW9CO0lBa0JoRSw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLFlBQXNCLE9BQTJCO1FBQzdDLEtBQUssRUFBRSxDQUFDO1FBRFUsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFFN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixxQkFBcUI7SUFDckIsRUFBRTtJQUNGLDZFQUE2RTtJQUVuRSxVQUFVLENBQ2hCLEtBQWEsMEJBQTBCLENBQUMsVUFBVSxFQUNsRCxLQUFhLDBCQUEwQixDQUFDLFVBQVUsRUFDbEQsS0FBYSwwQkFBMEIsQ0FBQyxVQUFVLEVBQ2xELEtBQWEsMEJBQTBCLENBQUMsVUFBVSxFQUNsRCxNQUFjLDBCQUEwQixDQUFDLFdBQVc7UUFFcEQsSUFBSSxD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UyxDQUFBO0lBQ1QsZ0NBQVMsQ0FBQTtJQUNULGdDQUFTLENBQUE7SUFDVCxrQ0FBVyxDQUFBO0FBQ2YsQ0FBQyxFQU5XLG1CQUFtQixLQUFuQixtQkFBbUIsUUFNOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlc3Ryb3lhYmxlQ29udGFpbmVyIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGVEYXRhIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcblxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgbWVyZ2UsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBCb290c3RyYXBCcmVha3BvaW50U2VydmljZSBleHRlbmRzIERlc3Ryb3lhYmxlQ29udGFpbmVyIHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdGFudHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgc3RhdGljIERFRkFVTFRfU00gPSA1NzY7XG4gICAgcHVibGljIHN0YXRpYyBERUZBVUxUX01EID0gNzY4O1xuICAgIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9MRyA9IDk5MjtcbiAgICBwdWJsaWMgc3RhdGljIERFRkFVTFRfWEwgPSAxMjAwO1xuICAgIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9YWEwgPSAxNDAwO1xuXG4gICAgcHJvdGVjdGVkIF9icmVha3BvaW50OiBCb290c3RyYXBCcmVha3BvaW50O1xuICAgIHByb3RlY3RlZCBpdGVtczogQXJyYXk8SUJyZWFrcG9pbnRJdGVtPjtcblxuICAgIHByb3RlY3RlZCBvYnNlcnZlcjogU3ViamVjdDxPYnNlcnZhYmxlRGF0YTxCb290c3RyYXBCcmVha3BvaW50U2VydmljZUV2ZW50LCBCb290c3RyYXBCcmVha3BvaW50Pj47XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzZXJ2aWNlOiBCcmVha3BvaW50T2JzZXJ2ZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBTdWJqZWN0KCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3RlY3RlZCBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemUoXG4gICAgICAgIHNtOiBudW1iZXIgPSBCb290c3RyYXBCcmVha3BvaW50U2VydmljZS5ERUZBVUxUX1NNLFxuICAgICAgICBtZDogbnVtYmVyID0gQm9vdHN0cmFwQnJlYWtwb2ludFNlcnZpY2UuREVGQVVMVF9NRCxcbiAgICAgICAgbGc6IG51bWJlciA9IEJvb3RzdHJhcEJyZWFrcG9pbnRTZXJ2aWNlLkRFRkFVTFRfTEcsXG4gICAgICAgIHhsOiBudW1iZXIgPSBCb290c3RyYXBCcmVha3BvaW50U2VydmljZS5ERUZBVUxUX1hMLFxuICAgICAgICB4eGw6IG51bWJlciA9IEJvb3RzdHJhcEJyZWFrcG9pbnRTZXJ2aWNlLkRFRkFVTFRfWFhMXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXG4gICAgICAgICAgICB7IG5hbWU6IEJvb3RzdHJhcEJyZWFrcG9pbnQuWFhMLCB2YWx1ZTogYChtaW4td2lkdGg6ICR7eHhsfXB4KWAgfSxcbiAgICAgICAgICAgIHsgbmFtZTogQm9vdHN0cmFwQnJlYWtwb2ludC5YTCwgdmFsdWU6IGAobWluLXdpZHRoOiAke3hsfXB4KWAgfSxcbiAgICAgICAgICAgIHsgbmFtZTogQm9vdHN0cmFwQnJlYWtwb2ludC5MRywgdmFsdWU6IGAobWluLXdpZHRoOiAke2xnfXB4KWAgfSxcbiAgICAgICAgICAgIHsgbmFtZTogQm9vdHN0cmFwQnJlYWtwb2ludC5NRCwgdmFsdWU6IGAobWluLXdpZHRoOiAke21kfXB4KWAgfSxcbiAgICAgICAgICAgIHsgbmFtZTogQm9vdHN0cmFwQnJlYWtwb2ludC5TTSwgdmFsdWU6IGAobWluLXdpZHRoOiAwcHgpYCB9XG4gICAgICAgIF07XG5cbiAgICAgICAgbWVyZ2UoLi4udGhpcy5pdGVtcy5tYXAoaXRlbSA9PiB0aGlzLnNlcnZpY2Uub2JzZXJ2ZShpdGVtLnZhbHVlKSkpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNldEJyZWFrcG9pbnQodGhpcy5nZXRCcmVha3BvaW50KCkpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0QnJlYWtwb2ludCgpOiBCb290c3RyYXBCcmVha3BvaW50IHtcbiAgICAgICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLml0ZW1zKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmlzTWF0Y2hlZChpdGVtLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLm5hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldEJyZWFrcG9pbnQodmFsdWU6IEJvb3RzdHJhcEJyZWFrcG9pbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9icmVha3BvaW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYnJlYWtwb2ludCA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKEJvb3RzdHJhcEJyZWFrcG9pbnRTZXJ2aWNlRXZlbnQuQ0hBTkdFRCwgdGhpcy5icmVha3BvaW50KSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgaXNFcXVhbChpdGVtOiBCb290c3RyYXBCcmVha3BvaW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpdGVtID09PSB0aGlzLmJyZWFrcG9pbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGlzVXAoaXRlbTogQm9vdHN0cmFwQnJlYWtwb2ludCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gXy5maW5kSW5kZXgodGhpcy5pdGVtcywgeyBuYW1lOiB0aGlzLmJyZWFrcG9pbnQgfSkgPCBfLmZpbmRJbmRleCh0aGlzLml0ZW1zLCB7IG5hbWU6IGl0ZW0gfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzVXBPckVxdWFsKGl0ZW06IEJvb3RzdHJhcEJyZWFrcG9pbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFcXVhbChpdGVtKSB8fCB0aGlzLmlzVXAoaXRlbSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRG93bihpdGVtOiBCb290c3RyYXBCcmVha3BvaW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBfLmZpbmRJbmRleCh0aGlzLml0ZW1zLCB7IG5hbWU6IHRoaXMuYnJlYWtwb2ludCB9KSA+IF8uZmluZEluZGV4KHRoaXMuaXRlbXMsIHsgbmFtZTogaXRlbSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNEb3duT3JFcXVhbChpdGVtOiBCb290c3RyYXBCcmVha3BvaW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRXF1YWwoaXRlbSkgfHwgdGhpcy5pc0Rvd24oaXRlbSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0IGJyZWFrcG9pbnQoKTogQm9vdHN0cmFwQnJlYWtwb2ludCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9icmVha3BvaW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZXZlbnRzKCk6IE9ic2VydmFibGU8T2JzZXJ2YWJsZURhdGE8Qm9vdHN0cmFwQnJlYWtwb2ludFNlcnZpY2VFdmVudCwgQm9vdHN0cmFwQnJlYWtwb2ludD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JzZXJ2ZXIuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjaGFuZ2VkKCk6IE9ic2VydmFibGU8Qm9vdHN0cmFwQnJlYWtwb2ludD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ldmVudHMucGlwZShcbiAgICAgICAgICAgIGZpbHRlcihpdGVtID0+IGl0ZW0udHlwZSA9PT0gQm9vdHN0cmFwQnJlYWtwb2ludFNlcnZpY2VFdmVudC5DSEFOR0VEKSxcbiAgICAgICAgICAgIG1hcChpdGVtID0+IGl0ZW0uZGF0YSlcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmludGVyZmFjZSBJQnJlYWtwb2ludEl0ZW0ge1xuICAgIG5hbWU6IEJvb3RzdHJhcEJyZWFrcG9pbnQ7XG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gQm9vdHN0cmFwQnJlYWtwb2ludFNlcnZpY2VFdmVudCB7XG4gICAgQ0hBTkdFRCA9ICdDSEFOR0VEJ1xufVxuXG5leHBvcnQgZW51bSBCb290c3RyYXBCcmVha3BvaW50IHtcbiAgICBTTSA9ICdzbScsXG4gICAgTUQgPSAnbWQnLFxuICAgIExHID0gJ2xnJyxcbiAgICBYTCA9ICd4bCcsXG4gICAgWFhMID0gJ3h4bCdcbn1cbiJdfQ==
@@ -1,33 +0,0 @@
1
- import { Destroyable } from '@ts-core/common';
2
- export class IWindow extends Destroyable {
3
- constructor() {
4
- // --------------------------------------------------------------------------
5
- //
6
- // Public Methods
7
- //
8
- // --------------------------------------------------------------------------
9
- super(...arguments);
10
- // --------------------------------------------------------------------------
11
- //
12
- // Public Properties
13
- //
14
- // --------------------------------------------------------------------------
15
- this.isOnTop = false;
16
- this.isDisabled = false;
17
- this.isMinimized = false;
18
- }
19
- }
20
- export var WindowEvent;
21
- (function (WindowEvent) {
22
- WindowEvent["OPENED"] = "OPENED";
23
- WindowEvent["CLOSED"] = "CLOSED";
24
- WindowEvent["CONTENT_READY"] = "CONTENT_READY";
25
- WindowEvent["MOVED"] = "MOVED";
26
- WindowEvent["RESIZED"] = "RESIZED";
27
- WindowEvent["DISABLED_CHANGED"] = "DISABLED_CHANGED";
28
- WindowEvent["MINIMIZED_CHANGED"] = "MINIMIZED_CHANGED";
29
- WindowEvent["IS_ON_TOP_CHANGED"] = "IS_ON_TOP_CHANGED";
30
- WindowEvent["EXPAND"] = "EXPAND";
31
- WindowEvent["SET_ON_TOP"] = "SET_ON_TOP";
32
- })(WindowEvent || (WindowEvent = {}));
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVdpbmRvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93aW5kb3cvSVdpbmRvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJOUMsTUFBTSxPQUFnQixPQUFpQixTQUFRLFdBQVc7SUFBMUQ7UUFDSSw2RUFBNkU7UUFDN0UsRUFBRTtRQUNGLGtCQUFrQjtRQUNsQixFQUFFO1FBQ0YsNkVBQTZFOztRQXNCN0UsNkVBQTZFO1FBQzdFLEVBQUU7UUFDRixxQkFBcUI7UUFDckIsRUFBRTtRQUNGLDZFQUE2RTtRQUV0RSxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7SUFTeEMsQ0FBQztDQUFBO0FBRUQsTUFBTSxDQUFOLElBQVksV0FhWDtBQWJELFdBQVksV0FBVztJQUNuQixnQ0FBaUIsQ0FBQTtJQUNqQixnQ0FBaUIsQ0FBQTtJQUNqQiw4Q0FBK0IsQ0FBQTtJQUUvQiw4QkFBZSxDQUFBO0lBQ2Ysa0NBQW1CLENBQUE7SUFDbkIsb0RBQXFDLENBQUE7SUFDckMsc0RBQXVDLENBQUE7SUFDdkMsc0RBQXVDLENBQUE7SUFFdkMsZ0NBQWlCLENBQUE7SUFDakIsd0NBQXlCLENBQUE7QUFDN0IsQ0FBQyxFQWJXLFdBQVcsS0FBWCxXQUFXLFFBYXRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGVzdHJveWFibGUgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgSVdpbmRvd0NvbnRlbnQgfSBmcm9tICcuL0lXaW5kb3dDb250ZW50JztcbmltcG9ydCB7IFdpbmRvd0NvbmZpZyB9IGZyb20gJy4vV2luZG93Q29uZmlnJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIElXaW5kb3c8VCA9IGFueT4gZXh0ZW5kcyBEZXN0cm95YWJsZSB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGFic3RyYWN0IGNsb3NlKCk6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCBibGluaygpOiB2b2lkO1xuICAgIGFic3RyYWN0IHNoYWtlKCk6IHZvaWQ7XG4gICAgYWJzdHJhY3Qgc2V0T25Ub3AoKTogdm9pZDtcblxuICAgIGFic3RyYWN0IGdldFdpZHRoKCk6IG51bWJlcjtcbiAgICBhYnN0cmFjdCBnZXRIZWlnaHQoKTogbnVtYmVyO1xuICAgIGFic3RyYWN0IHNldFdpZHRoKHZhbHVlOiBudW1iZXIpOiB2b2lkO1xuICAgIGFic3RyYWN0IHNldEhlaWdodCh2YWx1ZTogbnVtYmVyKTogdm9pZDtcbiAgICBhYnN0cmFjdCBzZXRTaXplKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogdm9pZDtcblxuICAgIGFic3RyYWN0IGdldFgoKTogbnVtYmVyO1xuICAgIGFic3RyYWN0IGdldFkoKTogbnVtYmVyO1xuICAgIGFic3RyYWN0IHNldFgodmFsdWU6IG51bWJlcik6IHZvaWQ7XG4gICAgYWJzdHJhY3Qgc2V0WSh2YWx1ZTogbnVtYmVyKTogdm9pZDtcbiAgICBhYnN0cmFjdCBtb3ZlKHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZDtcblxuICAgIGFic3RyYWN0IGVtaXQoZXZlbnQ6IHN0cmluZyk6IHZvaWQ7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGlzT25Ub3A6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc01pbmltaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgZXZlbnRzOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgcmVhZG9ubHkgY29udGFpbmVyOiBIVE1MRWxlbWVudDtcbiAgICByZWFkb25seSB3cmFwcGVyOiBIVE1MRWxlbWVudDtcbiAgICByZWFkb25seSBiYWNrZHJvcDogSFRNTEVsZW1lbnQ7XG5cbiAgICByZWFkb25seSBjb25maWc6IFdpbmRvd0NvbmZpZzxUPjtcbiAgICByZWFkb25seSBjb250ZW50OiBJV2luZG93Q29udGVudDxUPjtcbn1cblxuZXhwb3J0IGVudW0gV2luZG93RXZlbnQge1xuICAgIE9QRU5FRCA9ICdPUEVORUQnLFxuICAgIENMT1NFRCA9ICdDTE9TRUQnLFxuICAgIENPTlRFTlRfUkVBRFkgPSAnQ09OVEVOVF9SRUFEWScsXG5cbiAgICBNT1ZFRCA9ICdNT1ZFRCcsXG4gICAgUkVTSVpFRCA9ICdSRVNJWkVEJyxcbiAgICBESVNBQkxFRF9DSEFOR0VEID0gJ0RJU0FCTEVEX0NIQU5HRUQnLFxuICAgIE1JTklNSVpFRF9DSEFOR0VEID0gJ01JTklNSVpFRF9DSEFOR0VEJyxcbiAgICBJU19PTl9UT1BfQ0hBTkdFRCA9ICdJU19PTl9UT1BfQ0hBTkdFRCcsXG5cbiAgICBFWFBBTkQgPSAnRVhQQU5EJyxcbiAgICBTRVRfT05fVE9QID0gJ1NFVF9PTl9UT1AnXG59XG4iXX0=