@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
@@ -24,195 +24,178 @@ const moment = moment_['default'];
24
24
  // #endregion Variables
25
25
  // #region Exported Classes
26
26
  /**
27
- * Klasse mit Standard Validatoren
27
+ * Class with standard validators
28
28
  */
29
29
  export class Validation {
30
30
  // #region Public Static Methods
31
31
  /**
32
- * Die Methode ist von jedem Validator aufgerufen. Die setzt sowohl den errorType des gerpüfte Item, als auch die ErrorMessage (gemäss von errorType, FieldName und Parameters).
33
- * @param errorType Typ den Fehler
32
+ * This method is called by every validator. It sets both the errorType of the validated item and the ErrorMessage (according to errorType, FieldName and Parameters).
33
+ * @param errorType Type of the error
34
34
  * @param errorMessageKey Error Message Key
35
- * @param errorMessageValidationSummaryKey Error Message Key für Validation Summary
36
- * @param fieldName Label oder Name des Feldes
37
- * @param parameters Parametern die in den Meldungen als Platzhalter verwendet werden können
35
+ * @param errorMessageValidationSummaryKey Error Message Key for Validation Summary
36
+ * @param fieldName Label or name of the field
37
+ * @param parameters Parameters that can be used as placeholders in messages
38
38
  */
39
39
  static GetValidationErrorItem(errorType, errorMessageKey, errorMessageValidationSummaryKey, fieldName = null, parameters = new Map()) {
40
40
  return CreateValidationError(errorType, errorMessageKey, errorMessageValidationSummaryKey, parameters);
41
41
  }
42
42
  /**
43
- * Validiert Feld auf E-Mail Adresse
44
- * @param control Control das Valdiert werden soll
45
- * @param fieldName Label des Controls
46
- * @param validationMessage Validierungsmeldung die
47
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
43
+ * Validates field for email address
44
+ * @param validationMessage Validation message displayed at the control
45
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
46
+ * @returns ValidatorFn validator function
48
47
  */
49
48
  static email(validationMessage, validationMessageSummary) {
50
49
  return emailValidator(validationMessage, validationMessageSummary);
51
50
  }
52
51
  /**
53
- * Validator validate if value is the requiredValue
54
- * @param requiredValue Value that control should have
55
- * @param control Control to be validate
56
- * @param fieldName Label of control
57
- * @param validationMessage validation message near the control
58
- * @param validationMessageSummary validation inside the validation summary
59
-
60
- */
52
+ * Validator validate if value is the requiredValue
53
+ * @param requiredValue Value that control should have
54
+ * @param validationMessage Validation message near the control
55
+ * @param validationMessageSummary Validation message inside the validation summary
56
+ * @returns ValidatorFn validator function
57
+ */
61
58
  static equals(requiredValue, validationMessage, validationMessageSummary) {
62
59
  return equalsValueValidator(requiredValue, validationMessage, validationMessageSummary);
63
60
  }
64
61
  /**
65
- * Validator der prüft ob der Wert ein Datum ist.
66
- * @param control Control mit IDateTimeControl Interface implementierung
67
- * @param fieldName Label des Controls
68
- * @param validationMessage Validierungsmeldung die beim Control angezeigt wird
69
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
62
+ * Validator that checks if the value is a date.
63
+ * @param validationMessage Validation message displayed at the control
64
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
65
+ * @returns ValidatorFn validator function
70
66
  */
71
67
  static isValidDate(validationMessage, validationMessageSummary) {
72
68
  return isValidDateValidator(validationMessage, validationMessageSummary);
73
69
  }
74
70
  /**
75
- * Validiert ob das Datum älter als maxDate ist
76
- * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
77
- * @param maxDate max. Datum
78
- * @param fieldName Label des Controls
79
- * @param validationMessage Validierungsmeldung die
80
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
71
+ * Validates if the date is older than maxDate
72
+ * @param maxDate Maximum date allowed
73
+ * @param validationMessage Validation message displayed at the control
74
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
75
+ * @returns ValidatorFn validator function
81
76
  */
82
77
  static maxDate(maxDate, validationMessage, validationMessageSummary) {
83
78
  return maxDateValidator(maxDate, validationMessage, validationMessageSummary);
84
79
  }
85
80
  /**
86
- * Validiert ob die Zeit früher als maxTime ist.
87
- * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
88
- * @param maxTime Min. Zeit
89
- * @param fieldName Label des Controls
90
- * @param validationMessage Validierungsmeldung die
91
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
81
+ * Validates if the time is earlier than maxTime.
82
+ * @param maxTime Maximum time allowed
83
+ * @param validationMessage Validation message displayed at the control
84
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
85
+ * @returns ValidatorFn validator function
92
86
  */
93
87
  static maxTime(maxTime, validationMessage, validationMessageSummary) {
94
88
  return maxTimeValidator(maxTime, validationMessage, validationMessageSummary);
95
89
  }
96
90
  /**
97
- * Validator für Max Value
98
- * @param control Control das Validiert werden soll
99
- * @param maxvalue Max. Wert
100
- * @param fieldName Label des Controls
101
- * @param validationMessage Validierungsmeldung die
102
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
91
+ * Validator for Max Value
92
+ * @param maxvalue Maximum value allowed
93
+ * @param validationMessage Validation message displayed at the control
94
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
95
+ * @returns ValidatorFn validator function
103
96
  */
104
97
  static maxValue(maxvalue, validationMessage, validationMessageSummary) {
105
98
  return maxValueValidator(maxvalue, validationMessage, validationMessageSummary);
106
99
  }
107
100
  /**
108
- * Validiert ob das Datum neuer als minDate ist
109
- * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
110
- * @param minDate Min. Datum
111
- * @param fieldName Label des Controls
112
- * @param validationMessage Validierungsmeldung die
113
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
101
+ * Validates if the date is newer than minDate
102
+ * @param minDate Minimum date allowed
103
+ * @param validationMessage Validation message displayed at the control
104
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
105
+ * @returns ValidatorFn validator function
114
106
  */
115
107
  static minDate(minDate, validationMessage, validationMessageSummary) {
116
108
  return minDateValidator(minDate, validationMessage, validationMessageSummary);
117
109
  }
118
110
  /**
119
- * Validator für min. Anzahl von Uploads
120
- * @param control Control das Validatiert werden soll. Control muss IUploadControl implementiert haben
121
- * @param minFiles Min. Anzahl Files die hochgeladen werden müssen
122
- * @param fieldName Label des Controls
123
- * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird
124
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
111
+ * Validator for min. number of uploads
112
+ * @param minFiles Minimum number of files that must be uploaded
113
+ * @param validationMessage Validation message displayed below the control
114
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
115
+ * @returns ValidatorFn validator function
125
116
  */
126
117
  static minFiles(minFiles, validationMessage, validationMessageSummary) {
127
118
  return minFilesValidator(minFiles, validationMessage, validationMessageSummary);
128
119
  }
129
120
  /**
130
- * Validiert auf die Länge des Wertes im Control
131
- * @param control Control das Validiert werden soll
132
- * @param mintextlength Min. Länge des Wertes
133
- * @param fieldName Label des Controls
134
- * @param validationMessage Validierungsmeldung die
135
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
121
+ * Validates the length of the value in the control
122
+ * @param mintextlength Minimum length of the value
123
+ * @param validationMessage Validation message displayed at the control
124
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
125
+ * @returns ValidatorFn validator function
136
126
  */
137
127
  static minTextLength(minlength, validationMessage, validationMessageSummary) {
138
128
  return minTextLengthValidator(minlength, validationMessage, validationMessageSummary);
139
129
  }
140
130
  /**
141
- * Validiert ob die Zeit später als minTime ist.
142
- * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
143
- * @param minTime Min. Zeit
144
- * @param fieldName Label des Controls
145
- * @param validationMessage Validierungsmeldung die
146
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
131
+ * Validates if the time is later than minTime.
132
+ * @param minTime Minimum time allowed
133
+ * @param validationMessage Validation message displayed at the control
134
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
135
+ * @returns ValidatorFn validator function
147
136
  */
148
137
  static minTime(minTime, validationMessage, validationMessageSummary) {
149
138
  return minTimeValidator(minTime, validationMessage, validationMessageSummary);
150
139
  }
151
140
  /**
152
- * Validator für Min Value
153
- * @param control Control das Validiert wird
154
- * @param minvalue Min. Value
155
- * @param fieldName Label des Controls
156
- * @param validationMessage Validierungsmeldung die
157
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
141
+ * Validator that checks if the value is greater than minValue.
142
+ * @param minvalue Minimum value allowed
143
+ * @param validationMessage Validation message displayed at the control
144
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
145
+ * @returns ValidatorFn validator function
158
146
  */
159
147
  static minValue(minvalue, validationMessage, validationMessageSummary) {
160
148
  return minValueValidator(minvalue, validationMessage, validationMessageSummary);
161
149
  }
162
150
  /**
163
- * Validator für MultiLanguage Control, welcher überprüft ob alle Sprachen erfasst sind.
164
- * @param control Control das Validatiert werden soll
165
- * @param languages Sprachen die im Control erfasst werden können.
166
- * @param fieldName Label des Controls
167
- * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird
168
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
151
+ * Validator for MultiLanguage Control that checks if a value has been entered in all languages
152
+ * @param languages Languages that can be captured in the control
153
+ * @param validationMessage Validation message displayed below the control
154
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
155
+ * @returns ValidatorFn validator function
169
156
  */
170
157
  static multilanguageRequired(languages, validationMessage, validationMessageSummary) {
171
158
  return multilanguageRequiredValidator(languages, validationMessage, validationMessageSummary);
172
159
  }
173
160
  /**
174
- * Validator für MultiLanguage Control, welcher überprüft ob min. ein Wert erfasst wurde
175
- * @param control Control das Validatiert werden soll
176
- * @param languages Sprachen die im Control erfasst werden können.
177
- * @param fieldName Label des Controls
178
- * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird
179
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
161
+ * Validator for MultiLanguage Control that checks if at least one value has been entered
162
+ * @param languages Languages that can be captured in the control
163
+ * @param validationMessage Validation message displayed below the control
164
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
165
+ * @returns ValidatorFn validator function
180
166
  */
181
167
  static multilanguageRequiredAny(languages, validationMessage, validationMessageSummary) {
182
168
  return multilanguageRequiredAnyValidator(languages, validationMessage, validationMessageSummary);
183
169
  }
184
170
  /**
185
171
  * Validator validate if value is not the invalidValue
186
- * @param invalidValue Value that control doesn't should have
187
- * @param control Control to be validate
188
- * @param fieldName Label of control
189
- * @param validationMessage validation message near the control
190
- * @param validationMessageSummary validation inside the validation summary
172
+ * @param invalidValue Value that control should not have
173
+ * @param validationMessage Validation message near the control
174
+ * @param validationMessageSummary Validation message inside the validation summary
175
+ * @returns ValidatorFn validator function
191
176
  */
192
177
  static notequals(invalidValue, validationMessage, validationMessageSummary) {
193
178
  return notEqualsValueValidator(invalidValue, validationMessage, validationMessageSummary);
194
179
  }
195
180
  /**
196
- * Validierung mit einem RegEx Pattern
197
- * @param control Control das validiert werden soll.
198
- * @param pattern RegEx Pattern
199
- * @param fieldName Label des Controls
200
- * @param validationMessage Validierungsmeldung die
201
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
181
+ * Validation with a RegEx pattern
182
+ * @param pattern RegEx pattern that the value must match
183
+ * @param validationMessage Validation message displayed below the control
184
+ * @param validationMessageSummary Validation message displayed in the Validation Summary
185
+ * @returns ValidatorFn validator function
202
186
  */
203
187
  static pattern(pattern, validationMessage, validationMessageSummary) {
204
188
  return patternValidator(pattern, validationMessage, validationMessageSummary);
205
189
  }
206
190
  /**
207
- * Validator für Required State
208
- * @param control Control das Validiert wird
209
- * @param fieldName Label des Controls
210
- * @param validationMessage Validierungsmeldung die
211
- * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
191
+ * Validator for Required State
192
+ * @returns ValidatorFn validator function
193
+ * @param validationMessage Validation message that
194
+ * @param validationMessageSummary Validation message that is displayed in the Validation Summary
212
195
  */
213
196
  static required(validationMessage, validationMessageSummary) {
214
197
  return requiredValidator(validationMessage, validationMessageSummary);
215
198
  }
216
199
  }
