@simpleangularcontrols/sac-common 10.0.0-rc.29 → 10.0.0-rc.30

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 (267) hide show
  1. package/bundles/simpleangularcontrols-sac-common.umd.js +1848 -1249
  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 +47 -21
  6. package/common/baseinputcontrol.d.ts +10 -8
  7. package/common/baselistcontrol.d.ts +15 -15
  8. package/common/basemodelcontrol.d.ts +59 -43
  9. package/common/baseselectcontrol.d.ts +5 -5
  10. package/common/baseuploadcontrol.d.ts +77 -57
  11. package/components/browser/browser.d.ts +86 -89
  12. package/components/browser/models/browserfile.d.ts +6 -6
  13. package/components/browser/models/browserfiledeleterequest.d.ts +7 -7
  14. package/components/browser/models/browserfilerenamerequest.d.ts +10 -10
  15. package/components/browser/models/browserfileresponse.d.ts +2 -2
  16. package/components/browser/models/browserfilesaverequest.d.ts +7 -7
  17. package/components/browser/models/browsernode.d.ts +13 -13
  18. package/components/browser/models/browsernodedeleterequest.d.ts +6 -6
  19. package/components/browser/models/browsernodenewrequest.d.ts +7 -7
  20. package/components/browser/models/browsernoderenamerequest.d.ts +7 -7
  21. package/components/browser/models/browsernoderequest.d.ts +7 -7
  22. package/components/browser/models/browsernoderesponse.d.ts +1 -1
  23. package/controls/buttons/button.d.ts +25 -19
  24. package/controls/checkbox/checkbox.d.ts +3 -3
  25. package/controls/checkbox/radiobutton.d.ts +19 -13
  26. package/controls/checkbox/radiobuttons.d.ts +13 -10
  27. package/controls/confirm/confirm.button.d.ts +3 -3
  28. package/controls/confirm/confirm.d.ts +13 -12
  29. package/controls/confirm/confirm.service.d.ts +14 -14
  30. package/controls/contextmenu/contextmenu.d.ts +33 -27
  31. package/controls/contextmenu/contextmenu.interface.d.ts +6 -0
  32. package/controls/contextmenu/contextmenuanchor.d.ts +4 -4
  33. package/controls/contextmenu/contextmenucontainer.d.ts +4 -4
  34. package/controls/contextmenu/contextmenuitembutton.d.ts +12 -12
  35. package/controls/datetime/date.d.ts +11 -11
  36. package/controls/datetime/dateselector.d.ts +47 -40
  37. package/controls/datetime/datetime.d.ts +15 -14
  38. package/controls/datetime/time.d.ts +22 -12
  39. package/controls/dialog/dialog.d.ts +28 -22
  40. package/controls/form/form.d.ts +17 -12
  41. package/controls/grid/grid.d.ts +1 -0
  42. package/controls/grid/gridbutton.d.ts +1 -0
  43. package/controls/grid/gridcolumn.d.ts +5 -1
  44. package/controls/grid/gridcolumnaction.d.ts +1 -1
  45. package/controls/grid/gridcolumnbase.d.ts +8 -3
  46. package/controls/grid/model.d.ts +5 -2
  47. package/controls/grid/paging.d.ts +2 -3
  48. package/controls/input/input.d.ts +7 -7
  49. package/controls/input/inputarea.d.ts +8 -6
  50. package/controls/input/inputcurrency.d.ts +4 -1
  51. package/controls/input/inputdecimal.d.ts +14 -14
  52. package/controls/input/inputemail.d.ts +4 -4
  53. package/controls/input/inputinteger.d.ts +14 -14
  54. package/controls/input/inputpassword.d.ts +3 -3
  55. package/controls/input/inputsearch.d.ts +8 -5
  56. package/controls/layout/formlayout.d.ts +8 -5
  57. package/controls/list/buildvaluestring.d.ts +2 -2
  58. package/controls/list/dropdown.d.ts +23 -22
  59. package/controls/list/dropdownoptions.d.ts +10 -10
  60. package/controls/list/listbox.d.ts +25 -23
  61. package/controls/multilanguage/multilanguageinput.d.ts +25 -25
  62. package/controls/multilanguage/multilanguageinputarea.d.ts +27 -27
  63. package/controls/static/formcontainer.d.ts +8 -8
  64. package/controls/static/staticlabel.d.ts +5 -5
  65. package/controls/tabs/tab.d.ts +2 -2
  66. package/controls/tabs/tabitem.d.ts +7 -7
  67. package/controls/tinymce/tinymce.d.ts +37 -37
  68. package/controls/tinymce/tinymcedialogsettings.d.ts +6 -6
  69. package/controls/tinymce/tinymcedialogsettingsmeta.d.ts +2 -2
  70. package/controls/tinymce/tinymceinstance.d.ts +2 -2
  71. package/controls/tooltip/tooltip.d.ts +10 -5
  72. package/controls/treeview/treeview.d.ts +50 -5
  73. package/controls/upload/dropzonemultiple.d.ts +16 -16
  74. package/controls/upload/dropzonesingle.d.ts +11 -11
  75. package/controls/upload/uploadmultiple.d.ts +12 -12
  76. package/controls/upload/uploadsingle.d.ts +7 -7
  77. package/controls/validation/validationsummary.d.ts +12 -11
  78. package/controls/wizard/wizard.d.ts +25 -18
  79. package/controls/wizard/wizarditem.d.ts +5 -5
  80. package/enums/ButtonRoleType.d.ts +26 -1
  81. package/enums/ControlHeight.d.ts +1 -1
  82. package/enums/IconType.d.ts +1 -1
  83. package/esm2015/common/basedatetimecontrol.js +47 -22
  84. package/esm2015/common/baseinputcontrol.js +13 -11
  85. package/esm2015/common/baselistcontrol.js +21 -17
  86. package/esm2015/common/basemodelcontrol.js +72 -49
  87. package/esm2015/common/baseselectcontrol.js +11 -9
  88. package/esm2015/common/baseuploadcontrol.js +69 -49
  89. package/esm2015/components/browser/browser.js +93 -105
  90. package/esm2015/components/browser/models/browserfile.js +1 -1
  91. package/esm2015/components/browser/models/browserfiledeleterequest.js +6 -4
  92. package/esm2015/components/browser/models/browserfilerenamerequest.js +6 -4
  93. package/esm2015/components/browser/models/browserfileresponse.js +1 -1
  94. package/esm2015/components/browser/models/browserfilesaverequest.js +5 -3
  95. package/esm2015/components/browser/models/browsernode.js +1 -1
  96. package/esm2015/components/browser/models/browsernodedeleterequest.js +6 -4
  97. package/esm2015/components/browser/models/browsernodenewrequest.js +6 -4
  98. package/esm2015/components/browser/models/browsernoderenamerequest.js +6 -4
  99. package/esm2015/components/browser/models/browsernoderequest.js +6 -4
  100. package/esm2015/components/browser/models/browsernoderesponse.js +1 -1
  101. package/esm2015/controls/buttons/button.js +26 -20
  102. package/esm2015/controls/checkbox/checkbox.js +3 -3
  103. package/esm2015/controls/checkbox/radiobutton.js +21 -15
  104. package/esm2015/controls/checkbox/radiobuttons.js +14 -11
  105. package/esm2015/controls/confirm/confirm.button.js +4 -4
  106. package/esm2015/controls/confirm/confirm.js +14 -13
  107. package/esm2015/controls/confirm/confirm.service.js +21 -21
  108. package/esm2015/controls/contextmenu/contextmenu.interface.js +1 -1
  109. package/esm2015/controls/contextmenu/contextmenu.js +29 -23
  110. package/esm2015/controls/contextmenu/contextmenuanchor.js +4 -4
  111. package/esm2015/controls/contextmenu/contextmenucontainer.js +4 -4
  112. package/esm2015/controls/contextmenu/contextmenuitembutton.js +10 -10
  113. package/esm2015/controls/datetime/date.js +13 -13
  114. package/esm2015/controls/datetime/dateselector.js +55 -54
  115. package/esm2015/controls/datetime/datetime.js +17 -16
  116. package/esm2015/controls/datetime/time.js +24 -14
  117. package/esm2015/controls/dialog/dialog.js +31 -24
  118. package/esm2015/controls/form/form.js +18 -13
  119. package/esm2015/controls/grid/grid.js +2 -1
  120. package/esm2015/controls/grid/gridbutton.js +2 -1
  121. package/esm2015/controls/grid/gridcolumn.js +6 -2
  122. package/esm2015/controls/grid/gridcolumnaction.js +2 -2
  123. package/esm2015/controls/grid/gridcolumnbase.js +9 -4
  124. package/esm2015/controls/grid/model.js +5 -2
  125. package/esm2015/controls/grid/paging.js +6 -7
  126. package/esm2015/controls/input/input.js +8 -8
  127. package/esm2015/controls/input/inputarea.js +9 -7
  128. package/esm2015/controls/input/inputcurrency.js +6 -3
  129. package/esm2015/controls/input/inputdecimal.js +21 -27
  130. package/esm2015/controls/input/inputemail.js +5 -5
  131. package/esm2015/controls/input/inputinteger.js +19 -23
  132. package/esm2015/controls/input/inputpassword.js +4 -4
  133. package/esm2015/controls/input/inputsearch.js +9 -6
  134. package/esm2015/controls/layout/formlayout.js +10 -7
  135. package/esm2015/controls/list/buildvaluestring.js +6 -6
  136. package/esm2015/controls/list/dropdown.js +28 -27
  137. package/esm2015/controls/list/dropdownoptions.js +12 -12
  138. package/esm2015/controls/list/listbox.js +26 -24
  139. package/esm2015/controls/multilanguage/multilanguageinput.js +29 -29
  140. package/esm2015/controls/multilanguage/multilanguageinputarea.js +31 -31
  141. package/esm2015/controls/static/formcontainer.js +10 -10
  142. package/esm2015/controls/static/staticlabel.js +7 -7
  143. package/esm2015/controls/tabs/tab.js +2 -2
  144. package/esm2015/controls/tabs/tabitem.js +5 -5
  145. package/esm2015/controls/tinymce/tinymce.js +35 -35
  146. package/esm2015/controls/tinymce/tinymcedialogsettings.js +4 -4
  147. package/esm2015/controls/tinymce/tinymcedialogsettingsmeta.js +1 -1
  148. package/esm2015/controls/tinymce/tinymceinstance.js +1 -1
  149. package/esm2015/controls/tooltip/tooltip.js +13 -8
  150. package/esm2015/controls/treeview/treeview.js +52 -7
  151. package/esm2015/controls/upload/dropzonemultiple.js +18 -18
  152. package/esm2015/controls/upload/dropzonesingle.js +12 -12
  153. package/esm2015/controls/upload/uploadmultiple.js +14 -14
  154. package/esm2015/controls/upload/uploadsingle.js +8 -8
  155. package/esm2015/controls/validation/validationsummary.js +14 -13
  156. package/esm2015/controls/wizard/wizard.js +24 -17
  157. package/esm2015/controls/wizard/wizarditem.js +4 -4
  158. package/esm2015/enums/ButtonRoleType.js +1 -1
  159. package/esm2015/enums/ControlHeight.js +2 -2
  160. package/esm2015/enums/IconType.js +2 -2
  161. package/esm2015/interfaces/ISacConfigurationService.js +1 -1
  162. package/esm2015/interfaces/ISacFileBrowserService.js +1 -1
  163. package/esm2015/interfaces/ISacLabelSizes.js +1 -1
  164. package/esm2015/interfaces/ISacLanguageService.js +1 -1
  165. package/esm2015/interfaces/ISacLocalisationService.js +1 -1
  166. package/esm2015/interfaces/ISacUploadEventCompleteState.js +1 -1
  167. package/esm2015/interfaces/iabstractcontrollabel.js +1 -1
  168. package/esm2015/interfaces/iconfirmcomponent.js +1 -1
  169. package/esm2015/interfaces/idatetimecontrol.js +1 -1
  170. package/esm2015/interfaces/iuploadcontrol.js +1 -1
  171. package/esm2015/interfaces/treeviewaction.interface.js +1 -1
  172. package/esm2015/models/languagemodel.js +5 -3
  173. package/esm2015/public_api.js +3 -2
  174. package/esm2015/services/index.js +4 -4
  175. package/esm2015/services/sac-configuration.service.js +7 -1
  176. package/esm2015/services/sac-filebrowser.service.js +46 -38
  177. package/esm2015/services/sac-localisation.service.js +11 -7
  178. package/esm2015/services/sac-validationkey.service.js +148 -1
  179. package/esm2015/utilities/convertion.js +7 -5
  180. package/esm2015/utilities/datatypes.js +6 -4
  181. package/esm2015/utilities/enums.js +9 -8
  182. package/esm2015/utilities/guid.js +2 -2
  183. package/esm2015/utilities/interpolation.js +16 -9
  184. package/esm2015/utilities/popuphelper.js +62 -25
  185. package/esm2015/utilities/positioncalculator.js +209 -0
  186. package/esm2015/utilities/positioncalculator.ngfactory.js +7 -0
  187. package/esm2015/utilities/positionelements.js +108 -0
  188. package/esm2015/utilities/positionelements.ngfactory.js +7 -0
  189. package/esm2015/utilities/testingattribute.pipe.js +17 -2
  190. package/esm2015/validation/email.validator.js +11 -2
  191. package/esm2015/validation/equals.validator.js +11 -1
  192. package/esm2015/validation/index.js +1 -1
  193. package/esm2015/validation/invaliddate.validator.js +11 -2
  194. package/esm2015/validation/isDateValid.js +11 -10
  195. package/esm2015/validation/maxdate.validator.js +14 -4
  196. package/esm2015/validation/maxtime.validator.js +14 -4
  197. package/esm2015/validation/maxvalue.validator.js +12 -2
  198. package/esm2015/validation/mindate.validator.js +14 -4
  199. package/esm2015/validation/minfiles.validator.js +12 -2
  200. package/esm2015/validation/mintextlength.validator.js +9 -1
  201. package/esm2015/validation/mintime.validator.js +14 -4
  202. package/esm2015/validation/minvalue.validator.js +12 -2
  203. package/esm2015/validation/multilanguagerequired.validator.js +11 -1
  204. package/esm2015/validation/multilanguagerequiredany.validator.js +11 -1
  205. package/esm2015/validation/notequals.validator.js +11 -1
  206. package/esm2015/validation/pattern.validator.js +12 -2
  207. package/esm2015/validation/required.validator.js +11 -2
  208. package/esm2015/validation/validation.class.js +84 -101
  209. package/esm2015/validation/validationerrorcreator.js +12 -1
  210. package/esm2015/validation/validationerroritem.js +11 -9
  211. package/fesm2015/simpleangularcontrols-sac-common.js +1823 -1226
  212. package/fesm2015/simpleangularcontrols-sac-common.js.map +1 -1
  213. package/interfaces/ISacConfigurationService.d.ts +9 -1
  214. package/interfaces/ISacFileBrowserService.d.ts +43 -43
  215. package/interfaces/ISacLabelSizes.d.ts +15 -12
  216. package/interfaces/ISacLanguageService.d.ts +3 -3
  217. package/interfaces/ISacLocalisationService.d.ts +2 -2
  218. package/interfaces/ISacUploadEventCompleteState.d.ts +6 -0
  219. package/interfaces/iabstractcontrollabel.d.ts +4 -1
  220. package/interfaces/iconfirmcomponent.d.ts +6 -6
  221. package/interfaces/idatetimecontrol.d.ts +10 -1
  222. package/interfaces/treeviewaction.interface.d.ts +9 -0
  223. package/models/languagemodel.d.ts +9 -9
  224. package/package.json +1 -1
  225. package/public_api.d.ts +2 -1
  226. package/services/index.d.ts +3 -3
  227. package/services/sac-configuration.service.d.ts +8 -0
  228. package/services/sac-filebrowser.service.d.ts +78 -70
  229. package/services/sac-localisation.service.d.ts +11 -7
  230. package/services/sac-validationkey.service.d.ts +147 -0
  231. package/simpleangularcontrols-sac-common-10.0.0-rc.30.tgz +0 -0
  232. package/simpleangularcontrols-sac-common.metadata.json +1 -1
  233. package/utilities/convertion.d.ts +4 -4
  234. package/utilities/datatypes.d.ts +3 -3
  235. package/utilities/enums.d.ts +8 -1
  236. package/utilities/guid.d.ts +1 -1
  237. package/utilities/interpolation.d.ts +9 -8
  238. package/utilities/popuphelper.d.ts +47 -10
  239. package/utilities/positioncalculator.d.ts +82 -0
  240. package/utilities/positionelements.d.ts +30 -0
  241. package/utilities/positionelements.ngfactory.d.ts +1 -0
  242. package/utilities/testingattribute.pipe.d.ts +16 -1
  243. package/validation/email.validator.d.ts +7 -0
  244. package/validation/equals.validator.d.ts +8 -0
  245. package/validation/invaliddate.validator.d.ts +7 -0
  246. package/validation/isDateValid.d.ts +5 -2
  247. package/validation/maxdate.validator.d.ts +8 -0
  248. package/validation/maxtime.validator.d.ts +8 -0
  249. package/validation/maxvalue.validator.d.ts +8 -0
  250. package/validation/mindate.validator.d.ts +8 -0
  251. package/validation/minfiles.validator.d.ts +8 -0
  252. package/validation/mintextlength.validator.d.ts +8 -0
  253. package/validation/mintime.validator.d.ts +8 -0
  254. package/validation/minvalue.validator.d.ts +8 -0
  255. package/validation/multilanguagerequired.validator.d.ts +9 -1
  256. package/validation/multilanguagerequiredany.validator.d.ts +9 -1
  257. package/validation/notequals.validator.d.ts +8 -0
  258. package/validation/pattern.validator.d.ts +8 -0
  259. package/validation/required.validator.d.ts +7 -0
  260. package/validation/validation.class.d.ts +83 -100
  261. package/validation/validationerrorcreator.d.ts +9 -0
  262. package/validation/validationerroritem.d.ts +16 -16
  263. package/esm2015/utilities/positioning.js +0 -301
  264. package/esm2015/utilities/positioning.ngfactory.js +0 -7
  265. package/simpleangularcontrols-sac-common-10.0.0-rc.29.tgz +0 -0
  266. package/utilities/positioning.d.ts +0 -82
  267. /package/utilities/{positioning.ngfactory.d.ts → positioncalculator.ngfactory.d.ts} +0 -0
