@ts-core/angular 13.0.45 → 13.0.48

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 (111) hide show
  1. package/bottomSheet/BottomSheetImpl.d.ts +10 -2
  2. package/bottomSheet/BottomSheetService.d.ts +2 -1
  3. package/bottomSheet/component/BottomSheetBaseComponent.d.ts +1 -7
  4. package/bottomSheet/component/bottom-sheet-close-element/bottom-sheet-close-element.component.d.ts +1 -2
  5. package/esm2020/VICommonModule.mjs +4 -4
  6. package/esm2020/application/ApplicationBaseComponent.mjs +3 -3
  7. package/esm2020/asset/AssetBackgroundDirective.mjs +3 -3
  8. package/esm2020/asset/AssetBackgroundPipe.mjs +3 -3
  9. package/esm2020/asset/AssetFilePipe.mjs +3 -3
  10. package/esm2020/asset/AssetIconPipe.mjs +3 -3
  11. package/esm2020/asset/AssetImagePipe.mjs +3 -3
  12. package/esm2020/asset/AssetModule.mjs +4 -4
  13. package/esm2020/asset/AssetSoundPipe.mjs +3 -3
  14. package/esm2020/asset/AssetVideoPipe.mjs +3 -3
  15. package/esm2020/bottomSheet/BottomSheetImpl.mjs +42 -2
  16. package/esm2020/bottomSheet/BottomSheetModule.mjs +4 -4
  17. package/esm2020/bottomSheet/BottomSheetService.mjs +17 -7
  18. package/esm2020/bottomSheet/component/BottomSheetBaseComponent.mjs +6 -37
  19. package/esm2020/bottomSheet/component/bottom-sheet-close-element/bottom-sheet-close-element.component.mjs +14 -19
  20. package/esm2020/component/VIComponentModule.mjs +4 -4
  21. package/esm2020/component/cdk-table/CdkTableBaseComponent.mjs +3 -3
  22. package/esm2020/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.mjs +3 -3
  23. package/esm2020/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.mjs +3 -3
  24. package/esm2020/component/cdk-table/cdk-table-paginable-bookmark/cdk-table-paginable-bookmark.component.mjs +3 -3
  25. package/esm2020/component/cdk-table/cell/CdkTableCellClassNamePipe.mjs +3 -3
  26. package/esm2020/component/cdk-table/cell/CdkTableCellStyleNamePipe.mjs +3 -3
  27. package/esm2020/component/cdk-table/cell/CdkTableCellValuePipe.mjs +3 -3
  28. package/esm2020/component/cdk-table/column/CdkTableColumnClassNamePipe.mjs +3 -3
  29. package/esm2020/component/cdk-table/column/CdkTableColumnStyleNamePipe.mjs +3 -3
  30. package/esm2020/component/cdk-table/row/CdkTableRowClassNamePipe.mjs +3 -3
  31. package/esm2020/component/cdk-table/row/CdkTableRowStyleNamePipe.mjs +3 -3
  32. package/esm2020/component/language/language-selector/language-selector.component.mjs +3 -3
  33. package/esm2020/component/menu-list/menu-list.component.mjs +3 -3
  34. package/esm2020/component/select-list/select-list.component.mjs +3 -3
  35. package/esm2020/component/tab-group/tab-group.component.mjs +3 -3
  36. package/esm2020/cookie/CookieModule.mjs +4 -4
  37. package/esm2020/directive/AspectRatioResizeDirective.mjs +3 -3
  38. package/esm2020/directive/AutoScrollBottomDirective.mjs +3 -3
  39. package/esm2020/directive/ClickToCopyDirective.mjs +3 -3
  40. package/esm2020/directive/ClickToSelectDirective.mjs +3 -3
  41. package/esm2020/directive/FocusDirective.mjs +3 -3
  42. package/esm2020/directive/HTMLContentTitleDirective.mjs +3 -3
  43. package/esm2020/directive/HTMLTitleDirective.mjs +3 -3
  44. package/esm2020/directive/InfiniteScrollDirective.mjs +3 -3
  45. package/esm2020/directive/MenuTriggerForDirective.mjs +3 -3
  46. package/esm2020/directive/ResizeDirective.mjs +3 -3
  47. package/esm2020/directive/ScrollCheckDirective.mjs +3 -3
  48. package/esm2020/directive/ScrollDirective.mjs +3 -3
  49. package/esm2020/directive/SelectOnFocusDirective.mjs +3 -3
  50. package/esm2020/form/FormElementSync.mjs +3 -3
  51. package/esm2020/language/LanguageDirective.mjs +3 -3
  52. package/esm2020/language/LanguageHasDirective.mjs +3 -3
  53. package/esm2020/language/LanguageMatPaginatorIntl.mjs +3 -3
  54. package/esm2020/language/LanguageModule.mjs +4 -4
  55. package/esm2020/language/LanguagePipe.mjs +3 -3
  56. package/esm2020/language/LanguagePipeHas.mjs +3 -3
  57. package/esm2020/language/LanguagePipeHasPure.mjs +3 -3
  58. package/esm2020/language/LanguagePipePure.mjs +3 -3
  59. package/esm2020/language/LanguageResolver.mjs +3 -3
  60. package/esm2020/login/LoginGuard.mjs +3 -3
  61. package/esm2020/login/LoginIfCanGuard.mjs +3 -3
  62. package/esm2020/login/LoginNotGuard.mjs +3 -3
  63. package/esm2020/login/LoginResolver.mjs +3 -3
  64. package/esm2020/module/LazyModuleLoader.mjs +3 -3
  65. package/esm2020/notification/INotificationContent.mjs +3 -3
  66. package/esm2020/notification/NotificationModule.mjs +4 -4
  67. package/esm2020/notification/NotificationService.mjs +3 -3
  68. package/esm2020/notification/component/NotificationQuestionBaseComponent.mjs +3 -3
  69. package/esm2020/notification/component/notification/notification.component.mjs +3 -3
  70. package/esm2020/pipe/CamelCasePipe.mjs +3 -3
  71. package/esm2020/pipe/FinancePipe.mjs +3 -3
  72. package/esm2020/pipe/MomentDateAdaptivePipe.mjs +3 -3
  73. package/esm2020/pipe/MomentDateFromNowPipe.mjs +3 -3
  74. package/esm2020/pipe/MomentDatePipe.mjs +3 -3
  75. package/esm2020/pipe/MomentTimePipe.mjs +3 -3
  76. package/esm2020/pipe/NgModelErrorPipe.mjs +3 -3
  77. package/esm2020/pipe/PrettifyPipe.mjs +3 -3
  78. package/esm2020/pipe/SanitizePipe.mjs +3 -3
  79. package/esm2020/pipe/StartCasePipe.mjs +3 -3
  80. package/esm2020/pipe/TimePipe.mjs +3 -3
  81. package/esm2020/pipe/TruncatePipe.mjs +3 -3
  82. package/esm2020/service/BootstrapBreakpointService.mjs +3 -3
  83. package/esm2020/theme/ThemeAssetBackgroundDirective.mjs +3 -3
  84. package/esm2020/theme/ThemeAssetDirective.mjs +3 -3
  85. package/esm2020/theme/ThemeAssetImageDirective.mjs +3 -3
  86. package/esm2020/theme/ThemeModule.mjs +4 -4
  87. package/esm2020/theme/ThemeStyleDirective.mjs +3 -3
  88. package/esm2020/theme/ThemeStyleHoverDirective.mjs +3 -3
  89. package/esm2020/theme/ThemeToggleDirective.mjs +3 -3
  90. package/esm2020/window/IWindowContent.mjs +3 -3
  91. package/esm2020/window/WindowImpl.mjs +48 -2
  92. package/esm2020/window/WindowModule.mjs +4 -4
  93. package/esm2020/window/WindowService.mjs +3 -3
  94. package/esm2020/window/component/WindowBaseComponent.mjs +10 -47
  95. package/esm2020/window/component/WindowDragAreaDirective.mjs +3 -3
  96. package/esm2020/window/component/WindowElement.mjs +12 -4
  97. package/esm2020/window/component/window-close-element/window-close-element.component.mjs +14 -19
  98. package/esm2020/window/component/window-minimize-element/window-minimize-element.component.mjs +14 -19
  99. package/esm2020/window/component/window-question/window-question.component.mjs +3 -3
  100. package/esm2020/window/component/window-resize-element/window-resize-element.component.mjs +13 -18
  101. package/fesm2015/ts-core-angular.mjs +444 -428
  102. package/fesm2015/ts-core-angular.mjs.map +1 -1
  103. package/fesm2020/ts-core-angular.mjs +444 -428
  104. package/fesm2020/ts-core-angular.mjs.map +1 -1
  105. package/package.json +1 -1
  106. package/window/WindowImpl.d.ts +8 -0
  107. package/window/component/WindowBaseComponent.d.ts +1 -9
  108. package/window/component/WindowElement.d.ts +2 -1
  109. package/window/component/window-close-element/window-close-element.component.d.ts +1 -2
  110. package/window/component/window-minimize-element/window-minimize-element.component.d.ts +1 -2
  111. package/window/component/window-resize-element/window-resize-element.component.d.ts +1 -2