217
200
  // #endregion Exported Classes
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbInZhbGlkYXRpb24vdmFsaWRhdGlvbi5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJB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QUMsQ0FBQztJQUMxRSxDQUFDO0NBR0o7QUFFRCw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYW5ndWFnZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2xhbmd1YWdlbW9kZWwnO1xuaW1wb3J0IHsgZW1haWxWYWxpZGF0b3IgfSBmcm9tICcuL2VtYWlsLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBlcXVhbHNWYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vZXF1YWxzLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBpc1ZhbGlkRGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vaW52YWxpZGRhdGUudmFsaWRhdG9yJztcbmltcG9ydCB7IG1heERhdGVWYWxpZGF0b3IgfSBmcm9tICcuL21heGRhdGUudmFsaWRhdG9yJztcbmltcG9ydCB7IG1heFRpbWVWYWxpZGF0b3IgfSBmcm9tICcuL21heHRpbWUudmFsaWRhdG9yJztcbmltcG9ydCB7IG1heFZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh2YWx1ZS52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluRGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vbWluZGF0ZS52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluRmlsZXNWYWxpZGF0b3IgfSBmcm9tICcuL21pbmZpbGVzLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtaW5UZXh0TGVuZ3RoVmFsaWRhdG9yIH0gZnJvbSAnLi9taW50ZXh0bGVuZ3RoLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtaW5UaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9taW50aW1lLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtaW5WYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vbWludmFsdWUudmFsaWRhdG9yJztcbmltcG9ydCB7IG11bHRpbGFuZ3VhZ2VSZXF1aXJlZFZhbGlkYXRvciB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZXJlcXVpcmVkLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnlWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZGFueS52YWxpZGF0b3InO1xuaW1wb3J0IHsgbm90RXF1YWxzVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL25vdGVxdWFscy52YWxpZGF0b3InO1xuaW1wb3J0IHsgcGF0dGVyblZhbGlkYXRvciB9IGZyb20gJy4vcGF0dGVybi52YWxpZGF0b3InO1xuaW1wb3J0IHsgcmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL3JlcXVpcmVkLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBDcmVhdGVWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL3ZhbGlkYXRpb25lcnJvcmNyZWF0b3InO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XG5cbi8vICNyZWdpb24gVmFyaWFibGVzXG5cbi8qKlxuICogTW9tZW50XG4gKi9cbmNvbnN0IG1vbWVudCA9IG1vbWVudF9bJ2RlZmF1bHQnXTtcblxuLy8gI2VuZHJlZ2lvbiBWYXJpYWJsZXNcblxuLy8gI3JlZ2lvbiBFeHBvcnRlZCBDbGFzc2VzXG5cbi8qKlxuICogS2xhc3NlIG1pdCBTdGFuZGFyZCBWYWxpZGF0b3JlblxuICovXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbiB7XG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgU3RhdGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIERpZSBNZXRob2RlIGlzdCB2b24gamVkZW0gVmFsaWRhdG9yIGF1ZmdlcnVmZW4uIERpZSBzZXR6dCBzb3dvaGwgZGVuIGVycm9yVHlwZSBkZXMgZ2VycMO8ZnRlIEl0ZW0sIGFscyBhdWNoIGRpZSBFcnJvck1lc3NhZ2UgKGdlbcOkc3Mgdm9uIGVycm9yVHlwZSwgRmllbGROYW1lIHVuZCBQYXJhbWV0ZXJzKS5cbiAgICAgKiBAcGFyYW0gZXJyb3JUeXBlIFR5cCBkZW4gRmVobGVyXG4gICAgICogQHBhcmFtIGVycm9yTWVzc2FnZUtleSBFcnJvciBNZXNzYWdlIEtleVxuICAgICAqIEBwYXJhbSBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSBFcnJvciBNZXNzYWdlIEtleSBmw7xyIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgIExhYmVsIG9kZXIgTmFtZSBkZXMgRmVsZGVzXG4gICAgICogQHBhcmFtIHBhcmFtZXRlcnMgUGFyYW1ldGVybiBkaWUgaW4gZGVuIE1lbGR1bmdlbiBhbHMgUGxhdHpoYWx0ZXIgdmVyd2VuZGV0IHdlcmRlbiBrw7ZubmVuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBHZXRWYWxpZGF0aW9uRXJyb3JJdGVtKFxuICAgICAgICBlcnJvclR5cGU6IHN0cmluZyxcbiAgICAgICAgZXJyb3JNZXNzYWdlS2V5OiBzdHJpbmcsXG4gICAgICAgIGVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5OiBzdHJpbmcsXG4gICAgICAgIGZpZWxkTmFtZTogc3RyaW5nID0gbnVsbCxcbiAgICAgICAgcGFyYW1ldGVyczogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KClcbiAgICApOiBhbnkge1xuICAgICAgICByZXR1cm4gQ3JlYXRlVmFsaWRhdGlvbkVycm9yKGVycm9yVHlwZSwgZXJyb3JNZXNzYWdlS2V5LCBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSwgcGFyYW1ldGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRpZXJ0IEZlbGQgYXVmIEUtTWFpbCBBZHJlc3NlXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsZGllcnQgd2VyZGVuIHNvbGxcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBlbWFpbCh2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBlbWFpbFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICogVmFsaWRhdG9yIHZhbGlkYXRlIGlmIHZhbHVlIGlzIHRoZSByZXF1aXJlZFZhbHVlXG4gICAqIEBwYXJhbSByZXF1aXJlZFZhbHVlIFZhbHVlIHRoYXQgY29udHJvbCBzaG91bGQgaGF2ZVxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIHRvIGJlIHZhbGlkYXRlXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgb2YgY29udHJvbFxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgdmFsaWRhdGlvbiBtZXNzYWdlIG5lYXIgdGhlIGNvbnRyb2xcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSB2YWxpZGF0aW9uIGluc2lkZSB0aGUgdmFsaWRhdGlvbiBzdW1tYXJ5XG5cbiAgICovXG4gICAgcHVibGljIHN0YXRpYyBlcXVhbHMocmVxdWlyZWRWYWx1ZTogYW55LCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBlcXVhbHNWYWx1ZVZhbGlkYXRvcihyZXF1aXJlZFZhbHVlLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgZGVyIHByw7xmdCBvYiBkZXIgV2VydCBlaW4gRGF0dW0gaXN0LlxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgbWl0IElEYXRlVGltZUNvbnRyb2wgSW50ZXJmYWNlIGltcGxlbWVudGllcnVuZ1xuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGJlaW0gQ29udHJvbCBhbmdlemVpZ3Qgd2lyZFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBpc1ZhbGlkRGF0ZSh2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBpc1ZhbGlkRGF0ZVZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGllcnQgb2IgZGFzIERhdHVtIMOkbHRlciBhbHMgbWF4RGF0ZSBpc3RcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGwuIE11c3MgSURhdGVUaW1lQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXG4gICAgICogQHBhcmFtIG1heERhdGUgbWF4LiBEYXR1bVxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG1heERhdGUobWF4RGF0ZTogRGF0ZSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWF4RGF0ZVZhbGlkYXRvcihtYXhEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGllcnQgb2IgZGllIFplaXQgZnLDvGhlciBhbHMgbWF4VGltZSBpc3QuXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxuICAgICAqIEBwYXJhbSBtYXhUaW1lIE1pbi4gWmVpdFxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG1heFRpbWUobWF4VGltZTogRGF0ZSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWF4VGltZVZhbGlkYXRvcihtYXhUaW1lLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgZsO8ciBNYXggVmFsdWVcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGxcbiAgICAgKiBAcGFyYW0gbWF4dmFsdWUgTWF4LiBXZXJ0XG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWF4VmFsdWUobWF4dmFsdWU6IG51bWJlciwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWF4VmFsdWVWYWxpZGF0b3IobWF4dmFsdWUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkaWVydCBvYiBkYXMgRGF0dW0gbmV1ZXIgYWxzIG1pbkRhdGUgaXN0XG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxuICAgICAqIEBwYXJhbSBtaW5EYXRlIE1pbi4gRGF0dW1cbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtaW5EYXRlKG1pbkRhdGU6IERhdGUsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIG1pbkRhdGVWYWxpZGF0b3IobWluRGF0ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIGbDvHIgbWluLiBBbnphaGwgdm9uIFVwbG9hZHNcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGF0aWVydCB3ZXJkZW4gc29sbC4gQ29udHJvbCBtdXNzIElVcGxvYWRDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cbiAgICAgKiBAcGFyYW0gbWluRmlsZXMgTWluLiBBbnphaGwgRmlsZXMgZGllIGhvY2hnZWxhZGVuIHdlcmRlbiBtw7xzc2VuXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgdW50ZXJoYWxiIGRlcyBDb250cm9scyBhbmdlemVpZ3Qgd2lyZFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtaW5GaWxlcyhtaW5GaWxlczogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtaW5GaWxlc1ZhbGlkYXRvcihtaW5GaWxlcywgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRpZXJ0IGF1ZiBkaWUgTMOkbmdlIGRlcyBXZXJ0ZXMgaW0gQ29udHJvbFxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbFxuICAgICAqIEBwYXJhbSBtaW50ZXh0bGVuZ3RoIE1pbi4gTMOkbmdlIGRlcyBXZXJ0ZXNcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtaW5UZXh0TGVuZ3RoKG1pbmxlbmd0aDogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtaW5UZXh0TGVuZ3RoVmFsaWRhdG9yKG1pbmxlbmd0aCwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRpZXJ0IG9iIGRpZSBaZWl0IHNww6R0ZXIgYWxzIG1pblRpbWUgaXN0LlxuICAgICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cbiAgICAgKiBAcGFyYW0gbWluVGltZSBNaW4uIFplaXRcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtaW5UaW1lKG1pblRpbWU6IERhdGUsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWluVGltZVZhbGlkYXRvcihtaW5UaW1lLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgZsO8ciBNaW4gVmFsdWVcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2lyZFxuICAgICAqIEBwYXJhbSBtaW52YWx1ZSBNaW4uIFZhbHVlXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWluVmFsdWUobWludmFsdWU6IG51bWJlciwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWluVmFsdWVWYWxpZGF0b3IobWludmFsdWUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBmw7xyIE11bHRpTGFuZ3VhZ2UgQ29udHJvbCwgd2VsY2hlciDDvGJlcnByw7xmdCBvYiBhbGxlIFNwcmFjaGVuIGVyZmFzc3Qgc2luZC5cbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGF0aWVydCB3ZXJkZW4gc29sbFxuICAgICAqIEBwYXJhbSBsYW5ndWFnZXMgU3ByYWNoZW4gZGllIGltIENvbnRyb2wgZXJmYXNzdCB3ZXJkZW4ga8O2bm5lbi5cbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSB1bnRlcmhhbGIgZGVzIENvbnRyb2xzIGFuZ2V6ZWlndCB3aXJkXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZChcbiAgICAgICAgbGFuZ3VhZ2VzOiBMYW5ndWFnZU1vZGVsW10sXG4gICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxuICAgICk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZFZhbGlkYXRvcihsYW5ndWFnZXMsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBmw7xyIE11bHRpTGFuZ3VhZ2UgQ29udHJvbCwgd2VsY2hlciDDvGJlcnByw7xmdCBvYiBtaW4uIGVpbiBXZXJ0IGVyZmFzc3Qgd3VyZGVcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGF0aWVydCB3ZXJkZW4gc29sbFxuICAgICAqIEBwYXJhbSBsYW5ndWFnZXMgU3ByYWNoZW4gZGllIGltIENvbnRyb2wgZXJmYXNzdCB3ZXJkZW4ga8O2bm5lbi5cbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSB1bnRlcmhhbGIgZGVzIENvbnRyb2xzIGFuZ2V6ZWlndCB3aXJkXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueShcbiAgICAgICAgbGFuZ3VhZ2VzOiBMYW5ndWFnZU1vZGVsW10sXG4gICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxuICAgICk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueVZhbGlkYXRvcihsYW5ndWFnZXMsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyBub3QgdGhlIGludmFsaWRWYWx1ZVxuICAgICAqIEBwYXJhbSBpbnZhbGlkVmFsdWUgVmFsdWUgdGhhdCBjb250cm9sIGRvZXNuJ3Qgc2hvdWxkIGhhdmVcbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIHRvIGJlIHZhbGlkYXRlXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBvZiBjb250cm9sXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIHZhbGlkYXRpb24gbWVzc2FnZSBuZWFyIHRoZSBjb250cm9sXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSB2YWxpZGF0aW9uIGluc2lkZSB0aGUgdmFsaWRhdGlvbiBzdW1tYXJ5XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBub3RlcXVhbHMoaW52YWxpZFZhbHVlOiBhbnksIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIG5vdEVxdWFsc1ZhbHVlVmFsaWRhdG9yKGludmFsaWRWYWx1ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRpZXJ1bmcgbWl0IGVpbmVtIFJlZ0V4IFBhdHRlcm5cbiAgICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyB2YWxpZGllcnQgd2VyZGVuIHNvbGwuXG4gICAgICogQHBhcmFtIHBhdHRlcm4gUmVnRXggUGF0dGVyblxuICAgICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHBhdHRlcm4ocGF0dGVybjogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBwYXR0ZXJuVmFsaWRhdG9yKHBhdHRlcm4sIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBmw7xyIFJlcXVpcmVkIFN0YXRlXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdpcmRcbiAgICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByZXF1aXJlZCh2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiByZXF1aXJlZFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBTdGF0aWMgTWV0aG9kc1xufVxuXG4vLyAjZW5kcmVnaW9uIEV4cG9ydGVkIENsYXNzZXNcbiJdfQ==
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbInZhbGlkYXRpb24vdmFsaWRhdGlvbi5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJB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QztDQUdKO0FBRUQsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFuZ3VhZ2VNb2RlbCB9IGZyb20gJy4uL21vZGVscy9sYW5ndWFnZW1vZGVsJztcbmltcG9ydCB7IGVtYWlsVmFsaWRhdG9yIH0gZnJvbSAnLi9lbWFpbC52YWxpZGF0b3InO1xuaW1wb3J0IHsgZXF1YWxzVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL2VxdWFscy52YWxpZGF0b3InO1xuaW1wb3J0IHsgaXNWYWxpZERhdGVWYWxpZGF0b3IgfSBmcm9tICcuL2ludmFsaWRkYXRlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtYXhEYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXhkYXRlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtYXhUaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh0aW1lLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtYXhWYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vbWF4dmFsdWUudmFsaWRhdG9yJztcbmltcG9ydCB7IG1pbkRhdGVWYWxpZGF0b3IgfSBmcm9tICcuL21pbmRhdGUudmFsaWRhdG9yJztcbmltcG9ydCB7IG1pbkZpbGVzVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5maWxlcy52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluVGV4dExlbmd0aFZhbGlkYXRvciB9IGZyb20gJy4vbWludGV4dGxlbmd0aC52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluVGltZVZhbGlkYXRvciB9IGZyb20gJy4vbWludGltZS52YWxpZGF0b3InO1xuaW1wb3J0IHsgbWluVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL21pbnZhbHVlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZC52YWxpZGF0b3InO1xuaW1wb3J0IHsgbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yIH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlcmVxdWlyZWRhbnkudmFsaWRhdG9yJztcbmltcG9ydCB7IG5vdEVxdWFsc1ZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9ub3RlcXVhbHMudmFsaWRhdG9yJztcbmltcG9ydCB7IHBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tICcuL3BhdHRlcm4udmFsaWRhdG9yJztcbmltcG9ydCB7IHJlcXVpcmVkVmFsaWRhdG9yIH0gZnJvbSAnLi9yZXF1aXJlZC52YWxpZGF0b3InO1xuaW1wb3J0IHsgQ3JlYXRlVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi92YWxpZGF0aW9uZXJyb3JjcmVhdG9yJztcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuXG4vLyAjcmVnaW9uIFZhcmlhYmxlc1xuXG4vKipcbiAqIE1vbWVudFxuICovXG5jb25zdCBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XG5cbi8vICNlbmRyZWdpb24gVmFyaWFibGVzXG5cbi8vICNyZWdpb24gRXhwb3J0ZWQgQ2xhc3Nlc1xuXG4vKipcbiAqIENsYXNzIHdpdGggc3RhbmRhcmQgdmFsaWRhdG9yc1xuICovXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbiB7XG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgU3RhdGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSBldmVyeSB2YWxpZGF0b3IuIEl0IHNldHMgYm90aCB0aGUgZXJyb3JUeXBlIG9mIHRoZSB2YWxpZGF0ZWQgaXRlbSBhbmQgdGhlIEVycm9yTWVzc2FnZSAoYWNjb3JkaW5nIHRvIGVycm9yVHlwZSwgRmllbGROYW1lIGFuZCBQYXJhbWV0ZXJzKS5cbiAgICAgKiBAcGFyYW0gZXJyb3JUeXBlIFR5cGUgb2YgdGhlIGVycm9yXG4gICAgICogQHBhcmFtIGVycm9yTWVzc2FnZUtleSBFcnJvciBNZXNzYWdlIEtleVxuICAgICAqIEBwYXJhbSBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSBFcnJvciBNZXNzYWdlIEtleSBmb3IgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBvciBuYW1lIG9mIHRoZSBmaWVsZFxuICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzIFBhcmFtZXRlcnMgdGhhdCBjYW4gYmUgdXNlZCBhcyBwbGFjZWhvbGRlcnMgaW4gbWVzc2FnZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIEdldFZhbGlkYXRpb25FcnJvckl0ZW0oXG4gICAgICAgIGVycm9yVHlwZTogc3RyaW5nLFxuICAgICAgICBlcnJvck1lc3NhZ2VLZXk6IHN0cmluZyxcbiAgICAgICAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXk6IHN0cmluZyxcbiAgICAgICAgZmllbGROYW1lOiBzdHJpbmcgPSBudWxsLFxuICAgICAgICBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKVxuICAgICk6IGFueSB7XG4gICAgICAgIHJldHVybiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoZXJyb3JUeXBlLCBlcnJvck1lc3NhZ2VLZXksIGVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5LCBwYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0ZXMgZmllbGQgZm9yIGVtYWlsIGFkZHJlc3NcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBhdCB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBlbWFpbCh2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBlbWFpbFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgdmFsaWRhdGUgaWYgdmFsdWUgaXMgdGhlIHJlcXVpcmVkVmFsdWVcbiAgICAgKiBAcGFyYW0gcmVxdWlyZWRWYWx1ZSBWYWx1ZSB0aGF0IGNvbnRyb2wgc2hvdWxkIGhhdmVcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIG5lYXIgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBpbnNpZGUgdGhlIHZhbGlkYXRpb24gc3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZXF1YWxzKHJlcXVpcmVkVmFsdWU6IGFueSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gZXF1YWxzVmFsdWVWYWxpZGF0b3IocmVxdWlyZWRWYWx1ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIHRoYXQgY2hlY2tzIGlmIHRoZSB2YWx1ZSBpcyBhIGRhdGUuXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaXNWYWxpZERhdGUodmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gaXNWYWxpZERhdGVWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIGlmIHRoZSBkYXRlIGlzIG9sZGVyIHRoYW4gbWF4RGF0ZVxuICAgICAqIEBwYXJhbSBtYXhEYXRlIE1heGltdW0gZGF0ZSBhbGxvd2VkXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWF4RGF0ZShtYXhEYXRlOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtYXhEYXRlVmFsaWRhdG9yKG1heERhdGUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlcyBpZiB0aGUgdGltZSBpcyBlYXJsaWVyIHRoYW4gbWF4VGltZS5cbiAgICAgKiBAcGFyYW0gbWF4VGltZSBNYXhpbXVtIHRpbWUgYWxsb3dlZFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGF0aW9uIG1lc3NhZ2UgZGlzcGxheWVkIGF0IHRoZSBjb250cm9sXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGF0aW9uIG1lc3NhZ2UgZGlzcGxheWVkIGluIHRoZSBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKiBAcmV0dXJucyBWYWxpZGF0b3JGbiB2YWxpZGF0b3IgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG1heFRpbWUobWF4VGltZTogRGF0ZSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWF4VGltZVZhbGlkYXRvcihtYXhUaW1lLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgZm9yIE1heCBWYWx1ZVxuICAgICAqIEBwYXJhbSBtYXh2YWx1ZSBNYXhpbXVtIHZhbHVlIGFsbG93ZWRcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBhdCB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtYXhWYWx1ZShtYXh2YWx1ZTogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtYXhWYWx1ZVZhbGlkYXRvcihtYXh2YWx1ZSwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIGlmIHRoZSBkYXRlIGlzIG5ld2VyIHRoYW4gbWluRGF0ZVxuICAgICAqIEBwYXJhbSBtaW5EYXRlIE1pbmltdW0gZGF0ZSBhbGxvd2VkXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWluRGF0ZShtaW5EYXRlOiBEYXRlLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtaW5EYXRlVmFsaWRhdG9yKG1pbkRhdGUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBmb3IgbWluLiBudW1iZXIgb2YgdXBsb2Fkc1xuICAgICAqIEBwYXJhbSBtaW5GaWxlcyBNaW5pbXVtIG51bWJlciBvZiBmaWxlcyB0aGF0IG11c3QgYmUgdXBsb2FkZWRcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBiZWxvdyB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtaW5GaWxlcyhtaW5GaWxlczogbnVtYmVyLCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtaW5GaWxlc1ZhbGlkYXRvcihtaW5GaWxlcywgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIHRoZSBsZW5ndGggb2YgdGhlIHZhbHVlIGluIHRoZSBjb250cm9sXG4gICAgICogQHBhcmFtIG1pbnRleHRsZW5ndGggTWluaW11bSBsZW5ndGggb2YgdGhlIHZhbHVlXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWluVGV4dExlbmd0aChtaW5sZW5ndGg6IG51bWJlciwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWluVGV4dExlbmd0aFZhbGlkYXRvcihtaW5sZW5ndGgsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlcyBpZiB0aGUgdGltZSBpcyBsYXRlciB0aGFuIG1pblRpbWUuXG4gICAgICogQHBhcmFtIG1pblRpbWUgTWluaW11bSB0aW1lIGFsbG93ZWRcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBhdCB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtaW5UaW1lKG1pblRpbWU6IERhdGUsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWluVGltZVZhbGlkYXRvcihtaW5UaW1lLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgdGhhdCBjaGVja3MgaWYgdGhlIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiBtaW5WYWx1ZS5cbiAgICAgKiBAcGFyYW0gbWludmFsdWUgTWluaW11bSB2YWx1ZSBhbGxvd2VkXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYXQgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWluVmFsdWUobWludmFsdWU6IG51bWJlciwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbWluVmFsdWVWYWxpZGF0b3IobWludmFsdWUsIHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvciBmb3IgTXVsdGlMYW5ndWFnZSBDb250cm9sIHRoYXQgY2hlY2tzIGlmIGEgdmFsdWUgaGFzIGJlZW4gZW50ZXJlZCBpbiBhbGwgbGFuZ3VhZ2VzXG4gICAgICogQHBhcmFtIGxhbmd1YWdlcyBMYW5ndWFnZXMgdGhhdCBjYW4gYmUgY2FwdHVyZWQgaW4gdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBiZWxvdyB0aGUgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIGRpc3BsYXllZCBpbiB0aGUgVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHJldHVybnMgVmFsaWRhdG9yRm4gdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtdWx0aWxhbmd1YWdlUmVxdWlyZWQoXG4gICAgICAgIGxhbmd1YWdlczogTGFuZ3VhZ2VNb2RlbFtdLFxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcbiAgICApOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IobGFuZ3VhZ2VzLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3IgZm9yIE11bHRpTGFuZ3VhZ2UgQ29udHJvbCB0aGF0IGNoZWNrcyBpZiBhdCBsZWFzdCBvbmUgdmFsdWUgaGFzIGJlZW4gZW50ZXJlZFxuICAgICAqIEBwYXJhbSBsYW5ndWFnZXMgTGFuZ3VhZ2VzIHRoYXQgY2FuIGJlIGNhcHR1cmVkIGluIHRoZSBjb250cm9sXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYmVsb3cgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55KFxuICAgICAgICBsYW5ndWFnZXM6IExhbmd1YWdlTW9kZWxbXSxcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XG4gICAgKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yKGxhbmd1YWdlcywgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIHZhbGlkYXRlIGlmIHZhbHVlIGlzIG5vdCB0aGUgaW52YWxpZFZhbHVlXG4gICAgICogQHBhcmFtIGludmFsaWRWYWx1ZSBWYWx1ZSB0aGF0IGNvbnRyb2wgc2hvdWxkIG5vdCBoYXZlXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBuZWFyIHRoZSBjb250cm9sXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGF0aW9uIG1lc3NhZ2UgaW5zaWRlIHRoZSB2YWxpZGF0aW9uIHN1bW1hcnlcbiAgICAgKiBAcmV0dXJucyBWYWxpZGF0b3JGbiB2YWxpZGF0b3IgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG5vdGVxdWFscyhpbnZhbGlkVmFsdWU6IGFueSwgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gbm90RXF1YWxzVmFsdWVWYWxpZGF0b3IoaW52YWxpZFZhbHVlLCB2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0aW9uIHdpdGggYSBSZWdFeCBwYXR0ZXJuXG4gICAgICogQHBhcmFtIHBhdHRlcm4gUmVnRXggcGF0dGVybiB0aGF0IHRoZSB2YWx1ZSBtdXN0IG1hdGNoXG4gICAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgYmVsb3cgdGhlIGNvbnRyb2xcbiAgICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkYXRpb24gbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcGF0dGVybihwYXR0ZXJuOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIHBhdHRlcm5WYWxpZGF0b3IocGF0dGVybiwgdmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yIGZvciBSZXF1aXJlZCBTdGF0ZVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRvckZuIHZhbGlkYXRvciBmdW5jdGlvblxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGF0aW9uIG1lc3NhZ2UgdGhhdFxuICAgICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRhdGlvbiBtZXNzYWdlIHRoYXQgaXMgZGlzcGxheWVkIGluIHRoZSBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlcXVpcmVkKHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmVkVmFsaWRhdG9yKHZhbGlkYXRpb25NZXNzYWdlLCB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIFN0YXRpYyBNZXRob2RzXG59XG5cbi8vICNlbmRyZWdpb24gRXhwb3J0ZWQgQ2xhc3Nlc1xuIl19
@@ -1,4 +1,14 @@
1
1
  import { ValidationErrorItem } from './validationerroritem';