@@ -5,7 +5,7 @@ import { ChangeDetectorRef, Directive, ElementRef, HostListener, Injector, Input
5
5
  import * as IMask from 'imask';
6
6
  import * as moment_ from 'moment';
7
7
  /**
8
- * Komponente für SacDateTimeCommon. Extends SacBaseDateTimeControl
8
+ * Component for SacDateTimeCommon. Extends SacBaseDateTimeControl
9
9
  */
10
10
  export class SacDateTimeCommon extends SacBaseDateTimeControl {
11
11
  // #endregion Properties
@@ -14,18 +14,19 @@ export class SacDateTimeCommon extends SacBaseDateTimeControl {
14
14
  * Constructor
15
15
  * @param formlayout SacFormLayoutCommon to define scoped layout settings
16
16
  * @param injector Injector for injecting services
17
- * @param elementRef reference to html element
17
+ * @param elementRef Reference to html element
18
+ * @param cdRef Change detector reference for updating component view
18
19
  */
19
20
  constructor(formlayout, injector, elementRef, cdRef) {
20
21
  super(formlayout, injector, elementRef, cdRef);
21
22
  this.elementRef = elementRef;
22
23
  // #region Properties
23
24
  /**
24
- * Format des Datums
25
+ * Date format
25
26
  */
26
27
  this.DATEFORMAT = 'DD.MM.YYYY HH:mm';
27
28
  /**
28
- * Maske
29
+ * Mask
29
30
  */
30
31
  this.imaskDate = {
31
32
  mask: this.DATEFORMAT,
@@ -66,11 +67,11 @@ export class SacDateTimeCommon extends SacBaseDateTimeControl {
66
67
  overwrite: true,
67
68
  };
68
69
  /**
69
- * Maximaler Wert des Datums
70
+ * Maximum value of the date
70
71
  */
71
72
  this._maxdate = null;
72
73
  /**
73
- * Minimaler Wert des Datums
74
+ * Minimum value of the date
74
75
  */
75
76
  this._mindate = null;
76
77
  /**
@@ -78,19 +79,19 @@ export class SacDateTimeCommon extends SacBaseDateTimeControl {
78
79
  */
79
80
  this.moment = moment_['default'];
80
81
  /**
81
- * Resource Key für Validation Message MaxDate bei Control
82
+ * Resource key for validation message MaxDate at control
82
83
  */
83
84
  this.validationmessagemaxdate = this.validationKeyService.ValidationErrorMaxDate;
84
85
  /**
85
- * Resource Key für Validation Message MinDate bei Control
86
+ * Resource key for validation message MinDate at control
86
87
  */
87
88
  this.validationmessagemindate = this.validationKeyService.ValidationErrorMinDate;
88
89
  /**
89
- * Resource Key für Validation Message MaxDate in Validation Summary
90
+ * Resource key for validation message MaxDate in validation summary
90
91
  */
91
92
  this.validationmessagesummarymaxdate = this.validationKeyService.ValidationErrorSummaryMaxDate;
92
93
  /**
93
- * Resource Key für Validation Message MinDate in Validation Summary
94
+ * Resource key for validation message MinDate in validation summary
94
95
  */
95
96
  this.validationmessagesummarymindate = this.validationKeyService.ValidationErrorSummaryMinDate;
96
97
  }
@@ -129,19 +130,19 @@ export class SacDateTimeCommon extends SacBaseDateTimeControl {
129
130
  // #endregion Public Getters And Setters
130
131
  // #region Public Methods
131
132
  /**
132
- * Methode ergibt Datum-Format vom String
133
+ * Method returns date format from string
133
134
  */
134
135
  GetDateTimeFormatString() {
135
136
  return this.DATEFORMAT;
136
137
  }
137
138
  /**
138
- * Methode modifiziert den parsed Wert des Datums
139
+ * Method modifies the parsed value of the date
139
140
  */
140
141
  ModifyParsedDateTimeValue(v) {
141
142
  return v;
142
143
  }
143
144
  /**
144
- * Methode ergibt das selektierte Datum
145
+ * Method returns the selected date
145
146
  */
146
147
  dateselect(v) {
147
148
  if (v.date === null) {
@@ -166,11 +167,11 @@ export class SacDateTimeCommon extends SacBaseDateTimeControl {
166
167
  }
167
168
  }
168
169
  /**
169
- * DateSelector wird beim Click-Event angezeigt
170
+ * DateSelector is shown on click event
170
171
  */
171
172
  showDateSelector() {
172
173
  /**
173
- * Touch Event auslösen
174
+ * Trigger a touch event
174
175
  */
175
176
  this.onTouch();
176
177
  if (this._showselector) {
@@ -223,4 +224,4 @@ SacDateTimeCommon.propDecorators = {
223
224
  mindate: [{ type: Input }],
224
225
  onClick: [{ type: HostListener, args: ['document:click', ['$event.target'],] }]
225
226
  };
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9kYXRldGltZS9kYXRldGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEcsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFFbEM7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLHNCQUFzQjtJQXFGbEUsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7Ozs7T0FLRztJQUNILFlBQ0ksVUFBK0IsRUFDL0IsUUFBa0IsRUFDUixVQUFzQixFQUNoQyxLQUF3QjtRQUV4QixLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFIckMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWpHcEMscUJBQXFCO1FBRXJCOztXQUVHO1FBQ2EsZUFBVSxHQUFXLGtCQUFrQixDQUFDO1FBRXhEOztXQUVHO1FBQ2EsY0FBUyxHQUFHO1lBQ3hCLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVTtZQUNyQixNQUFNLEVBQUU7Z0JBQ0osRUFBRSxFQUFFO29CQUNB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c0JBY0wsS0FBSztzQkE2Q0wsWUFBWSxTQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjQmFzZURhdGVUaW1lQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sJztcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgSU1hc2sgZnJvbSAnaW1hc2snO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuXG4vKipcbiAqIEtvbXBvbmVudGUgZsO8ciBTYWNEYXRlVGltZUNvbW1vbi4gRXh0ZW5kcyBTYWNCYXNlRGF0ZVRpbWVDb250cm9sXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0RhdGVUaW1lQ29tbW9uIGV4dGVuZHMgU2FjQmFzZURhdGVUaW1lQ29udHJvbCB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBGb3JtYXQgZGVzIERhdHVtc1xuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBEQVRFRk9STUFUOiBzdHJpbmcgPSAnREQuTU0uWVlZWSBISDptbSc7XG5cbiAgICAvKipcbiAgICAgKiBNYXNrZVxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpbWFza0RhdGUgPSB7XG4gICAgICAgIG1hc2s6IHRoaXMuREFURUZPUk1BVCxcbiAgICAgICAgYmxvY2tzOiB7XG4gICAgICAgICAgICBERDoge1xuICAgICAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxuICAgICAgICAgICAgICAgIGZyb206IDEsXG4gICAgICAgICAgICAgICAgdG86IDMxLFxuICAgICAgICAgICAgICAgIG1heExlbmd0aDogMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBNTToge1xuICAgICAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxuICAgICAgICAgICAgICAgIGZyb206IDEsXG4gICAgICAgICAgICAgICAgdG86IDEyLFxuICAgICAgICAgICAgICAgIG1heExlbmd0aDogMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBZWVlZOiB7XG4gICAgICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXG4gICAgICAgICAgICAgICAgZnJvbTogMSxcbiAgICAgICAgICAgICAgICB0bzogOTk5OSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBISDoge1xuICAgICAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxuICAgICAgICAgICAgICAgIGZyb206IDAsXG4gICAgICAgICAgICAgICAgdG86IDIzLFxuICAgICAgICAgICAgICAgIG1heExlbmd0aDogMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtbToge1xuICAgICAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxuICAgICAgICAgICAgICAgIGZyb206IDAsXG4gICAgICAgICAgICAgICAgdG86IDU5LFxuICAgICAgICAgICAgICAgIG1heExlbmd0aDogMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJ18nLFxuICAgICAgICBhdXRvZml4OiB0cnVlLFxuICAgICAgICBsYXp5OiBmYWxzZSxcbiAgICAgICAgb3ZlcndyaXRlOiB0cnVlLFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBNYXhpbWFsZXIgV2VydCBkZXMgRGF0dW1zXG4gICAgICovXG4gICAgcHVibGljIF9tYXhkYXRlOiBEYXRlID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE1pbmltYWxlciBXZXJ0IGRlcyBEYXR1bXNcbiAgICAgKi9cbiAgICBwdWJsaWMgX21pbmRhdGU6IERhdGUgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTW9tZW50IEpTIG1vZHVsZSBpbnN0YW5jZVxuICAgICAqL1xuICAgIHB1YmxpYyBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgTWF4RGF0ZSBiZWkgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZW1heGRhdGU6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWF4RGF0ZTtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBNaW5EYXRlIGJlaSBDb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlbWluZGF0ZTogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNaW5EYXRlO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIE1heERhdGUgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1heGRhdGU6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1heERhdGU7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgTWluRGF0ZSBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5bWluZGF0ZTogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWluRGF0ZTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXG4gICAgICogQHBhcmFtIGVsZW1lbnRSZWYgcmVmZXJlbmNlIHRvIGh0bWwgZWxlbWVudFxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZm9ybWxheW91dCwgaW5qZWN0b3IsIGVsZW1lbnRSZWYsIGNkUmVmKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogaWNvbiBmb3IgZGF0ZSBzZWxlY3RvciBidXR0b25cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IEljb25TZWxlY3RvcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5EYXRlVGltZUNvbXBvbmVudFNlbGVjdG9ySWNvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYXggRGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBtYXhkYXRlKHY6IHN0cmluZyB8IERhdGUgfCBudWxsKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLm1vbWVudCh2LCBbdGhpcy5EQVRFRk9STUFUXSwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9tYXhkYXRlID0gc3VwZXIuZ2V0RGF0ZShkYXRlKS50b0RhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21heGRhdGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWluIERhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgbWluZGF0ZSh2OiBzdHJpbmcgfCBEYXRlIHwgbnVsbCkge1xuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5tb21lbnQodiwgW3RoaXMuREFURUZPUk1BVF0sIHRydWUpO1xuXG4gICAgICAgIGlmIChkYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgdGhpcy5fbWluZGF0ZSA9IHN1cGVyLmdldERhdGUoZGF0ZSkudG9EYXRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9taW5kYXRlID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IERhdHVtLUZvcm1hdCB2b20gU3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLkRBVEVGT1JNQVQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBtb2RpZml6aWVydCBkZW4gcGFyc2VkIFdlcnQgZGVzIERhdHVtc1xuICAgICAqL1xuICAgIHB1YmxpYyBNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHY6IG1vbWVudF8uTW9tZW50KTogbW9tZW50Xy5Nb21lbnQge1xuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2RlIGVyZ2lidCBkYXMgc2VsZWt0aWVydGUgRGF0dW1cbiAgICAgKi9cbiAgICBwdWJsaWMgZGF0ZXNlbGVjdCh2OiBhbnkpIHtcbiAgICAgICAgaWYgKHYuZGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZVN0cmluZygnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5tb21lbnQodi5kYXRlKS51dGMoKS50b0RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3Nob3dzZWxlY3RvciA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhvc3RMaXN0ZW5lclxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQudGFyZ2V0J10pXG4gICAgLyoqXG4gICAgICogQ2xpY2sgRXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgb25DbGljayh0YXJnZXRFbGVtZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5waWNrZXJjb250YWluZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGVDb250YWluZXIgPSB0aGlzLnBpY2tlcmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpO1xuICAgICAgICBjb25zdCBjbGlja2VkSW5zaWRlUmVmZXJlbmNlID0gdGhpcy5waWNrZXJidXR0b24ubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcbiAgICAgICAgaWYgKCFjbGlja2VkSW5zaWRlQ29udGFpbmVyICYmICFjbGlja2VkSW5zaWRlUmVmZXJlbmNlKSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93c2VsZWN0b3IgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERhdGVTZWxlY3RvciB3aXJkIGJlaW0gQ2xpY2stRXZlbnQgYW5nZXplaWd0XG4gICAgICovXG4gICAgcHVibGljIHNob3dEYXRlU2VsZWN0b3IoKTogdm9pZCB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUb3VjaCBFdmVudCBhdXNsw7ZzZW5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xuXG4gICAgICAgIGlmICh0aGlzLl9zaG93c2VsZWN0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dzZWxlY3RvciA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2hvd3NlbGVjdG9yID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvclxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcblxuICAgICAgICBlcnJvciA9IHN1cGVyLnZhbGlkYXRlRGF0YShjKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBlcnJvciA9PT0gbnVsbCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSAnJyAmJlxuICAgICAgICAgICAgdGhpcy5fbWluZGF0ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICB0aGlzLl9taW5kYXRlICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLm1pbkRhdGUoXG4gICAgICAgICAgICAgICAgdGhpcy5fbWluZGF0ZSxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlbWluZGF0ZSxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1pbmRhdGVcbiAgICAgICAgICAgICkoYyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBlcnJvciA9PT0gbnVsbCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSAnJyAmJlxuICAgICAgICAgICAgdGhpcy5fbWF4ZGF0ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICB0aGlzLl9tYXhkYXRlICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLm1heERhdGUoXG4gICAgICAgICAgICAgICAgdGhpcy5fbWF4ZGF0ZSxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlbWF4ZGF0ZSxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1heGRhdGVcbiAgICAgICAgICAgICkoYyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xufVxuIl19
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9kYXRldGltZS9kYXRldGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEcsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7QUFFbEM7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLHNCQUFzQjtJQXFGbEUsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7Ozs7O09BTUc7SUFDSCxZQUNJLFVBQStCLEVBQy9CLFFBQWtCLEVBQ1IsVUFBc0IsRUFDaEMsS0FBd0I7UUFFeEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBSHJDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFsR3BDLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNhLGVBQVUsR0FBVyxrQkFBa0IsQ0FBQztRQUV4RDs7V0FFRztRQUNhLGNBQVMsR0FBRztZQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDckIsTUFBTSxFQUFFO2dCQUNKLEVBQUUsRUFBRTtvQkFD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O3NCQWNMLEtBQUs7c0JBNkNMLFlBQVksU0FBQyxnQkFBZ0IsRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Jhc2VEYXRlVGltZUNvbnRyb2wgfSBmcm9tICcuLi8uLi9jb21tb24vYmFzZWRhdGV0aW1lY29udHJvbCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIElNYXNrIGZyb20gJ2ltYXNrJztcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIFNhY0RhdGVUaW1lQ29tbW9uLiBFeHRlbmRzIFNhY0Jhc2VEYXRlVGltZUNvbnRyb2xcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjRGF0ZVRpbWVDb21tb24gZXh0ZW5kcyBTYWNCYXNlRGF0ZVRpbWVDb250cm9sIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIERhdGUgZm9ybWF0XG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IERBVEVGT1JNQVQ6IHN0cmluZyA9ICdERC5NTS5ZWVlZIEhIOm1tJztcblxuICAgIC8qKlxuICAgICAqIE1hc2tcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaW1hc2tEYXRlID0ge1xuICAgICAgICBtYXNrOiB0aGlzLkRBVEVGT1JNQVQsXG4gICAgICAgIGJsb2Nrczoge1xuICAgICAgICAgICAgREQ6IHtcbiAgICAgICAgICAgICAgICBtYXNrOiBJTWFzay5NYXNrZWRSYW5nZSxcbiAgICAgICAgICAgICAgICBmcm9tOiAxLFxuICAgICAgICAgICAgICAgIHRvOiAzMSxcbiAgICAgICAgICAgICAgICBtYXhMZW5ndGg6IDIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgTU06IHtcbiAgICAgICAgICAgICAgICBtYXNrOiBJTWFzay5NYXNrZWRSYW5nZSxcbiAgICAgICAgICAgICAgICBmcm9tOiAxLFxuICAgICAgICAgICAgICAgIHRvOiAxMixcbiAgICAgICAgICAgICAgICBtYXhMZW5ndGg6IDIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgWVlZWToge1xuICAgICAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxuICAgICAgICAgICAgICAgIGZyb206IDEsXG4gICAgICAgICAgICAgICAgdG86IDk5OTksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgSEg6IHtcbiAgICAgICAgICAgICAgICBtYXNrOiBJTWFzay5NYXNrZWRSYW5nZSxcbiAgICAgICAgICAgICAgICBmcm9tOiAwLFxuICAgICAgICAgICAgICAgIHRvOiAyMyxcbiAgICAgICAgICAgICAgICBtYXhMZW5ndGg6IDIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbW06IHtcbiAgICAgICAgICAgICAgICBtYXNrOiBJTWFzay5NYXNrZWRSYW5nZSxcbiAgICAgICAgICAgICAgICBmcm9tOiAwLFxuICAgICAgICAgICAgICAgIHRvOiA1OSxcbiAgICAgICAgICAgICAgICBtYXhMZW5ndGg6IDIsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICdfJyxcbiAgICAgICAgYXV0b2ZpeDogdHJ1ZSxcbiAgICAgICAgbGF6eTogZmFsc2UsXG4gICAgICAgIG92ZXJ3cml0ZTogdHJ1ZSxcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTWF4aW11bSB2YWx1ZSBvZiB0aGUgZGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBfbWF4ZGF0ZTogRGF0ZSA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBNaW5pbXVtIHZhbHVlIG9mIHRoZSBkYXRlXG4gICAgICovXG4gICAgcHVibGljIF9taW5kYXRlOiBEYXRlID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE1vbWVudCBKUyBtb2R1bGUgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2Uga2V5IGZvciB2YWxpZGF0aW9uIG1lc3NhZ2UgTWF4RGF0ZSBhdCBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlbWF4ZGF0ZTogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNYXhEYXRlO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2Uga2V5IGZvciB2YWxpZGF0aW9uIG1lc3NhZ2UgTWluRGF0ZSBhdCBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlbWluZGF0ZTogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JNaW5EYXRlO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2Uga2V5IGZvciB2YWxpZGF0aW9uIG1lc3NhZ2UgTWF4RGF0ZSBpbiB2YWxpZGF0aW9uIHN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5bWF4ZGF0ZTogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5TWF4RGF0ZTtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIGtleSBmb3IgdmFsaWRhdGlvbiBtZXNzYWdlIE1pbkRhdGUgaW4gdmFsaWRhdGlvbiBzdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1pbmRhdGU6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pbkRhdGU7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgICAqIEBwYXJhbSBlbGVtZW50UmVmIFJlZmVyZW5jZSB0byBodG1sIGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gY2RSZWYgQ2hhbmdlIGRldGVjdG9yIHJlZmVyZW5jZSBmb3IgdXBkYXRpbmcgY29tcG9uZW50IHZpZXdcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbixcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yLCBlbGVtZW50UmVmLCBjZFJlZik7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIGljb24gZm9yIGRhdGUgc2VsZWN0b3IgYnV0dG9uXG4gICAgICovXG4gICAgcHVibGljIGdldCBJY29uU2VsZWN0b3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuRGF0ZVRpbWVDb21wb25lbnRTZWxlY3Rvckljb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWF4IERhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgbWF4ZGF0ZSh2OiBzdHJpbmcgfCBEYXRlIHwgbnVsbCkge1xuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5tb21lbnQodiwgW3RoaXMuREFURUZPUk1BVF0sIHRydWUpO1xuXG4gICAgICAgIGlmIChkYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgdGhpcy5fbWF4ZGF0ZSA9IHN1cGVyLmdldERhdGUoZGF0ZSkudG9EYXRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9tYXhkYXRlID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1pbiBEYXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IG1pbmRhdGUodjogc3RyaW5nIHwgRGF0ZSB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMubW9tZW50KHYsIFt0aGlzLkRBVEVGT1JNQVRdLCB0cnVlKTtcblxuICAgICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX21pbmRhdGUgPSBzdXBlci5nZXREYXRlKGRhdGUpLnRvRGF0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbWluZGF0ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgcmV0dXJucyBkYXRlIGZvcm1hdCBmcm9tIHN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBHZXREYXRlVGltZUZvcm1hdFN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5EQVRFRk9STUFUO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBtb2RpZmllcyB0aGUgcGFyc2VkIHZhbHVlIG9mIHRoZSBkYXRlXG4gICAgICovXG4gICAgcHVibGljIE1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUodjogbW9tZW50Xy5Nb21lbnQpOiBtb21lbnRfLk1vbWVudCB7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCByZXR1cm5zIHRoZSBzZWxlY3RlZCBkYXRlXG4gICAgICovXG4gICAgcHVibGljIGRhdGVzZWxlY3QodjogYW55KSB7XG4gICAgICAgIGlmICh2LmRhdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVTdHJpbmcoJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubW9tZW50KHYuZGF0ZSkudXRjKCkudG9EYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zaG93c2VsZWN0b3IgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIb3N0TGlzdGVuZXJcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuICAgIC8qKlxuICAgICAqIENsaWNrIEV2ZW50XG4gICAgICogQHBhcmFtIHRhcmdldEVsZW1lbnQgVGhlIHRhcmdldCBlbGVtZW50IGZyb20gdGhlIGNsaWNrIGV2ZW50XG4gICAgICovXG4gICAgcHVibGljIG9uQ2xpY2sodGFyZ2V0RWxlbWVudCkge1xuICAgICAgICBpZiAoIXRoaXMucGlja2VyY29udGFpbmVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGlja2VkSW5zaWRlQ29udGFpbmVyID0gdGhpcy5waWNrZXJjb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcbiAgICAgICAgY29uc3QgY2xpY2tlZEluc2lkZVJlZmVyZW5jZSA9IHRoaXMucGlja2VyYnV0dG9uLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0RWxlbWVudCk7XG4gICAgICAgIGlmICghY2xpY2tlZEluc2lkZUNvbnRhaW5lciAmJiAhY2xpY2tlZEluc2lkZVJlZmVyZW5jZSkge1xuICAgICAgICAgICAgdGhpcy5fc2hvd3NlbGVjdG9yID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEYXRlU2VsZWN0b3IgaXMgc2hvd24gb24gY2xpY2sgZXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0RhdGVTZWxlY3RvcigpOiB2b2lkIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRyaWdnZXIgYSB0b3VjaCBldmVudFxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3Nob3dzZWxlY3Rvcikge1xuICAgICAgICAgICAgdGhpcy5fc2hvd3NlbGVjdG9yID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93c2VsZWN0b3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGVycm9yID0gc3VwZXIudmFsaWRhdGVEYXRhKGMpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGVycm9yID09PSBudWxsICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09ICcnICYmXG4gICAgICAgICAgICB0aGlzLl9taW5kYXRlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHRoaXMuX21pbmRhdGUgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24ubWluRGF0ZShcbiAgICAgICAgICAgICAgICB0aGlzLl9taW5kYXRlLFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VtaW5kYXRlLFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5bWluZGF0ZVxuICAgICAgICAgICAgKShjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGVycm9yID09PSBudWxsICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09ICcnICYmXG4gICAgICAgICAgICB0aGlzLl9tYXhkYXRlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHRoaXMuX21heGRhdGUgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24ubWF4RGF0ZShcbiAgICAgICAgICAgICAgICB0aGlzLl9tYXhkYXRlLFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VtYXhkYXRlLFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5bWF4ZGF0ZVxuICAgICAgICAgICAgKShjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG59XG4iXX0=
@@ -5,7 +5,7 @@ import { ChangeDetectorRef, Directive, ElementRef, HostListener, Injector, Input
5
5
  import * as IMask from 'imask';
6
6
  import * as moment_ from 'moment';
7
7
  /**
8
- * Komponente für SacTimeCommon. Extends SacBaseDateTimeControl
8
+ * Component for SacTimeCommon. Extends SacBaseDateTimeControl
9
9
  */
10
10
  export class SacTimeCommon extends SacBaseDateTimeControl {
11
11
  // #endregion Properties
@@ -14,18 +14,19 @@ export class SacTimeCommon extends SacBaseDateTimeControl {
14
14
  * Constructor
15
15
  * @param formlayout SacFormLayoutCommon to define scoped layout settings
16
16
  * @param injector Injector for injecting services
17
- * @param elementRef reference to html element
17
+ * @param elementRef Reference to html element
18
+ * @param cdRef Change detector reference for updating component view
18
19
  */
19
20
  constructor(formlayout, injector, elementRef, cdRef) {
20
21
  super(formlayout, injector, elementRef, cdRef);
21
22
  this.elementRef = elementRef;
22
23
  // #region Properties
23
24
  /**
24
- * Format des Datums
25
+ * Date format
25
26
  */
26
27
  this.TIMEFORMAT = 'HH:mm';
27
28
  /**
28
- * Maske
29
+ * Mask
29
30
  */
30
31
  this.imaskDate = {
31
32
  mask: this.TIMEFORMAT,
@@ -61,19 +62,19 @@ export class SacTimeCommon extends SacBaseDateTimeControl {
61
62
  */
62
63
  this.moment = moment_['default'];
63
64
  /**
64
- * Resource Key für Validation Message MinTime bei Control
65
+ * Resource Key for Validation Message MinTime at Control
65
66
  */
66
67
  this.validationmessagemaxtime = this.validationKeyService.ValidationErrorMaxTime;
67
68
  /**
68
- * Resource Key für Validation Message MinTime bei Control
69
+ * Resource Key for Validation Message MinTime at Control
69
70
  */
70
71
  this.validationmessagemintime = this.validationKeyService.ValidationErrorMinTime;
71
72
  /**
72
- * Resource Key für Validation Message MinTime in Validation Summary
73
+ * Resource Key for Validation Message MinTime in Validation Summary
73
74
  */
74
75
  this.validationmessagesummarymaxtime = this.validationKeyService.ValidationErrorSummaryMaxTime;
75
76
  /**
76
- * Resource Key für Validation Message MinTime in Validation Summary
77
+ * Resource Key for Validation Message MinTime in Validation Summary
77
78
  */
78
79
  this.validationmessagesummarymintime = this.validationKeyService.ValidationErrorSummaryMinTime;
79
80
  }
@@ -114,13 +115,16 @@ export class SacTimeCommon extends SacBaseDateTimeControl {
114
115
  // #endregion Public Getters And Setters
115
116
  // #region Public Methods
116
117
  /**
117
- * Methode ergibt Datum-Format vom String
118
+ * Method returns date format from string
118
119
  */
119
120
  GetDateTimeFormatString() {
120
121
  return this.TIMEFORMAT;
121
122
  }
122
123
  /**
123
- * Methode ergibt Datum - Moment
124
+ * Normalizes a parsed moment date to a base timeline context (year 1900, month January, day 1).
125
+ *
126
+ * @param v Parsed moment object.
127
+ * @returns Normalized moment object for internal comparison and validation.
124
128
  */
125
129
  ModifyParsedDateTimeValue(v) {
126
130
  v.date(1);
@@ -142,10 +146,10 @@ export class SacTimeCommon extends SacBaseDateTimeControl {
142
146
  }
143
147
  }
144
148
  /**
145
- * Zeigt Date Selector an
149
+ * Shows time selector
146
150
  */
147
151
  showTimeSelector() {
148
- // Touch Event auslösen
152
+ // Trigger a touch event
149
153
  this.onTouch();
150
154
  if (this._showselector) {
151
155
  this._showselector = false;
@@ -156,6 +160,7 @@ export class SacTimeCommon extends SacBaseDateTimeControl {
156
160
  }
157
161
  /**
158
162
  * Time Selector
163
+ * @param v Selected time value object
159
164
  */
160
165
  timeselect(v) {
161
166
  if (v.date === null) {
@@ -167,7 +172,12 @@ export class SacTimeCommon extends SacBaseDateTimeControl {
167
172
  this._showselector = false;
168
173
  }
169
174
  /**
170
- * Validator
175
+ * Validates the input control value against min/max time constraints.
176
+ *
177
+ * Delegates to base validation and applies minTime/maxTime validations when applicable.
178
+ *
179
+ * @param c AbstractControl instance to validate.
180
+ * @returns ValidationErrors object when invalid, otherwise null.
171
181
  */
172
182
  validateData(c) {
173
183
  let error = null;
@@ -209,4 +219,4 @@ SacTimeCommon.propDecorators = {
209
219
  mintime: [{ type: Input }],
210
220
  onClick: [{ type: HostListener, args: ['document:click', ['$event.target'],] }]
211
221
  };
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2RhdGV0aW1lL3RpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhHLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBRWxDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGFBQWMsU0FBUSxzQkFBc0I7SUFvRXJELHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7O09BS0c7SUFDSCxZQUNJLFVBQStCLEVBQy9CLFFBQWtCLEVBQ1IsVUFBc0IsRUFDaEMsS0FBd0I7UUFFeEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBSHJDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFoRnBDLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNhLGVBQVUsR0FBVyxPQUFPLENBQUM7UUFFN0M7O1dBRUc7UUFDYSxjQUFTLEdBQUc7WUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ3JCLE1BQU0sRUFBRTtnQkFDSixFQUFFLEVBQUU7b0JBQ0EsSUFBSSxFQUFFLEtB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Jy4uLy4uL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sJztcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgSU1hc2sgZnJvbSAnaW1hc2snO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuXG4vKipcbiAqIEtvbXBvbmVudGUgZsO8ciBTYWNUaW1lQ29tbW9uLiBFeHRlbmRzIFNhY0Jhc2VEYXRlVGltZUNvbnRyb2xcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2FjVGltZUNvbW1vbiBleHRlbmRzIFNhY0Jhc2VEYXRlVGltZUNvbnRyb2wge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogRm9ybWF0IGRlcyBEYXR1bXNcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgVElNRUZPUk1BVDogc3RyaW5nID0gJ0hIOm1tJztcblxuICAgIC8qKlxuICAgICAqIE1hc2tlXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGltYXNrRGF0ZSA9IHtcbiAgICAgICAgbWFzazogdGhpcy5USU1FRk9STUFULFxuICAgICAgICBibG9ja3M6IHtcbiAgICAgICAgICAgIEhIOiB7XG4gICAgICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXG4gICAgICAgICAgICAgICAgZnJvbTogMCxcbiAgICAgICAgICAgICAgICB0bzogMjMsXG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1tOiB7XG4gICAgICAgICAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXG4gICAgICAgICAgICAgICAgZnJvbTogMCxcbiAgICAgICAgICAgICAgICB0bzogNTksXG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnXycsXG4gICAgICAgIGF1dG9maXg6IHRydWUsXG4gICAgICAgIGxhenk6IGZhbHNlLFxuICAgICAgICBvdmVyd3JpdGU6IHRydWUsXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIE1heCBUaW1lXG4gICAgICovXG4gICAgcHVibGljIF9tYXh0aW1lOiBEYXRlID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE1pbiBUaW1lXG4gICAgICovXG4gICAgcHVibGljIF9taW50aW1lOiBEYXRlID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE1vbWVudCBKUyBtb2R1bGUgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIE1pblRpbWUgYmVpIENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VtYXh0aW1lOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvck1heFRpbWU7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgTWluVGltZSBiZWkgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZW1pbnRpbWU6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWluVGltZTtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBNaW5UaW1lIGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltYXh0aW1lOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNYXhUaW1lO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIE1pblRpbWUgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1pbnRpbWU6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1pblRpbWU7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgICAqIEBwYXJhbSBlbGVtZW50UmVmIHJlZmVyZW5jZSB0byBodG1sIGVsZW1lbnRcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbixcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yLCBlbGVtZW50UmVmLCBjZFJlZik7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIGljb24gZm9yIGRhdGUgc2VsZWN0b3IgYnV0dG9uXG4gICAgICovXG4gICAgcHVibGljIGdldCBJY29uU2VsZWN0b3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuVGltZUNvbXBvbmVudFNlbGVjdG9ySWNvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYXggVGltZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBtYXh0aW1lKHY6IHN0cmluZyB8IERhdGUgfCBudWxsKSB7XG4gICAgICAgIGxldCB0aW1lID0gdGhpcy5tb21lbnQodiwgW3RoaXMuVElNRUZPUk1BVF0sIHRydWUpO1xuXG4gICAgICAgIHRpbWUgPSB0aGlzLk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUodGltZSk7XG5cbiAgICAgICAgaWYgKHRpbWUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9tYXh0aW1lID0gc3VwZXIuZ2V0RGF0ZSh0aW1lKS50b0RhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21heHRpbWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWluIFRpbWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgbWludGltZSh2OiBzdHJpbmcgfCBEYXRlIHwgbnVsbCkge1xuICAgICAgICBsZXQgdGltZSA9IHRoaXMubW9tZW50KHYsIFt0aGlzLlRJTUVGT1JNQVRdLCB0cnVlKTtcblxuICAgICAgICB0aW1lID0gdGhpcy5Nb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHRpbWUpO1xuXG4gICAgICAgIGlmICh0aW1lLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgdGhpcy5fbWludGltZSA9IHN1cGVyLmdldERhdGUodGltZSkudG9EYXRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9taW50aW1lID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIE1ldGhvZGUgZXJnaWJ0IERhdHVtLUZvcm1hdCB2b20gU3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLlRJTUVGT1JNQVQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSBlcmdpYnQgRGF0dW0gLSBNb21lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZSh2OiBtb21lbnRfLk1vbWVudCk6IG1vbWVudF8uTW9tZW50IHtcbiAgICAgICAgdi5kYXRlKDEpO1xuICAgICAgICB2Lm1vbnRoKDApO1xuICAgICAgICB2LnllYXIoMTkwMCk7XG4gICAgICAgIHJldHVybiB2O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhvc3RMaXN0ZW5lclxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQudGFyZ2V0J10pXG4gICAgLyoqXG4gICAgICogQ2xpY2sgRXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgb25DbGljayh0YXJnZXRFbGVtZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5waWNrZXJjb250YWluZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGVDb250YWluZXIgPSB0aGlzLnBpY2tlcmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpO1xuICAgICAgICBjb25zdCBjbGlja2VkSW5zaWRlUmVmZXJlbmNlID0gdGhpcy5waWNrZXJidXR0b24ubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcbiAgICAgICAgaWYgKCFjbGlja2VkSW5zaWRlQ29udGFpbmVyICYmICFjbGlja2VkSW5zaWRlUmVmZXJlbmNlKSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93c2VsZWN0b3IgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFplaWd0IERhdGUgU2VsZWN0b3IgYW5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd1RpbWVTZWxlY3RvcigpOiB2b2lkIHtcbiAgICAgICAgLy8gVG91Y2ggRXZlbnQgYXVzbMO2c2VuXG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xuXG4gICAgICAgIGlmICh0aGlzLl9zaG93c2VsZWN0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dzZWxlY3RvciA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2hvd3NlbGVjdG9yID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRpbWUgU2VsZWN0b3JcbiAgICAgKi9cbiAgICBwdWJsaWMgdGltZXNlbGVjdCh2OiBhbnkpIHtcbiAgICAgICAgaWYgKHYuZGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZVN0cmluZygnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5tb21lbnQodi5kYXRlKS51dGMoKS50b0RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3Nob3dzZWxlY3RvciA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvclxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcblxuICAgICAgICBlcnJvciA9IHN1cGVyLnZhbGlkYXRlRGF0YShjKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBlcnJvciA9PT0gbnVsbCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSAnJyAmJlxuICAgICAgICAgICAgdGhpcy5fbWludGltZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICB0aGlzLl9taW50aW1lICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLm1pblRpbWUoXG4gICAgICAgICAgICAgICAgdGhpcy5fbWludGltZSxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlbWludGltZSxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1pbnRpbWVcbiAgICAgICAgICAgICkoYyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBlcnJvciA9PT0gbnVsbCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBjLnZhbHVlICE9PSAnJyAmJlxuICAgICAgICAgICAgdGhpcy5fbWF4dGltZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICB0aGlzLl9tYXh0aW1lICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLm1heFRpbWUoXG4gICAgICAgICAgICAgICAgdGhpcy5fbWF4dGltZSxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlbWF4dGltZSxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1heHRpbWVcbiAgICAgICAgICAgICkoYyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xufVxuIl19
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2RhdGV0aW1lL3RpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhHLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBRWxDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGFBQWMsU0FBUSxzQkFBc0I7SUFvRXJELHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7OztPQU1HO0lBQ0gsWUFDSSxVQUErQixFQUMvQixRQUFrQixFQUNSLFVBQXNCLEVBQ2hDLEtBQXdCO1FBRXhCLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUhyQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBakZwQyxxQkFBcUI7UUFFckI7O1dBRUc7UUFDYSxlQUFVLEdBQVcsT0FBTyxDQUFDO1FBRTdDOztXQUVHO1FBQ2EsY0FBUyxHQUFHO1lBQ3hCLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVTtZQUNyQixNQUFNLEVBQUU7Z0JBQ0osRUFBRSxFQUFFO29CQUNBLElBQUksRUFBRSxL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b2wgfSBmcm9tICcuLi8uLi9jb21tb24vYmFzZWRhdGV0aW1lY29udHJvbCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIElNYXNrIGZyb20gJ2ltYXNrJztcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIFNhY1RpbWVDb21tb24uIEV4dGVuZHMgU2FjQmFzZURhdGVUaW1lQ29udHJvbFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBTYWNUaW1lQ29tbW9uIGV4dGVuZHMgU2FjQmFzZURhdGVUaW1lQ29udHJvbCB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBEYXRlIGZvcm1hdFxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBUSU1FRk9STUFUOiBzdHJpbmcgPSAnSEg6bW0nO1xuXG4gICAgLyoqXG4gICAgICogTWFza1xuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpbWFza0RhdGUgPSB7XG4gICAgICAgIG1hc2s6IHRoaXMuVElNRUZPUk1BVCxcbiAgICAgICAgYmxvY2tzOiB7XG4gICAgICAgICAgICBISDoge1xuICAgICAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxuICAgICAgICAgICAgICAgIGZyb206IDAsXG4gICAgICAgICAgICAgICAgdG86IDIzLFxuICAgICAgICAgICAgICAgIG1heExlbmd0aDogMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtbToge1xuICAgICAgICAgICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxuICAgICAgICAgICAgICAgIGZyb206IDAsXG4gICAgICAgICAgICAgICAgdG86IDU5LFxuICAgICAgICAgICAgICAgIG1heExlbmd0aDogMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJ18nLFxuICAgICAgICBhdXRvZml4OiB0cnVlLFxuICAgICAgICBsYXp5OiBmYWxzZSxcbiAgICAgICAgb3ZlcndyaXRlOiB0cnVlLFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBNYXggVGltZVxuICAgICAqL1xuICAgIHB1YmxpYyBfbWF4dGltZTogRGF0ZSA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBNaW4gVGltZVxuICAgICAqL1xuICAgIHB1YmxpYyBfbWludGltZTogRGF0ZSA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBNb21lbnQgSlMgbW9kdWxlIGluc3RhbmNlXG4gICAgICovXG4gICAgcHVibGljIG1vbWVudCA9IG1vbWVudF9bJ2RlZmF1bHQnXTtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmb3IgVmFsaWRhdGlvbiBNZXNzYWdlIE1pblRpbWUgYXQgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZW1heHRpbWU6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWF4VGltZTtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmb3IgVmFsaWRhdGlvbiBNZXNzYWdlIE1pblRpbWUgYXQgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZW1pbnRpbWU6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yTWluVGltZTtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmb3IgVmFsaWRhdGlvbiBNZXNzYWdlIE1pblRpbWUgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeW1heHRpbWU6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeU1heFRpbWU7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZm9yIFZhbGlkYXRpb24gTWVzc2FnZSBNaW5UaW1lIGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltaW50aW1lOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlNaW5UaW1lO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiBSZWZlcmVuY2UgdG8gaHRtbCBlbGVtZW50XG4gICAgICogQHBhcmFtIGNkUmVmIENoYW5nZSBkZXRlY3RvciByZWZlcmVuY2UgZm9yIHVwZGF0aW5nIGNvbXBvbmVudCB2aWV3XG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3RvciwgZWxlbWVudFJlZiwgY2RSZWYpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvKipcbiAgICAgKiBpY29uIGZvciBkYXRlIHNlbGVjdG9yIGJ1dHRvblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgSWNvblNlbGVjdG9yKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlRpbWVDb21wb25lbnRTZWxlY3Rvckljb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWF4IFRpbWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgbWF4dGltZSh2OiBzdHJpbmcgfCBEYXRlIHwgbnVsbCkge1xuICAgICAgICBsZXQgdGltZSA9IHRoaXMubW9tZW50KHYsIFt0aGlzLlRJTUVGT1JNQVRdLCB0cnVlKTtcblxuICAgICAgICB0aW1lID0gdGhpcy5Nb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHRpbWUpO1xuXG4gICAgICAgIGlmICh0aW1lLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgdGhpcy5fbWF4dGltZSA9IHN1cGVyLmdldERhdGUodGltZSkudG9EYXRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9tYXh0aW1lID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1pbiBUaW1lXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IG1pbnRpbWUodjogc3RyaW5nIHwgRGF0ZSB8IG51bGwpIHtcbiAgICAgICAgbGV0IHRpbWUgPSB0aGlzLm1vbWVudCh2LCBbdGhpcy5USU1FRk9STUFUXSwgdHJ1ZSk7XG5cbiAgICAgICAgdGltZSA9IHRoaXMuTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZSh0aW1lKTtcblxuICAgICAgICBpZiAodGltZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX21pbnRpbWUgPSBzdXBlci5nZXREYXRlKHRpbWUpLnRvRGF0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbWludGltZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgcmV0dXJucyBkYXRlIGZvcm1hdCBmcm9tIHN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBHZXREYXRlVGltZUZvcm1hdFN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5USU1FRk9STUFUO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5vcm1hbGl6ZXMgYSBwYXJzZWQgbW9tZW50IGRhdGUgdG8gYSBiYXNlIHRpbWVsaW5lIGNvbnRleHQgKHllYXIgMTkwMCwgbW9udGggSmFudWFyeSwgZGF5IDEpLlxuICAgICAqXG4gICAgICogQHBhcmFtIHYgUGFyc2VkIG1vbWVudCBvYmplY3QuXG4gICAgICogQHJldHVybnMgTm9ybWFsaXplZCBtb21lbnQgb2JqZWN0IGZvciBpbnRlcm5hbCBjb21wYXJpc29uIGFuZCB2YWxpZGF0aW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyBNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHY6IG1vbWVudF8uTW9tZW50KTogbW9tZW50Xy5Nb21lbnQge1xuICAgICAgICB2LmRhdGUoMSk7XG4gICAgICAgIHYubW9udGgoMCk7XG4gICAgICAgIHYueWVhcigxOTAwKTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSG9zdExpc3RlbmVyXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcbiAgICAvKipcbiAgICAgKiBDbGljayBFdmVudFxuICAgICAqIEBwYXJhbSB0YXJnZXRFbGVtZW50IFRoZSB0YXJnZXQgZWxlbWVudCBmcm9tIHRoZSBjbGljayBldmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBvbkNsaWNrKHRhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLnBpY2tlcmNvbnRhaW5lcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2xpY2tlZEluc2lkZUNvbnRhaW5lciA9IHRoaXMucGlja2VyY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0RWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGVSZWZlcmVuY2UgPSB0aGlzLnBpY2tlcmJ1dHRvbi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpO1xuICAgICAgICBpZiAoIWNsaWNrZWRJbnNpZGVDb250YWluZXIgJiYgIWNsaWNrZWRJbnNpZGVSZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dzZWxlY3RvciA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvd3MgdGltZSBzZWxlY3RvclxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93VGltZVNlbGVjdG9yKCk6IHZvaWQge1xuICAgICAgICAvLyBUcmlnZ2VyIGEgdG91Y2ggZXZlbnRcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3Nob3dzZWxlY3Rvcikge1xuICAgICAgICAgICAgdGhpcy5fc2hvd3NlbGVjdG9yID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93c2VsZWN0b3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGltZSBTZWxlY3RvclxuICAgICAqIEBwYXJhbSB2IFNlbGVjdGVkIHRpbWUgdmFsdWUgb2JqZWN0XG4gICAgICovXG4gICAgcHVibGljIHRpbWVzZWxlY3QodjogYW55KSB7XG4gICAgICAgIGlmICh2LmRhdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVTdHJpbmcoJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubW9tZW50KHYuZGF0ZSkudXRjKCkudG9EYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zaG93c2VsZWN0b3IgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0ZXMgdGhlIGlucHV0IGNvbnRyb2wgdmFsdWUgYWdhaW5zdCBtaW4vbWF4IHRpbWUgY29uc3RyYWludHMuXG4gICAgICpcbiAgICAgKiBEZWxlZ2F0ZXMgdG8gYmFzZSB2YWxpZGF0aW9uIGFuZCBhcHBsaWVzIG1pblRpbWUvbWF4VGltZSB2YWxpZGF0aW9ucyB3aGVuIGFwcGxpY2FibGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYyBBYnN0cmFjdENvbnRyb2wgaW5zdGFuY2UgdG8gdmFsaWRhdGUuXG4gICAgICogQHJldHVybnMgVmFsaWRhdGlvbkVycm9ycyBvYmplY3Qgd2hlbiBpbnZhbGlkLCBvdGhlcndpc2UgbnVsbC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgZXJyb3IgPSBzdXBlci52YWxpZGF0ZURhdGEoYyk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXJyb3IgPT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gJycgJiZcbiAgICAgICAgICAgIHRoaXMuX21pbnRpbWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdGhpcy5fbWludGltZSAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5taW5UaW1lKFxuICAgICAgICAgICAgICAgIHRoaXMuX21pbnRpbWUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZW1pbnRpbWUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltaW50aW1lXG4gICAgICAgICAgICApKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXJyb3IgPT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgYy52YWx1ZSAhPT0gJycgJiZcbiAgICAgICAgICAgIHRoaXMuX21heHRpbWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdGhpcy5fbWF4dGltZSAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5tYXhUaW1lKFxuICAgICAgICAgICAgICAgIHRoaXMuX21heHRpbWUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZW1heHRpbWUsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnltYXh0aW1lXG4gICAgICAgICAgICApKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcbn1cbiJdfQ==
@@ -1,38 +1,38 @@
1
1
  import { createGuid } from '../../utilities/guid';
2
- import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
2
+ import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild, } from '@angular/core';
3
3
  /**
4
- * Base Komponente für Dialog
4
+ * Base component for Dialog
5
5
  */
6
6
  export class SacDialogCommon {
7
7
  // #endregion Properties
8
8
  // #region Constructors
9
9
  /**
10
- * Konstruktor
11
- * Inject des Formulars
10
+ * Creates the dialog control.
11
+ * @param cdRef Change detector used to trigger updates.
12
12
  */
13
13
  constructor(cdRef) {
14
14
  this.cdRef = cdRef;
15
15
  // #region Properties
16
16
  this.hasSetBodyTag = false;
17
17
  /**
18
- * Boolean Property definiert ob das Dialog angezeigt wird
18
+ * Boolean property defines whether the dialog is shown
19
19
  */
20
20
  this._show = false;
21
21
  /**
22
- * Das property enthielt (wenn überhaupt gesetzt) entweder keywords für sizing oder custom css Klassen.
23
- * Die akzeptabel keywordssind: 'small', 'large', 'extralarge', 'medium', ''.
22
+ * This property contains (if set) either keywords for sizing or custom CSS classes.
23
+ * The acceptable keywords are: 'small', 'large', 'extralarge', 'medium', ''.
24
24
  */
25
25
  this._size = '';
26
26
  /**
27
- * Das input property akzeptiert boolen Wert. Definiert ob das Dialog darf durch ESC geschlossen werden. Default ist true.
27
+ * The input property accepts a boolean value. Defines whether the dialog can be closed by ESC. Default is true.
28
28
  */
29
29
  this.allowesc = true;
30
30
  /**
31
- * Das input property akzeptiert boolen Wert. Definiert ob das Dialog darf durch click außerhalb des Dialog-Fenster geschlossen werden. Default ist true.
31
+ * The input property accepts a boolean value. Defines whether the dialog can be closed by clicking outside the dialog window. Default is true.
32
32
  */
33
33
  this.backdrop = true;
34
34
  /**
35
- * Steuert ob im Header des Dialogs ein Button angezeigt wird.
35
+ * Controls whether a button is displayed in the header of the dialog.
36
36
  */
37
37
  this.closebutton = true;
38
38
  /**
@@ -40,7 +40,11 @@ export class SacDialogCommon {
40
40
  */
41
41
  this.e2eidentifier = null;
42
42
  /**
43
- * Output Emitter. Wird aufgerufen, wenn das Wert des _show property geändert ist - damait das Dialog geöfnet/geschlossen wird.
43
+ * If enabled dialog is closed if user click outside of the dialog
44
+ */
45
+ this.hideoutofdialog = false;
46
+ /**
47
+ * Output emitter. Called when the value of the _show property changes - so the dialog is opened/closed.
44
48
  */
45
49
  this.isvisibleChange = new EventEmitter();
46
50
  /**
@@ -48,26 +52,26 @@ export class SacDialogCommon {
48
52
  */
49
53
  this.name = createGuid();
50
54
  /**
51
- * Input Property. Erhält den Title des Dialog. Default Value: 'Dialog'.
55
+ * Input property. Receives the title of the dialog. Default value: 'Dialog'.
52
56
  */
53
57
  this.title = 'Dialog';
54
58
  }
55
59
  // #endregion Constructors
56
60
  // #region Public Getters And Setters
57
61
  /**
58
- * Implementation als Setter, da mit ngIf das Element bei Unsichtbarkeit UNDEFINED ist.
62
+ * Implementation as setter, because with ngIf the element is UNDEFINED when invisible.
59
63
  */
60
64
  set dialogElementSetter(content) {
61
65
  this.dialogElement = content;
62
66
  }
63
67
  /**
64
- * Getter. Ergibt das boolen Wert des _show property
68
+ * Getter. Returns the boolean value of the _show property
65
69
  */
66
70
  get isvisible() {
67
71
  return this._show;
68
72
  }
69
73
  /**
70
- * Setter. Erhält das boolen Wert des _show property
74
+ * Setter. Receives the boolean value of the _show property
71
75
  */
72
76
  set isvisible(v) {
73
77
  if (v && !this.hasSetBodyTag && !document.body.classList.contains('modal-open')) {
@@ -81,10 +85,10 @@ export class SacDialogCommon {
81
85
  this._show = v;
82
86
  }
83
87
  /**
84
- * Das Input akzeptiert sowohl default size-css-Klassen als auch custom Klassen.
85
- * case insensitive.
86
- * Die akzeptabel default-size-Klassen sind: 'small', 'large', 'extralarge', 'medium', ''.
87
- * Wenn size ist NICHT gesetzt (oder 'medium' oder ''), default ist in medium size: max-width 500px.
88
+ * The input accepts both default size CSS classes and custom classes.
89
+ * Case insensitive.
90
+ * The acceptable default size classes are: 'small', 'large', 'extralarge', 'medium', ''.
91
+ * If size is NOT set (or 'medium' or ''), default is medium size: max-width 500px.
88
92
  */
89
93
  set size(v) {
90
94
  this._size = v;
@@ -100,7 +104,7 @@ export class SacDialogCommon {
100
104
  // #endregion Protected Getters And Setters
101
105
  // #region Public Methods
102
106
  /**
103
- * Die Methode setz den Wert des _show property auf false
107
+ * The method sets the value of the _show property to false
104
108
  */
105
109
  hide() {
106
110
  if (this.hasSetBodyTag && document.body.classList.contains('modal-open')) {
@@ -111,7 +115,7 @@ export class SacDialogCommon {
111
115
  this.isvisibleChange.emit(this._show);
112
116
  }
113
117
  /**
114
- * Methode wenn Componente entfernt wird
118
+ * Method called when the component is destroyed
115
119
  */
116
120
  ngOnDestroy() {
117
121
  if (this.hasSetBodyTag && document.body.classList.contains('modal-open')) {
@@ -121,9 +125,10 @@ export class SacDialogCommon {
121
125
  }
122
126
  /**
123
127
  * Allow Close by Click outside Dialog
128
+ * @param event Click event object
124
129
  */
125
130
  onClick(event) {
126
- if (this.allowesc === false ||
131
+ if (this.hideoutofdialog === false ||
127
132
  (this.dialogElement !== null &&
128
133
  this.dialogElement !== undefined &&
129
134
  event.target !== this.dialogElement.nativeElement)) {
@@ -133,6 +138,7 @@ export class SacDialogCommon {
133
138
  }
134
139
  /**
135
140
  * Allow Close by ESC
141
+ * @param event Keyboard event object
136
142
  */
137
143
  onKeydownHandler(event) {
138
144
  const ESCAPE_KEYCODE = 'Escape';
@@ -141,7 +147,7 @@ export class SacDialogCommon {
141
147
  }
142
148
  }
143
149
  /**
144
- * Die Methode setz den Wert des _show property auf true
150
+ * The method sets the value of the _show property to true
145
151
  */
146
152
  show() {
147
153
  this._show = true;
@@ -163,6 +169,7 @@ SacDialogCommon.propDecorators = {
163
169
  backdrop: [{ type: Input }],
164
170
  closebutton: [{ type: Input }],
165
171
  e2eidentifier: [{ type: Input }],
172
+ hideoutofdialog: [{ type: Input }],
166
173
  isvisibleChange: [{ type: Output }],
167
174
  name: [{ type: Input }],
168
175
  title: [{ type: Input }],
@@ -172,4 +179,4 @@ SacDialogCommon.propDecorators = {
172
179
  onClick: [{ type: HostListener, args: ['click', ['$event'],] }],
173
180
  onKeydownHandler: [{ type: HostListener, args: ['document:keydown', ['$event'],] }]
174
181
  };
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvZGlhbG9nL2RpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxSTs7R0FFRztBQUVILE1BQU0sT0FBTyxlQUFlO0lBK0R4Qix3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7T0FHRztJQUNILFlBQW9CLEtBQXdCO1FBQXhCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBdEU1QyxxQkFBcUI7UUFFYixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUU5Qjs7V0FFRztRQUNJLFVBQUssR0FBWSxLQUFLLENBQUM7UUFFOUI7OztXQUdHO1FBQ0ksVUFBSyxHQUFxRCxFQUFFLENBQUM7UUFFcEU7O1dBRUc7UUFFSSxhQUFRLEdBQVksSUFBSSxDQUFDO1FBRWhDOztXQUVHO1FBRUksYUFBUSxHQUFZLElBQUksQ0FBQztRQUVoQzs7V0FFRztRQUVJLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBT25DOztXQUVHO1FBRUksa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBRTNDOztXQUVHO1FBRUksb0JBQWUsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUU1RTs7V0FFRztRQUVJLFNBQUksR0FBVyxVQUFVLEVBQUUsQ0FBQztRQUVuQzs7V0FFRztRQUVJLFVBQUssR0FBVyxRQUFRLENBQUM7SUFVZSxDQUFDO0lB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RUFBRTtZQUN4RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDZjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUk7UUFDUCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN4RSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDN0I7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7O1lBeE1KLFNBQVM7OztZQUxELGlCQUFpQjs7O3VCQXlCckIsS0FBSzt1QkFNTCxLQUFLOzBCQU1MLEtBQUs7NEJBV0wsS0FBSzs4QkFNTCxNQUFNO21CQU1OLEtBQUs7b0JBTUwsS0FBSztrQ0FvQkwsU0FBUyxTQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7d0JBZXJDLEtBQUs7bUJBcUJMLEtBQUs7c0JBOENMLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7K0JBZ0JoQyxZQUFZLFNBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVHdWlkIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2d1aWQnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQmFzZSBLb21wb25lbnRlIGbDvHIgRGlhbG9nXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFNhY0RpYWxvZ0NvbW1vbiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICBwcml2YXRlIGhhc1NldEJvZHlUYWcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEJvb2xlYW4gUHJvcGVydHkgZGVmaW5pZXJ0IG9iIGRhcyBEaWFsb2cgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgX3Nob3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIERhcyBwcm9wZXJ0eSBlbnRoaWVsdCAod2VubiDDvGJlcmhhdXB0IGdlc2V0enQpIGVudHdlZGVyIGtleXdvcmRzIGbDvHIgc2l6aW5nIG9kZXIgY3VzdG9tIGNzcyBLbGFzc2VuLlxuICAgICAqIERpZSBha3plcHRhYmVsIGtleXdvcmRzc2luZDogJ3NtYWxsJywgJ2xhcmdlJywgJ2V4dHJhbGFyZ2UnLCAnbWVkaXVtJywgJycuXG4gICAgICovXG4gICAgcHVibGljIF9zaXplOiAnc21hbGwnIHwgJ2xhcmdlJyB8ICdleHRyYWxhcmdlJyB8ICdtZWRpdW0nIHwgJycgPSAnJztcblxuICAgIC8qKlxuICAgICAqIERhcyBpbnB1dCBwcm9wZXJ0eSBha3plcHRpZXJ0IGJvb2xlbiBXZXJ0LiBEZWZpbmllcnQgb2IgZGFzIERpYWxvZyBkYXJmIGR1cmNoIEVTQyBnZXNjaGxvc3NlbiB3ZXJkZW4uIERlZmF1bHQgaXN0IHRydWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWxsb3dlc2M6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogRGFzIGlucHV0IHByb3BlcnR5IGFremVwdGllcnQgYm9vbGVuIFdlcnQuIERlZmluaWVydCBvYiBkYXMgRGlhbG9nIGRhcmYgZHVyY2ggY2xpY2sgYXXDn2VyaGFsYiBkZXMgRGlhbG9nLUZlbnN0ZXIgZ2VzY2hsb3NzZW4gd2VyZGVuLiBEZWZhdWx0IGlzdCB0cnVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJhY2tkcm9wOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFN0ZXVlcnQgb2IgaW0gSGVhZGVyIGRlcyBEaWFsb2dzIGVpbiBCdXR0b24gYW5nZXplaWd0IHdpcmQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xvc2VidXR0b246IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBkZXMgQ29udGFpbmVycyBmw7xyIGRlbiBEaWFsb2dcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlhbG9nRWxlbWVudDogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIElkZW50aWZpZXIgdXNlZCBmb3IgdGhlIEUyRSBkYXRhIGF0dHJpYnV0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlMmVpZGVudGlmaWVyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE91dHB1dCBFbWl0dGVyLiBXaXJkIGF1ZmdlcnVmZW4sIHdlbm4gZGFzIFdlcnQgZGVzIF9zaG93IHByb3BlcnR5IGdlw6RuZGVydCBpc3QgLSBkYW1haXQgZGFzIERpYWxvZyBnZcO2Zm5ldC9nZXNjaGxvc3NlbiB3aXJkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBpc3Zpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKlxuICAgICAqIG5hbWUgb2YgY29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyA9IGNyZWF0ZUd1aWQoKTtcblxuICAgIC8qKlxuICAgICAqIElucHV0IFByb3BlcnR5LiBFcmjDpGx0IGRlbiBUaXRsZSBkZXMgRGlhbG9nLiBEZWZhdWx0IFZhbHVlOiAnRGlhbG9nJy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nID0gJ0RpYWxvZyc7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBLb25zdHJ1a3RvclxuICAgICAqIEluamVjdCBkZXMgRm9ybXVsYXJzXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogSW1wbGVtZW50YXRpb24gYWxzIFNldHRlciwgZGEgbWl0IG5nSWYgZGFzIEVsZW1lbnQgYmVpIFVuc2ljaHRiYXJrZWl0IFVOREVGSU5FRCBpc3QuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBkaWFsb2dFbGVtZW50U2V0dGVyKGNvbnRlbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dFbGVtZW50ID0gY29udGVudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXR0ZXIuIEVyZ2lidCBkYXMgYm9vbGVuIFdlcnQgZGVzIF9zaG93IHByb3BlcnR5XG4gICAgICovXG4gICAgcHVibGljIGdldCBpc3Zpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlci4gRXJow6RsdCBkYXMgYm9vbGVuIFdlcnQgZGVzIF9zaG93IHByb3BlcnR5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGlzdmlzaWJsZSh2OiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2ICYmICF0aGlzLmhhc1NldEJvZHlUYWcgJiYgIWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCdtb2RhbC1vcGVuJykpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnbW9kYWwtb3BlbicpO1xuICAgICAgICAgICAgdGhpcy5oYXNTZXRCb2R5VGFnID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdiAmJiB0aGlzLmhhc1NldEJvZHlUYWcgJiYgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ21vZGFsLW9wZW4nKSkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdtb2RhbC1vcGVuJyk7XG4gICAgICAgICAgICB0aGlzLmhhc1NldEJvZHlUYWcgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3Nob3cgPSB2O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERhcyBJbnB1dCBha3plcHRpZXJ0IHNvd29obCBkZWZhdWx0IHNpemUtY3NzLUtsYXNzZW4gYWxzIGF1Y2ggY3VzdG9tIEtsYXNzZW4uXG4gICAgICogY2FzZSBpbnNlbnNpdGl2ZS5cbiAgICAgKiBEaWUgYWt6ZXB0YWJlbCBkZWZhdWx0LXNpemUtS2xhc3NlbiBzaW5kOiAnc21hbGwnLCAnbGFyZ2UnLCAnZXh0cmFsYXJnZScsICdtZWRpdW0nLCAnJy5cbiAgICAgKiBXZW5uIHNpemUgaXN0IE5JQ0hUIGdlc2V0enQgKG9kZXIgJ21lZGl1bScgb2RlciAnJyksIGRlZmF1bHQgaXN0IGluIG1lZGl1bSBzaXplOiBtYXgtd2lkdGggNTAwcHguXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHNpemUodjogJ3NtYWxsJyB8ICdsYXJnZScgfCAnZXh0cmFsYXJnZScgfCAnbWVkaXVtJyB8ICcnKSB7XG4gICAgICAgIHRoaXMuX3NpemUgPSB2O1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIEdldHRlciBmb3IgQ2hhbmdlRGV0ZWN0b3IuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldCBDaGFuZ2VEZXRlY3RvcigpOiBDaGFuZ2VEZXRlY3RvclJlZiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNkUmVmO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIERpZSBNZXRob2RlIHNldHogZGVuIFdlcnQgZGVzIF9zaG93IHByb3BlcnR5IGF1ZiBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5oYXNTZXRCb2R5VGFnICYmIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCdtb2RhbC1vcGVuJykpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnbW9kYWwtb3BlbicpO1xuICAgICAgICAgICAgdGhpcy5oYXNTZXRCb2R5VGFnID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zaG93ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXN2aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5fc2hvdyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kZSB3ZW5uIENvbXBvbmVudGUgZW50ZmVybnQgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzU2V0Qm9keVRhZyAmJiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygnbW9kYWwtb3BlbicpKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ21vZGFsLW9wZW4nKTtcbiAgICAgICAgICAgIHRoaXMuaGFzU2V0Qm9keVRhZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWxsb3cgQ2xvc2UgYnkgQ2xpY2sgb3V0c2lkZSBEaWFsb2dcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmFsbG93ZXNjID09PSBmYWxzZSB8fFxuICAgICAgICAgICAgKHRoaXMuZGlhbG9nRWxlbWVudCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nRWxlbWVudCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSB0aGlzLmRpYWxvZ0VsZW1lbnQubmF0aXZlRWxlbWVudClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWxsb3cgQ2xvc2UgYnkgRVNDXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uS2V5ZG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgRVNDQVBFX0tFWUNPREUgPSAnRXNjYXBlJztcblxuICAgICAgICBpZiAodGhpcy5hbGxvd2VzYyA9PT0gdHJ1ZSAmJiBldmVudC5rZXkgPT09IEVTQ0FQRV9LRVlDT0RFKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpZSBNZXRob2RlIHNldHogZGVuIFdlcnQgZGVzIF9zaG93IHByb3BlcnR5IGF1ZiB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHNob3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Nob3cgPSB0cnVlO1xuXG4gICAgICAgIGlmICghdGhpcy5oYXNTZXRCb2R5VGFnICYmICFkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygnbW9kYWwtb3BlbicpKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ21vZGFsLW9wZW4nKTtcbiAgICAgICAgICAgIHRoaXMuaGFzU2V0Qm9keVRhZyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzdmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuX3Nob3cpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcbn1cbiJdfQ==
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvZGlhbG9nL2RpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sZUFBZTtJQXFFeEIsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUFvQixLQUF3QjtRQUF4QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQTVFNUMscUJBQXFCO1FBRWIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFOUI7O1dBRUc7UUFDSSxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBRXJCOzs7V0FHRztRQUNJLFVBQUssR0FBcUQsRUFBRSxDQUFDO1FBRXBFOztXQUVHO1FBRUksYUFBUSxHQUFHLElBQUksQ0FBQztRQUV2Qjs7V0FFRztRQUVJLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFdkI7O1dBRUc7UUFFSSxnQkFBVyxHQUFHLElBQUksQ0FBQztRQU8xQjs7V0FFRztRQUVJLGtCQUFhLEdBQWtCLElBQUksQ0FBQztRQUUzQzs7V0FFRztRQUVJLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBRS9COztXQUVHO1FBRUksb0JBQWUsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUU1RTs7V0FFRztRQUVJLFNBQUksR0FBVyxVQUFVLEVBQUUsQ0FBQztRQUVuQzs7V0FFRztRQUVJLFVBQUssR0FBRyxRQUFRLENBQUM7SUFVdUIsQ0FBQztJQUVoRCwwQkFBMEI7SUFFMUIscUNBQXFDO0lBRXJDOztPQUVHO0lBQ0gsSUFDVyxtQkFBbUIsQ0FBQyxPQUFtQjtRQUM5QyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ1csU0FBUyxDQUFDLENBQVU7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzdFLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUM3QjtRQUVELElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDNUUsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQzlCO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFDVyxJQUFJLENBQUMsQ0FBbUQ7UUFDL0QsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELHdDQUF3QztJQUV4Qyx3Q0FBd0M7SUFFeEM7O09BRUc7SUFDSCxJQUFjLGNBQWM7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCwyQ0FBMkM7SUFFM0MseUJBQXlCO0lBRXpCOztPQUVHO0lBQ0ksSUFBSTtRQUNQLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDdEUsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQzlCO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3RFLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUM5QjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFFSSxPQUFPLENBQUMsS0FBVTtRQUNyQixJQUNJLElBQUksQ0FBQyxlQUFlLEtBQUssS0FBSztZQUM5QixDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSTtnQkFDeEIsSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTO2dCQUNoQyxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQ3hEO1lBQ0UsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFFSSxnQkFBZ0IsQ0FBQyxLQUFvQjtRQUN4QyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLGNBQWMsRUFBRTtZQUN4RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDZjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUk7UUFDUCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN4RSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDN0I7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7O1lBaE5KLFNBQVM7OztZQWROLGlCQUFpQjs7O3VCQWtDaEIsS0FBSzt1QkFNTCxLQUFLOzBCQU1MLEtBQUs7NEJBV0wsS0FBSzs4QkFNTCxLQUFLOzhCQU1MLE1BQU07bUJBTU4sS0FBSztvQkFNTCxLQUFLO2tDQW9CTCxTQUFTLFNBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTt3QkFlckMsS0FBSzttQkFxQkwsS0FBSztzQkErQ0wsWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzsrQkFpQmhDLFlBQVksU0FBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUd1aWQgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZ3VpZCc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEJhc2UgY29tcG9uZW50IGZvciBEaWFsb2dcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2FjRGlhbG9nQ29tbW9uIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIHByaXZhdGUgaGFzU2V0Qm9keVRhZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQm9vbGVhbiBwcm9wZXJ0eSBkZWZpbmVzIHdoZXRoZXIgdGhlIGRpYWxvZyBpcyBzaG93blxuICAgICAqL1xuICAgIHB1YmxpYyBfc2hvdyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBwcm9wZXJ0eSBjb250YWlucyAoaWYgc2V0KSBlaXRoZXIga2V5d29yZHMgZm9yIHNpemluZyBvciBjdXN0b20gQ1NTIGNsYXNzZXMuXG4gICAgICogVGhlIGFjY2VwdGFibGUga2V5d29yZHMgYXJlOiAnc21hbGwnLCAnbGFyZ2UnLCAnZXh0cmFsYXJnZScsICdtZWRpdW0nLCAnJy5cbiAgICAgKi9cbiAgICBwdWJsaWMgX3NpemU6ICdzbWFsbCcgfCAnbGFyZ2UnIHwgJ2V4dHJhbGFyZ2UnIHwgJ21lZGl1bScgfCAnJyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGlucHV0IHByb3BlcnR5IGFjY2VwdHMgYSBib29sZWFuIHZhbHVlLiBEZWZpbmVzIHdoZXRoZXIgdGhlIGRpYWxvZyBjYW4gYmUgY2xvc2VkIGJ5IEVTQy4gRGVmYXVsdCBpcyB0cnVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93ZXNjID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBpbnB1dCBwcm9wZXJ0eSBhY2NlcHRzIGEgYm9vbGVhbiB2YWx1ZS4gRGVmaW5lcyB3aGV0aGVyIHRoZSBkaWFsb2cgY2FuIGJlIGNsb3NlZCBieSBjbGlja2luZyBvdXRzaWRlIHRoZSBkaWFsb2cgd2luZG93LiBEZWZhdWx0IGlzIHRydWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYmFja2Ryb3AgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQ29udHJvbHMgd2hldGhlciBhIGJ1dHRvbiBpcyBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciBvZiB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsb3NlYnV0dG9uID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgdGhlIGRpYWxvZ1xuICAgICAqL1xuICAgIHB1YmxpYyBkaWFsb2dFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciB1c2VkIGZvciB0aGUgRTJFIGRhdGEgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGUyZWlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogSWYgZW5hYmxlZCBkaWFsb2cgaXMgY2xvc2VkIGlmIHVzZXIgY2xpY2sgb3V0c2lkZSBvZiB0aGUgZGlhbG9nXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGlkZW91dG9mZGlhbG9nID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBPdXRwdXQgZW1pdHRlci4gQ2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBfc2hvdyBwcm9wZXJ0eSBjaGFuZ2VzIC0gc28gdGhlIGRpYWxvZyBpcyBvcGVuZWQvY2xvc2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBpc3Zpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKlxuICAgICAqIG5hbWUgb2YgY29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyA9IGNyZWF0ZUd1aWQoKTtcblxuICAgIC8qKlxuICAgICAqIElucHV0IHByb3BlcnR5LiBSZWNlaXZlcyB0aGUgdGl0bGUgb2YgdGhlIGRpYWxvZy4gRGVmYXVsdCB2YWx1ZTogJ0RpYWxvZycuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGl0bGUgPSAnRGlhbG9nJztcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIGRpYWxvZyBjb250cm9sLlxuICAgICAqIEBwYXJhbSBjZFJlZiBDaGFuZ2UgZGV0ZWN0b3IgdXNlZCB0byB0cmlnZ2VyIHVwZGF0ZXMuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogSW1wbGVtZW50YXRpb24gYXMgc2V0dGVyLCBiZWNhdXNlIHdpdGggbmdJZiB0aGUgZWxlbWVudCBpcyBVTkRFRklORUQgd2hlbiBpbnZpc2libGUuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBkaWFsb2dFbGVtZW50U2V0dGVyKGNvbnRlbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dFbGVtZW50ID0gY29udGVudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXR0ZXIuIFJldHVybnMgdGhlIGJvb2xlYW4gdmFsdWUgb2YgdGhlIF9zaG93IHByb3BlcnR5XG4gICAgICovXG4gICAgcHVibGljIGdldCBpc3Zpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlci4gUmVjZWl2ZXMgdGhlIGJvb2xlYW4gdmFsdWUgb2YgdGhlIF9zaG93IHByb3BlcnR5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGlzdmlzaWJsZSh2OiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2ICYmICF0aGlzLmhhc1NldEJvZHlUYWcgJiYgIWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCdtb2RhbC1vcGVuJykpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnbW9kYWwtb3BlbicpO1xuICAgICAgICAgICAgdGhpcy5oYXNTZXRCb2R5VGFnID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdiAmJiB0aGlzLmhhc1NldEJvZHlUYWcgJiYgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ21vZGFsLW9wZW4nKSkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdtb2RhbC1vcGVuJyk7XG4gICAgICAgICAgICB0aGlzLmhhc1NldEJvZHlUYWcgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3Nob3cgPSB2O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBpbnB1dCBhY2NlcHRzIGJvdGggZGVmYXVsdCBzaXplIENTUyBjbGFzc2VzIGFuZCBjdXN0b20gY2xhc3Nlcy5cbiAgICAgKiBDYXNlIGluc2Vuc2l0aXZlLlxuICAgICAqIFRoZSBhY2NlcHRhYmxlIGRlZmF1bHQgc2l6ZSBjbGFzc2VzIGFyZTogJ3NtYWxsJywgJ2xhcmdlJywgJ2V4dHJhbGFyZ2UnLCAnbWVkaXVtJywgJycuXG4gICAgICogSWYgc2l6ZSBpcyBOT1Qgc2V0IChvciAnbWVkaXVtJyBvciAnJyksIGRlZmF1bHQgaXMgbWVkaXVtIHNpemU6IG1heC13aWR0aCA1MDBweC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgc2l6ZSh2OiAnc21hbGwnIHwgJ2xhcmdlJyB8ICdleHRyYWxhcmdlJyB8ICdtZWRpdW0nIHwgJycpIHtcbiAgICAgICAgdGhpcy5fc2l6ZSA9IHY7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogR2V0dGVyIGZvciBDaGFuZ2VEZXRlY3Rvci5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IENoYW5nZURldGVjdG9yKCk6IENoYW5nZURldGVjdG9yUmVmIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2RSZWY7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogVGhlIG1ldGhvZCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgX3Nob3cgcHJvcGVydHkgdG8gZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaGlkZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzU2V0Qm9keVRhZyAmJiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygnbW9kYWwtb3BlbicpKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ21vZGFsLW9wZW4nKTtcbiAgICAgICAgICAgIHRoaXMuaGFzU2V0Qm9keVRhZyA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2hvdyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzdmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuX3Nob3cpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzU2V0Qm9keVRhZyAmJiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygnbW9kYWwtb3BlbicpKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ21vZGFsLW9wZW4nKTtcbiAgICAgICAgICAgIHRoaXMuaGFzU2V0Qm9keVRhZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWxsb3cgQ2xvc2UgYnkgQ2xpY2sgb3V0c2lkZSBEaWFsb2dcbiAgICAgKiBAcGFyYW0gZXZlbnQgQ2xpY2sgZXZlbnQgb2JqZWN0XG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5oaWRlb3V0b2ZkaWFsb2cgPT09IGZhbHNlIHx8XG4gICAgICAgICAgICAodGhpcy5kaWFsb2dFbGVtZW50ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dFbGVtZW50ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBldmVudC50YXJnZXQgIT09IHRoaXMuZGlhbG9nRWxlbWVudC5uYXRpdmVFbGVtZW50KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbGxvdyBDbG9zZSBieSBFU0NcbiAgICAgKiBAcGFyYW0gZXZlbnQgS2V5Ym9hcmQgZXZlbnQgb2JqZWN0XG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uS2V5ZG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgRVNDQVBFX0tFWUNPREUgPSAnRXNjYXBlJztcblxuICAgICAgICBpZiAodGhpcy5hbGxvd2VzYyA9PT0gdHJ1ZSAmJiBldmVudC5rZXkgPT09IEVTQ0FQRV9LRVlDT0RFKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBtZXRob2Qgc2V0cyB0aGUgdmFsdWUgb2YgdGhlIF9zaG93IHByb3BlcnR5IHRvIHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2hvdyA9IHRydWU7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc1NldEJvZHlUYWcgJiYgIWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCdtb2RhbC1vcGVuJykpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnbW9kYWwtb3BlbicpO1xuICAgICAgICAgICAgdGhpcy5oYXNTZXRCb2R5VGFnID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXN2aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5fc2hvdyk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xufVxuIl19