@kms-ngx-ui/presentational 16.2.0 → 16.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/esm2022/lib/directives/directives.module.mjs +7 -12
  2. package/esm2022/lib/directives/mousewheel.directive.mjs +4 -4
  3. package/esm2022/lib/directives/sum-of-height.directive.mjs +4 -4
  4. package/esm2022/lib/directives/swipe.directive.mjs +4 -4
  5. package/esm2022/lib/directives/tooltip.directive.mjs +4 -4
  6. package/esm2022/lib/kms-ngx-ui-presentational.component.mjs +4 -4
  7. package/esm2022/lib/kms-ngx-ui-presentational.module.mjs +16 -20
  8. package/esm2022/lib/kms-ngx-ui-presentational.service.mjs +4 -4
  9. package/esm2022/lib/parent-components/actions.component.mjs +4 -4
  10. package/esm2022/lib/parent-components/form-control.component.mjs +5 -5
  11. package/esm2022/lib/parent-components/form.component.mjs +8 -14
  12. package/esm2022/lib/pipes/custom-pipes.module.mjs +5 -5
  13. package/esm2022/lib/pipes/decode-uri.pipe.mjs +4 -4
  14. package/esm2022/lib/pipes/encode-uri.pipe.mjs +4 -4
  15. package/esm2022/lib/pipes/integer-currency.pipe.mjs +4 -4
  16. package/esm2022/lib/pipes/safe-html.pipe.mjs +4 -4
  17. package/esm2022/lib/pipes/safe-resource-url.pipe.mjs +4 -4
  18. package/esm2022/lib/pipes/safe-style.pipe.mjs +4 -4
  19. package/esm2022/lib/pipes/safe-url.pipe.mjs +4 -4
  20. package/esm2022/lib/pipes/to-number.pipe.mjs +4 -4
  21. package/esm2022/lib/pipes/trim.pipe.mjs +4 -4
  22. package/esm2022/lib/pipes/typeof.pipe.mjs +4 -4
  23. package/esm2022/lib/services/viewport.service.mjs +75 -214
  24. package/esm2022/lib/ui/back-to-top/back-to-top.component.mjs +4 -4
  25. package/esm2022/lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component.mjs +5 -5
  26. package/esm2022/lib/ui/checkbox/checkbox.component.mjs +6 -6
  27. package/esm2022/lib/ui/color-input/color-input.component.mjs +7 -7
  28. package/esm2022/lib/ui/dropdown-from-data/dropdown-from-data.component.mjs +9 -14
  29. package/esm2022/lib/ui/enum-radiogroup/enum-radiogroup.component.mjs +6 -6
  30. package/esm2022/lib/ui/file-input/file-input.component.mjs +12 -12
  31. package/esm2022/lib/ui/flyout/flyout.component.mjs +7 -8
  32. package/esm2022/lib/ui/generic-dialog/generic-dialog.component.mjs +6 -5
  33. package/esm2022/lib/ui/icon/icon.component.mjs +5 -8
  34. package/esm2022/lib/ui/icon/iconSize.enum.mjs +1 -12
  35. package/esm2022/lib/ui/image-slider/image-slider.component.mjs +14 -14
  36. package/esm2022/lib/ui/kms-accordion-item/kms-accordion-item.component.mjs +11 -11
  37. package/esm2022/lib/ui/loader/loader.component.mjs +5 -5
  38. package/esm2022/lib/ui/map/map.component.mjs +5 -5
  39. package/esm2022/lib/ui/radiobutton/radiobutton.component.mjs +7 -11
  40. package/esm2022/lib/ui/salutation-dropdown/salutation-dropdown.component.mjs +8 -8
  41. package/esm2022/lib/ui/salutation-radiogroup/salutation-radiogroup.component.mjs +6 -6
  42. package/esm2022/lib/ui/time-input/time-input.component.mjs +4 -4
  43. package/esm2022/lib/ui/tooltip/tooltip.component.mjs +4 -4
  44. package/esm2022/lib/ui/tooltip-icon/tooltip-icon.component.mjs +8 -9
  45. package/esm2022/lib/ui/yes-no-radiogroup/yes-no-radiogroup.component.mjs +6 -6
  46. package/esm2022/public-api.mjs +1 -2
  47. package/fesm2022/kms-ngx-ui-presentational.mjs +344 -536
  48. package/fesm2022/kms-ngx-ui-presentational.mjs.map +1 -1
  49. package/lib/directives/directives.module.d.ts +2 -4
  50. package/lib/kms-ngx-ui-presentational.module.d.ts +10 -10
  51. package/lib/services/viewport.service.d.ts +11 -86
  52. package/lib/ui/dropdown-from-data/dropdown-from-data.component.d.ts +2 -4
  53. package/lib/ui/file-input/file-input.component.d.ts +2 -2
  54. package/lib/ui/icon/icon.component.d.ts +1 -7
  55. package/lib/ui/icon/iconSize.enum.d.ts +0 -10
  56. package/lib/ui/image-slider/image-slider.component.d.ts +2 -2
  57. package/lib/ui/kms-accordion-item/kms-accordion-item.component.d.ts +2 -2
  58. package/lib/ui/radiobutton/radiobutton.component.d.ts +1 -2
  59. package/lib/ui/tooltip-icon/tooltip-icon.component.d.ts +2 -2
  60. package/package.json +8 -8
  61. package/public-api.d.ts +0 -1
  62. package/src/lib/ui/back-to-top/back-to-top.component.scss +3 -2
  63. package/src/lib/ui/icon/icon.component.scss +36 -2
  64. package/src/lib/ui/image-slider/image-slider.component.scss +202 -209
  65. package/src/styles/styles.scss +0 -1
  66. package/esm2022/lib/directives/size.directive.mjs +0 -21
  67. package/lib/directives/size.directive.d.ts +0 -10
  68. package/src/styles/animations.scss +0 -47
@@ -1,167 +1,94 @@
1
1
  /**
2
2
  * @copyright KMS GmbH
3
3
  */
4
- import { DOCUMENT, isPlatformBrowser } from '@angular/common';
4
+ import { isPlatformBrowser } from '@angular/common';
5
5
  import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
6
6
  import { Subject } from 'rxjs';
7
7
  import * as i0 from "@angular/core";
8
- export class WindowDimensions {
9
- constructor(data) {
10
- Object.assign(this, data);
11
- }
12
- }
13
- export class SimpleBreakpoint {
14
- constructor(data) {
15
- Object.assign(this, data);
16
- }
17
- }
18
- export class Breakpoint {
19
- constructor(data) {
20
- Object.assign(this, data);
21
- }
22
- }
23
8
  /**
24
9
  * Service to get viewport
25
10
  */
