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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/README.md +15 -15
  2. package/common/basedatetimecontrol.d.ts +120 -30
  3. package/common/basedatetimecontrol.d.ts.map +1 -1
  4. package/common/baseinputcontrol.d.ts +9 -13
  5. package/common/baseinputcontrol.d.ts.map +1 -1
  6. package/common/basemodelcontrol.d.ts +172 -85
  7. package/common/basemodelcontrol.d.ts.map +1 -1
  8. package/common/baseuploadcontrol.d.ts +162 -142
  9. package/common/baseuploadcontrol.d.ts.map +1 -1
  10. package/components/browser/browser.d.ts +11 -6
  11. package/components/browser/browser.d.ts.map +1 -1
  12. package/controls/buttons/button.d.ts +35 -30
  13. package/controls/buttons/button.d.ts.map +1 -1
  14. package/controls/checkbox/checkbox.d.ts +18 -5
  15. package/controls/checkbox/checkbox.d.ts.map +1 -1
  16. package/controls/checkbox/radiobutton.d.ts +68 -24
  17. package/controls/checkbox/radiobutton.d.ts.map +1 -1
  18. package/controls/checkbox/radiobuttons.d.ts +23 -22
  19. package/controls/checkbox/radiobuttons.d.ts.map +1 -1
  20. package/controls/confirm/confirm.button.d.ts +14 -8
  21. package/controls/confirm/confirm.button.d.ts.map +1 -1
  22. package/controls/confirm/confirm.service.d.ts +24 -19
  23. package/controls/confirm/confirm.service.d.ts.map +1 -1
  24. package/controls/contextmenu/contextmenu.d.ts +59 -44
  25. package/controls/contextmenu/contextmenu.d.ts.map +1 -1
  26. package/controls/contextmenu/contextmenu.interface.d.ts +4 -0
  27. package/controls/contextmenu/contextmenu.interface.d.ts.map +1 -0
  28. package/controls/contextmenu/contextmenuanchor.d.ts +2 -2
  29. package/controls/contextmenu/contextmenuanchor.d.ts.map +1 -1
  30. package/controls/contextmenu/contextmenucontainer.d.ts +2 -2
  31. package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -1
  32. package/controls/contextmenu/contextmenuitem.d.ts +6 -1
  33. package/controls/contextmenu/contextmenuitem.d.ts.map +1 -1
  34. package/controls/contextmenu/contextmenuitembutton.d.ts +22 -21
  35. package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -1
  36. package/controls/datetime/date.d.ts +33 -36
  37. package/controls/datetime/date.d.ts.map +1 -1
  38. package/controls/datetime/dateselector.d.ts +10 -2
  39. package/controls/datetime/dateselector.d.ts.map +1 -1
  40. package/controls/datetime/datetime.d.ts +33 -40
  41. package/controls/datetime/datetime.d.ts.map +1 -1
  42. package/controls/datetime/time.d.ts +32 -36
  43. package/controls/datetime/time.d.ts.map +1 -1
  44. package/controls/dialog/dialog.d.ts +35 -43
  45. package/controls/dialog/dialog.d.ts.map +1 -1
  46. package/controls/form/form.d.ts +7 -43
  47. package/controls/form/form.d.ts.map +1 -1
  48. package/controls/grid/grid.d.ts +70 -61
  49. package/controls/grid/grid.d.ts.map +1 -1
  50. package/controls/grid/gridbutton.d.ts +33 -14
  51. package/controls/grid/gridbutton.d.ts.map +1 -1
  52. package/controls/grid/gridcolumn.d.ts +8 -8
  53. package/controls/grid/gridcolumn.d.ts.map +1 -1
  54. package/controls/grid/gridcolumnaction.d.ts +3 -3
  55. package/controls/grid/gridcolumnaction.d.ts.map +1 -1
  56. package/controls/grid/gridcolumnbase.d.ts +58 -38
  57. package/controls/grid/gridcolumnbase.d.ts.map +1 -1
  58. package/controls/grid/gridimage.d.ts +2 -2
  59. package/controls/grid/gridimage.d.ts.map +1 -1
  60. package/controls/grid/model.d.ts +51 -42
  61. package/controls/grid/model.d.ts.map +1 -1
  62. package/controls/grid/paging.d.ts +78 -73
  63. package/controls/grid/paging.d.ts.map +1 -1
  64. package/controls/input/input.d.ts +12 -12
  65. package/controls/input/input.d.ts.map +1 -1
  66. package/controls/input/inputarea.d.ts +6 -6
  67. package/controls/input/inputarea.d.ts.map +1 -1
  68. package/controls/input/inputcurrency.d.ts +6 -1
  69. package/controls/input/inputcurrency.d.ts.map +1 -1
  70. package/controls/input/inputdecimal.d.ts +21 -21
  71. package/controls/input/inputdecimal.d.ts.map +1 -1
  72. package/controls/input/inputemail.d.ts.map +1 -1
  73. package/controls/input/inputinteger.d.ts +21 -21
  74. package/controls/input/inputinteger.d.ts.map +1 -1
  75. package/controls/input/inputpassword.d.ts +28 -8
  76. package/controls/input/inputpassword.d.ts.map +1 -1
  77. package/controls/input/inputsearch.d.ts +14 -5
  78. package/controls/input/inputsearch.d.ts.map +1 -1
  79. package/controls/layout/formlayout.d.ts +66 -0
  80. package/controls/layout/formlayout.d.ts.map +1 -0
  81. package/controls/list/buildvaluestring.d.ts +7 -0
  82. package/controls/list/buildvaluestring.d.ts.map +1 -0
  83. package/controls/list/dropdown.d.ts +38 -82
  84. package/controls/list/dropdown.d.ts.map +1 -1
  85. package/controls/list/dropdownoptions.d.ts +42 -0
  86. package/controls/list/dropdownoptions.d.ts.map +1 -0
  87. package/controls/list/listbox.d.ts +20 -20
  88. package/controls/list/listbox.d.ts.map +1 -1
  89. package/controls/multilanguage/multilanguageinput.d.ts +36 -35
  90. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  91. package/controls/multilanguage/multilanguageinputarea.d.ts +41 -40
  92. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  93. package/controls/static/formcontainer.d.ts +8 -4
  94. package/controls/static/formcontainer.d.ts.map +1 -1
  95. package/controls/tabs/tab.d.ts +20 -16
  96. package/controls/tabs/tab.d.ts.map +1 -1
  97. package/controls/tinymce/tinymce.d.ts +65 -61
  98. package/controls/tinymce/tinymce.d.ts.map +1 -1
  99. package/controls/tooltip/tooltip.d.ts +82 -67
  100. package/controls/tooltip/tooltip.d.ts.map +1 -1
  101. package/controls/treeview/treeview.d.ts +109 -109
  102. package/controls/treeview/treeview.d.ts.map +1 -1
  103. package/controls/upload/dropzonemultiple.d.ts +25 -21
  104. package/controls/upload/dropzonemultiple.d.ts.map +1 -1
  105. package/controls/upload/dropzonesingle.d.ts +20 -16
  106. package/controls/upload/dropzonesingle.d.ts.map +1 -1
  107. package/controls/upload/uploadmultiple.d.ts +14 -10
  108. package/controls/upload/uploadmultiple.d.ts.map +1 -1
  109. package/controls/upload/uploadsingle.d.ts +5 -1
  110. package/controls/upload/uploadsingle.d.ts.map +1 -1
  111. package/controls/validation/validationsummary.d.ts +24 -15
  112. package/controls/validation/validationsummary.d.ts.map +1 -1
  113. package/enums/ButtonRoleType.d.ts +2 -0
  114. package/enums/ButtonRoleType.d.ts.map +1 -0
  115. package/enums/ControlHeight.d.ts +18 -0
  116. package/enums/ControlHeight.d.ts.map +1 -0
  117. package/esm2022/common/basedatetimecontrol.mjs +83 -164
  118. package/esm2022/common/baseinputcontrol.mjs +21 -80
  119. package/esm2022/common/baselistcontrol.mjs +11 -56
  120. package/esm2022/common/basemodelcontrol.mjs +136 -353
  121. package/esm2022/common/baseselectcontrol.mjs +6 -27
  122. package/esm2022/common/baseuploadcontrol.mjs +122 -435
  123. package/esm2022/components/browser/browser.mjs +66 -474
  124. package/esm2022/components/browser/models/browserfile.mjs +3 -2
  125. package/esm2022/components/browser/models/browserfiledeleterequest.mjs +5 -10
  126. package/esm2022/components/browser/models/browserfilerenamerequest.mjs +5 -10
  127. package/esm2022/components/browser/models/browserfileresponse.mjs +3 -2
  128. package/esm2022/components/browser/models/browserfilesaverequest.mjs +5 -10
  129. package/esm2022/components/browser/models/browsernode.mjs +3 -2
  130. package/esm2022/components/browser/models/browsernodedeleterequest.mjs +5 -10
  131. package/esm2022/components/browser/models/browsernodenewrequest.mjs +5 -10
  132. package/esm2022/components/browser/models/browsernoderenamerequest.mjs +5 -10
  133. package/esm2022/components/browser/models/browsernoderequest.mjs +5 -10
  134. package/esm2022/components/browser/models/browsernoderesponse.mjs +3 -2
  135. package/esm2022/controls/buttons/button.mjs +35 -132
  136. package/esm2022/controls/checkbox/checkbox.mjs +15 -30
  137. package/esm2022/controls/checkbox/radiobutton.mjs +45 -102
  138. package/esm2022/controls/checkbox/radiobuttons.mjs +29 -106
  139. package/esm2022/controls/confirm/confirm.button.mjs +17 -21
  140. package/esm2022/controls/confirm/confirm.mjs +19 -69
  141. package/esm2022/controls/confirm/confirm.service.mjs +29 -74
  142. package/esm2022/controls/contextmenu/contextmenu.interface.mjs +3 -0
  143. package/esm2022/controls/contextmenu/contextmenu.mjs +47 -171
  144. package/esm2022/controls/contextmenu/contextmenuanchor.mjs +8 -19
  145. package/esm2022/controls/contextmenu/contextmenucontainer.mjs +8 -19
  146. package/esm2022/controls/contextmenu/contextmenuitem.mjs +7 -13
  147. package/esm2022/controls/contextmenu/contextmenuitembutton.mjs +25 -93
  148. package/esm2022/controls/datetime/date.mjs +42 -206
  149. package/esm2022/controls/datetime/dateselector.mjs +75 -411
  150. package/esm2022/controls/datetime/datetime.mjs +42 -224
  151. package/esm2022/controls/datetime/time.mjs +40 -204
  152. package/esm2022/controls/dialog/dialog.mjs +46 -209
  153. package/esm2022/controls/form/form.mjs +27 -153
  154. package/esm2022/controls/grid/grid.mjs +52 -155
  155. package/esm2022/controls/grid/gridbutton.mjs +30 -59
  156. package/esm2022/controls/grid/gridcolumn.mjs +21 -46
  157. package/esm2022/controls/grid/gridcolumnaction.mjs +8 -22
  158. package/esm2022/controls/grid/gridcolumnbase.mjs +37 -124
  159. package/esm2022/controls/grid/gridimage.mjs +5 -16
  160. package/esm2022/controls/grid/model.mjs +49 -74
  161. package/esm2022/controls/grid/paging.mjs +86 -251
  162. package/esm2022/controls/input/input.mjs +17 -65
  163. package/esm2022/controls/input/inputarea.mjs +18 -56
  164. package/esm2022/controls/input/inputcurrency.mjs +9 -14
  165. package/esm2022/controls/input/inputdecimal.mjs +33 -143
  166. package/esm2022/controls/input/inputemail.mjs +10 -37
  167. package/esm2022/controls/input/inputinteger.mjs +32 -127
  168. package/esm2022/controls/input/inputpassword.mjs +26 -45
  169. package/esm2022/controls/input/inputsearch.mjs +16 -38
  170. package/esm2022/controls/layout/formlayout.mjs +31 -0
  171. package/esm2022/controls/list/buildvaluestring.mjs +10 -0
  172. package/esm2022/controls/list/dropdown.mjs +53 -235
  173. package/esm2022/controls/list/dropdownoptions.mjs +22 -0
  174. package/esm2022/controls/list/listbox.mjs +40 -159
  175. package/esm2022/controls/multilanguage/multilanguageinput.mjs +48 -215
  176. package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +51 -217
  177. package/esm2022/controls/static/formcontainer.mjs +18 -45
  178. package/esm2022/controls/static/staticlabel.mjs +7 -28
  179. package/esm2022/controls/tabs/tab.mjs +24 -73
  180. package/esm2022/controls/tabs/tabitem.mjs +7 -37
  181. package/esm2022/controls/tinymce/tinymce.mjs +64 -232
  182. package/esm2022/controls/tinymce/tinymcedialogsettings.mjs +5 -10
  183. package/esm2022/controls/tinymce/tinymcedialogsettingsmeta.mjs +4 -4
  184. package/esm2022/controls/tinymce/tinymceinstance.mjs +3 -2
  185. package/esm2022/controls/tooltip/tooltip.mjs +78 -358
  186. package/esm2022/controls/treeview/treeview.mjs +103 -343
  187. package/esm2022/controls/upload/dropzonemultiple.mjs +35 -151
  188. package/esm2022/controls/upload/dropzonesingle.mjs +27 -99
  189. package/esm2022/controls/upload/uploadmultiple.mjs +25 -111
  190. package/esm2022/controls/upload/uploadsingle.mjs +15 -50
  191. package/esm2022/controls/validation/validationsummary.mjs +26 -121
  192. package/esm2022/controls/wizard/wizard.mjs +20 -128
  193. package/esm2022/controls/wizard/wizarditem.mjs +6 -31
  194. package/esm2022/enums/ButtonRoleType.mjs +3 -0
  195. package/esm2022/enums/ControlHeight.mjs +11 -0
  196. package/esm2022/enums/IconType.mjs +4 -8
  197. package/esm2022/interfaces/ISacConfigurationService.mjs +3 -0
  198. package/esm2022/interfaces/ISacFileBrowserService.mjs +3 -2
  199. package/esm2022/interfaces/ISacIconService.mjs +3 -2
  200. package/esm2022/interfaces/ISacLabelSizes.mjs +3 -0
  201. package/esm2022/interfaces/ISacLanguageService.mjs +3 -2
  202. package/esm2022/interfaces/ISacLocalisationService.mjs +3 -2
  203. package/esm2022/interfaces/ISacUploadEventCompleteState.mjs +3 -0
  204. package/esm2022/interfaces/ISacValidationKeyService.mjs +3 -0
  205. package/esm2022/interfaces/iabstractcontrollabel.mjs +3 -2
  206. package/esm2022/interfaces/iconfirmcomponent.mjs +3 -2
  207. package/esm2022/interfaces/idatetimecontrol.mjs +3 -2
  208. package/esm2022/interfaces/iuploadcontrol.mjs +3 -2
  209. package/esm2022/interfaces/treeviewaction.interface.mjs +3 -0
  210. package/esm2022/models/languagemodel.mjs +5 -11
  211. package/esm2022/public_api.mjs +25 -94
  212. package/esm2022/services/index.mjs +3 -5
  213. package/esm2022/services/sac-configuration.service.mjs +41 -0
  214. package/esm2022/services/sac-filebrowser.service.mjs +15 -167
  215. package/esm2022/services/sac-icon.service.mjs +77 -157
  216. package/esm2022/services/sac-language.service.mjs +7 -45
  217. package/esm2022/services/sac-localisation.service.mjs +32 -426
  218. package/esm2022/services/sac-validationkey.service.mjs +7 -0
  219. package/esm2022/simpleangularcontrols-sac-common.mjs +4 -4
  220. package/esm2022/utilities/convertion.mjs +6 -26
  221. package/esm2022/utilities/datatypes.mjs +4 -6
  222. package/esm2022/utilities/enums.mjs +10 -15
  223. package/esm2022/utilities/guid.mjs +8 -0
  224. package/esm2022/utilities/interpolation.mjs +7 -42
  225. package/esm2022/utilities/popuphelper.mjs +80 -0
  226. package/esm2022/utilities/positioning.mjs +23 -266
  227. package/esm2022/utilities/testingattribute.pipe.mjs +12 -0
  228. package/esm2022/validation/email.validator.mjs +3 -13
  229. package/esm2022/validation/equals.validator.mjs +3 -0
  230. package/esm2022/validation/index.mjs +3 -3
  231. package/esm2022/validation/invaliddate.validator.mjs +3 -14
  232. package/esm2022/validation/isDateValid.mjs +9 -13
  233. package/esm2022/validation/maxdate.validator.mjs +4 -21
  234. package/esm2022/validation/maxtime.validator.mjs +4 -21
  235. package/esm2022/validation/maxvalue.validator.mjs +3 -16
  236. package/esm2022/validation/mindate.validator.mjs +4 -21
  237. package/esm2022/validation/minfiles.validator.mjs +4 -19
  238. package/esm2022/validation/mintextlength.validator.mjs +5 -0
  239. package/esm2022/validation/mintime.validator.mjs +4 -21
  240. package/esm2022/validation/minvalue.validator.mjs +3 -16
  241. package/esm2022/validation/multilanguagerequired.validator.mjs +3 -22
  242. package/esm2022/validation/multilanguagerequiredany.validator.mjs +3 -22
  243. package/esm2022/validation/notequals.validator.mjs +3 -0
  244. package/esm2022/validation/pattern.validator.mjs +3 -16
  245. package/esm2022/validation/required.validator.mjs +3 -13
  246. package/esm2022/validation/validation.mjs +74 -134
  247. package/esm2022/validation/validationerrorcreator.mjs +3 -11
  248. package/esm2022/validation/validationerroritem.mjs +7 -19
  249. package/fesm2022/simpleangularcontrols-sac-common.mjs +2479 -9262
  250. package/fesm2022/simpleangularcontrols-sac-common.mjs.map +1 -1
  251. package/interfaces/ISacConfigurationService.d.ts +63 -0
  252. package/interfaces/ISacConfigurationService.d.ts.map +1 -0
  253. package/interfaces/ISacIconService.d.ts +54 -2
  254. package/interfaces/ISacIconService.d.ts.map +1 -1
  255. package/interfaces/ISacLabelSizes.d.ts +27 -0
  256. package/interfaces/ISacLabelSizes.d.ts.map +1 -0
  257. package/interfaces/ISacUploadEventCompleteState.d.ts +6 -0
  258. package/interfaces/ISacUploadEventCompleteState.d.ts.map +1 -0
  259. package/interfaces/ISacValidationKeyService.d.ts +53 -0
  260. package/interfaces/ISacValidationKeyService.d.ts.map +1 -0
  261. package/interfaces/treeviewaction.interface.d.ts +5 -0
  262. package/interfaces/treeviewaction.interface.d.ts.map +1 -0
  263. package/package.json +2 -2
  264. package/public_api.d.ts +34 -21
  265. package/public_api.d.ts.map +1 -1
  266. package/services/index.d.ts +6 -4
  267. package/services/index.d.ts.map +1 -1
  268. package/services/sac-configuration.service.d.ts +135 -0
  269. package/services/sac-configuration.service.d.ts.map +1 -0
  270. package/services/sac-icon.service.d.ts +109 -5
  271. package/services/sac-icon.service.d.ts.map +1 -1
  272. package/services/sac-localisation.service.d.ts +100 -94
  273. package/services/sac-localisation.service.d.ts.map +1 -1
  274. package/services/sac-validationkey.service.d.ts +59 -0
  275. package/services/sac-validationkey.service.d.ts.map +1 -0
  276. package/simpleangularcontrols-sac-common-16.0.0-rc.21.tgz +0 -0
  277. package/utilities/enums.d.ts +3 -1
  278. package/utilities/enums.d.ts.map +1 -1
  279. package/utilities/guid.d.ts +5 -0
  280. package/utilities/guid.d.ts.map +1 -0
  281. package/utilities/popuphelper.d.ts +84 -0
  282. package/utilities/popuphelper.d.ts.map +1 -0
  283. package/utilities/testingattribute.pipe.d.ts +16 -0
  284. package/utilities/testingattribute.pipe.d.ts.map +1 -0
  285. package/validation/equals.validator.d.ts +3 -0
  286. package/validation/equals.validator.d.ts.map +1 -0
  287. package/validation/isDateValid.d.ts.map +1 -1
  288. package/validation/mintextlength.validator.d.ts +3 -0
  289. package/validation/mintextlength.validator.d.ts.map +1 -0
  290. package/validation/notequals.validator.d.ts +3 -0
  291. package/validation/notequals.validator.d.ts.map +1 -0
  292. package/validation/validation.d.ts +70 -52
  293. package/validation/validation.d.ts.map +1 -1
  294. package/controls/treeview/ngtreeitemaction.d.ts +0 -44
  295. package/controls/treeview/ngtreeitemaction.d.ts.map +0 -1
  296. package/controls/treeview/treeviewchild.d.ts +0 -16
  297. package/controls/treeview/treeviewchild.d.ts.map +0 -1
  298. package/esm2022/controls/treeview/ngtreeitemaction.mjs +0 -63
  299. package/esm2022/controls/treeview/treeviewchild.mjs +0 -22
  300. package/esm2022/validation/minlength.validator.mjs +0 -21
  301. package/simpleangularcontrols-sac-common-16.0.0-rc.2.tgz +0 -0
  302. package/validation/minlength.validator.d.ts +0 -3
  303. package/validation/minlength.validator.d.ts.map +0 -1
