@simpleangularcontrols/sac-common 10.0.0-rc.2 → 10.0.0-rc.21

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 (140) hide show
  1. package/bundles/simpleangularcontrols-sac-common.umd.js +2232 -1604
  2. package/bundles/simpleangularcontrols-sac-common.umd.js.map +1 -1
  3. package/bundles/simpleangularcontrols-sac-common.umd.min.js +1 -1
  4. package/bundles/simpleangularcontrols-sac-common.umd.min.js.map +1 -1
  5. package/common/basedatetimecontrol.d.ts +100 -14
  6. package/common/baseinputcontrol.d.ts +0 -4
  7. package/common/basemodelcontrol.d.ts +55 -27
  8. package/common/baseuploadcontrol.d.ts +71 -55
  9. package/controls/checkbox/checkbox.d.ts +12 -3
  10. package/controls/checkbox/radiobutton.d.ts +61 -26
  11. package/controls/contextmenu/contextmenu.d.ts +26 -19
  12. package/controls/contextmenu/contextmenu.interface.d.ts +3 -0
  13. package/controls/contextmenu/contextmenuitem.d.ts +5 -0
  14. package/controls/contextmenu/contextmenuitembutton.d.ts +21 -20
  15. package/controls/datetime/date.d.ts +28 -31
  16. package/controls/datetime/datetime.d.ts +27 -31
  17. package/controls/datetime/time.d.ts +26 -30
  18. package/controls/dialog/dialog.d.ts +31 -43
  19. package/controls/grid/grid.d.ts +38 -36
  20. package/controls/grid/gridbutton.d.ts +13 -13
  21. package/controls/grid/gridcolumn.d.ts +8 -8
  22. package/controls/grid/gridcolumnaction.d.ts +3 -3
  23. package/controls/grid/gridcolumnbase.d.ts +45 -37
  24. package/controls/grid/gridimage.d.ts +2 -2
  25. package/controls/grid/model.d.ts +51 -42
  26. package/controls/grid/paging.d.ts +41 -43
  27. package/controls/input/input.d.ts +3 -3
  28. package/controls/input/inputarea.d.ts +5 -5
  29. package/controls/input/inputpassword.d.ts +7 -7
  30. package/controls/input/inputsearch.d.ts +13 -4
  31. package/controls/layout/formlayout.d.ts +17 -1
  32. package/controls/list/buildvaluestring.d.ts +6 -0
  33. package/controls/list/dropdown.d.ts +9 -51
  34. package/controls/list/dropdownoptions.d.ts +38 -0
  35. package/controls/multilanguage/multilanguageinput.d.ts +2 -2
  36. package/controls/multilanguage/multilanguageinputarea.d.ts +4 -4
  37. package/controls/static/formcontainer.d.ts +7 -3
  38. package/controls/tooltip/tooltip.d.ts +76 -69
  39. package/controls/treeview/treeview.d.ts +107 -107
  40. package/esm2015/common/basedatetimecontrol.js +185 -30
  41. package/esm2015/common/baseinputcontrol.js +2 -7
  42. package/esm2015/common/basemodelcontrol.js +109 -57
  43. package/esm2015/common/baseuploadcontrol.js +92 -59
  44. package/esm2015/controls/checkbox/checkbox.js +29 -6
  45. package/esm2015/controls/checkbox/radiobutton.js +94 -45
  46. package/esm2015/controls/contextmenu/contextmenu.interface.js +1 -0
  47. package/esm2015/controls/contextmenu/contextmenu.interface.ngfactory.js +7 -0
  48. package/esm2015/controls/contextmenu/contextmenu.js +22 -23
  49. package/esm2015/controls/contextmenu/contextmenuitem.js +13 -2
  50. package/esm2015/controls/contextmenu/contextmenuitembutton.js +34 -25
  51. package/esm2015/controls/datetime/date.js +44 -43
  52. package/esm2015/controls/datetime/datetime.js +43 -43
  53. package/esm2015/controls/datetime/time.js +43 -43
  54. package/esm2015/controls/dialog/dialog.js +41 -83
  55. package/esm2015/controls/grid/grid.js +21 -21
  56. package/esm2015/controls/grid/gridbutton.js +19 -13
  57. package/esm2015/controls/grid/gridcolumn.js +14 -7
  58. package/esm2015/controls/grid/gridcolumnaction.js +6 -5
  59. package/esm2015/controls/grid/gridcolumnbase.js +67 -55
  60. package/esm2015/controls/grid/gridimage.js +3 -3
  61. package/esm2015/controls/grid/model.js +51 -30
  62. package/esm2015/controls/grid/paging.js +40 -42
  63. package/esm2015/controls/input/input.js +6 -8
  64. package/esm2015/controls/input/inputarea.js +19 -12
  65. package/esm2015/controls/input/inputpassword.js +12 -12
  66. package/esm2015/controls/input/inputsearch.js +35 -6
  67. package/esm2015/controls/layout/formlayout.js +20 -8
  68. package/esm2015/controls/list/buildvaluestring.js +18 -0
  69. package/esm2015/controls/{treeview/ngtreeitemaction.ngfactory.js → list/buildvaluestring.ngfactory.js} +1 -1
  70. package/esm2015/controls/list/dropdown.js +16 -114
  71. package/esm2015/controls/list/dropdownoptions.js +72 -0
  72. package/esm2015/controls/{treeview/treeviewchild.ngfactory.js → list/dropdownoptions.ngfactory.js} +1 -1
  73. package/esm2015/controls/multilanguage/multilanguageinput.js +8 -14
  74. package/esm2015/controls/multilanguage/multilanguageinputarea.js +9 -15
  75. package/esm2015/controls/static/formcontainer.js +16 -5
  76. package/esm2015/controls/tooltip/tooltip.js +126 -245
  77. package/esm2015/controls/treeview/treeview.js +276 -231
  78. package/esm2015/interfaces/ISacConfigurationService.js +1 -1
  79. package/esm2015/interfaces/ISacIconService.js +1 -1
  80. package/esm2015/interfaces/ISacUploadEventCompleteState.js +1 -0
  81. package/esm2015/interfaces/ISacUploadEventCompleteState.ngfactory.js +7 -0
  82. package/esm2015/interfaces/ISacValidationKeyService.js +1 -1
  83. package/esm2015/interfaces/treeviewaction.interface.js +1 -0
  84. package/esm2015/interfaces/treeviewaction.interface.ngfactory.js +7 -0
  85. package/esm2015/public_api.js +15 -8
  86. package/esm2015/services/sac-configuration.service.js +31 -5
  87. package/esm2015/services/sac-icon.service.js +37 -1
  88. package/esm2015/services/sac-localisation.service.js +69 -180
  89. package/esm2015/services/sac-validationkey.service.js +12 -9
  90. package/esm2015/simpleangularcontrols-sac-common.js +1 -7
  91. package/esm2015/utilities/enums.js +5 -1
  92. package/esm2015/utilities/guid.js +4 -2
  93. package/esm2015/utilities/popuphelper.js +343 -0
  94. package/esm2015/utilities/popuphelper.ngfactory.js +7 -0
  95. package/esm2015/validation/equals.validator.js +14 -0
  96. package/esm2015/validation/equals.validator.ngfactory.js +7 -0
  97. package/esm2015/validation/isDateValid.js +9 -1
  98. package/esm2015/validation/mintextlength.validator.js +23 -0
  99. package/esm2015/validation/mintextlength.validator.ngfactory.js +7 -0
  100. package/esm2015/validation/notequals.validator.js +14 -0
  101. package/esm2015/validation/{minlength.validator.ngfactory.js → notequals.validator.ngfactory.js} +1 -1
  102. package/esm2015/validation/validation.class.js +35 -6
  103. package/fesm2015/simpleangularcontrols-sac-common.js +2070 -1498
  104. package/fesm2015/simpleangularcontrols-sac-common.js.map +1 -1
  105. package/interfaces/ISacConfigurationService.d.ts +20 -0
  106. package/interfaces/ISacIconService.d.ts +24 -0
  107. package/interfaces/ISacUploadEventCompleteState.d.ts +5 -0
  108. package/interfaces/ISacUploadEventCompleteState.ngfactory.d.ts +1 -0
  109. package/interfaces/ISacValidationKeyService.d.ts +2 -2
  110. package/interfaces/treeviewaction.interface.d.ts +4 -0
  111. package/interfaces/treeviewaction.interface.ngfactory.d.ts +1 -0
  112. package/package.json +2 -2
  113. package/public_api.d.ts +13 -6
  114. package/services/sac-configuration.service.d.ts +40 -0
  115. package/services/sac-icon.service.d.ts +49 -1
  116. package/services/sac-localisation.service.d.ts +10 -10
  117. package/services/sac-validationkey.service.d.ts +7 -7
  118. package/simpleangularcontrols-sac-common-10.0.0-rc.21.tgz +0 -0
  119. package/simpleangularcontrols-sac-common.d.ts +0 -6
  120. package/simpleangularcontrols-sac-common.metadata.json +1 -1
  121. package/utilities/enums.d.ts +3 -1
  122. package/utilities/popuphelper.d.ts +83 -0
  123. package/utilities/popuphelper.ngfactory.d.ts +1 -0
  124. package/validation/equals.validator.d.ts +2 -0
  125. package/validation/equals.validator.ngfactory.d.ts +1 -0
  126. package/validation/mintextlength.validator.d.ts +2 -0
  127. package/validation/mintextlength.validator.ngfactory.d.ts +1 -0
  128. package/validation/notequals.validator.d.ts +2 -0
  129. package/validation/notequals.validator.ngfactory.d.ts +1 -0
  130. package/validation/validation.class.d.ts +22 -3
  131. package/controls/treeview/ngtreeitemaction.d.ts +0 -40
  132. package/controls/treeview/treeviewchild.d.ts +0 -12
  133. package/esm2015/controls/treeview/ngtreeitemaction.js +0 -60
  134. package/esm2015/controls/treeview/treeviewchild.js +0 -18
  135. package/esm2015/validation/minlength.validator.js +0 -21
  136. package/simpleangularcontrols-sac-common-10.0.0-rc.2.tgz +0 -0
  137. package/validation/minlength.validator.d.ts +0 -2
  138. /package/controls/{treeview/ngtreeitemaction.ngfactory.d.ts → contextmenu/contextmenu.interface.ngfactory.d.ts} +0 -0
  139. /package/controls/{treeview/treeviewchild.ngfactory.d.ts → list/buildvaluestring.ngfactory.d.ts} +0 -0
  140. /package/{validation/minlength.validator.ngfactory.d.ts → controls/list/dropdownoptions.ngfactory.d.ts} +0 -0
@@ -1,5 +1,12 @@
1
1
  import { Injectable, InjectionToken } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ // #region Variables
