@simpleangularcontrols/sac-common 13.0.0-rc.2 → 13.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 (966) hide show
  1. package/README.md +15 -15
  2. package/common/basedatetimecontrol.d.ts +176 -86
  3. package/common/basedatetimecontrol.d.ts.map +1 -1
  4. package/common/basedatetimecontrol.ngfactory.d.ts +3 -3
  5. package/common/basedatetimecontrol.ngsummary.d.ts +1 -1
  6. package/common/baseinputcontrol.d.ts +41 -45
  7. package/common/baseinputcontrol.d.ts.map +1 -1
  8. package/common/baseinputcontrol.ngfactory.d.ts +3 -3
  9. package/common/baseinputcontrol.ngsummary.d.ts +1 -1
  10. package/common/baselistcontrol.d.ts +46 -46
  11. package/common/baselistcontrol.ngfactory.d.ts +3 -3
  12. package/common/baselistcontrol.ngsummary.d.ts +1 -1
  13. package/common/basemodelcontrol.d.ts +287 -200
  14. package/common/basemodelcontrol.d.ts.map +1 -1
  15. package/common/basemodelcontrol.ngfactory.d.ts +3 -3
  16. package/common/basemodelcontrol.ngsummary.d.ts +1 -1
  17. package/common/baseselectcontrol.d.ts +17 -17
  18. package/common/baseselectcontrol.ngfactory.d.ts +3 -3
  19. package/common/baseselectcontrol.ngsummary.d.ts +1 -1
  20. package/common/baseuploadcontrol.d.ts +307 -287
  21. package/common/baseuploadcontrol.d.ts.map +1 -1
  22. package/common/baseuploadcontrol.ngfactory.d.ts +3 -3
  23. package/common/baseuploadcontrol.ngsummary.d.ts +1 -1
  24. package/components/browser/browser.d.ts +270 -265
  25. package/components/browser/browser.d.ts.map +1 -1
  26. package/components/browser/browser.ngfactory.d.ts +3 -3
  27. package/components/browser/browser.ngsummary.d.ts +1 -1
  28. package/components/browser/models/browserfile.d.ts +17 -17
  29. package/components/browser/models/browserfile.ngfactory.d.ts +1 -1
  30. package/components/browser/models/browserfile.ngsummary.d.ts +1 -1
  31. package/components/browser/models/browserfiledeleterequest.d.ts +18 -18
  32. package/components/browser/models/browserfiledeleterequest.ngfactory.d.ts +1 -1
  33. package/components/browser/models/browserfiledeleterequest.ngsummary.d.ts +1 -1
  34. package/components/browser/models/browserfilerenamerequest.d.ts +22 -22
  35. package/components/browser/models/browserfilerenamerequest.ngfactory.d.ts +1 -1
  36. package/components/browser/models/browserfilerenamerequest.ngsummary.d.ts +1 -1
  37. package/components/browser/models/browserfileresponse.d.ts +10 -10
  38. package/components/browser/models/browserfileresponse.ngfactory.d.ts +1 -1
  39. package/components/browser/models/browserfileresponse.ngsummary.d.ts +1 -1
  40. package/components/browser/models/browserfilesaverequest.d.ts +22 -22
  41. package/components/browser/models/browserfilesaverequest.ngfactory.d.ts +1 -1
  42. package/components/browser/models/browserfilesaverequest.ngsummary.d.ts +1 -1
  43. package/components/browser/models/browsernode.d.ts +34 -34
  44. package/components/browser/models/browsernode.ngfactory.d.ts +1 -1
  45. package/components/browser/models/browsernode.ngsummary.d.ts +1 -1
  46. package/components/browser/models/browsernodedeleterequest.d.ts +14 -14
  47. package/components/browser/models/browsernodedeleterequest.ngfactory.d.ts +1 -1
  48. package/components/browser/models/browsernodedeleterequest.ngsummary.d.ts +1 -1
  49. package/components/browser/models/browsernodenewrequest.d.ts +18 -18
  50. package/components/browser/models/browsernodenewrequest.ngfactory.d.ts +1 -1
  51. package/components/browser/models/browsernodenewrequest.ngsummary.d.ts +1 -1
  52. package/components/browser/models/browsernoderenamerequest.d.ts +18 -18
  53. package/components/browser/models/browsernoderenamerequest.ngfactory.d.ts +1 -1
  54. package/components/browser/models/browsernoderenamerequest.ngsummary.d.ts +1 -1
  55. package/components/browser/models/browsernoderequest.d.ts +18 -18
  56. package/components/browser/models/browsernoderequest.ngfactory.d.ts +1 -1
  57. package/components/browser/models/browsernoderequest.ngsummary.d.ts +1 -1
  58. package/components/browser/models/browsernoderesponse.d.ts +10 -10
  59. package/components/browser/models/browsernoderesponse.ngfactory.d.ts +1 -1
  60. package/components/browser/models/browsernoderesponse.ngsummary.d.ts +1 -1
  61. package/controls/buttons/button.d.ts +77 -72
  62. package/controls/buttons/button.d.ts.map +1 -1
  63. package/controls/buttons/button.ngfactory.d.ts +3 -3
  64. package/controls/buttons/button.ngsummary.d.ts +1 -1
  65. package/controls/checkbox/checkbox.d.ts +35 -22
  66. package/controls/checkbox/checkbox.d.ts.map +1 -1
  67. package/controls/checkbox/checkbox.ngfactory.d.ts +3 -3
  68. package/controls/checkbox/checkbox.ngsummary.d.ts +1 -1
  69. package/controls/checkbox/radiobutton.d.ts +117 -73
  70. package/controls/checkbox/radiobutton.d.ts.map +1 -1
  71. package/controls/checkbox/radiobutton.ngfactory.d.ts +3 -3
  72. package/controls/checkbox/radiobutton.ngsummary.d.ts +1 -1
  73. package/controls/checkbox/radiobuttons.d.ts +63 -62
  74. package/controls/checkbox/radiobuttons.d.ts.map +1 -1
  75. package/controls/checkbox/radiobuttons.ngfactory.d.ts +3 -3
  76. package/controls/checkbox/radiobuttons.ngsummary.d.ts +1 -1
  77. package/controls/confirm/confirm.button.d.ts +25 -19
  78. package/controls/confirm/confirm.button.d.ts.map +1 -1
  79. package/controls/confirm/confirm.button.ngfactory.d.ts +1 -1
  80. package/controls/confirm/confirm.button.ngsummary.d.ts +1 -1
  81. package/controls/confirm/confirm.d.ts +52 -52
  82. package/controls/confirm/confirm.d.ts.map +1 -1
  83. package/controls/confirm/confirm.ngfactory.d.ts +3 -3
  84. package/controls/confirm/confirm.ngsummary.d.ts +1 -1
  85. package/controls/confirm/confirm.service.d.ts +63 -58
  86. package/controls/confirm/confirm.service.d.ts.map +1 -1
  87. package/controls/confirm/confirm.service.ngfactory.d.ts +1 -1
  88. package/controls/confirm/confirm.service.ngsummary.d.ts +1 -1
  89. package/controls/contextmenu/contextmenu.d.ts +131 -116
  90. package/controls/contextmenu/contextmenu.d.ts.map +1 -1
  91. package/controls/contextmenu/contextmenu.interface.d.ts +4 -0
  92. package/controls/contextmenu/contextmenu.interface.d.ts.map +1 -0
  93. package/controls/contextmenu/contextmenu.interface.ngfactory.d.ts +2 -0
  94. package/controls/contextmenu/contextmenu.interface.ngfactory.d.ts.map +1 -0
  95. package/controls/contextmenu/contextmenu.interface.ngsummary.d.ts +2 -0
  96. package/controls/contextmenu/contextmenu.interface.ngsummary.d.ts.map +1 -0
  97. package/controls/contextmenu/contextmenu.ngfactory.d.ts +3 -3
  98. package/controls/contextmenu/contextmenu.ngsummary.d.ts +1 -1
  99. package/controls/contextmenu/contextmenuanchor.d.ts +18 -18
  100. package/controls/contextmenu/contextmenuanchor.d.ts.map +1 -1
  101. package/controls/contextmenu/contextmenuanchor.ngfactory.d.ts +3 -3
  102. package/controls/contextmenu/contextmenuanchor.ngsummary.d.ts +1 -1
  103. package/controls/contextmenu/contextmenucontainer.d.ts +18 -18
  104. package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -1
  105. package/controls/contextmenu/contextmenucontainer.ngfactory.d.ts +3 -3
  106. package/controls/contextmenu/contextmenucontainer.ngsummary.d.ts +1 -1
  107. package/controls/contextmenu/contextmenuitem.d.ts +13 -8
  108. package/controls/contextmenu/contextmenuitem.d.ts.map +1 -1
  109. package/controls/contextmenu/contextmenuitem.ngfactory.d.ts +3 -3
  110. package/controls/contextmenu/contextmenuitem.ngsummary.d.ts +1 -1
  111. package/controls/contextmenu/contextmenuitembutton.d.ts +70 -69
  112. package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -1
  113. package/controls/contextmenu/contextmenuitembutton.ngfactory.d.ts +3 -3
  114. package/controls/contextmenu/contextmenuitembutton.ngsummary.d.ts +1 -1
  115. package/controls/datetime/date.d.ts +120 -123
  116. package/controls/datetime/date.d.ts.map +1 -1
  117. package/controls/datetime/date.ngfactory.d.ts +3 -3
  118. package/controls/datetime/date.ngsummary.d.ts +1 -1
  119. package/controls/datetime/dateselector.d.ts +172 -164
  120. package/controls/datetime/dateselector.d.ts.map +1 -1
  121. package/controls/datetime/dateselector.ngfactory.d.ts +3 -3
  122. package/controls/datetime/dateselector.ngsummary.d.ts +1 -1
  123. package/controls/datetime/datetime.d.ts +131 -138
  124. package/controls/datetime/datetime.d.ts.map +1 -1
  125. package/controls/datetime/datetime.ngfactory.d.ts +3 -3
  126. package/controls/datetime/datetime.ngsummary.d.ts +1 -1
  127. package/controls/datetime/time.d.ts +114 -118
  128. package/controls/datetime/time.d.ts.map +1 -1
  129. package/controls/datetime/time.ngfactory.d.ts +3 -3
  130. package/controls/datetime/time.ngsummary.d.ts +1 -1
  131. package/controls/dialog/dialog.d.ts +100 -108
  132. package/controls/dialog/dialog.d.ts.map +1 -1
  133. package/controls/dialog/dialog.ngfactory.d.ts +3 -3
  134. package/controls/dialog/dialog.ngsummary.d.ts +1 -1
  135. package/controls/form/form.d.ts +50 -86
  136. package/controls/form/form.d.ts.map +1 -1
  137. package/controls/form/form.ngfactory.d.ts +3 -3
  138. package/controls/form/form.ngsummary.d.ts +1 -1
  139. package/controls/grid/grid.d.ts +134 -125
  140. package/controls/grid/grid.d.ts.map +1 -1
  141. package/controls/grid/grid.ngfactory.d.ts +3 -3
  142. package/controls/grid/grid.ngsummary.d.ts +1 -1
  143. package/controls/grid/gridbutton.d.ts +55 -36
  144. package/controls/grid/gridbutton.d.ts.map +1 -1
  145. package/controls/grid/gridbutton.ngfactory.d.ts +3 -3
  146. package/controls/grid/gridbutton.ngsummary.d.ts +1 -1
  147. package/controls/grid/gridcolumn.d.ts +31 -31
  148. package/controls/grid/gridcolumn.d.ts.map +1 -1
  149. package/controls/grid/gridcolumn.ngfactory.d.ts +3 -3
  150. package/controls/grid/gridcolumn.ngsummary.d.ts +1 -1
  151. package/controls/grid/gridcolumnaction.d.ts +18 -18
  152. package/controls/grid/gridcolumnaction.d.ts.map +1 -1
  153. package/controls/grid/gridcolumnaction.ngfactory.d.ts +3 -3
  154. package/controls/grid/gridcolumnaction.ngsummary.d.ts +1 -1
  155. package/controls/grid/gridcolumnbase.d.ts +113 -89
  156. package/controls/grid/gridcolumnbase.d.ts.map +1 -1
  157. package/controls/grid/gridcolumnbase.ngfactory.d.ts +3 -3
  158. package/controls/grid/gridcolumnbase.ngsummary.d.ts +1 -1
  159. package/controls/grid/gridimage.d.ts +12 -12
  160. package/controls/grid/gridimage.d.ts.map +1 -1
  161. package/controls/grid/gridimage.ngfactory.d.ts +3 -3
  162. package/controls/grid/gridimage.ngsummary.d.ts +1 -1
  163. package/controls/grid/model.d.ts +92 -83
  164. package/controls/grid/model.d.ts.map +1 -1
  165. package/controls/grid/model.ngfactory.d.ts +1 -1
  166. package/controls/grid/model.ngsummary.d.ts +1 -1
  167. package/controls/grid/paging.d.ts +152 -147
  168. package/controls/grid/paging.d.ts.map +1 -1
  169. package/controls/grid/paging.ngfactory.d.ts +3 -3
  170. package/controls/grid/paging.ngsummary.d.ts +1 -1
  171. package/controls/input/input.d.ts +38 -38
  172. package/controls/input/input.d.ts.map +1 -1
  173. package/controls/input/input.ngfactory.d.ts +3 -3
  174. package/controls/input/input.ngsummary.d.ts +1 -1
  175. package/controls/input/inputarea.d.ts +29 -29
  176. package/controls/input/inputarea.d.ts.map +1 -1
  177. package/controls/input/inputarea.ngfactory.d.ts +3 -3
  178. package/controls/input/inputarea.ngsummary.d.ts +1 -1
  179. package/controls/input/inputcurrency.d.ts +14 -9
  180. package/controls/input/inputcurrency.d.ts.map +1 -1
  181. package/controls/input/inputcurrency.ngfactory.d.ts +3 -3
  182. package/controls/input/inputcurrency.ngsummary.d.ts +1 -1
  183. package/controls/input/inputdecimal.d.ts +62 -62
  184. package/controls/input/inputdecimal.d.ts.map +1 -1
  185. package/controls/input/inputdecimal.ngfactory.d.ts +3 -3
  186. package/controls/input/inputdecimal.ngsummary.d.ts +1 -1
  187. package/controls/input/inputemail.d.ts +22 -22
  188. package/controls/input/inputemail.d.ts.map +1 -1
  189. package/controls/input/inputemail.ngfactory.d.ts +3 -3
  190. package/controls/input/inputemail.ngsummary.d.ts +1 -1
  191. package/controls/input/inputinteger.d.ts +62 -62
  192. package/controls/input/inputinteger.d.ts.map +1 -1
  193. package/controls/input/inputinteger.ngfactory.d.ts +3 -3
  194. package/controls/input/inputinteger.ngsummary.d.ts +1 -1
  195. package/controls/input/inputpassword.d.ts +46 -26
  196. package/controls/input/inputpassword.d.ts.map +1 -1
  197. package/controls/input/inputpassword.ngfactory.d.ts +3 -3
  198. package/controls/input/inputpassword.ngsummary.d.ts +1 -1
  199. package/controls/input/inputsearch.d.ts +35 -26
  200. package/controls/input/inputsearch.d.ts.map +1 -1
  201. package/controls/input/inputsearch.ngfactory.d.ts +3 -3
  202. package/controls/input/inputsearch.ngsummary.d.ts +1 -1
  203. package/controls/layout/formlayout.d.ts +66 -0
  204. package/controls/layout/formlayout.d.ts.map +1 -0
  205. package/controls/layout/formlayout.ngfactory.d.ts +4 -0
  206. package/controls/layout/formlayout.ngfactory.d.ts.map +1 -0
  207. package/controls/layout/formlayout.ngsummary.d.ts +2 -0
  208. package/controls/layout/formlayout.ngsummary.d.ts.map +1 -0
  209. package/controls/list/buildvaluestring.d.ts +7 -0
  210. package/controls/list/buildvaluestring.d.ts.map +1 -0
  211. package/controls/list/buildvaluestring.ngfactory.d.ts +2 -0
  212. package/controls/list/buildvaluestring.ngfactory.d.ts.map +1 -0
  213. package/controls/list/buildvaluestring.ngsummary.d.ts +2 -0
  214. package/controls/list/buildvaluestring.ngsummary.d.ts.map +1 -0
  215. package/controls/list/dropdown.d.ts +99 -143
  216. package/controls/list/dropdown.d.ts.map +1 -1
  217. package/controls/list/dropdown.ngfactory.d.ts +3 -4
  218. package/controls/list/dropdown.ngfactory.d.ts.map +1 -1
  219. package/controls/list/dropdown.ngsummary.d.ts +1 -2
  220. package/controls/list/dropdown.ngsummary.d.ts.map +1 -1
  221. package/controls/list/dropdownoptions.d.ts +42 -0
  222. package/controls/list/dropdownoptions.d.ts.map +1 -0
  223. package/controls/list/dropdownoptions.ngfactory.d.ts +4 -0
  224. package/controls/list/dropdownoptions.ngfactory.d.ts.map +1 -0
  225. package/controls/list/dropdownoptions.ngsummary.d.ts +2 -0
  226. package/controls/list/dropdownoptions.ngsummary.d.ts.map +1 -0
  227. package/controls/list/list.module.d.ts +6 -6
  228. package/controls/list/list.module.d.ts.map +1 -1
  229. package/controls/list/list.module.ngfactory.d.ts +3 -3
  230. package/controls/list/list.module.ngsummary.d.ts +1 -1
  231. package/controls/list/listbox.d.ts +91 -91
  232. package/controls/list/listbox.d.ts.map +1 -1
  233. package/controls/list/listbox.ngfactory.d.ts +4 -4
  234. package/controls/list/listbox.ngsummary.d.ts +2 -2
  235. package/controls/multilanguage/multilanguageinput.d.ts +105 -104
  236. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  237. package/controls/multilanguage/multilanguageinput.ngfactory.d.ts +3 -3
  238. package/controls/multilanguage/multilanguageinput.ngsummary.d.ts +1 -1
  239. package/controls/multilanguage/multilanguageinputarea.d.ts +110 -109
  240. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  241. package/controls/multilanguage/multilanguageinputarea.ngfactory.d.ts +3 -3
  242. package/controls/multilanguage/multilanguageinputarea.ngsummary.d.ts +1 -1
  243. package/controls/static/formcontainer.d.ts +38 -34
  244. package/controls/static/formcontainer.d.ts.map +1 -1
  245. package/controls/static/formcontainer.ngfactory.d.ts +3 -3
  246. package/controls/static/formcontainer.ngsummary.d.ts +1 -1
  247. package/controls/static/staticlabel.d.ts +21 -21
  248. package/controls/static/staticlabel.d.ts.map +1 -1
  249. package/controls/static/staticlabel.ngfactory.d.ts +3 -3
  250. package/controls/static/staticlabel.ngsummary.d.ts +1 -1
  251. package/controls/tabs/tab.d.ts +52 -48
  252. package/controls/tabs/tab.d.ts.map +1 -1
  253. package/controls/tabs/tab.ngfactory.d.ts +3 -3
  254. package/controls/tabs/tab.ngsummary.d.ts +1 -1
  255. package/controls/tabs/tabitem.d.ts +33 -33
  256. package/controls/tabs/tabitem.d.ts.map +1 -1
  257. package/controls/tabs/tabitem.ngfactory.d.ts +3 -3
  258. package/controls/tabs/tabitem.ngsummary.d.ts +1 -1
  259. package/controls/tinymce/tinymce.d.ts +156 -152
  260. package/controls/tinymce/tinymce.d.ts.map +1 -1
  261. package/controls/tinymce/tinymce.ngfactory.d.ts +3 -3
  262. package/controls/tinymce/tinymce.ngsummary.d.ts +1 -1
  263. package/controls/tinymce/tinymcedialogsettings.d.ts +27 -27
  264. package/controls/tinymce/tinymcedialogsettings.d.ts.map +1 -1
  265. package/controls/tinymce/tinymcedialogsettings.ngfactory.d.ts +1 -1
  266. package/controls/tinymce/tinymcedialogsettings.ngsummary.d.ts +1 -1
  267. package/controls/tinymce/tinymcedialogsettingsmeta.d.ts +9 -9
  268. package/controls/tinymce/tinymcedialogsettingsmeta.d.ts.map +1 -1
  269. package/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.d.ts +1 -1
  270. package/controls/tinymce/tinymcedialogsettingsmeta.ngsummary.d.ts +1 -1
  271. package/controls/tinymce/tinymceinstance.d.ts +10 -10
  272. package/controls/tinymce/tinymceinstance.d.ts.map +1 -1
  273. package/controls/tinymce/tinymceinstance.ngfactory.d.ts +1 -1
  274. package/controls/tinymce/tinymceinstance.ngsummary.d.ts +1 -1
  275. package/controls/tooltip/tooltip.d.ts +156 -141
  276. package/controls/tooltip/tooltip.d.ts.map +1 -1
  277. package/controls/tooltip/tooltip.ngfactory.d.ts +3 -3
  278. package/controls/tooltip/tooltip.ngsummary.d.ts +1 -1
  279. package/controls/treeview/treeview.d.ts +188 -188
  280. package/controls/treeview/treeview.d.ts.map +1 -1
  281. package/controls/treeview/treeview.ngfactory.d.ts +3 -3
  282. package/controls/treeview/treeview.ngsummary.d.ts +1 -1
  283. package/controls/upload/dropzonemultiple.d.ts +77 -73
  284. package/controls/upload/dropzonemultiple.d.ts.map +1 -1
  285. package/controls/upload/dropzonemultiple.ngfactory.d.ts +3 -3
  286. package/controls/upload/dropzonemultiple.ngsummary.d.ts +1 -1
  287. package/controls/upload/dropzonesingle.d.ts +54 -50
  288. package/controls/upload/dropzonesingle.d.ts.map +1 -1
  289. package/controls/upload/dropzonesingle.ngfactory.d.ts +3 -3
  290. package/controls/upload/dropzonesingle.ngsummary.d.ts +1 -1
  291. package/controls/upload/uploadmultiple.d.ts +57 -53
  292. package/controls/upload/uploadmultiple.d.ts.map +1 -1
  293. package/controls/upload/uploadmultiple.ngfactory.d.ts +3 -3
  294. package/controls/upload/uploadmultiple.ngsummary.d.ts +1 -1
  295. package/controls/upload/uploadsingle.d.ts +34 -30
  296. package/controls/upload/uploadsingle.d.ts.map +1 -1
  297. package/controls/upload/uploadsingle.ngfactory.d.ts +3 -3
  298. package/controls/upload/uploadsingle.ngsummary.d.ts +1 -1
  299. package/controls/validation/validationsummary.d.ts +67 -58
  300. package/controls/validation/validationsummary.d.ts.map +1 -1
  301. package/controls/validation/validationsummary.ngfactory.d.ts +3 -3
  302. package/controls/validation/validationsummary.ngsummary.d.ts +1 -1
  303. package/controls/wizard/wizard.d.ts +76 -76
  304. package/controls/wizard/wizard.d.ts.map +1 -1
  305. package/controls/wizard/wizard.ngfactory.d.ts +3 -3
  306. package/controls/wizard/wizard.ngsummary.d.ts +1 -1
  307. package/controls/wizard/wizarditem.d.ts +28 -28
  308. package/controls/wizard/wizarditem.d.ts.map +1 -1
  309. package/controls/wizard/wizarditem.ngfactory.d.ts +3 -3
  310. package/controls/wizard/wizarditem.ngsummary.d.ts +1 -1
  311. package/enums/ButtonRoleType.d.ts +2 -0
  312. package/enums/ButtonRoleType.d.ts.map +1 -0
  313. package/enums/ButtonRoleType.ngfactory.d.ts +2 -0
  314. package/enums/ButtonRoleType.ngfactory.d.ts.map +1 -0
  315. package/enums/ButtonRoleType.ngsummary.d.ts +2 -0
  316. package/enums/ButtonRoleType.ngsummary.d.ts.map +1 -0
  317. package/enums/ControlHeight.d.ts +18 -0
  318. package/enums/ControlHeight.d.ts.map +1 -0
  319. package/enums/ControlHeight.ngfactory.d.ts +2 -0
  320. package/enums/ControlHeight.ngfactory.d.ts.map +1 -0
  321. package/enums/ControlHeight.ngsummary.d.ts +2 -0
  322. package/enums/ControlHeight.ngsummary.d.ts.map +1 -0
  323. package/enums/IconType.d.ts +7 -7
  324. package/enums/IconType.ngfactory.d.ts +1 -1
  325. package/enums/IconType.ngsummary.d.ts +1 -1
  326. package/esm2020/common/basedatetimecontrol.mjs +93 -173
  327. package/esm2020/common/basedatetimecontrol.ngfactory.mjs +3 -4
  328. package/esm2020/common/basedatetimecontrol.ngsummary.mjs +3 -2
  329. package/esm2020/common/baseinputcontrol.mjs +27 -85
  330. package/esm2020/common/baseinputcontrol.ngfactory.mjs +3 -4
  331. package/esm2020/common/baseinputcontrol.ngsummary.mjs +3 -2
  332. package/esm2020/common/baselistcontrol.mjs +19 -63
  333. package/esm2020/common/baselistcontrol.ngfactory.mjs +3 -4
  334. package/esm2020/common/baselistcontrol.ngsummary.mjs +3 -2
  335. package/esm2020/common/basemodelcontrol.mjs +151 -367
  336. package/esm2020/common/basemodelcontrol.ngfactory.mjs +3 -4
  337. package/esm2020/common/basemodelcontrol.ngsummary.mjs +3 -2
  338. package/esm2020/common/baseselectcontrol.mjs +9 -29
  339. package/esm2020/common/baseselectcontrol.ngfactory.mjs +3 -4
  340. package/esm2020/common/baseselectcontrol.ngsummary.mjs +3 -2
  341. package/esm2020/common/baseuploadcontrol.mjs +148 -460
  342. package/esm2020/common/baseuploadcontrol.ngfactory.mjs +3 -4
  343. package/esm2020/common/baseuploadcontrol.ngsummary.mjs +3 -2
  344. package/esm2020/components/browser/browser.mjs +146 -553
  345. package/esm2020/components/browser/browser.ngfactory.mjs +3 -4
  346. package/esm2020/components/browser/browser.ngsummary.mjs +3 -2
  347. package/esm2020/components/browser/models/browserfile.mjs +3 -2
  348. package/esm2020/components/browser/models/browserfile.ngfactory.mjs +3 -2
  349. package/esm2020/components/browser/models/browserfile.ngsummary.mjs +3 -2
  350. package/esm2020/components/browser/models/browserfiledeleterequest.mjs +8 -13
  351. package/esm2020/components/browser/models/browserfiledeleterequest.ngfactory.mjs +3 -2
  352. package/esm2020/components/browser/models/browserfiledeleterequest.ngsummary.mjs +3 -2
  353. package/esm2020/components/browser/models/browserfilerenamerequest.mjs +8 -13
  354. package/esm2020/components/browser/models/browserfilerenamerequest.ngfactory.mjs +3 -2
  355. package/esm2020/components/browser/models/browserfilerenamerequest.ngsummary.mjs +3 -2
  356. package/esm2020/components/browser/models/browserfileresponse.mjs +3 -2
  357. package/esm2020/components/browser/models/browserfileresponse.ngfactory.mjs +3 -2
  358. package/esm2020/components/browser/models/browserfileresponse.ngsummary.mjs +3 -2
  359. package/esm2020/components/browser/models/browserfilesaverequest.mjs +8 -13
  360. package/esm2020/components/browser/models/browserfilesaverequest.ngfactory.mjs +3 -2
  361. package/esm2020/components/browser/models/browserfilesaverequest.ngsummary.mjs +3 -2
  362. package/esm2020/components/browser/models/browsernode.mjs +3 -2
  363. package/esm2020/components/browser/models/browsernode.ngfactory.mjs +3 -2
  364. package/esm2020/components/browser/models/browsernode.ngsummary.mjs +3 -2
  365. package/esm2020/components/browser/models/browsernodedeleterequest.mjs +8 -13
  366. package/esm2020/components/browser/models/browsernodedeleterequest.ngfactory.mjs +3 -2
  367. package/esm2020/components/browser/models/browsernodedeleterequest.ngsummary.mjs +3 -2
  368. package/esm2020/components/browser/models/browsernodenewrequest.mjs +8 -13
  369. package/esm2020/components/browser/models/browsernodenewrequest.ngfactory.mjs +3 -2
  370. package/esm2020/components/browser/models/browsernodenewrequest.ngsummary.mjs +3 -2
  371. package/esm2020/components/browser/models/browsernoderenamerequest.mjs +8 -13
  372. package/esm2020/components/browser/models/browsernoderenamerequest.ngfactory.mjs +3 -2
  373. package/esm2020/components/browser/models/browsernoderenamerequest.ngsummary.mjs +3 -2
  374. package/esm2020/components/browser/models/browsernoderequest.mjs +8 -13
  375. package/esm2020/components/browser/models/browsernoderequest.ngfactory.mjs +3 -2
  376. package/esm2020/components/browser/models/browsernoderequest.ngsummary.mjs +3 -2
  377. package/esm2020/components/browser/models/browsernoderesponse.mjs +3 -2
  378. package/esm2020/components/browser/models/browsernoderesponse.ngfactory.mjs +3 -2
  379. package/esm2020/components/browser/models/browsernoderesponse.ngsummary.mjs +3 -2
  380. package/esm2020/controls/buttons/button.mjs +47 -143
  381. package/esm2020/controls/buttons/button.ngfactory.mjs +3 -4
  382. package/esm2020/controls/buttons/button.ngsummary.mjs +3 -2
  383. package/esm2020/controls/checkbox/checkbox.mjs +17 -31
  384. package/esm2020/controls/checkbox/checkbox.ngfactory.mjs +3 -4
  385. package/esm2020/controls/checkbox/checkbox.ngsummary.mjs +3 -2
  386. package/esm2020/controls/checkbox/radiobutton.mjs +53 -109
  387. package/esm2020/controls/checkbox/radiobutton.ngfactory.mjs +3 -4
  388. package/esm2020/controls/checkbox/radiobutton.ngsummary.mjs +3 -2
  389. package/esm2020/controls/checkbox/radiobuttons.mjs +36 -112
  390. package/esm2020/controls/checkbox/radiobuttons.ngfactory.mjs +3 -4
  391. package/esm2020/controls/checkbox/radiobuttons.ngsummary.mjs +3 -2
  392. package/esm2020/controls/confirm/confirm.button.mjs +19 -23
  393. package/esm2020/controls/confirm/confirm.button.ngfactory.mjs +3 -2
  394. package/esm2020/controls/confirm/confirm.button.ngsummary.mjs +3 -2
  395. package/esm2020/controls/confirm/confirm.mjs +29 -80
  396. package/esm2020/controls/confirm/confirm.ngfactory.mjs +3 -4
  397. package/esm2020/controls/confirm/confirm.ngsummary.mjs +3 -2
  398. package/esm2020/controls/confirm/confirm.service.mjs +37 -82
  399. package/esm2020/controls/confirm/confirm.service.ngfactory.mjs +3 -2
  400. package/esm2020/controls/confirm/confirm.service.ngsummary.mjs +3 -2
  401. package/esm2020/controls/contextmenu/contextmenu.interface.mjs +3 -0
  402. package/esm2020/controls/contextmenu/contextmenu.interface.ngfactory.mjs +3 -0
  403. package/esm2020/controls/contextmenu/contextmenu.interface.ngsummary.mjs +3 -0
  404. package/esm2020/controls/contextmenu/contextmenu.mjs +68 -191
  405. package/esm2020/controls/contextmenu/contextmenu.ngfactory.mjs +3 -4
  406. package/esm2020/controls/contextmenu/contextmenu.ngsummary.mjs +3 -2
  407. package/esm2020/controls/contextmenu/contextmenuanchor.mjs +10 -20
  408. package/esm2020/controls/contextmenu/contextmenuanchor.ngfactory.mjs +3 -4
  409. package/esm2020/controls/contextmenu/contextmenuanchor.ngsummary.mjs +3 -2
  410. package/esm2020/controls/contextmenu/contextmenucontainer.mjs +10 -20
  411. package/esm2020/controls/contextmenu/contextmenucontainer.ngfactory.mjs +3 -4
  412. package/esm2020/controls/contextmenu/contextmenucontainer.ngsummary.mjs +3 -2
  413. package/esm2020/controls/contextmenu/contextmenuitem.mjs +8 -13
  414. package/esm2020/controls/contextmenu/contextmenuitem.ngfactory.mjs +3 -4
  415. package/esm2020/controls/contextmenu/contextmenuitem.ngsummary.mjs +3 -2
  416. package/esm2020/controls/contextmenu/contextmenuitembutton.mjs +36 -103
  417. package/esm2020/controls/contextmenu/contextmenuitembutton.ngfactory.mjs +3 -4
  418. package/esm2020/controls/contextmenu/contextmenuitembutton.ngsummary.mjs +3 -2
  419. package/esm2020/controls/datetime/date.mjs +55 -218
  420. package/esm2020/controls/datetime/date.ngfactory.mjs +3 -4
  421. package/esm2020/controls/datetime/date.ngsummary.mjs +3 -2
  422. package/esm2020/controls/datetime/dateselector.mjs +127 -462
  423. package/esm2020/controls/datetime/dateselector.ngfactory.mjs +3 -4
  424. package/esm2020/controls/datetime/dateselector.ngsummary.mjs +3 -2
  425. package/esm2020/controls/datetime/datetime.mjs +55 -236
  426. package/esm2020/controls/datetime/datetime.ngfactory.mjs +3 -4
  427. package/esm2020/controls/datetime/datetime.ngsummary.mjs +3 -2
  428. package/esm2020/controls/datetime/time.mjs +54 -217
  429. package/esm2020/controls/datetime/time.ngfactory.mjs +3 -4
  430. package/esm2020/controls/datetime/time.ngsummary.mjs +3 -2
  431. package/esm2020/controls/dialog/dialog.mjs +59 -221
  432. package/esm2020/controls/dialog/dialog.ngfactory.mjs +3 -4
  433. package/esm2020/controls/dialog/dialog.ngsummary.mjs +3 -2
  434. package/esm2020/controls/form/form.mjs +37 -163
  435. package/esm2020/controls/form/form.ngfactory.mjs +3 -4
  436. package/esm2020/controls/form/form.ngsummary.mjs +3 -2
  437. package/esm2020/controls/grid/grid.mjs +54 -156
  438. package/esm2020/controls/grid/grid.ngfactory.mjs +3 -4
  439. package/esm2020/controls/grid/grid.ngsummary.mjs +3 -2
  440. package/esm2020/controls/grid/gridbutton.mjs +31 -59
  441. package/esm2020/controls/grid/gridbutton.ngfactory.mjs +3 -4
  442. package/esm2020/controls/grid/gridbutton.ngsummary.mjs +3 -2
  443. package/esm2020/controls/grid/gridcolumn.mjs +22 -46
  444. package/esm2020/controls/grid/gridcolumn.ngfactory.mjs +3 -4
  445. package/esm2020/controls/grid/gridcolumn.ngsummary.mjs +3 -2
  446. package/esm2020/controls/grid/gridcolumnaction.mjs +11 -24
  447. package/esm2020/controls/grid/gridcolumnaction.ngfactory.mjs +3 -4
  448. package/esm2020/controls/grid/gridcolumnaction.ngsummary.mjs +3 -2
  449. package/esm2020/controls/grid/gridcolumnbase.mjs +44 -128
  450. package/esm2020/controls/grid/gridcolumnbase.ngfactory.mjs +3 -4
  451. package/esm2020/controls/grid/gridcolumnbase.ngsummary.mjs +3 -2
  452. package/esm2020/controls/grid/gridimage.mjs +5 -15
  453. package/esm2020/controls/grid/gridimage.ngfactory.mjs +3 -4
  454. package/esm2020/controls/grid/gridimage.ngsummary.mjs +3 -2
  455. package/esm2020/controls/grid/model.mjs +54 -79
  456. package/esm2020/controls/grid/model.ngfactory.mjs +3 -2
  457. package/esm2020/controls/grid/model.ngsummary.mjs +3 -2
  458. package/esm2020/controls/grid/paging.mjs +89 -253
  459. package/esm2020/controls/grid/paging.ngfactory.mjs +3 -4
  460. package/esm2020/controls/grid/paging.ngsummary.mjs +3 -2
  461. package/esm2020/controls/input/input.mjs +22 -69
  462. package/esm2020/controls/input/input.ngfactory.mjs +3 -4
  463. package/esm2020/controls/input/input.ngsummary.mjs +3 -2
  464. package/esm2020/controls/input/inputarea.mjs +21 -58
  465. package/esm2020/controls/input/inputarea.ngfactory.mjs +3 -4
  466. package/esm2020/controls/input/inputarea.ngsummary.mjs +3 -2
  467. package/esm2020/controls/input/inputcurrency.mjs +10 -14
  468. package/esm2020/controls/input/inputcurrency.ngfactory.mjs +3 -4
  469. package/esm2020/controls/input/inputcurrency.ngsummary.mjs +3 -2
  470. package/esm2020/controls/input/inputdecimal.mjs +41 -150
  471. package/esm2020/controls/input/inputdecimal.ngfactory.mjs +3 -4
  472. package/esm2020/controls/input/inputdecimal.ngsummary.mjs +3 -2
  473. package/esm2020/controls/input/inputemail.mjs +14 -40
  474. package/esm2020/controls/input/inputemail.ngfactory.mjs +3 -4
  475. package/esm2020/controls/input/inputemail.ngsummary.mjs +3 -2
  476. package/esm2020/controls/input/inputinteger.mjs +40 -134
  477. package/esm2020/controls/input/inputinteger.ngfactory.mjs +3 -4
  478. package/esm2020/controls/input/inputinteger.ngsummary.mjs +3 -2
  479. package/esm2020/controls/input/inputpassword.mjs +28 -46
  480. package/esm2020/controls/input/inputpassword.ngfactory.mjs +3 -4
  481. package/esm2020/controls/input/inputpassword.ngsummary.mjs +3 -2
  482. package/esm2020/controls/input/inputsearch.mjs +20 -41
  483. package/esm2020/controls/input/inputsearch.ngfactory.mjs +3 -4
  484. package/esm2020/controls/input/inputsearch.ngsummary.mjs +3 -2
  485. package/esm2020/controls/layout/formlayout.mjs +34 -0
  486. package/esm2020/controls/layout/formlayout.ngfactory.mjs +3 -0
  487. package/esm2020/controls/layout/formlayout.ngsummary.mjs +3 -0
  488. package/esm2020/controls/list/buildvaluestring.mjs +12 -0
  489. package/esm2020/controls/list/buildvaluestring.ngfactory.mjs +3 -0
  490. package/esm2020/controls/list/buildvaluestring.ngsummary.mjs +3 -0
  491. package/esm2020/controls/list/dropdown.mjs +69 -249
  492. package/esm2020/controls/list/dropdown.ngfactory.mjs +3 -4
  493. package/esm2020/controls/list/dropdown.ngsummary.mjs +3 -3
  494. package/esm2020/controls/list/dropdownoptions.mjs +29 -0
  495. package/esm2020/controls/list/dropdownoptions.ngfactory.mjs +3 -0
  496. package/esm2020/controls/list/dropdownoptions.ngsummary.mjs +3 -0
  497. package/esm2020/controls/list/list.module.mjs +3 -16
  498. package/esm2020/controls/list/list.module.ngfactory.mjs +3 -4
  499. package/esm2020/controls/list/list.module.ngsummary.mjs +3 -2
  500. package/esm2020/controls/list/listbox.mjs +58 -175
  501. package/esm2020/controls/list/listbox.ngfactory.mjs +3 -4
  502. package/esm2020/controls/list/listbox.ngsummary.mjs +3 -3
  503. package/esm2020/controls/multilanguage/multilanguageinput.mjs +62 -228
  504. package/esm2020/controls/multilanguage/multilanguageinput.ngfactory.mjs +3 -4
  505. package/esm2020/controls/multilanguage/multilanguageinput.ngsummary.mjs +3 -2
  506. package/esm2020/controls/multilanguage/multilanguageinputarea.mjs +65 -230
  507. package/esm2020/controls/multilanguage/multilanguageinputarea.ngfactory.mjs +3 -4
  508. package/esm2020/controls/multilanguage/multilanguageinputarea.ngsummary.mjs +3 -2
  509. package/esm2020/controls/static/formcontainer.mjs +27 -53
  510. package/esm2020/controls/static/formcontainer.ngfactory.mjs +3 -4
  511. package/esm2020/controls/static/formcontainer.ngsummary.mjs +3 -2
  512. package/esm2020/controls/static/staticlabel.mjs +16 -33
  513. package/esm2020/controls/static/staticlabel.ngfactory.mjs +3 -4
  514. package/esm2020/controls/static/staticlabel.ngsummary.mjs +3 -2
  515. package/esm2020/controls/tabs/tab.mjs +29 -77
  516. package/esm2020/controls/tabs/tab.ngfactory.mjs +3 -4
  517. package/esm2020/controls/tabs/tab.ngsummary.mjs +3 -2
  518. package/esm2020/controls/tabs/tabitem.mjs +12 -40
  519. package/esm2020/controls/tabs/tabitem.ngfactory.mjs +3 -4
  520. package/esm2020/controls/tabs/tabitem.ngsummary.mjs +3 -2
  521. package/esm2020/controls/tinymce/tinymce.mjs +82 -249
  522. package/esm2020/controls/tinymce/tinymce.ngfactory.mjs +3 -4
  523. package/esm2020/controls/tinymce/tinymce.ngsummary.mjs +3 -2
  524. package/esm2020/controls/tinymce/tinymcedialogsettings.mjs +10 -13
  525. package/esm2020/controls/tinymce/tinymcedialogsettings.ngfactory.mjs +3 -2
  526. package/esm2020/controls/tinymce/tinymcedialogsettings.ngsummary.mjs +3 -2
  527. package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.mjs +3 -5
  528. package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.mjs +3 -2
  529. package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.ngsummary.mjs +3 -2
  530. package/esm2020/controls/tinymce/tinymceinstance.mjs +3 -2
  531. package/esm2020/controls/tinymce/tinymceinstance.ngfactory.mjs +3 -2
  532. package/esm2020/controls/tinymce/tinymceinstance.ngsummary.mjs +3 -2
  533. package/esm2020/controls/tooltip/tooltip.mjs +86 -365
  534. package/esm2020/controls/tooltip/tooltip.ngfactory.mjs +3 -4
  535. package/esm2020/controls/tooltip/tooltip.ngsummary.mjs +3 -2
  536. package/esm2020/controls/treeview/treeview.mjs +104 -343
  537. package/esm2020/controls/treeview/treeview.ngfactory.mjs +3 -4
  538. package/esm2020/controls/treeview/treeview.ngsummary.mjs +3 -2
  539. package/esm2020/controls/upload/dropzonemultiple.mjs +50 -165
  540. package/esm2020/controls/upload/dropzonemultiple.ngfactory.mjs +3 -4
  541. package/esm2020/controls/upload/dropzonemultiple.ngsummary.mjs +3 -2
  542. package/esm2020/controls/upload/dropzonesingle.mjs +35 -106
  543. package/esm2020/controls/upload/dropzonesingle.ngfactory.mjs +3 -4
  544. package/esm2020/controls/upload/dropzonesingle.ngsummary.mjs +3 -2
  545. package/esm2020/controls/upload/uploadmultiple.mjs +39 -124
  546. package/esm2020/controls/upload/uploadmultiple.ngfactory.mjs +3 -4
  547. package/esm2020/controls/upload/uploadmultiple.ngsummary.mjs +3 -2
  548. package/esm2020/controls/upload/uploadsingle.mjs +24 -58
  549. package/esm2020/controls/upload/uploadsingle.ngfactory.mjs +3 -4
  550. package/esm2020/controls/upload/uploadsingle.ngsummary.mjs +3 -2
  551. package/esm2020/controls/validation/validationsummary.mjs +33 -127
  552. package/esm2020/controls/validation/validationsummary.ngfactory.mjs +3 -4
  553. package/esm2020/controls/validation/validationsummary.ngsummary.mjs +3 -2
  554. package/esm2020/controls/wizard/wizard.mjs +41 -144
  555. package/esm2020/controls/wizard/wizard.ngfactory.mjs +3 -4
  556. package/esm2020/controls/wizard/wizard.ngsummary.mjs +3 -2
  557. package/esm2020/controls/wizard/wizarditem.mjs +9 -33
  558. package/esm2020/controls/wizard/wizarditem.ngfactory.mjs +3 -4
  559. package/esm2020/controls/wizard/wizarditem.ngsummary.mjs +3 -2
  560. package/esm2020/enums/ButtonRoleType.mjs +3 -0
  561. package/esm2020/enums/ButtonRoleType.ngfactory.mjs +3 -0
  562. package/esm2020/enums/ButtonRoleType.ngsummary.mjs +3 -0
  563. package/esm2020/enums/ControlHeight.mjs +11 -0
  564. package/esm2020/enums/ControlHeight.ngfactory.mjs +3 -0
  565. package/esm2020/enums/ControlHeight.ngsummary.mjs +3 -0
  566. package/esm2020/enums/IconType.mjs +5 -9
  567. package/esm2020/enums/IconType.ngfactory.mjs +3 -2
  568. package/esm2020/enums/IconType.ngsummary.mjs +3 -2
  569. package/esm2020/interfaces/ISacConfigurationService.mjs +3 -0
  570. package/esm2020/interfaces/ISacConfigurationService.ngfactory.mjs +3 -0
  571. package/esm2020/interfaces/ISacConfigurationService.ngsummary.mjs +3 -0
  572. package/esm2020/interfaces/ISacFileBrowserService.mjs +3 -2
  573. package/esm2020/interfaces/ISacFileBrowserService.ngfactory.mjs +3 -2
  574. package/esm2020/interfaces/ISacFileBrowserService.ngsummary.mjs +3 -2
  575. package/esm2020/interfaces/ISacIconService.mjs +3 -2
  576. package/esm2020/interfaces/ISacIconService.ngfactory.mjs +3 -2
  577. package/esm2020/interfaces/ISacIconService.ngsummary.mjs +3 -2
  578. package/esm2020/interfaces/ISacLabelSizes.mjs +3 -0
  579. package/esm2020/interfaces/ISacLabelSizes.ngfactory.mjs +3 -0
  580. package/esm2020/interfaces/ISacLabelSizes.ngsummary.mjs +3 -0
  581. package/esm2020/interfaces/ISacLanguageService.mjs +3 -2
  582. package/esm2020/interfaces/ISacLanguageService.ngfactory.mjs +3 -2
  583. package/esm2020/interfaces/ISacLanguageService.ngsummary.mjs +3 -2
  584. package/esm2020/interfaces/ISacLocalisationService.mjs +3 -2
  585. package/esm2020/interfaces/ISacLocalisationService.ngfactory.mjs +3 -2
  586. package/esm2020/interfaces/ISacLocalisationService.ngsummary.mjs +3 -2
  587. package/esm2020/interfaces/ISacUploadEventCompleteState.mjs +3 -0
  588. package/esm2020/interfaces/ISacUploadEventCompleteState.ngfactory.mjs +3 -0
  589. package/esm2020/interfaces/ISacUploadEventCompleteState.ngsummary.mjs +3 -0
  590. package/esm2020/interfaces/ISacValidationKeyService.mjs +3 -0
  591. package/esm2020/interfaces/ISacValidationKeyService.ngfactory.mjs +3 -0
  592. package/esm2020/interfaces/ISacValidationKeyService.ngsummary.mjs +3 -0
  593. package/esm2020/interfaces/iabstractcontrollabel.mjs +3 -2
  594. package/esm2020/interfaces/iabstractcontrollabel.ngfactory.mjs +3 -2
  595. package/esm2020/interfaces/iabstractcontrollabel.ngsummary.mjs +3 -2
  596. package/esm2020/interfaces/iconfirmcomponent.mjs +3 -2
  597. package/esm2020/interfaces/iconfirmcomponent.ngfactory.mjs +3 -2
  598. package/esm2020/interfaces/iconfirmcomponent.ngsummary.mjs +3 -2
  599. package/esm2020/interfaces/idatetimecontrol.mjs +3 -2
  600. package/esm2020/interfaces/idatetimecontrol.ngfactory.mjs +3 -2
  601. package/esm2020/interfaces/idatetimecontrol.ngsummary.mjs +3 -2
  602. package/esm2020/interfaces/iuploadcontrol.mjs +3 -2
  603. package/esm2020/interfaces/iuploadcontrol.ngfactory.mjs +3 -2
  604. package/esm2020/interfaces/iuploadcontrol.ngsummary.mjs +3 -2
  605. package/esm2020/interfaces/treeviewaction.interface.mjs +3 -0
  606. package/esm2020/interfaces/treeviewaction.interface.ngfactory.mjs +3 -0
  607. package/esm2020/interfaces/treeviewaction.interface.ngsummary.mjs +3 -0
  608. package/esm2020/models/languagemodel.mjs +7 -13
  609. package/esm2020/models/languagemodel.ngfactory.mjs +3 -2
  610. package/esm2020/models/languagemodel.ngsummary.mjs +3 -2
  611. package/esm2020/public_api.mjs +27 -96
  612. package/esm2020/public_api.ngfactory.mjs +3 -2
  613. package/esm2020/public_api.ngsummary.mjs +3 -2
  614. package/esm2020/services/index.mjs +3 -5
  615. package/esm2020/services/index.ngfactory.mjs +3 -2
  616. package/esm2020/services/index.ngsummary.mjs +3 -2
  617. package/esm2020/services/sac-configuration.service.mjs +41 -0
  618. package/esm2020/services/sac-configuration.service.ngfactory.mjs +3 -0
  619. package/esm2020/services/sac-configuration.service.ngsummary.mjs +3 -0
  620. package/esm2020/services/sac-filebrowser.service.mjs +53 -203
  621. package/esm2020/services/sac-filebrowser.service.ngfactory.mjs +3 -4
  622. package/esm2020/services/sac-filebrowser.service.ngsummary.mjs +3 -3
  623. package/esm2020/services/sac-icon.service.mjs +81 -159
  624. package/esm2020/services/sac-icon.service.ngfactory.mjs +3 -4
  625. package/esm2020/services/sac-icon.service.ngsummary.mjs +3 -3
  626. package/esm2020/services/sac-language.service.mjs +11 -47
  627. package/esm2020/services/sac-language.service.ngfactory.mjs +3 -4
  628. package/esm2020/services/sac-language.service.ngsummary.mjs +3 -3
  629. package/esm2020/services/sac-localisation.service.mjs +41 -433
  630. package/esm2020/services/sac-localisation.service.ngfactory.mjs +3 -4
  631. package/esm2020/services/sac-localisation.service.ngsummary.mjs +3 -3
  632. package/esm2020/services/sac-validationkey.service.mjs +7 -0
  633. package/esm2020/services/sac-validationkey.service.ngfactory.mjs +3 -0
  634. package/esm2020/services/sac-validationkey.service.ngsummary.mjs +3 -0
  635. package/esm2020/simpleangularcontrols-sac-common.mjs +5 -5
  636. package/esm2020/utilities/convertion.mjs +12 -32
  637. package/esm2020/utilities/convertion.ngfactory.mjs +3 -2
  638. package/esm2020/utilities/convertion.ngsummary.mjs +3 -2
  639. package/esm2020/utilities/datatypes.mjs +7 -9
  640. package/esm2020/utilities/datatypes.ngfactory.mjs +3 -2
  641. package/esm2020/utilities/datatypes.ngsummary.mjs +3 -2
  642. package/esm2020/utilities/enums.mjs +11 -16
  643. package/esm2020/utilities/enums.ngfactory.mjs +3 -2
  644. package/esm2020/utilities/enums.ngsummary.mjs +3 -2
  645. package/esm2020/utilities/guid.mjs +8 -0
  646. package/esm2020/utilities/guid.ngfactory.mjs +3 -0
  647. package/esm2020/utilities/guid.ngsummary.mjs +3 -0
  648. package/esm2020/utilities/interpolation.mjs +15 -50
  649. package/esm2020/utilities/interpolation.ngfactory.mjs +3 -2
  650. package/esm2020/utilities/interpolation.ngsummary.mjs +3 -2
  651. package/esm2020/utilities/popuphelper.mjs +80 -0
  652. package/esm2020/utilities/popuphelper.ngfactory.mjs +3 -0
  653. package/esm2020/utilities/popuphelper.ngsummary.mjs +3 -0
  654. package/esm2020/utilities/positioning.mjs +58 -301
  655. package/esm2020/utilities/positioning.ngfactory.mjs +3 -2
  656. package/esm2020/utilities/positioning.ngsummary.mjs +3 -2
  657. package/esm2020/utilities/testingattribute.pipe.mjs +12 -0
  658. package/esm2020/utilities/testingattribute.pipe.ngfactory.mjs +3 -0
  659. package/esm2020/utilities/testingattribute.pipe.ngsummary.mjs +3 -0
  660. package/esm2020/utilities/utilities.module.mjs +3 -0
  661. package/esm2020/utilities/utilities.module.ngfactory.mjs +3 -0
  662. package/esm2020/utilities/utilities.module.ngsummary.mjs +3 -0
  663. package/esm2020/validation/email.validator.mjs +3 -13
  664. package/esm2020/validation/email.validator.ngfactory.mjs +3 -2
  665. package/esm2020/validation/email.validator.ngsummary.mjs +3 -2
  666. package/esm2020/validation/equals.validator.mjs +3 -0
  667. package/esm2020/validation/equals.validator.ngfactory.mjs +3 -0
  668. package/esm2020/validation/equals.validator.ngsummary.mjs +3 -0
  669. package/esm2020/validation/index.mjs +3 -3
  670. package/esm2020/validation/index.ngfactory.mjs +3 -2
  671. package/esm2020/validation/index.ngsummary.mjs +3 -2
  672. package/esm2020/validation/invaliddate.validator.mjs +3 -14
  673. package/esm2020/validation/invaliddate.validator.ngfactory.mjs +3 -2
  674. package/esm2020/validation/invaliddate.validator.ngsummary.mjs +3 -2
  675. package/esm2020/validation/isDateValid.mjs +11 -15
  676. package/esm2020/validation/isDateValid.ngfactory.mjs +3 -2
  677. package/esm2020/validation/isDateValid.ngsummary.mjs +3 -2
  678. package/esm2020/validation/maxdate.validator.mjs +4 -21
  679. package/esm2020/validation/maxdate.validator.ngfactory.mjs +3 -2
  680. package/esm2020/validation/maxdate.validator.ngsummary.mjs +3 -2
  681. package/esm2020/validation/maxtime.validator.mjs +4 -21
  682. package/esm2020/validation/maxtime.validator.ngfactory.mjs +3 -2
  683. package/esm2020/validation/maxtime.validator.ngsummary.mjs +3 -2
  684. package/esm2020/validation/maxvalue.validator.mjs +3 -16
  685. package/esm2020/validation/maxvalue.validator.ngfactory.mjs +3 -2
  686. package/esm2020/validation/maxvalue.validator.ngsummary.mjs +3 -2
  687. package/esm2020/validation/mindate.validator.mjs +4 -21
  688. package/esm2020/validation/mindate.validator.ngfactory.mjs +3 -2
  689. package/esm2020/validation/mindate.validator.ngsummary.mjs +3 -2
  690. package/esm2020/validation/minfiles.validator.mjs +4 -19
  691. package/esm2020/validation/minfiles.validator.ngfactory.mjs +3 -2
  692. package/esm2020/validation/minfiles.validator.ngsummary.mjs +3 -2
  693. package/esm2020/validation/mintextlength.validator.mjs +5 -0
  694. package/esm2020/validation/mintextlength.validator.ngfactory.mjs +3 -0
  695. package/esm2020/validation/mintextlength.validator.ngsummary.mjs +3 -0
  696. package/esm2020/validation/mintime.validator.mjs +4 -21
  697. package/esm2020/validation/mintime.validator.ngfactory.mjs +3 -2
  698. package/esm2020/validation/mintime.validator.ngsummary.mjs +3 -2
  699. package/esm2020/validation/minvalue.validator.mjs +3 -16
  700. package/esm2020/validation/minvalue.validator.ngfactory.mjs +3 -2
  701. package/esm2020/validation/minvalue.validator.ngsummary.mjs +3 -2
  702. package/esm2020/validation/multilanguagerequired.validator.mjs +3 -22
  703. package/esm2020/validation/multilanguagerequired.validator.ngfactory.mjs +3 -2
  704. package/esm2020/validation/multilanguagerequired.validator.ngsummary.mjs +3 -2
  705. package/esm2020/validation/multilanguagerequiredany.validator.mjs +3 -22
  706. package/esm2020/validation/multilanguagerequiredany.validator.ngfactory.mjs +3 -2
  707. package/esm2020/validation/multilanguagerequiredany.validator.ngsummary.mjs +3 -2
  708. package/esm2020/validation/notequals.validator.mjs +3 -0
  709. package/esm2020/validation/notequals.validator.ngfactory.mjs +3 -0
  710. package/esm2020/validation/notequals.validator.ngsummary.mjs +3 -0
  711. package/esm2020/validation/pattern.validator.mjs +3 -16
  712. package/esm2020/validation/pattern.validator.ngfactory.mjs +3 -2
  713. package/esm2020/validation/pattern.validator.ngsummary.mjs +3 -2
  714. package/esm2020/validation/required.validator.mjs +3 -13
  715. package/esm2020/validation/required.validator.ngfactory.mjs +3 -2
  716. package/esm2020/validation/required.validator.ngsummary.mjs +3 -2
  717. package/esm2020/validation/validation.mjs +128 -188
  718. package/esm2020/validation/validation.ngfactory.mjs +3 -2
  719. package/esm2020/validation/validation.ngsummary.mjs +3 -2
  720. package/esm2020/validation/validationerrorcreator.mjs +3 -11
  721. package/esm2020/validation/validationerrorcreator.ngfactory.mjs +3 -2
  722. package/esm2020/validation/validationerrorcreator.ngsummary.mjs +3 -2
  723. package/esm2020/validation/validationerroritem.mjs +15 -27
  724. package/esm2020/validation/validationerroritem.ngfactory.mjs +3 -2
  725. package/esm2020/validation/validationerroritem.ngsummary.mjs +3 -2
  726. package/fesm2015/simpleangularcontrols-sac-common.mjs +3196 -9983
  727. package/fesm2015/simpleangularcontrols-sac-common.mjs.map +1 -1
  728. package/fesm2020/simpleangularcontrols-sac-common.mjs +3196 -9972
  729. package/fesm2020/simpleangularcontrols-sac-common.mjs.map +1 -1
  730. package/interfaces/ISacConfigurationService.d.ts +63 -0
  731. package/interfaces/ISacConfigurationService.d.ts.map +1 -0
  732. package/interfaces/ISacConfigurationService.ngfactory.d.ts +2 -0
  733. package/interfaces/ISacConfigurationService.ngfactory.d.ts.map +1 -0
  734. package/interfaces/ISacConfigurationService.ngsummary.d.ts +2 -0
  735. package/interfaces/ISacConfigurationService.ngsummary.d.ts.map +1 -0
  736. package/interfaces/ISacFileBrowserService.d.ts +65 -65
  737. package/interfaces/ISacFileBrowserService.ngfactory.d.ts +1 -1
  738. package/interfaces/ISacFileBrowserService.ngsummary.d.ts +1 -1
  739. package/interfaces/ISacIconService.d.ts +141 -89
  740. package/interfaces/ISacIconService.d.ts.map +1 -1
  741. package/interfaces/ISacIconService.ngfactory.d.ts +1 -1
  742. package/interfaces/ISacIconService.ngsummary.d.ts +1 -1
  743. package/interfaces/ISacLabelSizes.d.ts +27 -0
  744. package/interfaces/ISacLabelSizes.d.ts.map +1 -0
  745. package/interfaces/ISacLabelSizes.ngfactory.d.ts +2 -0
  746. package/interfaces/ISacLabelSizes.ngfactory.d.ts.map +1 -0
  747. package/interfaces/ISacLabelSizes.ngsummary.d.ts +2 -0
  748. package/interfaces/ISacLabelSizes.ngsummary.d.ts.map +1 -0
  749. package/interfaces/ISacLanguageService.d.ts +12 -12
  750. package/interfaces/ISacLanguageService.ngfactory.d.ts +1 -1
  751. package/interfaces/ISacLanguageService.ngsummary.d.ts +1 -1
  752. package/interfaces/ISacLocalisationService.d.ts +10 -10
  753. package/interfaces/ISacLocalisationService.ngfactory.d.ts +1 -1
  754. package/interfaces/ISacLocalisationService.ngsummary.d.ts +1 -1
  755. package/interfaces/ISacUploadEventCompleteState.d.ts +6 -0
  756. package/interfaces/ISacUploadEventCompleteState.d.ts.map +1 -0
  757. package/interfaces/ISacUploadEventCompleteState.ngfactory.d.ts +2 -0
  758. package/interfaces/ISacUploadEventCompleteState.ngfactory.d.ts.map +1 -0
  759. package/interfaces/ISacUploadEventCompleteState.ngsummary.d.ts +2 -0
  760. package/interfaces/ISacUploadEventCompleteState.ngsummary.d.ts.map +1 -0
  761. package/interfaces/ISacValidationKeyService.d.ts +53 -0
  762. package/interfaces/ISacValidationKeyService.d.ts.map +1 -0
  763. package/interfaces/ISacValidationKeyService.ngfactory.d.ts +2 -0
  764. package/interfaces/ISacValidationKeyService.ngfactory.d.ts.map +1 -0
  765. package/interfaces/ISacValidationKeyService.ngsummary.d.ts +2 -0
  766. package/interfaces/ISacValidationKeyService.ngsummary.d.ts.map +1 -0
  767. package/interfaces/iabstractcontrollabel.d.ts +6 -6
  768. package/interfaces/iabstractcontrollabel.ngfactory.d.ts +1 -1
  769. package/interfaces/iabstractcontrollabel.ngsummary.d.ts +1 -1
  770. package/interfaces/iconfirmcomponent.d.ts +18 -18
  771. package/interfaces/iconfirmcomponent.ngfactory.d.ts +1 -1
  772. package/interfaces/iconfirmcomponent.ngsummary.d.ts +1 -1
  773. package/interfaces/idatetimecontrol.d.ts +7 -7
  774. package/interfaces/idatetimecontrol.ngfactory.d.ts +1 -1
  775. package/interfaces/idatetimecontrol.ngsummary.d.ts +1 -1
  776. package/interfaces/iuploadcontrol.d.ts +9 -9
  777. package/interfaces/iuploadcontrol.ngfactory.d.ts +1 -1
  778. package/interfaces/iuploadcontrol.ngsummary.d.ts +1 -1
  779. package/interfaces/treeviewaction.interface.d.ts +5 -0
  780. package/interfaces/treeviewaction.interface.d.ts.map +1 -0
  781. package/interfaces/treeviewaction.interface.ngfactory.d.ts +2 -0
  782. package/interfaces/treeviewaction.interface.ngfactory.d.ts.map +1 -0
  783. package/interfaces/treeviewaction.interface.ngsummary.d.ts +2 -0
  784. package/interfaces/treeviewaction.interface.ngsummary.d.ts.map +1 -0
  785. package/models/languagemodel.d.ts +22 -22
  786. package/models/languagemodel.ngfactory.d.ts +1 -1
  787. package/models/languagemodel.ngsummary.d.ts +1 -1
  788. package/package.json +2 -2
  789. package/public_api.d.ts +88 -74
  790. package/public_api.d.ts.map +1 -1
  791. package/public_api.ngfactory.d.ts +1 -1
  792. package/public_api.ngsummary.d.ts +1 -1
  793. package/services/index.d.ts +6 -4
  794. package/services/index.d.ts.map +1 -1
  795. package/services/index.ngfactory.d.ts +1 -1
  796. package/services/index.ngsummary.d.ts +1 -1
  797. package/services/sac-configuration.service.d.ts +135 -0
  798. package/services/sac-configuration.service.d.ts.map +1 -0
  799. package/services/sac-configuration.service.ngfactory.d.ts +5 -0
  800. package/services/sac-configuration.service.ngfactory.d.ts.map +1 -0
  801. package/services/sac-configuration.service.ngsummary.d.ts +3 -0
  802. package/services/sac-configuration.service.ngsummary.d.ts.map +1 -0
  803. package/services/sac-filebrowser.service.d.ts +145 -145
  804. package/services/sac-filebrowser.service.ngfactory.d.ts +4 -4
  805. package/services/sac-filebrowser.service.ngsummary.d.ts +2 -2
  806. package/services/sac-icon.service.d.ts +293 -189
  807. package/services/sac-icon.service.d.ts.map +1 -1
  808. package/services/sac-icon.service.ngfactory.d.ts +4 -4
  809. package/services/sac-icon.service.ngsummary.d.ts +2 -2
  810. package/services/sac-language.service.d.ts +31 -31
  811. package/services/sac-language.service.ngfactory.d.ts +4 -4
  812. package/services/sac-language.service.ngsummary.d.ts +2 -2
  813. package/services/sac-localisation.service.d.ts +142 -136
  814. package/services/sac-localisation.service.d.ts.map +1 -1
  815. package/services/sac-localisation.service.ngfactory.d.ts +4 -4
  816. package/services/sac-localisation.service.ngsummary.d.ts +2 -2
  817. package/services/sac-validationkey.service.d.ts +59 -0
  818. package/services/sac-validationkey.service.d.ts.map +1 -0
  819. package/services/sac-validationkey.service.ngfactory.d.ts +4 -0
  820. package/services/sac-validationkey.service.ngfactory.d.ts.map +1 -0
  821. package/services/sac-validationkey.service.ngsummary.d.ts +2 -0
  822. package/services/sac-validationkey.service.ngsummary.d.ts.map +1 -0
  823. package/simpleangularcontrols-sac-common-13.0.0-rc.21.tgz +0 -0
  824. package/simpleangularcontrols-sac-common.d.ts +5 -5
  825. package/utilities/convertion.d.ts +15 -15
  826. package/utilities/convertion.ngfactory.d.ts +1 -1
  827. package/utilities/convertion.ngsummary.d.ts +1 -1
  828. package/utilities/datatypes.d.ts +6 -6
  829. package/utilities/datatypes.ngfactory.d.ts +1 -1
  830. package/utilities/datatypes.ngsummary.d.ts +1 -1
  831. package/utilities/enums.d.ts +12 -10
  832. package/utilities/enums.d.ts.map +1 -1
  833. package/utilities/enums.ngfactory.d.ts +1 -1
  834. package/utilities/enums.ngsummary.d.ts +1 -1
  835. package/utilities/guid.d.ts +5 -0
  836. package/utilities/guid.d.ts.map +1 -0
  837. package/utilities/guid.ngfactory.d.ts +2 -0
  838. package/utilities/guid.ngfactory.d.ts.map +1 -0
  839. package/utilities/guid.ngsummary.d.ts +2 -0
  840. package/utilities/guid.ngsummary.d.ts.map +1 -0
  841. package/utilities/interpolation.d.ts +21 -21
  842. package/utilities/interpolation.ngfactory.d.ts +1 -1
  843. package/utilities/interpolation.ngsummary.d.ts +1 -1
  844. package/utilities/popuphelper.d.ts +84 -0
  845. package/utilities/popuphelper.d.ts.map +1 -0
  846. package/utilities/popuphelper.ngfactory.d.ts +2 -0
  847. package/utilities/popuphelper.ngfactory.d.ts.map +1 -0
  848. package/utilities/popuphelper.ngsummary.d.ts +2 -0
  849. package/utilities/popuphelper.ngsummary.d.ts.map +1 -0
  850. package/utilities/positioning.d.ts +82 -82
  851. package/utilities/positioning.ngfactory.d.ts +1 -1
  852. package/utilities/positioning.ngsummary.d.ts +1 -1
  853. package/utilities/testingattribute.pipe.d.ts +16 -0
  854. package/utilities/testingattribute.pipe.d.ts.map +1 -0
  855. package/utilities/testingattribute.pipe.ngfactory.d.ts +4 -0
  856. package/utilities/testingattribute.pipe.ngfactory.d.ts.map +1 -0
  857. package/utilities/testingattribute.pipe.ngsummary.d.ts +2 -0
  858. package/utilities/testingattribute.pipe.ngsummary.d.ts.map +1 -0
  859. package/utilities/utilities.module.d.ts +8 -0
  860. package/utilities/utilities.module.d.ts.map +1 -0
  861. package/utilities/utilities.module.ngfactory.d.ts +4 -0
  862. package/utilities/utilities.module.ngfactory.d.ts.map +1 -0
  863. package/utilities/utilities.module.ngsummary.d.ts +2 -0
  864. package/utilities/utilities.module.ngsummary.d.ts.map +1 -0
  865. package/validation/email.validator.d.ts +2 -2
  866. package/validation/email.validator.ngfactory.d.ts +1 -1
  867. package/validation/email.validator.ngsummary.d.ts +1 -1
  868. package/validation/equals.validator.d.ts +3 -0
  869. package/validation/equals.validator.d.ts.map +1 -0
  870. package/validation/equals.validator.ngfactory.d.ts +2 -0
  871. package/validation/equals.validator.ngfactory.d.ts.map +1 -0
  872. package/validation/equals.validator.ngsummary.d.ts +2 -0
  873. package/validation/equals.validator.ngsummary.d.ts.map +1 -0
  874. package/validation/index.d.ts +2 -2
  875. package/validation/index.ngfactory.d.ts +1 -1
  876. package/validation/index.ngsummary.d.ts +1 -1
  877. package/validation/invaliddate.validator.d.ts +2 -2
  878. package/validation/invaliddate.validator.ngfactory.d.ts +1 -1
  879. package/validation/invaliddate.validator.ngsummary.d.ts +1 -1
  880. package/validation/isDateValid.d.ts +5 -5
  881. package/validation/isDateValid.d.ts.map +1 -1
  882. package/validation/isDateValid.ngfactory.d.ts +1 -1
  883. package/validation/isDateValid.ngsummary.d.ts +1 -1
  884. package/validation/maxdate.validator.d.ts +2 -2
  885. package/validation/maxdate.validator.ngfactory.d.ts +1 -1
  886. package/validation/maxdate.validator.ngsummary.d.ts +1 -1
  887. package/validation/maxtime.validator.d.ts +2 -2
  888. package/validation/maxtime.validator.ngfactory.d.ts +1 -1
  889. package/validation/maxtime.validator.ngsummary.d.ts +1 -1
  890. package/validation/maxvalue.validator.d.ts +2 -2
  891. package/validation/maxvalue.validator.ngfactory.d.ts +1 -1
  892. package/validation/maxvalue.validator.ngsummary.d.ts +1 -1
  893. package/validation/mindate.validator.d.ts +2 -2
  894. package/validation/mindate.validator.ngfactory.d.ts +1 -1
  895. package/validation/mindate.validator.ngsummary.d.ts +1 -1
  896. package/validation/minfiles.validator.d.ts +2 -2
  897. package/validation/minfiles.validator.ngfactory.d.ts +1 -1
  898. package/validation/minfiles.validator.ngsummary.d.ts +1 -1
  899. package/validation/mintextlength.validator.d.ts +3 -0
  900. package/validation/mintextlength.validator.d.ts.map +1 -0
  901. package/validation/mintextlength.validator.ngfactory.d.ts +2 -0
  902. package/validation/mintextlength.validator.ngfactory.d.ts.map +1 -0
  903. package/validation/mintextlength.validator.ngsummary.d.ts +2 -0
  904. package/validation/mintextlength.validator.ngsummary.d.ts.map +1 -0
  905. package/validation/mintime.validator.d.ts +2 -2
  906. package/validation/mintime.validator.ngfactory.d.ts +1 -1
  907. package/validation/mintime.validator.ngsummary.d.ts +1 -1
  908. package/validation/minvalue.validator.d.ts +2 -2
  909. package/validation/minvalue.validator.ngfactory.d.ts +1 -1
  910. package/validation/minvalue.validator.ngsummary.d.ts +1 -1
  911. package/validation/multilanguagerequired.validator.d.ts +3 -3
  912. package/validation/multilanguagerequired.validator.ngfactory.d.ts +1 -1
  913. package/validation/multilanguagerequired.validator.ngsummary.d.ts +1 -1
  914. package/validation/multilanguagerequiredany.validator.d.ts +3 -3
  915. package/validation/multilanguagerequiredany.validator.ngfactory.d.ts +1 -1
  916. package/validation/multilanguagerequiredany.validator.ngsummary.d.ts +1 -1
  917. package/validation/notequals.validator.d.ts +3 -0
  918. package/validation/notequals.validator.d.ts.map +1 -0
  919. package/validation/notequals.validator.ngfactory.d.ts +2 -0
  920. package/validation/notequals.validator.ngfactory.d.ts.map +1 -0
  921. package/validation/notequals.validator.ngsummary.d.ts +2 -0
  922. package/validation/notequals.validator.ngsummary.d.ts.map +1 -0
  923. package/validation/pattern.validator.d.ts +2 -2
  924. package/validation/pattern.validator.ngfactory.d.ts +1 -1
  925. package/validation/pattern.validator.ngsummary.d.ts +1 -1
  926. package/validation/required.validator.d.ts +2 -2
  927. package/validation/required.validator.ngfactory.d.ts +1 -1
  928. package/validation/required.validator.ngsummary.d.ts +1 -1
  929. package/validation/validation.d.ts +157 -139
  930. package/validation/validation.d.ts.map +1 -1
  931. package/validation/validation.ngfactory.d.ts +1 -1
  932. package/validation/validation.ngsummary.d.ts +1 -1
  933. package/validation/validationerrorcreator.d.ts +1 -1
  934. package/validation/validationerrorcreator.ngfactory.d.ts +1 -1
  935. package/validation/validationerrorcreator.ngsummary.d.ts +1 -1
  936. package/validation/validationerroritem.d.ts +33 -33
  937. package/validation/validationerroritem.ngfactory.d.ts +1 -1
  938. package/validation/validationerroritem.ngsummary.d.ts +1 -1
  939. package/controls/treeview/ngtreeitemaction.d.ts +0 -44
  940. package/controls/treeview/ngtreeitemaction.d.ts.map +0 -1
  941. package/controls/treeview/ngtreeitemaction.ngfactory.d.ts +0 -4
  942. package/controls/treeview/ngtreeitemaction.ngfactory.d.ts.map +0 -1
  943. package/controls/treeview/ngtreeitemaction.ngsummary.d.ts +0 -2
  944. package/controls/treeview/ngtreeitemaction.ngsummary.d.ts.map +0 -1
  945. package/controls/treeview/treeviewchild.d.ts +0 -16
  946. package/controls/treeview/treeviewchild.d.ts.map +0 -1
  947. package/controls/treeview/treeviewchild.ngfactory.d.ts +0 -4
  948. package/controls/treeview/treeviewchild.ngfactory.d.ts.map +0 -1
  949. package/controls/treeview/treeviewchild.ngsummary.d.ts +0 -2
  950. package/controls/treeview/treeviewchild.ngsummary.d.ts.map +0 -1
  951. package/esm2020/controls/treeview/ngtreeitemaction.mjs +0 -62
  952. package/esm2020/controls/treeview/ngtreeitemaction.ngfactory.mjs +0 -4
  953. package/esm2020/controls/treeview/ngtreeitemaction.ngsummary.mjs +0 -2
  954. package/esm2020/controls/treeview/treeviewchild.mjs +0 -21
  955. package/esm2020/controls/treeview/treeviewchild.ngfactory.mjs +0 -4
  956. package/esm2020/controls/treeview/treeviewchild.ngsummary.mjs +0 -2
  957. package/esm2020/validation/minlength.validator.mjs +0 -21
  958. package/esm2020/validation/minlength.validator.ngfactory.mjs +0 -2
  959. package/esm2020/validation/minlength.validator.ngsummary.mjs +0 -2
  960. package/simpleangularcontrols-sac-common-13.0.0-rc.2.tgz +0 -0
  961. package/validation/minlength.validator.d.ts +0 -3
  962. package/validation/minlength.validator.d.ts.map +0 -1
  963. package/validation/minlength.validator.ngfactory.d.ts +0 -2
  964. package/validation/minlength.validator.ngfactory.d.ts.map +0 -1
  965. package/validation/minlength.validator.ngsummary.d.ts +0 -2
  966. package/validation/minlength.validator.ngsummary.d.ts.map +0 -1