@@ -1,174 +1,93 @@
1
- import { Directive, Input } from '@angular/core';
2
- import * as moment_ from 'moment';
3
- import { Validation } from '../validation';
4
- import { SacBaseModelControl } from './basemodelcontrol';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../controls/form/form";
1
+ function cov_193zbqns7k(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/common/basedatetimecontrol.mjs";var hash="96c64c5f1f7c46705eb50731a9dde043a96feba5";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2022/common/basedatetimecontrol.mjs",statementMap:{"0":{start:{line:24,column:8},end:{line:24,column:36}},"1":{start:{line:25,column:8},end:{line:25,column:37}},"2":{start:{line:26,column:8},end:{line:26,column:27}},"3":{start:{line:31,column:8},end:{line:31,column:45}},"4":{start:{line:35,column:8},end:{line:35,column:33}},"5":{start:{line:39,column:8},end:{line:39,column:47}},"6":{start:{line:43,column:8},end:{line:43,column:35}},"7":{start:{line:47,column:8},end:{line:47,column:32}},"8":{start:{line:51,column:8},end:{line:51,column:41}},"9":{start:{line:55,column:8},end:{line:55,column:46}},"10":{start:{line:59,column:8},end:{line:59,column:32}},"11":{start:{line:63,column:8},end:{line:63,column:33}},"12":{start:{line:67,column:8},end:{line:67,column:32}},"13":{start:{line:71,column:8},end:{line:71,column:30}},"14":{start:{line:75,column:8},end:{line:75,column:29}},"15":{start:{line:81,column:8},end:{line:81,column:43}},"16":{start:{line:85,column:8},end:{line:85,column:103}},"17":{start:{line:89,column:8},end:{line:89,column:117}},"18":{start:{line:93,column:8},end:{line:93,column:91}},"19":{start:{line:97,column:8},end:{line:97,column:105}},"20":{start:{line:103,column:8},end:{line:112,column:10}},"21":{start:{line:105,column:12},end:{line:107,column:13}},"22":{start:{line:106,column:16},end:{line:106,column:23}},"23":{start:{line:108,column:12},end:{line:111,column:15}},"24":{start:{line:109,column:16},end:{line:109,column:39}},"25":{start:{line:110,column:16},end:{line:110,column:38}},"26":{start:{line:120,column:8},end:{line:122,column:9}},"27":{start:{line:121,column:12},end:{line:121,column:60}},"28":{start:{line:123,column:8},end:{line:123,column:38}},"29":{start:{line:124,column:8},end:{line:124,column:31}},"30":{start:{line:125,column:8},end:{line:125,column:35}},"31":{start:{line:128,column:8},end:{line:128,column:36}},"32":{start:{line:134,column:8},end:{line:140,column:9}},"33":{start:{line:135,column:12},end:{line:135,column:39}},"34":{start:{line:138,column:25},end:{line:138,column:52}},"35":{start:{line:139,column:12},end:{line:139,column:71}},"36":{start:{line:146,column:8},end:{line:146,column:32}},"37":{start:{line:147,column:19},end:{line:147,column:73}},"38":{start:{line:148,column:8},end:{line:148,column:58}},"39":{start:{line:149,column:8},end:{line:154,column:9}},"40":{start:{line:150,column:12},end:{line:150,column:39}},"41":{start:{line:153,column:12},end:{line:153,column:30}},"42":{start:{line:156,column:8},end:{line:156,column:35}},"43":{start:{line:157,column:8},end:{line:157,column:43}},"44":{start:{line:163,column:8},end:{line:163,column:159}},"45":{start:{line:169,column:21},end:{line:169,column:40}},"46":{start:{line:170,column:21},end:{line:170,column:42}},"47":{start:{line:171,column:22},end:{line:171,column:40}},"48":{start:{line:172,column:20},end:{line:172,column:37}},"49":{start:{line:173,column:22},end:{line:173,column:40}},"50":{start:{line:174,column:24},end:{line:174,column:44}},"51":{start:{line:175,column:24},end:{line:175,column:44}},"52":{start:{line:176,column:8},end:{line:176,column:80}},"53":{start:{line:182,column:8},end:{line:182,column:69}},"54":{start:{line:188,column:8},end:{line:188,column:68}},"55":{start:{line:192,column:8},end:{line:194,column:9}},"56":{start:{line:193,column:12},end:{line:193,column:74}},"57":{start:{line:196,column:8},end:{line:196,column:73}},"58":{start:{line:197,column:8},end:{line:197,column:73}},"59":{start:{line:203,column:8},end:{line:203,column:25}},"60":{start:{line:204,column:8},end:{line:204,column:33}},"61":{start:{line:206,column:8},end:{line:206,column:70}},"62":{start:{line:207,column:8},end:{line:207,column:70}},"63":{start:{line:213,column:8},end:{line:213,column:29}},"64":{start:{line:219,column:20},end:{line:219,column:24}},"65":{start:{line:220,column:8},end:{line:225,column:9}},"66":{start:{line:221,column:12},end:{line:221,column:140}},"67":{start:{line:222,column:12},end:{line:224,column:13}},"68":{start:{line:223,column:16},end:{line:223,column:29}},"69":{start:{line:226,column:8},end:{line:226,column:125}},"70":{start:{line:227,column:8},end:{line:229,column:9}},"71":{start:{line:228,column:12},end:{line:228,column:114}},"72":{start:{line:230,column:8},end:{line:230,column:21}},"73":{start:{line:236,column:8},end:{line:244,column:9}},"74":{start:{line:238,column:12},end:{line:238,column:37}},"75":{start:{line:240,column:12},end:{line:240,column:31}},"76":{start:{line:243,column:12},end:{line:243,column:55}},"77":{start:{line:245,column:8},end:{line:245,column:38}},"78":{start:{line:250,column:8},end:{line:250,column:82}},"79":{start:{line:253,column:8},end:{line:253,column:81}},"80":{start:{line:259,column:22},end:{line:259,column:179}},"81":{start:{line:261,column:8},end:{line:266,column:9}},"82":{start:{line:262,column:12},end:{line:262,column:34}},"83":{start:{line:265,column:12},end:{line:265,column:38}},"84":{start:{line:267,column:8},end:{line:286,column:9}},"85":{start:{line:270,column:16},end:{line:270,column:86}},"86":{start:{line:271,column:16},end:{line:271,column:22}},"87":{start:{line:274,column:16},end:{line:277,column:89}},"88":{start:{line:279,column:16},end:{line:281,column:17}},"89":{start:{line:280,column:20},end:{line:280,column:56}},"90":{start:{line:282,column:16},end:{line:282,column:22}},"91":{start:{line:284,column:16},end:{line:284,column:41}},"92":{start:{line:285,column:16},end:{line:285,column:22}},"93":{start:{line:287,column:8},end:{line:287,column:21}},"94":{start:{line:293,column:22},end:{line:293,column:178}},"95":{start:{line:294,column:8},end:{line:294,column:33}},"96":{start:{line:295,column:8},end:{line:303,column:9}},"97":{start:{line:298,column:16},end:{line:298,column:68}},"98":{start:{line:299,column:16},end:{line:299,column:22}},"99":{start:{line:301,column:16},end:{line:301,column:40}},"100":{start:{line:302,column:16},end:{line:302,column:22}},"101":{start:{line:304,column:8},end:{line:304,column:21}},"102":{start:{line:308,column:8},end:{line:310,column:9}},"103":{start:{line:309,column:12},end:{line:309,column:81}},"104":{start:{line:312,column:13},end:{line:312,column:301}},"105":{start:{line:313,column:13},end:{line:313,column:940}},"106":{start:{line:316,column:0},end:{line:346,column:20}},"107":{start:{line:318,column:42},end:{line:318,column:164}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:23,column:4},end:{line:23,column:5}},loc:{start:{line:23,column:57},end:{line:113,column:5}},line:23},"1":{name:"(anonymous_1)",decl:{start:{line:103,column:31},end:{line:103,column:32}},loc:{start:{line:103,column:37},end:{line:112,column:9}},line:103},"2":{name:"(anonymous_2)",decl:{start:{line:108,column:23},end:{line:108,column:24}},loc:{start:{line:108,column:29},end:{line:111,column:13}},line:108},"3":{name:"(anonymous_3)",decl:{start:{line:119,column:4},end:{line:119,column:5}},loc:{start:{line:119,column:23},end:{line:126,column:5}},line:119},"4":{name:"(anonymous_4)",decl:{start:{line:127,column:4},end:{line:127,column:5}},loc:{start:{line:127,column:18},end:{line:129,column:5}},line:127},"5":{name:"(anonymous_5)",decl:{start:{line:133,column:4},end:{line:133,column:5}},loc:{start:{line:133,column:22},end:{line:141,column:5}},line:133},"6":{name:"(anonymous_6)",decl:{start:{line:145,column:4},end:{line:145,column:5}},loc:{start:{line:145,column:23},end:{line:158,column:5}},line:145},"7":{name:"(anonymous_7)",decl:{start:{line:162,column:4},end:{line:162,column:5}},loc:{start:{line:162,column:24},end:{line:164,column:5}},line:162},"8":{name:"(anonymous_8)",decl:{start:{line:168,column:4},end:{line:168,column:5}},loc:{start:{line:168,column:23},end:{line:177,column:5}},line:168},"9":{name:"(anonymous_9)",decl:{start:{line:181,column:4},end:{line:181,column:5}},loc:{start:{line:181,column:22},end:{line:183,column:5}},line:181},"10":{name:"(anonymous_10)",decl:{start:{line:187,column:4},end:{line:187,column:5}},loc:{start:{line:187,column:21},end:{line:189,column:5}},line:187},"11":{name:"(anonymous_11)",decl:{start:{line:190,column:4},end:{line:190,column:5}},loc:{start:{line:190,column:18},end:{line:198,column:5}},line:190},"12":{name:"(anonymous_12)",decl:{start:{line:202,column:4},end:{line:202,column:5}},loc:{start:{line:202,column:15},end:{line:208,column:5}},line:202},"13":{name:"(anonymous_13)",decl:{start:{line:212,column:4},end:{line:212,column:5}},loc:{start:{line:212,column:22},end:{line:214,column:5}},line:212},"14":{name:"(anonymous_14)",decl:{start:{line:218,column:4},end:{line:218,column:5}},loc:{start:{line:218,column:20},end:{line:231,column:5}},line:218},"15":{name:"(anonymous_15)",decl:{start:{line:235,column:4},end:{line:235,column:5}},loc:{start:{line:235,column:22},end:{line:246,column:5}},line:235},"16":{name:"(anonymous_16)",decl:{start:{line:249,column:4},end:{line:249,column:5}},loc:{start:{line:249,column:21},end:{line:251,column:5}},line:249},"17":{name:"(anonymous_17)",decl:{start:{line:252,column:4},end:{line:252,column:5}},loc:{start:{line:252,column:20},end:{line:254,column:5}},line:252},"18":{name:"(anonymous_18)",decl:{start:{line:258,column:4},end:{line:258,column:5}},loc:{start:{line:258,column:22},end:{line:288,column:5}},line:258},"19":{name:"(anonymous_19)",decl:{start:{line:292,column:4},end:{line:292,column:5}},loc:{start:{line:292,column:21},end:{line:305,column:5}},line:292},"20":{name:"(anonymous_20)",decl:{start:{line:306,column:4},end:{line:306,column:5}},loc:{start:{line:306,column:24},end:{line:311,column:5}},line:306},"21":{name:"(anonymous_21)",decl:{start:{line:318,column:28},end:{line:318,column:29}},loc:{start:{line:318,column:40},end:{line:318,column:166}},line:318}},branchMap:{"0":{loc:{start:{line:105,column:12},end:{line:107,column:13}},type:"if",locations:[{start:{line:105,column:12},end:{line:107,column:13}},{start:{line:105,column:12},end:{line:107,column:13}}],line:105},"1":{loc:{start:{line:120,column:8},end:{line:122,column:9}},type:"if",locations:[{start:{line:120,column:8},end:{line:122,column:9}},{start:{line:120,column:8},end:{line:122,column:9}}],line:120},"2":{loc:{start:{line:134,column:8},end:{line:140,column:9}},type:"if",locations:[{start:{line:134,column:8},end:{line:140,column:9}},{start:{line:134,column:8},end:{line:140,column:9}}],line:134},"3":{loc:{start:{line:149,column:8},end:{line:154,column:9}},type:"if",locations:[{start:{line:149,column:8},end:{line:154,column:9}},{start:{line:149,column:8},end:{line:154,column:9}}],line:149},"4":{loc:{start:{line:192,column:8},end:{line:194,column:9}},type:"if",locations:[{start:{line:192,column:8},end:{line:194,column:9}},{start:{line:192,column:8},end:{line:194,column:9}}],line:192},"5":{loc:{start:{line:192,column:12},end:{line:192,column:69}},type:"binary-expr",locations:[{start:{line:192,column:12},end:{line:192,column:30}},{start:{line:192,column:34},end:{line:192,column:69}}],line:192},"6":{loc:{start:{line:220,column:8},end:{line:225,column:9}},type:"if",locations:[{start:{line:220,column:8},end:{line:225,column:9}},{start:{line:220,column:8},end:{line:225,column:9}}],line:220},"7":{loc:{start:{line:220,column:12},end:{line:220,column:75}},type:"binary-expr",locations:[{start:{line:220,column:12},end:{line:220,column:37}},{start:{line:220,column:41},end:{line:220,column:75}}],line:220},"8":{loc:{start:{line:222,column:12},end:{line:224,column:13}},type:"if",locations:[{start:{line:222,column:12},end:{line:224,column:13}},{start:{line:222,column:12},end:{line:224,column:13}}],line:222},"9":{loc:{start:{line:227,column:8},end:{line:229,column:9}},type:"if",locations:[{start:{line:227,column:8},end:{line:229,column:9}},{start:{line:227,column:8},end:{line:229,column:9}}],line:227},"10":{loc:{start:{line:236,column:8},end:{line:244,column:9}},type:"if",locations:[{start:{line:236,column:8},end:{line:244,column:9}},{start:{line:236,column:8},end:{line:244,column:9}}],line:236},"11":{loc:{start:{line:236,column:12},end:{line:236,column:65}},type:"binary-expr",locations:[{start:{line:236,column:12},end:{line:236,column:24}},{start:{line:236,column:28},end:{line:236,column:42}},{start:{line:236,column:46},end:{line:236,column:65}}],line:236},"12":{loc:{start:{line:250,column:15},end:{line:250,column:81}},type:"cond-expr",locations:[{start:{line:250,column:34},end:{line:250,column:77}},{start:{line:250,column:80},end:{line:250,column:81}}],line:250},"13":{loc:{start:{line:253,column:15},end:{line:253,column:80}},type:"cond-expr",locations:[{start:{line:253,column:34},end:{line:253,column:76}},{start:{line:253,column:79},end:{line:253,column:80}}],line:253},"14":{loc:{start:{line:261,column:8},end:{line:266,column:9}},type:"if",locations:[{start:{line:261,column:8},end:{line:266,column:9}},{start:{line:261,column:8},end:{line:266,column:9}}],line:261},"15":{loc:{start:{line:267,column:8},end:{line:286,column:9}},type:"switch",locations:[{start:{line:268,column:12},end:{line:268,column:37}},{start:{line:269,column:12},end:{line:271,column:22}},{start:{line:272,column:12},end:{line:272,column:40}},{start:{line:273,column:12},end:{line:282,column:22}},{start:{line:283,column:12},end:{line:285,column:22}}],line:267},"16":{loc:{start:{line:279,column:16},end:{line:281,column:17}},type:"if",locations:[{start:{line:279,column:16},end:{line:281,column:17}},{start:{line:279,column:16},end:{line:281,column:17}}],line:279},"17":{loc:{start:{line:295,column:8},end:{line:303,column:9}},type:"switch",locations:[{start:{line:296,column:12},end:{line:296,column:38}},{start:{line:297,column:12},end:{line:299,column:22}},{start:{line:300,column:12},end:{line:302,column:22}}],line:295},"18":{loc:{start:{line:308,column:8},end:{line:310,column:9}},type:"if",locations:[{start:{line:308,column:8},end:{line:310,column:9}},{start:{line:308,column:8},end:{line:310,column:9}}],line:308}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0,0,0,0],"16":[0,0],"17":[0,0,0],"18":[0,0]},inputSourceMap:{version:3,file:"basedatetimecontrol.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/common/basedatetimecontrol.ts"],names:[],mappings:"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",sourcesContent:["import { SacFormLayoutCommon } from '../controls/layout/formlayout';\nimport { IDateTimeControl } from '../interfaces/idatetimecontrol';\nimport { TooltipPosition } from '../utilities/enums';\nimport { PopUpHelper } from '../utilities/popuphelper';\nimport { Validation } from '../validation';\nimport { CreateValidationError } from '../validation/validationerrorcreator';\nimport { SacBaseModelControl } from './basemodelcontrol';\nimport { ChangeDetectorRef, Directive, ElementRef, Injector, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport * as moment_ from 'moment';\n\n/**\n * Base Klasse f\xFCr Date/Time Controls\n */\n@Directive()\nexport abstract class SacBaseDateTimeControl extends SacBaseModelControl<Date> implements OnInit, OnDestroy {\n // #region Properties\n\n /**\n * Helper class to display tooltip on correct position\n */\n private readonly popupHelper: PopUpHelper = new PopUpHelper();\n\n /**\n * das property enthielt das Value als string. Default ist ''\n */\n protected _valueAsString = '';\n\n /**\n * Containers for the datetime picker\n */\n protected pickercontainer: ElementRef<HTMLElement>;\n\n /**\n * Property for enum in Angular HTML template\n */\n public TooltipPosition = TooltipPosition;\n\n /**\n * Definiert ob der Date Selector angezeigt wird\n */\n public _showselector: boolean = false;\n\n /**\n * Reference to imask directive in any datetime controls\n */\n @ViewChild(IMaskDirective, { static: false })\n public iMask: IMaskDirective<any>;\n\n /**\n * Definiert das Control als Required\n */\n @Input() public isrequired: boolean = false;\n\n /**\n * Moment JS Instance\n */\n public moment = moment_['default'];\n\n /**\n * Arrow Item of Picker Element. Required to set the position of arrow correctly\n */\n public pickerPosition = TooltipPosition;\n @ViewChild('pickerarrow', { static: false })\n public pickerarrow: ElementRef<HTMLElement> | null;\n\n /**\n * Name of the container for content (e.g. icon) on which the tooltip is displayed.\n */\n @ViewChild('pickerbutton', { static: true })\n public pickerbutton: ElementRef<HTMLElement>;\n\n /**\n * TextBox Placeholder\n */\n @Input() public placeholder: string = null;\n\n /**\n * Position of the picker arrow at the left\n */\n public posArrowLeft: number | null = null;\n\n /**\n * Position of the picker arrow at the top\n */\n public posArrowTop: number | null = null;\n\n /**\n * Position of the picker at the left\n */\n public posPopupLeft: number = 0;\n\n /**\n * Position of the picker at the top\n */\n public posPopupTop: number = 0;\n\n /**\n * Position of the datetime picker. Values: left|top|right|bottom|auto\n *\n * Value 'auto' can be combined with another value.\n */\n @Input()\n public position: string = 'bottomend|topend';\n\n /**\n * Resource Key f\xFCr Validation Message DateTimeFormat bei Control\n */\n @Input() public validationmessagedatetimeformat: string = this.validationKeyService.ValidationErrorDatetimeFormat;\n\n /**\n * Resource Key f\xFCr Validation Message DateTimeFormat in Validation Summary\n */\n @Input() public validationmessagedatetimeformatsummary: string =\n this.validationKeyService.ValidationErrorSummaryDatetimeFormat;\n\n /**\n * Resource Key f\xFCr Validation Message Required bei Control\n */\n @Input() public validationmessagerequired: string = this.validationKeyService.ValidationErrorRequired;\n\n /**\n * Resource Key f\xFCr Validation Message Required in Validation Summary\n */\n @Input() public validationmessagerequiredsummary: string = this.validationKeyService.ValidationErrorSummaryRequired;\n\n // #endregion Properties\n\n // #region Constructors\n\n /**\n * Constructor\n * @param formlayout SacFormLayoutCommon to define scoped layout settings\n * @param injector Injector for injecting services\n * @param elementRef reference to html element\n */\n constructor(\n formlayout: SacFormLayoutCommon,\n injector: Injector,\n protected elementRef: ElementRef,\n private readonly cdRef: ChangeDetectorRef\n ) {\n super(formlayout, injector);\n }\n\n // #endregion Constructors\n\n // #region Public Getters And Setters\n\n /**\n * Setter for the name of the container for the tooltip. Is required as the tooltip can be hidden via ngIf.\n */\n @ViewChild('picker', { static: false })\n public set picker(picker: ElementRef) {\n if (picker !== undefined) {\n document.body.appendChild(picker.nativeElement);\n }\n\n this.pickercontainer = picker;\n this.onContentChange();\n this.cdRef.detectChanges();\n }\n\n public get tooltop(): ElementRef {\n return this.pickercontainer;\n }\n\n /**\n * getter f\xFCr valuestring\n */\n public get valuestring(): string {\n if (this.value === null) {\n return this._valueAsString;\n } else {\n const date = this.moment.utc(this.value);\n return date.local().format(this.GetDateTimeFormatString());\n }\n }\n\n /**\n * Das Input bekommt das value von typ string\n */\n @Input()\n public set valuestring(v: string) {\n this._valueAsString = v;\n let date: moment_.Moment = this.moment(v, [this.GetDateTimeFormatString()], true);\n\n date = this.ModifyParsedDateTimeValue(date).utc();\n\n if (date.isValid()) {\n this.value = date.toDate();\n } else {\n this.value = null;\n }\n\n // update imaks reference\n this.cdRef.detectChanges();\n this.iMask.maskRef.updateControl();\n }\n\n // #endregion Public Getters And Setters\n\n // #region Public Methods\n\n /**\n * Die methode returns dateTime in string\n */\n public abstract GetDateTimeFormatString(): string;\n\n /**\n * Returns the position of the tooltip\n */\n public GetPickerPosition(): TooltipPosition {\n return this.popupHelper.getDisplayPosition(\n this.pickerbutton,\n this.pickercontainer,\n this.getArrowWidth(),\n this.getArrowHeight(),\n this.position,\n false\n );\n }\n\n /**\n * Die methode modifiziert das eingegebene Value von typ Moment\n */\n public abstract ModifyParsedDateTimeValue(v: moment_.Moment): moment_.Moment;\n\n /**\n * JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann\n */\n public getDate(timestamp): moment.Moment {\n const date = new Date(timestamp);\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const day = date.getUTCDate();\n const hours = date.getUTCHours();\n const minutes = date.getUTCMinutes();\n const seconds = date.getUTCSeconds();\n\n return this.moment(Date.UTC(year, month, day, hours, minutes, seconds));\n }\n\n /**\n * Calculates the height of the tooltip\n */\n public getPickerHeight(): number {\n return this.popupHelper.getPopupHeight(this.pickercontainer);\n }\n\n /**\n * Calculates the width of the picker\n */\n public getPickerWidth(): number {\n return this.popupHelper.getPopupWidth(this.pickercontainer);\n }\n\n public ngOnDestroy(): void {\n // Remove Picker if is visible\n if (this._showselector && this.pickercontainer?.nativeElement) {\n document.body.removeChild(this.pickercontainer.nativeElement);\n }\n\n // Unregister Event Listener\n window.removeEventListener('scroll', this.onContentChange, true);\n window.removeEventListener('resize', this.onContentChange, true);\n }\n\n /**\n * Init Event\n */\n public ngOnInit(): void {\n super.ngOnInit();\n this.setDateTimeFormat();\n\n // Register Event Listener\n window.addEventListener('scroll', this.onContentChange, true);\n window.addEventListener('resize', this.onContentChange, true);\n }\n\n /**\n * setzt das value von typ string zu property valuestring\n */\n public setValueString(v: string) {\n this.valuestring = v;\n }\n\n /**\n * Validator\n */\n public validateData(c: AbstractControl): ValidationErrors | null {\n let error: ValidationErrors | null = null;\n\n if (this.valuestring !== null && this.valuestring.indexOf('_') >= 0) {\n error = CreateValidationError(\n 'invalidtype',\n this.validationmessagedatetimeformat,\n this.validationmessagedatetimeformatsummary\n );\n\n if (error) {\n return error;\n }\n }\n\n error = Validation.isValidDate(\n this.validationmessagedatetimeformat,\n this.validationmessagedatetimeformatsummary\n )(c);\n\n if (this.isrequired) {\n error = Validation.required(this.validationmessagerequired, this.validationmessagerequiredsummary)(c);\n }\n\n return error;\n }\n\n /**\n * Overwrite WriteValue to Set correct Date Object\n */\n public writeValue(value: Date | string) {\n if (value === '' || value === null || value === undefined) {\n // Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.\n this._valueAsString = '';\n // Set Internal Property\n this._value = null;\n } else {\n this._value = this.getDate(value).toDate();\n }\n\n super.writeValue(this._value);\n }\n\n // #endregion Public Methods\n\n // #region Protected Methods\n\n protected getArrowHeight(): number {\n return this.pickerarrow ? this.pickerarrow.nativeElement.offsetHeight : 0;\n }\n\n protected getArrowWidth(): number {\n return this.pickerarrow ? this.pickerarrow.nativeElement.offsetWidth : 0;\n }\n\n /**\n * Calculates the position of the tooltip from links\n */\n protected getPositionLeft(): number {\n const value = this.popupHelper.getPositionLeft(\n this.pickerbutton,\n this.pickercontainer,\n this.elementRef,\n this.getArrowWidth(),\n this.getArrowHeight(),\n this.position,\n false\n );\n\n // Ensure that pop-ups never appear outside the visible area on the left\n if (value < 0) {\n this.posPopupLeft = 5;\n } else {\n this.posPopupLeft = value;\n }\n\n switch (this.GetPickerPosition()) {\n case TooltipPosition.top:\n case TooltipPosition.bottom:\n this.posArrowLeft = this.getPickerWidth() / 2 - -this.getArrowWidth();\n break;\n case TooltipPosition.topend:\n case TooltipPosition.bottomend:\n this.posArrowLeft =\n this.getPickerWidth() -\n this.getArrowWidth() / 2 -\n this.popupHelper.getContainerWidth(this.pickerbutton, false) / 2;\n\n // Correction by Arrow if popup is outside the left margin\n if (value < 0) {\n this.posArrowLeft -= value * -1 + 5;\n }\n break;\n default:\n this.posArrowLeft = null;\n break;\n }\n\n return value;\n }\n\n /**\n * Calculates the position of the tooltip from the top\n */\n protected getPositionTop(): number {\n const value = this.popupHelper.getPositionTop(\n this.pickerbutton,\n this.pickercontainer,\n this.elementRef,\n this.getArrowWidth(),\n this.getArrowHeight(),\n this.position,\n false\n );\n this.posPopupTop = value;\n\n switch (this.GetPickerPosition()) {\n case TooltipPosition.left:\n case TooltipPosition.right:\n this.posArrowTop = this.getPickerHeight() / 2 - 6.5;\n break;\n default:\n this.posArrowTop = null;\n break;\n }\n\n return value;\n }\n\n // #endregion Protected Methods\n\n // #region Private Methods\n\n /**\n * method if content has changed and proportions need to be reset in the UI.\n */\n private readonly onContentChange = (): void => {\n // Do nothing if is not visible\n if (!this._showselector) {\n return;\n }\n\n setTimeout(() => {\n this.getPositionLeft();\n this.getPositionTop();\n });\n };\n\n private setDateTimeFormat(): void {\n // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686\n if (this.ngControl) {\n (this.ngControl as unknown as IDateTimeControl).datetimeformatstring = this.GetDateTimeFormatString();\n }\n }\n\n // #endregion Private Methods\n}\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"96c64c5f1f7c46705eb50731a9dde043a96feba5"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
+ cov_193zbqns7k=function(){return actualCoverage;};}return actualCoverage;}cov_193zbqns7k();import{TooltipPosition}from'../utilities/enums';import{PopUpHelper}from'../utilities/popuphelper';import{Validation}from'../validation';import{CreateValidationError}from'../validation/validationerrorcreator';import{SacBaseModelControl}from'./basemodelcontrol';import{Directive,Input,ViewChild}from'@angular/core';import{IMaskDirective}from'angular-imask';import*as moment_ from'moment';import*as i0 from"@angular/core";import*as i1 from"../controls/layout/formlayout";/**
3
+ * Base Klasse für Date/Time Controls
4
+ */class SacBaseDateTimeControl extends SacBaseModelControl{// #endregion Properties
5
+ // #region Constructors
7
6
  /**
8
- * Moment
9
- */
10
- const moment = moment_['default'];
7
+ * Constructor
8
+ * @param formlayout SacFormLayoutCommon to define scoped layout settings
9
+ * @param injector Injector for injecting services
10
+ * @param elementRef reference to html element
11
+ */constructor(formlayout,injector,elementRef,cdRef){cov_193zbqns7k().f[0]++;cov_193zbqns7k().s[0]++;super(formlayout,injector);cov_193zbqns7k().s[1]++;this.elementRef=elementRef;cov_193zbqns7k().s[2]++;this.cdRef=cdRef;// #region Properties
11
12
  /**
12
- * Base Klasse für Date/Time Controls
13
- */
14
- class SacBaseDateTimeControl extends SacBaseModelControl {
15
- // #region Constructor
16
- /**
17
- * Konstruktor
18
- * @param parent typ SacFormCommon
19
- * @param injector typ Injector
20
- * @param _elementRef typ ElementRef
21
- */
22
- constructor(parent, injector, _elementRef) {
23
- super(parent, injector);
24
- this._elementRef = _elementRef;
25
- //#region Abstract Methods
26
- /**
13
+ * Helper class to display tooltip on correct position
14
+ */cov_193zbqns7k().s[3]++;this.popupHelper=new PopUpHelper();/**
27
15
  * das property enthielt das Value als string. Default ist ''
28
- */
29
- this._valueAsString = '';
30
- /**
16
+ */cov_193zbqns7k().s[4]++;this._valueAsString='';/**
17
+ * Property for enum in Angular HTML template
18
+ */cov_193zbqns7k().s[5]++;this.TooltipPosition=TooltipPosition;/**
19
+ * Definiert ob der Date Selector angezeigt wird
20
+ */cov_193zbqns7k().s[6]++;this._showselector=false;/**
31
21
  * Definiert das Control als Required
32
- */
33
- this.isrequired = false;
34
- /**
22
+ */cov_193zbqns7k().s[7]++;this.isrequired=false;/**
23
+ * Moment JS Instance
24
+ */cov_193zbqns7k().s[8]++;this.moment=moment_['default'];/**
25
+ * Arrow Item of Picker Element. Required to set the position of arrow correctly
26
+ */cov_193zbqns7k().s[9]++;this.pickerPosition=TooltipPosition;/**
35
27
  * TextBox Placeholder
36
- */
37
- this.placeholder = null;
38
- /**
39
- * Resource Key für Validation Message Required bei Control
40
- */
41
- this.validationmessagerequired = 'VALIDATION_ERROR_REQUIRED';
42
- /**
43
- * Resource Key für Validation Message Required in Validation Summary
44
- */
45
- this.validationmessagerequiredsummary = 'VALIDATION_ERROR_SUMMARY_REQUIRED';
46
- /**
28
+ */cov_193zbqns7k().s[10]++;this.placeholder=null;/**
29
+ * Position of the picker arrow at the left
30
+ */cov_193zbqns7k().s[11]++;this.posArrowLeft=null;/**
31
+ * Position of the picker arrow at the top
32
+ */cov_193zbqns7k().s[12]++;this.posArrowTop=null;/**
33
+ * Position of the picker at the left
34
+ */cov_193zbqns7k().s[13]++;this.posPopupLeft=0;/**
35
+ * Position of the picker at the top
36
+ */cov_193zbqns7k().s[14]++;this.posPopupTop=0;/**
37
+ * Position of the datetime picker. Values: left|top|right|bottom|auto
38
+ *
39
+ * Value 'auto' can be combined with another value.
40
+ */cov_193zbqns7k().s[15]++;this.position='bottomend|topend';/**
47
41
  * Resource Key für Validation Message DateTimeFormat bei Control
48
- */
49
- this.validationmessagedatetimeformat = 'VALIDATION_ERROR_DATETIMEFORMAT';
50
- /**
42
+ */cov_193zbqns7k().s[16]++;this.validationmessagedatetimeformat=this.validationKeyService.ValidationErrorDatetimeFormat;/**
51
43
  * Resource Key für Validation Message DateTimeFormat in Validation Summary
52
- */
53
- this.validationmessagedatetimeformatsummary = 'VALIDATION_ERROR_SUMMARY_DATETIMEFORMAT';
54
- }
55
- // #endregion
56
- /**
57
- * Init Event
58
- */
59
- ngOnInit() {
60
- super.ngOnInit();
61
- this.SetDateTimeFormat();
62
- }
63
- //#endregion
64
- //#region Variablen
65
- //#endregion
66
- // #region Properties
67
- //#endregion
68
- //#region ValueControlAccess
69
- /**
70
- * Overwrite WriteValue to Set correct Date Object
71
- */
72
- writeValue(value) {
73
- if (value === '' || value === null || value === undefined) {
74
- // Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.
75
- this._valueAsString = '';
76
- // Set Internal Property
77
- this._value = null;
78
- }
79
- else {
80
- this._value = this.getDate(value).toDate();
81
- }
82
- super.writeValue(this._value);
83
- }
84
- /**
85
- * JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann
86
- */
87
- getDate(timestamp) {
88
- const date = new Date(timestamp);
89
- const year = date.getUTCFullYear();
90
- const month = date.getUTCMonth();
91
- const day = date.getUTCDate();
92
- const hours = date.getUTCHours();
93
- const minutes = date.getUTCMinutes();
94
- const seconds = date.getUTCSeconds();
95
- return moment(Date.UTC(year, month, day, hours, minutes, seconds));
96
- }
97
- //#endregion
98
- // #region Value as String
99
- /**
100
- * Das Input bekommt das value von typ string
101
- */
102
- set valuestring(v) {
103
- this._valueAsString = v;
104
- let date = moment(v, [this.GetDateTimeFormatString()], true);
105
- date = this.ModifyParsedDateTimeValue(date).utc();
106
- if (date.isValid()) {
107
- this.value = date.toDate();
108
- }
109
- else {
110
- this.value = null;
111
- }
112
- }
113
- /**
44
+ */cov_193zbqns7k().s[17]++;this.validationmessagedatetimeformatsummary=this.validationKeyService.ValidationErrorSummaryDatetimeFormat;/**
45
+ * Resource Key für Validation Message Required bei Control
46
+ */cov_193zbqns7k().s[18]++;this.validationmessagerequired=this.validationKeyService.ValidationErrorRequired;/**
47
+ * Resource Key für Validation Message Required in Validation Summary
48
+ */cov_193zbqns7k().s[19]++;this.validationmessagerequiredsummary=this.validationKeyService.ValidationErrorSummaryRequired;// #endregion Protected Methods
49
+ // #region Private Methods
50
+ /**
51
+ * method if content has changed and proportions need to be reset in the UI.
52
+ */cov_193zbqns7k().s[20]++;this.onContentChange=()=>{cov_193zbqns7k().f[1]++;cov_193zbqns7k().s[21]++;// Do nothing if is not visible
53
+ if(!this._showselector){cov_193zbqns7k().b[0][0]++;cov_193zbqns7k().s[22]++;return;}else{cov_193zbqns7k().b[0][1]++;}cov_193zbqns7k().s[23]++;setTimeout(()=>{cov_193zbqns7k().f[2]++;cov_193zbqns7k().s[24]++;this.getPositionLeft();cov_193zbqns7k().s[25]++;this.getPositionTop();});};}// #endregion Constructors
54
+ // #region Public Getters And Setters
55
+ /**
56
+ * Setter for the name of the container for the tooltip. Is required as the tooltip can be hidden via ngIf.
57
+ */set picker(picker){cov_193zbqns7k().f[3]++;cov_193zbqns7k().s[26]++;if(picker!==undefined){cov_193zbqns7k().b[1][0]++;cov_193zbqns7k().s[27]++;document.body.appendChild(picker.nativeElement);}else{cov_193zbqns7k().b[1][1]++;}cov_193zbqns7k().s[28]++;this.pickercontainer=picker;cov_193zbqns7k().s[29]++;this.onContentChange();cov_193zbqns7k().s[30]++;this.cdRef.detectChanges();}get tooltop(){cov_193zbqns7k().f[4]++;cov_193zbqns7k().s[31]++;return this.pickercontainer;}/**
114
58
  * getter für valuestring
115
- */
116
- get valuestring() {
117
- if (this.value === null) {
118
- return this._valueAsString;
119
- }
120
- else {
121
- const date = moment.utc(this.value);
122
- return date.local().format(this.GetDateTimeFormatString());
123
- }
124
- }
125
- /**
59
+ */get valuestring(){cov_193zbqns7k().f[5]++;cov_193zbqns7k().s[32]++;if(this.value===null){cov_193zbqns7k().b[2][0]++;cov_193zbqns7k().s[33]++;return this._valueAsString;}else{cov_193zbqns7k().b[2][1]++;const date=(cov_193zbqns7k().s[34]++,this.moment.utc(this.value));cov_193zbqns7k().s[35]++;return date.local().format(this.GetDateTimeFormatString());}}/**
60
+ * Das Input bekommt das value von typ string
61
+ */set valuestring(v){cov_193zbqns7k().f[6]++;cov_193zbqns7k().s[36]++;this._valueAsString=v;let date=(cov_193zbqns7k().s[37]++,this.moment(v,[this.GetDateTimeFormatString()],true));cov_193zbqns7k().s[38]++;date=this.ModifyParsedDateTimeValue(date).utc();cov_193zbqns7k().s[39]++;if(date.isValid()){cov_193zbqns7k().b[3][0]++;cov_193zbqns7k().s[40]++;this.value=date.toDate();}else{cov_193zbqns7k().b[3][1]++;cov_193zbqns7k().s[41]++;this.value=null;}// update imaks reference
62
+ cov_193zbqns7k().s[42]++;this.cdRef.detectChanges();cov_193zbqns7k().s[43]++;this.iMask.maskRef.updateControl();}/**
63
+ * Returns the position of the tooltip
64
+ */GetPickerPosition(){cov_193zbqns7k().f[7]++;cov_193zbqns7k().s[44]++;return this.popupHelper.getDisplayPosition(this.pickerbutton,this.pickercontainer,this.getArrowWidth(),this.getArrowHeight(),this.position,false);}/**
65
+ * JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann
66
+ */getDate(timestamp){cov_193zbqns7k().f[8]++;const date=(cov_193zbqns7k().s[45]++,new Date(timestamp));const year=(cov_193zbqns7k().s[46]++,date.getUTCFullYear());const month=(cov_193zbqns7k().s[47]++,date.getUTCMonth());const day=(cov_193zbqns7k().s[48]++,date.getUTCDate());const hours=(cov_193zbqns7k().s[49]++,date.getUTCHours());const minutes=(cov_193zbqns7k().s[50]++,date.getUTCMinutes());const seconds=(cov_193zbqns7k().s[51]++,date.getUTCSeconds());cov_193zbqns7k().s[52]++;return this.moment(Date.UTC(year,month,day,hours,minutes,seconds));}/**
67
+ * Calculates the height of the tooltip
68
+ */getPickerHeight(){cov_193zbqns7k().f[9]++;cov_193zbqns7k().s[53]++;return this.popupHelper.getPopupHeight(this.pickercontainer);}/**
69
+ * Calculates the width of the picker
70
+ */getPickerWidth(){cov_193zbqns7k().f[10]++;cov_193zbqns7k().s[54]++;return this.popupHelper.getPopupWidth(this.pickercontainer);}ngOnDestroy(){cov_193zbqns7k().f[11]++;cov_193zbqns7k().s[55]++;// Remove Picker if is visible
71
+ if((cov_193zbqns7k().b[5][0]++,this._showselector)&&(cov_193zbqns7k().b[5][1]++,this.pickercontainer?.nativeElement)){cov_193zbqns7k().b[4][0]++;cov_193zbqns7k().s[56]++;document.body.removeChild(this.pickercontainer.nativeElement);}else{cov_193zbqns7k().b[4][1]++;}// Unregister Event Listener
72
+ cov_193zbqns7k().s[57]++;window.removeEventListener('scroll',this.onContentChange,true);cov_193zbqns7k().s[58]++;window.removeEventListener('resize',this.onContentChange,true);}/**
73
+ * Init Event
74
+ */ngOnInit(){cov_193zbqns7k().f[12]++;cov_193zbqns7k().s[59]++;super.ngOnInit();cov_193zbqns7k().s[60]++;this.setDateTimeFormat();// Register Event Listener
75
+ cov_193zbqns7k().s[61]++;window.addEventListener('scroll',this.onContentChange,true);cov_193zbqns7k().s[62]++;window.addEventListener('resize',this.onContentChange,true);}/**
126
76
  * setzt das value von typ string zu property valuestring
127
- */
128
- setValueString(v) {
129
- this.valuestring = v;
130
- }
131
- // #endregion
132
- // #region Private Methods
133
- SetDateTimeFormat() {
134
- // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
135
- if (this.ngControl) {
136
- this.ngControl.datetimeformatstring =
137
- this.GetDateTimeFormatString();
138
- }
139
- }
140
- // #endregion
141
- //#region Validation
142
- /**
77
+ */setValueString(v){cov_193zbqns7k().f[13]++;cov_193zbqns7k().s[63]++;this.valuestring=v;}/**
143
78
  * Validator
144
- */
145
- validateData(c) {
146
- let error = null;
147
- error = Validation.isValidDate(this.validationmessagedatetimeformat, this.validationmessagedatetimeformatsummary)(c);
148
- if (this.isrequired) {
149
- error = Validation.required(this.validationmessagerequired, this.validationmessagerequiredsummary)(c);
150
- }
151
- return error;
152
- }
153
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacBaseDateTimeControl, deps: [{ token: i1.SacFormCommon }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
154
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SacBaseDateTimeControl, inputs: { isrequired: "isrequired", placeholder: "placeholder", validationmessagerequired: "validationmessagerequired", validationmessagerequiredsummary: "validationmessagerequiredsummary", validationmessagedatetimeformat: "validationmessagedatetimeformat", validationmessagedatetimeformatsummary: "validationmessagedatetimeformatsummary", valuestring: "valuestring" }, usesInheritance: true, ngImport: i0 }); }
155
- }
156
- export { SacBaseDateTimeControl };
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacBaseDateTimeControl, decorators: [{
158
- type: Directive
159
- }], ctorParameters: function () { return [{ type: i1.SacFormCommon }, { type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { isrequired: [{
160
- type: Input
161
- }], placeholder: [{
162
- type: Input
163
- }], validationmessagerequired: [{
164
- type: Input
165
- }], validationmessagerequiredsummary: [{
166
- type: Input
167
- }], validationmessagedatetimeformat: [{
168
- type: Input
169
- }], validationmessagedatetimeformatsummary: [{
170
- type: Input
171
- }], valuestring: [{
172
- type: Input
173
- }] } });
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXdCLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUdsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFFekQ7O0dBRUc7QUFDSCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbEM7O0dBRUc7QUFDSCxNQUNzQixzQkFDcEIsU0FBUSxtQkFBeUI7SUFHakMsc0JBQXNCO0lBRXRCOzs7OztPQUtHO0lBQ0gsWUFDRSxNQUFxQixFQUNyQixRQUFrQixFQUNSLFdBQXVCO1FBRWpDLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFGZCxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQWVuQywwQkFBMEI7UUFFMUI7O1dBRUc7UUFDTyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUU5Qjs7V0FFRztRQUNNLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFckM7O1dBRUc7UUFDTSxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUVwQzs7V0FFRztRQUNNLDhCQUF5QixHQUFXLDJCQUEyQixDQUFDO1FBQ3pFOztXQUVHO1FBQ00scUNBQWdDLEdBQ3ZDLG1DQUFtQyxDQUFDO1FBRXRDOztXQUVHO1FBQ00sb0NBQStCLEdBQ3RDLGlDQUFpQyxDQUFDO1FBQ3BDOztXQUVHO1FBQ00sMkNBQXNDLEdBQzdDLHlDQUF5QyxDQUFDO0lBaEQ1QyxDQUFDO0lBRUQsYUFBYTtJQUViOztPQUVHO0lB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QUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBeUMsQ0FBQyxvQkFBb0I7Z0JBQ2xFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELGFBQWE7SUFFYixvQkFBb0I7SUFFcEI7O09BRUc7SUFDSCxZQUFZLENBQUMsQ0FBa0I7UUFDN0IsSUFBSSxLQUFLLEdBQTRCLElBQUksQ0FBQztRQUUxQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FDNUIsSUFBSSxDQUFDLCtCQUErQixFQUNwQyxJQUFJLENBQUMsc0NBQXNDLENBQzVDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQ3pCLElBQUksQ0FBQyx5QkFBeUIsRUFDOUIsSUFBSSxDQUFDLGdDQUFnQyxDQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBcE1tQixzQkFBc0I7bUdBQXRCLHNCQUFzQjs7U0FBdEIsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBRDNDLFNBQVM7b0pBeUNDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFLRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBSUcsZ0NBQWdDO3NCQUF4QyxLQUFLO2dCQU1HLCtCQUErQjtzQkFBdkMsS0FBSztnQkFLRyxzQ0FBc0M7c0JBQTlDLEtBQUs7Z0JBZ0VGLFdBQVc7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IFNhY0Zvcm1Db21tb24gfSBmcm9tICcuLi9jb250cm9scy9mb3JtL2Zvcm0nO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuL2Jhc2Vtb2RlbGNvbnRyb2wnO1xyXG5pbXBvcnQgeyBJRGF0ZVRpbWVDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pZGF0ZXRpbWVjb250cm9sJztcclxuLyoqXHJcbiAqIE1vbWVudFxyXG4gKi9cclxuY29uc3QgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBEYXRlL1RpbWUgQ29udHJvbHNcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZURhdGVUaW1lQ29udHJvbFxyXG4gIGV4dGVuZHMgU2FjQmFzZU1vZGVsQ29udHJvbDxEYXRlPlxyXG4gIGltcGxlbWVudHMgT25Jbml0XHJcbntcclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yXHJcblxyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogQHBhcmFtIHBhcmVudCB0eXAgU2FjRm9ybUNvbW1vblxyXG4gICAqIEBwYXJhbSBpbmplY3RvciB0eXAgSW5qZWN0b3JcclxuICAgKiBAcGFyYW0gX2VsZW1lbnRSZWYgdHlwIEVsZW1lbnRSZWZcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHBhcmVudDogU2FjRm9ybUNvbW1vbixcclxuICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByb3RlY3RlZCBfZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgc3VwZXIocGFyZW50LCBpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXQgRXZlbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLlNldERhdGVUaW1lRm9ybWF0KCk7XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gQWJzdHJhY3QgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBkYXMgcHJvcGVydHkgZW50aGllbHQgZGFzIFZhbHVlIGFscyBzdHJpbmcuIERlZmF1bHQgaXN0ICcnXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIF92YWx1ZUFzU3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRleHRCb3ggUGxhY2Vob2xkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXHJcbiAgICovXHJcbiAgQElucHV0KCkgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gJ1ZBTElEQVRJT05fRVJST1JfUkVRVUlSRUQnO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKi9cclxuICBASW5wdXQoKSB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeTogc3RyaW5nID1cclxuICAgICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfUkVRVUlSRUQnO1xyXG5cclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgYmVpIENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0OiBzdHJpbmcgPVxyXG4gICAgJ1ZBTElEQVRJT05fRVJST1JfREFURVRJTUVGT1JNQVQnO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKi9cclxuICBASW5wdXQoKSB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeTogc3RyaW5nID1cclxuICAgICdWQUxJREFUSU9OX0VSUk9SX1NVTU1BUllfREFURVRJTUVGT1JNQVQnO1xyXG5cclxuICAvKipcclxuICAgKiBEaWUgbWV0aG9kZSByZXR1cm5zIGRhdGVUaW1lIGluIHN0cmluZ1xyXG4gICAqL1xyXG4gIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogRGllIG1ldGhvZGUgbW9kaWZpemllcnQgZGFzIGVpbmdlZ2ViZW5lIFZhbHVlIHZvbiB0eXAgTW9tZW50XHJcbiAgICovXHJcbiAgYWJzdHJhY3QgTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZSh2OiBNb21lbnQpOiBNb21lbnQ7XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gVmFyaWFibGVuXHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBWYWx1ZUNvbnRyb2xBY2Nlc3NcclxuXHJcbiAgLyoqXHJcbiAgICogT3ZlcndyaXRlIFdyaXRlVmFsdWUgdG8gU2V0IGNvcnJlY3QgRGF0ZSBPYmplY3RcclxuICAgKi9cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gUmVzZXQgVmFsdWUgU3RyaW5nLCBkYW1pdCBiZWltIFVwZGF0ZSBkZXMgTW9kZWxzIGF1Y2ggZGFzIElucHV0IEZlbGQgZ2VsZWVydCB3aXJkLlxyXG4gICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gJyc7XHJcbiAgICAgIC8vIFNldCBJbnRlcm5hbCBQcm9wZXJ0eVxyXG4gICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZ2V0RGF0ZSh2YWx1ZSkudG9EYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3VwZXIud3JpdGVWYWx1ZSh0aGlzLl92YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBKU09OIERhdGUgU3RyaW5nIGluIGVpbiBVVEMgRGF0ZVRpbWUgT2JqZWN0IGtvbnZlcnRpZXJlbiwgd2VsY2hlcyB2b20gQ29udHJvbCB2ZXJ3ZW5kZXRlIHdlcmRlbiBrYW5uXHJcbiAgICovXHJcbiAgZ2V0RGF0ZSh0aW1lc3RhbXApIHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xyXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoID0gZGF0ZS5nZXRVVENNb250aCgpO1xyXG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXRVVENEYXRlKCk7XHJcbiAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0VVRDSG91cnMoKTtcclxuICAgIGNvbnN0IG1pbnV0ZXMgPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcclxuICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcclxuXHJcbiAgICByZXR1cm4gbW9tZW50KERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSk7XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8gI3JlZ2lvbiBWYWx1ZSBhcyBTdHJpbmdcclxuXHJcbiAgLyoqXHJcbiAgICogRGFzIElucHV0IGJla29tbXQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWVzdHJpbmcodjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gdjtcclxuICAgIGxldCBkYXRlOiBNb21lbnQgPSBtb21lbnQodiwgW3RoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKV0sIHRydWUpO1xyXG5cclxuICAgIGRhdGUgPSB0aGlzLk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUoZGF0ZSkudXRjKCk7XHJcblxyXG4gICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRlLnRvRGF0ZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBnZXR0ZXIgZsO8ciB2YWx1ZXN0cmluZ1xyXG4gICAqL1xyXG4gIGdldCB2YWx1ZXN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlQXNTdHJpbmc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50LnV0Yyh0aGlzLnZhbHVlKTtcclxuICAgICAgcmV0dXJuIGRhdGUubG9jYWwoKS5mb3JtYXQodGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHNldHp0IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZyB6dSBwcm9wZXJ0eSB2YWx1ZXN0cmluZ1xyXG4gICAqL1xyXG4gIHNldFZhbHVlU3RyaW5nKHY6IHN0cmluZykge1xyXG4gICAgdGhpcy52YWx1ZXN0cmluZyA9IHY7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcblxyXG4gIHByaXZhdGUgU2V0RGF0ZVRpbWVGb3JtYXQoKTogdm9pZCB7XHJcbiAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxyXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElEYXRlVGltZUNvbnRyb2wpLmRhdGV0aW1lZm9ybWF0c3RyaW5nID1cclxuICAgICAgICB0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBWYWxpZGF0aW9uXHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvclxyXG4gICAqL1xyXG4gIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBlcnJvciA9IFZhbGlkYXRpb24uaXNWYWxpZERhdGUoXHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcclxuICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxyXG4gICAgKShjKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XHJcbiAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZChcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeVxyXG4gICAgICApKGMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvcjtcclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG59XHJcbiJdfQ==
79
+ */validateData(c){cov_193zbqns7k().f[14]++;let error=(cov_193zbqns7k().s[64]++,null);cov_193zbqns7k().s[65]++;if((cov_193zbqns7k().b[7][0]++,this.valuestring!==null)&&(cov_193zbqns7k().b[7][1]++,this.valuestring.indexOf('_')>=0)){cov_193zbqns7k().b[6][0]++;cov_193zbqns7k().s[66]++;error=CreateValidationError('invalidtype',this.validationmessagedatetimeformat,this.validationmessagedatetimeformatsummary);cov_193zbqns7k().s[67]++;if(error){cov_193zbqns7k().b[8][0]++;cov_193zbqns7k().s[68]++;return error;}else{cov_193zbqns7k().b[8][1]++;}}else{cov_193zbqns7k().b[6][1]++;}cov_193zbqns7k().s[69]++;error=Validation.isValidDate(this.validationmessagedatetimeformat,this.validationmessagedatetimeformatsummary)(c);cov_193zbqns7k().s[70]++;if(this.isrequired){cov_193zbqns7k().b[9][0]++;cov_193zbqns7k().s[71]++;error=Validation.required(this.validationmessagerequired,this.validationmessagerequiredsummary)(c);}else{cov_193zbqns7k().b[9][1]++;}cov_193zbqns7k().s[72]++;return error;}/**
80
+ * Overwrite WriteValue to Set correct Date Object
81
+ */writeValue(value){cov_193zbqns7k().f[15]++;cov_193zbqns7k().s[73]++;if((cov_193zbqns7k().b[11][0]++,value==='')||(cov_193zbqns7k().b[11][1]++,value===null)||(cov_193zbqns7k().b[11][2]++,value===undefined)){cov_193zbqns7k().b[10][0]++;cov_193zbqns7k().s[74]++;// Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.
82
+ this._valueAsString='';// Set Internal Property
83
+ cov_193zbqns7k().s[75]++;this._value=null;}else{cov_193zbqns7k().b[10][1]++;cov_193zbqns7k().s[76]++;this._value=this.getDate(value).toDate();}cov_193zbqns7k().s[77]++;super.writeValue(this._value);}// #endregion Public Methods
84
+ // #region Protected Methods
85
+ getArrowHeight(){cov_193zbqns7k().f[16]++;cov_193zbqns7k().s[78]++;return this.pickerarrow?(cov_193zbqns7k().b[12][0]++,this.pickerarrow.nativeElement.offsetHeight):(cov_193zbqns7k().b[12][1]++,0);}getArrowWidth(){cov_193zbqns7k().f[17]++;cov_193zbqns7k().s[79]++;return this.pickerarrow?(cov_193zbqns7k().b[13][0]++,this.pickerarrow.nativeElement.offsetWidth):(cov_193zbqns7k().b[13][1]++,0);}/**
86
+ * Calculates the position of the tooltip from links
87
+ */getPositionLeft(){cov_193zbqns7k().f[18]++;const value=(cov_193zbqns7k().s[80]++,this.popupHelper.getPositionLeft(this.pickerbutton,this.pickercontainer,this.elementRef,this.getArrowWidth(),this.getArrowHeight(),this.position,false));// Ensure that pop-ups never appear outside the visible area on the left
88
+ cov_193zbqns7k().s[81]++;if(value<0){cov_193zbqns7k().b[14][0]++;cov_193zbqns7k().s[82]++;this.posPopupLeft=5;}else{cov_193zbqns7k().b[14][1]++;cov_193zbqns7k().s[83]++;this.posPopupLeft=value;}cov_193zbqns7k().s[84]++;switch(this.GetPickerPosition()){case TooltipPosition.top:cov_193zbqns7k().b[15][0]++;case TooltipPosition.bottom:cov_193zbqns7k().b[15][1]++;cov_193zbqns7k().s[85]++;this.posArrowLeft=this.getPickerWidth()/2- -this.getArrowWidth();cov_193zbqns7k().s[86]++;break;case TooltipPosition.topend:cov_193zbqns7k().b[15][2]++;case TooltipPosition.bottomend:cov_193zbqns7k().b[15][3]++;cov_193zbqns7k().s[87]++;this.posArrowLeft=this.getPickerWidth()-this.getArrowWidth()/2-this.popupHelper.getContainerWidth(this.pickerbutton,false)/2;// Correction by Arrow if popup is outside the left margin
89
+ cov_193zbqns7k().s[88]++;if(value<0){cov_193zbqns7k().b[16][0]++;cov_193zbqns7k().s[89]++;this.posArrowLeft-=value*-1+5;}else{cov_193zbqns7k().b[16][1]++;}cov_193zbqns7k().s[90]++;break;default:cov_193zbqns7k().b[15][4]++;cov_193zbqns7k().s[91]++;this.posArrowLeft=null;cov_193zbqns7k().s[92]++;break;}cov_193zbqns7k().s[93]++;return value;}/**
90
+ * Calculates the position of the tooltip from the top
91
+ */getPositionTop(){cov_193zbqns7k().f[19]++;const value=(cov_193zbqns7k().s[94]++,this.popupHelper.getPositionTop(this.pickerbutton,this.pickercontainer,this.elementRef,this.getArrowWidth(),this.getArrowHeight(),this.position,false));cov_193zbqns7k().s[95]++;this.posPopupTop=value;cov_193zbqns7k().s[96]++;switch(this.GetPickerPosition()){case TooltipPosition.left:cov_193zbqns7k().b[17][0]++;case TooltipPosition.right:cov_193zbqns7k().b[17][1]++;cov_193zbqns7k().s[97]++;this.posArrowTop=this.getPickerHeight()/2-6.5;cov_193zbqns7k().s[98]++;break;default:cov_193zbqns7k().b[17][2]++;cov_193zbqns7k().s[99]++;this.posArrowTop=null;cov_193zbqns7k().s[100]++;break;}cov_193zbqns7k().s[101]++;return value;}setDateTimeFormat(){cov_193zbqns7k().f[20]++;cov_193zbqns7k().s[102]++;// HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
92
+ if(this.ngControl){cov_193zbqns7k().b[18][0]++;cov_193zbqns7k().s[103]++;this.ngControl.datetimeformatstring=this.GetDateTimeFormatString();}else{cov_193zbqns7k().b[18][1]++;}}static{cov_193zbqns7k().s[104]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacBaseDateTimeControl,deps:[{token:i1.SacFormLayoutCommon},{token:i0.Injector},{token:i0.ElementRef},{token:i0.ChangeDetectorRef}],target:i0.ɵɵFactoryTarget.Directive});}static{cov_193zbqns7k().s[105]++;this.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"16.2.12",type:SacBaseDateTimeControl,inputs:{isrequired:"isrequired",placeholder:"placeholder",position:"position",validationmessagedatetimeformat:"validationmessagedatetimeformat",validationmessagedatetimeformatsummary:"validationmessagedatetimeformatsummary",validationmessagerequired:"validationmessagerequired",validationmessagerequiredsummary:"validationmessagerequiredsummary",valuestring:"valuestring"},viewQueries:[{propertyName:"iMask",first:true,predicate:IMaskDirective,descendants:true},{propertyName:"pickerarrow",first:true,predicate:["pickerarrow"],descendants:true},{propertyName:"pickerbutton",first:true,predicate:["pickerbutton"],descendants:true,static:true},{propertyName:"picker",first:true,predicate:["picker"],descendants:true}],usesInheritance:true,ngImport:i0});}}export{SacBaseDateTimeControl};cov_193zbqns7k().s[106]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacBaseDateTimeControl,decorators:[{type:Directive}],ctorParameters:function(){cov_193zbqns7k().f[21]++;cov_193zbqns7k().s[107]++;return[{type:i1.SacFormLayoutCommon},{type:i0.Injector},{type:i0.ElementRef},{type:i0.ChangeDetectorRef}];},propDecorators:{iMask:[{type:ViewChild,args:[IMaskDirective,{static:false}]}],isrequired:[{type:Input}],pickerarrow:[{type:ViewChild,args:['pickerarrow',{static:false}]}],pickerbutton:[{type:ViewChild,args:['pickerbutton',{static:true}]}],placeholder:[{type:Input}],position:[{type:Input}],validationmessagedatetimeformat:[{type:Input}],validationmessagedatetimeformatsummary:[{type:Input}],validationmessagerequired:[{type:Input}],validationmessagerequiredsummary:[{type:Input}],picker:[{type:ViewChild,args:['picker',{static:false}]}],valuestring:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQXFCLFNBQVMsRUFBd0IsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQzs7O0FBRWxDOztHQUVHO0FBQ0gsTUFDc0Isc0JBQXVCLFNBQVEsbUJBQXlCO0lBK0cxRSx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7OztPQUtHO0lBQ0gsWUFDSSxVQUErQixFQUMvQixRQUFrQixFQUNSLFVBQXNCLEVBQ2YsS0FBd0I7UUFFekMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUhsQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUE1SDdDLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNjLGdCQUFXLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFFOUQ7O1dBRUc7UUFDTyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQU85Qjs7V0FFRztRQUNJLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBRXpDOztXQUVH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QUFtSTtRQUNuSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZixJQUFJLENBQUMsU0FBeUMsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztTQUN6RztJQUNMLENBQUM7K0dBNWFpQixzQkFBc0I7bUdBQXRCLHNCQUFzQix5Y0ErQjdCLGNBQWM7O1NBL0JQLHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQUQzQyxTQUFTOzBMQWlDQyxLQUFLO3NCQURYLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFNNUIsVUFBVTtzQkFBekIsS0FBSztnQkFZQyxXQUFXO3NCQURqQixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBT3BDLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNM0IsV0FBVztzQkFBMUIsS0FBSztnQkE0QkMsUUFBUTtzQkFEZCxLQUFLO2dCQU1VLCtCQUErQjtzQkFBOUMsS0FBSztnQkFLVSxzQ0FBc0M7c0JBQXJELEtBQUs7Z0JBTVUseUJBQXlCO3NCQUF4QyxLQUFLO2dCQUtVLGdDQUFnQztzQkFBL0MsS0FBSztnQkE2QkssTUFBTTtzQkFEaEIsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQStCM0IsV0FBVztzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XG5pbXBvcnQgeyBJRGF0ZVRpbWVDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pZGF0ZXRpbWVjb250cm9sJztcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uL3V0aWxpdGllcy9lbnVtcyc7XG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBDcmVhdGVWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb25lcnJvcmNyZWF0b3InO1xuaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4vYmFzZW1vZGVsY29udHJvbCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3RvciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElNYXNrRGlyZWN0aXZlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XG5cbi8qKlxuICogQmFzZSBLbGFzc2UgZsO8ciBEYXRlL1RpbWUgQ29udHJvbHNcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZURhdGVUaW1lQ29udHJvbCBleHRlbmRzIFNhY0Jhc2VNb2RlbENvbnRyb2w8RGF0ZT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBIZWxwZXIgY2xhc3MgdG8gZGlzcGxheSB0b29sdGlwIG9uIGNvcnJlY3QgcG9zaXRpb25cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcHVwSGVscGVyOiBQb3BVcEhlbHBlciA9IG5ldyBQb3BVcEhlbHBlcigpO1xuXG4gICAgLyoqXG4gICAgICogZGFzIHByb3BlcnR5IGVudGhpZWx0IGRhcyBWYWx1ZSBhbHMgc3RyaW5nLiBEZWZhdWx0IGlzdCAnJ1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdmFsdWVBc1N0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogQ29udGFpbmVycyBmb3IgdGhlIGRhdGV0aW1lIHBpY2tlclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBwaWNrZXJjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZm9yIGVudW0gaW4gQW5ndWxhciBIVE1MIHRlbXBsYXRlXG4gICAgICovXG4gICAgcHVibGljIFRvb2x0aXBQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbjtcblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBvYiBkZXIgRGF0ZSBTZWxlY3RvciBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBfc2hvd3NlbGVjdG9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gaW1hc2sgZGlyZWN0aXZlIGluIGFueSBkYXRldGltZSBjb250cm9sc1xuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBpTWFzazogSU1hc2tEaXJlY3RpdmU8YW55PjtcblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNyZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTW9tZW50IEpTIEluc3RhbmNlXG4gICAgICovXG4gICAgcHVibGljIG1vbWVudCA9IG1vbWVudF9bJ2RlZmF1bHQnXTtcblxuICAgIC8qKlxuICAgICAqIEFycm93IEl0ZW0gb2YgUGlja2VyIEVsZW1lbnQuIFJlcXVpcmVkIHRvIHNldCB0aGUgcG9zaXRpb24gb2YgYXJyb3cgY29ycmVjdGx5XG4gICAgICovXG4gICAgcHVibGljIHBpY2tlclBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uO1xuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcmFycm93JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHBpY2tlcmFycm93OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIGNvbnRlbnQgKGUuZy4gaWNvbikgb24gd2hpY2ggdGhlIHRvb2x0aXAgaXMgZGlzcGxheWVkLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcmJ1dHRvbicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIHBpY2tlcmJ1dHRvbjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBUZXh0Qm94IFBsYWNlaG9sZGVyXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgbGVmdFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3NBcnJvd0xlZnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93VG9wOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXQgdGhlIGxlZnRcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zUG9wdXBMZWZ0OiBudW1iZXIgPSAwO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIHBvc1BvcHVwVG9wOiBudW1iZXIgPSAwO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIGRhdGV0aW1lIHBpY2tlci4gVmFsdWVzOiBsZWZ0fHRvcHxyaWdodHxib3R0b218YXV0b1xuICAgICAqXG4gICAgICogVmFsdWUgJ2F1dG8nIGNhbiBiZSBjb21iaW5lZCB3aXRoIGFub3RoZXIgdmFsdWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcG9zaXRpb246IHN0cmluZyA9ICdib3R0b21lbmR8dG9wZW5kJztcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBiZWkgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0OiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0O1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIERhdGVUaW1lRm9ybWF0IGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeTogc3RyaW5nID1cbiAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnk6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiByZWZlcmVuY2UgdG8gaHRtbCBlbGVtZW50XG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogU2V0dGVyIGZvciB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciB0aGUgdG9vbHRpcC4gSXMgcmVxdWlyZWQgYXMgdGhlIHRvb2x0aXAgY2FuIGJlIGhpZGRlbiB2aWEgbmdJZi5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdwaWNrZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgc2V0IHBpY2tlcihwaWNrZXI6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgaWYgKHBpY2tlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBpY2tlci5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyID0gcGlja2VyO1xuICAgICAgICB0aGlzLm9uQ29udGVudENoYW5nZSgpO1xuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRvb2x0b3AoKTogRWxlbWVudFJlZiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXR0ZXIgZsO8ciB2YWx1ZXN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsdWVzdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZUFzU3RyaW5nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMubW9tZW50LnV0Yyh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmxvY2FsKCkuZm9ybWF0KHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEYXMgSW5wdXQgYmVrb21tdCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWVzdHJpbmcodjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSB2O1xuICAgICAgICBsZXQgZGF0ZTogbW9tZW50Xy5Nb21lbnQgPSB0aGlzLm1vbWVudCh2LCBbdGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpXSwgdHJ1ZSk7XG5cbiAgICAgICAgZGF0ZSA9IHRoaXMuTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZShkYXRlKS51dGMoKTtcblxuICAgICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlLnRvRGF0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB1cGRhdGUgaW1ha3MgcmVmZXJlbmNlXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLmlNYXNrLm1hc2tSZWYudXBkYXRlQ29udHJvbCgpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIERpZSBtZXRob2RlIHJldHVybnMgZGF0ZVRpbWUgaW4gc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEdldFBpY2tlclBvc2l0aW9uKCk6IFRvb2x0aXBQb3NpdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldERpc3BsYXlQb3NpdGlvbihcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpZSBtZXRob2RlIG1vZGlmaXppZXJ0IGRhcyBlaW5nZWdlYmVuZSBWYWx1ZSB2b24gdHlwIE1vbWVudFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHY6IG1vbWVudF8uTW9tZW50KTogbW9tZW50Xy5Nb21lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBKU09OIERhdGUgU3RyaW5nIGluIGVpbiBVVEMgRGF0ZVRpbWUgT2JqZWN0IGtvbnZlcnRpZXJlbiwgd2VsY2hlcyB2b20gQ29udHJvbCB2ZXJ3ZW5kZXRlIHdlcmRlbiBrYW5uXG4gICAgICovXG4gICAgcHVibGljIGdldERhdGUodGltZXN0YW1wKTogbW9tZW50Lk1vbWVudCB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRVVENGdWxsWWVhcigpO1xuICAgICAgICBjb25zdCBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcbiAgICAgICAgY29uc3QgZGF5ID0gZGF0ZS5nZXRVVENEYXRlKCk7XG4gICAgICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xuICAgICAgICBjb25zdCBtaW51dGVzID0gZGF0ZS5nZXRVVENNaW51dGVzKCk7XG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5tb21lbnQoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgb2YgdGhlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGlja2VySGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwSGVpZ2h0KHRoaXMucGlja2VyY29udGFpbmVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiB0aGUgcGlja2VyXG4gICAgICovXG4gICAgcHVibGljIGdldFBpY2tlcldpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwV2lkdGgodGhpcy5waWNrZXJjb250YWluZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy8gUmVtb3ZlIFBpY2tlciBpZiBpcyB2aXNpYmxlXG4gICAgICAgIGlmICh0aGlzLl9zaG93c2VsZWN0b3IgJiYgdGhpcy5waWNrZXJjb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5waWNrZXJjb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVbnJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdCBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5zZXREYXRlVGltZUZvcm1hdCgpO1xuXG4gICAgICAgIC8vIFJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0enQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nIHp1IHByb3BlcnR5IHZhbHVlc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIHNldFZhbHVlU3RyaW5nKHY6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlc3RyaW5nID0gdjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3JcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWVzdHJpbmcgIT09IG51bGwgJiYgdGhpcy52YWx1ZXN0cmluZy5pbmRleE9mKCdfJykgPj0gMCkge1xuICAgICAgICAgICAgZXJyb3IgPSBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgICAgICAgJ2ludmFsaWR0eXBlJyxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLmlzVmFsaWREYXRlKFxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0LFxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxuICAgICAgICApKGMpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzcmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZCh0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnkpKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE92ZXJ3cml0ZSBXcml0ZVZhbHVlIHRvIFNldCBjb3JyZWN0IERhdGUgT2JqZWN0XG4gICAgICovXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IERhdGUgfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBSZXNldCBWYWx1ZSBTdHJpbmcsIGRhbWl0IGJlaW0gVXBkYXRlIGRlcyBNb2RlbHMgYXVjaCBkYXMgSW5wdXQgRmVsZCBnZWxlZXJ0IHdpcmQuXG4gICAgICAgICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gJyc7XG4gICAgICAgICAgICAvLyBTZXQgSW50ZXJuYWwgUHJvcGVydHlcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5nZXREYXRlKHZhbHVlKS50b0RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIHByb3RlY3RlZCBnZXRBcnJvd0hlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJhcnJvdyA/IHRoaXMucGlja2VyYXJyb3cubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgOiAwO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRBcnJvd1dpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmFycm93ID8gdGhpcy5waWNrZXJhcnJvdy5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIGxpbmtzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldFBvc2l0aW9uTGVmdCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25MZWZ0KFxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gRW5zdXJlIHRoYXQgcG9wLXVwcyBuZXZlciBhcHBlYXIgb3V0c2lkZSB0aGUgdmlzaWJsZSBhcmVhIG9uIHRoZSBsZWZ0XG4gICAgICAgIGlmICh2YWx1ZSA8IDApIHtcbiAgICAgICAgICAgIHRoaXMucG9zUG9wdXBMZWZ0ID0gNTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucG9zUG9wdXBMZWZ0ID0gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKHRoaXMuR2V0UGlja2VyUG9zaXRpb24oKSkge1xuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24udG9wOlxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uYm90dG9tOlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gdGhpcy5nZXRQaWNrZXJXaWR0aCgpIC8gMiAtIC10aGlzLmdldEFycm93V2lkdGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcGVuZDpcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbWVuZDpcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UGlja2VyV2lkdGgoKSAtXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpIC8gMiAtXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9wdXBIZWxwZXIuZ2V0Q29udGFpbmVyV2lkdGgodGhpcy5waWNrZXJidXR0b24sIGZhbHNlKSAvIDI7XG5cbiAgICAgICAgICAgICAgICAvLyBDb3JyZWN0aW9uIGJ5IEFycm93IGlmIHBvcHVwIGlzIG91dHNpZGUgdGhlIGxlZnQgbWFyZ2luXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCAtPSB2YWx1ZSAqIC0xICsgNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b3BcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb25Ub3AoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uVG9wKFxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucG9zUG9wdXBUb3AgPSB2YWx1ZTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuR2V0UGlja2VyUG9zaXRpb24oKSkge1xuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ubGVmdDpcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnJpZ2h0OlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSB0aGlzLmdldFBpY2tlckhlaWdodCgpIC8gMiAtIDYuNTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIG1ldGhvZCBpZiBjb250ZW50IGhhcyBjaGFuZ2VkIGFuZCBwcm9wb3J0aW9ucyBuZWVkIHRvIGJlIHJlc2V0IGluIHRoZSBVSS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uQ29udGVudENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJsZVxuICAgICAgICBpZiAoIXRoaXMuX3Nob3dzZWxlY3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uTGVmdCgpO1xuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvblRvcCgpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBzZXREYXRlVGltZUZvcm1hdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gSEFDSzogQWRkIGFkZGl0aW9uIHByb3BlcnR5IHRvIEZvcm1Db250cm9sLiBDYW4gYmUgZml4ZWQgaWYgc29sdXRpb24gZm9yIHRpY2tldDogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTk2ODZcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICAodGhpcy5uZ0NvbnRyb2wgYXMgdW5rbm93biBhcyBJRGF0ZVRpbWVDb250cm9sKS5kYXRldGltZWZvcm1hdHN0cmluZyA9IHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXX0=
93
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMTkzemJxbnM3ayIsImFjdHVhbENvdmVyYWdlIiwiVG9vbHRpcFBvc2l0aW9uIiwiUG9wVXBIZWxwZXIiLCJWYWxpZGF0aW9uIiwiQ3JlYXRlVmFsaWRhdGlvbkVycm9yIiwiU2FjQmFzZU1vZGVsQ29udHJvbCIsIkRpcmVjdGl2ZSIsIklucHV0IiwiVmlld0NoaWxkIiwiSU1hc2tEaXJlY3RpdmUiLCJtb21lbnRfIiwiU2FjQmFzZURhdGVUaW1lQ29udHJvbCIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwiZWxlbWVudFJlZiIsImNkUmVmIiwiZiIsInMiLCJwb3B1cEhlbHBlciIsIl92YWx1ZUFzU3RyaW5nIiwiX3Nob3dzZWxlY3RvciIsImlzcmVxdWlyZWQiLCJtb21lbnQiLCJwaWNrZXJQb3NpdGlvbiIsInBsYWNlaG9sZGVyIiwicG9zQXJyb3dMZWZ0IiwicG9zQXJyb3dUb3AiLCJwb3NQb3B1cExlZnQiLCJwb3NQb3B1cFRvcCIsInBvc2l0aW9uIiwidmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCIsInZhbGlkYXRpb25LZXlTZXJ2aWNlIiwiVmFsaWRhdGlvbkVycm9yRGF0ZXRpbWVGb3JtYXQiLCJ2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeSIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdCIsInZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQiLCJWYWxpZGF0aW9uRXJyb3JSZXF1aXJlZCIsInZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5IiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkIiwib25Db250ZW50Q2hhbmdlIiwiYiIsInNldFRpbWVvdXQiLCJnZXRQb3NpdGlvbkxlZnQiLCJnZXRQb3NpdGlvblRvcCIsInBpY2tlciIsInVuZGVmaW5lZCIsImRvY3VtZW50IiwiYm9keSIsImFwcGVuZENoaWxkIiwibmF0aXZlRWxlbWVudCIsInBpY2tlcmNvbnRhaW5lciIsImRldGVjdENoYW5nZXMiLCJ0b29sdG9wIiwidmFsdWVzdHJpbmciLCJ2YWx1ZSIsImRhdGUiLCJ1dGMiLCJsb2NhbCIsImZvcm1hdCIsIkdldERhdGVUaW1lRm9ybWF0U3RyaW5nIiwidiIsIk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUiLCJpc1ZhbGlkIiwidG9EYXRlIiwiaU1hc2siLCJtYXNrUmVmIiwidXBkYXRlQ29udHJvbCIsIkdldFBpY2tlclBvc2l0aW9uIiwiZ2V0RGlzcGxheVBvc2l0aW9uIiwicGlja2VyYnV0dG9uIiwiZ2V0QXJyb3dXaWR0aCIsImdldEFycm93SGVpZ2h0IiwiZ2V0RGF0ZSIsInRpbWVzdGFtcCIsIkRhdGUiLCJ5ZWFyIiwiZ2V0VVRDRnVsbFllYXIiLCJtb250aCIsImdldFVUQ01vbnRoIiwiZGF5IiwiZ2V0VVRDRGF0ZSIsImhvdXJzIiwiZ2V0VVRDSG91cnMiLCJtaW51dGVzIiwiZ2V0VVRDTWludXRlcyIsInNlY29uZHMiLCJnZXRVVENTZWNvbmRzIiwiVVRDIiwiZ2V0UGlja2VySGVpZ2h0IiwiZ2V0UG9wdXBIZWlnaHQiLCJnZXRQaWNrZXJXaWR0aCIsImdldFBvcHVwV2lkdGgiLCJuZ09uRGVzdHJveSIsInJlbW92ZUNoaWxkIiwid2luZG93IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm5nT25Jbml0Iiwic2V0RGF0ZVRpbWVGb3JtYXQiLCJhZGRFdmVudExpc3RlbmVyIiwic2V0VmFsdWVTdHJpbmciLCJ2YWxpZGF0ZURhdGEiLCJjIiwiZXJyb3IiLCJpbmRleE9mIiwiaXNWYWxpZERhdGUiLCJyZXF1aXJlZCIsIndyaXRlVmFsdWUiLCJfdmFsdWUiLCJwaWNrZXJhcnJvdyIsIm9mZnNldEhlaWdodCIsIm9mZnNldFdpZHRoIiwidG9wIiwiYm90dG9tIiwidG9wZW5kIiwiYm90dG9tZW5kIiwiZ2V0Q29udGFpbmVyV2lkdGgiLCJsZWZ0IiwicmlnaHQiLCJuZ0NvbnRyb2wiLCJkYXRldGltZWZvcm1hdHN0cmluZyIsImRlcHMiLCJ0b2tlbiIsImkxIiwiU2FjRm9ybUxheW91dENvbW1vbiIsImkwIiwiSW5qZWN0b3IiLCJFbGVtZW50UmVmIiwiQ2hhbmdlRGV0ZWN0b3JSZWYiLCJ0YXJnZXQiLCLJtcm1RmFjdG9yeVRhcmdldCIsImlucHV0cyIsInZpZXdRdWVyaWVzIiwicHJvcGVydHlOYW1lIiwiZmlyc3QiLCJwcmVkaWNhdGUiLCJkZXNjZW5kYW50cyIsInN0YXRpYyIsInVzZXNJbmhlcml0YW5jZSIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XG5pbXBvcnQgeyBJRGF0ZVRpbWVDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pZGF0ZXRpbWVjb250cm9sJztcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uL3V0aWxpdGllcy9lbnVtcyc7XG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBDcmVhdGVWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb25lcnJvcmNyZWF0b3InO1xuaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4vYmFzZW1vZGVsY29udHJvbCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3RvciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElNYXNrRGlyZWN0aXZlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XG5cbi8qKlxuICogQmFzZSBLbGFzc2UgZsO8ciBEYXRlL1RpbWUgQ29udHJvbHNcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZURhdGVUaW1lQ29udHJvbCBleHRlbmRzIFNhY0Jhc2VNb2RlbENvbnRyb2w8RGF0ZT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBIZWxwZXIgY2xhc3MgdG8gZGlzcGxheSB0b29sdGlwIG9uIGNvcnJlY3QgcG9zaXRpb25cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcHVwSGVscGVyOiBQb3BVcEhlbHBlciA9IG5ldyBQb3BVcEhlbHBlcigpO1xuXG4gICAgLyoqXG4gICAgICogZGFzIHByb3BlcnR5IGVudGhpZWx0IGRhcyBWYWx1ZSBhbHMgc3RyaW5nLiBEZWZhdWx0IGlzdCAnJ1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdmFsdWVBc1N0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogQ29udGFpbmVycyBmb3IgdGhlIGRhdGV0aW1lIHBpY2tlclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBwaWNrZXJjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZm9yIGVudW0gaW4gQW5ndWxhciBIVE1MIHRlbXBsYXRlXG4gICAgICovXG4gICAgcHVibGljIFRvb2x0aXBQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbjtcblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBvYiBkZXIgRGF0ZSBTZWxlY3RvciBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBfc2hvd3NlbGVjdG9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gaW1hc2sgZGlyZWN0aXZlIGluIGFueSBkYXRldGltZSBjb250cm9sc1xuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBpTWFzazogSU1hc2tEaXJlY3RpdmU8YW55PjtcblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNyZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTW9tZW50IEpTIEluc3RhbmNlXG4gICAgICovXG4gICAgcHVibGljIG1vbWVudCA9IG1vbWVudF9bJ2RlZmF1bHQnXTtcblxuICAgIC8qKlxuICAgICAqIEFycm93IEl0ZW0gb2YgUGlja2VyIEVsZW1lbnQuIFJlcXVpcmVkIHRvIHNldCB0aGUgcG9zaXRpb24gb2YgYXJyb3cgY29ycmVjdGx5XG4gICAgICovXG4gICAgcHVibGljIHBpY2tlclBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uO1xuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcmFycm93JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHBpY2tlcmFycm93OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIGNvbnRlbnQgKGUuZy4gaWNvbikgb24gd2hpY2ggdGhlIHRvb2x0aXAgaXMgZGlzcGxheWVkLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcmJ1dHRvbicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIHBpY2tlcmJ1dHRvbjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBUZXh0Qm94IFBsYWNlaG9sZGVyXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgbGVmdFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3NBcnJvd0xlZnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93VG9wOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXQgdGhlIGxlZnRcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zUG9wdXBMZWZ0OiBudW1iZXIgPSAwO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIHBvc1BvcHVwVG9wOiBudW1iZXIgPSAwO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIGRhdGV0aW1lIHBpY2tlci4gVmFsdWVzOiBsZWZ0fHRvcHxyaWdodHxib3R0b218YXV0b1xuICAgICAqXG4gICAgICogVmFsdWUgJ2F1dG8nIGNhbiBiZSBjb21iaW5lZCB3aXRoIGFub3RoZXIgdmFsdWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcG9zaXRpb246IHN0cmluZyA9ICdib3R0b21lbmR8dG9wZW5kJztcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBiZWkgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0OiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0O1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIERhdGVUaW1lRm9ybWF0IGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeTogc3RyaW5nID1cbiAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnk6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiByZWZlcmVuY2UgdG8gaHRtbCBlbGVtZW50XG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogU2V0dGVyIGZvciB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciB0aGUgdG9vbHRpcC4gSXMgcmVxdWlyZWQgYXMgdGhlIHRvb2x0aXAgY2FuIGJlIGhpZGRlbiB2aWEgbmdJZi5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdwaWNrZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgc2V0IHBpY2tlcihwaWNrZXI6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgaWYgKHBpY2tlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBpY2tlci5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyID0gcGlja2VyO1xuICAgICAgICB0aGlzLm9uQ29udGVudENoYW5nZSgpO1xuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRvb2x0b3AoKTogRWxlbWVudFJlZiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXR0ZXIgZsO8ciB2YWx1ZXN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsdWVzdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZUFzU3RyaW5nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMubW9tZW50LnV0Yyh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmxvY2FsKCkuZm9ybWF0KHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEYXMgSW5wdXQgYmVrb21tdCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWVzdHJpbmcodjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSB2O1xuICAgICAgICBsZXQgZGF0ZTogbW9tZW50Xy5Nb21lbnQgPSB0aGlzLm1vbWVudCh2LCBbdGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpXSwgdHJ1ZSk7XG5cbiAgICAgICAgZGF0ZSA9IHRoaXMuTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZShkYXRlKS51dGMoKTtcblxuICAgICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlLnRvRGF0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB1cGRhdGUgaW1ha3MgcmVmZXJlbmNlXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLmlNYXNrLm1hc2tSZWYudXBkYXRlQ29udHJvbCgpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIERpZSBtZXRob2RlIHJldHVybnMgZGF0ZVRpbWUgaW4gc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEdldFBpY2tlclBvc2l0aW9uKCk6IFRvb2x0aXBQb3NpdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldERpc3BsYXlQb3NpdGlvbihcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpZSBtZXRob2RlIG1vZGlmaXppZXJ0IGRhcyBlaW5nZWdlYmVuZSBWYWx1ZSB2b24gdHlwIE1vbWVudFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHY6IG1vbWVudF8uTW9tZW50KTogbW9tZW50Xy5Nb21lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBKU09OIERhdGUgU3RyaW5nIGluIGVpbiBVVEMgRGF0ZVRpbWUgT2JqZWN0IGtvbnZlcnRpZXJlbiwgd2VsY2hlcyB2b20gQ29udHJvbCB2ZXJ3ZW5kZXRlIHdlcmRlbiBrYW5uXG4gICAgICovXG4gICAgcHVibGljIGdldERhdGUodGltZXN0YW1wKTogbW9tZW50Lk1vbWVudCB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRVVENGdWxsWWVhcigpO1xuICAgICAgICBjb25zdCBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcbiAgICAgICAgY29uc3QgZGF5ID0gZGF0ZS5nZXRVVENEYXRlKCk7XG4gICAgICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xuICAgICAgICBjb25zdCBtaW51dGVzID0gZGF0ZS5nZXRVVENNaW51dGVzKCk7XG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5tb21lbnQoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgb2YgdGhlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGlja2VySGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwSGVpZ2h0KHRoaXMucGlja2VyY29udGFpbmVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiB0aGUgcGlja2VyXG4gICAgICovXG4gICAgcHVibGljIGdldFBpY2tlcldpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwV2lkdGgodGhpcy5waWNrZXJjb250YWluZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy8gUmVtb3ZlIFBpY2tlciBpZiBpcyB2aXNpYmxlXG4gICAgICAgIGlmICh0aGlzLl9zaG93c2VsZWN0b3IgJiYgdGhpcy5waWNrZXJjb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5waWNrZXJjb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVbnJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdCBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5zZXREYXRlVGltZUZvcm1hdCgpO1xuXG4gICAgICAgIC8vIFJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0enQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nIHp1IHByb3BlcnR5IHZhbHVlc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIHNldFZhbHVlU3RyaW5nKHY6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlc3RyaW5nID0gdjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3JcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWVzdHJpbmcgIT09IG51bGwgJiYgdGhpcy52YWx1ZXN0cmluZy5pbmRleE9mKCdfJykgPj0gMCkge1xuICAgICAgICAgICAgZXJyb3IgPSBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgICAgICAgJ2ludmFsaWR0eXBlJyxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLmlzVmFsaWREYXRlKFxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0LFxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxuICAgICAgICApKGMpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzcmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZCh0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnkpKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE92ZXJ3cml0ZSBXcml0ZVZhbHVlIHRvIFNldCBjb3JyZWN0IERhdGUgT2JqZWN0XG4gICAgICovXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IERhdGUgfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBSZXNldCBWYWx1ZSBTdHJpbmcsIGRhbWl0IGJlaW0gVXBkYXRlIGRlcyBNb2RlbHMgYXVjaCBkYXMgSW5wdXQgRmVsZCBnZWxlZXJ0IHdpcmQuXG4gICAgICAgICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gJyc7XG4gICAgICAgICAgICAvLyBTZXQgSW50ZXJuYWwgUHJvcGVydHlcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5nZXREYXRlKHZhbHVlKS50b0RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIHByb3RlY3RlZCBnZXRBcnJvd0hlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJhcnJvdyA/IHRoaXMucGlja2VyYXJyb3cubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgOiAwO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRBcnJvd1dpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmFycm93ID8gdGhpcy5waWNrZXJhcnJvdy5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIGxpbmtzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldFBvc2l0aW9uTGVmdCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25MZWZ0KFxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gRW5zdXJlIHRoYXQgcG9wLXVwcyBuZXZlciBhcHBlYXIgb3V0c2lkZSB0aGUgdmlzaWJsZSBhcmVhIG9uIHRoZSBsZWZ0XG4gICAgICAgIGlmICh2YWx1ZSA8IDApIHtcbiAgICAgICAgICAgIHRoaXMucG9zUG9wdXBMZWZ0ID0gNTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucG9zUG9wdXBMZWZ0ID0gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKHRoaXMuR2V0UGlja2VyUG9zaXRpb24oKSkge1xuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24udG9wOlxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uYm90dG9tOlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gdGhpcy5nZXRQaWNrZXJXaWR0aCgpIC8gMiAtIC10aGlzLmdldEFycm93V2lkdGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcGVuZDpcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbWVuZDpcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UGlja2VyV2lkdGgoKSAtXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpIC8gMiAtXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9wdXBIZWxwZXIuZ2V0Q29udGFpbmVyV2lkdGgodGhpcy5waWNrZXJidXR0b24sIGZhbHNlKSAvIDI7XG5cbiAgICAgICAgICAgICAgICAvLyBDb3JyZWN0aW9uIGJ5IEFycm93IGlmIHBvcHVwIGlzIG91dHNpZGUgdGhlIGxlZnQgbWFyZ2luXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCAtPSB2YWx1ZSAqIC0xICsgNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b3BcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb25Ub3AoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uVG9wKFxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucG9zUG9wdXBUb3AgPSB2YWx1ZTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuR2V0UGlja2VyUG9zaXRpb24oKSkge1xuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ubGVmdDpcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnJpZ2h0OlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSB0aGlzLmdldFBpY2tlckhlaWdodCgpIC8gMiAtIDYuNTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIG1ldGhvZCBpZiBjb250ZW50IGhhcyBjaGFuZ2VkIGFuZCBwcm9wb3J0aW9ucyBuZWVkIHRvIGJlIHJlc2V0IGluIHRoZSBVSS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uQ29udGVudENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJsZVxuICAgICAgICBpZiAoIXRoaXMuX3Nob3dzZWxlY3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uTGVmdCgpO1xuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvblRvcCgpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBzZXREYXRlVGltZUZvcm1hdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gSEFDSzogQWRkIGFkZGl0aW9uIHByb3BlcnR5IHRvIEZvcm1Db250cm9sLiBDYW4gYmUgZml4ZWQgaWYgc29sdXRpb24gZm9yIHRpY2tldDogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTk2ODZcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICAodGhpcy5uZ0NvbnRyb2wgYXMgdW5rbm93biBhcyBJRGF0ZVRpbWVDb250cm9sKS5kYXRldGltZWZvcm1hdHN0cmluZyA9IHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXSwibWFwcGluZ3MiOiI0dG9DQWlJSTtBQUFBQSxjQUFBLFNBQUFBLENBQUEsU0FBQUMsY0FBQSxXQUFBQSxjQUFBLEVBQUFELGNBQUEsR0EvSEosT0FBU0UsZUFBZSxLQUFRLG9CQUFvQixDQUNwRCxPQUFTQyxXQUFXLEtBQVEsMEJBQTBCLENBQ3RELE9BQVNDLFVBQVUsS0FBUSxlQUFlLENBQzFDLE9BQVNDLHFCQUFxQixLQUFRLHNDQUFzQyxDQUM1RSxPQUFTQyxtQkFBbUIsS0FBUSxvQkFBb0IsQ0FDeEQsT0FBNEJDLFNBQVMsQ0FBd0JDLEtBQUssQ0FBcUJDLFNBQVMsS0FBUSxlQUFlLENBRXZILE9BQVNDLGNBQWMsS0FBUSxlQUFlLENBQzlDLE1BQU8sR0FBSyxDQUFBQyxPQUFPLEtBQU0sUUFBUSxDLGtGQUVqQzs7R0FHQSxLQUNzQixDQUFBQyxzQkFBdUIsUUFBUSxDQUFBTixtQkFBeUIsQ0ErRzFFO0FBRUE7QUFFQTs7Ozs7T0FNQU8sWUFDSUMsVUFBK0IsQ0FDL0JDLFFBQWtCLENBQ1JDLFVBQXNCLENBQ2ZDLEtBQXdCLEVBQUFq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