26
11
  export class ViewportService {
27
- constructor(platformId, document) {
12
+ constructor(platformId) {
28
13
  this.platformId = platformId;
29
- this.document = document;
30
- this.simpleBreakpoints = [
31
- { Number: 0, Name: 'mobile', MaximumPixels: 768 },
32
- { Number: 1, Name: 'tablet', MaximumPixels: 1024 },
33
- { Number: 2, Name: 'desktop', MaximumPixels: 1600 },
34
- { Number: 3, Name: 'high', MaximumPixels: 2500 },
35
- ];
36
- this.breakpoints = [
14
+ this.viewports = [
37
15
  {
38
- Number: 0,
39
- Name: 'xs',
40
- Low: 360,
41
- High: 990,
16
+ name: 'xs',
17
+ low: 420,
18
+ high: 990,
42
19
  },
43
20
  {
44
- Number: 1,
45
- Name: 's',
46
- Low: 991,
47
- High: 1024,
21
+ name: 's',
22
+ low: 991,
23
+ high: 1024,
48
24
  },
49
25
  {
50
- Number: 2,
51
- Name: 'm',
52
- Low: 1025,
53
- High: 1200,
26
+ name: 'm',
27
+ low: 1025,
28
+ high: 1200,
54
29
  },
55
30
  {
56
- Number: 3,
57
- Name: 'l',
58
- Low: 1201,
59
- High: 1400,
31
+ name: 'l',
32
+ low: 12001,
33
+ high: 1400,
60
34
  },
61
35
  {
62
- Number: 4,
63
- Name: 'xl',
64
- Low: 1401,
65
- High: 1600,
36
+ name: 'xl',
37
+ low: 1401,
38
+ high: 1600,
66
39
  },
67
40
  {
68
- Number: 5,
69
- Name: 'xxl',
70
- Low: 1601,
71
- High: 1920,
41
+ name: 'xxl',
42
+ low: 1601,
43
+ high: 1920,
72
44
  },
73
45
  {
74
- Number: 6,
75
- Name: 'xxxl',
76
- Low: 1921,
77
- High: 99999,
46
+ name: 'xxxl',
47
+ low: 1921,
48
+ high: 99999,
78
49
  },
79
50
  ];
80
51
  this.viewportChangedSubscriber = new Subject();
81
52
  this.viewportResizedSubscriber = new Subject();
82
- this.isBrowser = false;
83
53
  if (isPlatformBrowser(this.platformId)) {
84
- window.addEventListener('resize', this.documentSizeChanged.bind(this), {
85
- passive: true,
86
- });
87
- this.isBrowser = true;
54
+ window.addEventListener('resize', this.documentSizeChanged.bind(this), { passive: true });
88
55
  }
89
56
  }
90
57
  /**
91
- * Get document height
58
+ * Get window height
92
59
  */
93
60
  getDocumentHeight() {
94
- return this.isBrowser ? document.body.clientHeight : 1200;
61
+ return isPlatformBrowser(this.platformId) ? document.body.clientHeight : 1200;
95
62
  }
96
63
  /**
97
- * Get document width
64
+ * Get window width
98
65
  */
99
66
  getDocumentWidth() {
100
- return this.isBrowser ? document.body.clientWidth : 1200;
67
+ return isPlatformBrowser(this.platformId) ? document.body.clientWidth : 1200;
101
68
  }
102
69
  /**
103
70
  * Get window height
104
71
  */
105
72
  getWindowHeight() {
106
- return this.isBrowser ? window.innerHeight : 1200;
73
+ return isPlatformBrowser(this.platformId) ? window.innerHeight : 1200;
107
74
  }
108
75
  /**
109
76
  * Get window width
110
77
  */
111
78
  getWindowWidth() {
112
- return this.isBrowser ? window.innerWidth : 1200;
79
+ return isPlatformBrowser(this.platformId) ? window.innerWidth : 1200;
113
80
  }
114
81
  /**
115
82
  * Returns the current viewport MQ as string
116
83
  * @returns string
117
84
  */
118
85
  getCurrentViewPort() {
119
- const currentWidth = this.isBrowser
120
- ? document.body.clientWidth
121
- : 1200;
122
- this.currentViewport = this.convertWidthToMediaQuery(currentWidth).Name;
86
+ if (!this.currentViewport) {
87
+ const currentWidth = isPlatformBrowser(this.platformId) ? document.body.clientWidth : 1200;
88
+ this.currentViewport = this.convertWidthToMediaQuery(currentWidth);
89
+ }
123
90
  return this.currentViewport;
124
91
  }
125
- /**
126
- * Returns the current viewport MQ as object with all informations
127
- * @returns string
128
- */
129
- getCurrentViewPortObject() {
130
- const currentWidth = this.isBrowser
131
- ? document.body.clientWidth
132
- : 1200;
133
- this.currentViewportObject = this.convertWidthToMediaQuery(currentWidth);
134
- return this.currentViewportObject;
135
- }
136
- /**
137
- * Returns the current viewport as number
138
- * @deprecated use getCurrentViewPortDimensions instead
139
- * @returns string
140
- */
141
- getCurrentViewPortNumber() {
142
- return this.isBrowser ? document.body.clientWidth : 1200;
143
- }
144
- /**
145
- * Returns the current viewport width as number
146
- * @returns string
147
- */
148
- getCurrentViewPortWidth() {
149
- return this.isBrowser ? document.body.clientWidth : 1200;
150
- }
151
- /**
152
- * Returns the current viewport as number
153
- * @returns string
154
- */
155
- getCurrentViewPortHeight() {
156
- return this.isBrowser ? document.body.clientHeight : 600;
157
- }
158
- /**
159
- * Returns the current viewport dimensions
160
- * @returns string
161
- */
162
- getCurrentViewPortDimensions() {
163
- return this.isBrowser ? { Width: document.body.clientWidth, Height: document.body.clientWidth, Orientation: this.getOrientationAsString() } : { Width: 800, Height: 600, Orientation: "landscape" };
164
- }
165
92
  /**
166
93
  * Provides mq´s as string
167
94
  */
@@ -174,11 +101,8 @@ export class ViewportService {
174
101
  getViewportResizedObserver() {
175
102
  return this.viewportResizedSubscriber.asObservable();
176
103
  }
177
- /**
178
- * Scroll to element
179
- */
180
104
  scrollToElementId(el, alignCenter = false) {
181
- if (this.isBrowser) {
105
+ if (isPlatformBrowser(this.platformId)) {
182
106
  this.scrollToElement(document.querySelector('#' + el), alignCenter);
183
107
  }
184
108
  }
@@ -188,24 +112,24 @@ export class ViewportService {
188
112
  * @param alignCenter - defines if the element needs to be centered on window
189
113
  */
190
114
  scrollToElement(el, alignCenter = false) {
191
- if (this.isBrowser) {
115
+ if (isPlatformBrowser(this.platformId)) {
192
116
  let extraScrollTop = 0;
193
117
  if (alignCenter) {
194
118
  extraScrollTop = (window.innerHeight - el.clientHeight) / 2;
195
119
  }
196
- let offsetLeft = 0;
120
+ /*
121
+ const elementPos: DOMRect = el.getBoundingClientRect();
122
+ const scrollTopPosition = elementPos.x - extraScrollTop;
123
+ */
124
+ //let offsetLeft = 0;
197
125
  let offsetTop = 0;
198
126
  let elTemp = el;
199
127
  while (elTemp) {
200
- offsetLeft += elTemp.offsetLeft;
128
+ //offsetLeft += elTemp.offsetLeft;
201
129
  offsetTop += elTemp.offsetTop;
202
130
  elTemp = elTemp.parentElement ? elTemp.parentElement : null;
203
131
  }
204
- window.scrollTo({
205
- left: offsetLeft,
206
- top: offsetTop - extraScrollTop,
207
- behavior: 'smooth',
208
- });
132
+ window.scrollTo({ left: 0, top: offsetTop - extraScrollTop, behavior: 'smooth' });
209
133
  }
210
134
  }
211
135
  /**
@@ -213,67 +137,13 @@ export class ViewportService {
213
137
  * @param top - top position value
214
138
  */
215
139
  scrollTop(top) {
216
- if (this.isBrowser) {
140
+ if (isPlatformBrowser(this.platformId)) {
217
141
  window.scrollTo({ left: 0, top: top, behavior: 'smooth' });
218
142
  }
219
143
  }
220
- /**
221
- * If orientation is portrait
222
- */
223
- isPortrait() {
224
- if (this.isBrowser)
225
- return window.innerHeight > window.innerWidth;
226
- else
227
- return undefined;
228
- }
229
- /**
230
- * If orientation is landscape
231
- */
232
- isLandscape() {
233
- if (this.isBrowser) {
234
- const isLandscape = window.orientation === 90 || window.orientation === -90;
235
- return isLandscape;
236
- }
237
- else {
238
- return undefined;
239
- }
240
- }
241
- /**
242
- * Get screen orientation (portrait/landscape)
243
- */
244
- getOrientationAsString() {
245
- return this.isPortrait ? "portrait" : "landscape";
246
- }
247
- /**
248
- * If mobile breakpoint (below tablet)
249
- */
250
- isMobile() {
251
- return this.getCurrentViewPortNumber() < this.breakpoints[2].Low;
252
- }
253
- /**
254
- * Get height of an element
255
- * @deprecated
256
- */
257
- calculateFullscreenElementsheight(id, defaultheight, extra) {
258
- return this.calculateFullscreenElementsHeight(id, defaultheight, extra);
259
- }
260
- /**
261
- * Get height of an element
262
- */
263
- calculateFullscreenElementsHeight(id, defaultheight, extra) {
264
- if (!this.isBrowser || this.isMobile()) {
265
- return defaultheight;
266
- }
267
- else {
268
- const map = this.document.getElementById(id);
269
- const footer = this.document.getElementsByTagName('footer')[0];
270
- if (map && footer) {
271
- return `${window.innerHeight - map.offsetTop - footer.offsetHeight - extra}px`;
272
- }
273
- else {
274
- console.warn('could not calculate map height');
275
- return defaultheight;
276
- }
144
+ ngOnDestroy() {
145
+ if (isPlatformBrowser(this.platformId)) {
146
+ window.removeEventListener('resize', this.documentSizeChanged);
277
147
  }
278
148
  }
279
149
  /**
@@ -285,18 +155,18 @@ export class ViewportService {
285
155
  // inform who´s interested
286
156
  this.viewportResizedSubscriber.next(currentWindowWidth);
287
157
  if (currentWindowWidth > 0) {
288
- for (const mqs of this.breakpoints) {
289
- if (currentWindowWidth > mqs.High) {
158
+ for (const mqs of this.viewports) {
159
+ if (currentWindowWidth > mqs.high) {
290
160
  continue;
291
161
  }
292
- else if ((currentWindowWidth >= mqs.Low || currentWindowWidth <= mqs.High) &&
293
- this.currentViewport !== mqs.Name) {
294
- this.currentViewport = mqs.Name;
162
+ else if ((currentWindowWidth >= mqs.low || currentWindowWidth <= mqs.high) &&
163
+ this.currentViewport !== mqs.name) {
164
+ this.currentViewport = mqs.name;
295
165
  // inform who´s interested
296
- this.viewportChangedSubscriber.next(mqs.Name);
166
+ this.viewportChangedSubscriber.next(mqs.name);
297
167
  break;
298
168
  }
299
- else if (this.currentViewport === mqs.Name) {
169
+ else if (this.currentViewport === mqs.name) {
300
170
  break;
301
171
  }
302
172
  else {
@@ -310,46 +180,37 @@ export class ViewportService {
310
180
  * @param width Width to get the according MQ for
311
181
  */
312
182
  convertWidthToMediaQuery(width) {
313
- let currentViewport = this.breakpoints[0];
314
- for (const mqs of this.breakpoints) {
315
- if (width <= mqs.High && width >= mqs.Low) {
316
- currentViewport = mqs;
183
+ let currentViewport = '';
184
+ for (const mqs of this.viewports) {
185
+ if (width <= mqs.high && width >= mqs.low) {
186
+ currentViewport = mqs.name;
317
187
  break;
318
188
  }
319
189
  }
320
190
  return currentViewport;
321
191
  }
322
- /**
323
- * Get the breakpoint/device name like mobile,tablet,desktop, high
324
- */
325
- getSimpleBreakpoint(screenSize) {
326
- let actualBreakpoint;
327
- const sizes = this.simpleBreakpoints.slice().reverse(); // we need to reverse it to check step by step from biggest, which breakpoints still fits. Slice is a trick to not mutate the original array and make a copy
328
- for (const key in sizes) {
329
- if (screenSize < sizes[key].MaximumPixels) {
330
- actualBreakpoint = sizes[key];
331
- }
332
- }
333
- if (!actualBreakpoint) {
334
- actualBreakpoint = sizes[0]; // default screensize is biggest. Will be used if viewport is bigger as maximum. Remember, array is reversed
335
- }
336
- return actualBreakpoint;
192
+ isPortrait() {
193
+ if (isPlatformBrowser(this.platformId))
194
+ return window.innerHeight > window.innerWidth;
195
+ else
196
+ return;
337
197
  }
338
- ngOnDestroy() {
339
- if (this.isBrowser) {
340
- window.removeEventListener('resize', this.documentSizeChanged);
198
+ isLandscape() {
199
+ if (isPlatformBrowser(this.platformId)) {
200
+ const isLandscape = window.orientation === 90 || window.orientation === -90;
201
+ return isLandscape;
202
+ }
203
+ else {
204
+ return;
341
205
  }
342
206
  }
343
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ViewportService, deps: [{ token: PLATFORM_ID }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
344
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ViewportService }); }
207
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewportService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
208
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewportService }); }
345
209
  }
346
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ViewportService, decorators: [{
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewportService, decorators: [{
347
211
  type: Injectable
348
212
  }], ctorParameters: function () { return [{ type: Object, decorators: [{
349
213
  type: Inject,
350
214
  args: [PLATFORM_ID]
351
- }] }, { type: Document, decorators: [{
352
- type: Inject,
353
- args: [DOCUMENT]
354
215
  }] }]; } });
355
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi9zZXJ2aWNlcy92aWV3cG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFlBQVksSUFBZ0M7UUFDeEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUlKO0FBRUQsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixZQUFZLElBQWdDO1FBQ3hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FJSjtBQUVELE1BQU0sT0FBTyxVQUFVO0lBQ25CLFlBQVksSUFBMEI7UUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUtKO0FBRUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sZUFBZTtJQTREeEIsWUFDaUMsVUFBa0IsRUFDdEIsUUFBa0I7UUFEZCxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVU7UUE3RC9CLHNCQUFpQixHQUF1QjtZQUNwRCxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFO1lBQ2pELEVBQUUsTUFBTSxFQUFFLENBQUMs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QUFPLEVBQUUsQ0FBQyxDQUFDLDRKQUE0SjtRQUNwTixLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRTtZQUNyQixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFO2dCQUN2QyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDakM7U0FDSjtRQUNELElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNuQixnQkFBZ0IsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyw0R0FBNEc7U0FDNUk7UUFFRCxPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDbEU7SUFDTCxDQUFDOzhHQTlXUSxlQUFlLGtCQTZEWixXQUFXLGFBQ1gsUUFBUTtrSEE5RFgsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBOERGLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGNvcHlyaWdodCBLTVMgR21iSFxuICovXG5pbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOdWxsQWJsZSB9IGZyb20gJy4uL21vZGVscyc7XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBhbnk7XG5kZWNsYXJlIGNvbnN0IGRvY3VtZW50OiBhbnk7XG5cbmV4cG9ydCBjbGFzcyBXaW5kb3dEaW1lbnNpb25zIHtcbiAgICBjb25zdHJ1Y3RvcihkYXRhPzogUGFydGlhbDxXaW5kb3dEaW1lbnNpb25zPikge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEpO1xuICAgIH1cbiAgICBIZWlnaHQhOiBudW1iZXI7XG4gICAgV2lkdGghOiBudW1iZXI7XG4gICAgT3JpZW50YXRpb24hOiBcImxhbmRzY2FwZVwiIHwgXCJwb3J0cmFpdFwiO1xufVxuXG5leHBvcnQgY2xhc3MgU2ltcGxlQnJlYWtwb2ludCB7XG4gICAgY29uc3RydWN0b3IoZGF0YT86IFBhcnRpYWw8U2ltcGxlQnJlYWtwb2ludD4pIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBkYXRhKTtcbiAgICB9XG4gICAgTnVtYmVyITogbnVtYmVyO1xuICAgIE5hbWUhOiBzdHJpbmc7XG4gICAgTWF4aW11bVBpeGVscyE6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIEJyZWFrcG9pbnQge1xuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBQYXJ0aWFsPEJyZWFrcG9pbnQ+KSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZGF0YSk7XG4gICAgfVxuICAgIE51bWJlciE6IG51bWJlcjtcbiAgICBOYW1lITogc3RyaW5nO1xuICAgIExvdyE6IG51bWJlcjtcbiAgICBIaWdoITogbnVtYmVyO1xufVxuXG4vKipcbiAqIFNlcnZpY2UgdG8gZ2V0IHZpZXdwb3J0XG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBWaWV3cG9ydFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyByZWFkb25seSBzaW1wbGVCcmVha3BvaW50czogU2ltcGxlQnJlYWtwb2ludFtdID0gW1xuICAgICAgICB7IE51bWJlcjogMCwgTmFtZTogJ21vYmlsZScsIE1heGltdW1QaXhlbHM6IDc2OCB9LFxuICAgICAgICB7IE51bWJlcjogMSwgTmFtZTogJ3RhYmxldCcsIE1heGltdW1QaXhlbHM6IDEwMjQgfSxcbiAgICAgICAgeyBOdW1iZXI6IDIsIE5hbWU6ICdkZXNrdG9wJywgTWF4aW11bVBpeGVsczogMTYwMCB9LFxuICAgICAgICB7IE51bWJlcjogMywgTmFtZTogJ2hpZ2gnLCBNYXhpbXVtUGl4ZWxzOiAyNTAwIH0sXG4gICAgXTtcblxuICAgIHB1YmxpYyByZWFkb25seSBicmVha3BvaW50czogQnJlYWtwb2ludFtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBOdW1iZXI6IDAsXG4gICAgICAgICAgICBOYW1lOiAneHMnLFxuICAgICAgICAgICAgTG93OiAzNjAsXG4gICAgICAgICAgICBIaWdoOiA5OTAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIE51bWJlcjogMSxcbiAgICAgICAgICAgIE5hbWU6ICdzJyxcbiAgICAgICAgICAgIExvdzogOTkxLFxuICAgICAgICAgICAgSGlnaDogMTAyNCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgTnVtYmVyOiAyLFxuICAgICAgICAgICAgTmFtZTogJ20nLFxuICAgICAgICAgICAgTG93OiAxMDI1LFxuICAgICAgICAgICAgSGlnaDogMTIwMCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgTnVtYmVyOiAzLFxuICAgICAgICAgICAgTmFtZTogJ2wnLFxuICAgICAgICAgICAgTG93OiAxMjAxLFxuICAgICAgICAgICAgSGlnaDogMTQwMCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgTnVtYmVyOiA0LFxuICAgICAgICAgICAgTmFtZTogJ3hsJyxcbiAgICAgICAgICAgIExvdzogMTQwMSxcbiAgICAgICAgICAgIEhpZ2g6IDE2MDAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIE51bWJlcjogNSxcbiAgICAgICAgICAgIE5hbWU6ICd4eGwnLFxuICAgICAgICAgICAgTG93OiAxNjAxLFxuICAgICAgICAgICAgSGlnaDogMTkyMCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgTnVtYmVyOiA2LFxuICAgICAgICAgICAgTmFtZTogJ3h4eGwnLFxuICAgICAgICAgICAgTG93OiAxOTIxLFxuICAgICAgICAgICAgSGlnaDogOTk5OTksXG4gICAgICAgIH0sXG4gICAgXTtcblxuICAgIHByaXZhdGUgdmlld3BvcnRDaGFuZ2VkU3Vic2NyaWJlcjogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICAgIHByaXZhdGUgdmlld3BvcnRSZXNpemVkU3Vic2NyaWJlcjogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gICAgcHJpdmF0ZSBjdXJyZW50Vmlld3BvcnQhOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBjdXJyZW50Vmlld3BvcnRPYmplY3QhOiBCcmVha3BvaW50O1xuICAgIHByaXZhdGUgaXNCcm93c2VyID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHB1YmxpYyBkb2N1bWVudDogRG9jdW1lbnRcbiAgICApIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLmRvY3VtZW50U2l6ZUNoYW5nZWQuYmluZCh0aGlzKSwge1xuICAgICAgICAgICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuaXNCcm93c2VyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBkb2N1bWVudCBoZWlnaHRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RG9jdW1lbnRIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNCcm93c2VyID8gZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQgOiAxMjAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBkb2N1bWVudCB3aWR0aFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXREb2N1bWVudFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQnJvd3NlciA/IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggOiAxMjAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB3aW5kb3cgaGVpZ2h0XG4gICAgICovXG4gICAgcHVibGljIGdldFdpbmRvd0hlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Jyb3dzZXIgPyB3aW5kb3cuaW5uZXJIZWlnaHQgOiAxMjAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB3aW5kb3cgd2lkdGhcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0V2luZG93V2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNCcm93c2VyID8gd2luZG93LmlubmVyV2lkdGggOiAxMjAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgdmlld3BvcnQgTVEgYXMgc3RyaW5nXG4gICAgICogQHJldHVybnMgc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGdldEN1cnJlbnRWaWV3UG9ydCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjdXJyZW50V2lkdGg6IG51bWJlciA9IHRoaXMuaXNCcm93c2VyXG4gICAgICAgICAgICA/IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGhcbiAgICAgICAgICAgIDogMTIwMDtcbiAgICAgICAgdGhpcy5jdXJyZW50Vmlld3BvcnQgPSB0aGlzLmNvbnZlcnRXaWR0aFRvTWVkaWFRdWVyeShjdXJyZW50V2lkdGgpLk5hbWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFZpZXdwb3J0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgdmlld3BvcnQgTVEgYXMgb2JqZWN0IHdpdGggYWxsIGluZm9ybWF0aW9uc1xuICAgICAqIEByZXR1cm5zIHN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDdXJyZW50Vmlld1BvcnRPYmplY3QoKTogQnJlYWtwb2ludCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aDogbnVtYmVyID0gdGhpcy5pc0Jyb3dzZXJcbiAgICAgICAgICAgID8gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aFxuICAgICAgICAgICAgOiAxMjAwO1xuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3cG9ydE9iamVjdCA9IHRoaXMuY29udmVydFdpZHRoVG9NZWRpYVF1ZXJ5KGN1cnJlbnRXaWR0aCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFZpZXdwb3J0T2JqZWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgdmlld3BvcnQgYXMgbnVtYmVyXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGdldEN1cnJlbnRWaWV3UG9ydERpbWVuc2lvbnMgaW5zdGVhZFxuICAgICAqIEByZXR1cm5zIHN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDdXJyZW50Vmlld1BvcnROdW1iZXIoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNCcm93c2VyID8gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCA6IDEyMDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCB2aWV3cG9ydCB3aWR0aCBhcyBudW1iZXJcbiAgICAgKiBAcmV0dXJucyBzdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q3VycmVudFZpZXdQb3J0V2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNCcm93c2VyID8gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCA6IDEyMDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCB2aWV3cG9ydCBhcyBudW1iZXJcbiAgICAgKiBAcmV0dXJucyBzdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q3VycmVudFZpZXdQb3J0SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQnJvd3NlciA/IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0IDogNjAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgdmlld3BvcnQgZGltZW5zaW9uc1xuICAgICAqIEByZXR1cm5zIHN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDdXJyZW50Vmlld1BvcnREaW1lbnNpb25zKCk6IFdpbmRvd0RpbWVuc2lvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Jyb3dzZXIgPyB7V2lkdGg6ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCxIZWlnaHQ6ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCxPcmllbnRhdGlvbjp0aGlzLmdldE9yaWVudGF0aW9uQXNTdHJpbmcoKSB9IGFzIFdpbmRvd0RpbWVuc2lvbnMgOiB7V2lkdGg6ODAwLCBIZWlnaHQ6NjAwLCBPcmllbnRhdGlvbjogXCJsYW5kc2NhcGVcIn0gYXMgV2luZG93RGltZW5zaW9ucztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBtccK0cyBhcyBzdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Vmlld3BvcnRDaGFuZ2VkT2JzZXJ2ZXIoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld3BvcnRDaGFuZ2VkU3Vic2NyaWJlci5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyB0aGUgY3VycmVudCB3aW5kb3cgd2lkdGggYXMgbnVtYmVyXG4gICAgICovXG4gICAgcHVibGljIGdldFZpZXdwb3J0UmVzaXplZE9ic2VydmVyKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdwb3J0UmVzaXplZFN1YnNjcmliZXIuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2Nyb2xsIHRvIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2Nyb2xsVG9FbGVtZW50SWQoZWw6IHN0cmluZywgYWxpZ25DZW50ZXIgPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9FbGVtZW50KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsgZWwpLCBhbGlnbkNlbnRlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIZWxwZXIgZnVuY3Rpb24gdGhhdCBzY3JvbGxzIHRvIHRoZSBnaXZlbiBtYXJrdXAgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0gZWwgLSBuYXRpdmVFbGVtZW50IGZyb20gbWFya3VwXG4gICAgICogQHBhcmFtIGFsaWduQ2VudGVyIC0gZGVmaW5lcyBpZiB0aGUgZWxlbWVudCBuZWVkcyB0byBiZSBjZW50ZXJlZCBvbiB3aW5kb3dcbiAgICAgKi9cblxuICAgIHB1YmxpYyBzY3JvbGxUb0VsZW1lbnQoZWw6IEhUTUxFbGVtZW50LCBhbGlnbkNlbnRlciA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgbGV0IGV4dHJhU2Nyb2xsVG9wID0gMDtcblxuICAgICAgICAgICAgaWYgKGFsaWduQ2VudGVyKSB7XG4gICAgICAgICAgICAgICAgZXh0cmFTY3JvbGxUb3AgPSAod2luZG93LmlubmVySGVpZ2h0IC0gZWwuY2xpZW50SGVpZ2h0KSAvIDI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBvZmZzZXRMZWZ0ID0gMDtcbiAgICAgICAgICAgIGxldCBvZmZzZXRUb3AgPSAwO1xuXG4gICAgICAgICAgICBsZXQgZWxUZW1wOiBOdWxsQWJsZTxIVE1MRWxlbWVudD4gPSBlbDtcblxuICAgICAgICAgICAgd2hpbGUgKGVsVGVtcCkge1xuICAgICAgICAgICAgICAgIG9mZnNldExlZnQgKz0gZWxUZW1wLm9mZnNldExlZnQ7XG4gICAgICAgICAgICAgICAgb2Zmc2V0VG9wICs9IGVsVGVtcC5vZmZzZXRUb3A7XG4gICAgICAgICAgICAgICAgZWxUZW1wID0gZWxUZW1wLnBhcmVudEVsZW1lbnQgPyBlbFRlbXAucGFyZW50RWxlbWVudCA6IG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7XG4gICAgICAgICAgICAgICAgbGVmdDogb2Zmc2V0TGVmdCxcbiAgICAgICAgICAgICAgICB0b3A6IG9mZnNldFRvcCAtIGV4dHJhU2Nyb2xsVG9wLFxuICAgICAgICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2Nyb2xsIHRvIHRoZSB0b3AgcG9zaXRpb25cbiAgICAgKiBAcGFyYW0gdG9wIC0gdG9wIHBvc2l0aW9uIHZhbHVlXG4gICAgICovXG4gICAgcHVibGljIHNjcm9sbFRvcCh0b3A6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IGxlZnQ6IDAsIHRvcDogdG9wLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiBvcmllbnRhdGlvbiBpcyBwb3J0cmFpdFxuICAgICAqL1xuICAgIHB1YmxpYyBpc1BvcnRyYWl0KCkgOiBib29sZWFufHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQnJvd3NlcikgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodCA+IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICBlbHNlIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWYgb3JpZW50YXRpb24gaXMgbGFuZHNjYXBlXG4gICAgICovXG4gICAgcHVibGljIGlzTGFuZHNjYXBlKCkgOmJvb2xlYW58dW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XG4gICAgICAgICAgICBjb25zdCBpc0xhbmRzY2FwZSA9XG4gICAgICAgICAgICAgICAgd2luZG93Lm9yaWVudGF0aW9uID09PSA5MCB8fCB3aW5kb3cub3JpZW50YXRpb24gPT09IC05MDtcbiAgICAgICAgICAgIHJldHVybiBpc0xhbmRzY2FwZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgc2NyZWVuIG9yaWVudGF0aW9uIChwb3J0cmFpdC9sYW5kc2NhcGUpXG4gICAgICovXG4gICAgcHVibGljIGdldE9yaWVudGF0aW9uQXNTdHJpbmcoKSA6IFwicG9ydHJhaXRcIiB8IFwibGFuZHNjYXBlXCIge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1BvcnRyYWl0ID8gXCJwb3J0cmFpdFwiIDogXCJsYW5kc2NhcGVcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiBtb2JpbGUgYnJlYWtwb2ludCAoYmVsb3cgdGFibGV0KVxuICAgICAqL1xuICAgIHB1YmxpYyBpc01vYmlsZSgpOmJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDdXJyZW50Vmlld1BvcnROdW1iZXIoKSA8IHRoaXMuYnJlYWtwb2ludHNbMl0uTG93O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBoZWlnaHQgb2YgYW4gZWxlbWVudFxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgcHVibGljIGNhbGN1bGF0ZUZ1bGxzY3JlZW5FbGVtZW50c2hlaWdodChcbiAgICAgICAgaWQ6IHN0cmluZyxcbiAgICAgICAgZGVmYXVsdGhlaWdodDogc3RyaW5nLFxuICAgICAgICBleHRyYTogbnVtYmVyXG4gICAgKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZUZ1bGxzY3JlZW5FbGVtZW50c0hlaWdodChpZCwgZGVmYXVsdGhlaWdodCwgZXh0cmEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBoZWlnaHQgb2YgYW4gZWxlbWVudFxuICAgICAqL1xuICAgIHB1YmxpYyBjYWxjdWxhdGVGdWxsc2NyZWVuRWxlbWVudHNIZWlnaHQoXG4gICAgICAgIGlkOiBzdHJpbmcsXG4gICAgICAgIGRlZmF1bHRoZWlnaHQ6IHN0cmluZyxcbiAgICAgICAgZXh0cmE6IG51bWJlclxuICAgICkge1xuICAgICAgICBcbiAgICAgICAgaWYgKCF0aGlzLmlzQnJvd3NlciB8fCB0aGlzLmlzTW9iaWxlKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0aGVpZ2h0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbWFwID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG4gICAgICAgICAgICBjb25zdCBmb290ZXIgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdmb290ZXInKVswXTtcbiAgICAgICAgICAgIGlmIChtYXAgJiYgZm9vdGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3dpbmRvdy5pbm5lckhlaWdodCAtIG1hcC5vZmZzZXRUb3AgLSBmb290ZXIub2Zmc2V0SGVpZ2h0IC0gZXh0cmFcbiAgICAgICAgICAgICAgICAgICAgfXB4YDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdjb3VsZCBub3QgY2FsY3VsYXRlIG1hcCBoZWlnaHQnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdGhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIHZpZXdwb3J0IGNoYW5nZWRcbiAgICAgKiBAZXZlbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIGRvY3VtZW50U2l6ZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgICAgICBjb25zdCBjdXJyZW50V2luZG93V2lkdGg6IG51bWJlciA9IGV2ZW50LnRhcmdldC5pbm5lcldpZHRoO1xuICAgICAgICAvLyBpbmZvcm0gd2hvwrRzIGludGVyZXN0ZWRcbiAgICAgICAgdGhpcy52aWV3cG9ydFJlc2l6ZWRTdWJzY3JpYmVyLm5leHQoY3VycmVudFdpbmRvd1dpZHRoKTtcblxuICAgICAgICBpZiAoY3VycmVudFdpbmRvd1dpZHRoID4gMCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBtcXMgb2YgdGhpcy5icmVha3BvaW50cykge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50V2luZG93V2lkdGggPiBtcXMuSGlnaCkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgICAgICAoY3VycmVudFdpbmRvd1dpZHRoID49IG1xcy5Mb3cgfHwgY3VycmVudFdpbmRvd1dpZHRoIDw9IG1xcy5IaWdoKSAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRWaWV3cG9ydCAhPT0gbXFzLk5hbWVcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Vmlld3BvcnQgPSBtcXMuTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gaW5mb3JtIHdob8K0cyBpbnRlcmVzdGVkXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlld3BvcnRDaGFuZ2VkU3Vic2NyaWJlci5uZXh0KG1xcy5OYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRWaWV3cG9ydCA9PT0gbXFzLk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRVJST1InKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIE1lZGlhIFF1ZXJ5IGZvciB0aGUgZ2l2ZW4gd2lkdGhcbiAgICAgKiBAcGFyYW0gd2lkdGggV2lkdGggdG8gZ2V0IHRoZSBhY2NvcmRpbmcgTVEgZm9yXG4gICAgICovXG4gICAgcHJpdmF0ZSBjb252ZXJ0V2lkdGhUb01lZGlhUXVlcnkod2lkdGg6IG51bWJlcik6IEJyZWFrcG9pbnQge1xuICAgICAgICBsZXQgY3VycmVudFZpZXdwb3J0ID0gdGhpcy5icmVha3BvaW50c1swXTtcblxuICAgICAgICBmb3IgKGNvbnN0IG1xcyBvZiB0aGlzLmJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICBpZiAod2lkdGggPD0gbXFzLkhpZ2ggJiYgd2lkdGggPj0gbXFzLkxvdykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRWaWV3cG9ydCA9IG1xcztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjdXJyZW50Vmlld3BvcnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBicmVha3BvaW50L2RldmljZSBuYW1lIGxpa2UgbW9iaWxlLHRhYmxldCxkZXNrdG9wLCBoaWdoXG4gICAgICovXG4gICAgZ2V0U2ltcGxlQnJlYWtwb2ludChzY3JlZW5TaXplOiBudW1iZXIpIDpTaW1wbGVCcmVha3BvaW50IHtcbiAgICAgICAgbGV0IGFjdHVhbEJyZWFrcG9pbnQ6IFNpbXBsZUJyZWFrcG9pbnQgfCB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3Qgc2l6ZXMgPSB0aGlzLnNpbXBsZUJyZWFrcG9pbnRzLnNsaWNlKCkucmV2ZXJzZSgpOyAvLyB3ZSBuZWVkIHRvIHJldmVyc2UgaXQgdG8gY2hlY2sgc3RlcCBieSBzdGVwIGZyb20gYmlnZ2VzdCwgd2hpY2ggYnJlYWtwb2ludHMgc3RpbGwgZml0cy4gU2xpY2UgaXMgYSB0cmljayB0byBub3QgbXV0YXRlIHRoZSBvcmlnaW5hbCBhcnJheSBhbmQgbWFrZSBhIGNvcHlcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gc2l6ZXMpIHtcbiAgICAgICAgICAgIGlmIChzY3JlZW5TaXplIDwgc2l6ZXNba2V5XS5NYXhpbXVtUGl4ZWxzKSB7XG4gICAgICAgICAgICAgICAgYWN0dWFsQnJlYWtwb2ludCA9IHNpemVzW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhY3R1YWxCcmVha3BvaW50KSB7XG4gICAgICAgICAgICBhY3R1YWxCcmVha3BvaW50ID0gc2l6ZXNbMF07IC8vIGRlZmF1bHQgc2NyZWVuc2l6ZSBpcyBiaWdnZXN0LiBXaWxsIGJlIHVzZWQgaWYgdmlld3BvcnQgaXMgYmlnZ2VyIGFzIG1heGltdW0uIFJlbWVtYmVyLCBhcnJheSBpcyByZXZlcnNlZFxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjdHVhbEJyZWFrcG9pbnQ7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuZG9jdW1lbnRTaXplQ2hhbmdlZCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi9zZXJ2aWNlcy92aWV3cG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBUzNDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUEyQ3hCLFlBQXlDLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUExQzNDLGNBQVMsR0FBRztZQUN4QjtnQkFDSSxJQUFJLEVBQUUsSUFBSTtnQkFDVixHQUFHLEVBQUUsR0FBRztnQkFDUixJQUFJLEVBQUUsR0FBRzthQUNaO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsR0FBRyxFQUFFLEdBQUc7Z0JBQ1IsSUFBSSxFQUFFLElBQUk7YUFDYjtZQUNEO2dCQUNJLElBQUksRUFBRSxHQUFHO2dCQUNULEdBQUcsRUFBRSxJQUFJO2dCQUNULElBQUksRUFBRSxJQUFJO2FBQ2I7WUFDRDtnQkFDSSxJQUFJLEVBQUUsR0FBRztnQkFDVCxHQUFHLEVBQUUsS0FBSztnQkFDVixJQUFJLEVBQUUsSUFBSTthQUNiO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLElBQUk7Z0JBQ1YsR0FBRyxFQUFFLElBQUk7Z0JBQ1QsSUFBSSxFQUFFLElBQUk7YUFDYjtZQUNEO2dCQUNJLElBQUksRUFBRSxLQUFLO2dCQUNYLEdBQUcsRUFBRSxJQUFJO2dCQUNULElBQUksRUFBRSxJQUFJO2FBQ2I7WUFDRDtnQkFDSSxJQUFJLEVBQUUsTUFB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QyxVQUFVLENBQUMsRUFBRTtZQUNwQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVFLE9BQU8sV0FBVyxDQUFDO1NBQ3RCO2FBQU07WUFDSCxPQUFPO1NBQ1Y7SUFDTCxDQUFDOytHQTVOUSxlQUFlLGtCQTJDSixXQUFXO21IQTNDdEIsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBNENNLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGNvcHlyaWdodCBLTVMgR21iSFxuICovXG5cbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTnVsbEFibGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG4vLyBuZWVkZWQgZm9yIHNjcm9sbFRvRWxlbWVudCBmdW5jdGlvbmFsaXR5XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBhbnk7XG5cbmRlY2xhcmUgY29uc3QgZG9jdW1lbnQ6IGFueTtcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIGdldCB2aWV3cG9ydFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVmlld3BvcnRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlld3BvcnRzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAneHMnLFxuICAgICAgICAgICAgbG93OiA0MjAsXG4gICAgICAgICAgICBoaWdoOiA5OTAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdzJyxcbiAgICAgICAgICAgIGxvdzogOTkxLFxuICAgICAgICAgICAgaGlnaDogMTAyNCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ20nLFxuICAgICAgICAgICAgbG93OiAxMDI1LFxuICAgICAgICAgICAgaGlnaDogMTIwMCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2wnLFxuICAgICAgICAgICAgbG93OiAxMjAwMSxcbiAgICAgICAgICAgIGhpZ2g6IDE0MDAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICd4bCcsXG4gICAgICAgICAgICBsb3c6IDE0MDEsXG4gICAgICAgICAgICBoaWdoOiAxNjAwLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAneHhsJyxcbiAgICAgICAgICAgIGxvdzogMTYwMSxcbiAgICAgICAgICAgIGhpZ2g6IDE5MjAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICd4eHhsJyxcbiAgICAgICAgICAgIGxvdzogMTkyMSxcbiAgICAgICAgICAgIGhpZ2g6IDk5OTk5LFxuICAgICAgICB9LFxuICAgIF07XG5cbiAgICBwcml2YXRlIHZpZXdwb3J0Q2hhbmdlZFN1YnNjcmliZXI6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgICBwcml2YXRlIHZpZXdwb3J0UmVzaXplZFN1YnNjcmliZXI6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgICBwcml2YXRlIGN1cnJlbnRWaWV3cG9ydCE6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0KSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5kb2N1bWVudFNpemVDaGFuZ2VkLmJpbmQodGhpcyksIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB3aW5kb3cgaGVpZ2h0XG4gICAgICovXG4gICAgcHVibGljIGdldERvY3VtZW50SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpID8gZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQgOiAxMjAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB3aW5kb3cgd2lkdGhcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RG9jdW1lbnRXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSA/IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggOiAxMjAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB3aW5kb3cgaGVpZ2h0XG4gICAgICovXG4gICAgcHVibGljIGdldFdpbmRvd0hlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSA/IHdpbmRvdy5pbm5lckhlaWdodCA6IDEyMDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHdpbmRvdyB3aWR0aFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRXaW5kb3dXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSA/IHdpbmRvdy5pbm5lcldpZHRoIDogMTIwMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHZpZXdwb3J0IE1RIGFzIHN0cmluZ1xuICAgICAqIEByZXR1cm5zIHN0cmluZ1xuICAgICAqL1xuICAgIGdldEN1cnJlbnRWaWV3UG9ydCgpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudFZpZXdwb3J0KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50V2lkdGg6IG51bWJlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgPyBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIDogMTIwMDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFZpZXdwb3J0ID0gdGhpcy5jb252ZXJ0V2lkdGhUb01lZGlhUXVlcnkoY3VycmVudFdpZHRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRWaWV3cG9ydDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBtccK0cyBhcyBzdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Vmlld3BvcnRDaGFuZ2VkT2JzZXJ2ZXIoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld3BvcnRDaGFuZ2VkU3Vic2NyaWJlci5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyB0aGUgY3VycmVudCB3aW5kb3cgd2lkdGggYXMgbnVtYmVyXG4gICAgICovXG4gICAgcHVibGljIGdldFZpZXdwb3J0UmVzaXplZE9ic2VydmVyKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdwb3J0UmVzaXplZFN1YnNjcmliZXIuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNjcm9sbFRvRWxlbWVudElkKGVsOiBzdHJpbmcsIGFsaWduQ2VudGVyID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9FbGVtZW50KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyMnICsgZWwpLCBhbGlnbkNlbnRlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIZWxwZXIgZnVuY3Rpb24gdGhhdCBzY3JvbGxzIHRvIHRoZSBnaXZlbiBtYXJrdXAgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0gZWwgLSBuYXRpdmVFbGVtZW50IGZyb20gbWFya3VwXG4gICAgICogQHBhcmFtIGFsaWduQ2VudGVyIC0gZGVmaW5lcyBpZiB0aGUgZWxlbWVudCBuZWVkcyB0byBiZSBjZW50ZXJlZCBvbiB3aW5kb3dcbiAgICAgKi9cblxuICAgIHB1YmxpYyBzY3JvbGxUb0VsZW1lbnQoZWw6IEhUTUxFbGVtZW50LCBhbGlnbkNlbnRlciA9IGZhbHNlKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBsZXQgZXh0cmFTY3JvbGxUb3AgPSAwO1xuXG4gICAgICAgICAgICBpZiAoYWxpZ25DZW50ZXIpIHtcbiAgICAgICAgICAgICAgICBleHRyYVNjcm9sbFRvcCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbC5jbGllbnRIZWlnaHQpIC8gMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLypcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3M6IERPTVJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbFRvcFBvc2l0aW9uID0gZWxlbWVudFBvcy54IC0gZXh0cmFTY3JvbGxUb3A7XG4gICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAvL2xldCBvZmZzZXRMZWZ0ID0gMDtcbiAgICAgICAgICAgIGxldCBvZmZzZXRUb3AgPSAwO1xuXG4gICAgICAgICAgICBsZXQgZWxUZW1wOiBOdWxsQWJsZTxIVE1MRWxlbWVudD4gPSBlbDtcblxuICAgICAgICAgICAgd2hpbGUgKGVsVGVtcCkge1xuICAgICAgICAgICAgICAgIC8vb2Zmc2V0TGVmdCArPSBlbFRlbXAub2Zmc2V0TGVmdDtcbiAgICAgICAgICAgICAgICBvZmZzZXRUb3AgKz0gZWxUZW1wLm9mZnNldFRvcDtcbiAgICAgICAgICAgICAgICBlbFRlbXAgPSBlbFRlbXAucGFyZW50RWxlbWVudCA/IGVsVGVtcC5wYXJlbnRFbGVtZW50IDogbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgbGVmdDogMCwgdG9wOiBvZmZzZXRUb3AgLSBleHRyYVNjcm9sbFRvcCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2Nyb2xsIHRvIHRoZSB0b3AgcG9zaXRpb25cbiAgICAgKiBAcGFyYW0gdG9wIC0gdG9wIHBvc2l0aW9uIHZhbHVlXG4gICAgICovXG4gICAgcHVibGljIHNjcm9sbFRvcCh0b3A6IG51bWJlcikge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgbGVmdDogMCwgdG9wOiB0b3AsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuZG9jdW1lbnRTaXplQ2hhbmdlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiB2aWV3cG9ydCBjaGFuZ2VkXG4gICAgICogQGV2ZW50XG4gICAgICovXG5cbiAgICBwcml2YXRlIGRvY3VtZW50U2l6ZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgICAgICBjb25zdCBjdXJyZW50V2luZG93V2lkdGg6IG51bWJlciA9IGV2ZW50LnRhcmdldC5pbm5lcldpZHRoO1xuICAgICAgICAvLyBpbmZvcm0gd2hvwrRzIGludGVyZXN0ZWRcbiAgICAgICAgdGhpcy52aWV3cG9ydFJlc2l6ZWRTdWJzY3JpYmVyLm5leHQoY3VycmVudFdpbmRvd1dpZHRoKTtcblxuICAgICAgICBpZiAoY3VycmVudFdpbmRvd1dpZHRoID4gMCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBtcXMgb2YgdGhpcy52aWV3cG9ydHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudFdpbmRvd1dpZHRoID4gbXFzLmhpZ2gpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnRXaW5kb3dXaWR0aCA+PSBtcXMubG93IHx8IGN1cnJlbnRXaW5kb3dXaWR0aCA8PSBtcXMuaGlnaCkgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Vmlld3BvcnQgIT09IG1xcy5uYW1lXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFZpZXdwb3J0ID0gbXFzLm5hbWU7XG4gICAgICAgICAgICAgICAgICAgIC8vIGluZm9ybSB3aG/CtHMgaW50ZXJlc3RlZFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdwb3J0Q2hhbmdlZFN1YnNjcmliZXIubmV4dChtcXMubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50Vmlld3BvcnQgPT09IG1xcy5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0VSUk9SJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBNZWRpYSBRdWVyeSBmb3IgdGhlIGdpdmVuIHdpZHRoXG4gICAgICogQHBhcmFtIHdpZHRoIFdpZHRoIHRvIGdldCB0aGUgYWNjb3JkaW5nIE1RIGZvclxuICAgICAqL1xuICAgIHByaXZhdGUgY29udmVydFdpZHRoVG9NZWRpYVF1ZXJ5KHdpZHRoOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IGN1cnJlbnRWaWV3cG9ydCA9ICcnO1xuXG4gICAgICAgIGZvciAoY29uc3QgbXFzIG9mIHRoaXMudmlld3BvcnRzKSB7XG4gICAgICAgICAgICBpZiAod2lkdGggPD0gbXFzLmhpZ2ggJiYgd2lkdGggPj0gbXFzLmxvdykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRWaWV3cG9ydCA9IG1xcy5uYW1lO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnRWaWV3cG9ydDtcbiAgICB9XG5cbiAgICBpc1BvcnRyYWl0KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodCA+IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICBlbHNlIHJldHVybjtcbiAgICB9XG5cbiAgICBpc0xhbmRzY2FwZSgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzTGFuZHNjYXBlID0gd2luZG93Lm9yaWVudGF0aW9uID09PSA5MCB8fCB3aW5kb3cub3JpZW50YXRpb24gPT09IC05MDtcbiAgICAgICAgICAgIHJldHVybiBpc0xhbmRzY2FwZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -33,10 +33,10 @@ export class BackToTopComponent {
33
33
  })();
34
34
  }
35
35
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: BackToTopComponent, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: BackToTopComponent, selector: "kms-back-to-top", host: { listeners: { "window:scroll": "onWindowScroll()" } }, ngImport: i0, template: "<div class=\"scrollToTop\"\n [ngClass]=\"{'show': windowScrolled}\"\n (click)=\"scrollToTop()\">\n <div class=\"scrollToTop-inner\">\n <kms-icon icon=\"floating_button_clear\" iconClass=\"color-white\"></kms-icon>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.IconComponent, selector: "kms-icon", inputs: ["icon", "iconClass", "iconStyle", "iconSize", "size", "dontUseSprite"] }] }); }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BackToTopComponent, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BackToTopComponent, selector: "kms-back-to-top", host: { listeners: { "window:scroll": "onWindowScroll()" } }, ngImport: i0, template: "<div class=\"scrollToTop\"\n [ngClass]=\"{'show': windowScrolled}\"\n (click)=\"scrollToTop()\">\n <div class=\"scrollToTop-inner\">\n <kms-icon icon=\"floating_button_clear\" iconClass=\"color-white\"></kms-icon>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.IconComponent, selector: "kms-icon", inputs: ["icon", "iconClass", "iconStyle", "iconSize", "dontUseSprite"] }] }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: BackToTopComponent, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BackToTopComponent, decorators: [{
40
40
  type: Component,
41
41
  args: [{ selector: 'kms-back-to-top', template: "<div class=\"scrollToTop\"\n [ngClass]=\"{'show': windowScrolled}\"\n (click)=\"scrollToTop()\">\n <div class=\"scrollToTop-inner\">\n <kms-icon icon=\"floating_button_clear\" iconClass=\"color-white\"></kms-icon>\n </div>\n</div>" }]
42
42
  }], ctorParameters: function () { return [{ type: Object, decorators: [{
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
46
46
  type: HostListener,
47
47
  args: ['window:scroll', []]
48
48
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay10by10b3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva21zLW5neC11aS1wcmVzZW50YXRpb25hbC9zcmMvbGliL3VpL2JhY2stdG8tdG9wL2JhY2stdG8tdG9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi91aS9iYWNrLXRvLXRvcC9iYWNrLXRvLXRvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFNcEQsTUFBTSxPQUFPLGtCQUFrQjtJQUczQixZQUF3QyxVQUFrQjtRQUFsQixlQUFVLEdBQVYsVUFBVSxDQUFRO0lBQUcsQ0FBQztJQUc5RCxjQUFjO1FBQ1YsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEMsSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRTtnQkFDM0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7YUFDOUI7aUJBQU0sSUFDSCxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQztnQkFDM0MsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTO2dCQUNsQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLEVBQzlCO2dCQUNFLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2FBQy9CO1NBQ0o7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BDLENBQUMsU0FBUyxZQUFZO2dCQUNsQixNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDcEYsSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFO29CQUNuQixNQUFNLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLGFBQWEsR0FBRyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ3pEO1lBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNSO0lBQ0wsQ0FBQzs4R0E5QlEsa0JBQWtCLGtCQUdQLFdBQVc7a0dBSHRCLGtCQUFrQixxSENYL0IsdVFBTU07OzJGREtPLGtCQUFrQjtrQkFKOUIsU0FBUzsrQkFDSSxpQkFBaUI7OzBCQU1kLE1BQU07MkJBQUMsV0FBVzs0Q0FHL0IsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAY29weXJpZ2h0IEtNUyBHbWJIXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrbXMtYmFjay10by10b3AnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYWNrLXRvLXRvcC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEJhY2tUb1RvcENvbXBvbmVudCB7XG4gICAgd2luZG93U2Nyb2xsZWQ/OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcHVibGljIHBsYXRmb3JtSWQ6IE9iamVjdCkge31cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbXSlcbiAgICBvbldpbmRvd1Njcm9sbCgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA+IDEwMCkge1xuICAgICAgICAgICAgICAgIHRoaXMud2luZG93U2Nyb2xsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAodGhpcy53aW5kb3dTY3JvbGxlZCAmJiB3aW5kb3cucGFnZVlPZmZzZXQpIHx8XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fFxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIDwgMTBcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMud2luZG93U2Nyb2xsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNjcm9sbFRvVG9wKCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgKGZ1bmN0aW9uIHNtb290aHNjcm9sbCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U2Nyb2xsID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudFNjcm9sbCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShzbW9vdGhzY3JvbGwpO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgY3VycmVudFNjcm9sbCAtIGN1cnJlbnRTY3JvbGwgLyA4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNjcm9sbFRvVG9wXCJcbiAgICBbbmdDbGFzc109XCJ7J3Nob3cnOiB3aW5kb3dTY3JvbGxlZH1cIlxuICAgIChjbGljayk9XCJzY3JvbGxUb1RvcCgpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxUb1RvcC1pbm5lclwiPlxuICAgICAgICAgICAgPGttcy1pY29uIGljb249XCJmbG9hdGluZ19idXR0b25fY2xlYXJcIiBpY29uQ2xhc3M9XCJjb2xvci13aGl0ZVwiPjwva21zLWljb24+XG4gICAgICAgIDwvZGl2PlxuPC9kaXY+Il19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay10by10b3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva21zLW5neC11aS1wcmVzZW50YXRpb25hbC9zcmMvbGliL3VpL2JhY2stdG8tdG9wL2JhY2stdG8tdG9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi91aS9iYWNrLXRvLXRvcC9iYWNrLXRvLXRvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFNcEQsTUFBTSxPQUFPLGtCQUFrQjtJQUczQixZQUF3QyxVQUFrQjtRQUFsQixlQUFVLEdBQVYsVUFBVSxDQUFRO0lBQUcsQ0FBQztJQUc5RCxjQUFjO1FBQ1YsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEMsSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRTtnQkFDM0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7YUFDOUI7aUJBQU0sSUFDSCxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQztnQkFDM0MsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTO2dCQUNsQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLEVBQzlCO2dCQUNFLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2FBQy9CO1NBQ0o7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BDLENBQUMsU0FBUyxZQUFZO2dCQUNsQixNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDcEYsSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFO29CQUNuQixNQUFNLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLGFBQWEsR0FBRyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ3pEO1lBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNSO0lBQ0wsQ0FBQzsrR0E5QlEsa0JBQWtCLGtCQUdQLFdBQVc7bUdBSHRCLGtCQUFrQixxSENYL0IsdVFBTU07OzRGREtPLGtCQUFrQjtrQkFKOUIsU0FBUzsrQkFDSSxpQkFBaUI7OzBCQU1kLE1BQU07MkJBQUMsV0FBVzs0Q0FHL0IsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAY29weXJpZ2h0IEtNUyBHbWJIXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrbXMtYmFjay10by10b3AnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYWNrLXRvLXRvcC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEJhY2tUb1RvcENvbXBvbmVudCB7XG4gICAgd2luZG93U2Nyb2xsZWQ/OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcHVibGljIHBsYXRmb3JtSWQ6IE9iamVjdCkge31cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbXSlcbiAgICBvbldpbmRvd1Njcm9sbCgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA+IDEwMCkge1xuICAgICAgICAgICAgICAgIHRoaXMud2luZG93U2Nyb2xsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAodGhpcy53aW5kb3dTY3JvbGxlZCAmJiB3aW5kb3cucGFnZVlPZmZzZXQpIHx8XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fFxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIDwgMTBcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMud2luZG93U2Nyb2xsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNjcm9sbFRvVG9wKCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgKGZ1bmN0aW9uIHNtb290aHNjcm9sbCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U2Nyb2xsID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudFNjcm9sbCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShzbW9vdGhzY3JvbGwpO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgY3VycmVudFNjcm9sbCAtIGN1cnJlbnRTY3JvbGwgLyA4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNjcm9sbFRvVG9wXCJcbiAgICBbbmdDbGFzc109XCJ7J3Nob3cnOiB3aW5kb3dTY3JvbGxlZH1cIlxuICAgIChjbGljayk9XCJzY3JvbGxUb1RvcCgpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxUb1RvcC1pbm5lclwiPlxuICAgICAgICAgICAgPGttcy1pY29uIGljb249XCJmbG9hdGluZ19idXR0b25fY2xlYXJcIiBpY29uQ2xhc3M9XCJjb2xvci13aGl0ZVwiPjwva21zLWljb24+XG4gICAgICAgIDwvZGl2PlxuPC9kaXY+Il19
@@ -4,7 +4,7 @@ import { GenericDialogComponent } from '../generic-dialog/generic-dialog.compone
4
4
  import { ButtonResponseType } from './button-response-types.enum';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/material/legacy-dialog";
7
- import * as i2 from "@angular/material/legacy-button";
7
+ import * as i2 from "@angular/material/button";
8
8
  export class ButtonWithConfirmDialogComponent {
9
9
  // eslint-disable-next-line @typescript-eslint/no-empty-function
10
10
  constructor(dialog) {
@@ -36,10 +36,10 @@ export class ButtonWithConfirmDialogComponent {
36
36
  dialogRef.close();
37
37
  });
38
38
  }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ButtonWithConfirmDialogComponent, deps: [{ token: i1.MatLegacyDialog }], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: ButtonWithConfirmDialogComponent, selector: "kms-button-with-confirm-dialog", inputs: { disabled: "disabled", buttonText: "buttonText", confirmTitle: "confirmTitle", confirmTextYes: "confirmTextYes", confirmTextNo: "confirmTextNo" }, outputs: { onConfirmClosed: "onConfirmClosed" }, ngImport: i0, template: "<button\n type=\"button\"\n (click)=\"start()\"\n mat-stroked-button\n [disabled]=\"disabled\"\n>\n {{ buttonText }}\n</button>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] }); }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonWithConfirmDialogComponent, deps: [{ token: i1.MatLegacyDialog }], target: i0.ɵɵFactoryTarget.Component }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ButtonWithConfirmDialogComponent, selector: "kms-button-with-confirm-dialog", inputs: { disabled: "disabled", buttonText: "buttonText", confirmTitle: "confirmTitle", confirmTextYes: "confirmTextYes", confirmTextNo: "confirmTextNo" }, outputs: { onConfirmClosed: "onConfirmClosed" }, ngImport: i0, template: "<button\n type=\"button\"\n (click)=\"start()\"\n mat-stroked-button\n [disabled]=\"disabled\"\n>\n {{ buttonText }}\n</button>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] }); }
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ButtonWithConfirmDialogComponent, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonWithConfirmDialogComponent, decorators: [{
43
43
  type: Component,
44
44
  args: [{ selector: 'kms-button-with-confirm-dialog', template: "<button\n type=\"button\"\n (click)=\"start()\"\n mat-stroked-button\n [disabled]=\"disabled\"\n>\n {{ buttonText }}\n</button>\n" }]
45
45
  }], ctorParameters: function () { return [{ type: i1.MatLegacyDialog }]; }, propDecorators: { disabled: [{
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
55
55
  }], onConfirmClosed: [{
56
56
  type: Output
57
57
  }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXdpdGgtY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva21zLW5neC11aS1wcmVzZW50YXRpb25hbC9zcmMvbGliL3VpL2J1dHRvbi13aXRoLWNvbmZpcm0tZGlhbG9nL2J1dHRvbi13aXRoLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi91aS9idXR0b24td2l0aC1jb25maXJtLWRpYWxvZy9idXR0b24td2l0aC1jb25maXJtLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFbEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFRbEUsTUFBTSxPQUFPLGdDQUFnQztJQVl6QyxnRUFBZ0U7SUFDaEUsWUFDVyxNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBUDVCLHNGQUFzRjtRQUM1RSxvQkFBZSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlELFNBQUksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSzFCLENBQUM7SUFFSixnRUFBZ0U7SUFDaEUsUUFBUSxLQUFJLENBQUM7SUFFYixLQUFLO1FBQ0QsTUFBTSxJQUFJLEdBQWU7WUFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3hCLE9BQU8sRUFBQztnQkFDSixPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQzVCLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYTthQUNoQztTQUNKLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUN2RCxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEQsSUFBSSxNQUFNLEtBQUssa0JBQWtCLENBQUMsT0FBTyxFQUFFO2dCQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuQztpQkFBSTtnQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQztZQUNELFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBeENRLGdDQUFnQztrR0FBaEMsZ0NBQWdDLG1SQ2I3QyxrSkFRQTs7MkZES2EsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNJLGdDQUFnQztzR0FLakMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2cgYXMgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XG5pbXBvcnQgeyBTdWJTaW5rIH0gZnJvbSAnc3Vic2luayc7XG5pbXBvcnQgeyBOdWxsQWJsZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBHZW5lcmljRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vZ2VuZXJpYy1kaWFsb2cvZ2VuZXJpYy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvblJlc3BvbnNlVHlwZSB9IGZyb20gJy4vYnV0dG9uLXJlc3BvbnNlLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgRGlhbG9nRGF0YSB9IGZyb20gJy4vZGlhbG9nLWRhdGEubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ttcy1idXR0b24td2l0aC1jb25maXJtLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi13aXRoLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9idXR0b24td2l0aC1jb25maXJtLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25XaXRoQ29uZmlybURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IE51bGxBYmxlPGJvb2xlYW4+O1xuICAgIEBJbnB1dCgpIGJ1dHRvblRleHQ6IE51bGxBYmxlPHN0cmluZz47XG4gICAgQElucHV0KCkgY29uZmlybVRpdGxlOiBOdWxsQWJsZTxzdHJpbmc+O1xuICAgIEBJbnB1dCgpIGNvbmZpcm1UZXh0WWVzOiBOdWxsQWJsZTxzdHJpbmc+O1xuICAgIEBJbnB1dCgpIGNvbmZpcm1UZXh0Tm86IE51bGxBYmxlPHN0cmluZz47XG5cbiAgICAvLyBPdXRwdXRzIHdoZW4gZGlhbG9ndWUgd2FzIGNsb3NlZC4gUmV0dXJucyB0cnVlLCBpZiB5ZXMgd2FzIGNsaWNrZWQsIGZhbHNlIG90aGVyd2lzZVxuICAgIEBPdXRwdXQoKSBvbkNvbmZpcm1DbG9zZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByaXZhdGUgc3VicyA9IG5ldyBTdWJTaW5rKCk7XG4gICAgXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgKSB7fVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIG5nT25Jbml0KCkge31cblxuICAgIHN0YXJ0KCl7XG4gICAgICAgIGNvbnN0IGRhdGE6IERpYWxvZ0RhdGEgPSB7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy5jb25maXJtVGl0bGUsXG4gICAgICAgICAgICBidXR0b25zOntcbiAgICAgICAgICAgICAgICBwcmltYXJ5OiB0aGlzLmNvbmZpcm1UZXh0WWVzLFxuICAgICAgICAgICAgICAgIHNlY29uZGFyeTogdGhpcy5jb25maXJtVGV4dE5vLFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEdlbmVyaWNEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc3Vicy5zaW5rID0gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0ID09PSBCdXR0b25SZXNwb25zZVR5cGUucHJpbWFyeSkge1xuICAgICAgICAgICAgICAgIHRoaXMub25Db25maXJtQ2xvc2VkLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ29uZmlybUNsb3NlZC5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cInN0YXJ0KClcIlxuICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4+XG4gICAge3sgYnV0dG9uVGV4dCB9fVxuPC9idXR0b24+XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXdpdGgtY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva21zLW5neC11aS1wcmVzZW50YXRpb25hbC9zcmMvbGliL3VpL2J1dHRvbi13aXRoLWNvbmZpcm0tZGlhbG9nL2J1dHRvbi13aXRoLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi91aS9idXR0b24td2l0aC1jb25maXJtLWRpYWxvZy9idXR0b24td2l0aC1jb25maXJtLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFbEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFRbEUsTUFBTSxPQUFPLGdDQUFnQztJQVl6QyxnRUFBZ0U7SUFDaEUsWUFDVyxNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBUDVCLHNGQUFzRjtRQUM1RSxvQkFBZSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlELFNBQUksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSzFCLENBQUM7SUFFSixnRUFBZ0U7SUFDaEUsUUFBUSxLQUFJLENBQUM7SUFFYixLQUFLO1FBQ0QsTUFBTSxJQUFJLEdBQWU7WUFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3hCLE9BQU8sRUFBQztnQkFDSixPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQzVCLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYTthQUNoQztTQUNKLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUN2RCxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEQsSUFBSSxNQUFNLEtBQUssa0JBQWtCLENBQUMsT0FBTyxFQUFFO2dCQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuQztpQkFBSTtnQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQztZQUNELFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBeENRLGdDQUFnQzttR0FBaEMsZ0NBQWdDLG1SQ2I3QyxrSkFRQTs7NEZES2EsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNJLGdDQUFnQztzR0FLakMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2cgYXMgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XG5pbXBvcnQgeyBTdWJTaW5rIH0gZnJvbSAnc3Vic2luayc7XG5pbXBvcnQgeyBOdWxsQWJsZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBHZW5lcmljRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vZ2VuZXJpYy1kaWFsb2cvZ2VuZXJpYy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvblJlc3BvbnNlVHlwZSB9IGZyb20gJy4vYnV0dG9uLXJlc3BvbnNlLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgRGlhbG9nRGF0YSB9IGZyb20gJy4vZGlhbG9nLWRhdGEubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ttcy1idXR0b24td2l0aC1jb25maXJtLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi13aXRoLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9idXR0b24td2l0aC1jb25maXJtLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25XaXRoQ29uZmlybURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IE51bGxBYmxlPGJvb2xlYW4+O1xuICAgIEBJbnB1dCgpIGJ1dHRvblRleHQ6IE51bGxBYmxlPHN0cmluZz47XG4gICAgQElucHV0KCkgY29uZmlybVRpdGxlOiBOdWxsQWJsZTxzdHJpbmc+O1xuICAgIEBJbnB1dCgpIGNvbmZpcm1UZXh0WWVzOiBOdWxsQWJsZTxzdHJpbmc+O1xuICAgIEBJbnB1dCgpIGNvbmZpcm1UZXh0Tm86IE51bGxBYmxlPHN0cmluZz47XG5cbiAgICAvLyBPdXRwdXRzIHdoZW4gZGlhbG9ndWUgd2FzIGNsb3NlZC4gUmV0dXJucyB0cnVlLCBpZiB5ZXMgd2FzIGNsaWNrZWQsIGZhbHNlIG90aGVyd2lzZVxuICAgIEBPdXRwdXQoKSBvbkNvbmZpcm1DbG9zZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByaXZhdGUgc3VicyA9IG5ldyBTdWJTaW5rKCk7XG4gICAgXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgKSB7fVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIG5nT25Jbml0KCkge31cblxuICAgIHN0YXJ0KCl7XG4gICAgICAgIGNvbnN0IGRhdGE6IERpYWxvZ0RhdGEgPSB7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy5jb25maXJtVGl0bGUsXG4gICAgICAgICAgICBidXR0b25zOntcbiAgICAgICAgICAgICAgICBwcmltYXJ5OiB0aGlzLmNvbmZpcm1UZXh0WWVzLFxuICAgICAgICAgICAgICAgIHNlY29uZGFyeTogdGhpcy5jb25maXJtVGV4dE5vLFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEdlbmVyaWNEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc3Vicy5zaW5rID0gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0ID09PSBCdXR0b25SZXNwb25zZVR5cGUucHJpbWFyeSkge1xuICAgICAgICAgICAgICAgIHRoaXMub25Db25maXJtQ2xvc2VkLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ29uZmlybUNsb3NlZC5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cInN0YXJ0KClcIlxuICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4+XG4gICAge3sgYnV0dG9uVGV4dCB9fVxuPC9idXR0b24+XG4iXX0=