2
+ // #region Exported Functions
3
+ /**
4
+ * Creates a structured validation error object for validation result reporting.
5
+ *
6
+ * @param errorType Identifier for the validation error type (e.g. 'required', 'invalid').
7
+ * @param errorMessageKey Resource key used for the control-level error text.
8
+ * @param errorMessageValidationSummaryKey Resource key used for summary-level error text.
9
+ * @param parameters Optional placeholder parameters to replace in error messages.
10
+ * @returns The generated validation error object.
11
+ */
2
12
  export function CreateValidationError(errorType, errorMessageKey, errorMessageValidationSummaryKey, parameters = new Map()) {
3
13
  const item = new ValidationErrorItem(errorType, errorMessageKey, errorMessageValidationSummaryKey);
4
14
  if (parameters !== null && parameters !== undefined && parameters.size > 0) {
@@ -8,4 +18,5 @@ export function CreateValidationError(errorType, errorMessageKey, errorMessageVa
8
18
  }
9
19
  return { [errorType]: item };
10
20
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbmVycm9yY3JlYXRvci5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbInZhbGlkYXRpb24vdmFsaWRhdGlvbmVycm9yY3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLFNBQWlCLEVBQ2pCLGVBQXVCLEVBQ3ZCLGdDQUF3QyxFQUN4QyxhQUErQixJQUFJLEdBQUcsRUFBZTtJQUVyRCxNQUFNLElBQUksR0FBd0IsSUFBSSxtQkFBbUIsQ0FDdkQsU0FBUyxFQUNULGVBQWUsRUFDZixnQ0FBZ0MsQ0FDakMsQ0FBQztJQUVGLElBQUksVUFBVSxLQUFLLElBQUksSUFBSSxVQUFVLEtBQUssU0FBUyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFO1FBQzFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ySXRlbSB9IGZyb20gJy4vdmFsaWRhdGlvbmVycm9yaXRlbSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXG4gIGVycm9yVHlwZTogc3RyaW5nLFxuICBlcnJvck1lc3NhZ2VLZXk6IHN0cmluZyxcbiAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXk6IHN0cmluZyxcbiAgcGFyYW1ldGVyczogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KClcbik6IGFueSB7XG4gIGNvbnN0IGl0ZW06IFZhbGlkYXRpb25FcnJvckl0ZW0gPSBuZXcgVmFsaWRhdGlvbkVycm9ySXRlbShcbiAgICBlcnJvclR5cGUsXG4gICAgZXJyb3JNZXNzYWdlS2V5LFxuICAgIGVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5XG4gICk7XG5cbiAgaWYgKHBhcmFtZXRlcnMgIT09IG51bGwgJiYgcGFyYW1ldGVycyAhPT0gdW5kZWZpbmVkICYmIHBhcmFtZXRlcnMuc2l6ZSA+IDApIHtcbiAgICBwYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgIGl0ZW0ucGFyYW1ldGVycy5zZXQoaywgdik7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4geyBbZXJyb3JUeXBlXTogaXRlbSB9O1xufVxuIl19
21
+ // #endregion Exported Functions
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbmVycm9yY3JlYXRvci5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbInZhbGlkYXRpb24vdmFsaWRhdGlvbmVycm9yY3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCw2QkFBNkI7QUFFN0I7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ2pDLFNBQWlCLEVBQ2pCLGVBQXVCLEVBQ3ZCLGdDQUF3QyxFQUN4QyxhQUErQixJQUFJLEdBQUcsRUFBZTtJQUVyRCxNQUFNLElBQUksR0FBd0IsSUFBSSxtQkFBbUIsQ0FDckQsU0FBUyxFQUNULGVBQWUsRUFDZixnQ0FBZ0MsQ0FDbkMsQ0FBQztJQUVGLElBQUksVUFBVSxLQUFLLElBQUksSUFBSSxVQUFVLEtBQUssU0FBUyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFO1FBQ3hFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0tBQ047SUFFRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ySXRlbSB9IGZyb20gJy4vdmFsaWRhdGlvbmVycm9yaXRlbSc7XG5cbi8vICNyZWdpb24gRXhwb3J0ZWQgRnVuY3Rpb25zXG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0cnVjdHVyZWQgdmFsaWRhdGlvbiBlcnJvciBvYmplY3QgZm9yIHZhbGlkYXRpb24gcmVzdWx0IHJlcG9ydGluZy5cbiAqXG4gKiBAcGFyYW0gZXJyb3JUeXBlIElkZW50aWZpZXIgZm9yIHRoZSB2YWxpZGF0aW9uIGVycm9yIHR5cGUgKGUuZy4gJ3JlcXVpcmVkJywgJ2ludmFsaWQnKS5cbiAqIEBwYXJhbSBlcnJvck1lc3NhZ2VLZXkgUmVzb3VyY2Uga2V5IHVzZWQgZm9yIHRoZSBjb250cm9sLWxldmVsIGVycm9yIHRleHQuXG4gKiBAcGFyYW0gZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXkgUmVzb3VyY2Uga2V5IHVzZWQgZm9yIHN1bW1hcnktbGV2ZWwgZXJyb3IgdGV4dC5cbiAqIEBwYXJhbSBwYXJhbWV0ZXJzIE9wdGlvbmFsIHBsYWNlaG9sZGVyIHBhcmFtZXRlcnMgdG8gcmVwbGFjZSBpbiBlcnJvciBtZXNzYWdlcy5cbiAqIEByZXR1cm5zIFRoZSBnZW5lcmF0ZWQgdmFsaWRhdGlvbiBlcnJvciBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXG4gICAgZXJyb3JUeXBlOiBzdHJpbmcsXG4gICAgZXJyb3JNZXNzYWdlS2V5OiBzdHJpbmcsXG4gICAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXk6IHN0cmluZyxcbiAgICBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKVxuKTogYW55IHtcbiAgICBjb25zdCBpdGVtOiBWYWxpZGF0aW9uRXJyb3JJdGVtID0gbmV3IFZhbGlkYXRpb25FcnJvckl0ZW0oXG4gICAgICAgIGVycm9yVHlwZSxcbiAgICAgICAgZXJyb3JNZXNzYWdlS2V5LFxuICAgICAgICBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleVxuICAgICk7XG5cbiAgICBpZiAocGFyYW1ldGVycyAhPT0gbnVsbCAmJiBwYXJhbWV0ZXJzICE9PSB1bmRlZmluZWQgJiYgcGFyYW1ldGVycy5zaXplID4gMCkge1xuICAgICAgICBwYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgICAgIGl0ZW0ucGFyYW1ldGVycy5zZXQoaywgdik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7IFtlcnJvclR5cGVdOiBpdGVtIH07XG59XG5cbi8vICNlbmRyZWdpb24gRXhwb3J0ZWQgRnVuY3Rpb25zXG4iXX0=
@@ -1,21 +1,23 @@
1
1
  /**
2
- * Klasse für Validierungsfehler
2
+ * Class for validation errors
3
3
  * */
4
4
  export class ValidationErrorItem {
5
+ // #endregion Properties
6
+ // #region Constructors
5
7
  /**
6
- * Konstruktor
7
- * @param errorType Type des Fehlers
8
- * @param errorMessageKey Key für Fehlermeldung
9
- * @param errorMessageSummaryKey Key für Fehlermeldung in Validation Summary
10
- * @param fieldName Name des Labels oder Bezeichnung des Feldes
8
+ * Constructor
9
+ * @param errorType Type of the error
10
+ * @param errorMessageKey Key for error message
11
+ * @param errorMessageSummaryKey Key for error message in Validation Summary
12
+ * @param fieldName Name of the label or designation of the field
11
13
  */
12
14
  constructor(errorType, errorMessageKey, errorMessageSummaryKey, fieldName = null) {
13
15
  /**
14
- * Label oder Name des Feldes
16
+ * Label or name of the field
15
17
  */
16
18
  this.fieldName = null;
17
19
  /**
18
- * Map mit Parametern die in den Meldungen als Platzhalter verwendet werden können
20
+ * Map with parameters that can be used as placeholders in messages
19
21
  */
20
22
  this.parameters = new Map();
21
23
  this.errorType = errorType;
@@ -24,4 +26,4 @@ export class ValidationErrorItem {
24
26
  this.fieldName = fieldName;
25
27
  }
26
28
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbmVycm9yaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbInZhbGlkYXRpb24vdmFsaWRhdGlvbmVycm9yaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7S0FFSztBQUNMLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7Ozs7OztPQU1HO0lBQ0gsWUFDRSxTQUFpQixFQUNqQixlQUF1QixFQUN2QixzQkFBOEIsRUFDOUIsWUFBb0IsSUFBSTtRQXVCMUI7O1dBRUc7UUFDSSxjQUFTLEdBQVcsSUFBSSxDQUFDO1FBRWhDOztXQUVHO1FBQ0ksZUFBVSxHQUFxQixJQUFJLEdBQUcsRUFBZSxDQUFDO1FBN0IzRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsc0JBQXNCLENBQUM7UUFDL0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztDQTBCRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogS2xhc3NlIGbDvHIgVmFsaWRpZXJ1bmdzZmVobGVyXG4gKiAqL1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FcnJvckl0ZW0ge1xuICAvKipcbiAgICogS29uc3RydWt0b3JcbiAgICogQHBhcmFtIGVycm9yVHlwZSBUeXBlIGRlcyBGZWhsZXJzXG4gICAqIEBwYXJhbSBlcnJvck1lc3NhZ2VLZXkgS2V5IGbDvHIgRmVobGVybWVsZHVuZ1xuICAgKiBAcGFyYW0gZXJyb3JNZXNzYWdlU3VtbWFyeUtleSBLZXkgZsO8ciBGZWhsZXJtZWxkdW5nIGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgKiBAcGFyYW0gZmllbGROYW1lIE5hbWUgZGVzIExhYmVscyBvZGVyIEJlemVpY2hudW5nIGRlcyBGZWxkZXNcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIGVycm9yVHlwZTogc3RyaW5nLFxuICAgIGVycm9yTWVzc2FnZUtleTogc3RyaW5nLFxuICAgIGVycm9yTWVzc2FnZVN1bW1hcnlLZXk6IHN0cmluZyxcbiAgICBmaWVsZE5hbWU6IHN0cmluZyA9IG51bGxcbiAgKSB7XG4gICAgdGhpcy5lcnJvclR5cGUgPSBlcnJvclR5cGU7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VLZXkgPSBlcnJvck1lc3NhZ2VLZXk7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSA9IGVycm9yTWVzc2FnZVN1bW1hcnlLZXk7XG4gICAgdGhpcy5maWVsZE5hbWUgPSBmaWVsZE5hbWU7XG4gIH1cblxuICAvKipcbiAgICogVHlwIGRlbiBGZWhsZXJcbiAgICovXG4gIHB1YmxpYyBlcnJvclR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogRXJyb3IgTWVzc2FnZSBLZXlcbiAgICovXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogRXJyb3IgTWVzc2FnZSBLZXkgZsO8ciBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICovXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMYWJlbCBvZGVyIE5hbWUgZGVzIEZlbGRlc1xuICAgKi9cbiAgcHVibGljIGZpZWxkTmFtZTogc3RyaW5nID0gbnVsbDtcblxuICAvKipcbiAgICogTWFwIG1pdCBQYXJhbWV0ZXJuIGRpZSBpbiBkZW4gTWVsZHVuZ2VuIGFscyBQbGF0emhhbHRlciB2ZXJ3ZW5kZXQgd2VyZGVuIGvDtm5uZW5cbiAgICovXG4gIHB1YmxpYyBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbn1cbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbmVycm9yaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbInZhbGlkYXRpb24vdmFsaWRhdGlvbmVycm9yaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7S0FFSztBQUNMLE1BQU0sT0FBTyxtQkFBbUI7SUE0QjVCLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7OztPQU1HO0lBQ0gsWUFBWSxTQUFpQixFQUFFLGVBQXVCLEVBQUUsc0JBQThCLEVBQUUsWUFBb0IsSUFBSTtRQXJCaEg7O1dBRUc7UUFDSSxjQUFTLEdBQVcsSUFBSSxDQUFDO1FBRWhDOztXQUVHO1FBQ0ksZUFBVSxHQUFxQixJQUFJLEdBQUcsRUFBZSxDQUFDO1FBY3pELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxzQkFBc0IsQ0FBQztRQUMvRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUMvQixDQUFDO0NBR0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENsYXNzIGZvciB2YWxpZGF0aW9uIGVycm9yc1xuICogKi9cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uRXJyb3JJdGVtIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEVycm9yIE1lc3NhZ2UgS2V5XG4gICAgICovXG4gICAgcHVibGljIGVycm9yTWVzc2FnZUtleTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRXJyb3IgTWVzc2FnZSBLZXkgZm9yIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVHlwZSBvZiB0aGUgZXJyb3JcbiAgICAgKi9cbiAgICBwdWJsaWMgZXJyb3JUeXBlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBMYWJlbCBvciBuYW1lIG9mIHRoZSBmaWVsZFxuICAgICAqL1xuICAgIHB1YmxpYyBmaWVsZE5hbWU6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBNYXAgd2l0aCBwYXJhbWV0ZXJzIHRoYXQgY2FuIGJlIHVzZWQgYXMgcGxhY2Vob2xkZXJzIGluIG1lc3NhZ2VzXG4gICAgICovXG4gICAgcHVibGljIHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZXJyb3JUeXBlIFR5cGUgb2YgdGhlIGVycm9yXG4gICAgICogQHBhcmFtIGVycm9yTWVzc2FnZUtleSBLZXkgZm9yIGVycm9yIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gZXJyb3JNZXNzYWdlU3VtbWFyeUtleSBLZXkgZm9yIGVycm9yIG1lc3NhZ2UgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICogQHBhcmFtIGZpZWxkTmFtZSBOYW1lIG9mIHRoZSBsYWJlbCBvciBkZXNpZ25hdGlvbiBvZiB0aGUgZmllbGRcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihlcnJvclR5cGU6IHN0cmluZywgZXJyb3JNZXNzYWdlS2V5OiBzdHJpbmcsIGVycm9yTWVzc2FnZVN1bW1hcnlLZXk6IHN0cmluZywgZmllbGROYW1lOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZXJyb3JUeXBlID0gZXJyb3JUeXBlO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZUtleSA9IGVycm9yTWVzc2FnZUtleTtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSA9IGVycm9yTWVzc2FnZVN1bW1hcnlLZXk7XG4gICAgICAgIHRoaXMuZmllbGROYW1lID0gZmllbGROYW1lO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG59XG4iXX0=