4
+ /**
5
+ * injection token for localisation service
6
+ */
7
+ export const SACVALIDATIONKEY_SERVICE = new InjectionToken('SacValidationkeyService');
8
+ // #endregion Variables
9
+ // #region Exported Classes
3
10
  export class SacDefaultValidationKeyService {
4
11
  // #region Public Getters And Setters
5
12
  get ConfirmDefaultButtonNo() {
@@ -80,8 +87,8 @@ export class SacDefaultValidationKeyService {
80
87
  get ValidationErrorMinDate() {
81
88
  return 'VALIDATION_ERROR_MINDATE';
82
89
  }
83
- get ValidationErrorMinLength() {
84
- return 'VALIDATION_ERROR_MINLENGTH';
90
+ get ValidationErrorMinTextLength() {
91
+ return 'VALIDATION_ERROR_MINTEXTLENGTH';
85
92
  }
86
93
  get ValidationErrorMinTime() {
87
94
  return 'VALIDATION_ERROR_MINTIME';
@@ -123,8 +130,8 @@ export class SacDefaultValidationKeyService {
123
130
  get ValidationErrorSummaryMinDate() {
124
131
  return 'VALIDATION_ERROR_SUMMARY_MINDATE';
125
132
  }
126
- get ValidationErrorSummaryMinLength() {
127
- return 'VALIDATION_ERROR_SUMMARY_MINLENGTH';
133
+ get ValidationErrorSummaryMinTextLength() {
134
+ return 'VALIDATION_ERROR_SUMMARY_MINTEXTLENGTH';
128
135
  }
129
136
  get ValidationErrorSummaryMinTime() {
130
137
  return 'VALIDATION_ERROR_SUMMARY_MINTIME';
@@ -149,8 +156,4 @@ SacDefaultValidationKeyService.ɵprov = i0.ɵɵdefineInjectable({ factory: funct
149
156
  SacDefaultValidationKeyService.decorators = [
150
157
  { type: Injectable, args: [{ providedIn: 'root' },] }
151
158
  ];
152
- /**
153
- * injection token for localisation service
154
- */
155
- export const SACVALIDATIONKEY_SERVICE = new InjectionToken('SacValidationkeyService');
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FjLXZhbGlkYXRpb25rZXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9zYWMtdmFsaWRhdGlvbmtleS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzRCxNQUFNLE9BQU8sOEJBQThCO0lBR3pDLHFDQUFxQztJQUVyQyxJQUFXLHNCQUFzQjtRQUMvQixPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLHVCQUF1QjtRQUNoQyxPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLHVCQUF1QjtRQUNoQyxPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLDBCQUEwQjtRQUNuQyxPQUFPLHVCQUF1QixDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLHdCQUF3QjtRQUNqQyxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFXLHVCQUF1QjtRQUNoQyxPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLGdDQUFnQztRQUN6QyxPQUFPLGdDQUFnQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFXLGtDQUFrQztRQUMzQyxPQUFPLGtDQUFrQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFXLHVCQUF1QjtRQUNoQyxPQUFPLHVCQUF1QixDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLHNCQUFzQjtRQUMvQixPQUFPLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLHVCQUF1QixDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIs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LG1DQUFtQyxDQUFDO0lBQzdDLENBQUM7Ozs7WUFqTUYsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUFzTWxDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQ25DLElBQUksY0FBYyxDQUEyQix5QkFBeUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjVmFsaWRhdGlvbktleVNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZVxyXG4gIGltcGxlbWVudHMgSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlXHJcbntcclxuICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIHB1YmxpYyBnZXQgQ29uZmlybURlZmF1bHRCdXR0b25ObygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdDT05GSVJNX0JVVFRPTl9OTyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IENvbmZpcm1EZWZhdWx0QnV0dG9uWWVzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ0NPTkZJUk1fQlVUVE9OX1lFUyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IEZpbGVicm93c2VyQnV0dG9uRGVsZXRlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ0ZJTEVCUk9XU0VSX0RFTEVURSc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IEZpbGVicm93c2VyQnV0dG9uTmV3Rm9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ0ZJTEVCUk9XU0VSX05FV0ZPTERFUic7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IEZpbGVicm93c2VyQnV0dG9uUmVmcmVzaCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdGSUxFQlJPV1NFUl9SRUZSRVNIJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgRmlsZWJyb3dzZXJCdXR0b25VcGxvYWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnRklMRUJST1dTRVJfVVBMT0FEJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgRmlsZWJyb3dzZXJDb25maXJtVGV4dERlbGV0ZUZpbGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnRklMRUJST1dTRVJfQ09ORklSTV9ERUxFVEVGSUxFJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgRmlsZWJyb3dzZXJDb25maXJtVGV4dERlbGV0ZUZvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdGSUxFQlJPV1NFUl9DT05GSVJNX0RFTEVURUZPTERFUic7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IEZpbGVicm93c2VyR3JpZEZpbGVuYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ0ZJTEVCUk9XU0VSX0dSSURfRklMRSc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IEZpbGVicm93c2VyR3JpZE5vRmlsZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnRklMRUJST1dTRVJfTk9fRklMRVMnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBGaWxlYnJvd3NlckdyaWRTaXplKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ0ZJTEVCUk9XU0VSX0dSSURfU0laRSc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFBhZ2luZ0VudHJpZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnUEFHSU5HX1BBR0VFTlRSSUVTVEVYVCc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFBhZ2luZ1BhZ2VPZigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdQQUdJTkdfUEFHRU9GVEVYVCc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFRpbnlNY2VGaWxlc2VsZWN0Q2FuY2VsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ1RJTllNQ0VfRklMRVNFTEVDVF9DQU5DRUwnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBUaW55TWNlRmlsZXNlbGVjdERpYWxvZ3RpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ1RJTllNQ0VfRklMRVNFTEVDVF9ESUFMT0dUSVRMRSc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFRpbnlNY2VGaWxlc2VsZWN0T2soKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnVElOWU1DRV9GSUxFU0VMRUNUX09LJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVXBsb2FkQnV0dG9uQnJvd3NlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ1VQTE9BRF9CVVRUT05fQlJPV1NFJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVXBsb2FkQnV0dG9uVXBsb2FkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ1VQTE9BRF9CVVRUT05fVVBMT0FEJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVXBsb2FkTm9GaWxlc1NlbGVjdGVkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ1VQTE9BRF9OT19GSUxFX1NFTEVDVEVEJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yRGF0ZXRpbWVGb3JtYXQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9EQVRFVElNRUZPUk1BVCc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvckVtYWlsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfRU1BSUwnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JGaWxlc01pbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX0ZJTEVTTUlOJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yTWF4RGF0ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX01BWERBVEUnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JNYXhUaW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfTUFYVElNRSc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvck1heFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfTUFYVkFMVUUnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JNaW5EYXRlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfTUlOREFURSc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvck1pbkxlbmd0aCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX01JTkxFTkdUSCc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvck1pblRpbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9NSU5USU1FJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yTWluVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9NSU5WQUxVRSc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvck11bHRpbGFuZ3VhZ2VSZXF1aXJlZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX01VTFRJTEFOR1VBR0VSRVFVSVJFRCc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvck11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX01VTFRJTEFOR1VBR0VSRVFVSVJFREFOWSc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvclBhdHRlcm4oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9QQVRURVJOJztcclxuICB9XHJcblxyXG4gIC8vIEdlbmVyaWMgTWVzc2FnZXNcclxuICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvclJlcXVpcmVkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfUkVRVUlSRUQnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0RBVEVUSU1FRk9STUFUJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yU3VtbWFyeUVtYWlsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9FTUFJTCc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvclN1bW1hcnlGaWxlc01pbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfRklMRVNNSU4nO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWF4RGF0ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYREFURSc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvclN1bW1hcnlNYXhUaW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhUSU1FJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1heFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NQVhWQUxVRSc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvclN1bW1hcnlNaW5EYXRlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5EQVRFJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pbkxlbmd0aCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOTEVOR1RIJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pblRpbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlRJTUUnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWluVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlZBTFVFJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yU3VtbWFyeU11bHRpbGFuZ3VhZ2VSZXF1aXJlZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTVVMVElMQU5HVUFHRVJFUVVJUkVEJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yU3VtbWFyeU11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yU3VtbWFyeVBhdHRlcm4oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX1BBVFRFUk4nO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX1JFUVVJUkVEJztcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxufVxyXG5cclxuLyoqXHJcbiAqIGluamVjdGlvbiB0b2tlbiBmb3IgbG9jYWxpc2F0aW9uIHNlcnZpY2VcclxuICovXHJcbmV4cG9ydCBjb25zdCBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UgPVxyXG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxJU2FjVmFsaWRhdGlvbktleVNlcnZpY2U+KCdTYWNWYWxpZGF0aW9ua2V5U2VydmljZScpO1xyXG4iXX0=
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FjLXZhbGlkYXRpb25rZXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9zYWMtdmFsaWRhdGlvbmtleS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzRCxvQkFBb0I7QUFFcEI7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBMkIseUJBQXlCLENBQUMsQ0FBQztBQUVoSCx1QkFBdUI7QUFFdkIsMkJBQTJCO0FBRzNCLE1BQU0sT0FBTyw4QkFBOEI7SUFDdkMscUNBQXFDO0lBRXJDLElBQVcsc0JBQXNCO1FBQzdCLE9BQU8sbUJBQW1CLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsdUJBQXVCO1FBQzlCLE9BQU8sb0JBQW9CLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsdUJBQXVCO1FBQzlCLE9BQU8sb0JBQW9CLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsMEJBQTBCO1FBQ2pDLE9BQU8sdUJBQXVCLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsd0JBQXdCO1FBQy9CLE9BQU8scUJBQXFCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVcsdUJBQXVCO1FBQzlCLE9BQU8sb0JBQW9CLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsZ0NBQWdDO1FBQ3ZDLE9BQU8sZ0NBQWdDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsa0NBQWtDO1FBQ3pDLE9BQU8sa0NBQWtDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQVcsdUJBQXVCO1FBQzlCLE9BQU8sdUJBQXVCLENBQUM7SUFDbkMsQ0FBQztJQUVELElB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QThDO1FBQ3JELE9BQU8sbURBQW1ELENBQUM7SUFDL0QsQ0FBQztJQUVELElBQVcsNkJBQTZCO1FBQ3BDLE9BQU8sa0NBQWtDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQVcsOEJBQThCO1FBQ3JDLE9BQU8sbUNBQW1DLENBQUM7SUFDL0MsQ0FBQzs7OztZQS9MSixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjVmFsaWRhdGlvbktleVNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLy8gI3JlZ2lvbiBWYXJpYWJsZXNcclxuXHJcbi8qKlxyXG4gKiBpbmplY3Rpb24gdG9rZW4gZm9yIGxvY2FsaXNhdGlvbiBzZXJ2aWNlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgU0FDVkFMSURBVElPTktFWV9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPElTYWNWYWxpZGF0aW9uS2V5U2VydmljZT4oJ1NhY1ZhbGlkYXRpb25rZXlTZXJ2aWNlJyk7XHJcblxyXG4vLyAjZW5kcmVnaW9uIFZhcmlhYmxlc1xyXG5cclxuLy8gI3JlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlIGltcGxlbWVudHMgSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlIHtcclxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgICBwdWJsaWMgZ2V0IENvbmZpcm1EZWZhdWx0QnV0dG9uTm8oKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ0NPTkZJUk1fQlVUVE9OX05PJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IENvbmZpcm1EZWZhdWx0QnV0dG9uWWVzKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdDT05GSVJNX0JVVFRPTl9ZRVMnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgRmlsZWJyb3dzZXJCdXR0b25EZWxldGUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ0ZJTEVCUk9XU0VSX0RFTEVURSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBGaWxlYnJvd3NlckJ1dHRvbk5ld0ZvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnRklMRUJST1dTRVJfTkVXRk9MREVSJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IEZpbGVicm93c2VyQnV0dG9uUmVmcmVzaCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnRklMRUJST1dTRVJfUkVGUkVTSCc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBGaWxlYnJvd3NlckJ1dHRvblVwbG9hZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnRklMRUJST1dTRVJfVVBMT0FEJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IEZpbGVicm93c2VyQ29uZmlybVRleHREZWxldGVGaWxlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdGSUxFQlJPV1NFUl9DT05GSVJNX0RFTEVURUZJTEUnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgRmlsZWJyb3dzZXJDb25maXJtVGV4dERlbGV0ZUZvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnRklMRUJST1dTRVJfQ09ORklSTV9ERUxFVEVGT0xERVInO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgRmlsZWJyb3dzZXJHcmlkRmlsZW5hbWUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ0ZJTEVCUk9XU0VSX0dSSURfRklMRSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBGaWxlYnJvd3NlckdyaWROb0ZpbGVzKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdGSUxFQlJPV1NFUl9OT19GSUxFUyc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBGaWxlYnJvd3NlckdyaWRTaXplKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdGSUxFQlJPV1NFUl9HUklEX1NJWkUnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgUGFnaW5nRW50cmllcygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnUEFHSU5HX1BBR0VFTlRSSUVTVEVYVCc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBQYWdpbmdQYWdlT2YoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ1BBR0lOR19QQUdFT0ZURVhUJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IFRpbnlNY2VGaWxlc2VsZWN0Q2FuY2VsKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdUSU5ZTUNFX0ZJTEVTRUxFQ1RfQ0FOQ0VMJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IFRpbnlNY2VGaWxlc2VsZWN0RGlhbG9ndGl0bGUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ1RJTllNQ0VfRklMRVNFTEVDVF9ESUFMT0dUSVRMRSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBUaW55TWNlRmlsZXNlbGVjdE9rKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdUSU5ZTUNFX0ZJTEVTRUxFQ1RfT0snO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgVXBsb2FkQnV0dG9uQnJvd3NlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdVUExPQURfQlVUVE9OX0JST1dTRSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBVcGxvYWRCdXR0b25VcGxvYWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ1VQTE9BRF9CVVRUT05fVVBMT0FEJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IFVwbG9hZE5vRmlsZXNTZWxlY3RlZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnVVBMT0FEX05PX0ZJTEVfU0VMRUNURUQnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yRGF0ZXRpbWVGb3JtYXQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfREFURVRJTUVGT1JNQVQnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yRW1haWwoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfRU1BSUwnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yRmlsZXNNaW4oKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfRklMRVNNSU4nO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yTWF4RGF0ZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9NQVhEQVRFJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvck1heFRpbWUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfTUFYVElNRSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JNYXhWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9NQVhWQUxVRSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JNaW5EYXRlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX01JTkRBVEUnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yTWluVGV4dExlbmd0aCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9NSU5URVhUTEVOR1RIJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvck1pblRpbWUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfTUlOVElNRSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JNaW5WYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9NSU5WQUxVRSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JNdWx0aWxhbmd1YWdlUmVxdWlyZWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfTVVMVElMQU5HVUFHRVJFUVVJUkVEJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvck11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9NVUxUSUxBTkdVQUdFUkVRVUlSRURBTlknO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yUGF0dGVybigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9QQVRURVJOJztcclxuICAgIH1cclxuXHJcbiAgICAvLyBHZW5lcmljIE1lc3NhZ2VzXHJcbiAgICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvclJlcXVpcmVkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX1JFUVVJUkVEJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0RBVEVUSU1FRk9STUFUJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvclN1bW1hcnlFbWFpbCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0VNQUlMJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvclN1bW1hcnlGaWxlc01pbigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX0ZJTEVTTUlOJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvclN1bW1hcnlNYXhEYXRlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYREFURSc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWF4VGltZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01BWFRJTUUnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1heFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUFYVkFMVUUnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pbkRhdGUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9NSU5EQVRFJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvclN1bW1hcnlNaW5UZXh0TGVuZ3RoKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVEVYVExFTkdUSCc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWluVGltZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01JTlRJTUUnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pblZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTUlOVkFMVUUnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgVmFsaWRhdGlvbkVycm9yU3VtbWFyeU11bHRpbGFuZ3VhZ2VSZXF1aXJlZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnVkFMSURBVElPTl9FUlJPUl9TVU1NQVJZX01VTFRJTEFOR1VBR0VSRVFVSVJFRCc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfTVVMVElMQU5HVUFHRVJFUVVJUkVEQU5ZJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IFZhbGlkYXRpb25FcnJvclN1bW1hcnlQYXR0ZXJuKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfUEFUVEVSTic7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ1ZBTElEQVRJT05fRVJST1JfU1VNTUFSWV9SRVFVSVJFRCc7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG59XHJcblxyXG4vLyAjZW5kcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcclxuIl19
@@ -2,10 +2,4 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public_api';
5
- export { SacBaseDateTimeControl as ɵf } from './common/basedatetimecontrol';
6
- export { SacInputBase as ɵe } from './common/baseinputcontrol';
7
- export { SacBaseListControl as ɵd } from './common/baselistcontrol';
8
- export { SacBaseModelControl as ɵb } from './common/basemodelcontrol';
9
- export { SacBaseSelectControl as ɵc } from './common/baseselectcontrol';
10
- export { SacUploadBase as ɵa } from './common/baseuploadcontrol';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlYW5ndWxhcmNvbnRyb2xzLXNhYy1jb21tb24uanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsic2ltcGxlYW5ndWxhcmNvbnRyb2xzLXNhYy1jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge1NhY0Jhc2VEYXRlVGltZUNvbnRyb2wgYXMgybVmfSBmcm9tICcuL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sJztcbmV4cG9ydCB7U2FjSW5wdXRCYXNlIGFzIMm1ZX0gZnJvbSAnLi9jb21tb24vYmFzZWlucHV0Y29udHJvbCc7XG5leHBvcnQge1NhY0Jhc2VMaXN0Q29udHJvbCBhcyDJtWR9IGZyb20gJy4vY29tbW9uL2Jhc2VsaXN0Y29udHJvbCc7XG5leHBvcnQge1NhY0Jhc2VNb2RlbENvbnRyb2wgYXMgybVifSBmcm9tICcuL2NvbW1vbi9iYXNlbW9kZWxjb250cm9sJztcbmV4cG9ydCB7U2FjQmFzZVNlbGVjdENvbnRyb2wgYXMgybVjfSBmcm9tICcuL2NvbW1vbi9iYXNlc2VsZWN0Y29udHJvbCc7XG5leHBvcnQge1NhY1VwbG9hZEJhc2UgYXMgybVhfSBmcm9tICcuL2NvbW1vbi9iYXNldXBsb2FkY29udHJvbCc7Il19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlYW5ndWxhcmNvbnRyb2xzLXNhYy1jb21tb24uanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsic2ltcGxlYW5ndWxhcmNvbnRyb2xzLXNhYy1jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -12,5 +12,9 @@ export var TooltipPosition;
12
12
  TooltipPosition[TooltipPosition["bottom"] = 4] = "bottom";
13
13
  // tslint:disable-next-line:no-bitwise
14
14
  TooltipPosition[TooltipPosition["left"] = 8] = "left";
15
+ // tslint:disable-next-line:no-bitwise
16
+ TooltipPosition[TooltipPosition["topend"] = 16] = "topend";
17
+ // tslint:disable-next-line:no-bitwise
18
+ TooltipPosition[TooltipPosition["bottomend"] = 32] = "bottomend";
15
19
  })(TooltipPosition || (TooltipPosition = {}));
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bXMuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsidXRpbGl0aWVzL2VudW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksZUFVWDtBQVZELFdBQVksZUFBZTtJQUN6QixxREFBUSxDQUFBO0lBQ1Isc0NBQXNDO0lBQ3RDLG1EQUFZLENBQUE7SUFDWixzQ0FBc0M7SUFDdEMsdURBQWMsQ0FBQTtJQUNkLHNDQUFzQztJQUN0Qyx5REFBZSxDQUFBO0lBQ2Ysc0NBQXNDO0lBQ3RDLHFEQUFhLENBQUE7QUFDZixDQUFDLEVBVlcsZUFBZSxLQUFmLGVBQWUsUUFVMUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogRW51bSBmw7xyIFRvb2x0aXAgUG9zaXRpb25lblxyXG4gKi9cclxuZXhwb3J0IGVudW0gVG9vbHRpcFBvc2l0aW9uIHtcclxuICBub25lID0gMCxcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gIHRvcCA9IDEgPDwgMCxcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gIHJpZ2h0ID0gMSA8PCAxLFxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgYm90dG9tID0gMSA8PCAyLFxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgbGVmdCA9IDEgPDwgM1xyXG59XHJcbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bXMuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsidXRpbGl0aWVzL2VudW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksZUFjWDtBQWRELFdBQVksZUFBZTtJQUN2QixxREFBUSxDQUFBO0lBQ1Isc0NBQXNDO0lBQ3RDLG1EQUFZLENBQUE7SUFDWixzQ0FBc0M7SUFDdEMsdURBQWMsQ0FBQTtJQUNkLHNDQUFzQztJQUN0Qyx5REFBZSxDQUFBO0lBQ2Ysc0NBQXNDO0lBQ3RDLHFEQUFhLENBQUE7SUFDYixzQ0FBc0M7SUFDdEMsMERBQWUsQ0FBQTtJQUNmLHNDQUFzQztJQUN0QyxnRUFBa0IsQ0FBQTtBQUN0QixDQUFDLEVBZFcsZUFBZSxLQUFmLGVBQWUsUUFjMUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogRW51bSBmw7xyIFRvb2x0aXAgUG9zaXRpb25lblxyXG4gKi9cclxuZXhwb3J0IGVudW0gVG9vbHRpcFBvc2l0aW9uIHtcclxuICAgIG5vbmUgPSAwLFxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcclxuICAgIHRvcCA9IDEgPDwgMCxcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgICByaWdodCA9IDEgPDwgMSxcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgICBib3R0b20gPSAxIDw8IDIsXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgbGVmdCA9IDEgPDwgMyxcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgICB0b3BlbmQgPSAxIDw8IDQsXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgYm90dG9tZW5kID0gMSA8PCA1LFxyXG59XHJcbiJdfQ==
@@ -1,8 +1,9 @@
1
+ // #region Functions
1
2
  /**
2
3
  * create a guid with crypto library if availabe and a fallback to Math.Random implementation
3
4
  */
4
5
  export function createGuid() {
5
- if (typeof crypto !== undefined) {
6
+ if (typeof crypto !== undefined && crypto['randomUUID'] !== undefined) {
6
7
  // return guid without hyphen
7
8
  return crypto['randomUUID']().replace(/\-/gi, '');
8
9
  }
@@ -13,4 +14,5 @@ export function createGuid() {
13
14
  });
14
15
  }
15
16
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJ1dGlsaXRpZXMvZ3VpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxVQUFVO0lBQ3hCLElBQUksT0FBTyxNQUFNLEtBQUssU0FBUyxFQUFFO1FBQy9CLDZCQUE2QjtRQUM3QixPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDbkQ7U0FBTTtRQUNMLE9BQU8sa0NBQWtDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUM7WUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUM5QixDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDckMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0tBQ0o7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIGNyZWF0ZSBhIGd1aWQgd2l0aCBjcnlwdG8gbGlicmFyeSBpZiBhdmFpbGFiZSBhbmQgYSBmYWxsYmFjayB0byBNYXRoLlJhbmRvbSBpbXBsZW1lbnRhdGlvblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUd1aWQoKTogc3RyaW5nIHtcclxuICBpZiAodHlwZW9mIGNyeXB0byAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAvLyByZXR1cm4gZ3VpZCB3aXRob3V0IGh5cGhlblxyXG4gICAgcmV0dXJuIGNyeXB0b1sncmFuZG9tVVVJRCddKCkucmVwbGFjZSgvXFwtL2dpLCAnJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiAneHh4eHh4eHh4eHh4NHh4eHl4eHh4eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVuY3Rpb24gKGMpIHtcclxuICAgICAgdmFyIHIgPSAoTWF0aC5yYW5kb20oKSAqIDE2KSB8IDAsXHJcbiAgICAgICAgdiA9IGMgPT0gJ3gnID8gciA6IChyICYgMHgzKSB8IDB4ODtcclxuICAgICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
17
+ // #endregion Functions
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJ1dGlsaXRpZXMvZ3VpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFFcEI7O0dBRUc7QUFDSCxNQUFNLFVBQVUsVUFBVTtJQUN4QixJQUFJLE9BQU8sTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssU0FBUyxFQUFFO1FBQ3JFLDZCQUE2QjtRQUM3QixPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDbkQ7U0FBTTtRQUNMLE9BQU8sa0NBQWtDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUM7WUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUM5QixDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDckMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0tBQ0o7QUFDSCxDQUFDO0FBRUQsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gI3JlZ2lvbiBGdW5jdGlvbnNcclxuXHJcbi8qKlxyXG4gKiBjcmVhdGUgYSBndWlkIHdpdGggY3J5cHRvIGxpYnJhcnkgaWYgYXZhaWxhYmUgYW5kIGEgZmFsbGJhY2sgdG8gTWF0aC5SYW5kb20gaW1wbGVtZW50YXRpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVHdWlkKCk6IHN0cmluZyB7XHJcbiAgaWYgKHR5cGVvZiBjcnlwdG8gIT09IHVuZGVmaW5lZCAmJiBjcnlwdG9bJ3JhbmRvbVVVSUQnXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAvLyByZXR1cm4gZ3VpZCB3aXRob3V0IGh5cGhlblxyXG4gICAgcmV0dXJuIGNyeXB0b1sncmFuZG9tVVVJRCddKCkucmVwbGFjZSgvXFwtL2dpLCAnJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiAneHh4eHh4eHh4eHh4NHh4eHl4eHh4eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVuY3Rpb24gKGMpIHtcclxuICAgICAgdmFyIHIgPSAoTWF0aC5yYW5kb20oKSAqIDE2KSB8IDAsXHJcbiAgICAgICAgdiA9IGMgPT0gJ3gnID8gciA6IChyICYgMHgzKSB8IDB4ODtcclxuICAgICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyAjZW5kcmVnaW9uIEZ1bmN0aW9uc1xyXG4iXX0=
@@ -0,0 +1,343 @@
1
+ import { TooltipPosition } from './enums';
2
+ export class PopUpHelper {
3
+ // #region Public Methods
4
+ getContainerHeight(referenceContainer, referenceIsContainer) {
5
+ if (referenceContainer) {
6
+ return referenceIsContainer
7
+ ? referenceContainer.nativeElement.firstElementChild.clientHeight
8
+ : referenceContainer.nativeElement.offsetHeight;
9
+ }
10
+ else {
11
+ return 0;
12
+ }
13
+ }
14
+ getContainerWidth(referenceContainer, referenceIsContainer) {
15
+ if (referenceContainer) {
16
+ return referenceIsContainer
17
+ ? referenceContainer.nativeElement.firstElementChild.clientWidth
18
+ : referenceContainer.nativeElement.offsetWidth;
19
+ }
20
+ else {
21
+ return 0;
22
+ }
23
+ }
24
+ /**
25
+ * Get Position who the popup would be positioned
26
+ *
27
+ * @param referenceContainer Element Reference to HTML Element which is the reference to positioning the popup
28
+ * @param popupcontentcontainer Element Reference to container of popup
29
+ * @param popupOffset Offset for popup positioning
30
+ * @param allowedPositions Allowed Positions for the popup
31
+ * @returns Returns the position where the popup should be displayed
32
+ */
33
+ getDisplayPosition(referenceContainer, popupcontentcontainer, arrowWidth, arrowHeight, allowedPositions, referenceIsContainer) {
34
+ const validPositions = this.validatePositions(referenceContainer, popupcontentcontainer, arrowWidth, arrowHeight, referenceIsContainer);
35
+ // tslint:disable-next-line:no-bitwise
36
+ if (this.hasPosition(allowedPositions, TooltipPosition.right) && validPositions & TooltipPosition.right) {
37
+ return TooltipPosition.right;
38
+ }
39
+ // tslint:disable-next-line:no-bitwise
40
+ if (this.hasPosition(allowedPositions, TooltipPosition.top) && validPositions & TooltipPosition.top) {
41
+ return TooltipPosition.top;
42
+ }
43
+ // tslint:disable-next-line:no-bitwise
44
+ if (this.hasPosition(allowedPositions, TooltipPosition.left) && validPositions & TooltipPosition.left) {
45
+ return TooltipPosition.left;
46
+ }
47
+ // tslint:disable-next-line:no-bitwise
48
+ if (this.hasPosition(allowedPositions, TooltipPosition.bottom) && validPositions & TooltipPosition.bottom) {
49
+ return TooltipPosition.bottom;
50
+ }
51
+ if (this.hasPosition(allowedPositions, TooltipPosition.topend) && validPositions & TooltipPosition.topend) {
52
+ return TooltipPosition.topend;
53
+ }
54
+ if (this.hasPosition(allowedPositions, TooltipPosition.bottomend) &&
55
+ validPositions & TooltipPosition.bottomend) {
56
+ return TooltipPosition.bottomend;
57
+ }
58
+ // Get Auto Position or Default
59
+ if (this.isAutoPosition(allowedPositions)) {
60
+ // tslint:disable-next-line:no-bitwise
61
+ if (validPositions & TooltipPosition.right) {
62
+ return TooltipPosition.right;
63
+ }
64
+ // tslint:disable-next-line:no-bitwise
65
+ if (validPositions & TooltipPosition.top) {
66
+ return TooltipPosition.top;
67
+ }
68
+ // tslint:disable-next-line:no-bitwise
69
+ if (validPositions & TooltipPosition.left) {
70
+ return TooltipPosition.left;
71
+ }
72
+ // tslint:disable-next-line:no-bitwise
73
+ if (validPositions & TooltipPosition.bottom) {
74
+ return TooltipPosition.bottom;
75
+ }
76
+ return TooltipPosition.right;
77
+ }
78
+ else {
79
+ return this.getPosition(allowedPositions);
80
+ }
81
+ }
82
+ /**
83
+ * Calculates the height of the popup
84
+ *
85
+ * @param container Element Reference to container of popup
86
+ */
87
+ getPopupHeight(container) {
88
+ var _a;
89
+ if (container) {
90
+ return (_a = container.nativeElement.firstElementChild.clientHeight) !== null && _a !== void 0 ? _a : 0;
91
+ }
92
+ else {
93
+ return 0;
94
+ }
95
+ }
96
+ /**
97
+ * Calculates the width of the popup
98
+ *
99
+ * @param container Element Reference to container of popup
100
+ */
101
+ getPopupWidth(container) {
102
+ if (container) {
103
+ return container.nativeElement.firstElementChild.clientWidth;
104
+ }
105
+ else {
106
+ return 0;
107
+ }
108
+ }
109
+ /**
110
+ * Returns the defined position for the tooltip
111
+ *
112
+ * @param allowedPositions Allowed positions defined in markup for popup
113
+ */
114
+ getPosition(allowedPositions) {
115
+ if (this.hasPosition(allowedPositions, TooltipPosition.left)) {
116
+ return TooltipPosition.left;
117
+ }
118
+ if (this.hasPosition(allowedPositions, TooltipPosition.top)) {
119
+ return TooltipPosition.top;
120
+ }
121
+ if (this.hasPosition(allowedPositions, TooltipPosition.right)) {
122
+ return TooltipPosition.right;
123
+ }
124
+ if (this.hasPosition(allowedPositions, TooltipPosition.bottom)) {
125
+ return TooltipPosition.bottom;
126
+ }
127
+ if (this.hasPosition(allowedPositions, TooltipPosition.topend)) {
128
+ return TooltipPosition.topend;
129
+ }
130
+ if (this.hasPosition(allowedPositions, TooltipPosition.bottomend)) {
131
+ return TooltipPosition.bottomend;
132
+ }
133
+ // Default Position if empty
134
+ return TooltipPosition.right;
135
+ }
136
+ /**
137
+ * Calculates the position of the tooltip from links
138
+ *
139
+ * @param controlReference Element Reference to angular component
140
+ * @param popupContainer Element Reference to container of popup
141
+ * @param referenceContainer Element Reference to HTML Element which is the reference to positioning the popup
142
+ * @param popupOffset Offset for popup positioning
143
+ * @param requestedPosition Requested Position by Control
144
+ */
145
+ getPositionLeft(referenceContainer, popupContainer, controlReference, arrowWidth, arrowHeight, requestedPosition, referenceIsContainer) {
146
+ if (referenceContainer !== null && referenceContainer !== undefined) {
147
+ const item = referenceContainer.nativeElement;
148
+ if (item.children.length >= 1) {
149
+ const childItem = referenceIsContainer ? item.firstElementChild : item;
150
+ const contentPosition = childItem.getBoundingClientRect();
151
+ switch (this.getDisplayPosition(referenceContainer, popupContainer, arrowWidth, arrowHeight, requestedPosition, referenceIsContainer)) {
152
+ case TooltipPosition.top:
153
+ case TooltipPosition.bottom:
154
+ return (contentPosition.left + contentPosition.width / 2 - this.getPopupWidth(popupContainer) / 2);
155
+ case TooltipPosition.topend:
156
+ case TooltipPosition.bottomend:
157
+ return contentPosition.left + contentPosition.width - this.getPopupWidth(popupContainer);
158
+ case TooltipPosition.right:
159
+ return contentPosition.left + contentPosition.width + arrowWidth / 2;
160
+ case TooltipPosition.left:
161
+ return contentPosition.left - this.getPopupWidth(popupContainer) + (arrowWidth / 2) * -1;
162
+ }
163
+ return referenceContainer.nativeElement.offsetTop;
164
+ }
165
+ else {
166
+ return referenceContainer.nativeElement.offsetTop;
167
+ }
168
+ }
169
+ else {
170
+ return controlReference.nativeElement.offsetLeft;
171
+ }
172
+ }
173
+ /**
174
+ * Calculates the position of the tooltip from the top
175
+ *
176
+ * @param controlReference Element Reference to angular component
177
+ * @param popupContainer Element Reference to container of popup
178
+ * @param referenceContainer Element Reference to HTML Element which is the reference to positioning the popup
179
+ * @param popupOffset Offset for popup positioning
180
+ * @param requestedPosition Requested Position by Control
181
+ */
182
+ getPositionTop(referenceContainer, popupContainer, controlReference, arrowWidth, arrowHeight, requestedPosition, referenceIsContainer) {
183
+ if (referenceContainer !== null && referenceContainer !== undefined) {
184
+ const item = referenceContainer.nativeElement;
185
+ if (item.children.length >= 1) {
186
+ const childItem = referenceIsContainer ? item.firstElementChild : item;
187
+ const contentPosition = childItem.getBoundingClientRect();
188
+ // Get Position with Scroll (Scrollbars inside page should be substracted)
189
+ const contentPositionTop = childItem.offsetTop +
190
+ this.getOffsetTopParent(childItem.offsetParent) +
191
+ this.getScrollTopParent(childItem.parentElement);
192
+ switch (this.getDisplayPosition(referenceContainer, popupContainer, arrowWidth, arrowHeight, requestedPosition, referenceIsContainer)) {
193
+ case TooltipPosition.top:
194
+ case TooltipPosition.topend:
195
+ return contentPositionTop - this.getPopupHeight(popupContainer) + (arrowHeight / 2) * -1;
196
+ case TooltipPosition.right:
197
+ case TooltipPosition.left:
198
+ return (contentPositionTop + contentPosition.height / 2 - this.getPopupHeight(popupContainer) / 2);
199
+ case TooltipPosition.bottom:
200
+ case TooltipPosition.bottomend:
201
+ return contentPositionTop + contentPosition.height + arrowHeight / 2;
202
+ }
203
+ return (childItem.clientTop +
204
+ childItem.offsetTop -
205
+ (this.getPopupHeight(popupContainer) / 2 - childItem.offsetHeight / 2));
206
+ }
207
+ else {
208
+ return referenceContainer.nativeElement.offsetTop;
209
+ }
210
+ }
211
+ else {
212
+ return controlReference.nativeElement.offsetTop;
213
+ }
214
+ }
215
+ /**
216
+ * Returns whether the position has been configured
217
+ *
218
+ * @param allowedPositions Positions that allowed by control
219
+ * @param requestedPosition Position to be checked
220
+ */
221
+ hasPosition(allowedPositions, requestedPosition) {
222
+ const positions = allowedPositions.split('|');
223
+ if (requestedPosition === TooltipPosition.right && positions.indexOf('right') >= 0) {
224
+ return true;
225
+ }
226
+ if (requestedPosition === TooltipPosition.top && positions.indexOf('top') >= 0) {
227
+ return true;
228
+ }
229
+ if (requestedPosition === TooltipPosition.left && positions.indexOf('left') >= 0) {
230
+ return true;
231
+ }
232
+ if (requestedPosition === TooltipPosition.bottom && positions.indexOf('bottom') >= 0) {
233
+ return true;
234
+ }
235
+ if (requestedPosition === TooltipPosition.topend && positions.indexOf('topend') >= 0) {
236
+ return true;
237
+ }
238
+ if (requestedPosition === TooltipPosition.bottomend && positions.indexOf('bottomend') >= 0) {
239
+ return true;
240
+ }
241
+ return false;
242
+ }
243
+ /**
244
+ * Defines whether AutoPosition is active
245
+ * @param positionProperty List of allowed positions
246
+ */
247
+ isAutoPosition(positionProperty) {
248
+ const positions = positionProperty.split('|');
249
+ return positions.indexOf('auto') >= 0;
250
+ }
251
+ /**
252
+ * Checks whether the position is valid or whether the tooltip on the position has space
253
+ */
254
+ validatePositions(referenceContainer, popupcontentcontainer, arrowWidth, arrowHeight, referenceIsContainer) {
255
+ // Check if Container is false
256
+ if (popupcontentcontainer === undefined) {
257
+ return TooltipPosition.right;
258
+ }
259
+ let allowedPositions = TooltipPosition.none;
260
+ const basePosition = referenceIsContainer
261
+ ? referenceContainer.nativeElement.firstElementChild.getBoundingClientRect()
262
+ : referenceContainer.nativeElement.getBoundingClientRect();
263
+ const tooltipRect = popupcontentcontainer.nativeElement.firstElementChild.getBoundingClientRect();
264
+ const leftPosOk = basePosition.left - tooltipRect.width + arrowWidth * -1 > 0;
265
+ const rightPosOk = basePosition.right + tooltipRect.width + arrowWidth < window.innerWidth;
266
+ const topPosOk = basePosition.top - tooltipRect.height + arrowHeight > 0;
267
+ const bottomPosOk = basePosition.bottom + tooltipRect.height + arrowHeight < window.innerHeight;
268
+ const leftHalfPosOk = basePosition.left - tooltipRect.width / 2 > 0;
269
+ const rightHalfPosOk = basePosition.right + tooltipRect.width / 2 < window.innerWidth;
270
+ const topHalfPosOk = basePosition.top - tooltipRect.height / 2 > 0;
271
+ const bottomHalfPosOk = basePosition.bottom + tooltipRect.height / 2 < window.innerHeight;
272
+ if (leftPosOk && topPosOk) {
273
+ // tslint:disable-next-line:no-bitwise
274
+ allowedPositions = allowedPositions | TooltipPosition.topend;
275
+ }
276
+ if (leftPosOk && bottomPosOk) {
277
+ // tslint:disable-next-line:no-bitwise
278
+ allowedPositions = allowedPositions | TooltipPosition.bottomend;
279
+ }
280
+ if (leftPosOk && topHalfPosOk && bottomHalfPosOk) {
281
+ // tslint:disable-next-line:no-bitwise
282
+ allowedPositions = allowedPositions | TooltipPosition.left;
283
+ }
284
+ if (rightPosOk && topHalfPosOk && bottomHalfPosOk) {
285
+ // tslint:disable-next-line:no-bitwise
286
+ allowedPositions = allowedPositions | TooltipPosition.right;
287
+ }
288
+ if (topPosOk && leftHalfPosOk && rightHalfPosOk) {
289
+ // tslint:disable-next-line:no-bitwise
290
+ allowedPositions = allowedPositions | TooltipPosition.top;
291
+ }
292
+ if (bottomPosOk && leftHalfPosOk && rightHalfPosOk) {
293
+ // tslint:disable-next-line:no-bitwise
294
+ allowedPositions = allowedPositions | TooltipPosition.bottom;
295
+ }
296
+ return allowedPositions;
297
+ }
298
+ // #endregion Public Methods
299
+ // #region Private Methods
300
+ /**
301
+ * Calculates the top of the page inside all elements
302
+ * @param element HTML Element
303
+ * @returns summarized top value for absolute position
304
+ */
305
+ getOffsetTopParent(element) {
306
+ if (element === null) {
307
+ return 0;
308
+ }
309
+ if (!element.offsetParent) {
310
+ return element.offsetTop;
311
+ }
312
+ const parentValue = this.getOffsetTopParent(element.offsetParent);
313
+ let offset = element.offsetTop;
314
+ return parentValue + offset;
315
+ }
316
+ /**
317
+ * Caclulate Scrollbars inside tree
318
+ * @param element HTML Element
319
+ * @param [isFixed=false] Invert Scroll Position value when style is fixed to preserve negative values
320
+ * @returns Scroll top value of element with all childs
321
+ */
322
+ getScrollTopParent(element, isFixed = false) {
323
+ if (element === null) {
324
+ return 0;
325
+ }
326
+ // Body Scroll should not be calculated
327
+ if (!element.parentElement) {
328
+ return isFixed ? element.scrollTop : 0;
329
+ }
330
+ let isCurrentFixed = false;
331
+ if (window.getComputedStyle(element).getPropertyValue('position') === 'fixed') {
332
+ isCurrentFixed = true;
333
+ }
334
+ const parentValue = this.getScrollTopParent(element.parentElement, isFixed || isCurrentFixed);
335
+ if (isFixed) {
336
+ return parentValue + element.scrollTop;
337
+ }
338
+ else {
339
+ return parentValue + element.scrollTop * -1;
340
+ }
341
+ }
342
+ }
343
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXBoZWxwZXIuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsidXRpbGl0aWVzL3BvcHVwaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHMUMsTUFBTSxPQUFPLFdBQVc7SUFDcEIseUJBQXlCO0lBRWxCLGtCQUFrQixDQUFDLGtCQUEyQyxFQUFFLG9CQUE2QjtRQUNoRyxJQUFJLGtCQUFrQixFQUFFO1lBQ3BCLE9BQU8sb0JBQW9CO2dCQUN2QixDQUFDLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFlBQVk7Z0JBQ2pFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1NBQ3ZEO2FBQU07WUFDSCxPQUFPLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQztJQUVNLGlCQUFpQixDQUFDLGtCQUEyQyxFQUFFLG9CQUE2QjtRQUMvRixJQUFJLGtCQUFrQixFQUFFO1lBQ3BCLE9BQU8sb0JBQW9CO2dCQUN2QixDQUFDLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFdBQVc7Z0JBQ2hFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1NBQ3REO2FBQU07WUFDSCxPQUFPLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksa0JBQWtCLENBQ3JCLGtCQUEyQyxFQUMzQyxxQkFBOEMsRUFDOUMsVUFBa0IsRUFDbEIsV0FBbUIsRUFDbkIsZ0JBQXdCLEVBQ3hCLG9CQUE2QjtRQUU3QixNQUFNLGNBQWMsR0FBb0IsSUFBSSxDQUFDLGlCQUFpQixDQUMxRCxrQkFBa0IsRUFDbEIscUJB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QUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxZQUEyQixDQUFDLENBQUM7UUFDakYsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUMvQixPQUFPLFdBQVcsR0FBRyxNQUFNLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssa0JBQWtCLENBQUMsT0FBb0IsRUFBRSxPQUFPLEdBQUcsS0FBSztRQUM1RCxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFDbEIsT0FBTyxDQUFDLENBQUM7U0FDWjtRQUVELHVDQUF1QztRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUN4QixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsSUFBSSxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLLE9BQU8sRUFBRTtZQUMzRSxjQUFjLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsT0FBTyxJQUFJLGNBQWMsQ0FBQyxDQUFDO1FBRTlGLElBQUksT0FBTyxFQUFFO1lBQ1QsT0FBTyxXQUFXLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUMxQzthQUFNO1lBQ0gsT0FBTyxXQUFXLEdBQUcsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMvQztJQUNMLENBQUM7Q0FHSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4vZW51bXMnO1xyXG5pbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgUG9wVXBIZWxwZXIge1xyXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAgIHB1YmxpYyBnZXRDb250YWluZXJIZWlnaHQocmVmZXJlbmNlQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcmVmZXJlbmNlSXNDb250YWluZXI6IGJvb2xlYW4pOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChyZWZlcmVuY2VDb250YWluZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlZmVyZW5jZUlzQ29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICA/IHJlZmVyZW5jZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkLmNsaWVudEhlaWdodFxyXG4gICAgICAgICAgICAgICAgOiByZWZlcmVuY2VDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRDb250YWluZXJXaWR0aChyZWZlcmVuY2VDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCByZWZlcmVuY2VJc0NvbnRhaW5lcjogYm9vbGVhbik6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKHJlZmVyZW5jZUNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVmZXJlbmNlSXNDb250YWluZXJcclxuICAgICAgICAgICAgICAgID8gcmVmZXJlbmNlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQuY2xpZW50V2lkdGhcclxuICAgICAgICAgICAgICAgIDogcmVmZXJlbmNlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IFBvc2l0aW9uIHdobyB0aGUgcG9wdXAgd291bGQgYmUgcG9zaXRpb25lZFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWZlcmVuY2VDb250YWluZXIgRWxlbWVudCBSZWZlcmVuY2UgdG8gSFRNTCBFbGVtZW50IHdoaWNoIGlzIHRoZSByZWZlcmVuY2UgdG8gcG9zaXRpb25pbmcgdGhlIHBvcHVwXHJcbiAgICAgKiBAcGFyYW0gcG9wdXBjb250ZW50Y29udGFpbmVyIEVsZW1lbnQgUmVmZXJlbmNlIHRvIGNvbnRhaW5lciBvZiBwb3B1cFxyXG4gICAgICogQHBhcmFtIHBvcHVwT2Zmc2V0IE9mZnNldCBmb3IgcG9wdXAgcG9zaXRpb25pbmdcclxuICAgICAqIEBwYXJhbSBhbGxvd2VkUG9zaXRpb25zIEFsbG93ZWQgUG9zaXRpb25zIGZvciB0aGUgcG9wdXBcclxuICAgICAqIEByZXR1cm5zIFJldHVybnMgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBwb3B1cCBzaG91bGQgYmUgZGlzcGxheWVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXREaXNwbGF5UG9zaXRpb24oXHJcbiAgICAgICAgcmVmZXJlbmNlQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgICAgICBwb3B1cGNvbnRlbnRjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgICAgIGFycm93V2lkdGg6IG51bWJlcixcclxuICAgICAgICBhcnJvd0hlaWdodDogbnVtYmVyLFxyXG4gICAgICAgIGFsbG93ZWRQb3NpdGlvbnM6IHN0cmluZyxcclxuICAgICAgICByZWZlcmVuY2VJc0NvbnRhaW5lcjogYm9vbGVhblxyXG4gICAgKTogVG9vbHRpcFBvc2l0aW9uIHtcclxuICAgICAgICBjb25zdCB2YWxpZFBvc2l0aW9uczogVG9vbHRpcFBvc2l0aW9uID0gdGhpcy52YWxpZGF0ZVBvc2l0aW9ucyhcclxuICAgICAgICAgICAgcmVmZXJlbmNlQ29udGFpbmVyLFxyXG4gICAgICAgICAgICBwb3B1cGNvbnRlbnRjb250YWluZXIsXHJcbiAgICAgICAgICAgIGFycm93V2lkdGgsXHJcbiAgICAgICAgICAgIGFycm93SGVpZ2h0LFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJc0NvbnRhaW5lclxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgICAgICAgaWYgKHRoaXMuaGFzUG9zaXRpb24oYWxsb3dlZFBvc2l0aW9ucywgVG9vbHRpcFBvc2l0aW9uLnJpZ2h0KSAmJiB2YWxpZFBvc2l0aW9ucyAmIFRvb2x0aXBQb3NpdGlvbi5yaWdodCkge1xyXG4gICAgICAgICAgICByZXR1cm4gVG9vbHRpcFBvc2l0aW9uLnJpZ2h0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcclxuICAgICAgICBpZiAodGhpcy5oYXNQb3NpdGlvbihhbGxvd2VkUG9zaXRpb25zLCBUb29sdGlwUG9zaXRpb24udG9wKSAmJiB2YWxpZFBvc2l0aW9ucyAmIFRvb2x0aXBQb3NpdGlvbi50b3ApIHtcclxuICAgICAgICAgICAgcmV0dXJuIFRvb2x0aXBQb3NpdGlvbi50b3A7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgICAgIGlmICh0aGlzLmhhc1Bvc2l0aW9uKGFsbG93ZWRQb3NpdGlvbnMsIFRvb2x0aXBQb3NpdGlvbi5sZWZ0KSAmJiB2YWxpZFBvc2l0aW9ucyAmIFRvb2x0aXBQb3NpdGlvbi5sZWZ0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBUb29sdGlwUG9zaXRpb24ubGVmdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgICAgICAgaWYgKHRoaXMuaGFzUG9zaXRpb24oYWxsb3dlZFBvc2l0aW9ucywgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSkgJiYgdmFsaWRQb3NpdGlvbnMgJiBUb29sdGlwUG9zaXRpb24uYm90dG9tKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBUb29sdGlwUG9zaXRpb24uYm90dG9tO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaGFzUG9zaXRpb24oYWxsb3dlZFBvc2l0aW9ucywgVG9vbHRpcFBvc2l0aW9uLnRvcGVuZCkgJiYgdmFsaWRQb3NpdGlvbnMgJiBUb29sdGlwUG9zaXRpb24udG9wZW5kKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBUb29sdGlwUG9zaXRpb24udG9wZW5kO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLmhhc1Bvc2l0aW9uKGFsbG93ZWRQb3NpdGlvbnMsIFRvb2x0aXBQb3NpdGlvbi5ib3R0b21lbmQpICYmXHJcbiAgICAgICAgICAgIHZhbGlkUG9zaXRpb25zICYgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbWVuZFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICByZXR1cm4gVG9vbHRpcFBvc2l0aW9uLmJvdHRvbWVuZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEdldCBBdXRvIFBvc2l0aW9uIG9yIERlZmF1bHRcclxuICAgICAgICBpZiAodGhpcy5pc0F1dG9Qb3NpdGlvbihhbGxvd2VkUG9zaXRpb25zKSkge1xyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgICAgICAgICBpZiAodmFsaWRQb3NpdGlvbnMgJiBUb29sdGlwUG9zaXRpb24ucmlnaHQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBUb29sdGlwUG9zaXRpb24ucmlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgICAgICAgICAgIGlmICh2YWxpZFBvc2l0aW9ucyAmIFRvb2x0aXBQb3NpdGlvbi50b3ApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBUb29sdGlwUG9zaXRpb24udG9wO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgICAgICAgICBpZiAodmFsaWRQb3NpdGlvbnMgJiBUb29sdGlwUG9zaXRpb24ubGVmdCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFRvb2x0aXBQb3NpdGlvbi5sZWZ0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgICAgICAgICBpZiAodmFsaWRQb3NpdGlvbnMgJiBUb29sdGlwUG9zaXRpb24uYm90dG9tKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gVG9vbHRpcFBvc2l0aW9uLmJvdHRvbTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIFRvb2x0aXBQb3NpdGlvbi5yaWdodDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRQb3NpdGlvbihhbGxvd2VkUG9zaXRpb25zKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgb2YgdGhlIHBvcHVwXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvbnRhaW5lciBFbGVtZW50IFJlZmVyZW5jZSB0byBjb250YWluZXIgb2YgcG9wdXBcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFBvcHVwSGVpZ2h0KGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChjb250YWluZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkLmNsaWVudEhlaWdodCA/PyAwO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBwb3B1cFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb250YWluZXIgRWxlbWVudCBSZWZlcmVuY2UgdG8gY29udGFpbmVyIG9mIHBvcHVwXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRQb3B1cFdpZHRoKGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChjb250YWluZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkLmNsaWVudFdpZHRoO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIGRlZmluZWQgcG9zaXRpb24gZm9yIHRoZSB0b29sdGlwXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGFsbG93ZWRQb3NpdGlvbnMgQWxsb3dlZCBwb3NpdGlvbnMgZGVmaW5lZCBpbiBtYXJrdXAgZm9yIHBvcHVwXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRQb3NpdGlvbihhbGxvd2VkUG9zaXRpb25zOiBzdHJpbmcpOiBUb29sdGlwUG9zaXRpb24ge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc1Bvc2l0aW9uKGFsbG93ZWRQb3NpdGlvbnMsIFRvb2x0aXBQb3NpdGlvbi5sZWZ0KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gVG9vbHRpcFBvc2l0aW9uLmxlZnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5oYXNQb3NpdGlvbihhbGxvd2VkUG9zaXRpb25zLCBUb29sdGlwUG9zaXRpb24udG9wKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gVG9vbHRpcFBvc2l0aW9uLnRvcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmhhc1Bvc2l0aW9uKGFsbG93ZWRQb3NpdGlvbnMsIFRvb2x0aXBQb3NpdGlvbi5yaWdodCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFRvb2x0aXBQb3NpdGlvbi5yaWdodDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmhhc1Bvc2l0aW9uKGFsbG93ZWRQb3NpdGlvbnMsIFRvb2x0aXBQb3NpdGlvbi5ib3R0b20pKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBUb29sdGlwUG9zaXRpb24uYm90dG9tO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaGFzUG9zaXRpb24oYWxsb3dlZFBvc2l0aW9ucywgVG9vbHRpcFBvc2l0aW9uLnRvcGVuZCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFRvb2x0aXBQb3NpdGlvbi50b3BlbmQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5oYXNQb3NpdGlvbihhbGxvd2VkUG9zaXRpb25zLCBUb29sdGlwUG9zaXRpb24uYm90dG9tZW5kKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gVG9vbHRpcFBvc2l0aW9uLmJvdHRvbWVuZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIERlZmF1bHQgUG9zaXRpb24gaWYgZW1wdHlcclxuICAgICAgICByZXR1cm4gVG9vbHRpcFBvc2l0aW9uLnJpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSBsaW5rc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb250cm9sUmVmZXJlbmNlIEVsZW1lbnQgUmVmZXJlbmNlIHRvIGFuZ3VsYXIgY29tcG9uZW50XHJcbiAgICAgKiBAcGFyYW0gcG9wdXBDb250YWluZXIgRWxlbWVudCBSZWZlcmVuY2UgdG8gY29udGFpbmVyIG9mIHBvcHVwXHJcbiAgICAgKiBAcGFyYW0gcmVmZXJlbmNlQ29udGFpbmVyIEVsZW1lbnQgUmVmZXJlbmNlIHRvIEhUTUwgRWxlbWVudCB3aGljaCBpcyB0aGUgcmVmZXJlbmNlIHRvIHBvc2l0aW9uaW5nIHRoZSBwb3B1cFxyXG4gICAgICogQHBhcmFtIHBvcHVwT2Zmc2V0IE9mZnNldCBmb3IgcG9wdXAgcG9zaXRpb25pbmdcclxuICAgICAqIEBwYXJhbSByZXF1ZXN0ZWRQb3NpdGlvbiBSZXF1ZXN0ZWQgUG9zaXRpb24gYnkgQ29udHJvbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UG9zaXRpb25MZWZ0KFxyXG4gICAgICAgIHJlZmVyZW5jZUNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICAgICAgcG9wdXBDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgICAgIGNvbnRyb2xSZWZlcmVuY2U6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgYXJyb3dXaWR0aDogbnVtYmVyLFxyXG4gICAgICAgIGFycm93SGVpZ2h0OiBudW1iZXIsXHJcbiAgICAgICAgcmVxdWVzdGVkUG9zaXRpb246IHN0cmluZyxcclxuICAgICAgICByZWZlcmVuY2VJc0NvbnRhaW5lcjogYm9vbGVhblxyXG4gICAgKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAocmVmZXJlbmNlQ29udGFpbmVyICE9PSBudWxsICYmIHJlZmVyZW5jZUNvbnRhaW5lciAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSByZWZlcmVuY2VDb250YWluZXIubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuLmxlbmd0aCA+PSAxKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZEl0ZW0gPSByZWZlcmVuY2VJc0NvbnRhaW5lciA/IChpdGVtLmZpcnN0RWxlbWVudENoaWxkIGFzIEhUTUxFbGVtZW50KSA6IGl0ZW07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50UG9zaXRpb246IERPTVJlY3QgPSBjaGlsZEl0ZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldERpc3BsYXlQb3NpdGlvbihcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlQ29udGFpbmVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3B1cENvbnRhaW5lcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJyb3dXaWR0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJyb3dIZWlnaHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFBvc2l0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VJc0NvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcDpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5ib3R0b206XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50UG9zaXRpb24ubGVmdCArIGNvbnRlbnRQb3NpdGlvbi53aWR0aCAvIDIgLSB0aGlzLmdldFBvcHVwV2lkdGgocG9wdXBDb250YWluZXIpIC8gMlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcGVuZDpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5ib3R0b21lbmQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50UG9zaXRpb24ubGVmdCArIGNvbnRlbnRQb3NpdGlvbi53aWR0aCAtIHRoaXMuZ2V0UG9wdXBXaWR0aChwb3B1cENvbnRhaW5lcik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ucmlnaHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50UG9zaXRpb24ubGVmdCArIGNvbnRlbnRQb3NpdGlvbi53aWR0aCArIGFycm93V2lkdGggLyAyO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmxlZnQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50UG9zaXRpb24ubGVmdCAtIHRoaXMuZ2V0UG9wdXBXaWR0aChwb3B1cENvbnRhaW5lcikgKyAoYXJyb3dXaWR0aCAvIDIpICogLTE7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlZmVyZW5jZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZWZlcmVuY2VDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRUb3A7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gY29udHJvbFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvbnRyb2xSZWZlcmVuY2UgRWxlbWVudCBSZWZlcmVuY2UgdG8gYW5ndWxhciBjb21wb25lbnRcclxuICAgICAqIEBwYXJhbSBwb3B1cENvbnRhaW5lciBFbGVtZW50IFJlZmVyZW5jZSB0byBjb250YWluZXIgb2YgcG9wdXBcclxuICAgICAqIEBwYXJhbSByZWZlcmVuY2VDb250YWluZXIgRWxlbWVudCBSZWZlcmVuY2UgdG8gSFRNTCBFbGVtZW50IHdoaWNoIGlzIHRoZSByZWZlcmVuY2UgdG8gcG9zaXRpb25pbmcgdGhlIHBvcHVwXHJcbiAgICAgKiBAcGFyYW0gcG9wdXBPZmZzZXQgT2Zmc2V0IGZvciBwb3B1cCBwb3NpdGlvbmluZ1xyXG4gICAgICogQHBhcmFtIHJlcXVlc3RlZFBvc2l0aW9uIFJlcXVlc3RlZCBQb3NpdGlvbiBieSBDb250cm9sXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRQb3NpdGlvblRvcChcclxuICAgICAgICByZWZlcmVuY2VDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgICAgIHBvcHVwQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgICAgICBjb250cm9sUmVmZXJlbmNlOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIGFycm93V2lkdGg6IG51bWJlcixcclxuICAgICAgICBhcnJvd0hlaWdodDogbnVtYmVyLFxyXG4gICAgICAgIHJlcXVlc3RlZFBvc2l0aW9uOiBzdHJpbmcsXHJcbiAgICAgICAgcmVmZXJlbmNlSXNDb250YWluZXI6IGJvb2xlYW5cclxuICAgICk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKHJlZmVyZW5jZUNvbnRhaW5lciAhPT0gbnVsbCAmJiByZWZlcmVuY2VDb250YWluZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtID0gcmVmZXJlbmNlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuLmxlbmd0aCA+PSAxKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZEl0ZW0gPSByZWZlcmVuY2VJc0NvbnRhaW5lciA/IChpdGVtLmZpcnN0RWxlbWVudENoaWxkIGFzIEhUTUxFbGVtZW50KSA6IGl0ZW07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50UG9zaXRpb246IERPTVJlY3QgPSBjaGlsZEl0ZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gR2V0IFBvc2l0aW9uIHdpdGggU2Nyb2xsIChTY3JvbGxiYXJzIGluc2lkZSBwYWdlIHNob3VsZCBiZSBzdWJzdHJhY3RlZClcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRQb3NpdGlvblRvcCA9XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRJdGVtLm9mZnNldFRvcCArXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRPZmZzZXRUb3BQYXJlbnQoY2hpbGRJdGVtLm9mZnNldFBhcmVudCBhcyBIVE1MRWxlbWVudCkgK1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0U2Nyb2xsVG9wUGFyZW50KGNoaWxkSXRlbS5wYXJlbnRFbGVtZW50KTtcclxuXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0RGlzcGxheVBvc2l0aW9uKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VDb250YWluZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcHVwQ29udGFpbmVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcnJvd1dpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcnJvd0hlaWdodCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUG9zaXRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZUlzQ29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24udG9wOlxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcGVuZDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRQb3NpdGlvblRvcCAtIHRoaXMuZ2V0UG9wdXBIZWlnaHQocG9wdXBDb250YWluZXIpICsgKGFycm93SGVpZ2h0IC8gMikgKiAtMTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5yaWdodDpcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5sZWZ0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFBvc2l0aW9uVG9wICsgY29udGVudFBvc2l0aW9uLmhlaWdodCAvIDIgLSB0aGlzLmdldFBvcHVwSGVpZ2h0KHBvcHVwQ29udGFpbmVyKSAvIDJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5ib3R0b206XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uYm90dG9tZW5kOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudFBvc2l0aW9uVG9wICsgY29udGVudFBvc2l0aW9uLmhlaWdodCArIGFycm93SGVpZ2h0IC8gMjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkSXRlbS5jbGllbnRUb3AgK1xyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkSXRlbS5vZmZzZXRUb3AgLVxyXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmdldFBvcHVwSGVpZ2h0KHBvcHVwQ29udGFpbmVyKSAvIDIgLSBjaGlsZEl0ZW0ub2Zmc2V0SGVpZ2h0IC8gMilcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVmZXJlbmNlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xSZWZlcmVuY2UubmF0aXZlRWxlbWVudC5vZmZzZXRUb3A7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBwb3NpdGlvbiBoYXMgYmVlbiBjb25maWd1cmVkXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGFsbG93ZWRQb3NpdGlvbnMgUG9zaXRpb25zIHRoYXQgYWxsb3dlZCBieSBjb250cm9sXHJcbiAgICAgKiBAcGFyYW0gcmVxdWVzdGVkUG9zaXRpb24gUG9zaXRpb24gdG8gYmUgY2hlY2tlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFzUG9zaXRpb24oYWxsb3dlZFBvc2l0aW9uczogc3RyaW5nLCByZXF1ZXN0ZWRQb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgcG9zaXRpb25zID0gYWxsb3dlZFBvc2l0aW9ucy5zcGxpdCgnfCcpO1xyXG5cclxuICAgICAgICBpZiAocmVxdWVzdGVkUG9zaXRpb24gPT09IFRvb2x0aXBQb3NpdGlvbi5yaWdodCAmJiBwb3NpdGlvbnMuaW5kZXhPZigncmlnaHQnKSA+PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlcXVlc3RlZFBvc2l0aW9uID09PSBUb29sdGlwUG9zaXRpb24udG9wICYmIHBvc2l0aW9ucy5pbmRleE9mKCd0b3AnKSA+PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlcXVlc3RlZFBvc2l0aW9uID09PSBUb29sdGlwUG9zaXRpb24ubGVmdCAmJiBwb3NpdGlvbnMuaW5kZXhPZignbGVmdCcpID49IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVxdWVzdGVkUG9zaXRpb24gPT09IFRvb2x0aXBQb3NpdGlvbi5ib3R0b20gJiYgcG9zaXRpb25zLmluZGV4T2YoJ2JvdHRvbScpID49IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVxdWVzdGVkUG9zaXRpb24gPT09IFRvb2x0aXBQb3NpdGlvbi50b3BlbmQgJiYgcG9zaXRpb25zLmluZGV4T2YoJ3RvcGVuZCcpID49IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZXF1ZXN0ZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLmJvdHRvbWVuZCAmJiBwb3NpdGlvbnMuaW5kZXhPZignYm90dG9tZW5kJykgPj0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgd2hldGhlciBBdXRvUG9zaXRpb24gaXMgYWN0aXZlXHJcbiAgICAgKiBAcGFyYW0gcG9zaXRpb25Qcm9wZXJ0eSBMaXN0IG9mIGFsbG93ZWQgcG9zaXRpb25zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpc0F1dG9Qb3NpdGlvbihwb3NpdGlvblByb3BlcnR5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBwb3NpdGlvbnMgPSBwb3NpdGlvblByb3BlcnR5LnNwbGl0KCd8Jyk7XHJcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9ucy5pbmRleE9mKCdhdXRvJykgPj0gMDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBwb3NpdGlvbiBpcyB2YWxpZCBvciB3aGV0aGVyIHRoZSB0b29sdGlwIG9uIHRoZSBwb3NpdGlvbiBoYXMgc3BhY2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIHZhbGlkYXRlUG9zaXRpb25zKFxyXG4gICAgICAgIHJlZmVyZW5jZUNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICAgICAgcG9wdXBjb250ZW50Y29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgICAgICBhcnJvd1dpZHRoOiBudW1iZXIsXHJcbiAgICAgICAgYXJyb3dIZWlnaHQ6IG51bWJlcixcclxuICAgICAgICByZWZlcmVuY2VJc0NvbnRhaW5lcjogYm9vbGVhblxyXG4gICAgKTogVG9vbHRpcFBvc2l0aW9uIHtcclxuICAgICAgICAvLyBDaGVjayBpZiBDb250YWluZXIgaXMgZmFsc2VcclxuICAgICAgICBpZiAocG9wdXBjb250ZW50Y29udGFpbmVyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFRvb2x0aXBQb3NpdGlvbi5yaWdodDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBhbGxvd2VkUG9zaXRpb25zOiBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24ubm9uZTtcclxuICAgICAgICBjb25zdCBiYXNlUG9zaXRpb246IERPTVJlY3QgPSByZWZlcmVuY2VJc0NvbnRhaW5lclxyXG4gICAgICAgICAgICA/IHJlZmVyZW5jZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgICAgICAgIDogcmVmZXJlbmNlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgY29uc3QgdG9vbHRpcFJlY3Q6IERPTVJlY3QgPSBwb3B1cGNvbnRlbnRjb250YWluZXIubmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICAgICAgY29uc3QgbGVmdFBvc09rOiBib29sZWFuID0gYmFzZVBvc2l0aW9uLmxlZnQgLSB0b29sdGlwUmVjdC53aWR0aCArIGFycm93V2lkdGggKiAtMSA+IDA7XHJcbiAgICAgICAgY29uc3QgcmlnaHRQb3NPazogYm9vbGVhbiA9IGJhc2VQb3NpdGlvbi5yaWdodCArIHRvb2x0aXBSZWN0LndpZHRoICsgYXJyb3dXaWR0aCA8IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICAgIGNvbnN0IHRvcFBvc09rOiBib29sZWFuID0gYmFzZVBvc2l0aW9uLnRvcCAtIHRvb2x0aXBSZWN0LmhlaWdodCArIGFycm93SGVpZ2h0ID4gMDtcclxuICAgICAgICBjb25zdCBib3R0b21Qb3NPazogYm9vbGVhbiA9IGJhc2VQb3NpdGlvbi5ib3R0b20gKyB0b29sdGlwUmVjdC5oZWlnaHQgKyBhcnJvd0hlaWdodCA8IHdpbmRvdy5pbm5lckhlaWdodDtcclxuXHJcbiAgICAgICAgY29uc3QgbGVmdEhhbGZQb3NPazogYm9vbGVhbiA9IGJhc2VQb3NpdGlvbi5sZWZ0IC0gdG9vbHRpcFJlY3Qud2lkdGggLyAyID4gMDtcclxuICAgICAgICBjb25zdCByaWdodEhhbGZQb3NPazogYm9vbGVhbiA9IGJhc2VQb3NpdGlvbi5yaWdodCArIHRvb2x0aXBSZWN0LndpZHRoIC8gMiA8IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICAgIGNvbnN0IHRvcEhhbGZQb3NPazogYm9vbGVhbiA9IGJhc2VQb3NpdGlvbi50b3AgLSB0b29sdGlwUmVjdC5oZWlnaHQgLyAyID4gMDtcclxuICAgICAgICBjb25zdCBib3R0b21IYWxmUG9zT2s6IGJvb2xlYW4gPSBiYXNlUG9zaXRpb24uYm90dG9tICsgdG9vbHRpcFJlY3QuaGVpZ2h0IC8gMiA8IHdpbmRvdy5pbm5lckhlaWdodDtcclxuXHJcbiAgICAgICAgaWYgKGxlZnRQb3NPayAmJiB0b3BQb3NPaykge1xyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgICAgICAgICBhbGxvd2VkUG9zaXRpb25zID0gYWxsb3dlZFBvc2l0aW9ucyB8IFRvb2x0aXBQb3NpdGlvbi50b3BlbmQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobGVmdFBvc09rICYmIGJvdHRvbVBvc09rKSB7XHJcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgICAgICAgICAgIGFsbG93ZWRQb3NpdGlvbnMgPSBhbGxvd2VkUG9zaXRpb25zIHwgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbWVuZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChsZWZ0UG9zT2sgJiYgdG9wSGFsZlBvc09rICYmIGJvdHRvbUhhbGZQb3NPaykge1xyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgICAgICAgICBhbGxvd2VkUG9zaXRpb25zID0gYWxsb3dlZFBvc2l0aW9ucyB8IFRvb2x0aXBQb3NpdGlvbi5sZWZ0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJpZ2h0UG9zT2sgJiYgdG9wSGFsZlBvc09rICYmIGJvdHRvbUhhbGZQb3NPaykge1xyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgICAgICAgICBhbGxvd2VkUG9zaXRpb25zID0gYWxsb3dlZFBvc2l0aW9ucyB8IFRvb2x0aXBQb3NpdGlvbi5yaWdodDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0b3BQb3NPayAmJiBsZWZ0SGFsZlBvc09rICYmIHJpZ2h0SGFsZlBvc09rKSB7XHJcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgICAgICAgICAgIGFsbG93ZWRQb3NpdGlvbnMgPSBhbGxvd2VkUG9zaXRpb25zIHwgVG9vbHRpcFBvc2l0aW9uLnRvcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChib3R0b21Qb3NPayAmJiBsZWZ0SGFsZlBvc09rICYmIHJpZ2h0SGFsZlBvc09rKSB7XHJcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgICAgICAgICAgIGFsbG93ZWRQb3NpdGlvbnMgPSBhbGxvd2VkUG9zaXRpb25zIHwgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBhbGxvd2VkUG9zaXRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgdG9wIG9mIHRoZSBwYWdlIGluc2lkZSBhbGwgZWxlbWVudHNcclxuICAgICAqIEBwYXJhbSBlbGVtZW50IEhUTUwgRWxlbWVudFxyXG4gICAgICogQHJldHVybnMgc3VtbWFyaXplZCB0b3AgdmFsdWUgZm9yIGFic29sdXRlIHBvc2l0aW9uXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0T2Zmc2V0VG9wUGFyZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoZWxlbWVudCA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghZWxlbWVudC5vZmZzZXRQYXJlbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQub2Zmc2V0VG9wO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGFyZW50VmFsdWUgPSB0aGlzLmdldE9mZnNldFRvcFBhcmVudChlbGVtZW50Lm9mZnNldFBhcmVudCBhcyBIVE1MRWxlbWVudCk7XHJcbiAgICAgICAgbGV0IG9mZnNldCA9IGVsZW1lbnQub2Zmc2V0VG9wO1xyXG4gICAgICAgIHJldHVybiBwYXJlbnRWYWx1ZSArIG9mZnNldDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhY2x1bGF0ZSBTY3JvbGxiYXJzIGluc2lkZSB0cmVlXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudCBIVE1MIEVsZW1lbnRcclxuICAgICAqIEBwYXJhbSBbaXNGaXhlZD1mYWxzZV0gSW52ZXJ0IFNjcm9sbCBQb3NpdGlvbiB2YWx1ZSB3aGVuIHN0eWxlIGlzIGZpeGVkIHRvIHByZXNlcnZlIG5lZ2F0aXZlIHZhbHVlc1xyXG4gICAgICogQHJldHVybnMgU2Nyb2xsIHRvcCB2YWx1ZSBvZiBlbGVtZW50IHdpdGggYWxsIGNoaWxkc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldFNjcm9sbFRvcFBhcmVudChlbGVtZW50OiBIVE1MRWxlbWVudCwgaXNGaXhlZCA9IGZhbHNlKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoZWxlbWVudCA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEJvZHkgU2Nyb2xsIHNob3VsZCBub3QgYmUgY2FsY3VsYXRlZFxyXG4gICAgICAgIGlmICghZWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBpc0ZpeGVkID8gZWxlbWVudC5zY3JvbGxUb3AgOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGlzQ3VycmVudEZpeGVkID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ3Bvc2l0aW9uJykgPT09ICdmaXhlZCcpIHtcclxuICAgICAgICAgICAgaXNDdXJyZW50Rml4ZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGFyZW50VmFsdWUgPSB0aGlzLmdldFNjcm9sbFRvcFBhcmVudChlbGVtZW50LnBhcmVudEVsZW1lbnQsIGlzRml4ZWQgfHwgaXNDdXJyZW50Rml4ZWQpO1xyXG5cclxuICAgICAgICBpZiAoaXNGaXhlZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gcGFyZW50VmFsdWUgKyBlbGVtZW50LnNjcm9sbFRvcDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gcGFyZW50VmFsdWUgKyBlbGVtZW50LnNjcm9sbFRvcCAqIC0xO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
+ *
4
+ * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
+ * tslint:disable
6
+ */
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXBoZWxwZXIubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbInV0aWxpdGllcy9wb3B1cGhlbHBlci5uZ2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { CreateValidationError } from './validationerrorcreator';
2
+ export function equalsValueValidator(requiredvalue, validationMessage, validationMessageSummary) {
3
+ return (control) => {
4
+ if (control.value !== requiredvalue) {
5
+ const parameters = new Map();
6
+ parameters.set('EQUALSVALUE', requiredvalue);
7
+ return CreateValidationError('equals', validationMessage, validationMessageSummary, parameters);
8
+ }
9
+ else {
10
+ return null;
11
+ }
12
+ };
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWxzLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJ2YWxpZGF0aW9uL2VxdWFscy52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFakUsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxhQUFrQixFQUNsQixpQkFBeUIsRUFDekIsd0JBQWdDO0lBRWhDLE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1FBQzNELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxhQUFhLEVBQUU7WUFDbkMsTUFBTSxVQUFVLEdBQXFCLElBQUksR0FBRyxFQUFlLENBQUM7WUFDNUQsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFFN0MsT0FBTyxxQkFBcUIsQ0FDMUIsUUFBUSxFQUNSLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsVUFBVSxDQUNYLENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDcmVhdGVWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL3ZhbGlkYXRpb25lcnJvcmNyZWF0b3InO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVxdWFsc1ZhbHVlVmFsaWRhdG9yKFxyXG4gIHJlcXVpcmVkdmFsdWU6IGFueSxcclxuICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeTogc3RyaW5nXHJcbik6IFZhbGlkYXRvckZuIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcclxuICAgIGlmIChjb250cm9sLnZhbHVlICE9PSByZXF1aXJlZHZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG4gICAgICBwYXJhbWV0ZXJzLnNldCgnRVFVQUxTVkFMVUUnLCByZXF1aXJlZHZhbHVlKTtcclxuXHJcbiAgICAgIHJldHVybiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXHJcbiAgICAgICAgJ2VxdWFscycsXHJcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5LFxyXG4gICAgICAgIHBhcmFtZXRlcnNcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH07XHJcbn1cclxuIl19
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
+ *
4
+ * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
+ * tslint:disable
6
+ */
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWxzLnZhbGlkYXRvci5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsidmFsaWRhdGlvbi9lcXVhbHMudmFsaWRhdG9yLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pMC5Db21wb25lbnRGYWN0b3J5O1xuIl19