@@ -42,9 +42,9 @@ export class FinancePipe {
42
42
  //
43
43
  // --------------------------------------------------------------------------
44
44
  FinancePipe.DEFAULT_FORMAT = '0,0';
45
- FinancePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: FinancePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
46
- FinancePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: FinancePipe, name: "viFinance" });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: FinancePipe, decorators: [{
45
+ FinancePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FinancePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
46
+ FinancePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FinancePipe, name: "viFinance" });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FinancePipe, decorators: [{
48
48
  type: Pipe,
49
49
  args: [{
50
50
  name: 'viFinance'
@@ -40,9 +40,9 @@ MomentDateAdaptivePipe.HOUR_FORMAT = 'HH:ss';
40
40
  MomentDateAdaptivePipe.DAY_FORMAT = 'DD MMM HH:ss';
41
41
  MomentDateAdaptivePipe.MONTH_FORMAT = 'DD MMM HH:ss';
42
42
  MomentDateAdaptivePipe.YEAR_FORMAT = 'LLL';
43
- MomentDateAdaptivePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: MomentDateAdaptivePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
44
- MomentDateAdaptivePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: MomentDateAdaptivePipe, name: "viMomentAdaptiveDate" });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: MomentDateAdaptivePipe, decorators: [{
43
+ MomentDateAdaptivePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MomentDateAdaptivePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
44
+ MomentDateAdaptivePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MomentDateAdaptivePipe, name: "viMomentAdaptiveDate" });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MomentDateAdaptivePipe, decorators: [{
46
46
  type: Pipe,
47
47
  args: [{
48
48
  name: 'viMomentAdaptiveDate'
@@ -11,9 +11,9 @@ export class MomentDateFromNowPipe {
11
11
  return MomentDatePipe.fromNow(value, format);
12
12
  }
13
13
  }
14
- MomentDateFromNowPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: MomentDateFromNowPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
15
- MomentDateFromNowPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: MomentDateFromNowPipe, name: "viMomentDateFromNow" });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: MomentDateFromNowPipe, decorators: [{
14
+ MomentDateFromNowPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MomentDateFromNowPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
15
+ MomentDateFromNowPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MomentDateFromNowPipe, name: "viMomentDateFromNow" });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MomentDateFromNowPipe, decorators: [{
17
17
  type: Pipe,
18
18
  args: [{
19
19
  name: 'viMomentDateFromNow'
@@ -60,9 +60,9 @@ export class MomentDatePipe {
60
60
  //
61
61
  // --------------------------------------------------------------------------
62
62
  MomentDatePipe.DEFAULT_FORMAT = 'LLL';
63
- MomentDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: MomentDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
64
- MomentDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: MomentDatePipe, name: "viMomentDate" });
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: MomentDatePipe, decorators: [{
63
+ MomentDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MomentDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
64
+ MomentDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MomentDatePipe, name: "viMomentDate" });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MomentDatePipe, decorators: [{
66
66
  type: Pipe,
67
67
  args: [{
68
68
  name: 'viMomentDate'
@@ -24,9 +24,9 @@ export class MomentTimePipe {
24
24
  //
25
25
  // --------------------------------------------------------------------------
26
26
  MomentTimePipe.DEFAULT_FORMAT = 'hh:mm:ss';
27
- MomentTimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: MomentTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
28
- MomentTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: MomentTimePipe, name: "viMomentTime" });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: MomentTimePipe, decorators: [{
27
+ MomentTimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MomentTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
28
+ MomentTimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MomentTimePipe, name: "viMomentTime" });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MomentTimePipe, decorators: [{
30
30
  type: Pipe,
31
31
  args: [{
32
32
  name: 'viMomentTime'
@@ -31,9 +31,9 @@ export class NgModelErrorPipe {
31
31
  return this.language.translate('error.form.' + key, value);
32
32
  }
33
33
  }
34
- NgModelErrorPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: NgModelErrorPipe, deps: [{ token: i1.LanguageService }], target: i0.ɵɵFactoryTarget.Pipe });
35
- NgModelErrorPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: NgModelErrorPipe, name: "viNgModelError" });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: NgModelErrorPipe, decorators: [{
34
+ NgModelErrorPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NgModelErrorPipe, deps: [{ token: i1.LanguageService }], target: i0.ɵɵFactoryTarget.Pipe });
35
+ NgModelErrorPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NgModelErrorPipe, name: "viNgModelError" });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NgModelErrorPipe, decorators: [{
37
37
  type: Pipe,
38
38
  args: [{
39
39
  name: 'viNgModelError'
@@ -27,9 +27,9 @@ export class PrettifyPipe {
27
27
  //
28
28
  // --------------------------------------------------------------------------
29
29
  PrettifyPipe.EMPTY_SYMBOL = '-';
30
- PrettifyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: PrettifyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
31
- PrettifyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: PrettifyPipe, name: "viPrettify" });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: PrettifyPipe, decorators: [{
30
+ PrettifyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PrettifyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
31
+ PrettifyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PrettifyPipe, name: "viPrettify" });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PrettifyPipe, decorators: [{
33
33
  type: Pipe,
34
34
  args: [{
35
35
  name: 'viPrettify'
@@ -36,9 +36,9 @@ export class SanitizePipe {
36
36
  }
37
37
  }
38
38
  }
39
- SanitizePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: SanitizePipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
40
- SanitizePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: SanitizePipe, name: "viSanitize" });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: SanitizePipe, decorators: [{
39
+ SanitizePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SanitizePipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
40
+ SanitizePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SanitizePipe, name: "viSanitize" });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SanitizePipe, decorators: [{
42
42
  type: Pipe,
43
43
  args: [{
44
44
  name: 'viSanitize'
@@ -13,9 +13,9 @@ export class StartCasePipe {
13
13
  return value.charAt(0).toUpperCase() + value.slice(1);
14
14
  }
15
15
  }
16
- StartCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: StartCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
17
- StartCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: StartCasePipe, name: "viStartCase" });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: StartCasePipe, decorators: [{
16
+ StartCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: StartCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
17
+ StartCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: StartCasePipe, name: "viStartCase" });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: StartCasePipe, decorators: [{
19
19
  type: Pipe,
20
20
  args: [{
21
21
  name: 'viStartCase'
@@ -26,9 +26,9 @@ export class TimePipe {
26
26
  //
27
27
  // --------------------------------------------------------------------------
28
28
  TimePipe.DEFAULT_FORMAT = '00:00:00';
29
- TimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: TimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
30
- TimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: TimePipe, name: "viTime" });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: TimePipe, decorators: [{
29
+ TimePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
30
+ TimePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TimePipe, name: "viTime" });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TimePipe, decorators: [{
32
32
  type: Pipe,
33
33
  args: [{
34
34
  name: 'viTime'
@@ -14,9 +14,9 @@ export class TruncatePipe {
14
14
  return _.truncate(value, { length: maxLength });
15
15
  }
16
16
  }
17
- TruncatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: TruncatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
18
- TruncatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: TruncatePipe, name: "viTruncate" });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: TruncatePipe, decorators: [{
17
+ TruncatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TruncatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
18
+ TruncatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TruncatePipe, name: "viTruncate" });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TruncatePipe, decorators: [{
20
20
  type: Pipe,
21
21
  args: [{
22
22
  name: 'viTruncate'
@@ -95,9 +95,9 @@ BootstrapBreakpointService.DEFAULT_MD = 768;
95
95
  BootstrapBreakpointService.DEFAULT_LG = 992;
96
96
  BootstrapBreakpointService.DEFAULT_XL = 1200;
97
97
  BootstrapBreakpointService.DEFAULT_XXL = 1400;
98
- BootstrapBreakpointService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: BootstrapBreakpointService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
99
- BootstrapBreakpointService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: BootstrapBreakpointService, providedIn: 'root' });
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: BootstrapBreakpointService, decorators: [{
98
+ BootstrapBreakpointService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BootstrapBreakpointService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
99
+ BootstrapBreakpointService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BootstrapBreakpointService, providedIn: 'root' });
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BootstrapBreakpointService, decorators: [{
101
101
  type: Injectable,
102
102
  args: [{ providedIn: 'root' }]
103
103
  }], ctorParameters: function () { return [{ type: i1.BreakpointObserver }]; } });
@@ -25,9 +25,9 @@ export class ThemeAssetBackgroundDirective extends ThemeAssetDirective {
25
25
  ViewUtil.removeStyle(this.element, 'backgroundImage');
26
26
  }
27
27
  }
28
- ThemeAssetBackgroundDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeAssetBackgroundDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThemeService }, { token: i1.ThemeAssetService }], target: i0.ɵɵFactoryTarget.Directive });
29
- ThemeAssetBackgroundDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.10", type: ThemeAssetBackgroundDirective, selector: "[vi-theme-background]", usesInheritance: true, ngImport: i0 });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeAssetBackgroundDirective, decorators: [{
28
+ ThemeAssetBackgroundDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeAssetBackgroundDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThemeService }, { token: i1.ThemeAssetService }], target: i0.ɵɵFactoryTarget.Directive });
29
+ ThemeAssetBackgroundDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: ThemeAssetBackgroundDirective, selector: "[vi-theme-background]", usesInheritance: true, ngImport: i0 });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeAssetBackgroundDirective, decorators: [{
31
31
  type: Directive,
32
32
  args: [{
33
33
  selector: '[vi-theme-background]'
@@ -192,9 +192,9 @@ export class ThemeAssetDirective extends Destroyable {
192
192
  }
193
193
  }
194
194
  }
195
- ThemeAssetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeAssetDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThemeService }, { token: i1.ThemeAssetService }], target: i0.ɵɵFactoryTarget.Directive });
196
- ThemeAssetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.10", type: ThemeAssetDirective, inputs: { isSound: "isSound", isVideo: "isVideo", isFile: "isFile", isImage: "isImage", isBackground: "isBackground", isIgnoreTheme: "isIgnoreTheme", name: "name", extension: "extension" }, host: { listeners: { "error": "errorLoadingHandler($event)" } }, usesInheritance: true, ngImport: i0 });
197
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeAssetDirective, decorators: [{
195
+ ThemeAssetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeAssetDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThemeService }, { token: i1.ThemeAssetService }], target: i0.ɵɵFactoryTarget.Directive });
196
+ ThemeAssetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: ThemeAssetDirective, inputs: { isSound: "isSound", isVideo: "isVideo", isFile: "isFile", isImage: "isImage", isBackground: "isBackground", isIgnoreTheme: "isIgnoreTheme", name: "name", extension: "extension" }, host: { listeners: { "error": "errorLoadingHandler($event)" } }, usesInheritance: true, ngImport: i0 });
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeAssetDirective, decorators: [{
198
198
  type: Directive
199
199
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ThemeService }, { type: i1.ThemeAssetService }]; }, propDecorators: { errorLoadingHandler: [{
200
200
  type: HostListener,
@@ -23,9 +23,9 @@ export class ThemeAssetImageDirective extends ThemeAssetDirective {
23
23
  this.element.src = null;
24
24
  }
25
25
  }
26
- ThemeAssetImageDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeAssetImageDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThemeService }, { token: i1.ThemeAssetService }], target: i0.ɵɵFactoryTarget.Directive });
27
- ThemeAssetImageDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.10", type: ThemeAssetImageDirective, selector: "[vi-theme-image]", usesInheritance: true, ngImport: i0 });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeAssetImageDirective, decorators: [{
26
+ ThemeAssetImageDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeAssetImageDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThemeService }, { token: i1.ThemeAssetService }], target: i0.ɵɵFactoryTarget.Directive });
27
+ ThemeAssetImageDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: ThemeAssetImageDirective, selector: "[vi-theme-image]", usesInheritance: true, ngImport: i0 });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeAssetImageDirective, decorators: [{
29
29
  type: Directive,
30
30
  args: [{
31
31
  selector: '[vi-theme-image]'
@@ -38,10 +38,10 @@ export class ThemeModule {
38
38
  };
39
39
  }
40
40
  }
41
- ThemeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
42
- ThemeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeModule, declarations: [ThemeToggleDirective, ThemeAssetImageDirective, ThemeAssetBackgroundDirective, ThemeStyleDirective, ThemeStyleHoverDirective], imports: [CookieModule], exports: [ThemeToggleDirective, ThemeAssetImageDirective, ThemeAssetBackgroundDirective, ThemeStyleDirective, ThemeStyleHoverDirective] });
43
- ThemeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeModule, imports: [[CookieModule]] });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeModule, decorators: [{
41
+ ThemeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
42
+ ThemeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeModule, declarations: [ThemeToggleDirective, ThemeAssetImageDirective, ThemeAssetBackgroundDirective, ThemeStyleDirective, ThemeStyleHoverDirective], imports: [CookieModule], exports: [ThemeToggleDirective, ThemeAssetImageDirective, ThemeAssetBackgroundDirective, ThemeStyleDirective, ThemeStyleHoverDirective] });
43
+ ThemeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeModule, imports: [[CookieModule]] });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeModule, decorators: [{
45
45
  type: NgModule,
46
46
  args: [{
47
47
  imports: [CookieModule],
@@ -97,9 +97,9 @@ export class ThemeStyleDirective extends Destroyable {
97
97
  }
98
98
  }
99
99
  }
100
- ThemeStyleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeStyleDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Directive });
101
- ThemeStyleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.10", type: ThemeStyleDirective, selector: "[vi-theme-style]", inputs: { flags: "flags", styleName: "styleName", key: ["vi-theme-style", "key"] }, usesInheritance: true, ngImport: i0 });
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeStyleDirective, decorators: [{
100
+ ThemeStyleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeStyleDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Directive });
101
+ ThemeStyleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: ThemeStyleDirective, selector: "[vi-theme-style]", inputs: { flags: "flags", styleName: "styleName", key: ["vi-theme-style", "key"] }, usesInheritance: true, ngImport: i0 });
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeStyleDirective, decorators: [{
103
103
  type: Directive,
104
104
  args: [{
105
105
  selector: '[vi-theme-style]'
@@ -89,9 +89,9 @@ export class ThemeStyleHoverDirective extends ThemeStyleDirective {
89
89
  super.flags = value;
90
90
  }
91
91
  }
92
- ThemeStyleHoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeStyleHoverDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Directive });
93
- ThemeStyleHoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.10", type: ThemeStyleHoverDirective, selector: "[vi-theme-style-hover]", inputs: { key: ["vi-theme-style-hover", "key"], styleName: "styleName", flags: "flags" }, usesInheritance: true, ngImport: i0 });
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeStyleHoverDirective, decorators: [{
92
+ ThemeStyleHoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeStyleHoverDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Directive });
93
+ ThemeStyleHoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: ThemeStyleHoverDirective, selector: "[vi-theme-style-hover]", inputs: { key: ["vi-theme-style-hover", "key"], styleName: "styleName", flags: "flags" }, usesInheritance: true, ngImport: i0 });
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeStyleHoverDirective, decorators: [{
95
95
  type: Directive,
96
96
  args: [{
97
97
  selector: '[vi-theme-style-hover]'
@@ -48,9 +48,9 @@ export class ThemeToggleDirective extends Destroyable {
48
48
  this.theme = null;
49
49
  }
50
50
  }
51
- ThemeToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeToggleDirective, deps: [{ token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Directive });
52
- ThemeToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.10", type: ThemeToggleDirective, selector: "[vi-theme-toggle]", host: { listeners: { "click": "clickHandler($event)" } }, usesInheritance: true, ngImport: i0 });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: ThemeToggleDirective, decorators: [{
51
+ ThemeToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeToggleDirective, deps: [{ token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Directive });
52
+ ThemeToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: ThemeToggleDirective, selector: "[vi-theme-toggle]", host: { listeners: { "click": "clickHandler($event)" } }, usesInheritance: true, ngImport: i0 });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ThemeToggleDirective, decorators: [{
54
54
  type: Directive,
55
55
  args: [{
56
56
  selector: '[vi-theme-toggle]'
@@ -113,9 +113,9 @@ export class IWindowContent extends DestroyableContainer {
113
113
  }
114
114
  }
115
115
  }
116
- IWindowContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: IWindowContent, deps: [{ token: WINDOW_CONTENT_CONTAINER, optional: true }], target: i0.ɵɵFactoryTarget.Component });
117
- IWindowContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.10", type: IWindowContent, selector: "ng-component", inputs: { isDisabled: "isDisabled", window: "window" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: IWindowContent, decorators: [{
116
+ IWindowContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: IWindowContent, deps: [{ token: WINDOW_CONTENT_CONTAINER, optional: true }], target: i0.ɵɵFactoryTarget.Component });
117
+ IWindowContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: IWindowContent, selector: "ng-component", inputs: { isDisabled: "isDisabled", window: "window" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: IWindowContent, decorators: [{
119
119
  type: Component,
120
120
  args: [{ template: '' }]
121
121
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -3,6 +3,7 @@ import { ViewUtil } from '../util/ViewUtil';
3
3
  import { WindowEvent } from './IWindow';
4
4
  import { WindowBase } from './WindowBase';
5
5
  import * as _ from 'lodash';
6
+ import { ArrayUtil } from '@ts-core/common/util';
6
7
  export class WindowImpl extends WindowBase {
7
8
  // --------------------------------------------------------------------------
8
9
  //
@@ -60,6 +61,7 @@ export class WindowImpl extends WindowBase {
60
61
  this.mouseClickHandler(event);
61
62
  };
62
63
  this.observer = new Subject();
64
+ this.elements = new Array();
63
65
  this.properties = properties;
64
66
  this.content.window = this;
65
67
  // Have to save for unsubscribe on destroy
@@ -73,14 +75,48 @@ export class WindowImpl extends WindowBase {
73
75
  .pipe(filter(event => event === WindowEvent.CONTENT_READY), takeUntil(this.destroyed))
74
76
  .subscribe(this.updatePosition);
75
77
  }
78
+ // --------------------------------------------------------------------------
79
+ //
80
+ // Elements Methods
81
+ //
82
+ // --------------------------------------------------------------------------
83
+ elementsCreate() {
84
+ this.elements = new Array();
85
+ }
86
+ elementsDestroy() {
87
+ this.elements.forEach(item => this.elementDestroy(item));
88
+ this.elements = null;
89
+ }
90
+ elementAdd(item) {
91
+ this.elements.push(item);
92
+ item.instance.window = this;
93
+ return item;
94
+ }
95
+ elementRemove(item) {
96
+ ArrayUtil.remove(this.elements, item);
97
+ this.elementDestroy(item);
98
+ return item;
99
+ }
100
+ elementDestroy(item) {
101
+ item.instance.window = null;
102
+ item.destroy();
103
+ return item;
104
+ }
76
105
  setProperties() {
77
106
  super.setProperties();
78
107
  ViewUtil.addClass(this.container, 'vi-window');
79
108
  ViewUtil.toggleClass(this.container, 'vi-modal', this.config.isModal);
109
+ this.container.addEventListener('click', this.mouseClickHandlerProxy, true);
110
+ if (!this.config.isModal) {
111
+ this.container.addEventListener('mousedown', this.mouseDownHandlerProxy);
112
+ }
113
+ /*
80
114
  if (!this.config.isModal) {
81
115
  this.container.addEventListener('click', this.mouseClickHandlerProxy, true);
82
116
  this.container.addEventListener('mousedown', this.mouseDownHandlerProxy);
83
117
  }
118
+ */
119
+ this.elementsCreate();
84
120
  }
85
121
  commitIsBlinkProperties() { }
86
122
  commitIsShakingProperties() { }
@@ -96,7 +132,16 @@ export class WindowImpl extends WindowBase {
96
132
  return this.properties.reference;
97
133
  }
98
134
  isNeedClickStopPropagation(event) {
99
- return !this.isWasOnTop;
135
+ // return !this.isWasOnTop;
136
+ if (this.isWasOnTop) {
137
+ return false;
138
+ }
139
+ let element = _.find(this.elements, item => item.location.nativeElement === event.target);
140
+ if (_.isNil(element)) {
141
+ return false;
142
+ }
143
+ element.instance.clickHandler(event);
144
+ return true;
100
145
  }
101
146
  stopBlinkIfNeed() {
102
147
  this.isBlink = false;
@@ -133,6 +178,7 @@ export class WindowImpl extends WindowBase {
133
178
  return;
134
179
  }
135
180
  super.destroy();
181
+ this.elementsDestroy();
136
182
  this._container.removeEventListener('click', this.mouseClickHandlerProxy, true);
137
183
  this._container.removeEventListener('mousedown', this.mouseDownHandlerProxy);
138
184
  if (!_.isNil(this.content)) {
@@ -316,4 +362,4 @@ export class WindowImpl extends WindowBase {
316
362
  WindowImpl.BLINK_DELAY = 500;
317
363
  WindowImpl.SHAKE_DELAY = 500;
318
364
  WindowImpl.RESIZE_DELAY = 200;
319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2luZG93SW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93aW5kb3cvV2luZG93SW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQVcsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLFVBQW9CLFNBQVEsVUFBYTtJQXlDbEQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFZLFVBQTRCO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBckNaLDZFQUE2RTtRQUM3RSxFQUFFO1FBQ0YsY0FBYztRQUNkLEVBQUU7UUFDRiw2RUFBNkU7UUFFckUsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBSzVCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBeUNwQyw2RUFBNkU7UUFDN0UsRUFBRTtRQUNGLHFCQUFxQjtRQUNyQixFQUFFO1FBQ0YsNkVBQTZFO1FBRW5FLGNBQVMsR0FBRyxHQUFTLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFD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LFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBVyxVQUFVLENBQUMsS0FBYztRQUNoQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUMsQ0FBQzs7QUExWUQsNkVBQTZFO0FBQzdFLEVBQUU7QUFDRixhQUFhO0FBQ2IsRUFBRTtBQUNGLDZFQUE2RTtBQUUvRCxzQkFBVyxHQUFHLEdBQUcsQ0FBQztBQUNsQixzQkFBVyxHQUFHLEdBQUcsQ0FBQztBQUNsQix1QkFBWSxHQUFHLEdBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBWaWV3VXRpbCB9IGZyb20gJy4uL3V0aWwvVmlld1V0aWwnO1xuaW1wb3J0IHsgSVdpbmRvdywgV2luZG93RXZlbnQgfSBmcm9tICcuL0lXaW5kb3cnO1xuaW1wb3J0IHsgSVdpbmRvd0NvbnRlbnQgfSBmcm9tICcuL0lXaW5kb3dDb250ZW50JztcbmltcG9ydCB7IFdpbmRvd0Jhc2UgfSBmcm9tICcuL1dpbmRvd0Jhc2UnO1xuaW1wb3J0IHsgV2luZG93Q29uZmlnIH0gZnJvbSAnLi9XaW5kb3dDb25maWcnO1xuaW1wb3J0IHsgV2luZG93UHJvcGVydGllcyB9IGZyb20gJy4vV2luZG93UHJvcGVydGllcyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBjbGFzcyBXaW5kb3dJbXBsPFQgPSBhbnk+IGV4dGVuZHMgV2luZG93QmFzZTxUPiBpbXBsZW1lbnRzIElXaW5kb3cge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgQ29uc3RhbnRzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIHN0YXRpYyBCTElOS19ERUxBWSA9IDUwMDtcbiAgICBwdWJsaWMgc3RhdGljIFNIQUtFX0RFTEFZID0gNTAwO1xuICAgIHB1YmxpYyBzdGF0aWMgUkVTSVpFX0RFTEFZID0gMjAwO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJpdmF0ZSBfaXNCbGluazogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgYmxpbmtUaW1lcjogYW55O1xuXG4gICAgcHJpdmF0ZSBfaXNTaGFraW5nOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBzaGFrZVRpbWVyOiBhbnk7XG5cbiAgICBwcml2YXRlIHJlc2l6ZVRpbWVyOiBhbnk7XG5cbiAgICBwcml2YXRlIF9pc09uVG9wOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzTWluaW1pemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGlzT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBpc1dhc09uVG9wOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF93cmFwcGVyOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIF9iYWNrZHJvcDogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBfY29udGFpbmVyOiBIVE1MRWxlbWVudDtcblxuICAgIHByb3RlY3RlZCBwcm9wZXJ0aWVzOiBXaW5kb3dQcm9wZXJ0aWVzO1xuXG4gICAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBvYnNlcnZlcjogU3ViamVjdDxzdHJpbmc+O1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6IFdpbmRvd1Byb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICAgICAgdGhpcy5jb250ZW50LndpbmRvdyA9IHRoaXM7XG5cbiAgICAgICAgLy8gSGF2ZSB0byBzYXZlIGZvciB1bnN1YnNjcmliZSBvbiBkZXN0cm95XG4gICAgICAgIHRoaXMuX3dyYXBwZXIgPSB0aGlzLnByb3BlcnRpZXMub3ZlcmxheS5ob3N0RWxlbWVudDtcbiAgICAgICAgdGhpcy5fYmFja2Ryb3AgPSB0aGlzLnByb3BlcnRpZXMub3ZlcmxheS5iYWNrZHJvcEVsZW1lbnQ7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lciA9IHRoaXMucHJvcGVydGllcy5vdmVybGF5Lm92ZXJsYXlFbGVtZW50O1xuXG4gICAgICAgIHRoaXMuc2V0UHJvcGVydGllcygpO1xuICAgICAgICB0aGlzLmdldFJlZmVyZW5jZSgpLmFmdGVyT3BlbmVkKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUodGhpcy5zZXRPcGVuZWQpO1xuICAgICAgICB0aGlzLmdldFJlZmVyZW5jZSgpLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUodGhpcy5zZXRDbG9zZWQpO1xuXG4gICAgICAgIHRoaXMuZXZlbnRzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgPT09IFdpbmRvd0V2ZW50LkNPTlRFTlRfUkVBRFkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy51cGRhdGVQb3NpdGlvbik7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBzZXRDbG9zZWQgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuaXNPcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50LkNMT1NFRCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgc2V0T3BlbmVkID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzT3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50Lk9QRU5FRCk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBibGlua1RvZ2dsZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc0JsaW5rID0gIXRoaXMuaXNCbGluaztcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIHN0b3BTaGFraW5nID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzU2hha2luZyA9IGZhbHNlO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgZW1pdFJlc2l6ZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50LlJFU0laRUQpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgc2V0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuc2V0UHJvcGVydGllcygpO1xuICAgICAgICBWaWV3VXRpbC5hZGRDbGFzcyh0aGlzLmNvbnRhaW5lciwgJ3ZpLXdpbmRvdycpO1xuICAgICAgICBWaWV3VXRpbC50b2dnbGVDbGFzcyh0aGlzLmNvbnRhaW5lciwgJ3ZpLW1vZGFsJywgdGhpcy5jb25maWcuaXNNb2RhbCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZy5pc01vZGFsKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMubW91c2VDbGlja0hhbmRsZXJQcm94eSwgdHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm1vdXNlRG93bkhhbmRsZXJQcm94eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29tbWl0SXNCbGlua1Byb3BlcnRpZXMoKTogdm9pZCB7fVxuICAgIHByb3RlY3RlZCBjb21taXRJc1NoYWtpbmdQcm9wZXJ0aWVzKCk6IHZvaWQge31cbiAgICBwcm90ZWN0ZWQgY29tbWl0SXNEaXNhYmxlZFByb3BlcnRpZXMoKTogdm9pZCB7fVxuICAgIHByb3RlY3RlZCBjb21taXRJc01pbmltaXplZFByb3BlcnRpZXMoKTogdm9pZCB7fVxuXG4gICAgcHJvdGVjdGVkIGdldENvbmZpZygpOiBXaW5kb3dDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzLmNvbmZpZztcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldENvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lcjtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldFJlZmVyZW5jZSgpOiBNYXREaWFsb2dSZWY8SVdpbmRvd0NvbnRlbnQ8VD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5yZWZlcmVuY2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzTmVlZENsaWNrU3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc1dhc09uVG9wO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RvcEJsaW5rSWZOZWVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzQmxpbmsgPSBmYWxzZTtcbiAgICAgICAgaWYgKCF0aGlzLmJsaW5rVGltZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYmxpbmtUaW1lcik7XG4gICAgICAgIHRoaXMuYmxpbmtUaW1lciA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc2l6ZUhhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pc09wZW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVyKTtcbiAgICAgICAgdGhpcy5yZXNpemVUaW1lciA9IHNldFRpbWVvdXQodGhpcy5lbWl0UmVzaXplLCBXaW5kb3dJbXBsLlJFU0laRV9ERUxBWSk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBtb3VzZURvd25IYW5kbGVyKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T25Ub3AoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbW91c2VDbGlja0hhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNOZWVkQ2xpY2tTdG9wUHJvcGFnYXRpb24oZXZlbnQpKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuaXNXYXNPblRvcCkge1xuICAgICAgICAgICAgdGhpcy5pc1dhc09uVG9wID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbW91c2VEb3duSGFuZGxlclByb3h5ID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMubW91c2VEb3duSGFuZGxlcihldmVudCk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgbW91c2VDbGlja0hhbmRsZXJQcm94eSA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLm1vdXNlQ2xpY2tIYW5kbGVyKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBlbWl0KGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0UmVmZXJlbmNlKCkuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG5cbiAgICAgICAgdGhpcy5fY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5tb3VzZUNsaWNrSGFuZGxlclByb3h5LCB0cnVlKTtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMubW91c2VEb3duSGFuZGxlclByb3h5KTtcblxuICAgICAgICBpZiAoIV8uaXNOaWwodGhpcy5jb250ZW50KSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50LmRlc3Ryb3koKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghXy5pc05pbCh0aGlzLm9ic2VydmVyKSkge1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBudWxsO1xuXG4gICAgICAgIHRoaXMuX3dyYXBwZXIgPSBudWxsO1xuICAgICAgICB0aGlzLl9iYWNrZHJvcCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lciA9IG51bGw7XG5cbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmJsaW5rVGltZXIpO1xuICAgICAgICB0aGlzLmJsaW5rVGltZXIgPSBudWxsO1xuXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zaGFrZVRpbWVyKTtcbiAgICAgICAgdGhpcy5zaGFrZVRpbWVyID0gbnVsbDtcblxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lcik7XG4gICAgICAgIHRoaXMucmVzaXplVGltZXIgPSBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBibGluaygpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmJsaW5rVGltZXIpO1xuICAgICAgICB0aGlzLmJsaW5rVGltZXIgPSBzZXRJbnRlcnZhbCh0aGlzLmJsaW5rVG9nZ2xlLCBXaW5kb3dJbXBsLkJMSU5LX0RFTEFZKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hha2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzU2hha2luZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNTaGFraW5nID0gdHJ1ZTtcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnNoYWtlVGltZXIpO1xuICAgICAgICB0aGlzLnNoYWtlVGltZXIgPSBzZXRJbnRlcnZhbCh0aGlzLnN0b3BTaGFraW5nLCBXaW5kb3dJbXBsLlNIQUtFX0RFTEFZKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0T25Ub3AoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNXYXNPblRvcCA9IHRoaXMuaXNPblRvcDtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50LlNFVF9PTl9UT1ApO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgU2l6ZSBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLndpZHRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGVpZ2h0O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRXaWR0aCh2YWx1ZTogbnVtYmVyLCBpc05lZWROb3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2lkdGggPSB2YWx1ZTtcbiAgICAgICAgaWYgKGlzTmVlZE5vdGlmeSkge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVIYW5kbGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0SGVpZ2h0KHZhbHVlOiBudW1iZXIsIGlzTmVlZE5vdGlmeTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oZWlnaHQgPSB2YWx1ZTtcbiAgICAgICAgaWYgKGlzTmVlZE5vdGlmeSkge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVIYW5kbGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2l6ZSh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFdpZHRoKHdpZHRoLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuc2V0SGVpZ2h0KGhlaWdodCwgZmFsc2UpO1xuICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZXIoKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIE1vdmUgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXRYKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLng7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFgodmFsdWU6IG51bWJlciwgaXNOZWVkTm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnggPSB2YWx1ZTtcbiAgICAgICAgaWYgKGlzTmVlZE5vdGlmeSkge1xuICAgICAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50Lk1PVkVEKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRZKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXRZKHZhbHVlOiBudW1iZXIsIGlzTmVlZE5vdGlmeTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy55ID0gdmFsdWU7XG4gICAgICAgIGlmIChpc05lZWROb3RpZnkpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5NT1ZFRCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbW92ZSh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFgoeCwgZmFsc2UpO1xuICAgICAgICB0aGlzLnNldFkoeSwgZmFsc2UpO1xuICAgICAgICB0aGlzLmVtaXQoV2luZG93RXZlbnQuTU9WRUQpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHJpdmF0ZSBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGdldCBpc0JsaW5rKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNCbGluaztcbiAgICB9XG4gICAgcHJvdGVjdGVkIHNldCBpc0JsaW5rKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5faXNCbGluaykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzQmxpbmsgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb21taXRJc0JsaW5rUHJvcGVydGllcygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaXNTaGFraW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaGFraW5nO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgc2V0IGlzU2hha2luZyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2lzU2hha2luZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzU2hha2luZyA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbW1pdElzU2hha2luZ1Byb3BlcnRpZXMoKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldCBldmVudHMoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JzZXJ2ZXIuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb25maWcoKTogV2luZG93Q29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5jb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb250ZW50KCk6IElXaW5kb3dDb250ZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5yZWZlcmVuY2UgPyB0aGlzLnByb3BlcnRpZXMucmVmZXJlbmNlLmNvbXBvbmVudEluc3RhbmNlIDogbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250YWluZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB3cmFwcGVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dyYXBwZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBiYWNrZHJvcCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9iYWNrZHJvcDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzT25Ub3AoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc09uVG9wO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGlzT25Ub3AodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc09uVG9wKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNPblRvcCA9IHZhbHVlO1xuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYmxpbmtUaW1lcik7XG4gICAgICAgIHRoaXMuaXNCbGluayA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNNaW5pbWl6ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc01pbmltaXplZDtcbiAgICB9XG4gICAgcHVibGljIHNldCBpc01pbmltaXplZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2lzTWluaW1pemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNNaW5pbWl6ZWQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb21taXRJc01pbmltaXplZFByb3BlcnRpZXMoKTtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50Lk1JTklNSVpFRF9DSEFOR0VEKTtcbiAgICAgICAgdGhpcy5zdG9wQmxpbmtJZk5lZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0Rpc2FibGVkO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGlzRGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNEaXNhYmxlZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbW1pdElzRGlzYWJsZWRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5ESVNBQkxFRF9DSEFOR0VEKTtcbiAgICB9XG59XG4iXX0=
365
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2luZG93SW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93aW5kb3cvV2luZG93SW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQVcsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2pELE1BQU0sT0FBTyxVQUFvQixTQUFRLFVBQWE7SUEwQ2xELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsZUFBZTtJQUNmLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBWSxVQUE0QjtRQUNwQyxLQUFLLEVBQUUsQ0FBQztRQXRDWiw2RUFBNkU7UUFDN0UsRUFBRTtRQUNGLGNBQWM7UUFDZCxFQUFFO1FBQ0YsNkVBQTZFO1FBRXJFLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUs1QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTlCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQTRFcEMsNkVBQTZFO1FBQzdFLEVBQUU7UUFDRixxQkFBcUI7UUFDckIsRUFBRTtRQUNGLDZFQUE2RTtRQUVuRSxjQUFTLEdBQUcsR0FBUyxFQUFFO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENB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QVUsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFXLFdBQVcsQ0FBQyxLQUFjO1FBQ2pDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDN0IsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQVcsVUFBVSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM1QixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVDLENBQUM7O0FBaGNELDZFQUE2RTtBQUM3RSxFQUFFO0FBQ0YsYUFBYTtBQUNiLEVBQUU7QUFDRiw2RUFBNkU7QUFFL0Qsc0JBQVcsR0FBRyxHQUFHLENBQUM7QUFDbEIsc0JBQVcsR0FBRyxHQUFHLENBQUM7QUFDbEIsdUJBQVksR0FBRyxHQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVmlld1V0aWwgfSBmcm9tICcuLi91dGlsL1ZpZXdVdGlsJztcbmltcG9ydCB7IElXaW5kb3csIFdpbmRvd0V2ZW50IH0gZnJvbSAnLi9JV2luZG93JztcbmltcG9ydCB7IElXaW5kb3dDb250ZW50IH0gZnJvbSAnLi9JV2luZG93Q29udGVudCc7XG5pbXBvcnQgeyBXaW5kb3dCYXNlIH0gZnJvbSAnLi9XaW5kb3dCYXNlJztcbmltcG9ydCB7IFdpbmRvd0NvbmZpZyB9IGZyb20gJy4vV2luZG93Q29uZmlnJztcbmltcG9ydCB7IFdpbmRvd1Byb3BlcnRpZXMgfSBmcm9tICcuL1dpbmRvd1Byb3BlcnRpZXMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgV2luZG93RWxlbWVudCB9IGZyb20gJy4vY29tcG9uZW50L1dpbmRvd0VsZW1lbnQnO1xuaW1wb3J0IHsgQXJyYXlVdGlsIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uL3V0aWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBXaW5kb3dJbXBsPFQgPSBhbnk+IGV4dGVuZHMgV2luZG93QmFzZTxUPiBpbXBsZW1lbnRzIElXaW5kb3cge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgQ29uc3RhbnRzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIHN0YXRpYyBCTElOS19ERUxBWSA9IDUwMDtcbiAgICBwdWJsaWMgc3RhdGljIFNIQUtFX0RFTEFZID0gNTAwO1xuICAgIHB1YmxpYyBzdGF0aWMgUkVTSVpFX0RFTEFZID0gMjAwO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJpdmF0ZSBfaXNCbGluazogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgYmxpbmtUaW1lcjogYW55O1xuXG4gICAgcHJpdmF0ZSBfaXNTaGFraW5nOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBzaGFrZVRpbWVyOiBhbnk7XG5cbiAgICBwcml2YXRlIHJlc2l6ZVRpbWVyOiBhbnk7XG5cbiAgICBwcml2YXRlIF9pc09uVG9wOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzTWluaW1pemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGlzT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBpc1dhc09uVG9wOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF93cmFwcGVyOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIF9iYWNrZHJvcDogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBfY29udGFpbmVyOiBIVE1MRWxlbWVudDtcblxuICAgIHByb3RlY3RlZCBlbGVtZW50czogQXJyYXk8Q29tcG9uZW50UmVmPFdpbmRvd0VsZW1lbnQ+PjtcbiAgICBwcm90ZWN0ZWQgcHJvcGVydGllczogV2luZG93UHJvcGVydGllcztcblxuICAgIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgb2JzZXJ2ZXI6IFN1YmplY3Q8c3RyaW5nPjtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgQ29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiBXaW5kb3dQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgICB0aGlzLmVsZW1lbnRzID0gbmV3IEFycmF5KCk7XG5cbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICAgICAgdGhpcy5jb250ZW50LndpbmRvdyA9IHRoaXM7XG5cbiAgICAgICAgLy8gSGF2ZSB0byBzYXZlIGZvciB1bnN1YnNjcmliZSBvbiBkZXN0cm95XG4gICAgICAgIHRoaXMuX3dyYXBwZXIgPSB0aGlzLnByb3BlcnRpZXMub3ZlcmxheS5ob3N0RWxlbWVudDtcbiAgICAgICAgdGhpcy5fYmFja2Ryb3AgPSB0aGlzLnByb3BlcnRpZXMub3ZlcmxheS5iYWNrZHJvcEVsZW1lbnQ7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lciA9IHRoaXMucHJvcGVydGllcy5vdmVybGF5Lm92ZXJsYXlFbGVtZW50O1xuXG4gICAgICAgIHRoaXMuc2V0UHJvcGVydGllcygpO1xuICAgICAgICB0aGlzLmdldFJlZmVyZW5jZSgpLmFmdGVyT3BlbmVkKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUodGhpcy5zZXRPcGVuZWQpO1xuICAgICAgICB0aGlzLmdldFJlZmVyZW5jZSgpLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUodGhpcy5zZXRDbG9zZWQpO1xuXG4gICAgICAgIHRoaXMuZXZlbnRzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgPT09IFdpbmRvd0V2ZW50LkNPTlRFTlRfUkVBRFkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy51cGRhdGVQb3NpdGlvbik7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBFbGVtZW50cyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRzQ3JlYXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRzID0gbmV3IEFycmF5KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRzRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50cy5mb3JFYWNoKGl0ZW0gPT4gdGhpcy5lbGVtZW50RGVzdHJveShpdGVtKSk7XG4gICAgICAgIHRoaXMuZWxlbWVudHMgPSBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBlbGVtZW50QWRkKGl0ZW06IENvbXBvbmVudFJlZjxXaW5kb3dFbGVtZW50Pik6IENvbXBvbmVudFJlZjxXaW5kb3dFbGVtZW50PiB7XG4gICAgICAgIHRoaXMuZWxlbWVudHMucHVzaChpdGVtKTtcbiAgICAgICAgaXRlbS5pbnN0YW5jZS53aW5kb3cgPSB0aGlzO1xuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZWxlbWVudFJlbW92ZShpdGVtOiBDb21wb25lbnRSZWY8V2luZG93RWxlbWVudD4pOiBDb21wb25lbnRSZWY8V2luZG93RWxlbWVudD4ge1xuICAgICAgICBBcnJheVV0aWwucmVtb3ZlKHRoaXMuZWxlbWVudHMsIGl0ZW0pO1xuICAgICAgICB0aGlzLmVsZW1lbnREZXN0cm95KGl0ZW0pO1xuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZWxlbWVudERlc3Ryb3koaXRlbTogQ29tcG9uZW50UmVmPFdpbmRvd0VsZW1lbnQ+KTogQ29tcG9uZW50UmVmPFdpbmRvd0VsZW1lbnQ+IHtcbiAgICAgICAgaXRlbS5pbnN0YW5jZS53aW5kb3cgPSBudWxsO1xuICAgICAgICBpdGVtLmRlc3Ryb3koKTtcbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBzZXRDbG9zZWQgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuaXNPcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50LkNMT1NFRCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgc2V0T3BlbmVkID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzT3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50Lk9QRU5FRCk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBibGlua1RvZ2dsZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc0JsaW5rID0gIXRoaXMuaXNCbGluaztcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIHN0b3BTaGFraW5nID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzU2hha2luZyA9IGZhbHNlO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgZW1pdFJlc2l6ZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50LlJFU0laRUQpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgc2V0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuc2V0UHJvcGVydGllcygpO1xuICAgICAgICBWaWV3VXRpbC5hZGRDbGFzcyh0aGlzLmNvbnRhaW5lciwgJ3ZpLXdpbmRvdycpO1xuICAgICAgICBWaWV3VXRpbC50b2dnbGVDbGFzcyh0aGlzLmNvbnRhaW5lciwgJ3ZpLW1vZGFsJywgdGhpcy5jb25maWcuaXNNb2RhbCk7XG5cbiAgICAgICAgdGhpcy5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm1vdXNlQ2xpY2tIYW5kbGVyUHJveHksIHRydWUpO1xuICAgICAgICBpZiAoIXRoaXMuY29uZmlnLmlzTW9kYWwpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMubW91c2VEb3duSGFuZGxlclByb3h5KTtcbiAgICAgICAgfVxuICAgICAgICAvKlxuICAgICAgICBpZiAoIXRoaXMuY29uZmlnLmlzTW9kYWwpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5tb3VzZUNsaWNrSGFuZGxlclByb3h5LCB0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMubW91c2VEb3duSGFuZGxlclByb3h5KTtcbiAgICAgICAgfVxuICAgICAgICAqL1xuXG4gICAgICAgIHRoaXMuZWxlbWVudHNDcmVhdGUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29tbWl0SXNCbGlua1Byb3BlcnRpZXMoKTogdm9pZCB7fVxuICAgIHByb3RlY3RlZCBjb21taXRJc1NoYWtpbmdQcm9wZXJ0aWVzKCk6IHZvaWQge31cbiAgICBwcm90ZWN0ZWQgY29tbWl0SXNEaXNhYmxlZFByb3BlcnRpZXMoKTogdm9pZCB7fVxuICAgIHByb3RlY3RlZCBjb21taXRJc01pbmltaXplZFByb3BlcnRpZXMoKTogdm9pZCB7fVxuXG4gICAgcHJvdGVjdGVkIGdldENvbmZpZygpOiBXaW5kb3dDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzLmNvbmZpZztcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldENvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lcjtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldFJlZmVyZW5jZSgpOiBNYXREaWFsb2dSZWY8SVdpbmRvd0NvbnRlbnQ8VD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5yZWZlcmVuY2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzTmVlZENsaWNrU3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIC8vIHJldHVybiAhdGhpcy5pc1dhc09uVG9wO1xuICAgICAgICBpZiAodGhpcy5pc1dhc09uVG9wKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZWxlbWVudCA9IF8uZmluZCh0aGlzLmVsZW1lbnRzLCBpdGVtID0+IGl0ZW0ubG9jYXRpb24ubmF0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgaWYgKF8uaXNOaWwoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbGVtZW50Lmluc3RhbmNlLmNsaWNrSGFuZGxlcihldmVudCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RvcEJsaW5rSWZOZWVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzQmxpbmsgPSBmYWxzZTtcbiAgICAgICAgaWYgKCF0aGlzLmJsaW5rVGltZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYmxpbmtUaW1lcik7XG4gICAgICAgIHRoaXMuYmxpbmtUaW1lciA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc2l6ZUhhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pc09wZW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVyKTtcbiAgICAgICAgdGhpcy5yZXNpemVUaW1lciA9IHNldFRpbWVvdXQodGhpcy5lbWl0UmVzaXplLCBXaW5kb3dJbXBsLlJFU0laRV9ERUxBWSk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBtb3VzZURvd25IYW5kbGVyKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T25Ub3AoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbW91c2VDbGlja0hhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNOZWVkQ2xpY2tTdG9wUHJvcGFnYXRpb24oZXZlbnQpKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuaXNXYXNPblRvcCkge1xuICAgICAgICAgICAgdGhpcy5pc1dhc09uVG9wID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbW91c2VEb3duSGFuZGxlclByb3h5ID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMubW91c2VEb3duSGFuZGxlcihldmVudCk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgbW91c2VDbGlja0hhbmRsZXJQcm94eSA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLm1vdXNlQ2xpY2tIYW5kbGVyKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBlbWl0KGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0UmVmZXJlbmNlKCkuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuZWxlbWVudHNEZXN0cm95KCk7XG5cbiAgICAgICAgdGhpcy5fY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5tb3VzZUNsaWNrSGFuZGxlclByb3h5LCB0cnVlKTtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMubW91c2VEb3duSGFuZGxlclByb3h5KTtcblxuICAgICAgICBpZiAoIV8uaXNOaWwodGhpcy5jb250ZW50KSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50LmRlc3Ryb3koKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghXy5pc05pbCh0aGlzLm9ic2VydmVyKSkge1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBudWxsO1xuXG4gICAgICAgIHRoaXMuX3dyYXBwZXIgPSBudWxsO1xuICAgICAgICB0aGlzLl9iYWNrZHJvcCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lciA9IG51bGw7XG5cbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmJsaW5rVGltZXIpO1xuICAgICAgICB0aGlzLmJsaW5rVGltZXIgPSBudWxsO1xuXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zaGFrZVRpbWVyKTtcbiAgICAgICAgdGhpcy5zaGFrZVRpbWVyID0gbnVsbDtcblxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lcik7XG4gICAgICAgIHRoaXMucmVzaXplVGltZXIgPSBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBibGluaygpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmJsaW5rVGltZXIpO1xuICAgICAgICB0aGlzLmJsaW5rVGltZXIgPSBzZXRJbnRlcnZhbCh0aGlzLmJsaW5rVG9nZ2xlLCBXaW5kb3dJbXBsLkJMSU5LX0RFTEFZKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hha2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzU2hha2luZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNTaGFraW5nID0gdHJ1ZTtcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnNoYWtlVGltZXIpO1xuICAgICAgICB0aGlzLnNoYWtlVGltZXIgPSBzZXRJbnRlcnZhbCh0aGlzLnN0b3BTaGFraW5nLCBXaW5kb3dJbXBsLlNIQUtFX0RFTEFZKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0T25Ub3AoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNXYXNPblRvcCA9IHRoaXMuaXNPblRvcDtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50LlNFVF9PTl9UT1ApO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgU2l6ZSBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLndpZHRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGVpZ2h0O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRXaWR0aCh2YWx1ZTogbnVtYmVyLCBpc05lZWROb3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2lkdGggPSB2YWx1ZTtcbiAgICAgICAgaWYgKGlzTmVlZE5vdGlmeSkge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVIYW5kbGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0SGVpZ2h0KHZhbHVlOiBudW1iZXIsIGlzTmVlZE5vdGlmeTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oZWlnaHQgPSB2YWx1ZTtcbiAgICAgICAgaWYgKGlzTmVlZE5vdGlmeSkge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVIYW5kbGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2l6ZSh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFdpZHRoKHdpZHRoLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuc2V0SGVpZ2h0KGhlaWdodCwgZmFsc2UpO1xuICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZXIoKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIE1vdmUgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXRYKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLng7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFgodmFsdWU6IG51bWJlciwgaXNOZWVkTm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnggPSB2YWx1ZTtcbiAgICAgICAgaWYgKGlzTmVlZE5vdGlmeSkge1xuICAgICAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50Lk1PVkVEKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRZKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXRZKHZhbHVlOiBudW1iZXIsIGlzTmVlZE5vdGlmeTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy55ID0gdmFsdWU7XG4gICAgICAgIGlmIChpc05lZWROb3RpZnkpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5NT1ZFRCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbW92ZSh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFgoeCwgZmFsc2UpO1xuICAgICAgICB0aGlzLnNldFkoeSwgZmFsc2UpO1xuICAgICAgICB0aGlzLmVtaXQoV2luZG93RXZlbnQuTU9WRUQpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHJpdmF0ZSBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGdldCBpc0JsaW5rKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNCbGluaztcbiAgICB9XG4gICAgcHJvdGVjdGVkIHNldCBpc0JsaW5rKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5faXNCbGluaykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzQmxpbmsgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb21taXRJc0JsaW5rUHJvcGVydGllcygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaXNTaGFraW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaGFraW5nO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgc2V0IGlzU2hha2luZyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2lzU2hha2luZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzU2hha2luZyA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbW1pdElzU2hha2luZ1Byb3BlcnRpZXMoKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldCBldmVudHMoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JzZXJ2ZXIuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb25maWcoKTogV2luZG93Q29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5jb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb250ZW50KCk6IElXaW5kb3dDb250ZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5yZWZlcmVuY2UgPyB0aGlzLnByb3BlcnRpZXMucmVmZXJlbmNlLmNvbXBvbmVudEluc3RhbmNlIDogbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250YWluZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB3cmFwcGVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dyYXBwZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBiYWNrZHJvcCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9iYWNrZHJvcDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzT25Ub3AoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc09uVG9wO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGlzT25Ub3AodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc09uVG9wKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNPblRvcCA9IHZhbHVlO1xuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYmxpbmtUaW1lcik7XG4gICAgICAgIHRoaXMuaXNCbGluayA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNNaW5pbWl6ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc01pbmltaXplZDtcbiAgICB9XG4gICAgcHVibGljIHNldCBpc01pbmltaXplZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2lzTWluaW1pemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNNaW5pbWl6ZWQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb21taXRJc01pbmltaXplZFByb3BlcnRpZXMoKTtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50Lk1JTklNSVpFRF9DSEFOR0VEKTtcbiAgICAgICAgdGhpcy5zdG9wQmxpbmtJZk5lZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0Rpc2FibGVkO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGlzRGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNEaXNhYmxlZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbW1pdElzRGlzYWJsZWRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5ESVNBQkxFRF9DSEFOR0VEKTtcbiAgICB9XG59XG4iXX0=
@@ -39,10 +39,10 @@ export class WindowModule {
39
39
  };
40
40
  }
41
41
  }
42
- WindowModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: WindowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
43
- WindowModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: WindowModule, declarations: [WindowDragAreaDirective, WindowQuestionComponent, WindowCloseElementComponent, WindowResizeElementComponent, WindowMinimizeElementComponent], imports: [CommonModule, FormsModule, MatButtonModule, MatDialogModule, CookieModule, LanguageModule], exports: [WindowDragAreaDirective, WindowQuestionComponent, WindowCloseElementComponent, WindowResizeElementComponent, WindowMinimizeElementComponent] });
44
- WindowModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: WindowModule, imports: [IMPORTS] });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: WindowModule, decorators: [{
42
+ WindowModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WindowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
43
+ WindowModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WindowModule, declarations: [WindowDragAreaDirective, WindowQuestionComponent, WindowCloseElementComponent, WindowResizeElementComponent, WindowMinimizeElementComponent], imports: [CommonModule, FormsModule, MatButtonModule, MatDialogModule, CookieModule, LanguageModule], exports: [WindowDragAreaDirective, WindowQuestionComponent, WindowCloseElementComponent, WindowResizeElementComponent, WindowMinimizeElementComponent] });
44
+ WindowModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WindowModule, imports: [IMPORTS] });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WindowModule, decorators: [{
46
46
  type: NgModule,
47
47
  args: [{
48
48
  imports: IMPORTS,
@@ -284,9 +284,9 @@ export class WindowService extends Destroyable {
284
284
  return this._windows;
285
285
  }
286
286
  }
287
- WindowService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: WindowService, deps: [{ token: i1.MatDialog }, { token: i2.LanguageService }, { token: i3.CookieService }], target: i0.ɵɵFactoryTarget.Injectable });
288
- WindowService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: WindowService, providedIn: 'root' });
289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: WindowService, decorators: [{
287
+ WindowService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WindowService, deps: [{ token: i1.MatDialog }, { token: i2.LanguageService }, { token: i3.CookieService }], target: i0.ɵɵFactoryTarget.Injectable });
288
+ WindowService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WindowService, providedIn: 'root' });
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WindowService, decorators: [{
290
290
  type: Injectable,
291
291
  args: [{ providedIn: 'root' }]
292
292
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.LanguageService }, { type: i3.CookieService }]; } });