@@ -1,365 +1,86 @@
1
- import { Directive, Input, ViewChild } from '@angular/core';
2
- import { convertToBoolean } from '../../utilities/convertion';
3
- import { TooltipPosition } from '../../utilities/enums';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Tooltip Component
7
- *
8
- * Benötigt im HTML Markup folgende Identifier
9
- * - container: Container für ng-content in welchem das Element angezeigt wird, wo der Tooltip angehängt wird.
10
- * - tooltip: Container für Tooltip
11
- *
12
- * Tooltip muss in 2 Schritten angezeigt werden. In einem ersten Schritt wird der Tooltip Markup erzeugt mit (ngIf). In einem 2. Schritt
13
- * kann der Tooltip dann über die CSS visibility angezeigt werden. Wird dies nicht so gemacht, kann es bei gewissen Browsern zu einem Flacker Effekt führen.
14
- *
15
- */
16
- export class SacTooltipCommon {
17
- /**
18
- * Konstruktor
19
- * @param ref Element Referenz
20
- */
21
- constructor(cdRef, ref) {
22
- this.cdRef = cdRef;
23
- this.ref = ref;
24
- /**
25
- * Property für Enum in Angular HTML Template
26
- */
27
- this.TooltipPosition = TooltipPosition;
28
- /**
29
- * Definiert ob der Tooltip sichtbar ist
30
- */
31
- this._isTooltipVisible = false;
32
- /**
33
- * Position des Tooltips oben
34
- */
35
- this.TopPos = 0;
36
- /**
37
- * Position des Tooltips links
38
- */
39
- this.LeftPos = 0;
40
- /**
41
- * Position des Tooltips. Werte: left|top|right|bottom|auto
42
- *
43
- * Wert 'auto' kann mit einem anderen Wert kombiniert werden.
44
- */
45
- this.position = 'right|auto';
46
- /**
47
- * Definiert ob der Tooltip sichtbar sein soll
48
- */
49
- this.IsTooltipContentVisible = false;
50
- /**
51
- * Methode wenn Content geändert hat und Proporties im UI neu gesetzt werden müssen.
52
- */
53
- this.onContentChange = () => {
54
- setTimeout(() => {
55
- this.getLeftPosition();
56
- this.getTopPosition();
57
- });
58
- };
59
- }
60
- /**
61
- * Setter für Inline Mode für Tooltip
62
- */
63
- set inlinemode(value) {
64
- this._inlinemode = convertToBoolean(value);
65
- }
66
- /**
67
- * Getter für Inline Mode für Tooltip
68
- */
69
- get inlinemode() {
70
- return this._inlinemode;
71
- }
72
- /**
73
- * Setter für Name des Containers für den Tooltip. Wird benötigt, da Tooltip via NGIF ausgeblendet werden kann.
74
- */
75
- set tooltip(content) {
76
- if (content !== undefined) {
77
- document.body.appendChild(content.nativeElement);
78
- }
79
- this.tooltipcontainer = content;
80
- this.onContentChange();
81
- this.cdRef.detectChanges();
82
- }
83
- /**
84
- * Ervent wenn das Control initialisert wird
85
- */
86
- ngOnInit() {
87
- // Register Event Listener
88
- window.addEventListener('scroll', this.onContentChange, true);
89
- window.addEventListener('resize', this.onContentChange, true);
90
- if (this.tooltipcontainer !== undefined) {
91
- document.body.appendChild(this.tooltipcontainer.nativeElement);
92
- }
93
- }
94
- /**
95
- * Event wenn das Control zerstört wird.
96
- */
97
- ngOnDestroy() {
98
- // Unregister Event Listener
99
- window.removeEventListener('scroll', this.onContentChange, true);
100
- window.removeEventListener('resize', this.onContentChange, true);
101
- if (this.tooltipcontainer !== undefined) {
102
- document.body.removeChild(this.tooltipcontainer.nativeElement);
103
- }
104
- }
105
- /**
106
- * Berechnet die Position des Tooltips von Oben
107
- */
108
- getTopPosition() {
109
- if (this.content !== null && this.content !== undefined) {
110
- const item = this.content.nativeElement;
111
- if (item.children.length >= 1) {
112
- const childItem = item.firstElementChild;
113
- const contentPosition = childItem.getBoundingClientRect();
114
- switch (this.GetTooltipPosition()) {
115
- case TooltipPosition.top:
116
- this.TopPos = contentPosition.top - this.getToolTipHeight();
117
- return contentPosition.top - this.getToolTipHeight();
118
- case TooltipPosition.right:
119
- this.TopPos = contentPosition.top + (contentPosition.height / 2) - (this.getToolTipHeight() / 2);
120
- return contentPosition.top + (contentPosition.height / 2) - (this.getToolTipHeight() / 2);
121
- case TooltipPosition.bottom:
122
- this.TopPos = contentPosition.top + contentPosition.height;
123
- return contentPosition.top + contentPosition.height;
124
- case TooltipPosition.left:
125
- this.TopPos = contentPosition.top + (contentPosition.height / 2) - (this.getToolTipHeight() / 2);
126
- return contentPosition.top + (contentPosition.height / 2) - (this.getToolTipHeight() / 2);
127
- }
128
- return childItem.clientTop + childItem.offsetTop - ((this.getToolTipHeight() / 2) - (childItem.clientHeight / 2));
129
- }
130
- else {
131
- return this.content.nativeElement.offsetTop;
132
- }
133
- }
134
- else {
135
- return this.ref.nativeElement.offsetTop;
136
- }
137
- }
138
- /**
139
- * Berechnet die Position des Tooltips von Links
140
- */
141
- getLeftPosition() {
142
- if (this.content !== null && this.content !== undefined) {
143
- const item = this.content.nativeElement;
144
- if (item.children.length >= 1) {
145
- const childItem = item.firstElementChild;
146
- const contentPosition = childItem.getBoundingClientRect();
147
- switch (this.GetTooltipPosition()) {
148
- case TooltipPosition.top:
149
- this.LeftPos = contentPosition.left + (contentPosition.width / 2) - (this.getToolTipWidth() / 2);
150
- return contentPosition.left + (contentPosition.width / 2) - (this.getToolTipWidth() / 2);
151
- case TooltipPosition.right:
152
- this.LeftPos = contentPosition.left + contentPosition.width;
153
- return contentPosition.left + contentPosition.width;
154
- case TooltipPosition.bottom:
155
- this.LeftPos = contentPosition.left + (childItem.clientWidth / 2) - (this.getToolTipWidth() / 2);
156
- return contentPosition.left + (childItem.clientWidth / 2) - (this.getToolTipWidth() / 2);
157
- case TooltipPosition.left:
158
- this.LeftPos = contentPosition.left - this.getToolTipWidth();
159
- return contentPosition.left - this.getToolTipWidth();
160
- }
161
- return this.content.nativeElement.offsetTop;
162
- }
163
- else {
164
- return this.content.nativeElement.offsetTop;
165
- }
166
- }
167
- else {
168
- return this.ref.nativeElement.offsetLeft;
169
- }
170
- }
171
- /**
172
- * Berechnet die Höhe des Tooltips
173
- */
174
- getToolTipHeight() {
175
- if (this.tooltipcontainer) {
176
- return this.tooltipcontainer.nativeElement.clientHeight;
177
- }
178
- else {
179
- return 0;
180
- }
181
- }
182
- /**
183
- * Berechnet die Breite die Tooltips
184
- */
185
- getToolTipWidth() {
186
- if (this.tooltipcontainer) {
187
- return this.tooltipcontainer.nativeElement.clientWidth;
188
- }
189
- else {
190
- return 0;
191
- }
192
- }
193
- /**
194
- * Definiert ob der Tooltip im Markup vorhanden ist
195
- */
196
- IsTooltipVisible() {
197
- return this._isTooltipVisible;
198
- }
199
- /**
200
- * Tooltip anzeigen
201
- */
202
- ShowTooltip() {
203
- this._isTooltipVisible = true;
204
- setTimeout(() => {
205
- this.getLeftPosition();
206
- this.getTopPosition();
207
- this.IsTooltipContentVisible = true;
208
- });
209
- }
210
- /**
211
- * Tooltip ausblenden
212
- */
213
- HideTooltip() {
214
- this._isTooltipVisible = false;
215
- this.IsTooltipContentVisible = false;
216
- }
217
- /**
218
- * Gibt die Position des Tooltips zurück
219
- */
220
- GetTooltipPosition() {
221
- const validPositions = this.ValidatePositions();
222
- // tslint:disable-next-line:no-bitwise
223
- if (this.HasPosition(TooltipPosition.right) && (validPositions & TooltipPosition.right)) {
224
- return TooltipPosition.right;
225
- }
226
- // tslint:disable-next-line:no-bitwise
227
- if (this.HasPosition(TooltipPosition.top) && (validPositions & TooltipPosition.top)) {
228
- return TooltipPosition.top;
229
- }
230
- // tslint:disable-next-line:no-bitwise
231
- if (this.HasPosition(TooltipPosition.left) && (validPositions & TooltipPosition.left)) {
232
- return TooltipPosition.left;
233
- }
234
- // tslint:disable-next-line:no-bitwise
235
- if (this.HasPosition(TooltipPosition.bottom) && (validPositions & TooltipPosition.bottom)) {
236
- return TooltipPosition.bottom;
237
- }
238
- // Get Auto Position or Default
239
- if (this.IsAutoPosition()) {
240
- // tslint:disable-next-line:no-bitwise
241
- if (validPositions & TooltipPosition.right) {
242
- return TooltipPosition.right;
243
- }
244
- // tslint:disable-next-line:no-bitwise
245
- if (validPositions & TooltipPosition.top) {
246
- return TooltipPosition.top;
247
- }
248
- // tslint:disable-next-line:no-bitwise
249
- if (validPositions & TooltipPosition.left) {
250
- return TooltipPosition.left;
251
- }
252
- // tslint:disable-next-line:no-bitwise
253
- if (validPositions & TooltipPosition.bottom) {
254
- return TooltipPosition.bottom;
255
- }
256
- return TooltipPosition.right;
257
- }
258
- else {
259
- return this.GetPosition();
260
- }
261
- }
262
- /**
263
- * Definiert ob AutoPosition aktiv ist
264
- */
265
- IsAutoPosition() {
266
- const positions = this.position.split('|');
267
- return positions.indexOf('auto') >= 0;
268
- }
269
- /**
270
- * Gibt die definierte Position für den Tooltip zurück
271
- */
272
- GetPosition() {
273
- const positions = this.position.split('|');
274
- if (this.HasPosition(TooltipPosition.left)) {
275
- return TooltipPosition.left;
276
- }
277
- if (this.HasPosition(TooltipPosition.top)) {
278
- return TooltipPosition.top;
279
- }
280
- if (this.HasPosition(TooltipPosition.right)) {
281
- return TooltipPosition.right;
282
- }
283
- if (this.HasPosition(TooltipPosition.bottom)) {
284
- return TooltipPosition.bottom;
285
- }
286
- // Default Position if empty
287
- return TooltipPosition.right;
288
- }
289
- /**
290
- * Gibt zurück, ob die Position konfiguriert wurde
291
- *
292
- * @param position Position auf welche geprüft wird
293
- */
294
- HasPosition(position) {
295
- const positions = this.position.split('|');
296
- if (position === TooltipPosition.right && positions.indexOf('right') >= 0) {
297
- return true;
298
- }
299
- if (position === TooltipPosition.top && positions.indexOf('top') >= 0) {
300
- return true;
301
- }
302
- if (position === TooltipPosition.left && positions.indexOf('left') >= 0) {
303
- return true;
304
- }
305
- if (position === TooltipPosition.bottom && positions.indexOf('bottom') >= 0) {
306
- return true;
307
- }
308
- return false;
309
- }
310
- /**
311
- * Prüft ob die Position gültig ist, resp. der Tooltip auf die Position platz hat
312
- */
313
- ValidatePositions() {
314
- // Check if Container is false
315
- if (this.tooltipcontainer === undefined) {
316
- return TooltipPosition.right;
317
- }
318
- let allowedPositions = TooltipPosition.none;
319
- const basePosition = this.content.nativeElement.firstElementChild.getBoundingClientRect();
320
- const tooltipRect = this.tooltipcontainer.nativeElement.getBoundingClientRect();
321
- const leftPosOk = basePosition.left - tooltipRect.width > 0;
322
- const rightPosOk = basePosition.right + tooltipRect.width < window.innerWidth;
323
- const topPosOk = basePosition.top - tooltipRect.height > 0;
324
- const bottomPosOk = basePosition.bottom + tooltipRect.height < window.innerHeight;
325
- const leftHalfPosOk = basePosition.left - (tooltipRect.width / 2) > 0;
326
- const rightHalfPosOk = basePosition.right + (tooltipRect.width / 2) < window.innerWidth;
327
- const topHalfPosOk = basePosition.top - (tooltipRect.height / 2) > 0;
328
- const bottomHalfPosOk = basePosition.bottom + (tooltipRect.height / 2) < window.innerHeight;
329
- if (leftPosOk && topHalfPosOk && bottomHalfPosOk) {
330
- // tslint:disable-next-line:no-bitwise
331
- allowedPositions = allowedPositions | TooltipPosition.left;
332
- }
333
- if (rightPosOk && topHalfPosOk && bottomHalfPosOk) {
334
- // tslint:disable-next-line:no-bitwise
335
- allowedPositions = allowedPositions | TooltipPosition.right;
336
- }
337
- if (topPosOk && leftHalfPosOk && rightHalfPosOk) {
338
- // tslint:disable-next-line:no-bitwise
339
- allowedPositions = allowedPositions | TooltipPosition.top;
340
- }
341
- if (bottomPosOk && leftHalfPosOk && rightHalfPosOk) {
342
- // tslint:disable-next-line:no-bitwise
343
- allowedPositions = allowedPositions | TooltipPosition.bottom;
344
- }
345
- return allowedPositions;
346
- }
347
- }
348
- SacTooltipCommon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacTooltipCommon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
349
- SacTooltipCommon.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SacTooltipCommon, inputs: { position: "position", tooltiptext: "tooltiptext", inlinemode: "inlinemode" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "tooltip", first: true, predicate: ["tooltip"], descendants: true, static: true }], ngImport: i0 });
350
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacTooltipCommon, decorators: [{
351
- type: Directive
352
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { position: [{
353
- type: Input
354
- }], tooltiptext: [{
355
- type: Input
356
- }], inlinemode: [{
357
- type: Input
358
- }], content: [{
359
- type: ViewChild,
360
- args: ['container', { static: true }]
361
- }], tooltip: [{
362
- type: ViewChild,
363
- args: ['tooltip', { static: true }]
364
- }] } });
365
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbnRyb2xzL3Rvb2x0aXAvdG9vbHRpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRXhEOzs7Ozs7Ozs7O0dBVUc7QUFFSCxNQUFNLE9BQU8sZ0JBQWdCO0lBbUYzQjs7O09BR0c7SUFDSCxZQUFvQixLQUF3QixFQUFVLEdBQWU7UUFBakQsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBdEZyRTs7V0FFRztRQUNILG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBRWxDOztXQUVHO1FBQ0ssc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBRTNDOztXQUVHO1FBQ0gsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUVuQjs7V0FFRztRQUNILFlBQU8sR0FBVyxDQUFDLENBQUM7UUFFcEI7Ozs7V0FJRztRQUVILGFBQVEsR0FBVyxZQUFZLENBQUM7UUFhaEM7O1dBRUc7UUFDSCw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFtTXpDOztXQUVHO1FBQ0ssb0JBQWUsR0FBRyxHQUFTLEVBQUU7WUFDbkMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQTtJQS9Kd0UsQ0FBQztJQTFDMUU7O09BRUc7SUFDSCxJQUNJLFVBQVUsQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxX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RUFBRTtZQUNqRCxzQ0FBc0M7WUFDdEMsZ0JBQWdCLEdBQUcsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztTQUM3RDtRQUVELElBQUksUUFBUSxJQUFJLGFBQWEsSUFBSSxjQUFjLEVBQUU7WUFDL0Msc0NBQXNDO1lBQ3RDLGdCQUFnQixHQUFHLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUM7U0FDM0Q7UUFFRCxJQUFJLFdBQVcsSUFBSSxhQUFhLElBQUksY0FBYyxFQUFFO1lBQ2xELHNDQUFzQztZQUN0QyxnQkFBZ0IsR0FBRyxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO1NBQzlEO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDOzs2R0F4WlUsZ0JBQWdCO2lHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsU0FBUztpSUE0QlIsUUFBUTtzQkFEUCxLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSztnQkFpQkYsVUFBVTtzQkFEYixLQUFLO2dCQWNvQyxPQUFPO3NCQUFoRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBV3BDLE9BQU87c0JBRFYsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9jb252ZXJ0aW9uJztcclxuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2VudW1zJztcclxuXHJcbi8qKlxyXG4gKiBUb29sdGlwIENvbXBvbmVudFxyXG4gKlxyXG4gKiBCZW7DtnRpZ3QgaW0gSFRNTCBNYXJrdXAgZm9sZ2VuZGUgSWRlbnRpZmllclxyXG4gKiAtIGNvbnRhaW5lcjogQ29udGFpbmVyIGbDvHIgbmctY29udGVudCBpbiB3ZWxjaGVtIGRhcyBFbGVtZW50IGFuZ2V6ZWlndCB3aXJkLCB3byBkZXIgVG9vbHRpcCBhbmdlaMOkbmd0IHdpcmQuXHJcbiAqIC0gdG9vbHRpcDogQ29udGFpbmVyIGbDvHIgVG9vbHRpcFxyXG4gKlxyXG4gKiBUb29sdGlwIG11c3MgaW4gMiBTY2hyaXR0ZW4gYW5nZXplaWd0IHdlcmRlbi4gSW4gZWluZW0gZXJzdGVuIFNjaHJpdHQgd2lyZCBkZXIgVG9vbHRpcCBNYXJrdXAgZXJ6ZXVndCBtaXQgKG5nSWYpLiBJbiBlaW5lbSAyLiBTY2hyaXR0XHJcbiAqIGthbm4gZGVyIFRvb2x0aXAgZGFubiDDvGJlciBkaWUgQ1NTIHZpc2liaWxpdHkgYW5nZXplaWd0IHdlcmRlbi4gV2lyZCBkaWVzIG5pY2h0IHNvIGdlbWFjaHQsIGthbm4gZXMgYmVpIGdld2lzc2VuIEJyb3dzZXJuIHp1IGVpbmVtIEZsYWNrZXIgRWZmZWt0IGbDvGhyZW4uXHJcbiAqXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY1Rvb2x0aXBDb21tb24gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLyoqXHJcbiAgICogUHJvcGVydHkgZsO8ciBFbnVtIGluIEFuZ3VsYXIgSFRNTCBUZW1wbGF0ZVxyXG4gICAqL1xyXG4gIFRvb2x0aXBQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pZXJ0IG9iIGRlciBUb29sdGlwIHNpY2h0YmFyIGlzdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2lzVG9vbHRpcFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogUG9zaXRpb24gZGVzIFRvb2x0aXBzIG9iZW5cclxuICAgKi9cclxuICBUb3BQb3M6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIFBvc2l0aW9uIGRlcyBUb29sdGlwcyBsaW5rc1xyXG4gICAqL1xyXG4gIExlZnRQb3M6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIFBvc2l0aW9uIGRlcyBUb29sdGlwcy4gV2VydGU6IGxlZnR8dG9wfHJpZ2h0fGJvdHRvbXxhdXRvXHJcbiAgICpcclxuICAgKiBXZXJ0ICdhdXRvJyBrYW5uIG1pdCBlaW5lbSBhbmRlcmVuIFdlcnQga29tYmluaWVydCB3ZXJkZW4uXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwb3NpdGlvbjogc3RyaW5nID0gJ3JpZ2h0fGF1dG8nO1xyXG5cclxuICAvKipcclxuICAgKiBUZXh0IGbDvHIgVG9vbFRpcFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgdG9vbHRpcHRleHQ6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogSW5saW5lIE1vZGUgZsO8ciBUb29sdGlwXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfaW5saW5lbW9kZTogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pZXJ0IG9iIGRlciBUb29sdGlwIHNpY2h0YmFyIHNlaW4gc29sbFxyXG4gICAqL1xyXG4gIElzVG9vbHRpcENvbnRlbnRWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHRlciBmw7xyIElubGluZSBNb2RlIGbDvHIgVG9vbHRpcFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGlubGluZW1vZGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2lubGluZW1vZGUgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0dGVyIGbDvHIgSW5saW5lIE1vZGUgZsO8ciBUb29sdGlwXHJcbiAgICovXHJcbiAgZ2V0IGlubGluZW1vZGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faW5saW5lbW9kZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5hbWUgZGVzIENvbnRhaW5lcnMgZsO8ciBDb250ZW50ICh6LkIuIEljb24pIGF1ZiB3ZWxjaGVtIGRlciBUb29sdGlwIGFuZ2V6ZWlndCB3aXJkLlxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pIGNvbnRlbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAvKipcclxuICAgKiBOYW1lIGRlcyBDb250YWluZXJzIGbDvHIgZGVuIFRvb2x0aXBcclxuICAgKi9cclxuICBwcml2YXRlIHRvb2x0aXBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAvKipcclxuICAgKiBTZXR0ZXIgZsO8ciBOYW1lIGRlcyBDb250YWluZXJzIGbDvHIgZGVuIFRvb2x0aXAuIFdpcmQgYmVuw7Z0aWd0LCBkYSBUb29sdGlwIHZpYSBOR0lGIGF1c2dlYmxlbmRldCB3ZXJkZW4ga2Fubi5cclxuICAgKi9cclxuICBAVmlld0NoaWxkKCd0b29sdGlwJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICBzZXQgdG9vbHRpcChjb250ZW50OiBFbGVtZW50UmVmKSB7XHJcbiAgICBpZiAoY29udGVudCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRvb2x0aXBjb250YWluZXIgPSBjb250ZW50O1xyXG4gICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogS29uc3RydWt0b3JcclxuICAgKiBAcGFyYW0gcmVmIEVsZW1lbnQgUmVmZXJlbnpcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBFcnZlbnQgd2VubiBkYXMgQ29udHJvbCBpbml0aWFsaXNlcnQgd2lyZFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gUmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xyXG5cclxuICAgIGlmICh0aGlzLnRvb2x0aXBjb250YWluZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMudG9vbHRpcGNvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IHdlbm4gZGFzIENvbnRyb2wgemVyc3TDtnJ0IHdpcmQuXHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBVbnJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcclxuXHJcbiAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLnRvb2x0aXBjb250YWluZXIubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCZXJlY2huZXQgZGllIFBvc2l0aW9uIGRlcyBUb29sdGlwcyB2b24gT2JlblxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0VG9wUG9zaXRpb24oKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLmNvbnRlbnQgIT09IG51bGwgJiYgdGhpcy5jb250ZW50ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID49IDEpIHtcclxuICAgICAgICBjb25zdCBjaGlsZEl0ZW0gPSBpdGVtLmZpcnN0RWxlbWVudENoaWxkIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnRQb3NpdGlvbjogQ2xpZW50UmVjdCA9IGNoaWxkSXRlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLkdldFRvb2x0aXBQb3NpdGlvbigpKSB7XHJcbiAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi50b3A6XHJcbiAgICAgICAgICAgIHRoaXMuVG9wUG9zID0gY29udGVudFBvc2l0aW9uLnRvcCAtIHRoaXMuZ2V0VG9vbFRpcEhlaWdodCgpO1xyXG4gICAgICAgICAgICByZXR1cm4gY29udGVudFBvc2l0aW9uLnRvcCAtIHRoaXMuZ2V0VG9vbFRpcEhlaWdodCgpO1xyXG4gICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ucmlnaHQ6XHJcbiAgICAgICAgICAgIHRoaXMuVG9wUG9zID0gY29udGVudFBvc2l0aW9uLnRvcCArIChjb250ZW50UG9zaXRpb24uaGVpZ2h0IC8gMikgLSAodGhpcy5nZXRUb29sVGlwSGVpZ2h0KCkgLyAyKTtcclxuICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRQb3NpdGlvbi50b3AgKyAoY29udGVudFBvc2l0aW9uLmhlaWdodCAvIDIpIC0gKHRoaXMuZ2V0VG9vbFRpcEhlaWdodCgpIC8gMik7XHJcbiAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5ib3R0b206XHJcbiAgICAgICAgICAgIHRoaXMuVG9wUG9zID0gY29udGVudFBvc2l0aW9uLnRvcCArIGNvbnRlbnRQb3NpdGlvbi5oZWlnaHQ7XHJcbiAgICAgICAgICAgIHJldHVybiBjb250ZW50UG9zaXRpb24udG9wICsgY29udGVudFBvc2l0aW9uLmhlaWdodDtcclxuICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmxlZnQ6XHJcbiAgICAgICAgICAgIHRoaXMuVG9wUG9zID0gY29udGVudFBvc2l0aW9uLnRvcCArIChjb250ZW50UG9zaXRpb24uaGVpZ2h0IC8gMikgLSAodGhpcy5nZXRUb29sVGlwSGVpZ2h0KCkgLyAyKTtcclxuICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRQb3NpdGlvbi50b3AgKyAoY29udGVudFBvc2l0aW9uLmhlaWdodCAvIDIpIC0gKHRoaXMuZ2V0VG9vbFRpcEhlaWdodCgpIC8gMik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY2hpbGRJdGVtLmNsaWVudFRvcCArIGNoaWxkSXRlbS5vZmZzZXRUb3AgLSAoKHRoaXMuZ2V0VG9vbFRpcEhlaWdodCgpIC8gMikgLSAoY2hpbGRJdGVtLmNsaWVudEhlaWdodCAvIDIpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5yZWYubmF0aXZlRWxlbWVudC5vZmZzZXRUb3A7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmVyZWNobmV0IGRpZSBQb3NpdGlvbiBkZXMgVG9vbHRpcHMgdm9uIExpbmtzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRMZWZ0UG9zaXRpb24oKTogbnVtYmVyIHtcclxuXHJcbiAgICBpZiAodGhpcy5jb250ZW50ICE9PSBudWxsICYmIHRoaXMuY29udGVudCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgIGlmIChpdGVtLmNoaWxkcmVuLmxlbmd0aCA+PSAxKSB7XHJcbiAgICAgICAgY29uc3QgY2hpbGRJdGVtID0gaXRlbS5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBjb25zdCBjb250ZW50UG9zaXRpb246IENsaWVudFJlY3QgPSBjaGlsZEl0ZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5HZXRUb29sdGlwUG9zaXRpb24oKSkge1xyXG4gICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24udG9wOlxyXG4gICAgICAgICAgICB0aGlzLkxlZnRQb3MgPSBjb250ZW50UG9zaXRpb24ubGVmdCArIChjb250ZW50UG9zaXRpb24ud2lkdGggLyAyKSAtICh0aGlzLmdldFRvb2xUaXBXaWR0aCgpIC8gMik7XHJcbiAgICAgICAgICAgIHJldHVybiBjb250ZW50UG9zaXRpb24ubGVmdCArIChjb250ZW50UG9zaXRpb24ud2lkdGggLyAyKSAtICh0aGlzLmdldFRvb2xUaXBXaWR0aCgpIC8gMik7XHJcbiAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5yaWdodDpcclxuICAgICAgICAgICAgdGhpcy5MZWZ0UG9zID0gY29udGVudFBvc2l0aW9uLmxlZnQgKyBjb250ZW50UG9zaXRpb24ud2lkdGg7XHJcbiAgICAgICAgICAgIHJldHVybiBjb250ZW50UG9zaXRpb24ubGVmdCArIGNvbnRlbnRQb3NpdGlvbi53aWR0aDtcclxuICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbTpcclxuICAgICAgICAgICAgdGhpcy5MZWZ0UG9zID0gY29udGVudFBvc2l0aW9uLmxlZnQgKyAoY2hpbGRJdGVtLmNsaWVudFdpZHRoIC8gMikgLSAodGhpcy5nZXRUb29sVGlwV2lkdGgoKSAvIDIpO1xyXG4gICAgICAgICAgICByZXR1cm4gY29udGVudFBvc2l0aW9uLmxlZnQgKyAoY2hpbGRJdGVtLmNsaWVudFdpZHRoIC8gMikgLSAodGhpcy5nZXRUb29sVGlwV2lkdGgoKSAvIDIpO1xyXG4gICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ubGVmdDpcclxuICAgICAgICAgICAgdGhpcy5MZWZ0UG9zID0gY29udGVudFBvc2l0aW9uLmxlZnQgLSB0aGlzLmdldFRvb2xUaXBXaWR0aCgpO1xyXG4gICAgICAgICAgICByZXR1cm4gY29udGVudFBvc2l0aW9uLmxlZnQgLSB0aGlzLmdldFRvb2xUaXBXaWR0aCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5yZWYubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEJlcmVjaG5ldCBkaWUgSMO2aGUgZGVzIFRvb2x0aXBzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRUb29sVGlwSGVpZ2h0KCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBjb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJlcmVjaG5ldCBkaWUgQnJlaXRlIGRpZSBUb29sdGlwc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0VG9vbFRpcFdpZHRoKCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBjb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaWVydCBvYiBkZXIgVG9vbHRpcCBpbSBNYXJrdXAgdm9yaGFuZGVuIGlzdFxyXG4gICAqL1xyXG4gIElzVG9vbHRpcFZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNUb29sdGlwVmlzaWJsZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvb2x0aXAgYW56ZWlnZW5cclxuICAgKi9cclxuICBTaG93VG9vbHRpcCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2lzVG9vbHRpcFZpc2libGUgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZ2V0TGVmdFBvc2l0aW9uKCk7XHJcbiAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcclxuICAgICAgdGhpcy5Jc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA9IHRydWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvb2x0aXAgYXVzYmxlbmRlblxyXG4gICAqL1xyXG4gIEhpZGVUb29sdGlwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5faXNUb29sdGlwVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5Jc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSB3ZW5uIENvbnRlbnQgZ2XDpG5kZXJ0IGhhdCB1bmQgUHJvcG9ydGllcyBpbSBVSSBuZXUgZ2VzZXR6dCB3ZXJkZW4gbcO8c3Nlbi5cclxuICAgKi9cclxuICBwcml2YXRlIG9uQ29udGVudENoYW5nZSA9ICgpOiB2b2lkID0+IHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmdldExlZnRQb3NpdGlvbigpO1xyXG4gICAgICB0aGlzLmdldFRvcFBvc2l0aW9uKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpYnQgZGllIFBvc2l0aW9uIGRlcyBUb29sdGlwcyB6dXLDvGNrXHJcbiAgICovXHJcbiAgcHVibGljIEdldFRvb2x0aXBQb3NpdGlvbigpOiBUb29sdGlwUG9zaXRpb24ge1xyXG4gICAgY29uc3QgdmFsaWRQb3NpdGlvbnM6IFRvb2x0aXBQb3NpdGlvbiA9IHRoaXMuVmFsaWRhdGVQb3NpdGlvbnMoKTtcclxuXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgaWYgKHRoaXMuSGFzUG9zaXRpb24oVG9vbHRpcFBvc2l0aW9uLnJpZ2h0KSAmJiAodmFsaWRQb3NpdGlvbnMgJiBUb29sdGlwUG9zaXRpb24ucmlnaHQpKSB7XHJcbiAgICAgIHJldHVybiBUb29sdGlwUG9zaXRpb24ucmlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcclxuICAgIGlmICh0aGlzLkhhc1Bvc2l0aW9uKFRvb2x0aXBQb3NpdGlvbi50b3ApICYmICh2YWxpZFBvc2l0aW9ucyAmIFRvb2x0aXBQb3NpdGlvbi50b3ApKSB7XHJcbiAgICAgIHJldHVybiBUb29sdGlwUG9zaXRpb24udG9wO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgICBpZiAodGhpcy5IYXNQb3NpdGlvbihUb29sdGlwUG9zaXRpb24ubGVmdCkgJiYgKHZhbGlkUG9zaXRpb25zICYgVG9vbHRpcFBvc2l0aW9uLmxlZnQpKSB7XHJcbiAgICAgIHJldHVybiBUb29sdGlwUG9zaXRpb24ubGVmdDtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgaWYgKHRoaXMuSGFzUG9zaXRpb24oVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSkgJiYgKHZhbGlkUG9zaXRpb25zICYgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSkpIHtcclxuICAgICAgcmV0dXJuIFRvb2x0aXBQb3NpdGlvbi5ib3R0b207XHJcbiAgICB9XHJcblxyXG4gICAgLy8gR2V0IEF1dG8gUG9zaXRpb24gb3IgRGVmYXVsdFxyXG4gICAgaWYgKHRoaXMuSXNBdXRvUG9zaXRpb24oKSkge1xyXG5cclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcclxuICAgICAgaWYgKHZhbGlkUG9zaXRpb25zICYgVG9vbHRpcFBvc2l0aW9uLnJpZ2h0KSB7XHJcbiAgICAgICAgcmV0dXJuIFRvb2x0aXBQb3NpdGlvbi5yaWdodDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcclxuICAgICAgaWYgKHZhbGlkUG9zaXRpb25zICYgVG9vbHRpcFBvc2l0aW9uLnRvcCkge1xyXG4gICAgICAgIHJldHVybiBUb29sdGlwUG9zaXRpb24udG9wO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgICBpZiAodmFsaWRQb3NpdGlvbnMgJiBUb29sdGlwUG9zaXRpb24ubGVmdCkge1xyXG4gICAgICAgIHJldHVybiBUb29sdGlwUG9zaXRpb24ubGVmdDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcclxuICAgICAgaWYgKHZhbGlkUG9zaXRpb25zICYgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSkge1xyXG4gICAgICAgIHJldHVybiBUb29sdGlwUG9zaXRpb24uYm90dG9tO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gVG9vbHRpcFBvc2l0aW9uLnJpZ2h0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0UG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaWVydCBvYiBBdXRvUG9zaXRpb24gYWt0aXYgaXN0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBJc0F1dG9Qb3NpdGlvbigpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRoaXMucG9zaXRpb24uc3BsaXQoJ3wnKTtcclxuICAgIHJldHVybiBwb3NpdGlvbnMuaW5kZXhPZignYXV0bycpID49IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGRpZSBkZWZpbmllcnRlIFBvc2l0aW9uIGbDvHIgZGVuIFRvb2x0aXAgenVyw7xja1xyXG4gICAqL1xyXG4gIHByaXZhdGUgR2V0UG9zaXRpb24oKTogVG9vbHRpcFBvc2l0aW9uIHtcclxuICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRoaXMucG9zaXRpb24uc3BsaXQoJ3wnKTtcclxuXHJcbiAgICBpZiAodGhpcy5IYXNQb3NpdGlvbihUb29sdGlwUG9zaXRpb24ubGVmdCkpIHtcclxuICAgICAgcmV0dXJuIFRvb2x0aXBQb3NpdGlvbi5sZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLkhhc1Bvc2l0aW9uKFRvb2x0aXBQb3NpdGlvbi50b3ApKSB7XHJcbiAgICAgIHJldHVybiBUb29sdGlwUG9zaXRpb24udG9wO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLkhhc1Bvc2l0aW9uKFRvb2x0aXBQb3NpdGlvbi5yaWdodCkpIHtcclxuICAgICAgcmV0dXJuIFRvb2x0aXBQb3NpdGlvbi5yaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5IYXNQb3NpdGlvbihUb29sdGlwUG9zaXRpb24uYm90dG9tKSkge1xyXG4gICAgICByZXR1cm4gVG9vbHRpcFBvc2l0aW9uLmJvdHRvbTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEZWZhdWx0IFBvc2l0aW9uIGlmIGVtcHR5XHJcbiAgICByZXR1cm4gVG9vbHRpcFBvc2l0aW9uLnJpZ2h0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCB6dXLDvGNrLCBvYiBkaWUgUG9zaXRpb24ga29uZmlndXJpZXJ0IHd1cmRlXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcG9zaXRpb24gUG9zaXRpb24gYXVmIHdlbGNoZSBnZXByw7xmdCB3aXJkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBIYXNQb3NpdGlvbihwb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBwb3NpdGlvbnMgPSB0aGlzLnBvc2l0aW9uLnNwbGl0KCd8Jyk7XHJcblxyXG4gICAgaWYgKHBvc2l0aW9uID09PSBUb29sdGlwUG9zaXRpb24ucmlnaHQgJiYgcG9zaXRpb25zLmluZGV4T2YoJ3JpZ2h0JykgPj0gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocG9zaXRpb24gPT09IFRvb2x0aXBQb3NpdGlvbi50b3AgJiYgcG9zaXRpb25zLmluZGV4T2YoJ3RvcCcpID49IDApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHBvc2l0aW9uID09PSBUb29sdGlwUG9zaXRpb24ubGVmdCAmJiBwb3NpdGlvbnMuaW5kZXhPZignbGVmdCcpID49IDApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHBvc2l0aW9uID09PSBUb29sdGlwUG9zaXRpb24uYm90dG9tICYmIHBvc2l0aW9ucy5pbmRleE9mKCdib3R0b20nKSA+PSAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByw7xmdCBvYiBkaWUgUG9zaXRpb24gZ8O8bHRpZyBpc3QsIHJlc3AuIGRlciBUb29sdGlwIGF1ZiBkaWUgUG9zaXRpb24gcGxhdHogaGF0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBWYWxpZGF0ZVBvc2l0aW9ucygpOiBUb29sdGlwUG9zaXRpb24ge1xyXG4gICAgLy8gQ2hlY2sgaWYgQ29udGFpbmVyIGlzIGZhbHNlXHJcbiAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIFRvb2x0aXBQb3NpdGlvbi5yaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgYWxsb3dlZFBvc2l0aW9uczogVG9vbHRpcFBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLm5vbmU7XHJcbiAgICBjb25zdCBiYXNlUG9zaXRpb246IENsaWVudFJlY3QgPSB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IHRvb2x0aXBSZWN0OiBDbGllbnRSZWN0ID0gdGhpcy50b29sdGlwY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgY29uc3QgbGVmdFBvc09rOiBib29sZWFuID0gYmFzZVBvc2l0aW9uLmxlZnQgLSB0b29sdGlwUmVjdC53aWR0aCA+IDA7XHJcbiAgICBjb25zdCByaWdodFBvc09rOiBib29sZWFuID0gYmFzZVBvc2l0aW9uLnJpZ2h0ICsgdG9vbHRpcFJlY3Qud2lkdGggPCB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgIGNvbnN0IHRvcFBvc09rOiBib29sZWFuID0gYmFzZVBvc2l0aW9uLnRvcCAtIHRvb2x0aXBSZWN0LmhlaWdodCA+IDA7XHJcbiAgICBjb25zdCBib3R0b21Qb3NPazogYm9vbGVhbiA9IGJhc2VQb3NpdGlvbi5ib3R0b20gKyB0b29sdGlwUmVjdC5oZWlnaHQgPCB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcblxyXG4gICAgY29uc3QgbGVmdEhhbGZQb3NPazogYm9vbGVhbiA9IGJhc2VQb3NpdGlvbi5sZWZ0IC0gKHRvb2x0aXBSZWN0LndpZHRoIC8gMikgPiAwO1xyXG4gICAgY29uc3QgcmlnaHRIYWxmUG9zT2s6IGJvb2xlYW4gPSBiYXNlUG9zaXRpb24ucmlnaHQgKyAodG9vbHRpcFJlY3Qud2lkdGggLyAyKSA8IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgY29uc3QgdG9wSGFsZlBvc09rOiBib29sZWFuID0gYmFzZVBvc2l0aW9uLnRvcCAtICh0b29sdGlwUmVjdC5oZWlnaHQgLyAyKSA+IDA7XHJcbiAgICBjb25zdCBib3R0b21IYWxmUG9zT2s6IGJvb2xlYW4gPSBiYXNlUG9zaXRpb24uYm90dG9tICsgKHRvb2x0aXBSZWN0LmhlaWdodCAvIDIpIDwgd2luZG93LmlubmVySGVpZ2h0O1xyXG5cclxuICAgIGlmIChsZWZ0UG9zT2sgJiYgdG9wSGFsZlBvc09rICYmIGJvdHRvbUhhbGZQb3NPaykge1xyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgICBhbGxvd2VkUG9zaXRpb25zID0gYWxsb3dlZFBvc2l0aW9ucyB8IFRvb2x0aXBQb3NpdGlvbi5sZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChyaWdodFBvc09rICYmIHRvcEhhbGZQb3NPayAmJiBib3R0b21IYWxmUG9zT2spIHtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcclxuICAgICAgYWxsb3dlZFBvc2l0aW9ucyA9IGFsbG93ZWRQb3NpdGlvbnMgfCBUb29sdGlwUG9zaXRpb24ucmlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRvcFBvc09rICYmIGxlZnRIYWxmUG9zT2sgJiYgcmlnaHRIYWxmUG9zT2spIHtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcclxuICAgICAgYWxsb3dlZFBvc2l0aW9ucyA9IGFsbG93ZWRQb3NpdGlvbnMgfCBUb29sdGlwUG9zaXRpb24udG9wO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChib3R0b21Qb3NPayAmJiBsZWZ0SGFsZlBvc09rICYmIHJpZ2h0SGFsZlBvc09rKSB7XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgICAgIGFsbG93ZWRQb3NpdGlvbnMgPSBhbGxvd2VkUG9zaXRpb25zIHwgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYWxsb3dlZFBvc2l0aW9ucztcclxuICB9XHJcbn1cclxuIl19
1
+ function cov_968u3h0sn(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/controls/tooltip/tooltip.mjs";var hash="82bec8d5fb0e4f5d3a60ab32f24983010054c248";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/controls/tooltip/tooltip.mjs",statementMap:{"0":{start:{line:26,column:8},end:{line:26,column:27}},"1":{start:{line:27,column:8},end:{line:27,column:23}},"2":{start:{line:32,column:8},end:{line:32,column:45}},"3":{start:{line:36,column:8},end:{line:36,column:39}},"4":{start:{line:40,column:8},end:{line:40,column:45}},"5":{start:{line:44,column:8},end:{line:44,column:25}},"6":{start:{line:48,column:8},end:{line:48,column:47}},"7":{start:{line:52,column:8},end:{line:52,column:24}},"8":{start:{line:56,column:8},end:{line:56,column:34}},"9":{start:{line:60,column:8},end:{line:60,column:33}},"10":{start:{line:64,column:8},end:{line:64,column:33}},"11":{start:{line:68,column:8},end:{line:68,column:32}},"12":{start:{line:74,column:8},end:{line:74,column:37}},"13":{start:{line:78,column:8},end:{line:87,column:10}},"14":{start:{line:80,column:12},end:{line:82,column:13}},"15":{start:{line:81,column:16},end:{line:81,column:23}},"16":{start:{line:83,column:12},end:{line:86,column:15}},"17":{start:{line:84,column:16},end:{line:84,column:39}},"18":{start:{line:85,column:16},end:{line:85,column:38}},"19":{start:{line:95,column:8},end:{line:95,column:32}},"20":{start:{line:101,column:8},end:{line:101,column:51}},"21":{start:{line:107,column:8},end:{line:109,column:9}},"22":{start:{line:108,column:12},end:{line:108,column:61}},"23":{start:{line:110,column:8},end:{line:110,column:40}},"24":{start:{line:111,column:8},end:{line:111,column:31}},"25":{start:{line:112,column:8},end:{line:112,column:35}},"26":{start:{line:115,column:8},end:{line:115,column:37}},"27":{start:{line:123,column:8},end:{line:123,column:159}},"28":{start:{line:129,column:8},end:{line:129,column:39}},"29":{start:{line:130,column:8},end:{line:130,column:45}},"30":{start:{line:136,column:8},end:{line:136,column:38}},"31":{start:{line:142,column:8},end:{line:142,column:38}},"32":{start:{line:143,column:8},end:{line:143,column:35}},"33":{start:{line:144,column:8},end:{line:148,column:11}},"34":{start:{line:145,column:12},end:{line:145,column:35}},"35":{start:{line:146,column:12},end:{line:146,column:34}},"36":{start:{line:147,column:12},end:{line:147,column:48}},"37":{start:{line:154,column:8},end:{line:154,column:70}},"38":{start:{line:160,column:8},end:{line:160,column:69}},"39":{start:{line:167,column:8},end:{line:169,column:9}},"40":{start:{line:168,column:12},end:{line:168,column:19}},"41":{start:{line:170,column:8},end:{line:170,column:35}},"42":{start:{line:177,column:8},end:{line:179,column:9}},"43":{start:{line:178,column:12},end:{line:178,column:19}},"44":{start:{line:180,column:8},end:{line:180,column:31}},"45":{start:{line:181,column:8},end:{line:181,column:30}},"46":{start:{line:188,column:8},end:{line:188,column:73}},"47":{start:{line:189,column:8},end:{line:189,column:73}},"48":{start:{line:190,column:8},end:{line:192,column:9}},"49":{start:{line:191,column:12},end:{line:191,column:75}},"50":{start:{line:199,column:8},end:{line:199,column:70}},"51":{start:{line:200,column:8},end:{line:200,column:70}},"52":{start:{line:201,column:8},end:{line:203,column:9}},"53":{start:{line:202,column:12},end:{line:202,column:75}},"54":{start:{line:211,column:22},end:{line:211,column:172}},"55":{start:{line:212,column:8},end:{line:212,column:29}},"56":{start:{line:213,column:33},end:{line:213,column:58}},"57":{start:{line:214,column:8},end:{line:219,column:9}},"58":{start:{line:215,column:12},end:{line:215,column:65}},"59":{start:{line:218,column:12},end:{line:218,column:36}},"60":{start:{line:220,column:8},end:{line:220,column:21}},"61":{start:{line:226,column:22},end:{line:226,column:171}},"62":{start:{line:227,column:8},end:{line:227,column:28}},"63":{start:{line:228,column:33},end:{line:228,column:58}},"64":{start:{line:229,column:8},end:{line:234,column:9}},"65":{start:{line:230,column:12},end:{line:230,column:65}},"66":{start:{line:233,column:12},end:{line:233,column:37}},"67":{start:{line:235,column:8},end:{line:235,column:21}},"68":{start:{line:238,column:0},end:{line:238,column:234}},"69":{start:{line:239,column:0},end:{line:239,column:466}},"70":{start:{line:240,column:0},end:{line:258,column:20}},"71":{start:{line:242,column:42},end:{line:242,column:107}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:25,column:4},end:{line:25,column:5}},loc:{start:{line:25,column:28},end:{line:88,column:5}},line:25},"1":{name:"(anonymous_1)",decl:{start:{line:78,column:31},end:{line:78,column:32}},loc:{start:{line:78,column:37},end:{line:87,column:9}},line:78},"2":{name:"(anonymous_2)",decl:{start:{line:83,column:23},end:{line:83,column:24}},loc:{start:{line:83,column:29},end:{line:86,column:13}},line:83},"3":{name:"(anonymous_3)",decl:{start:{line:94,column:4},end:{line:94,column:5}},loc:{start:{line:94,column:21},end:{line:96,column:5}},line:94},"4":{name:"(anonymous_4)",decl:{start:{line:100,column:4},end:{line:100,column:5}},loc:{start:{line:100,column:26},end:{line:102,column:5}},line:100},"5":{name:"(anonymous_5)",decl:{start:{line:106,column:4},end:{line:106,column:5}},loc:{start:{line:106,column:25},end:{line:113,column:5}},line:106},"6":{name:"(anonymous_6)",decl:{start:{line:114,column:4},end:{line:114,column:5}},loc:{start:{line:114,column:18},end:{line:116,column:5}},line:114},"7":{name:"(anonymous_7)",decl:{start:{line:122,column:4},end:{line:122,column:5}},loc:{start:{line:122,column:25},end:{line:124,column:5}},line:122},"8":{name:"(anonymous_8)",decl:{start:{line:128,column:4},end:{line:128,column:5}},loc:{start:{line:128,column:18},end:{line:131,column:5}},line:128},"9":{name:"(anonymous_9)",decl:{start:{line:135,column:4},end:{line:135,column:5}},loc:{start:{line:135,column:23},end:{line:137,column:5}},line:135},"10":{name:"(anonymous_10)",decl:{start:{line:141,column:4},end:{line:141,column:5}},loc:{start:{line:141,column:18},end:{line:149,column:5}},line:141},"11":{name:"(anonymous_11)",decl:{start:{line:144,column:19},end:{line:144,column:20}},loc:{start:{line:144,column:25},end:{line:148,column:9}},line:144},"12":{name:"(anonymous_12)",decl:{start:{line:153,column:4},end:{line:153,column:5}},loc:{start:{line:153,column:23},end:{line:155,column:5}},line:153},"13":{name:"(anonymous_13)",decl:{start:{line:159,column:4},end:{line:159,column:5}},loc:{start:{line:159,column:22},end:{line:161,column:5}},line:159},"14":{name:"(anonymous_14)",decl:{start:{line:165,column:4},end:{line:165,column:5}},loc:{start:{line:165,column:25},end:{line:171,column:5}},line:165},"15":{name:"(anonymous_15)",decl:{start:{line:175,column:4},end:{line:175,column:5}},loc:{start:{line:175,column:16},end:{line:182,column:5}},line:175},"16":{name:"(anonymous_16)",decl:{start:{line:186,column:4},end:{line:186,column:5}},loc:{start:{line:186,column:18},end:{line:193,column:5}},line:186},"17":{name:"(anonymous_17)",decl:{start:{line:197,column:4},end:{line:197,column:5}},loc:{start:{line:197,column:15},end:{line:204,column:5}},line:197},"18":{name:"(anonymous_18)",decl:{start:{line:210,column:4},end:{line:210,column:5}},loc:{start:{line:210,column:22},end:{line:221,column:5}},line:210},"19":{name:"(anonymous_19)",decl:{start:{line:225,column:4},end:{line:225,column:5}},loc:{start:{line:225,column:21},end:{line:236,column:5}},line:225},"20":{name:"(anonymous_20)",decl:{start:{line:242,column:28},end:{line:242,column:29}},loc:{start:{line:242,column:40},end:{line:242,column:109}},line:242}},branchMap:{"0":{loc:{start:{line:80,column:12},end:{line:82,column:13}},type:"if",locations:[{start:{line:80,column:12},end:{line:82,column:13}},{start:{line:80,column:12},end:{line:82,column:13}}],line:80},"1":{loc:{start:{line:107,column:8},end:{line:109,column:9}},type:"if",locations:[{start:{line:107,column:8},end:{line:109,column:9}},{start:{line:107,column:8},end:{line:109,column:9}}],line:107},"2":{loc:{start:{line:167,column:8},end:{line:169,column:9}},type:"if",locations:[{start:{line:167,column:8},end:{line:169,column:9}},{start:{line:167,column:8},end:{line:169,column:9}}],line:167},"3":{loc:{start:{line:177,column:8},end:{line:179,column:9}},type:"if",locations:[{start:{line:177,column:8},end:{line:179,column:9}},{start:{line:177,column:8},end:{line:179,column:9}}],line:177},"4":{loc:{start:{line:190,column:8},end:{line:192,column:9}},type:"if",locations:[{start:{line:190,column:8},end:{line:192,column:9}},{start:{line:190,column:8},end:{line:192,column:9}}],line:190},"5":{loc:{start:{line:201,column:8},end:{line:203,column:9}},type:"if",locations:[{start:{line:201,column:8},end:{line:203,column:9}},{start:{line:201,column:8},end:{line:203,column:9}}],line:201},"6":{loc:{start:{line:214,column:8},end:{line:219,column:9}},type:"if",locations:[{start:{line:214,column:8},end:{line:219,column:9}},{start:{line:214,column:8},end:{line:219,column:9}}],line:214},"7":{loc:{start:{line:214,column:12},end:{line:214,column:99}},type:"binary-expr",locations:[{start:{line:214,column:12},end:{line:214,column:53}},{start:{line:214,column:57},end:{line:214,column:99}}],line:214},"8":{loc:{start:{line:229,column:8},end:{line:234,column:9}},type:"if",locations:[{start:{line:229,column:8},end:{line:234,column:9}},{start:{line:229,column:8},end:{line:234,column:9}}],line:229},"9":{loc:{start:{line:229,column:12},end:{line:229,column:99}},type:"binary-expr",locations:[{start:{line:229,column:12},end:{line:229,column:55}},{start:{line:229,column:59},end:{line:229,column:99}}],line:229}},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},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},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]},inputSourceMap:{version:3,file:"tooltip.js",sourceRoot:"",sources:["../../../../../projects/sac-common/src/controls/tooltip/tooltip.ts"],names:[],mappings:"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",sourcesContent:["import { convertToBoolean } from '../../utilities/convertion';\nimport { TooltipPosition } from '../../utilities/enums';\nimport { createGuid } from '../../utilities/guid';\nimport { PopUpHelper } from '../../utilities/popuphelper';\nimport {\n AfterViewChecked,\n ChangeDetectorRef,\n Directive,\n DoCheck,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\n/**\n * Tooltip Component\n *\n * Requires the following identifiers in the HTML markup\n * - container: Container for ng-content in which the element is displayed where the tooltip is attached.\n * - tooltip: Container for tooltip\n *\n * Tooltip must be displayed in 2 steps. In a first step the tooltip markup is created with (ngIf). In a 2nd step\n * the tooltip can then be displayed via the CSS visibility. If this is not done, it can lead to a flickering effect in certain browsers.\n *\n */\n@Directive()\nexport abstract class SacTooltipCommon implements OnInit, OnDestroy, AfterViewChecked, DoCheck {\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 * Inline mode for tooltip\n */\n private _inlinemode: boolean;\n\n /**\n * Defines whether the tooltip is visible\n */\n private _isTooltipVisible: boolean = false;\n\n /**\n * Containers for the tooltip\n */\n private tooltipcontainer: ElementRef<HTMLElement>;\n\n /**\n * Position of the tooltip on the left\n */\n public IsTooltipContentVisible: boolean = false;\n\n /**\n * Position des Tooltips links\n */\n public LeftPos: number = 0;\n\n /**\n * Property for enum in Angular HTML template\n */\n public TooltipPosition = TooltipPosition;\n\n /**\n * Position of the tooltip at the top\n */\n public TopPos: number = 0;\n\n /**\n * Name of the container for content (e.g. icon) on which the tooltip is displayed.\n */\n @ViewChild('container', { static: true })\n public content: ElementRef<HTMLElement>;\n\n /**\n * Identifier used for the E2E data attribute.\n */\n @Input()\n public e2eidentifier: string | null = null;\n\n /**\n * name of control\n */\n @Input()\n public name: string = createGuid();\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 tooltip. Values: left|top|right|bottom|auto\n *\n * Value 'auto' can be combined with another value.\n */\n @Input()\n public position: string = 'right|auto';\n\n /**\n * Text for ToolTip\n */\n @Input()\n public tooltiptext: string;\n\n // #endregion Properties\n\n // #region Constructors\n\n /**\n * Konstruktor\n * @param ref Element Referenz\n */\n constructor(private readonly cdRef: ChangeDetectorRef, private readonly ref: ElementRef) {}\n\n // #endregion Constructors\n\n // #region Public Getters And Setters\n\n /**\n * Property for inline mode for tooltip. Sets the display mode on the wrapper element to `inline`\n */\n public get inlinemode(): boolean {\n return this._inlinemode;\n }\n\n /**\n * Setter for inline mode for tooltip\n */\n @Input()\n public set inlinemode(value: boolean) {\n this._inlinemode = convertToBoolean(value);\n }\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('tooltip', { static: false })\n public set tooltip(content: ElementRef) {\n if (content !== undefined) {\n document.body.appendChild(content.nativeElement);\n }\n\n this.tooltipcontainer = content;\n this.onContentChange();\n this.cdRef.detectChanges();\n }\n\n public get tooltop(): ElementRef {\n return this.tooltipcontainer;\n }\n\n // #endregion Public Getters And Setters\n\n // #region Public Methods\n\n /**\n * Returns the position of the tooltip\n */\n public GetTooltipPosition(): TooltipPosition {\n return this.popupHelper.getDisplayPosition(\n this.content,\n this.tooltipcontainer,\n this.getTooltipOffset(),\n this.getTooltipOffset(),\n this.position,\n true\n );\n }\n\n /**\n * Hide tooltip\n */\n public HideTooltip(): void {\n this._isTooltipVisible = false;\n this.IsTooltipContentVisible = false;\n }\n\n /**\n * Defines whether the tooltip is present in the markup\n */\n public IsTooltipVisible(): boolean {\n return this._isTooltipVisible;\n }\n\n /**\n * Show tooltip\n */\n public ShowTooltip(): void {\n this._isTooltipVisible = true;\n this.cdRef.detectChanges();\n\n setTimeout(() => {\n this.getLeftPosition();\n this.getTopPosition();\n this.IsTooltipContentVisible = true;\n });\n }\n\n /**\n * Calculates the height of the tooltip\n */\n public getToolTipHeight(): number {\n return this.popupHelper.getPopupHeight(this.tooltipcontainer);\n }\n\n /**\n * Calculates the width of the tooltips\n */\n public getToolTipWidth(): number {\n return this.popupHelper.getPopupWidth(this.tooltipcontainer);\n }\n\n /**\n * Detect Changes after view checked. Prevent ExpressionChangedAfterItHasBeenCheckedError error\n */\n public ngAfterViewChecked(): void {\n // Do nothing if is not visibile\n if (!this._isTooltipVisible) {\n return;\n }\n\n this.cdRef.detectChanges();\n }\n\n /**\n * Detect UI Changes to Calculate Tooltip correct\n */\n public ngDoCheck(): void {\n // Do nothing if is not visibile\n if (!this._isTooltipVisible) {\n return;\n }\n\n this.getLeftPosition();\n this.getTopPosition();\n }\n\n /**\n * Event when the control is destroyed.\n */\n public ngOnDestroy() {\n // Unregister Event Listener\n window.removeEventListener('scroll', this.onContentChange, true);\n window.removeEventListener('resize', this.onContentChange, true);\n\n if (this.tooltipcontainer !== undefined) {\n document.body.removeChild(this.tooltipcontainer.nativeElement);\n }\n }\n\n /**\n * Event when the control is initialized\n */\n public ngOnInit() {\n // Register Event Listener\n window.addEventListener('scroll', this.onContentChange, true);\n window.addEventListener('resize', this.onContentChange, true);\n\n if (this.tooltipcontainer !== undefined) {\n document.body.appendChild(this.tooltipcontainer.nativeElement);\n }\n }\n\n // #endregion Public Methods\n\n // #region Protected Methods\n\n /**\n * Offset for Tooltip. Required for BS4/BS5 to create padding\n */\n protected abstract getTooltipOffset(): number;\n\n // #endregion Protected Methods\n\n // #region Private Methods\n\n /**\n * Calculates the position of the tooltip from links\n */\n private getLeftPosition(): number {\n const value = this.popupHelper.getPositionLeft(\n this.content,\n this.tooltipcontainer,\n this.ref,\n this.getTooltipOffset(),\n this.getTooltipOffset(),\n this.position,\n true\n );\n this.LeftPos = value;\n\n const requiredPosition = this.GetTooltipPosition();\n if (requiredPosition === TooltipPosition.left || requiredPosition === TooltipPosition.right) {\n this.posArrowTop = this.getToolTipHeight() / 2 - 6.5;\n } else {\n this.posArrowTop = null;\n }\n\n return value;\n }\n\n /**\n * Calculates the position of the tooltip from the top\n */\n private getTopPosition(): number {\n const value = this.popupHelper.getPositionTop(\n this.content,\n this.tooltipcontainer,\n this.ref,\n this.getTooltipOffset(),\n this.getTooltipOffset(),\n this.position,\n true\n );\n this.TopPos = value;\n\n const requiredPosition = this.GetTooltipPosition();\n if (requiredPosition === TooltipPosition.bottom || requiredPosition === TooltipPosition.top) {\n this.posArrowLeft = this.getToolTipWidth() / 2 - 6.5;\n } else {\n this.posArrowLeft = null;\n }\n\n return value;\n }\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._isTooltipVisible) {\n return;\n }\n\n setTimeout(() => {\n this.getLeftPosition();\n this.getTopPosition();\n });\n };\n\n // #endregion Private Methods\n}\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"82bec8d5fb0e4f5d3a60ab32f24983010054c248"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
+ cov_968u3h0sn=function(){return actualCoverage;};}return actualCoverage;}cov_968u3h0sn();import{convertToBoolean}from'../../utilities/convertion';import{TooltipPosition}from'../../utilities/enums';import{createGuid}from'../../utilities/guid';import{PopUpHelper}from'../../utilities/popuphelper';import{Directive,Input,ViewChild}from'@angular/core';import*as i0 from"@angular/core";/**
3
+ * Tooltip Component
4
+ *
5
+ * Requires the following identifiers in the HTML markup
6
+ * - container: Container for ng-content in which the element is displayed where the tooltip is attached.
7
+ * - tooltip: Container for tooltip
8
+ *
9
+ * Tooltip must be displayed in 2 steps. In a first step the tooltip markup is created with (ngIf). In a 2nd step
10
+ * the tooltip can then be displayed via the CSS visibility. If this is not done, it can lead to a flickering effect in certain browsers.
11
+ *
12
+ */export class SacTooltipCommon{// #endregion Properties
13
+ // #region Constructors
14
+ /**
15
+ * Konstruktor
16
+ * @param ref Element Referenz
17
+ */constructor(cdRef,ref){cov_968u3h0sn().f[0]++;cov_968u3h0sn().s[0]++;this.cdRef=cdRef;cov_968u3h0sn().s[1]++;this.ref=ref;// #region Properties
18
+ /**
19
+ * Helper class to display tooltip on correct position
20
+ */cov_968u3h0sn().s[2]++;this.popupHelper=new PopUpHelper();/**
21
+ * Defines whether the tooltip is visible
22
+ */cov_968u3h0sn().s[3]++;this._isTooltipVisible=false;/**
23
+ * Position of the tooltip on the left
24
+ */cov_968u3h0sn().s[4]++;this.IsTooltipContentVisible=false;/**
25
+ * Position des Tooltips links
26
+ */cov_968u3h0sn().s[5]++;this.LeftPos=0;/**
27
+ * Property for enum in Angular HTML template
28
+ */cov_968u3h0sn().s[6]++;this.TooltipPosition=TooltipPosition;/**
29
+ * Position of the tooltip at the top
30
+ */cov_968u3h0sn().s[7]++;this.TopPos=0;/**
31
+ * Identifier used for the E2E data attribute.
32
+ */cov_968u3h0sn().s[8]++;this.e2eidentifier=null;/**
33
+ * name of control
34
+ */cov_968u3h0sn().s[9]++;this.name=createGuid();/**
35
+ * Position of the picker arrow at the left
36
+ */cov_968u3h0sn().s[10]++;this.posArrowLeft=null;/**
37
+ * Position of the picker arrow at the top
38
+ */cov_968u3h0sn().s[11]++;this.posArrowTop=null;/**
39
+ * Position of the tooltip. Values: left|top|right|bottom|auto
40
+ *
41
+ * Value 'auto' can be combined with another value.
42
+ */cov_968u3h0sn().s[12]++;this.position='right|auto';/**
43
+ * method if content has changed and proportions need to be reset in the UI.
44
+ */cov_968u3h0sn().s[13]++;this.onContentChange=()=>{cov_968u3h0sn().f[1]++;cov_968u3h0sn().s[14]++;// Do nothing if is not visible
45
+ if(!this._isTooltipVisible){cov_968u3h0sn().b[0][0]++;cov_968u3h0sn().s[15]++;return;}else{cov_968u3h0sn().b[0][1]++;}cov_968u3h0sn().s[16]++;setTimeout(()=>{cov_968u3h0sn().f[2]++;cov_968u3h0sn().s[17]++;this.getLeftPosition();cov_968u3h0sn().s[18]++;this.getTopPosition();});};}// #endregion Constructors
46
+ // #region Public Getters And Setters
47
+ /**
48
+ * Property for inline mode for tooltip. Sets the display mode on the wrapper element to `inline`
49
+ */get inlinemode(){cov_968u3h0sn().f[3]++;cov_968u3h0sn().s[19]++;return this._inlinemode;}/**
50
+ * Setter for inline mode for tooltip
51
+ */set inlinemode(value){cov_968u3h0sn().f[4]++;cov_968u3h0sn().s[20]++;this._inlinemode=convertToBoolean(value);}/**
52
+ * Setter for the name of the container for the tooltip. Is required as the tooltip can be hidden via ngIf.
53
+ */set tooltip(content){cov_968u3h0sn().f[5]++;cov_968u3h0sn().s[21]++;if(content!==undefined){cov_968u3h0sn().b[1][0]++;cov_968u3h0sn().s[22]++;document.body.appendChild(content.nativeElement);}else{cov_968u3h0sn().b[1][1]++;}cov_968u3h0sn().s[23]++;this.tooltipcontainer=content;cov_968u3h0sn().s[24]++;this.onContentChange();cov_968u3h0sn().s[25]++;this.cdRef.detectChanges();}get tooltop(){cov_968u3h0sn().f[6]++;cov_968u3h0sn().s[26]++;return this.tooltipcontainer;}// #endregion Public Getters And Setters
54
+ // #region Public Methods
55
+ /**
56
+ * Returns the position of the tooltip
57
+ */GetTooltipPosition(){cov_968u3h0sn().f[7]++;cov_968u3h0sn().s[27]++;return this.popupHelper.getDisplayPosition(this.content,this.tooltipcontainer,this.getTooltipOffset(),this.getTooltipOffset(),this.position,true);}/**
58
+ * Hide tooltip
59
+ */HideTooltip(){cov_968u3h0sn().f[8]++;cov_968u3h0sn().s[28]++;this._isTooltipVisible=false;cov_968u3h0sn().s[29]++;this.IsTooltipContentVisible=false;}/**
60
+ * Defines whether the tooltip is present in the markup
61
+ */IsTooltipVisible(){cov_968u3h0sn().f[9]++;cov_968u3h0sn().s[30]++;return this._isTooltipVisible;}/**
62
+ * Show tooltip
63
+ */ShowTooltip(){cov_968u3h0sn().f[10]++;cov_968u3h0sn().s[31]++;this._isTooltipVisible=true;cov_968u3h0sn().s[32]++;this.cdRef.detectChanges();cov_968u3h0sn().s[33]++;setTimeout(()=>{cov_968u3h0sn().f[11]++;cov_968u3h0sn().s[34]++;this.getLeftPosition();cov_968u3h0sn().s[35]++;this.getTopPosition();cov_968u3h0sn().s[36]++;this.IsTooltipContentVisible=true;});}/**
64
+ * Calculates the height of the tooltip
65
+ */getToolTipHeight(){cov_968u3h0sn().f[12]++;cov_968u3h0sn().s[37]++;return this.popupHelper.getPopupHeight(this.tooltipcontainer);}/**
66
+ * Calculates the width of the tooltips
67
+ */getToolTipWidth(){cov_968u3h0sn().f[13]++;cov_968u3h0sn().s[38]++;return this.popupHelper.getPopupWidth(this.tooltipcontainer);}/**
68
+ * Detect Changes after view checked. Prevent ExpressionChangedAfterItHasBeenCheckedError error
69
+ */ngAfterViewChecked(){cov_968u3h0sn().f[14]++;cov_968u3h0sn().s[39]++;// Do nothing if is not visibile
70
+ if(!this._isTooltipVisible){cov_968u3h0sn().b[2][0]++;cov_968u3h0sn().s[40]++;return;}else{cov_968u3h0sn().b[2][1]++;}cov_968u3h0sn().s[41]++;this.cdRef.detectChanges();}/**
71
+ * Detect UI Changes to Calculate Tooltip correct
72
+ */ngDoCheck(){cov_968u3h0sn().f[15]++;cov_968u3h0sn().s[42]++;// Do nothing if is not visibile
73
+ if(!this._isTooltipVisible){cov_968u3h0sn().b[3][0]++;cov_968u3h0sn().s[43]++;return;}else{cov_968u3h0sn().b[3][1]++;}cov_968u3h0sn().s[44]++;this.getLeftPosition();cov_968u3h0sn().s[45]++;this.getTopPosition();}/**
74
+ * Event when the control is destroyed.
75
+ */ngOnDestroy(){cov_968u3h0sn().f[16]++;cov_968u3h0sn().s[46]++;// Unregister Event Listener
76
+ window.removeEventListener('scroll',this.onContentChange,true);cov_968u3h0sn().s[47]++;window.removeEventListener('resize',this.onContentChange,true);cov_968u3h0sn().s[48]++;if(this.tooltipcontainer!==undefined){cov_968u3h0sn().b[4][0]++;cov_968u3h0sn().s[49]++;document.body.removeChild(this.tooltipcontainer.nativeElement);}else{cov_968u3h0sn().b[4][1]++;}}/**
77
+ * Event when the control is initialized
78
+ */ngOnInit(){cov_968u3h0sn().f[17]++;cov_968u3h0sn().s[50]++;// Register Event Listener
79
+ window.addEventListener('scroll',this.onContentChange,true);cov_968u3h0sn().s[51]++;window.addEventListener('resize',this.onContentChange,true);cov_968u3h0sn().s[52]++;if(this.tooltipcontainer!==undefined){cov_968u3h0sn().b[5][0]++;cov_968u3h0sn().s[53]++;document.body.appendChild(this.tooltipcontainer.nativeElement);}else{cov_968u3h0sn().b[5][1]++;}}// #endregion Protected Methods
80
+ // #region Private Methods
81
+ /**
82
+ * Calculates the position of the tooltip from links
83
+ */getLeftPosition(){cov_968u3h0sn().f[18]++;const value=(cov_968u3h0sn().s[54]++,this.popupHelper.getPositionLeft(this.content,this.tooltipcontainer,this.ref,this.getTooltipOffset(),this.getTooltipOffset(),this.position,true));cov_968u3h0sn().s[55]++;this.LeftPos=value;const requiredPosition=(cov_968u3h0sn().s[56]++,this.GetTooltipPosition());cov_968u3h0sn().s[57]++;if((cov_968u3h0sn().b[7][0]++,requiredPosition===TooltipPosition.left)||(cov_968u3h0sn().b[7][1]++,requiredPosition===TooltipPosition.right)){cov_968u3h0sn().b[6][0]++;cov_968u3h0sn().s[58]++;this.posArrowTop=this.getToolTipHeight()/2-6.5;}else{cov_968u3h0sn().b[6][1]++;cov_968u3h0sn().s[59]++;this.posArrowTop=null;}cov_968u3h0sn().s[60]++;return value;}/**
84
+ * Calculates the position of the tooltip from the top
85
+ */getTopPosition(){cov_968u3h0sn().f[19]++;const value=(cov_968u3h0sn().s[61]++,this.popupHelper.getPositionTop(this.content,this.tooltipcontainer,this.ref,this.getTooltipOffset(),this.getTooltipOffset(),this.position,true));cov_968u3h0sn().s[62]++;this.TopPos=value;const requiredPosition=(cov_968u3h0sn().s[63]++,this.GetTooltipPosition());cov_968u3h0sn().s[64]++;if((cov_968u3h0sn().b[9][0]++,requiredPosition===TooltipPosition.bottom)||(cov_968u3h0sn().b[9][1]++,requiredPosition===TooltipPosition.top)){cov_968u3h0sn().b[8][0]++;cov_968u3h0sn().s[65]++;this.posArrowLeft=this.getToolTipWidth()/2-6.5;}else{cov_968u3h0sn().b[8][1]++;cov_968u3h0sn().s[66]++;this.posArrowLeft=null;}cov_968u3h0sn().s[67]++;return value;}}cov_968u3h0sn().s[68]++;SacTooltipCommon.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacTooltipCommon,deps:[{token:i0.ChangeDetectorRef},{token:i0.ElementRef}],target:i0.ɵɵFactoryTarget.Directive});cov_968u3h0sn().s[69]++;SacTooltipCommon.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacTooltipCommon,inputs:{e2eidentifier:"e2eidentifier",name:"name",position:"position",tooltiptext:"tooltiptext",inlinemode:"inlinemode"},viewQueries:[{propertyName:"content",first:true,predicate:["container"],descendants:true,static:true},{propertyName:"tooltip",first:true,predicate:["tooltip"],descendants:true}],ngImport:i0});cov_968u3h0sn().s[70]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacTooltipCommon,decorators:[{type:Directive}],ctorParameters:function(){cov_968u3h0sn().f[20]++;cov_968u3h0sn().s[71]++;return[{type:i0.ChangeDetectorRef},{type:i0.ElementRef}];},propDecorators:{content:[{type:ViewChild,args:['container',{static:true}]}],e2eidentifier:[{type:Input}],name:[{type:Input}],position:[{type:Input}],tooltiptext:[{type:Input}],inlinemode:[{type:Input}],tooltip:[{type:ViewChild,args:['tooltip',{static:false}]}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbnRyb2xzL3Rvb2x0aXAvdG9vbHRpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBR0gsU0FBUyxFQUdULEtBQUssRUFHTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7O0FBRXZCOzs7Ozs7Ozs7O0dBVUc7QUFFSCxNQUFNLE9BQWdCLGdCQUFnQjtJQXFGbEMsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUE2QixLQUF3QixFQUFtQixHQUFlO1FBQTFELFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQW1CLFFBQUcsR0FBSCxHQUFHLENBQVk7UUE1RnZGLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNjLGdCQUFXLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFPOUQ7O1dBRUc7UUFDSyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFPM0M7O1dBRUc7UUFDSSw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFFaEQ7O1dBRUc7UUFDSSxZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBRTNCOztXQUVHO1FBQ0ksb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFFekM7O1dBRUc7UUFDSSxXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBUTFCOztXQUVHO1FBRUksa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBRTNDOztXQUVHO1FBRUksU0FBSSxHQUFXLFVBQVUsRUFBRSxDQUFDO1FBRW5DOztXQUVHO1FB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WUFDekYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUN4RDthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDNUI7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzs2R0FqVGlCLGdCQUFnQjtpR0FBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRHJDLFNBQVM7aUlBZ0RDLE9BQU87c0JBRGIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU9qQyxhQUFhO3NCQURuQixLQUFLO2dCQU9DLElBQUk7c0JBRFYsS0FBSztnQkFtQkMsUUFBUTtzQkFEZCxLQUFLO2dCQU9DLFdBQVc7c0JBRGpCLEtBQUs7Z0JBNEJLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBU0ssT0FBTztzQkFEakIsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9jb252ZXJ0aW9uJztcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9lbnVtcyc7XG5pbXBvcnQgeyBjcmVhdGVHdWlkIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2d1aWQnO1xuaW1wb3J0IHsgUG9wVXBIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvcG9wdXBoZWxwZXInO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFRvb2x0aXAgQ29tcG9uZW50XG4gKlxuICogUmVxdWlyZXMgdGhlIGZvbGxvd2luZyBpZGVudGlmaWVycyBpbiB0aGUgSFRNTCBtYXJrdXBcbiAqIC0gY29udGFpbmVyOiBDb250YWluZXIgZm9yIG5nLWNvbnRlbnQgaW4gd2hpY2ggdGhlIGVsZW1lbnQgaXMgZGlzcGxheWVkIHdoZXJlIHRoZSB0b29sdGlwIGlzIGF0dGFjaGVkLlxuICogLSB0b29sdGlwOiBDb250YWluZXIgZm9yIHRvb2x0aXBcbiAqXG4gKiBUb29sdGlwIG11c3QgYmUgZGlzcGxheWVkIGluIDIgc3RlcHMuIEluIGEgZmlyc3Qgc3RlcCB0aGUgdG9vbHRpcCBtYXJrdXAgaXMgY3JlYXRlZCB3aXRoIChuZ0lmKS4gSW4gYSAybmQgc3RlcFxuICogdGhlIHRvb2x0aXAgY2FuIHRoZW4gYmUgZGlzcGxheWVkIHZpYSB0aGUgQ1NTIHZpc2liaWxpdHkuIElmIHRoaXMgaXMgbm90IGRvbmUsIGl0IGNhbiBsZWFkIHRvIGEgZmxpY2tlcmluZyBlZmZlY3QgaW4gY2VydGFpbiBicm93c2Vycy5cbiAqXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY1Rvb2x0aXBDb21tb24gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZCwgRG9DaGVjayB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBIZWxwZXIgY2xhc3MgdG8gZGlzcGxheSB0b29sdGlwIG9uIGNvcnJlY3QgcG9zaXRpb25cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcHVwSGVscGVyOiBQb3BVcEhlbHBlciA9IG5ldyBQb3BVcEhlbHBlcigpO1xuXG4gICAgLyoqXG4gICAgICogSW5saW5lIG1vZGUgZm9yIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwcml2YXRlIF9pbmxpbmVtb2RlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIHRoZSB0b29sdGlwIGlzIHZpc2libGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9pc1Rvb2x0aXBWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBDb250YWluZXJzIGZvciB0aGUgdG9vbHRpcFxuICAgICAqL1xuICAgIHByaXZhdGUgdG9vbHRpcGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBvbiB0aGUgbGVmdFxuICAgICAqL1xuICAgIHB1YmxpYyBJc1Rvb2x0aXBDb250ZW50VmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gZGVzIFRvb2x0aXBzIGxpbmtzXG4gICAgICovXG4gICAgcHVibGljIExlZnRQb3M6IG51bWJlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBmb3IgZW51bSBpbiBBbmd1bGFyIEhUTUwgdGVtcGxhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgVG9vbHRpcFBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgYXQgdGhlIHRvcFxuICAgICAqL1xuICAgIHB1YmxpYyBUb3BQb3M6IG51bWJlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIGNvbnRlbnQgKGUuZy4gaWNvbikgb24gd2hpY2ggdGhlIHRvb2x0aXAgaXMgZGlzcGxheWVkLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIGNvbnRlbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciB1c2VkIGZvciB0aGUgRTJFIGRhdGEgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGUyZWlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogbmFtZSBvZiBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nID0gY3JlYXRlR3VpZCgpO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgbGVmdFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3NBcnJvd0xlZnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93VG9wOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSB0b29sdGlwLiBWYWx1ZXM6IGxlZnR8dG9wfHJpZ2h0fGJvdHRvbXxhdXRvXG4gICAgICpcbiAgICAgKiBWYWx1ZSAnYXV0bycgY2FuIGJlIGNvbWJpbmVkIHdpdGggYW5vdGhlciB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwb3NpdGlvbjogc3RyaW5nID0gJ3JpZ2h0fGF1dG8nO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCBmb3IgVG9vbFRpcFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRvb2x0aXB0ZXh0OiBzdHJpbmc7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBLb25zdHJ1a3RvclxuICAgICAqIEBwYXJhbSByZWYgRWxlbWVudCBSZWZlcmVuelxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlYWRvbmx5IHJlZjogRWxlbWVudFJlZikge31cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBmb3IgaW5saW5lIG1vZGUgZm9yIHRvb2x0aXAuIFNldHMgdGhlIGRpc3BsYXkgbW9kZSBvbiB0aGUgd3JhcHBlciBlbGVtZW50IHRvIGBpbmxpbmVgXG4gICAgICovXG4gICAgcHVibGljIGdldCBpbmxpbmVtb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5saW5lbW9kZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXR0ZXIgZm9yIGlubGluZSBtb2RlIGZvciB0b29sdGlwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGlubGluZW1vZGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faW5saW5lbW9kZSA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmb3IgdGhlIG5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgdGhlIHRvb2x0aXAuIElzIHJlcXVpcmVkIGFzIHRoZSB0b29sdGlwIGNhbiBiZSBoaWRkZW4gdmlhIG5nSWYuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgndG9vbHRpcCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgdG9vbHRpcChjb250ZW50OiBFbGVtZW50UmVmKSB7XG4gICAgICAgIGlmIChjb250ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudG9vbHRpcGNvbnRhaW5lciA9IGNvbnRlbnQ7XG4gICAgICAgIHRoaXMub25Db250ZW50Q2hhbmdlKCk7XG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdG9vbHRvcCgpOiBFbGVtZW50UmVmIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcGNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBHZXRUb29sdGlwUG9zaXRpb24oKTogVG9vbHRpcFBvc2l0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0RGlzcGxheVBvc2l0aW9uKFxuICAgICAgICAgICAgdGhpcy5jb250ZW50LFxuICAgICAgICAgICAgdGhpcy50b29sdGlwY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEhpZGVUb29sdGlwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuSXNUb29sdGlwQ29udGVudFZpc2libGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgcHJlc2VudCBpbiB0aGUgbWFya3VwXG4gICAgICovXG4gICAgcHVibGljIElzVG9vbHRpcFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBTaG93VG9vbHRpcCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNUb29sdGlwVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRMZWZ0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuSXNUb29sdGlwQ29udGVudFZpc2libGUgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgb2YgdGhlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VG9vbFRpcEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cEhlaWdodCh0aGlzLnRvb2x0aXBjb250YWluZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSB0b29sdGlwc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUb29sVGlwV2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9wdXBXaWR0aCh0aGlzLnRvb2x0aXBjb250YWluZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVjdCBDaGFuZ2VzIGFmdGVyIHZpZXcgY2hlY2tlZC4gUHJldmVudCBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yIGVycm9yXG4gICAgICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJpbGVcbiAgICAgICAgaWYgKCF0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlY3QgVUkgQ2hhbmdlcyB0byBDYWxjdWxhdGUgVG9vbHRpcCBjb3JyZWN0XG4gICAgICovXG4gICAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJpbGVcbiAgICAgICAgaWYgKCF0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdldExlZnRQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLmdldFRvcFBvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXZlbnQgd2hlbiB0aGUgY29udHJvbCBpcyBkZXN0cm95ZWQuXG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBVbnJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcGNvbnRhaW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRoaXMudG9vbHRpcGNvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV2ZW50IHdoZW4gdGhlIGNvbnRyb2wgaXMgaW5pdGlhbGl6ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIC8vIFJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcGNvbnRhaW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMudG9vbHRpcGNvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIE9mZnNldCBmb3IgVG9vbHRpcC4gUmVxdWlyZWQgZm9yIEJTNC9CUzUgdG8gY3JlYXRlIHBhZGRpbmdcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0VG9vbHRpcE9mZnNldCgpOiBudW1iZXI7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSBsaW5rc1xuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0TGVmdFBvc2l0aW9uKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3NpdGlvbkxlZnQoXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLnJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLkxlZnRQb3MgPSB2YWx1ZTtcblxuICAgICAgICBjb25zdCByZXF1aXJlZFBvc2l0aW9uID0gdGhpcy5HZXRUb29sdGlwUG9zaXRpb24oKTtcbiAgICAgICAgaWYgKHJlcXVpcmVkUG9zaXRpb24gPT09IFRvb2x0aXBQb3NpdGlvbi5sZWZ0IHx8IHJlcXVpcmVkUG9zaXRpb24gPT09IFRvb2x0aXBQb3NpdGlvbi5yaWdodCkge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IHRoaXMuZ2V0VG9vbFRpcEhlaWdodCgpIC8gMiAtIDYuNTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvcFxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0VG9wUG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uVG9wKFxuICAgICAgICAgICAgdGhpcy5jb250ZW50LFxuICAgICAgICAgICAgdGhpcy50b29sdGlwY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5yZWYsXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5Ub3BQb3MgPSB2YWx1ZTtcblxuICAgICAgICBjb25zdCByZXF1aXJlZFBvc2l0aW9uID0gdGhpcy5HZXRUb29sdGlwUG9zaXRpb24oKTtcbiAgICAgICAgaWYgKHJlcXVpcmVkUG9zaXRpb24gPT09IFRvb2x0aXBQb3NpdGlvbi5ib3R0b20gfHwgcmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLnRvcCkge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSB0aGlzLmdldFRvb2xUaXBXaWR0aCgpIC8gMiAtIDYuNTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBtZXRob2QgaWYgY29udGVudCBoYXMgY2hhbmdlZCBhbmQgcHJvcG9ydGlvbnMgbmVlZCB0byBiZSByZXNldCBpbiB0aGUgVUkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBvbkNvbnRlbnRDaGFuZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgaXMgbm90IHZpc2libGVcbiAgICAgICAgaWYgKCF0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ2V0TGVmdFBvc2l0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLmdldFRvcFBvc2l0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xufVxuIl19
86
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb252ZXJ0VG9Cb29sZWFuIiwiVG9vbHRpcFBvc2l0aW9uIiwiY3JlYXRlR3VpZCIsIlBvcFVwSGVscGVyIiwiRGlyZWN0aXZlIiwiSW5wdXQiLCJWaWV3Q2hpbGQiLCJTYWNUb29sdGlwQ29tbW9uIiwiY29uc3RydWN0b3IiLCJjZFJlZiIsInJlZiIsImNvdl85Njh1M2gwc24iLCJmIiwicyIsInBvcHVwSGVscGVyIiwiX2lzVG9vbHRpcFZpc2libGUiLCJJc1Rvb2x0aXBDb250ZW50VmlzaWJsZSIsIkxlZnRQb3MiLCJUb3BQb3MiLCJlMmVpZGVudGlmaWVyIiwibmFtZSIsInBvc0Fycm93TGVmdCIsInBvc0Fycm93VG9wIiwicG9zaXRpb24iLCJvbkNvbnRlbnRDaGFuZ2UiLCJiIiwic2V0VGltZW91dCIsImdldExlZnRQb3NpdGlvbiIsImdldFRvcFBvc2l0aW9uIiwiaW5saW5lbW9kZSIsIl9pbmxpbmVtb2RlIiwidmFsdWUiLCJ0b29sdGlwIiwiY29udGVudCIsInVuZGVmaW5lZCIsImRvY3VtZW50IiwiYm9keSIsImFwcGVuZENoaWxkIiwibmF0aXZlRWxlbWVudCIsInRvb2x0aXBjb250YWluZXIiLCJkZXRlY3RDaGFuZ2VzIiwidG9vbHRvcCIsIkdldFRvb2x0aXBQb3NpdGlvbiIsImdldERpc3BsYXlQb3NpdGlvbiIsImdldFRvb2x0aXBPZmZzZXQiLCJIaWRlVG9vbHRpcCIsIklzVG9vbHRpcFZpc2libGUiLCJTaG93VG9vbHRpcCIsImdldFRvb2xUaXBIZWlnaHQiLCJnZXRQb3B1cEhlaWdodCIsImdldFRvb2xUaXBXaWR0aCIsImdldFBvcHVwV2lkdGgiLCJuZ0FmdGVyVmlld0NoZWNrZWQiLCJuZ0RvQ2hlY2siLCJuZ09uRGVzdHJveSIsIndpbmRvdyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW1vdmVDaGlsZCIsIm5nT25Jbml0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImdldFBvc2l0aW9uTGVmdCIsInJlcXVpcmVkUG9zaXRpb24iLCJsZWZ0IiwicmlnaHQiLCJnZXRQb3NpdGlvblRvcCIsImJvdHRvbSIsInRvcCIsImRlcHMiLCJ0b2tlbiIsImkwIiwiQ2hhbmdlRGV0ZWN0b3JSZWYiLCJFbGVtZW50UmVmIiwidGFyZ2V0IiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJ0b29sdGlwdGV4dCIsInZpZXdRdWVyaWVzIiwicHJvcGVydHlOYW1lIiwiZmlyc3QiLCJwcmVkaWNhdGUiLCJkZXNjZW5kYW50cyIsInN0YXRpYyIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbnRyb2xzL3Rvb2x0aXAvdG9vbHRpcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2NvbnZlcnRpb24nO1xuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2VudW1zJztcbmltcG9ydCB7IGNyZWF0ZUd1aWQgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZ3VpZCc7XG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVG9vbHRpcCBDb21wb25lbnRcbiAqXG4gKiBSZXF1aXJlcyB0aGUgZm9sbG93aW5nIGlkZW50aWZpZXJzIGluIHRoZSBIVE1MIG1hcmt1cFxuICogLSBjb250YWluZXI6IENvbnRhaW5lciBmb3IgbmctY29udGVudCBpbiB3aGljaCB0aGUgZWxlbWVudCBpcyBkaXNwbGF5ZWQgd2hlcmUgdGhlIHRvb2x0aXAgaXMgYXR0YWNoZWQuXG4gKiAtIHRvb2x0aXA6IENvbnRhaW5lciBmb3IgdG9vbHRpcFxuICpcbiAqIFRvb2x0aXAgbXVzdCBiZSBkaXNwbGF5ZWQgaW4gMiBzdGVwcy4gSW4gYSBmaXJzdCBzdGVwIHRoZSB0b29sdGlwIG1hcmt1cCBpcyBjcmVhdGVkIHdpdGggKG5nSWYpLiBJbiBhIDJuZCBzdGVwXG4gKiB0aGUgdG9vbHRpcCBjYW4gdGhlbiBiZSBkaXNwbGF5ZWQgdmlhIHRoZSBDU1MgdmlzaWJpbGl0eS4gSWYgdGhpcyBpcyBub3QgZG9uZSwgaXQgY2FuIGxlYWQgdG8gYSBmbGlja2VyaW5nIGVmZmVjdCBpbiBjZXJ0YWluIGJyb3dzZXJzLlxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjVG9vbHRpcENvbW1vbiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkLCBEb0NoZWNrIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEhlbHBlciBjbGFzcyB0byBkaXNwbGF5IHRvb2x0aXAgb24gY29ycmVjdCBwb3NpdGlvblxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9wdXBIZWxwZXI6IFBvcFVwSGVscGVyID0gbmV3IFBvcFVwSGVscGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBJbmxpbmUgbW9kZSBmb3IgdG9vbHRpcFxuICAgICAqL1xuICAgIHByaXZhdGUgX2lubGluZW1vZGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgdmlzaWJsZVxuICAgICAqL1xuICAgIHByaXZhdGUgX2lzVG9vbHRpcFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5lcnMgZm9yIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHJpdmF0ZSB0b29sdGlwY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIG9uIHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIElzVG9vbHRpcENvbnRlbnRWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBkZXMgVG9vbHRpcHMgbGlua3NcbiAgICAgKi9cbiAgICBwdWJsaWMgTGVmdFBvczogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBlbnVtIGluIEFuZ3VsYXIgSFRNTCB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIFRvcFBvczogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgY29udGVudCAoZS5nLiBpY29uKSBvbiB3aGljaCB0aGUgdG9vbHRpcCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgY29udGVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBJZGVudGlmaWVyIHVzZWQgZm9yIHRoZSBFMkUgZGF0YSBhdHRyaWJ1dGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZTJlaWRlbnRpZmllcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBuYW1lIG9mIGNvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSBjcmVhdGVHdWlkKCk7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93TGVmdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSB0b3BcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zQXJyb3dUb3A6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuIFZhbHVlczogbGVmdHx0b3B8cmlnaHR8Ym90dG9tfGF1dG9cbiAgICAgKlxuICAgICAqIFZhbHVlICdhdXRvJyBjYW4gYmUgY29tYmluZWQgd2l0aCBhbm90aGVyIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBvc2l0aW9uOiBzdHJpbmcgPSAncmlnaHR8YXV0byc7XG5cbiAgICAvKipcbiAgICAgKiBUZXh0IGZvciBUb29sVGlwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcHRleHQ6IHN0cmluZztcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIEtvbnN0cnVrdG9yXG4gICAgICogQHBhcmFtIHJlZiBFbGVtZW50IFJlZmVyZW56XG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmVhZG9ubHkgcmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBpbmxpbmUgbW9kZSBmb3IgdG9vbHRpcC4gU2V0cyB0aGUgZGlzcGxheSBtb2RlIG9uIHRoZSB3cmFwcGVyIGVsZW1lbnQgdG8gYGlubGluZWBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlubGluZW1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVtb2RlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmb3IgaW5saW5lIG1vZGUgZm9yIHRvb2x0aXBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgaW5saW5lbW9kZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pbmxpbmVtb2RlID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0dGVyIGZvciB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciB0aGUgdG9vbHRpcC4gSXMgcmVxdWlyZWQgYXMgdGhlIHRvb2x0aXAgY2FuIGJlIGhpZGRlbiB2aWEgbmdJZi5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCd0b29sdGlwJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCB0b29sdGlwKGNvbnRlbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgaWYgKGNvbnRlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250ZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b29sdGlwY29udGFpbmVyID0gY29udGVudDtcbiAgICAgICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0b29sdG9wKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwY29udGFpbmVyO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEdldFRvb2x0aXBQb3NpdGlvbigpOiBUb29sdGlwUG9zaXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXREaXNwbGF5UG9zaXRpb24oXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgSGlkZVRvb2x0aXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzVG9vbHRpcFZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5Jc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciB0aGUgdG9vbHRpcCBpcyBwcmVzZW50IGluIHRoZSBtYXJrdXBcbiAgICAgKi9cbiAgICBwdWJsaWMgSXNUb29sdGlwVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVG9vbHRpcFZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIFNob3dUb29sdGlwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldExlZnRQb3NpdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5nZXRUb3BQb3NpdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5Jc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBvZiB0aGUgdG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUb29sVGlwSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwSGVpZ2h0KHRoaXMudG9vbHRpcGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIHRvb2x0aXBzXG4gICAgICovXG4gICAgcHVibGljIGdldFRvb2xUaXBXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cFdpZHRoKHRoaXMudG9vbHRpcGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZWN0IENoYW5nZXMgYWZ0ZXIgdmlldyBjaGVja2VkLiBQcmV2ZW50IEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IgZXJyb3JcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmlsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVjdCBVSSBDaGFuZ2VzIHRvIENhbGN1bGF0ZSBUb29sdGlwIGNvcnJlY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmlsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2V0TGVmdFBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3aGVuIHRoZSBjb250cm9sIGlzIGRlc3Ryb3llZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIFVucmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy50b29sdGlwY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXZlbnQgd2hlbiB0aGUgY29udHJvbCBpcyBpbml0aWFsaXplZFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gUmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogT2Zmc2V0IGZvciBUb29sdGlwLiBSZXF1aXJlZCBmb3IgQlM0L0JTNSB0byBjcmVhdGUgcGFkZGluZ1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRUb29sdGlwT2Zmc2V0KCk6IG51bWJlcjtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIGxpbmtzXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRMZWZ0UG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uTGVmdChcbiAgICAgICAgICAgIHRoaXMuY29udGVudCxcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcGNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMucmVmLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuTGVmdFBvcyA9IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUG9zaXRpb24gPSB0aGlzLkdldFRvb2x0aXBQb3NpdGlvbigpO1xuICAgICAgICBpZiAocmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLmxlZnQgfHwgcmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLnJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gdGhpcy5nZXRUb29sVGlwSGVpZ2h0KCkgLyAyIC0gNi41O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9wXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRUb3BQb3NpdGlvbigpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25Ub3AoXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLnJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLlRvcFBvcyA9IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUG9zaXRpb24gPSB0aGlzLkdldFRvb2x0aXBQb3NpdGlvbigpO1xuICAgICAgICBpZiAocmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSB8fCByZXF1aXJlZFBvc2l0aW9uID09PSBUb29sdGlwUG9zaXRpb24udG9wKSB7XG4gICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IHRoaXMuZ2V0VG9vbFRpcFdpZHRoKCkgLyAyIC0gNi41O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIG1ldGhvZCBpZiBjb250ZW50IGhhcyBjaGFuZ2VkIGFuZCBwcm9wb3J0aW9ucyBuZWVkIHRvIGJlIHJlc2V0IGluIHRoZSBVSS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uQ29udGVudENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRMZWZ0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXSwibWFwcGluZ3MiOiI7eUZBQUEsT0FBU0EsZ0JBQWdCLEtBQVEsNEJBQTRCLENBQzdELE9BQVNDLGVBQWUsS0FBUSx1QkFBdUIsQ0FDdkQsT0FBU0MsVUFBVSxLQUFRLHNCQUFzQixDQUNqRCxPQUFTQyxXQUFXLEtBQVEsNkJBQTZCLENBQ3pELE9BR0lDLFNBQVMsQ0FHVEMsS0FBSyxDQUdMQyxTQUFTLEtBQ04sZUFBZSxDLGlDQUV0Qjs7Ozs7Ozs7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