@simpleangularcontrols/sac-common 13.0.0-rc.4 → 13.0.0-rc.6

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 (468) hide show
  1. package/common/basedatetimecontrol.d.ts.map +1 -1
  2. package/common/basemodelcontrol.d.ts +40 -22
  3. package/common/basemodelcontrol.d.ts.map +1 -1
  4. package/common/baseuploadcontrol.d.ts.map +1 -1
  5. package/components/browser/browser.d.ts +11 -6
  6. package/components/browser/browser.d.ts.map +1 -1
  7. package/controls/buttons/button.d.ts +23 -22
  8. package/controls/buttons/button.d.ts.map +1 -1
  9. package/controls/checkbox/radiobutton.d.ts +9 -0
  10. package/controls/checkbox/radiobutton.d.ts.map +1 -1
  11. package/controls/checkbox/radiobuttons.d.ts +20 -20
  12. package/controls/checkbox/radiobuttons.d.ts.map +1 -1
  13. package/controls/confirm/confirm.button.d.ts +14 -8
  14. package/controls/confirm/confirm.button.d.ts.map +1 -1
  15. package/controls/confirm/confirm.service.d.ts +24 -19
  16. package/controls/confirm/confirm.service.d.ts.map +1 -1
  17. package/controls/contextmenu/contextmenu.d.ts.map +1 -1
  18. package/controls/datetime/date.d.ts +33 -33
  19. package/controls/datetime/date.d.ts.map +1 -1
  20. package/controls/datetime/datetime.d.ts +31 -31
  21. package/controls/datetime/datetime.d.ts.map +1 -1
  22. package/controls/datetime/time.d.ts +29 -29
  23. package/controls/datetime/time.d.ts.map +1 -1
  24. package/controls/grid/grid.d.ts +57 -54
  25. package/controls/grid/grid.d.ts.map +1 -1
  26. package/controls/grid/paging.d.ts +70 -67
  27. package/controls/grid/paging.d.ts.map +1 -1
  28. package/controls/input/input.d.ts +11 -11
  29. package/controls/input/input.d.ts.map +1 -1
  30. package/controls/input/inputdecimal.d.ts.map +1 -1
  31. package/controls/input/inputemail.d.ts.map +1 -1
  32. package/controls/input/inputinteger.d.ts +21 -21
  33. package/controls/input/inputinteger.d.ts.map +1 -1
  34. package/controls/input/inputpassword.d.ts +5 -5
  35. package/controls/input/inputpassword.d.ts.map +1 -1
  36. package/controls/layout/formlayout.d.ts +14 -9
  37. package/controls/layout/formlayout.d.ts.map +1 -1
  38. package/controls/list/dropdown.d.ts.map +1 -1
  39. package/controls/list/listbox.d.ts +20 -20
  40. package/controls/list/listbox.d.ts.map +1 -1
  41. package/controls/multilanguage/multilanguageinput.d.ts +31 -31
  42. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  43. package/controls/multilanguage/multilanguageinputarea.d.ts +34 -34
  44. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  45. package/controls/tinymce/tinymce.d.ts.map +1 -1
  46. package/controls/upload/dropzonemultiple.d.ts +24 -24
  47. package/controls/upload/dropzonemultiple.d.ts.map +1 -1
  48. package/controls/upload/uploadmultiple.d.ts +9 -9
  49. package/controls/upload/uploadmultiple.d.ts.map +1 -1
  50. package/controls/validation/validationsummary.d.ts +18 -13
  51. package/controls/validation/validationsummary.d.ts.map +1 -1
  52. package/enums/ButtonRoleType.d.ts +2 -0
  53. package/enums/ButtonRoleType.d.ts.map +1 -0
  54. package/enums/ButtonRoleType.ngfactory.d.ts +2 -0
  55. package/enums/ButtonRoleType.ngfactory.d.ts.map +1 -0
  56. package/enums/ButtonRoleType.ngsummary.d.ts +2 -0
  57. package/enums/ButtonRoleType.ngsummary.d.ts.map +1 -0
  58. package/enums/ControlHeight.d.ts +18 -0
  59. package/enums/ControlHeight.d.ts.map +1 -0
  60. package/enums/ControlHeight.ngfactory.d.ts +2 -0
  61. package/enums/ControlHeight.ngfactory.d.ts.map +1 -0
  62. package/enums/ControlHeight.ngsummary.d.ts +2 -0
  63. package/enums/ControlHeight.ngsummary.d.ts.map +1 -0
  64. package/esm2020/common/basedatetimecontrol.mjs +32 -147
  65. package/esm2020/common/basedatetimecontrol.ngfactory.mjs +3 -4
  66. package/esm2020/common/basedatetimecontrol.ngsummary.mjs +3 -2
  67. package/esm2020/common/baseinputcontrol.mjs +20 -76
  68. package/esm2020/common/baseinputcontrol.ngfactory.mjs +3 -4
  69. package/esm2020/common/baseinputcontrol.ngsummary.mjs +3 -2
  70. package/esm2020/common/baselistcontrol.mjs +11 -55
  71. package/esm2020/common/baselistcontrol.ngfactory.mjs +3 -4
  72. package/esm2020/common/baselistcontrol.ngsummary.mjs +3 -2
  73. package/esm2020/common/basemodelcontrol.mjs +87 -413
  74. package/esm2020/common/basemodelcontrol.ngfactory.mjs +3 -4
  75. package/esm2020/common/basemodelcontrol.ngsummary.mjs +3 -2
  76. package/esm2020/common/baseselectcontrol.mjs +6 -26
  77. package/esm2020/common/baseselectcontrol.ngfactory.mjs +3 -4
  78. package/esm2020/common/baseselectcontrol.ngsummary.mjs +3 -2
  79. package/esm2020/common/baseuploadcontrol.mjs +64 -388
  80. package/esm2020/common/baseuploadcontrol.ngfactory.mjs +3 -4
  81. package/esm2020/common/baseuploadcontrol.ngsummary.mjs +3 -2
  82. package/esm2020/components/browser/browser.mjs +66 -473
  83. package/esm2020/components/browser/browser.ngfactory.mjs +3 -4
  84. package/esm2020/components/browser/browser.ngsummary.mjs +3 -2
  85. package/esm2020/components/browser/models/browserfile.mjs +3 -2
  86. package/esm2020/components/browser/models/browserfile.ngfactory.mjs +3 -2
  87. package/esm2020/components/browser/models/browserfile.ngsummary.mjs +3 -2
  88. package/esm2020/components/browser/models/browserfiledeleterequest.mjs +5 -10
  89. package/esm2020/components/browser/models/browserfiledeleterequest.ngfactory.mjs +3 -2
  90. package/esm2020/components/browser/models/browserfiledeleterequest.ngsummary.mjs +3 -2
  91. package/esm2020/components/browser/models/browserfilerenamerequest.mjs +5 -10
  92. package/esm2020/components/browser/models/browserfilerenamerequest.ngfactory.mjs +3 -2
  93. package/esm2020/components/browser/models/browserfilerenamerequest.ngsummary.mjs +3 -2
  94. package/esm2020/components/browser/models/browserfileresponse.mjs +3 -2
  95. package/esm2020/components/browser/models/browserfileresponse.ngfactory.mjs +3 -2
  96. package/esm2020/components/browser/models/browserfileresponse.ngsummary.mjs +3 -2
  97. package/esm2020/components/browser/models/browserfilesaverequest.mjs +5 -10
  98. package/esm2020/components/browser/models/browserfilesaverequest.ngfactory.mjs +3 -2
  99. package/esm2020/components/browser/models/browserfilesaverequest.ngsummary.mjs +3 -2
  100. package/esm2020/components/browser/models/browsernode.mjs +3 -2
  101. package/esm2020/components/browser/models/browsernode.ngfactory.mjs +3 -2
  102. package/esm2020/components/browser/models/browsernode.ngsummary.mjs +3 -2
  103. package/esm2020/components/browser/models/browsernodedeleterequest.mjs +5 -10
  104. package/esm2020/components/browser/models/browsernodedeleterequest.ngfactory.mjs +3 -2
  105. package/esm2020/components/browser/models/browsernodedeleterequest.ngsummary.mjs +3 -2
  106. package/esm2020/components/browser/models/browsernodenewrequest.mjs +5 -10
  107. package/esm2020/components/browser/models/browsernodenewrequest.ngfactory.mjs +3 -2
  108. package/esm2020/components/browser/models/browsernodenewrequest.ngsummary.mjs +3 -2
  109. package/esm2020/components/browser/models/browsernoderenamerequest.mjs +5 -10
  110. package/esm2020/components/browser/models/browsernoderenamerequest.ngfactory.mjs +3 -2
  111. package/esm2020/components/browser/models/browsernoderenamerequest.ngsummary.mjs +3 -2
  112. package/esm2020/components/browser/models/browsernoderequest.mjs +5 -10
  113. package/esm2020/components/browser/models/browsernoderequest.ngfactory.mjs +3 -2
  114. package/esm2020/components/browser/models/browsernoderequest.ngsummary.mjs +3 -2
  115. package/esm2020/components/browser/models/browsernoderesponse.mjs +3 -2
  116. package/esm2020/components/browser/models/browsernoderesponse.ngfactory.mjs +3 -2
  117. package/esm2020/components/browser/models/browsernoderesponse.ngsummary.mjs +3 -2
  118. package/esm2020/controls/buttons/button.mjs +32 -130
  119. package/esm2020/controls/buttons/button.ngfactory.mjs +3 -4
  120. package/esm2020/controls/buttons/button.ngsummary.mjs +3 -2
  121. package/esm2020/controls/checkbox/checkbox.mjs +7 -33
  122. package/esm2020/controls/checkbox/checkbox.ngfactory.mjs +3 -4
  123. package/esm2020/controls/checkbox/checkbox.ngsummary.mjs +3 -2
  124. package/esm2020/controls/checkbox/radiobutton.mjs +24 -97
  125. package/esm2020/controls/checkbox/radiobutton.ngfactory.mjs +3 -4
  126. package/esm2020/controls/checkbox/radiobutton.ngsummary.mjs +3 -2
  127. package/esm2020/controls/checkbox/radiobuttons.mjs +26 -103
  128. package/esm2020/controls/checkbox/radiobuttons.ngfactory.mjs +3 -4
  129. package/esm2020/controls/checkbox/radiobuttons.ngsummary.mjs +3 -2
  130. package/esm2020/controls/confirm/confirm.button.mjs +17 -21
  131. package/esm2020/controls/confirm/confirm.button.ngfactory.mjs +3 -2
  132. package/esm2020/controls/confirm/confirm.button.ngsummary.mjs +3 -2
  133. package/esm2020/controls/confirm/confirm.mjs +19 -68
  134. package/esm2020/controls/confirm/confirm.ngfactory.mjs +3 -4
  135. package/esm2020/controls/confirm/confirm.ngsummary.mjs +3 -2
  136. package/esm2020/controls/confirm/confirm.service.mjs +29 -74
  137. package/esm2020/controls/confirm/confirm.service.ngfactory.mjs +3 -2
  138. package/esm2020/controls/confirm/confirm.service.ngsummary.mjs +3 -2
  139. package/esm2020/controls/contextmenu/contextmenu.mjs +31 -168
  140. package/esm2020/controls/contextmenu/contextmenu.ngfactory.mjs +3 -4
  141. package/esm2020/controls/contextmenu/contextmenu.ngsummary.mjs +3 -2
  142. package/esm2020/controls/contextmenu/contextmenuanchor.mjs +7 -19
  143. package/esm2020/controls/contextmenu/contextmenuanchor.ngfactory.mjs +3 -4
  144. package/esm2020/controls/contextmenu/contextmenuanchor.ngsummary.mjs +3 -2
  145. package/esm2020/controls/contextmenu/contextmenucontainer.mjs +7 -19
  146. package/esm2020/controls/contextmenu/contextmenucontainer.ngfactory.mjs +3 -4
  147. package/esm2020/controls/contextmenu/contextmenucontainer.ngsummary.mjs +3 -2
  148. package/esm2020/controls/contextmenu/contextmenuitem.mjs +4 -12
  149. package/esm2020/controls/contextmenu/contextmenuitem.ngfactory.mjs +3 -4
  150. package/esm2020/controls/contextmenu/contextmenuitem.ngsummary.mjs +3 -2
  151. package/esm2020/controls/contextmenu/contextmenuitembutton.mjs +15 -90
  152. package/esm2020/controls/contextmenu/contextmenuitembutton.ngfactory.mjs +3 -4
  153. package/esm2020/controls/contextmenu/contextmenuitembutton.ngsummary.mjs +3 -2
  154. package/esm2020/controls/datetime/date.mjs +37 -200
  155. package/esm2020/controls/datetime/date.ngfactory.mjs +3 -4
  156. package/esm2020/controls/datetime/date.ngsummary.mjs +3 -2
  157. package/esm2020/controls/datetime/dateselector.mjs +66 -409
  158. package/esm2020/controls/datetime/dateselector.ngfactory.mjs +3 -4
  159. package/esm2020/controls/datetime/dateselector.ngsummary.mjs +3 -2
  160. package/esm2020/controls/datetime/datetime.mjs +40 -218
  161. package/esm2020/controls/datetime/datetime.ngfactory.mjs +3 -4
  162. package/esm2020/controls/datetime/datetime.ngsummary.mjs +3 -2
  163. package/esm2020/controls/datetime/time.mjs +37 -199
  164. package/esm2020/controls/datetime/time.ngfactory.mjs +3 -4
  165. package/esm2020/controls/datetime/time.ngsummary.mjs +3 -2
  166. package/esm2020/controls/dialog/dialog.mjs +33 -193
  167. package/esm2020/controls/dialog/dialog.ngfactory.mjs +3 -4
  168. package/esm2020/controls/dialog/dialog.ngsummary.mjs +3 -2
  169. package/esm2020/controls/form/form.mjs +25 -96
  170. package/esm2020/controls/form/form.ngfactory.mjs +3 -4
  171. package/esm2020/controls/form/form.ngsummary.mjs +3 -2
  172. package/esm2020/controls/grid/grid.mjs +39 -145
  173. package/esm2020/controls/grid/grid.ngfactory.mjs +3 -4
  174. package/esm2020/controls/grid/grid.ngsummary.mjs +3 -2
  175. package/esm2020/controls/grid/gridbutton.mjs +9 -51
  176. package/esm2020/controls/grid/gridbutton.ngfactory.mjs +3 -4
  177. package/esm2020/controls/grid/gridbutton.ngsummary.mjs +3 -2
  178. package/esm2020/controls/grid/gridcolumn.mjs +9 -40
  179. package/esm2020/controls/grid/gridcolumn.ngfactory.mjs +3 -4
  180. package/esm2020/controls/grid/gridcolumn.ngsummary.mjs +3 -2
  181. package/esm2020/controls/grid/gridcolumnaction.mjs +5 -19
  182. package/esm2020/controls/grid/gridcolumnaction.ngfactory.mjs +3 -4
  183. package/esm2020/controls/grid/gridcolumnaction.ngsummary.mjs +3 -2
  184. package/esm2020/controls/grid/gridcolumnbase.mjs +20 -113
  185. package/esm2020/controls/grid/gridcolumnbase.ngfactory.mjs +3 -4
  186. package/esm2020/controls/grid/gridcolumnbase.ngsummary.mjs +3 -2
  187. package/esm2020/controls/grid/gridimage.mjs +4 -14
  188. package/esm2020/controls/grid/gridimage.ngfactory.mjs +3 -4
  189. package/esm2020/controls/grid/gridimage.ngsummary.mjs +3 -2
  190. package/esm2020/controls/grid/model.mjs +16 -59
  191. package/esm2020/controls/grid/model.ngfactory.mjs +3 -2
  192. package/esm2020/controls/grid/model.ngsummary.mjs +3 -2
  193. package/esm2020/controls/grid/paging.mjs +65 -231
  194. package/esm2020/controls/grid/paging.ngfactory.mjs +3 -4
  195. package/esm2020/controls/grid/paging.ngsummary.mjs +3 -2
  196. package/esm2020/controls/input/input.mjs +17 -64
  197. package/esm2020/controls/input/input.ngfactory.mjs +3 -4
  198. package/esm2020/controls/input/input.ngsummary.mjs +3 -2
  199. package/esm2020/controls/input/inputarea.mjs +10 -52
  200. package/esm2020/controls/input/inputarea.ngfactory.mjs +3 -4
  201. package/esm2020/controls/input/inputarea.ngsummary.mjs +3 -2
  202. package/esm2020/controls/input/inputcurrency.mjs +4 -13
  203. package/esm2020/controls/input/inputcurrency.ngfactory.mjs +3 -4
  204. package/esm2020/controls/input/inputcurrency.ngsummary.mjs +3 -2
  205. package/esm2020/controls/input/inputdecimal.mjs +25 -139
  206. package/esm2020/controls/input/inputdecimal.ngfactory.mjs +3 -4
  207. package/esm2020/controls/input/inputdecimal.ngsummary.mjs +3 -2
  208. package/esm2020/controls/input/inputemail.mjs +10 -36
  209. package/esm2020/controls/input/inputemail.ngfactory.mjs +3 -4
  210. package/esm2020/controls/input/inputemail.ngsummary.mjs +3 -2
  211. package/esm2020/controls/input/inputinteger.mjs +32 -126
  212. package/esm2020/controls/input/inputinteger.ngfactory.mjs +3 -4
  213. package/esm2020/controls/input/inputinteger.ngsummary.mjs +3 -2
  214. package/esm2020/controls/input/inputpassword.mjs +12 -42
  215. package/esm2020/controls/input/inputpassword.ngfactory.mjs +3 -4
  216. package/esm2020/controls/input/inputpassword.ngsummary.mjs +3 -2
  217. package/esm2020/controls/input/inputsearch.mjs +8 -36
  218. package/esm2020/controls/input/inputsearch.ngfactory.mjs +3 -4
  219. package/esm2020/controls/input/inputsearch.ngsummary.mjs +3 -2
  220. package/esm2020/controls/layout/formlayout.mjs +20 -64
  221. package/esm2020/controls/layout/formlayout.ngfactory.mjs +3 -4
  222. package/esm2020/controls/layout/formlayout.ngsummary.mjs +3 -2
  223. package/esm2020/controls/list/dropdown.mjs +55 -218
  224. package/esm2020/controls/list/dropdown.ngfactory.mjs +3 -4
  225. package/esm2020/controls/list/dropdown.ngsummary.mjs +3 -3
  226. package/esm2020/controls/list/list.module.mjs +3 -16
  227. package/esm2020/controls/list/list.module.ngfactory.mjs +3 -4
  228. package/esm2020/controls/list/list.module.ngsummary.mjs +3 -2
  229. package/esm2020/controls/list/listbox.mjs +40 -157
  230. package/esm2020/controls/list/listbox.ngfactory.mjs +3 -4
  231. package/esm2020/controls/list/listbox.ngsummary.mjs +3 -3
  232. package/esm2020/controls/multilanguage/multilanguageinput.mjs +45 -212
  233. package/esm2020/controls/multilanguage/multilanguageinput.ngfactory.mjs +3 -4
  234. package/esm2020/controls/multilanguage/multilanguageinput.ngsummary.mjs +3 -2
  235. package/esm2020/controls/multilanguage/multilanguageinputarea.mjs +48 -214
  236. package/esm2020/controls/multilanguage/multilanguageinputarea.ngfactory.mjs +3 -4
  237. package/esm2020/controls/multilanguage/multilanguageinputarea.ngsummary.mjs +3 -2
  238. package/esm2020/controls/static/formcontainer.mjs +10 -43
  239. package/esm2020/controls/static/formcontainer.ngfactory.mjs +3 -4
  240. package/esm2020/controls/static/formcontainer.ngsummary.mjs +3 -2
  241. package/esm2020/controls/static/staticlabel.mjs +7 -27
  242. package/esm2020/controls/static/staticlabel.ngfactory.mjs +3 -4
  243. package/esm2020/controls/static/staticlabel.ngsummary.mjs +3 -2
  244. package/esm2020/controls/tabs/tab.mjs +14 -67
  245. package/esm2020/controls/tabs/tab.ngfactory.mjs +3 -4
  246. package/esm2020/controls/tabs/tab.ngsummary.mjs +3 -2
  247. package/esm2020/controls/tabs/tabitem.mjs +7 -36
  248. package/esm2020/controls/tabs/tabitem.ngfactory.mjs +3 -4
  249. package/esm2020/controls/tabs/tabitem.ngsummary.mjs +3 -2
  250. package/esm2020/controls/tinymce/tinymce.mjs +41 -217
  251. package/esm2020/controls/tinymce/tinymce.ngfactory.mjs +3 -4
  252. package/esm2020/controls/tinymce/tinymce.ngsummary.mjs +3 -2
  253. package/esm2020/controls/tinymce/tinymcedialogsettings.mjs +5 -10
  254. package/esm2020/controls/tinymce/tinymcedialogsettings.ngfactory.mjs +3 -2
  255. package/esm2020/controls/tinymce/tinymcedialogsettings.ngsummary.mjs +3 -2
  256. package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.mjs +4 -4
  257. package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.mjs +3 -2
  258. package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.ngsummary.mjs +3 -2
  259. package/esm2020/controls/tinymce/tinymceinstance.mjs +3 -2
  260. package/esm2020/controls/tinymce/tinymceinstance.ngfactory.mjs +3 -2
  261. package/esm2020/controls/tinymce/tinymceinstance.ngsummary.mjs +3 -2
  262. package/esm2020/controls/tooltip/tooltip.mjs +46 -326
  263. package/esm2020/controls/tooltip/tooltip.ngfactory.mjs +3 -4
  264. package/esm2020/controls/tooltip/tooltip.ngsummary.mjs +3 -2
  265. package/esm2020/controls/treeview/ngtreeitemaction.mjs +9 -55
  266. package/esm2020/controls/treeview/ngtreeitemaction.ngfactory.mjs +3 -4
  267. package/esm2020/controls/treeview/ngtreeitemaction.ngsummary.mjs +3 -2
  268. package/esm2020/controls/treeview/treeview.mjs +53 -298
  269. package/esm2020/controls/treeview/treeview.ngfactory.mjs +3 -4
  270. package/esm2020/controls/treeview/treeview.ngsummary.mjs +3 -2
  271. package/esm2020/controls/treeview/treeviewchild.mjs +5 -18
  272. package/esm2020/controls/treeview/treeviewchild.ngfactory.mjs +3 -4
  273. package/esm2020/controls/treeview/treeviewchild.ngsummary.mjs +3 -2
  274. package/esm2020/controls/upload/dropzonemultiple.mjs +32 -151
  275. package/esm2020/controls/upload/dropzonemultiple.ngfactory.mjs +3 -4
  276. package/esm2020/controls/upload/dropzonemultiple.ngsummary.mjs +3 -2
  277. package/esm2020/controls/upload/dropzonesingle.mjs +12 -90
  278. package/esm2020/controls/upload/dropzonesingle.ngfactory.mjs +3 -4
  279. package/esm2020/controls/upload/dropzonesingle.ngsummary.mjs +3 -2
  280. package/esm2020/controls/upload/uploadmultiple.mjs +21 -110
  281. package/esm2020/controls/upload/uploadmultiple.ngfactory.mjs +3 -4
  282. package/esm2020/controls/upload/uploadmultiple.ngsummary.mjs +3 -2
  283. package/esm2020/controls/upload/uploadsingle.mjs +8 -49
  284. package/esm2020/controls/upload/uploadsingle.ngfactory.mjs +3 -4
  285. package/esm2020/controls/upload/uploadsingle.ngsummary.mjs +3 -2
  286. package/esm2020/controls/validation/validationsummary.mjs +23 -119
  287. package/esm2020/controls/validation/validationsummary.ngfactory.mjs +3 -4
  288. package/esm2020/controls/validation/validationsummary.ngsummary.mjs +3 -2
  289. package/esm2020/controls/wizard/wizard.mjs +20 -127
  290. package/esm2020/controls/wizard/wizard.ngfactory.mjs +3 -4
  291. package/esm2020/controls/wizard/wizard.ngsummary.mjs +3 -2
  292. package/esm2020/controls/wizard/wizarditem.mjs +6 -30
  293. package/esm2020/controls/wizard/wizarditem.ngfactory.mjs +3 -4
  294. package/esm2020/controls/wizard/wizarditem.ngsummary.mjs +3 -2
  295. package/esm2020/enums/ButtonRoleType.mjs +3 -0
  296. package/esm2020/enums/ButtonRoleType.ngfactory.mjs +3 -0
  297. package/esm2020/enums/ButtonRoleType.ngsummary.mjs +3 -0
  298. package/esm2020/enums/ControlHeight.mjs +11 -0
  299. package/esm2020/enums/ControlHeight.ngfactory.mjs +3 -0
  300. package/esm2020/enums/ControlHeight.ngsummary.mjs +3 -0
  301. package/esm2020/enums/IconType.mjs +4 -8
  302. package/esm2020/enums/IconType.ngfactory.mjs +3 -2
  303. package/esm2020/enums/IconType.ngsummary.mjs +3 -2
  304. package/esm2020/interfaces/ISacConfigurationService.mjs +3 -2
  305. package/esm2020/interfaces/ISacConfigurationService.ngfactory.mjs +3 -2
  306. package/esm2020/interfaces/ISacConfigurationService.ngsummary.mjs +3 -2
  307. package/esm2020/interfaces/ISacFileBrowserService.mjs +3 -2
  308. package/esm2020/interfaces/ISacFileBrowserService.ngfactory.mjs +3 -2
  309. package/esm2020/interfaces/ISacFileBrowserService.ngsummary.mjs +3 -2
  310. package/esm2020/interfaces/ISacIconService.mjs +3 -2
  311. package/esm2020/interfaces/ISacIconService.ngfactory.mjs +3 -2
  312. package/esm2020/interfaces/ISacIconService.ngsummary.mjs +3 -2
  313. package/esm2020/interfaces/ISacLabelSizes.mjs +3 -2
  314. package/esm2020/interfaces/ISacLabelSizes.ngfactory.mjs +3 -2
  315. package/esm2020/interfaces/ISacLabelSizes.ngsummary.mjs +3 -2
  316. package/esm2020/interfaces/ISacLanguageService.mjs +3 -2
  317. package/esm2020/interfaces/ISacLanguageService.ngfactory.mjs +3 -2
  318. package/esm2020/interfaces/ISacLanguageService.ngsummary.mjs +3 -2
  319. package/esm2020/interfaces/ISacLocalisationService.mjs +3 -2
  320. package/esm2020/interfaces/ISacLocalisationService.ngfactory.mjs +3 -2
  321. package/esm2020/interfaces/ISacLocalisationService.ngsummary.mjs +3 -2
  322. package/esm2020/interfaces/ISacValidationKeyService.mjs +3 -0
  323. package/esm2020/interfaces/ISacValidationKeyService.ngfactory.mjs +3 -0
  324. package/esm2020/interfaces/ISacValidationKeyService.ngsummary.mjs +3 -0
  325. package/esm2020/interfaces/iabstractcontrollabel.mjs +3 -2
  326. package/esm2020/interfaces/iabstractcontrollabel.ngfactory.mjs +3 -2
  327. package/esm2020/interfaces/iabstractcontrollabel.ngsummary.mjs +3 -2
  328. package/esm2020/interfaces/iconfirmcomponent.mjs +3 -2
  329. package/esm2020/interfaces/iconfirmcomponent.ngfactory.mjs +3 -2
  330. package/esm2020/interfaces/iconfirmcomponent.ngsummary.mjs +3 -2
  331. package/esm2020/interfaces/idatetimecontrol.mjs +3 -2
  332. package/esm2020/interfaces/idatetimecontrol.ngfactory.mjs +3 -2
  333. package/esm2020/interfaces/idatetimecontrol.ngsummary.mjs +3 -2
  334. package/esm2020/interfaces/iuploadcontrol.mjs +3 -2
  335. package/esm2020/interfaces/iuploadcontrol.ngfactory.mjs +3 -2
  336. package/esm2020/interfaces/iuploadcontrol.ngsummary.mjs +3 -2
  337. package/esm2020/models/languagemodel.mjs +5 -11
  338. package/esm2020/models/languagemodel.ngfactory.mjs +3 -2
  339. package/esm2020/models/languagemodel.ngsummary.mjs +3 -2
  340. package/esm2020/public_api.mjs +24 -97
  341. package/esm2020/public_api.ngfactory.mjs +3 -2
  342. package/esm2020/public_api.ngsummary.mjs +3 -2
  343. package/esm2020/services/index.mjs +3 -6
  344. package/esm2020/services/index.ngfactory.mjs +3 -2
  345. package/esm2020/services/index.ngsummary.mjs +3 -2
  346. package/esm2020/services/sac-configuration.service.mjs +14 -58
  347. package/esm2020/services/sac-configuration.service.ngfactory.mjs +3 -4
  348. package/esm2020/services/sac-configuration.service.ngsummary.mjs +3 -3
  349. package/esm2020/services/sac-filebrowser.service.mjs +15 -165
  350. package/esm2020/services/sac-filebrowser.service.ngfactory.mjs +3 -4
  351. package/esm2020/services/sac-filebrowser.service.ngsummary.mjs +3 -3
  352. package/esm2020/services/sac-icon.service.mjs +50 -154
  353. package/esm2020/services/sac-icon.service.ngfactory.mjs +3 -4
  354. package/esm2020/services/sac-icon.service.ngsummary.mjs +3 -3
  355. package/esm2020/services/sac-language.service.mjs +7 -43
  356. package/esm2020/services/sac-language.service.ngfactory.mjs +3 -4
  357. package/esm2020/services/sac-language.service.ngsummary.mjs +3 -3
  358. package/esm2020/services/sac-localisation.service.mjs +33 -426
  359. package/esm2020/services/sac-localisation.service.ngfactory.mjs +3 -4
  360. package/esm2020/services/sac-localisation.service.ngsummary.mjs +3 -3
  361. package/esm2020/services/sac-validationkey.service.mjs +7 -0
  362. package/esm2020/services/sac-validationkey.service.ngfactory.mjs +3 -0
  363. package/esm2020/services/sac-validationkey.service.ngsummary.mjs +3 -0
  364. package/esm2020/simpleangularcontrols-sac-common.mjs +4 -4
  365. package/esm2020/utilities/convertion.mjs +6 -26
  366. package/esm2020/utilities/convertion.ngfactory.mjs +3 -2
  367. package/esm2020/utilities/convertion.ngsummary.mjs +3 -2
  368. package/esm2020/utilities/datatypes.mjs +4 -6
  369. package/esm2020/utilities/datatypes.ngfactory.mjs +3 -2
  370. package/esm2020/utilities/datatypes.ngsummary.mjs +3 -2
  371. package/esm2020/utilities/enums.mjs +8 -15
  372. package/esm2020/utilities/enums.ngfactory.mjs +3 -2
  373. package/esm2020/utilities/enums.ngsummary.mjs +3 -2
  374. package/esm2020/utilities/guid.mjs +5 -15
  375. package/esm2020/utilities/guid.ngfactory.mjs +3 -2
  376. package/esm2020/utilities/guid.ngsummary.mjs +3 -2
  377. package/esm2020/utilities/interpolation.mjs +7 -42
  378. package/esm2020/utilities/interpolation.ngfactory.mjs +3 -2
  379. package/esm2020/utilities/interpolation.ngsummary.mjs +3 -2
  380. package/esm2020/utilities/positioning.mjs +23 -266
  381. package/esm2020/utilities/positioning.ngfactory.mjs +3 -2
  382. package/esm2020/utilities/positioning.ngsummary.mjs +3 -2
  383. package/esm2020/validation/email.validator.mjs +3 -13
  384. package/esm2020/validation/email.validator.ngfactory.mjs +3 -2
  385. package/esm2020/validation/email.validator.ngsummary.mjs +3 -2
  386. package/esm2020/validation/index.mjs +3 -3
  387. package/esm2020/validation/index.ngfactory.mjs +3 -2
  388. package/esm2020/validation/index.ngsummary.mjs +3 -2
  389. package/esm2020/validation/invaliddate.validator.mjs +3 -14
  390. package/esm2020/validation/invaliddate.validator.ngfactory.mjs +3 -2
  391. package/esm2020/validation/invaliddate.validator.ngsummary.mjs +3 -2
  392. package/esm2020/validation/isDateValid.mjs +5 -14
  393. package/esm2020/validation/isDateValid.ngfactory.mjs +3 -2
  394. package/esm2020/validation/isDateValid.ngsummary.mjs +3 -2
  395. package/esm2020/validation/maxdate.validator.mjs +4 -21
  396. package/esm2020/validation/maxdate.validator.ngfactory.mjs +3 -2
  397. package/esm2020/validation/maxdate.validator.ngsummary.mjs +3 -2
  398. package/esm2020/validation/maxtime.validator.mjs +4 -21
  399. package/esm2020/validation/maxtime.validator.ngfactory.mjs +3 -2
  400. package/esm2020/validation/maxtime.validator.ngsummary.mjs +3 -2
  401. package/esm2020/validation/maxvalue.validator.mjs +3 -16
  402. package/esm2020/validation/maxvalue.validator.ngfactory.mjs +3 -2
  403. package/esm2020/validation/maxvalue.validator.ngsummary.mjs +3 -2
  404. package/esm2020/validation/mindate.validator.mjs +4 -21
  405. package/esm2020/validation/mindate.validator.ngfactory.mjs +3 -2
  406. package/esm2020/validation/mindate.validator.ngsummary.mjs +3 -2
  407. package/esm2020/validation/minfiles.validator.mjs +4 -19
  408. package/esm2020/validation/minfiles.validator.ngfactory.mjs +3 -2
  409. package/esm2020/validation/minfiles.validator.ngsummary.mjs +3 -2
  410. package/esm2020/validation/minlength.validator.mjs +3 -21
  411. package/esm2020/validation/minlength.validator.ngfactory.mjs +3 -2
  412. package/esm2020/validation/minlength.validator.ngsummary.mjs +3 -2
  413. package/esm2020/validation/mintime.validator.mjs +4 -21
  414. package/esm2020/validation/mintime.validator.ngfactory.mjs +3 -2
  415. package/esm2020/validation/mintime.validator.ngsummary.mjs +3 -2
  416. package/esm2020/validation/minvalue.validator.mjs +3 -16
  417. package/esm2020/validation/minvalue.validator.ngfactory.mjs +3 -2
  418. package/esm2020/validation/minvalue.validator.ngsummary.mjs +3 -2
  419. package/esm2020/validation/multilanguagerequired.validator.mjs +3 -22
  420. package/esm2020/validation/multilanguagerequired.validator.ngfactory.mjs +3 -2
  421. package/esm2020/validation/multilanguagerequired.validator.ngsummary.mjs +3 -2
  422. package/esm2020/validation/multilanguagerequiredany.validator.mjs +3 -22
  423. package/esm2020/validation/multilanguagerequiredany.validator.ngfactory.mjs +3 -2
  424. package/esm2020/validation/multilanguagerequiredany.validator.ngsummary.mjs +3 -2
  425. package/esm2020/validation/pattern.validator.mjs +3 -16
  426. package/esm2020/validation/pattern.validator.ngfactory.mjs +3 -2
  427. package/esm2020/validation/pattern.validator.ngsummary.mjs +3 -2
  428. package/esm2020/validation/required.validator.mjs +3 -13
  429. package/esm2020/validation/required.validator.ngfactory.mjs +3 -2
  430. package/esm2020/validation/required.validator.ngsummary.mjs +3 -2
  431. package/esm2020/validation/validation.mjs +20 -99
  432. package/esm2020/validation/validation.ngfactory.mjs +3 -2
  433. package/esm2020/validation/validation.ngsummary.mjs +3 -2
  434. package/esm2020/validation/validationerrorcreator.mjs +3 -11
  435. package/esm2020/validation/validationerrorcreator.ngfactory.mjs +3 -2
  436. package/esm2020/validation/validationerrorcreator.ngsummary.mjs +3 -2
  437. package/esm2020/validation/validationerroritem.mjs +7 -19
  438. package/esm2020/validation/validationerroritem.ngfactory.mjs +3 -2
  439. package/esm2020/validation/validationerroritem.ngsummary.mjs +3 -2
  440. package/fesm2015/simpleangularcontrols-sac-common.mjs +1634 -9053
  441. package/fesm2015/simpleangularcontrols-sac-common.mjs.map +1 -1
  442. package/fesm2020/simpleangularcontrols-sac-common.mjs +1634 -9041
  443. package/fesm2020/simpleangularcontrols-sac-common.mjs.map +1 -1
  444. package/interfaces/ISacConfigurationService.d.ts +5 -0
  445. package/interfaces/ISacConfigurationService.d.ts.map +1 -1
  446. package/interfaces/ISacValidationKeyService.d.ts +53 -0
  447. package/interfaces/ISacValidationKeyService.d.ts.map +1 -0
  448. package/interfaces/ISacValidationKeyService.ngfactory.d.ts +2 -0
  449. package/interfaces/ISacValidationKeyService.ngfactory.d.ts.map +1 -0
  450. package/interfaces/ISacValidationKeyService.ngsummary.d.ts +2 -0
  451. package/interfaces/ISacValidationKeyService.ngsummary.d.ts.map +1 -0
  452. package/package.json +1 -1
  453. package/public_api.d.ts +4 -1
  454. package/public_api.d.ts.map +1 -1
  455. package/services/index.d.ts +1 -0
  456. package/services/index.d.ts.map +1 -1
  457. package/services/sac-configuration.service.d.ts +6 -0
  458. package/services/sac-configuration.service.d.ts.map +1 -1
  459. package/services/sac-localisation.service.d.ts +103 -97
  460. package/services/sac-localisation.service.d.ts.map +1 -1
  461. package/services/sac-validationkey.service.d.ts +59 -0
  462. package/services/sac-validationkey.service.d.ts.map +1 -0
  463. package/services/sac-validationkey.service.ngfactory.d.ts +4 -0
  464. package/services/sac-validationkey.service.ngfactory.d.ts.map +1 -0
  465. package/services/sac-validationkey.service.ngsummary.d.ts +2 -0
  466. package/services/sac-validationkey.service.ngsummary.d.ts.map +1 -0
  467. package/simpleangularcontrols-sac-common-13.0.0-rc.6.tgz +0 -0
  468. package/simpleangularcontrols-sac-common-13.0.0-rc.4.tgz +0 -0
@@ -1,343 +1,98 @@
1
- import { ContentChild, Directive, EventEmitter, Input, Output, } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
1
+ function cov_24ddv5o0pk(){var path="C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\controls\\treeview\\treeview.mjs";var hash="247dc2824ad58f453ea60be59c2fe9953cc73e58";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\controls\\treeview\\treeview.mjs",statementMap:{"0":{start:{line:11,column:8},end:{line:11,column:24}},"1":{start:{line:15,column:8},end:{line:15,column:42}},"2":{start:{line:19,column:8},end:{line:19,column:39}},"3":{start:{line:23,column:8},end:{line:23,column:51}},"4":{start:{line:27,column:8},end:{line:27,column:24}},"5":{start:{line:31,column:8},end:{line:31,column:23}},"6":{start:{line:36,column:8},end:{line:36,column:33}},"7":{start:{line:40,column:8},end:{line:40,column:31}},"8":{start:{line:44,column:8},end:{line:44,column:27}},"9":{start:{line:48,column:8},end:{line:48,column:38}},"10":{start:{line:52,column:8},end:{line:52,column:39}},"11":{start:{line:56,column:8},end:{line:56,column:51}},"12":{start:{line:60,column:8},end:{line:60,column:54}},"13":{start:{line:64,column:8},end:{line:64,column:47}},"14":{start:{line:70,column:8},end:{line:70,column:26}},"15":{start:{line:76,column:8},end:{line:76,column:27}},"16":{start:{line:77,column:8},end:{line:77,column:27}},"17":{start:{line:79,column:8},end:{line:79,column:24}},"18":{start:{line:80,column:8},end:{line:82,column:9}},"19":{start:{line:81,column:12},end:{line:81,column:52}},"20":{start:{line:88,column:8},end:{line:88,column:26}},"21":{start:{line:94,column:8},end:{line:94,column:29}},"22":{start:{line:100,column:8},end:{line:100,column:34}},"23":{start:{line:106,column:8},end:{line:106,column:37}},"24":{start:{line:113,column:8},end:{line:113,column:34}},"25":{start:{line:114,column:8},end:{line:116,column:9}},"26":{start:{line:115,column:12},end:{line:115,column:52}},"27":{start:{line:125,column:8},end:{line:125,column:33}},"28":{start:{line:131,column:8},end:{line:131,column:32}},"29":{start:{line:132,column:8},end:{line:132,column:83}},"30":{start:{line:133,column:8},end:{line:133,column:90}},"31":{start:{line:139,column:8},end:{line:139,column:70}},"32":{start:{line:149,column:8},end:{line:149,column:73}},"33":{start:{line:155,column:8},end:{line:155,column:31}},"34":{start:{line:156,column:8},end:{line:159,column:9}},"35":{start:{line:157,column:12},end:{line:157,column:56}},"36":{start:{line:158,column:12},end:{line:158,column:60}},"37":{start:{line:165,column:8},end:{line:165,column:34}},"38":{start:{line:172,column:8},end:{line:172,column:48}},"39":{start:{line:173,column:8},end:{line:174,column:46}},"40":{start:{line:174,column:12},end:{line:174,column:46}},"41":{start:{line:181,column:21},end:{line:181,column:26}},"42":{start:{line:182,column:8},end:{line:190,column:9}},"43":{start:{line:182,column:21},end:{line:182,column:22}},"44":{start:{line:183,column:12},end:{line:185,column:75}},"45":{start:{line:185,column:16},end:{line:185,column:75}},"46":{start:{line:186,column:12},end:{line:189,column:13}},"47":{start:{line:187,column:16},end:{line:187,column:51}},"48":{start:{line:188,column:16},end:{line:188,column:28}},"49":{start:{line:191,column:8},end:{line:191,column:21}},"50":{start:{line:198,column:23},end:{line:198,column:66}},"51":{start:{line:198,column:45},end:{line:198,column:65}},"52":{start:{line:200,column:8},end:{line:200,column:83}},"53":{start:{line:206,column:8},end:{line:208,column:9}},"54":{start:{line:207,column:12},end:{line:207,column:63}},"55":{start:{line:214,column:8},end:{line:214,column:33}},"56":{start:{line:215,column:8},end:{line:215,column:50}},"57":{start:{line:222,column:8},end:{line:222,column:36}},"58":{start:{line:228,column:8},end:{line:232,column:11}},"59":{start:{line:229,column:12},end:{line:231,column:13}},"60":{start:{line:230,column:16},end:{line:230,column:87}},"61":{start:{line:234,column:12},end:{line:234,column:41}},"62":{start:{line:235,column:12},end:{line:239,column:15}},"63":{start:{line:236,column:16},end:{line:238,column:17}},"64":{start:{line:237,column:20},end:{line:237,column:82}},"65":{start:{line:250,column:21},end:{line:250,column:25}},"66":{start:{line:251,column:8},end:{line:261,column:9}},"67":{start:{line:251,column:21},end:{line:251,column:22}},"68":{start:{line:252,column:12},end:{line:260,column:13}},"69":{start:{line:253,column:16},end:{line:253,column:33}},"70":{start:{line:255,column:16},end:{line:259,column:17}},"71":{start:{line:256,column:42},end:{line:256,column:102}},"72":{start:{line:257,column:20},end:{line:258,column:49}},"73":{start:{line:258,column:24},end:{line:258,column:49}},"74":{start:{line:262,column:8},end:{line:262,column:22}},"75":{start:{line:268,column:8},end:{line:275,column:9}},"76":{start:{line:269,column:12},end:{line:274,column:13}},"77":{start:{line:269,column:25},end:{line:269,column:26}},"78":{start:{line:269,column:34},end:{line:269,column:45}},"79":{start:{line:270,column:16},end:{line:270,column:38}},"80":{start:{line:271,column:16},end:{line:273,column:17}},"81":{start:{line:272,column:20},end:{line:272,column:90}},"82":{start:{line:281,column:21},end:{line:281,column:23}},"83":{start:{line:281,column:34},end:{line:281,column:36}},"84":{start:{line:282,column:8},end:{line:288,column:9}},"85":{start:{line:282,column:21},end:{line:282,column:22}},"86":{start:{line:282,column:30},end:{line:282,column:41}},"87":{start:{line:283,column:12},end:{line:283,column:51}},"88":{start:{line:284,column:12},end:{line:284,column:44}},"89":{start:{line:285,column:12},end:{line:285,column:46}},"90":{start:{line:286,column:12},end:{line:286,column:45}},"91":{start:{line:287,column:12},end:{line:287,column:52}},"92":{start:{line:289,column:8},end:{line:296,column:9}},"93":{start:{line:289,column:21},end:{line:289,column:22}},"94":{start:{line:289,column:30},end:{line:289,column:41}},"95":{start:{line:290,column:12},end:{line:295,column:13}},"96":{start:{line:291,column:16},end:{line:291,column:82}},"97":{start:{line:294,column:16},end:{line:294,column:35}},"98":{start:{line:297,column:8},end:{line:297,column:20}},"99":{start:{line:300,column:0},end:{line:300,column:179}},"100":{start:{line:301,column:0},end:{line:301,column:804}},"101":{start:{line:302,column:0},end:{line:342,column:20}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:7,column:4},end:{line:7,column:5}},loc:{start:{line:7,column:18},end:{line:65,column:5}},line:7},"1":{name:"(anonymous_1)",decl:{start:{line:69,column:4},end:{line:69,column:5}},loc:{start:{line:69,column:15},end:{line:71,column:5}},line:69},"2":{name:"(anonymous_2)",decl:{start:{line:75,column:4},end:{line:75,column:5}},loc:{start:{line:75,column:20},end:{line:83,column:5}},line:75},"3":{name:"(anonymous_3)",decl:{start:{line:87,column:4},end:{line:87,column:5}},loc:{start:{line:87,column:28},end:{line:89,column:5}},line:87},"4":{name:"(anonymous_4)",decl:{start:{line:93,column:4},end:{line:93,column:5}},loc:{start:{line:93,column:27},end:{line:95,column:5}},line:93},"5":{name:"(anonymous_5)",decl:{start:{line:99,column:4},end:{line:99,column:5}},loc:{start:{line:99,column:24},end:{line:101,column:5}},line:99},"6":{name:"(anonymous_6)",decl:{start:{line:105,column:4},end:{line:105,column:5}},loc:{start:{line:105,column:23},end:{line:107,column:5}},line:105},"7":{name:"(anonymous_7)",decl:{start:{line:112,column:4},end:{line:112,column:5}},loc:{start:{line:112,column:27},end:{line:120,column:5}},line:112},"8":{name:"(anonymous_8)",decl:{start:{line:124,column:4},end:{line:124,column:5}},loc:{start:{line:124,column:22},end:{line:126,column:5}},line:124},"9":{name:"(anonymous_9)",decl:{start:{line:130,column:4},end:{line:130,column:5}},loc:{start:{line:130,column:25},end:{line:134,column:5}},line:130},"10":{name:"(anonymous_10)",decl:{start:{line:138,column:4},end:{line:138,column:5}},loc:{start:{line:138,column:22},end:{line:144,column:5}},line:138},"11":{name:"(anonymous_11)",decl:{start:{line:148,column:4},end:{line:148,column:5}},loc:{start:{line:148,column:21},end:{line:150,column:5}},line:148},"12":{name:"(anonymous_12)",decl:{start:{line:154,column:4},end:{line:154,column:5}},loc:{start:{line:154,column:24},end:{line:160,column:5}},line:154},"13":{name:"(anonymous_13)",decl:{start:{line:164,column:4},end:{line:164,column:5}},loc:{start:{line:164,column:23},end:{line:166,column:5}},line:164},"14":{name:"(anonymous_14)",decl:{start:{line:171,column:4},end:{line:171,column:5}},loc:{start:{line:171,column:15},end:{line:175,column:5}},line:171},"15":{name:"(anonymous_15)",decl:{start:{line:180,column:4},end:{line:180,column:5}},loc:{start:{line:180,column:27},end:{line:192,column:5}},line:180},"16":{name:"(anonymous_16)",decl:{start:{line:196,column:4},end:{line:196,column:5}},loc:{start:{line:196,column:15},end:{line:201,column:5}},line:196},"17":{name:"(anonymous_17)",decl:{start:{line:198,column:38},end:{line:198,column:39}},loc:{start:{line:198,column:45},end:{line:198,column:65}},line:198},"18":{name:"(anonymous_18)",decl:{start:{line:205,column:4},end:{line:205,column:5}},loc:{start:{line:205,column:26},end:{line:209,column:5}},line:205},"19":{name:"(anonymous_19)",decl:{start:{line:213,column:4},end:{line:213,column:5}},loc:{start:{line:213,column:18},end:{line:217,column:5}},line:213},"20":{name:"(anonymous_20)",decl:{start:{line:221,column:4},end:{line:221,column:5}},loc:{start:{line:221,column:25},end:{line:223,column:5}},line:221},"21":{name:"(anonymous_21)",decl:{start:{line:227,column:4},end:{line:227,column:5}},loc:{start:{line:227,column:29},end:{line:241,column:5}},line:227},"22":{name:"(anonymous_22)",decl:{start:{line:228,column:27},end:{line:228,column:28}},loc:{start:{line:228,column:37},end:{line:232,column:9}},line:228},"23":{name:"collapseAllHIdden",decl:{start:{line:233,column:17},end:{line:233,column:34}},loc:{start:{line:233,column:78},end:{line:240,column:9}},line:233},"24":{name:"(anonymous_24)",decl:{start:{line:235,column:34},end:{line:235,column:35}},loc:{start:{line:235,column:45},end:{line:239,column:13}},line:235},"25":{name:"(anonymous_25)",decl:{start:{line:249,column:4},end:{line:249,column:5}},loc:{start:{line:249,column:38},end:{line:263,column:5}},line:249},"26":{name:"(anonymous_26)",decl:{start:{line:267,column:4},end:{line:267,column:5}},loc:{start:{line:267,column:52},end:{line:276,column:5}},line:267},"27":{name:"(anonymous_27)",decl:{start:{line:280,column:4},end:{line:280,column:5}},loc:{start:{line:280,column:27},end:{line:298,column:5}},line:280}},branchMap:{"0":{loc:{start:{line:80,column:8},end:{line:82,column:9}},type:"if",locations:[{start:{line:80,column:8},end:{line:82,column:9}},{start:{line:80,column:8},end:{line:82,column:9}}],line:80},"1":{loc:{start:{line:114,column:8},end:{line:116,column:9}},type:"if",locations:[{start:{line:114,column:8},end:{line:116,column:9}},{start:{line:114,column:8},end:{line:116,column:9}}],line:114},"2":{loc:{start:{line:114,column:12},end:{line:114,column:68}},type:"binary-expr",locations:[{start:{line:114,column:12},end:{line:114,column:22}},{start:{line:114,column:26},end:{line:114,column:43}},{start:{line:114,column:47},end:{line:114,column:68}}],line:114},"3":{loc:{start:{line:149,column:15},end:{line:149,column:72}},type:"cond-expr",locations:[{start:{line:149,column:35},end:{line:149,column:65}},{start:{line:149,column:68},end:{line:149,column:72}}],line:149},"4":{loc:{start:{line:156,column:8},end:{line:159,column:9}},type:"if",locations:[{start:{line:156,column:8},end:{line:159,column:9}},{start:{line:156,column:8},end:{line:159,column:9}}],line:156},"5":{loc:{start:{line:173,column:8},end:{line:174,column:46}},type:"if",locations:[{start:{line:173,column:8},end:{line:174,column:46}},{start:{line:173,column:8},end:{line:174,column:46}}],line:173},"6":{loc:{start:{line:183,column:12},end:{line:185,column:75}},type:"if",locations:[{start:{line:183,column:12},end:{line:185,column:75}},{start:{line:183,column:12},end:{line:185,column:75}}],line:183},"7":{loc:{start:{line:183,column:16},end:{line:184,column:55}},type:"binary-expr",locations:[{start:{line:183,column:16},end:{line:183,column:49}},{start:{line:184,column:16},end:{line:184,column:55}}],line:183},"8":{loc:{start:{line:186,column:12},end:{line:189,column:13}},type:"if",locations:[{start:{line:186,column:12},end:{line:189,column:13}},{start:{line:186,column:12},end:{line:189,column:13}}],line:186},"9":{loc:{start:{line:186,column:16},end:{line:186,column:65}},type:"binary-expr",locations:[{start:{line:186,column:16},end:{line:186,column:22}},{start:{line:186,column:26},end:{line:186,column:65}}],line:186},"10":{loc:{start:{line:200,column:21},end:{line:200,column:82}},type:"cond-expr",locations:[{start:{line:200,column:40},end:{line:200,column:69}},{start:{line:200,column:72},end:{line:200,column:82}}],line:200},"11":{loc:{start:{line:206,column:8},end:{line:208,column:9}},type:"if",locations:[{start:{line:206,column:8},end:{line:208,column:9}},{start:{line:206,column:8},end:{line:208,column:9}}],line:206},"12":{loc:{start:{line:229,column:12},end:{line:231,column:13}},type:"if",locations:[{start:{line:229,column:12},end:{line:231,column:13}},{start:{line:229,column:12},end:{line:231,column:13}}],line:229},"13":{loc:{start:{line:236,column:16},end:{line:238,column:17}},type:"if",locations:[{start:{line:236,column:16},end:{line:238,column:17}},{start:{line:236,column:16},end:{line:238,column:17}}],line:236},"14":{loc:{start:{line:252,column:12},end:{line:260,column:13}},type:"if",locations:[{start:{line:252,column:12},end:{line:260,column:13}},{start:{line:252,column:12},end:{line:260,column:13}}],line:252},"15":{loc:{start:{line:255,column:16},end:{line:259,column:17}},type:"if",locations:[{start:{line:255,column:16},end:{line:259,column:17}},{start:{line:255,column:16},end:{line:259,column:17}}],line:255},"16":{loc:{start:{line:257,column:20},end:{line:258,column:49}},type:"if",locations:[{start:{line:257,column:20},end:{line:258,column:49}},{start:{line:257,column:20},end:{line:258,column:49}}],line:257},"17":{loc:{start:{line:268,column:8},end:{line:275,column:9}},type:"if",locations:[{start:{line:268,column:8},end:{line:275,column:9}},{start:{line:268,column:8},end:{line:275,column:9}}],line:268},"18":{loc:{start:{line:271,column:16},end:{line:273,column:17}},type:"if",locations:[{start:{line:271,column:16},end:{line:273,column:17}},{start:{line:271,column:16},end:{line:273,column:17}}],line:271},"19":{loc:{start:{line:290,column:12},end:{line:295,column:13}},type:"if",locations:[{start:{line:290,column:12},end:{line:295,column:13}},{start:{line:290,column:12},end:{line:295,column:13}}],line:290}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0},b:{"0":[0,0],"1":[0,0],"2":[0,0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0]},inputSourceMap:{version:3,file:"treeview.js",sourceRoot:"",sources:["../../../../../projects/sac-common/src/controls/treeview/treeview.ts"],names:[],mappings:"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",sourcesContent:["import {\r\n ContentChild,\r\n Directive,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n} from '@angular/core';\r\n\r\n/**\r\n * Basis Komponente f\xFCr SacTreeView\r\n */\r\n@Directive()\r\nexport class SacTreeViewCommon implements OnInit {\r\n /**\r\n * Das Property enthielt boolean Wert und deffiniert, ob alle Items collapsed sind. Default value: undefined/null\r\n */\r\n public _collapseAll: boolean;\r\n\r\n /**\r\n * Das Property enthielt boolean Wert und deffiniert, ob alle Items selected sind. Default value: undefined/null\r\n */\r\n private _selectAll: boolean;\r\n\r\n /**\r\n * Das Property enthielt array of nodes. Default value: empty array [].\r\n */\r\n public nodes: any[] = [];\r\n\r\n /**\r\n * Das Property enthielt node attribute: 'isCollapsed'. Es wird benutzt beim rendering. F\xFCr Expand/Collapsed Sicht des Node(Wert)\r\n */\r\n public collapseAttr = 'isCollapsed';\r\n\r\n /**\r\n * Das Property enthielt node attribute: 'isSelected'. Es wird benutzt beim Vorbereitung des Data des TreeView\r\n */\r\n public selectAttr = 'isSelected';\r\n\r\n /**\r\n * Das Property enthielt node attribute: 'isIndeterminate'. Es wird benutzt beim Vorbereitung des Data des TreeView\r\n */\r\n public inDeterminateAttr = 'isIndeterminate';\r\n\r\n /**\r\n * Providen data for tree.\r\n */\r\n private _data: any[] = [];\r\n\r\n /**\r\n * Getter f\xFCr Data des TreeView\r\n */\r\n get data(): any[] {\r\n return this._data;\r\n }\r\n\r\n /**\r\n * Input Property f\xFCr Data des TreeView\r\n */\r\n @Input()\r\n set data(value: any[]) {\r\n this._data = value;\r\n this.nodes = value;\r\n\r\n // this.nodes.forEach(node => node[\"typeId\"] = \"13\")\r\n\r\n this.LoadTree();\r\n\r\n if (this._collapseAll !== undefined) {\r\n this.collapseAllNode(this._collapseAll);\r\n }\r\n }\r\n\r\n /**\r\n * Input Property f\xFCr template des TreeView. Type: TemplateRef<any>.\r\n */\r\n @Input()\r\n template: TemplateRef<any>;\r\n\r\n /**\r\n * Die Directive erh\xE4lt die actions f\xFCr das TreeView\r\n */\r\n @ContentChild('actions', { static: true })\r\n public set treeviewTemplate(v: TemplateRef<any>) {\r\n this.template = v;\r\n }\r\n\r\n /**\r\n * Getter f\xFCr das TreeView Template\r\n */\r\n public get treeviewTemplate(): TemplateRef<any> {\r\n return this.template;\r\n }\r\n\r\n /**\r\n * Input property erh\xE4lt Icon f\xFCr das Template\r\n */\r\n @Input()\r\n fileicontemplate: TemplateRef<any>;\r\n\r\n /**\r\n * Setter property. Deffiniert das FileIcon f\xFCr das TreeView\r\n */\r\n @ContentChild('treefileicon', { static: true })\r\n public set treefileicon(v: TemplateRef<any>) {\r\n this.fileicontemplate = v;\r\n }\r\n\r\n /**\r\n * Getter property. Ergibt das FileIcon f\xFCr das TreeView\r\n */\r\n public get treefileicon(): TemplateRef<any> {\r\n return this.fileicontemplate;\r\n }\r\n\r\n /**\r\n * Input property f\xFCr den Namen des TreeView. Type string. Default value: \"\"\r\n */\r\n @Input()\r\n name: string = '';\r\n\r\n /**\r\n * A flag indicating data is flatten in array and prepare is required.(Default\r\n * is false).\r\n */\r\n @Input() prepareData = false;\r\n\r\n /**\r\n * Attribute for Text in Tree\r\n */\r\n @Input() textAttr = 'data';\r\n\r\n /**\r\n * Name of ID property in input data.\r\n */\r\n @Input() idAttr = 'id';\r\n\r\n /**\r\n * Name of parent property in input data.\r\n */\r\n @Input() parentAttr = 'PARENT_ID';\r\n\r\n /**\r\n * Name of children list property in input data.\r\n */\r\n @Input() childrenAttr = 'children';\r\n\r\n /**\r\n * Title des Treeview\r\n */\r\n @Input() title;\r\n\r\n // @Input(\"titleAction\") _titleAction: string\r\n\r\n /**\r\n * Collapse or expand all parent nodes.\r\n */\r\n @Input()\r\n set collapseall(value: boolean) {\r\n this._collapseAll = value;\r\n if (this.nodes && this.nodes.length && this.nodes.length > 0) {\r\n this.collapseAllNode(this._collapseAll);\r\n }\r\n\r\n // this._recursiveEdit(\r\n // this.nodes, this.childrenAttr, this.collapseAttr, this._collapseAll);\r\n\r\n // this.cd.detectChanges();\r\n }\r\n\r\n /**\r\n * Getter f\xFCr das collapse property. Ergibt boolean Wert, ob die Items collapsed/expand sind.\r\n */\r\n get collapseall(): boolean {\r\n return this._collapseAll;\r\n }\r\n\r\n /**\r\n * Select or deselect all nodes.\r\n */\r\n @Input()\r\n set selectall(value: boolean) {\r\n this._selectAll = value;\r\n this._recursiveEdit(this.nodes, this.childrenAttr, this.selectAttr, value);\r\n this._recursiveEdit(\r\n this.nodes,\r\n this.childrenAttr,\r\n this.inDeterminateAttr,\r\n false\r\n );\r\n }\r\n\r\n /**\r\n * Input property - setter. Deffiniert das ID des selektierten Item(node)\r\n */\r\n @Input()\r\n set selectedid(v: any) {\r\n this.selectedNode = this.findNode(this.nodes, v, this.idAttr);\r\n\r\n // if (this.selectedNode) {\r\n // this.selectedIdEmitter.emit(this.selectedNode[this.idAttr]);\r\n // this.selectedTextEmitter.emit(this.selectedNode[this.textAttr]);\r\n // }\r\n }\r\n\r\n /**\r\n * Getter. Ergibt das ID des selektierten Item(node)\r\n */\r\n get selectedId(): any {\r\n return this.selectedNode ? this.selectedNode[this.idAttr] : null;\r\n }\r\n\r\n /**\r\n * Das Property erh\xE4lt das selektierte Wert(node). Default value: undefined/null\r\n */\r\n private _selectedNode;\r\n\r\n /**\r\n * Setter f\xFCr das selektierte Wert(node). Wenn aufgerufen das ID und TextAttr des selected Node wird emitted\r\n */\r\n set selectedNode(v: any) {\r\n this._selectedNode = v;\r\n\r\n if (this._selectedNode) {\r\n this.selectedidchange.emit(this.selectedId);\r\n this.selectedtextchanged.emit(v[this.textAttr]);\r\n }\r\n }\r\n\r\n /**\r\n * Getter f\xFCr das selektierte Wert(node). Ergibt das selektierte Wert(node).\r\n */\r\n get selectedNode(): any {\r\n return this._selectedNode;\r\n }\r\n\r\n /**\r\n * Output Emitter. Emit das ID des selected Node.\r\n */\r\n @Output()\r\n selectedidchange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n /**\r\n * Output Emitter. Emit das TextAttr des selected Node.\r\n */\r\n @Output()\r\n selectedtextchanged: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n /**\r\n * Output Emitter. Emit wenn ein Node selektiert wird.\r\n */\r\n @Output()\r\n selecteditem: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n /**\r\n * A lifecycle hook that is called after Angular has initialized all data-bound properties of a directive.\r\n * Define an ngOnInit() method to handle any additional initialization tasks.\r\n */\r\n ngOnInit() {\r\n this.collapseAllNode(this._collapseAll);\r\n\r\n if (this.selectedId) this.openSelectedNode(this.nodes);\r\n }\r\n\r\n /**\r\n * Funktion setzt alle parent items recusiv zum selected node\r\n * auf collapsed = false\r\n */\r\n private openSelectedNode(data): boolean {\r\n let result: boolean = false;\r\n for (let i = 0; i < data.length; i++) {\r\n if (\r\n data[i][this.childrenAttr].length &&\r\n data[i][this.idAttr] != this.selectedId\r\n )\r\n result = this.openSelectedNode(data[i][this.childrenAttr]);\r\n if (result || data[i][this.idAttr] == this.selectedId) {\r\n data[i][this.collapseAttr] = false;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Die Methode vorbereitet die Daten f\xFCr das TreeView. Die Funktion sollte ge\xE4ndert werden abh\xE4ngig von dem kommenden Daten (wenn array)\r\n */\r\n private LoadTree() {\r\n //if the tree structure require array the function below should be changed\r\n const cloned = this._data.map((x) => Object.assign({}, x));\r\n\r\n // If data is flat, prepare data with recursive function.\r\n this.nodes = this.prepareData ? this._getPreparedData(cloned) : this._data;\r\n }\r\n\r\n /**\r\n * Die Methode collapse/expand den selectierten Node\r\n */\r\n onCollapseClick(node) {\r\n if (node[this.childrenAttr].length) {\r\n node[this.collapseAttr] = !node[this.collapseAttr];\r\n }\r\n }\r\n\r\n /**\r\n * Die Methode set den selektierten Node und emit es.\r\n */\r\n onClick(node) {\r\n this.selectedNode = node;\r\n this.selecteditem.emit(this.selectedNode);\r\n // this.cd.detectChanges();\r\n }\r\n\r\n /**\r\n * Die Methode wird ein event mit Meldung zu Parent emit-en.\r\n */\r\n sendMsgToParent(msg) {\r\n this.selecteditem.emit(msg);\r\n }\r\n\r\n /**\r\n * Die Methode wird alle Nodes collapse\r\n */\r\n collapseAllNode(command) {\r\n this.nodes.forEach((node) => {\r\n if (node[this.childrenAttr].length) {\r\n collapseAllHIdden(node, this.collapseAttr, command, this.childrenAttr);\r\n }\r\n });\r\n function collapseAllHIdden(node, collapseAttr, command, childrenAttr) {\r\n node[collapseAttr] = command;\r\n node.children.forEach((child: any) => {\r\n if (child[childrenAttr].length) {\r\n collapseAllHIdden(child, collapseAttr, command, childrenAttr);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Funktion gibt node aus der liste zur\xFCck, welches das Value auf dem gew\xFCnschten Attribut hat\r\n * Wenn node nicht gefunden wird, wird null zur\xFCck gegeben\r\n * @param data Liste der nodes\r\n * @param searchValue Das gesuchte value\r\n * @param attr Der namen des Attributs auf dem das value gesucht wird\r\n */\r\n private findNode(data, searchValue, attr): any {\r\n let result: any = null;\r\n for (let i = 0; i < data.length; i++) {\r\n if (data[i][attr] == searchValue) result = data[i];\r\n else {\r\n if (data[i][this.childrenAttr].length) {\r\n let recursiveResult = this.findNode(\r\n data[i][this.childrenAttr],\r\n searchValue,\r\n attr\r\n );\r\n if (recursiveResult) result = recursiveResult;\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Die Methode editiert (recursive) alle eingegebene Nodes abh\xE4ngig von gegebenen Attibute und Value Kriterien.\r\n */\r\n private _recursiveEdit(list, childrenAttr, attr, value) {\r\n if (Array.isArray(list)) {\r\n for (let i = 0, len = list.length; i < len; i++) {\r\n list[i][attr] = value;\r\n if (list[i][childrenAttr].length) {\r\n this._recursiveEdit(list[i][childrenAttr], childrenAttr, attr, value);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Die Methode erstellt eine standarte Sicht-Liste von Nodes\r\n */\r\n private _getPreparedData(list) {\r\n const tree = [],\r\n lookup = {};\r\n for (let i = 0, len = list.length; i < len; i++) {\r\n lookup[list[i][this.idAttr]] = list[i];\r\n list[i][this.childrenAttr] = [];\r\n list[i][this.collapseAttr] = true;\r\n list[i][this.selectAttr] = false;\r\n list[i][this.inDeterminateAttr] = false;\r\n }\r\n for (let i = 0, len = list.length; i < len; i++) {\r\n if (list[i][this.parentAttr]) {\r\n lookup[list[i][this.parentAttr]][this.childrenAttr].push(list[i]);\r\n } else {\r\n tree.push(list[i]);\r\n }\r\n }\r\n\r\n return tree;\r\n }\r\n}\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"247dc2824ad58f453ea60be59c2fe9953cc73e58"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
+ cov_24ddv5o0pk=function(){return actualCoverage;};}return actualCoverage;}cov_24ddv5o0pk();import{ContentChild,Directive,EventEmitter,Input,Output}from'@angular/core';import*as i0 from"@angular/core";/**
4
3
  * Basis Komponente für SacTreeView
5
- */
6
- export class SacTreeViewCommon {
7
- constructor() {
8
- /**
4
+ */export class SacTreeViewCommon{constructor(){cov_24ddv5o0pk().f[0]++;cov_24ddv5o0pk().s[0]++;/**
9
5
  * Das Property enthielt array of nodes. Default value: empty array [].
10
- */
11
- this.nodes = [];
12
- /**
6
+ */this.nodes=[];/**
13
7
  * Das Property enthielt node attribute: 'isCollapsed'. Es wird benutzt beim rendering. Für Expand/Collapsed Sicht des Node(Wert)
14
- */
15
- this.collapseAttr = 'isCollapsed';
16
- /**
8
+ */cov_24ddv5o0pk().s[1]++;this.collapseAttr='isCollapsed';/**
17
9
  * Das Property enthielt node attribute: 'isSelected'. Es wird benutzt beim Vorbereitung des Data des TreeView
18
- */
19
- this.selectAttr = 'isSelected';
20
- /**
10
+ */cov_24ddv5o0pk().s[2]++;this.selectAttr='isSelected';/**
21
11
  * Das Property enthielt node attribute: 'isIndeterminate'. Es wird benutzt beim Vorbereitung des Data des TreeView
22
- */
23
- this.inDeterminateAttr = 'isIndeterminate';
24
- /**
12
+ */cov_24ddv5o0pk().s[3]++;this.inDeterminateAttr='isIndeterminate';/**
25
13
  * Providen data for tree.
26
- */
27
- this._data = [];
28
- /**
14
+ */cov_24ddv5o0pk().s[4]++;this._data=[];/**
29
15
  * Input property für den Namen des TreeView. Type string. Default value: ""
30
- */
31
- this.name = '';
32
- /**
16
+ */cov_24ddv5o0pk().s[5]++;this.name='';/**
33
17
  * A flag indicating data is flatten in array and prepare is required.(Default
34
18
  * is false).
35
- */
36
- this.prepareData = false;
37
- /**
19
+ */cov_24ddv5o0pk().s[6]++;this.prepareData=false;/**
38
20
  * Attribute for Text in Tree
39
- */
40
- this.textAttr = 'data';
41
- /**
21
+ */cov_24ddv5o0pk().s[7]++;this.textAttr='data';/**
42
22
  * Name of ID property in input data.
43
- */
44
- this.idAttr = 'id';
45
- /**
23
+ */cov_24ddv5o0pk().s[8]++;this.idAttr='id';/**
46
24
  * Name of parent property in input data.
47
- */
48
- this.parentAttr = 'PARENT_ID';
49
- /**
25
+ */cov_24ddv5o0pk().s[9]++;this.parentAttr='PARENT_ID';/**
50
26
  * Name of children list property in input data.
51
- */
52
- this.childrenAttr = 'children';
53
- /**
27
+ */cov_24ddv5o0pk().s[10]++;this.childrenAttr='children';/**
54
28
  * Output Emitter. Emit das ID des selected Node.
55
- */
56
- this.selectedidchange = new EventEmitter();
57
- /**
29
+ */cov_24ddv5o0pk().s[11]++;this.selectedidchange=new EventEmitter();/**
58
30
  * Output Emitter. Emit das TextAttr des selected Node.
59
- */
60
- this.selectedtextchanged = new EventEmitter();
61
- /**
31
+ */cov_24ddv5o0pk().s[12]++;this.selectedtextchanged=new EventEmitter();/**
62
32
  * Output Emitter. Emit wenn ein Node selektiert wird.
63
- */
64
- this.selecteditem = new EventEmitter();
65
- }
66
- /**
33
+ */cov_24ddv5o0pk().s[13]++;this.selecteditem=new EventEmitter();}/**
67
34
  * Getter für Data des TreeView
68
- */
69
- get data() {
70
- return this._data;
71
- }
72
- /**
35
+ */get data(){cov_24ddv5o0pk().f[1]++;cov_24ddv5o0pk().s[14]++;return this._data;}/**
73
36
  * Input Property für Data des TreeView
74
- */
75
- set data(value) {
76
- this._data = value;
77
- this.nodes = value;
78
- // this.nodes.forEach(node => node["typeId"] = "13")
79
- this.LoadTree();
80
- if (this._collapseAll !== undefined) {
81
- this.collapseAllNode(this._collapseAll);
82
- }
83
- }
84
- /**
37
+ */set data(value){cov_24ddv5o0pk().f[2]++;cov_24ddv5o0pk().s[15]++;this._data=value;cov_24ddv5o0pk().s[16]++;this.nodes=value;// this.nodes.forEach(node => node["typeId"] = "13")
38
+ cov_24ddv5o0pk().s[17]++;this.LoadTree();cov_24ddv5o0pk().s[18]++;if(this._collapseAll!==undefined){cov_24ddv5o0pk().b[0][0]++;cov_24ddv5o0pk().s[19]++;this.collapseAllNode(this._collapseAll);}else{cov_24ddv5o0pk().b[0][1]++;}}/**
85
39
  * Die Directive erhält die actions für das TreeView
86
- */
87
- set treeviewTemplate(v) {
88
- this.template = v;
89
- }
90
- /**
40
+ */set treeviewTemplate(v){cov_24ddv5o0pk().f[3]++;cov_24ddv5o0pk().s[20]++;this.template=v;}/**
91
41
  * Getter für das TreeView Template
92
- */
93
- get treeviewTemplate() {
94
- return this.template;
95
- }
96
- /**
42
+ */get treeviewTemplate(){cov_24ddv5o0pk().f[4]++;cov_24ddv5o0pk().s[21]++;return this.template;}/**
97
43
  * Setter property. Deffiniert das FileIcon für das TreeView
98
- */
99
- set treefileicon(v) {
100
- this.fileicontemplate = v;
101
- }
102
- /**
44
+ */set treefileicon(v){cov_24ddv5o0pk().f[5]++;cov_24ddv5o0pk().s[22]++;this.fileicontemplate=v;}/**
103
45
  * Getter property. Ergibt das FileIcon für das TreeView
104
- */
105
- get treefileicon() {
106
- return this.fileicontemplate;
107
- }
108
- // @Input("titleAction") _titleAction: string
109
- /**
46
+ */get treefileicon(){cov_24ddv5o0pk().f[6]++;cov_24ddv5o0pk().s[23]++;return this.fileicontemplate;}// @Input("titleAction") _titleAction: string
47
+ /**
110
48
  * Collapse or expand all parent nodes.
111
- */
112
- set collapseall(value) {
113
- this._collapseAll = value;
114
- if (this.nodes && this.nodes.length && this.nodes.length > 0) {
115
- this.collapseAllNode(this._collapseAll);
116
- }
117
- // this._recursiveEdit(
118
- // this.nodes, this.childrenAttr, this.collapseAttr, this._collapseAll);
119
- // this.cd.detectChanges();
120
- }
121
- /**
49
+ */set collapseall(value){cov_24ddv5o0pk().f[7]++;cov_24ddv5o0pk().s[24]++;this._collapseAll=value;cov_24ddv5o0pk().s[25]++;if((cov_24ddv5o0pk().b[2][0]++,this.nodes)&&(cov_24ddv5o0pk().b[2][1]++,this.nodes.length)&&(cov_24ddv5o0pk().b[2][2]++,this.nodes.length>0)){cov_24ddv5o0pk().b[1][0]++;cov_24ddv5o0pk().s[26]++;this.collapseAllNode(this._collapseAll);}else{cov_24ddv5o0pk().b[1][1]++;}// this._recursiveEdit(
50
+ // this.nodes, this.childrenAttr, this.collapseAttr, this._collapseAll);
51
+ // this.cd.detectChanges();
52
+ }/**
122
53
  * Getter für das collapse property. Ergibt boolean Wert, ob die Items collapsed/expand sind.
123
- */
124
- get collapseall() {
125
- return this._collapseAll;
126
- }
127
- /**
54
+ */get collapseall(){cov_24ddv5o0pk().f[8]++;cov_24ddv5o0pk().s[27]++;return this._collapseAll;}/**
128
55
  * Select or deselect all nodes.
129
- */
130
- set selectall(value) {
131
- this._selectAll = value;
132
- this._recursiveEdit(this.nodes, this.childrenAttr, this.selectAttr, value);
133
- this._recursiveEdit(this.nodes, this.childrenAttr, this.inDeterminateAttr, false);
134
- }
135
- /**
56
+ */set selectall(value){cov_24ddv5o0pk().f[9]++;cov_24ddv5o0pk().s[28]++;this._selectAll=value;cov_24ddv5o0pk().s[29]++;this._recursiveEdit(this.nodes,this.childrenAttr,this.selectAttr,value);cov_24ddv5o0pk().s[30]++;this._recursiveEdit(this.nodes,this.childrenAttr,this.inDeterminateAttr,false);}/**
136
57
  * Input property - setter. Deffiniert das ID des selektierten Item(node)
137
- */
138
- set selectedid(v) {
139
- this.selectedNode = this.findNode(this.nodes, v, this.idAttr);
140
- // if (this.selectedNode) {
141
- // this.selectedIdEmitter.emit(this.selectedNode[this.idAttr]);
142
- // this.selectedTextEmitter.emit(this.selectedNode[this.textAttr]);
143
- // }
144
- }
145
- /**
58
+ */set selectedid(v){cov_24ddv5o0pk().f[10]++;cov_24ddv5o0pk().s[31]++;this.selectedNode=this.findNode(this.nodes,v,this.idAttr);// if (this.selectedNode) {
59
+ // this.selectedIdEmitter.emit(this.selectedNode[this.idAttr]);
60
+ // this.selectedTextEmitter.emit(this.selectedNode[this.textAttr]);
61
+ // }
62
+ }/**
146
63
  * Getter. Ergibt das ID des selektierten Item(node)
147
- */
148
- get selectedId() {
149
- return this.selectedNode ? this.selectedNode[this.idAttr] : null;
150
- }
151
- /**
64
+ */get selectedId(){cov_24ddv5o0pk().f[11]++;cov_24ddv5o0pk().s[32]++;return this.selectedNode?(cov_24ddv5o0pk().b[3][0]++,this.selectedNode[this.idAttr]):(cov_24ddv5o0pk().b[3][1]++,null);}/**
152
65
  * Setter für das selektierte Wert(node). Wenn aufgerufen das ID und TextAttr des selected Node wird emitted
153
- */
154
- set selectedNode(v) {
155
- this._selectedNode = v;
156
- if (this._selectedNode) {
157
- this.selectedidchange.emit(this.selectedId);
158
- this.selectedtextchanged.emit(v[this.textAttr]);
159
- }
160
- }
161
- /**
66
+ */set selectedNode(v){cov_24ddv5o0pk().f[12]++;cov_24ddv5o0pk().s[33]++;this._selectedNode=v;cov_24ddv5o0pk().s[34]++;if(this._selectedNode){cov_24ddv5o0pk().b[4][0]++;cov_24ddv5o0pk().s[35]++;this.selectedidchange.emit(this.selectedId);cov_24ddv5o0pk().s[36]++;this.selectedtextchanged.emit(v[this.textAttr]);}else{cov_24ddv5o0pk().b[4][1]++;}}/**
162
67
  * Getter für das selektierte Wert(node). Ergibt das selektierte Wert(node).
163
- */
164
- get selectedNode() {
165
- return this._selectedNode;
166
- }
167
- /**
68
+ */get selectedNode(){cov_24ddv5o0pk().f[13]++;cov_24ddv5o0pk().s[37]++;return this._selectedNode;}/**
168
69
  * A lifecycle hook that is called after Angular has initialized all data-bound properties of a directive.
169
70
  * Define an ngOnInit() method to handle any additional initialization tasks.
170
- */
171
- ngOnInit() {
172
- this.collapseAllNode(this._collapseAll);
173
- if (this.selectedId)
174
- this.openSelectedNode(this.nodes);
175
- }
176
- /**
71
+ */ngOnInit(){cov_24ddv5o0pk().f[14]++;cov_24ddv5o0pk().s[38]++;this.collapseAllNode(this._collapseAll);cov_24ddv5o0pk().s[39]++;if(this.selectedId){cov_24ddv5o0pk().b[5][0]++;cov_24ddv5o0pk().s[40]++;this.openSelectedNode(this.nodes);}else{cov_24ddv5o0pk().b[5][1]++;}}/**
177
72
  * Funktion setzt alle parent items recusiv zum selected node
178
73
  * auf collapsed = false
179
- */
180
- openSelectedNode(data) {
181
- let result = false;
182
- for (let i = 0; i < data.length; i++) {
183
- if (data[i][this.childrenAttr].length &&
184
- data[i][this.idAttr] != this.selectedId)
185
- result = this.openSelectedNode(data[i][this.childrenAttr]);
186
- if (result || data[i][this.idAttr] == this.selectedId) {
187
- data[i][this.collapseAttr] = false;
188
- return true;
189
- }
190
- }
191
- return false;
192
- }
193
- /**
74
+ */openSelectedNode(data){cov_24ddv5o0pk().f[15]++;let result=(cov_24ddv5o0pk().s[41]++,false);cov_24ddv5o0pk().s[42]++;for(let i=(cov_24ddv5o0pk().s[43]++,0);i<data.length;i++){cov_24ddv5o0pk().s[44]++;if((cov_24ddv5o0pk().b[7][0]++,data[i][this.childrenAttr].length)&&(cov_24ddv5o0pk().b[7][1]++,data[i][this.idAttr]!=this.selectedId)){cov_24ddv5o0pk().b[6][0]++;cov_24ddv5o0pk().s[45]++;result=this.openSelectedNode(data[i][this.childrenAttr]);}else{cov_24ddv5o0pk().b[6][1]++;}cov_24ddv5o0pk().s[46]++;if((cov_24ddv5o0pk().b[9][0]++,result)||(cov_24ddv5o0pk().b[9][1]++,data[i][this.idAttr]==this.selectedId)){cov_24ddv5o0pk().b[8][0]++;cov_24ddv5o0pk().s[47]++;data[i][this.collapseAttr]=false;cov_24ddv5o0pk().s[48]++;return true;}else{cov_24ddv5o0pk().b[8][1]++;}}cov_24ddv5o0pk().s[49]++;return false;}/**
194
75
  * Die Methode vorbereitet die Daten für das TreeView. Die Funktion sollte geändert werden abhängig von dem kommenden Daten (wenn array)
195
- */
196
- LoadTree() {
197
- //if the tree structure require array the function below should be changed
198
- const cloned = this._data.map((x) => Object.assign({}, x));
199
- // If data is flat, prepare data with recursive function.
200
- this.nodes = this.prepareData ? this._getPreparedData(cloned) : this._data;
201
- }
202
- /**
76
+ */LoadTree(){cov_24ddv5o0pk().f[16]++;//if the tree structure require array the function below should be changed
77
+ const cloned=(cov_24ddv5o0pk().s[50]++,this._data.map(x=>{cov_24ddv5o0pk().f[17]++;cov_24ddv5o0pk().s[51]++;return Object.assign({},x);}));// If data is flat, prepare data with recursive function.
78
+ cov_24ddv5o0pk().s[52]++;this.nodes=this.prepareData?(cov_24ddv5o0pk().b[10][0]++,this._getPreparedData(cloned)):(cov_24ddv5o0pk().b[10][1]++,this._data);}/**
203
79
  * Die Methode collapse/expand den selectierten Node
204
- */
205
- onCollapseClick(node) {
206
- if (node[this.childrenAttr].length) {
207
- node[this.collapseAttr] = !node[this.collapseAttr];
208
- }
209
- }
210
- /**
80
+ */onCollapseClick(node){cov_24ddv5o0pk().f[18]++;cov_24ddv5o0pk().s[53]++;if(node[this.childrenAttr].length){cov_24ddv5o0pk().b[11][0]++;cov_24ddv5o0pk().s[54]++;node[this.collapseAttr]=!node[this.collapseAttr];}else{cov_24ddv5o0pk().b[11][1]++;}}/**
211
81
  * Die Methode set den selektierten Node und emit es.
212
- */
213
- onClick(node) {
214
- this.selectedNode = node;
215
- this.selecteditem.emit(this.selectedNode);
216
- // this.cd.detectChanges();
217
- }
218
- /**
82
+ */onClick(node){cov_24ddv5o0pk().f[19]++;cov_24ddv5o0pk().s[55]++;this.selectedNode=node;cov_24ddv5o0pk().s[56]++;this.selecteditem.emit(this.selectedNode);// this.cd.detectChanges();
83
+ }/**
219
84
  * Die Methode wird ein event mit Meldung zu Parent emit-en.
220
- */
221
- sendMsgToParent(msg) {
222
- this.selecteditem.emit(msg);
223
- }
224
- /**
85
+ */sendMsgToParent(msg){cov_24ddv5o0pk().f[20]++;cov_24ddv5o0pk().s[57]++;this.selecteditem.emit(msg);}/**
225
86
  * Die Methode wird alle Nodes collapse
226
- */
227
- collapseAllNode(command) {
228
- this.nodes.forEach((node) => {
229
- if (node[this.childrenAttr].length) {
230
- collapseAllHIdden(node, this.collapseAttr, command, this.childrenAttr);
231
- }
232
- });
233
- function collapseAllHIdden(node, collapseAttr, command, childrenAttr) {
234
- node[collapseAttr] = command;
235
- node.children.forEach((child) => {
236
- if (child[childrenAttr].length) {
237
- collapseAllHIdden(child, collapseAttr, command, childrenAttr);
238
- }
239
- });
240
- }
241
- }
242
- /**
87
+ */collapseAllNode(command){cov_24ddv5o0pk().f[21]++;cov_24ddv5o0pk().s[58]++;this.nodes.forEach(node=>{cov_24ddv5o0pk().f[22]++;cov_24ddv5o0pk().s[59]++;if(node[this.childrenAttr].length){cov_24ddv5o0pk().b[12][0]++;cov_24ddv5o0pk().s[60]++;collapseAllHIdden(node,this.collapseAttr,command,this.childrenAttr);}else{cov_24ddv5o0pk().b[12][1]++;}});function collapseAllHIdden(node,collapseAttr,command,childrenAttr){cov_24ddv5o0pk().f[23]++;cov_24ddv5o0pk().s[61]++;node[collapseAttr]=command;cov_24ddv5o0pk().s[62]++;node.children.forEach(child=>{cov_24ddv5o0pk().f[24]++;cov_24ddv5o0pk().s[63]++;if(child[childrenAttr].length){cov_24ddv5o0pk().b[13][0]++;cov_24ddv5o0pk().s[64]++;collapseAllHIdden(child,collapseAttr,command,childrenAttr);}else{cov_24ddv5o0pk().b[13][1]++;}});}}/**
243
88
  * Funktion gibt node aus der liste zurück, welches das Value auf dem gewünschten Attribut hat
244
89
  * Wenn node nicht gefunden wird, wird null zurück gegeben
245
90
  * @param data Liste der nodes
246
91
  * @param searchValue Das gesuchte value
247
92
  * @param attr Der namen des Attributs auf dem das value gesucht wird
248
- */
249
- findNode(data, searchValue, attr) {
250
- let result = null;
251
- for (let i = 0; i < data.length; i++) {
252
- if (data[i][attr] == searchValue)
253
- result = data[i];
254
- else {
255
- if (data[i][this.childrenAttr].length) {
256
- let recursiveResult = this.findNode(data[i][this.childrenAttr], searchValue, attr);
257
- if (recursiveResult)
258
- result = recursiveResult;
259
- }
260
- }
261
- }
262
- return result;
263
- }
264
- /**
93
+ */findNode(data,searchValue,attr){cov_24ddv5o0pk().f[25]++;let result=(cov_24ddv5o0pk().s[65]++,null);cov_24ddv5o0pk().s[66]++;for(let i=(cov_24ddv5o0pk().s[67]++,0);i<data.length;i++){cov_24ddv5o0pk().s[68]++;if(data[i][attr]==searchValue){cov_24ddv5o0pk().b[14][0]++;cov_24ddv5o0pk().s[69]++;result=data[i];}else{cov_24ddv5o0pk().b[14][1]++;cov_24ddv5o0pk().s[70]++;if(data[i][this.childrenAttr].length){cov_24ddv5o0pk().b[15][0]++;let recursiveResult=(cov_24ddv5o0pk().s[71]++,this.findNode(data[i][this.childrenAttr],searchValue,attr));cov_24ddv5o0pk().s[72]++;if(recursiveResult){cov_24ddv5o0pk().b[16][0]++;cov_24ddv5o0pk().s[73]++;result=recursiveResult;}else{cov_24ddv5o0pk().b[16][1]++;}}else{cov_24ddv5o0pk().b[15][1]++;}}}cov_24ddv5o0pk().s[74]++;return result;}/**
265
94
  * Die Methode editiert (recursive) alle eingegebene Nodes abhängig von gegebenen Attibute und Value Kriterien.
266
- */
267
- _recursiveEdit(list, childrenAttr, attr, value) {
268
- if (Array.isArray(list)) {
269
- for (let i = 0, len = list.length; i < len; i++) {
270
- list[i][attr] = value;
271
- if (list[i][childrenAttr].length) {
272
- this._recursiveEdit(list[i][childrenAttr], childrenAttr, attr, value);
273
- }
274
- }
275
- }
276
- }
277
- /**
95
+ */_recursiveEdit(list,childrenAttr,attr,value){cov_24ddv5o0pk().f[26]++;cov_24ddv5o0pk().s[75]++;if(Array.isArray(list)){cov_24ddv5o0pk().b[17][0]++;cov_24ddv5o0pk().s[76]++;for(let i=(cov_24ddv5o0pk().s[77]++,0),len=(cov_24ddv5o0pk().s[78]++,list.length);i<len;i++){cov_24ddv5o0pk().s[79]++;list[i][attr]=value;cov_24ddv5o0pk().s[80]++;if(list[i][childrenAttr].length){cov_24ddv5o0pk().b[18][0]++;cov_24ddv5o0pk().s[81]++;this._recursiveEdit(list[i][childrenAttr],childrenAttr,attr,value);}else{cov_24ddv5o0pk().b[18][1]++;}}}else{cov_24ddv5o0pk().b[17][1]++;}}/**
278
96
  * Die Methode erstellt eine standarte Sicht-Liste von Nodes
279
- */
280
- _getPreparedData(list) {
281
- const tree = [], lookup = {};
282
- for (let i = 0, len = list.length; i < len; i++) {
283
- lookup[list[i][this.idAttr]] = list[i];
284
- list[i][this.childrenAttr] = [];
285
- list[i][this.collapseAttr] = true;
286
- list[i][this.selectAttr] = false;
287
- list[i][this.inDeterminateAttr] = false;
288
- }
289
- for (let i = 0, len = list.length; i < len; i++) {
290
- if (list[i][this.parentAttr]) {
291
- lookup[list[i][this.parentAttr]][this.childrenAttr].push(list[i]);
292
- }
293
- else {
294
- tree.push(list[i]);
295
- }
296
- }
297
- return tree;
298
- }
299
- }
300
- SacTreeViewCommon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacTreeViewCommon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
301
- SacTreeViewCommon.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SacTreeViewCommon, inputs: { data: "data", template: "template", fileicontemplate: "fileicontemplate", name: "name", prepareData: "prepareData", textAttr: "textAttr", idAttr: "idAttr", parentAttr: "parentAttr", childrenAttr: "childrenAttr", title: "title", collapseall: "collapseall", selectall: "selectall", selectedid: "selectedid" }, outputs: { selectedidchange: "selectedidchange", selectedtextchanged: "selectedtextchanged", selecteditem: "selecteditem" }, queries: [{ propertyName: "treeviewTemplate", first: true, predicate: ["actions"], descendants: true, static: true }, { propertyName: "treefileicon", first: true, predicate: ["treefileicon"], descendants: true, static: true }], ngImport: i0 });
302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacTreeViewCommon, decorators: [{
303
- type: Directive
304
- }], propDecorators: { data: [{
305
- type: Input
306
- }], template: [{
307
- type: Input
308
- }], treeviewTemplate: [{
309
- type: ContentChild,
310
- args: ['actions', { static: true }]
311
- }], fileicontemplate: [{
312
- type: Input
313
- }], treefileicon: [{
314
- type: ContentChild,
315
- args: ['treefileicon', { static: true }]
316
- }], name: [{
317
- type: Input
318
- }], prepareData: [{
319
- type: Input
320
- }], textAttr: [{
321
- type: Input
322
- }], idAttr: [{
323
- type: Input
324
- }], parentAttr: [{
325
- type: Input
326
- }], childrenAttr: [{
327
- type: Input
328
- }], title: [{
329
- type: Input
330
- }], collapseall: [{
331
- type: Input
332
- }], selectall: [{
333
- type: Input
334
- }], selectedid: [{
335
- type: Input
336
- }], selectedidchange: [{
337
- type: Output
338
- }], selectedtextchanged: [{
339
- type: Output
340
- }], selecteditem: [{
341
- type: Output
342
- }] } });
343
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy90cmVldmlldy90cmVldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQzs7QUFFdkI7O0dBRUc7QUFFSCxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBWUU7O1dBRUc7UUFDSSxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBRXpCOztXQUVHO1FBQ0ksaUJBQVksR0FBRyxhQUFhLENBQUM7UUFFcEM7O1dBRUc7UUFDSSxlQUFVLEdBQUcsWUFBWSxDQUFDO1FBRWpDOztXQUVHO1FBQ0ksc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFFN0M7O1dBRUc7UUFDSyxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBb0UxQjs7V0FFRztRQUVILFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbEI7OztXQUdHO1FBQ00sZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFN0I7O1dBRUc7UUFDTSxhQUFRLEdBQUcsTUFBTSxDQUFDO1FBRTNCOztXQUVHO1FBQ00sV0FBTSxHQUFHLElBQUksQ0FBQztRQUV2Qjs7V0FFRztRQUNNLGVBQVUsR0FBRyxXQUFXLENBQUM7UUFFbEM7O1dBRUc7UUFDTSxpQkFBWSxHQUFHLFVBQVUsQ0FBQztRQTJGbkM7O1dBRUc7UUFFSCxxQkFBZ0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU5RDs7V0FFRztRQUVILHdCQUFtQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXZFOztXQUVHO1FBRUgsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQXFKakU7SUFoV0M7O09BRUc7SUFDSCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFL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O2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsS0FBSztnQkF3QkYsU0FBUztzQkFEWixLQUFLO2dCQWdCRixVQUFVO3NCQURiLEtBQUs7Z0JBNkNOLGdCQUFnQjtzQkFEZixNQUFNO2dCQU9QLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFPUCxZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbnRlbnRDaGlsZCxcclxuICBEaXJlY3RpdmUsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogQmFzaXMgS29tcG9uZW50ZSBmw7xyIFNhY1RyZWVWaWV3XHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY1RyZWVWaWV3Q29tbW9uIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKipcclxuICAgKiBEYXMgUHJvcGVydHkgZW50aGllbHQgYm9vbGVhbiBXZXJ0IHVuZCBkZWZmaW5pZXJ0LCBvYiBhbGxlIEl0ZW1zIGNvbGxhcHNlZCBzaW5kLiBEZWZhdWx0IHZhbHVlOiB1bmRlZmluZWQvbnVsbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBfY29sbGFwc2VBbGw6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBib29sZWFuIFdlcnQgdW5kIGRlZmZpbmllcnQsIG9iIGFsbGUgSXRlbXMgc2VsZWN0ZWQgc2luZC4gRGVmYXVsdCB2YWx1ZTogdW5kZWZpbmVkL251bGxcclxuICAgKi9cclxuICBwcml2YXRlIF9zZWxlY3RBbGw6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBhcnJheSBvZiBub2Rlcy4gRGVmYXVsdCB2YWx1ZTogZW1wdHkgYXJyYXkgW10uXHJcbiAgICovXHJcbiAgcHVibGljIG5vZGVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBEYXMgUHJvcGVydHkgZW50aGllbHQgbm9kZSBhdHRyaWJ1dGU6ICdpc0NvbGxhcHNlZCcuIEVzIHdpcmQgYmVudXR6dCBiZWltIHJlbmRlcmluZy4gRsO8ciBFeHBhbmQvQ29sbGFwc2VkIFNpY2h0IGRlcyBOb2RlKFdlcnQpXHJcbiAgICovXHJcbiAgcHVibGljIGNvbGxhcHNlQXR0ciA9ICdpc0NvbGxhcHNlZCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBub2RlIGF0dHJpYnV0ZTogJ2lzU2VsZWN0ZWQnLiBFcyB3aXJkIGJlbnV0enQgYmVpbSBWb3JiZXJlaXR1bmcgZGVzIERhdGEgZGVzIFRyZWVWaWV3XHJcbiAgICovXHJcbiAgcHVibGljIHNlbGVjdEF0dHIgPSAnaXNTZWxlY3RlZCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBub2RlIGF0dHJpYnV0ZTogJ2lzSW5kZXRlcm1pbmF0ZScuIEVzIHdpcmQgYmVudXR6dCBiZWltIFZvcmJlcmVpdHVuZyBkZXMgRGF0YSBkZXMgVHJlZVZpZXdcclxuICAgKi9cclxuICBwdWJsaWMgaW5EZXRlcm1pbmF0ZUF0dHIgPSAnaXNJbmRldGVybWluYXRlJztcclxuXHJcbiAgLyoqXHJcbiAgICogUHJvdmlkZW4gZGF0YSBmb3IgdHJlZS5cclxuICAgKi9cclxuICBwcml2YXRlIF9kYXRhOiBhbnlbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZsO8ciBEYXRhIGRlcyBUcmVlVmlld1xyXG4gICAqL1xyXG4gIGdldCBkYXRhKCk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5wdXQgUHJvcGVydHkgZsO8ciBEYXRhIGRlcyBUcmVlVmlld1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRhdGEodmFsdWU6IGFueVtdKSB7XHJcbiAgICB0aGlzLl9kYXRhID0gdmFsdWU7XHJcbiAgICB0aGlzLm5vZGVzID0gdmFsdWU7XHJcblxyXG4gICAgLy8gdGhpcy5ub2Rlcy5mb3JFYWNoKG5vZGUgPT4gbm9kZVtcInR5cGVJZFwiXSA9IFwiMTNcIilcclxuXHJcbiAgICB0aGlzLkxvYWRUcmVlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX2NvbGxhcHNlQWxsICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jb2xsYXBzZUFsbE5vZGUodGhpcy5fY29sbGFwc2VBbGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5wdXQgUHJvcGVydHkgZsO8ciB0ZW1wbGF0ZSBkZXMgVHJlZVZpZXcuIFR5cGU6IFRlbXBsYXRlUmVmPGFueT4uXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGllIERpcmVjdGl2ZSBlcmjDpGx0IGRpZSBhY3Rpb25zIGbDvHIgZGFzIFRyZWVWaWV3XHJcbiAgICovXHJcbiAgQENvbnRlbnRDaGlsZCgnYWN0aW9ucycsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHVibGljIHNldCB0cmVldmlld1RlbXBsYXRlKHY6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIHRoaXMudGVtcGxhdGUgPSB2O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0dGVyIGbDvHIgZGFzIFRyZWVWaWV3IFRlbXBsYXRlXHJcbiAgICovXHJcbiAgcHVibGljIGdldCB0cmVldmlld1RlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnB1dCBwcm9wZXJ0eSBlcmjDpGx0IEljb24gZsO8ciBkYXMgVGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIGZpbGVpY29udGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHRlciBwcm9wZXJ0eS4gRGVmZmluaWVydCBkYXMgRmlsZUljb24gZsO8ciBkYXMgVHJlZVZpZXdcclxuICAgKi9cclxuICBAQ29udGVudENoaWxkKCd0cmVlZmlsZWljb24nLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHB1YmxpYyBzZXQgdHJlZWZpbGVpY29uKHY6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIHRoaXMuZmlsZWljb250ZW1wbGF0ZSA9IHY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgcHJvcGVydHkuIEVyZ2lidCBkYXMgRmlsZUljb24gZsO8ciBkYXMgVHJlZVZpZXdcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IHRyZWVmaWxlaWNvbigpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmZpbGVpY29udGVtcGxhdGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnB1dCBwcm9wZXJ0eSBmw7xyIGRlbiBOYW1lbiBkZXMgVHJlZVZpZXcuIFR5cGUgc3RyaW5nLiBEZWZhdWx0IHZhbHVlOiBcIlwiXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBuYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogQSBmbGFnIGluZGljYXRpbmcgZGF0YSBpcyBmbGF0dGVuIGluIGFycmF5IGFuZCBwcmVwYXJlIGlzIHJlcXVpcmVkLihEZWZhdWx0XHJcbiAgICogaXMgZmFsc2UpLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHByZXBhcmVEYXRhID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEF0dHJpYnV0ZSBmb3IgVGV4dCBpbiBUcmVlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGV4dEF0dHIgPSAnZGF0YSc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE5hbWUgb2YgSUQgcHJvcGVydHkgaW4gaW5wdXQgZGF0YS5cclxuICAgKi9cclxuICBASW5wdXQoKSBpZEF0dHIgPSAnaWQnO1xyXG5cclxuICAvKipcclxuICAgKiBOYW1lIG9mIHBhcmVudCBwcm9wZXJ0eSBpbiBpbnB1dCBkYXRhLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhcmVudEF0dHIgPSAnUEFSRU5UX0lEJztcclxuXHJcbiAgLyoqXHJcbiAgICogTmFtZSBvZiBjaGlsZHJlbiBsaXN0IHByb3BlcnR5IGluIGlucHV0IGRhdGEuXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2hpbGRyZW5BdHRyID0gJ2NoaWxkcmVuJztcclxuXHJcbiAgLyoqXHJcbiAgICogVGl0bGUgZGVzIFRyZWV2aWV3XHJcbiAgICovXHJcbiAgQElucHV0KCkgdGl0bGU7XHJcblxyXG4gIC8vIEBJbnB1dChcInRpdGxlQWN0aW9uXCIpIF90aXRsZUFjdGlvbjogc3RyaW5nXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbGxhcHNlIG9yIGV4cGFuZCBhbGwgcGFyZW50IG5vZGVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGNvbGxhcHNlYWxsKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9jb2xsYXBzZUFsbCA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMubm9kZXMgJiYgdGhpcy5ub2Rlcy5sZW5ndGggJiYgdGhpcy5ub2Rlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VBbGxOb2RlKHRoaXMuX2NvbGxhcHNlQWxsKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLl9yZWN1cnNpdmVFZGl0KFxyXG4gICAgLy8gICB0aGlzLm5vZGVzLCB0aGlzLmNoaWxkcmVuQXR0ciwgdGhpcy5jb2xsYXBzZUF0dHIsIHRoaXMuX2NvbGxhcHNlQWxsKTtcclxuXHJcbiAgICAvLyB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlciBmw7xyIGRhcyBjb2xsYXBzZSBwcm9wZXJ0eS4gRXJnaWJ0IGJvb2xlYW4gV2VydCwgb2IgZGllIEl0ZW1zIGNvbGxhcHNlZC9leHBhbmQgc2luZC5cclxuICAgKi9cclxuICBnZXQgY29sbGFwc2VhbGwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sbGFwc2VBbGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3Qgb3IgZGVzZWxlY3QgYWxsIG5vZGVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlbGVjdGFsbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2VsZWN0QWxsID0gdmFsdWU7XHJcbiAgICB0aGlzLl9yZWN1cnNpdmVFZGl0KHRoaXMubm9kZXMsIHRoaXMuY2hpbGRyZW5BdHRyLCB0aGlzLnNlbGVjdEF0dHIsIHZhbHVlKTtcclxuICAgIHRoaXMuX3JlY3Vyc2l2ZUVkaXQoXHJcbiAgICAgIHRoaXMubm9kZXMsXHJcbiAgICAgIHRoaXMuY2hpbGRyZW5BdHRyLFxyXG4gICAgICB0aGlzLmluRGV0ZXJtaW5hdGVBdHRyLFxyXG4gICAgICBmYWxzZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIElucHV0IHByb3BlcnR5IC0gc2V0dGVyLiBEZWZmaW5pZXJ0IGRhcyBJRCBkZXMgc2VsZWt0aWVydGVuIEl0ZW0obm9kZSlcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBzZWxlY3RlZGlkKHY6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSB0aGlzLmZpbmROb2RlKHRoaXMubm9kZXMsIHYsIHRoaXMuaWRBdHRyKTtcclxuXHJcbiAgICAvLyBpZiAodGhpcy5zZWxlY3RlZE5vZGUpIHtcclxuICAgIC8vICAgdGhpcy5zZWxlY3RlZElkRW1pdHRlci5lbWl0KHRoaXMuc2VsZWN0ZWROb2RlW3RoaXMuaWRBdHRyXSk7XHJcbiAgICAvLyAgIHRoaXMuc2VsZWN0ZWRUZXh0RW1pdHRlci5lbWl0KHRoaXMuc2VsZWN0ZWROb2RlW3RoaXMudGV4dEF0dHJdKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlci4gRXJnaWJ0IGRhcyBJRCBkZXMgc2VsZWt0aWVydGVuIEl0ZW0obm9kZSlcclxuICAgKi9cclxuICBnZXQgc2VsZWN0ZWRJZCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWROb2RlID8gdGhpcy5zZWxlY3RlZE5vZGVbdGhpcy5pZEF0dHJdIDogbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlcmjDpGx0IGRhcyBzZWxla3RpZXJ0ZSBXZXJ0KG5vZGUpLiBEZWZhdWx0IHZhbHVlOiB1bmRlZmluZWQvbnVsbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3NlbGVjdGVkTm9kZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0dGVyIGbDvHIgZGFzIHNlbGVrdGllcnRlIFdlcnQobm9kZSkuIFdlbm4gYXVmZ2VydWZlbiBkYXMgSUQgdW5kIFRleHRBdHRyIGRlcyBzZWxlY3RlZCBOb2RlIHdpcmQgZW1pdHRlZFxyXG4gICAqL1xyXG4gIHNldCBzZWxlY3RlZE5vZGUodjogYW55KSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZE5vZGUgPSB2O1xyXG5cclxuICAgIGlmICh0aGlzLl9zZWxlY3RlZE5vZGUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZGlkY2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZElkKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZHRleHRjaGFuZ2VkLmVtaXQodlt0aGlzLnRleHRBdHRyXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZsO8ciBkYXMgc2VsZWt0aWVydGUgV2VydChub2RlKS4gRXJnaWJ0IGRhcyBzZWxla3RpZXJ0ZSBXZXJ0KG5vZGUpLlxyXG4gICAqL1xyXG4gIGdldCBzZWxlY3RlZE5vZGUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZE5vZGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPdXRwdXQgRW1pdHRlci4gRW1pdCBkYXMgSUQgZGVzIHNlbGVjdGVkIE5vZGUuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZWN0ZWRpZGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogT3V0cHV0IEVtaXR0ZXIuIEVtaXQgZGFzIFRleHRBdHRyIGRlcyBzZWxlY3RlZCBOb2RlLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGVkdGV4dGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIE91dHB1dCBFbWl0dGVyLiBFbWl0IHdlbm4gZWluIE5vZGUgc2VsZWt0aWVydCB3aXJkLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGVkaXRlbTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQSBsaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCBhZnRlciBBbmd1bGFyIGhhcyBpbml0aWFsaXplZCBhbGwgZGF0YS1ib3VuZCBwcm9wZXJ0aWVzIG9mIGEgZGlyZWN0aXZlLlxyXG4gICAqIERlZmluZSBhbiBuZ09uSW5pdCgpIG1ldGhvZCB0byBoYW5kbGUgYW55IGFkZGl0aW9uYWwgaW5pdGlhbGl6YXRpb24gdGFza3MuXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNvbGxhcHNlQWxsTm9kZSh0aGlzLl9jb2xsYXBzZUFsbCk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJZCkgdGhpcy5vcGVuU2VsZWN0ZWROb2RlKHRoaXMubm9kZXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRnVua3Rpb24gc2V0enQgYWxsZSBwYXJlbnQgaXRlbXMgcmVjdXNpdiB6dW0gc2VsZWN0ZWQgbm9kZVxyXG4gICAqIGF1ZiBjb2xsYXBzZWQgPSBmYWxzZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgb3BlblNlbGVjdGVkTm9kZShkYXRhKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGRhdGFbaV1bdGhpcy5jaGlsZHJlbkF0dHJdLmxlbmd0aCAmJlxyXG4gICAgICAgIGRhdGFbaV1bdGhpcy5pZEF0dHJdICE9IHRoaXMuc2VsZWN0ZWRJZFxyXG4gICAgICApXHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5vcGVuU2VsZWN0ZWROb2RlKGRhdGFbaV1bdGhpcy5jaGlsZHJlbkF0dHJdKTtcclxuICAgICAgaWYgKHJlc3VsdCB8fCBkYXRhW2ldW3RoaXMuaWRBdHRyXSA9PSB0aGlzLnNlbGVjdGVkSWQpIHtcclxuICAgICAgICBkYXRhW2ldW3RoaXMuY29sbGFwc2VBdHRyXSA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaWUgTWV0aG9kZSB2b3JiZXJlaXRldCBkaWUgRGF0ZW4gZsO8ciBkYXMgVHJlZVZpZXcuIERpZSBGdW5rdGlvbiBzb2xsdGUgZ2XDpG5kZXJ0IHdlcmRlbiBhYmjDpG5naWcgdm9uIGRlbSBrb21tZW5kZW4gRGF0ZW4gKHdlbm4gYXJyYXkpXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBMb2FkVHJlZSgpIHtcclxuICAgIC8vaWYgdGhlIHRyZWUgc3RydWN0dXJlIHJlcXVpcmUgYXJyYXkgdGhlIGZ1bmN0aW9uIGJlbG93IHNob3VsZCBiZSBjaGFuZ2VkXHJcbiAgICBjb25zdCBjbG9uZWQgPSB0aGlzLl9kYXRhLm1hcCgoeCkgPT4gT2JqZWN0LmFzc2lnbih7fSwgeCkpO1xyXG5cclxuICAgIC8vIElmIGRhdGEgaXMgZmxhdCwgcHJlcGFyZSBkYXRhIHdpdGggcmVjdXJzaXZlIGZ1bmN0aW9uLlxyXG4gICAgdGhpcy5ub2RlcyA9IHRoaXMucHJlcGFyZURhdGEgPyB0aGlzLl9nZXRQcmVwYXJlZERhdGEoY2xvbmVkKSA6IHRoaXMuX2RhdGE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaWUgTWV0aG9kZSBjb2xsYXBzZS9leHBhbmQgZGVuIHNlbGVjdGllcnRlbiBOb2RlXHJcbiAgICovXHJcbiAgb25Db2xsYXBzZUNsaWNrKG5vZGUpIHtcclxuICAgIGlmIChub2RlW3RoaXMuY2hpbGRyZW5BdHRyXS5sZW5ndGgpIHtcclxuICAgICAgbm9kZVt0aGlzLmNvbGxhcHNlQXR0cl0gPSAhbm9kZVt0aGlzLmNvbGxhcHNlQXR0cl07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaWUgTWV0aG9kZSBzZXQgZGVuIHNlbGVrdGllcnRlbiBOb2RlIHVuZCBlbWl0IGVzLlxyXG4gICAqL1xyXG4gIG9uQ2xpY2sobm9kZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBub2RlO1xyXG4gICAgdGhpcy5zZWxlY3RlZGl0ZW0uZW1pdCh0aGlzLnNlbGVjdGVkTm9kZSk7XHJcbiAgICAvLyB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIHdpcmQgZWluIGV2ZW50IG1pdCBNZWxkdW5nIHp1IFBhcmVudCBlbWl0LWVuLlxyXG4gICAqL1xyXG4gIHNlbmRNc2dUb1BhcmVudChtc2cpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRpdGVtLmVtaXQobXNnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIHdpcmQgYWxsZSBOb2RlcyBjb2xsYXBzZVxyXG4gICAqL1xyXG4gIGNvbGxhcHNlQWxsTm9kZShjb21tYW5kKSB7XHJcbiAgICB0aGlzLm5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgaWYgKG5vZGVbdGhpcy5jaGlsZHJlbkF0dHJdLmxlbmd0aCkge1xyXG4gICAgICAgIGNvbGxhcHNlQWxsSElkZGVuKG5vZGUsIHRoaXMuY29sbGFwc2VBdHRyLCBjb21tYW5kLCB0aGlzLmNoaWxkcmVuQXR0cik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgZnVuY3Rpb24gY29sbGFwc2VBbGxISWRkZW4obm9kZSwgY29sbGFwc2VBdHRyLCBjb21tYW5kLCBjaGlsZHJlbkF0dHIpIHtcclxuICAgICAgbm9kZVtjb2xsYXBzZUF0dHJdID0gY29tbWFuZDtcclxuICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGNoaWxkW2NoaWxkcmVuQXR0cl0ubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb2xsYXBzZUFsbEhJZGRlbihjaGlsZCwgY29sbGFwc2VBdHRyLCBjb21tYW5kLCBjaGlsZHJlbkF0dHIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGdW5rdGlvbiBnaWJ0IG5vZGUgYXVzIGRlciBsaXN0ZSB6dXLDvGNrLCB3ZWxjaGVzIGRhcyBWYWx1ZSBhdWYgZGVtIGdld8O8bnNjaHRlbiBBdHRyaWJ1dCBoYXRcclxuICAgKiBXZW5uIG5vZGUgbmljaHQgZ2VmdW5kZW4gd2lyZCwgd2lyZCBudWxsIHp1csO8Y2sgZ2VnZWJlblxyXG4gICAqIEBwYXJhbSBkYXRhIExpc3RlIGRlciBub2Rlc1xyXG4gICAqIEBwYXJhbSBzZWFyY2hWYWx1ZSBEYXMgZ2VzdWNodGUgdmFsdWVcclxuICAgKiBAcGFyYW0gYXR0ciBEZXIgbmFtZW4gZGVzIEF0dHJpYnV0cyBhdWYgZGVtIGRhcyB2YWx1ZSBnZXN1Y2h0IHdpcmRcclxuICAgKi9cclxuICBwcml2YXRlIGZpbmROb2RlKGRhdGEsIHNlYXJjaFZhbHVlLCBhdHRyKTogYW55IHtcclxuICAgIGxldCByZXN1bHQ6IGFueSA9IG51bGw7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGRhdGFbaV1bYXR0cl0gPT0gc2VhcmNoVmFsdWUpIHJlc3VsdCA9IGRhdGFbaV07XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChkYXRhW2ldW3RoaXMuY2hpbGRyZW5BdHRyXS5sZW5ndGgpIHtcclxuICAgICAgICAgIGxldCByZWN1cnNpdmVSZXN1bHQgPSB0aGlzLmZpbmROb2RlKFxyXG4gICAgICAgICAgICBkYXRhW2ldW3RoaXMuY2hpbGRyZW5BdHRyXSxcclxuICAgICAgICAgICAgc2VhcmNoVmFsdWUsXHJcbiAgICAgICAgICAgIGF0dHJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZiAocmVjdXJzaXZlUmVzdWx0KSByZXN1bHQgPSByZWN1cnNpdmVSZXN1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGllIE1ldGhvZGUgZWRpdGllcnQgKHJlY3Vyc2l2ZSkgYWxsZSBlaW5nZWdlYmVuZSBOb2RlcyBhYmjDpG5naWcgdm9uIGdlZ2ViZW5lbiBBdHRpYnV0ZSB1bmQgVmFsdWUgS3JpdGVyaWVuLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3JlY3Vyc2l2ZUVkaXQobGlzdCwgY2hpbGRyZW5BdHRyLCBhdHRyLCB2YWx1ZSkge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkobGlzdCkpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGxpc3QubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICBsaXN0W2ldW2F0dHJdID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKGxpc3RbaV1bY2hpbGRyZW5BdHRyXS5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuX3JlY3Vyc2l2ZUVkaXQobGlzdFtpXVtjaGlsZHJlbkF0dHJdLCBjaGlsZHJlbkF0dHIsIGF0dHIsIHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIGVyc3RlbGx0IGVpbmUgc3RhbmRhcnRlIFNpY2h0LUxpc3RlIHZvbiBOb2Rlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX2dldFByZXBhcmVkRGF0YShsaXN0KSB7XHJcbiAgICBjb25zdCB0cmVlID0gW10sXHJcbiAgICAgIGxvb2t1cCA9IHt9O1xyXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGxpc3QubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgbG9va3VwW2xpc3RbaV1bdGhpcy5pZEF0dHJdXSA9IGxpc3RbaV07XHJcbiAgICAgIGxpc3RbaV1bdGhpcy5jaGlsZHJlbkF0dHJdID0gW107XHJcbiAgICAgIGxpc3RbaV1bdGhpcy5jb2xsYXBzZUF0dHJdID0gdHJ1ZTtcclxuICAgICAgbGlzdFtpXVt0aGlzLnNlbGVjdEF0dHJdID0gZmFsc2U7XHJcbiAgICAgIGxpc3RbaV1bdGhpcy5pbkRldGVybWluYXRlQXR0cl0gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBsaXN0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgIGlmIChsaXN0W2ldW3RoaXMucGFyZW50QXR0cl0pIHtcclxuICAgICAgICBsb29rdXBbbGlzdFtpXVt0aGlzLnBhcmVudEF0dHJdXVt0aGlzLmNoaWxkcmVuQXR0cl0ucHVzaChsaXN0W2ldKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0cmVlLnB1c2gobGlzdFtpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJlZTtcclxuICB9XHJcbn1cclxuIl19
97
+ */_getPreparedData(list){cov_24ddv5o0pk().f[27]++;const tree=(cov_24ddv5o0pk().s[82]++,[]),lookup=(cov_24ddv5o0pk().s[83]++,{});cov_24ddv5o0pk().s[84]++;for(let i=(cov_24ddv5o0pk().s[85]++,0),len=(cov_24ddv5o0pk().s[86]++,list.length);i<len;i++){cov_24ddv5o0pk().s[87]++;lookup[list[i][this.idAttr]]=list[i];cov_24ddv5o0pk().s[88]++;list[i][this.childrenAttr]=[];cov_24ddv5o0pk().s[89]++;list[i][this.collapseAttr]=true;cov_24ddv5o0pk().s[90]++;list[i][this.selectAttr]=false;cov_24ddv5o0pk().s[91]++;list[i][this.inDeterminateAttr]=false;}cov_24ddv5o0pk().s[92]++;for(let i=(cov_24ddv5o0pk().s[93]++,0),len=(cov_24ddv5o0pk().s[94]++,list.length);i<len;i++){cov_24ddv5o0pk().s[95]++;if(list[i][this.parentAttr]){cov_24ddv5o0pk().b[19][0]++;cov_24ddv5o0pk().s[96]++;lookup[list[i][this.parentAttr]][this.childrenAttr].push(list[i]);}else{cov_24ddv5o0pk().b[19][1]++;cov_24ddv5o0pk().s[97]++;tree.push(list[i]);}}cov_24ddv5o0pk().s[98]++;return tree;}}cov_24ddv5o0pk().s[99]++;SacTreeViewCommon.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacTreeViewCommon,deps:[],target:i0.ɵɵFactoryTarget.Directive});cov_24ddv5o0pk().s[100]++;SacTreeViewCommon.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacTreeViewCommon,inputs:{data:"data",template:"template",fileicontemplate:"fileicontemplate",name:"name",prepareData:"prepareData",textAttr:"textAttr",idAttr:"idAttr",parentAttr:"parentAttr",childrenAttr:"childrenAttr",title:"title",collapseall:"collapseall",selectall:"selectall",selectedid:"selectedid"},outputs:{selectedidchange:"selectedidchange",selectedtextchanged:"selectedtextchanged",selecteditem:"selecteditem"},queries:[{propertyName:"treeviewTemplate",first:true,predicate:["actions"],descendants:true,static:true},{propertyName:"treefileicon",first:true,predicate:["treefileicon"],descendants:true,static:true}],ngImport:i0});cov_24ddv5o0pk().s[101]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacTreeViewCommon,decorators:[{type:Directive}],propDecorators:{data:[{type:Input}],template:[{type:Input}],treeviewTemplate:[{type:ContentChild,args:['actions',{static:true}]}],fileicontemplate:[{type:Input}],treefileicon:[{type:ContentChild,args:['treefileicon',{static:true}]}],name:[{type:Input}],prepareData:[{type:Input}],textAttr:[{type:Input}],idAttr:[{type:Input}],parentAttr:[{type:Input}],childrenAttr:[{type:Input}],title:[{type:Input}],collapseall:[{type:Input}],selectall:[{type:Input}],selectedid:[{type:Input}],selectedidchange:[{type:Output}],selectedtextchanged:[{type:Output}],selecteditem:[{type:Output}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy90cmVldmlldy90cmVldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQzs7QUFFdkI7O0dBRUc7QUFFSCxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBWUU7O1dBRUc7UUFDSSxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBRXpCOztXQUVHO1FBQ0ksaUJBQVksR0FBRyxhQUFhLENBQUM7UUFFcEM7O1dBRUc7UUFDSSxlQUFVLEdBQUcsWUFBWSxDQUFDO1FBRWpDOztXQUVHO1FBQ0ksc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFFN0M7O1dBRUc7UUFDSyxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBb0UxQjs7V0FFRztRQUVILFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbEI7OztXQUdHO1FBQ00sZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFN0I7O1dBRUc7UUFDTSxhQUFRLEdBQUcsTUFBTSxDQUFDO1FBRTNCOztXQUVHO1FBQ00sV0FBTSxHQUFHLElBQUksQ0FBQztRQUV2Qjs7V0FFRztRQUNNLGVBQVUsR0FBRyxXQUFXLENBQUM7UUFFbEM7O1dBRUc7UUFDTSxpQkFBWSxHQUFHLFVBQVUsQ0FBQztRQTJGbkM7O1dBRUc7UUFFSCxxQkFBZ0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU5RDs7V0FFRztRQUVILHdCQUFtQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXZFOztXQUVHO1FBRUgsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQXFKakU7SUFoV0M7O09BRUc7SUFDSCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFL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O2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsS0FBSztnQkF3QkYsU0FBUztzQkFEWixLQUFLO2dCQWdCRixVQUFVO3NCQURiLEtBQUs7Z0JBNkNOLGdCQUFnQjtzQkFEZixNQUFNO2dCQU9QLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFPUCxZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbnRlbnRDaGlsZCxcclxuICBEaXJlY3RpdmUsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogQmFzaXMgS29tcG9uZW50ZSBmw7xyIFNhY1RyZWVWaWV3XHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY1RyZWVWaWV3Q29tbW9uIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKipcclxuICAgKiBEYXMgUHJvcGVydHkgZW50aGllbHQgYm9vbGVhbiBXZXJ0IHVuZCBkZWZmaW5pZXJ0LCBvYiBhbGxlIEl0ZW1zIGNvbGxhcHNlZCBzaW5kLiBEZWZhdWx0IHZhbHVlOiB1bmRlZmluZWQvbnVsbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBfY29sbGFwc2VBbGw6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBib29sZWFuIFdlcnQgdW5kIGRlZmZpbmllcnQsIG9iIGFsbGUgSXRlbXMgc2VsZWN0ZWQgc2luZC4gRGVmYXVsdCB2YWx1ZTogdW5kZWZpbmVkL251bGxcclxuICAgKi9cclxuICBwcml2YXRlIF9zZWxlY3RBbGw6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBhcnJheSBvZiBub2Rlcy4gRGVmYXVsdCB2YWx1ZTogZW1wdHkgYXJyYXkgW10uXHJcbiAgICovXHJcbiAgcHVibGljIG5vZGVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBEYXMgUHJvcGVydHkgZW50aGllbHQgbm9kZSBhdHRyaWJ1dGU6ICdpc0NvbGxhcHNlZCcuIEVzIHdpcmQgYmVudXR6dCBiZWltIHJlbmRlcmluZy4gRsO8ciBFeHBhbmQvQ29sbGFwc2VkIFNpY2h0IGRlcyBOb2RlKFdlcnQpXHJcbiAgICovXHJcbiAgcHVibGljIGNvbGxhcHNlQXR0ciA9ICdpc0NvbGxhcHNlZCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBub2RlIGF0dHJpYnV0ZTogJ2lzU2VsZWN0ZWQnLiBFcyB3aXJkIGJlbnV0enQgYmVpbSBWb3JiZXJlaXR1bmcgZGVzIERhdGEgZGVzIFRyZWVWaWV3XHJcbiAgICovXHJcbiAgcHVibGljIHNlbGVjdEF0dHIgPSAnaXNTZWxlY3RlZCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBub2RlIGF0dHJpYnV0ZTogJ2lzSW5kZXRlcm1pbmF0ZScuIEVzIHdpcmQgYmVudXR6dCBiZWltIFZvcmJlcmVpdHVuZyBkZXMgRGF0YSBkZXMgVHJlZVZpZXdcclxuICAgKi9cclxuICBwdWJsaWMgaW5EZXRlcm1pbmF0ZUF0dHIgPSAnaXNJbmRldGVybWluYXRlJztcclxuXHJcbiAgLyoqXHJcbiAgICogUHJvdmlkZW4gZGF0YSBmb3IgdHJlZS5cclxuICAgKi9cclxuICBwcml2YXRlIF9kYXRhOiBhbnlbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZsO8ciBEYXRhIGRlcyBUcmVlVmlld1xyXG4gICAqL1xyXG4gIGdldCBkYXRhKCk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5wdXQgUHJvcGVydHkgZsO8ciBEYXRhIGRlcyBUcmVlVmlld1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRhdGEodmFsdWU6IGFueVtdKSB7XHJcbiAgICB0aGlzLl9kYXRhID0gdmFsdWU7XHJcbiAgICB0aGlzLm5vZGVzID0gdmFsdWU7XHJcblxyXG4gICAgLy8gdGhpcy5ub2Rlcy5mb3JFYWNoKG5vZGUgPT4gbm9kZVtcInR5cGVJZFwiXSA9IFwiMTNcIilcclxuXHJcbiAgICB0aGlzLkxvYWRUcmVlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX2NvbGxhcHNlQWxsICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jb2xsYXBzZUFsbE5vZGUodGhpcy5fY29sbGFwc2VBbGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5wdXQgUHJvcGVydHkgZsO8ciB0ZW1wbGF0ZSBkZXMgVHJlZVZpZXcuIFR5cGU6IFRlbXBsYXRlUmVmPGFueT4uXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGllIERpcmVjdGl2ZSBlcmjDpGx0IGRpZSBhY3Rpb25zIGbDvHIgZGFzIFRyZWVWaWV3XHJcbiAgICovXHJcbiAgQENvbnRlbnRDaGlsZCgnYWN0aW9ucycsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHVibGljIHNldCB0cmVldmlld1RlbXBsYXRlKHY6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIHRoaXMudGVtcGxhdGUgPSB2O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0dGVyIGbDvHIgZGFzIFRyZWVWaWV3IFRlbXBsYXRlXHJcbiAgICovXHJcbiAgcHVibGljIGdldCB0cmVldmlld1RlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnB1dCBwcm9wZXJ0eSBlcmjDpGx0IEljb24gZsO8ciBkYXMgVGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIGZpbGVpY29udGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHRlciBwcm9wZXJ0eS4gRGVmZmluaWVydCBkYXMgRmlsZUljb24gZsO8ciBkYXMgVHJlZVZpZXdcclxuICAgKi9cclxuICBAQ29udGVudENoaWxkKCd0cmVlZmlsZWljb24nLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHB1YmxpYyBzZXQgdHJlZWZpbGVpY29uKHY6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIHRoaXMuZmlsZWljb250ZW1wbGF0ZSA9IHY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgcHJvcGVydHkuIEVyZ2lidCBkYXMgRmlsZUljb24gZsO8ciBkYXMgVHJlZVZpZXdcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IHRyZWVmaWxlaWNvbigpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmZpbGVpY29udGVtcGxhdGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnB1dCBwcm9wZXJ0eSBmw7xyIGRlbiBOYW1lbiBkZXMgVHJlZVZpZXcuIFR5cGUgc3RyaW5nLiBEZWZhdWx0IHZhbHVlOiBcIlwiXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBuYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogQSBmbGFnIGluZGljYXRpbmcgZGF0YSBpcyBmbGF0dGVuIGluIGFycmF5IGFuZCBwcmVwYXJlIGlzIHJlcXVpcmVkLihEZWZhdWx0XHJcbiAgICogaXMgZmFsc2UpLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHByZXBhcmVEYXRhID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEF0dHJpYnV0ZSBmb3IgVGV4dCBpbiBUcmVlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGV4dEF0dHIgPSAnZGF0YSc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE5hbWUgb2YgSUQgcHJvcGVydHkgaW4gaW5wdXQgZGF0YS5cclxuICAgKi9cclxuICBASW5wdXQoKSBpZEF0dHIgPSAnaWQnO1xyXG5cclxuICAvKipcclxuICAgKiBOYW1lIG9mIHBhcmVudCBwcm9wZXJ0eSBpbiBpbnB1dCBkYXRhLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhcmVudEF0dHIgPSAnUEFSRU5UX0lEJztcclxuXHJcbiAgLyoqXHJcbiAgICogTmFtZSBvZiBjaGlsZHJlbiBsaXN0IHByb3BlcnR5IGluIGlucHV0IGRhdGEuXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2hpbGRyZW5BdHRyID0gJ2NoaWxkcmVuJztcclxuXHJcbiAgLyoqXHJcbiAgICogVGl0bGUgZGVzIFRyZWV2aWV3XHJcbiAgICovXHJcbiAgQElucHV0KCkgdGl0bGU7XHJcblxyXG4gIC8vIEBJbnB1dChcInRpdGxlQWN0aW9uXCIpIF90aXRsZUFjdGlvbjogc3RyaW5nXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbGxhcHNlIG9yIGV4cGFuZCBhbGwgcGFyZW50IG5vZGVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGNvbGxhcHNlYWxsKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9jb2xsYXBzZUFsbCA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMubm9kZXMgJiYgdGhpcy5ub2Rlcy5sZW5ndGggJiYgdGhpcy5ub2Rlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VBbGxOb2RlKHRoaXMuX2NvbGxhcHNlQWxsKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLl9yZWN1cnNpdmVFZGl0KFxyXG4gICAgLy8gICB0aGlzLm5vZGVzLCB0aGlzLmNoaWxkcmVuQXR0ciwgdGhpcy5jb2xsYXBzZUF0dHIsIHRoaXMuX2NvbGxhcHNlQWxsKTtcclxuXHJcbiAgICAvLyB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlciBmw7xyIGRhcyBjb2xsYXBzZSBwcm9wZXJ0eS4gRXJnaWJ0IGJvb2xlYW4gV2VydCwgb2IgZGllIEl0ZW1zIGNvbGxhcHNlZC9leHBhbmQgc2luZC5cclxuICAgKi9cclxuICBnZXQgY29sbGFwc2VhbGwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sbGFwc2VBbGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3Qgb3IgZGVzZWxlY3QgYWxsIG5vZGVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlbGVjdGFsbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2VsZWN0QWxsID0gdmFsdWU7XHJcbiAgICB0aGlzLl9yZWN1cnNpdmVFZGl0KHRoaXMubm9kZXMsIHRoaXMuY2hpbGRyZW5BdHRyLCB0aGlzLnNlbGVjdEF0dHIsIHZhbHVlKTtcclxuICAgIHRoaXMuX3JlY3Vyc2l2ZUVkaXQoXHJcbiAgICAgIHRoaXMubm9kZXMsXHJcbiAgICAgIHRoaXMuY2hpbGRyZW5BdHRyLFxyXG4gICAgICB0aGlzLmluRGV0ZXJtaW5hdGVBdHRyLFxyXG4gICAgICBmYWxzZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIElucHV0IHByb3BlcnR5IC0gc2V0dGVyLiBEZWZmaW5pZXJ0IGRhcyBJRCBkZXMgc2VsZWt0aWVydGVuIEl0ZW0obm9kZSlcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBzZWxlY3RlZGlkKHY6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSB0aGlzLmZpbmROb2RlKHRoaXMubm9kZXMsIHYsIHRoaXMuaWRBdHRyKTtcclxuXHJcbiAgICAvLyBpZiAodGhpcy5zZWxlY3RlZE5vZGUpIHtcclxuICAgIC8vICAgdGhpcy5zZWxlY3RlZElkRW1pdHRlci5lbWl0KHRoaXMuc2VsZWN0ZWROb2RlW3RoaXMuaWRBdHRyXSk7XHJcbiAgICAvLyAgIHRoaXMuc2VsZWN0ZWRUZXh0RW1pdHRlci5lbWl0KHRoaXMuc2VsZWN0ZWROb2RlW3RoaXMudGV4dEF0dHJdKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlci4gRXJnaWJ0IGRhcyBJRCBkZXMgc2VsZWt0aWVydGVuIEl0ZW0obm9kZSlcclxuICAgKi9cclxuICBnZXQgc2VsZWN0ZWRJZCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWROb2RlID8gdGhpcy5zZWxlY3RlZE5vZGVbdGhpcy5pZEF0dHJdIDogbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlcmjDpGx0IGRhcyBzZWxla3RpZXJ0ZSBXZXJ0KG5vZGUpLiBEZWZhdWx0IHZhbHVlOiB1bmRlZmluZWQvbnVsbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3NlbGVjdGVkTm9kZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0dGVyIGbDvHIgZGFzIHNlbGVrdGllcnRlIFdlcnQobm9kZSkuIFdlbm4gYXVmZ2VydWZlbiBkYXMgSUQgdW5kIFRleHRBdHRyIGRlcyBzZWxlY3RlZCBOb2RlIHdpcmQgZW1pdHRlZFxyXG4gICAqL1xyXG4gIHNldCBzZWxlY3RlZE5vZGUodjogYW55KSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZE5vZGUgPSB2O1xyXG5cclxuICAgIGlmICh0aGlzLl9zZWxlY3RlZE5vZGUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZGlkY2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZElkKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZHRleHRjaGFuZ2VkLmVtaXQodlt0aGlzLnRleHRBdHRyXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZsO8ciBkYXMgc2VsZWt0aWVydGUgV2VydChub2RlKS4gRXJnaWJ0IGRhcyBzZWxla3RpZXJ0ZSBXZXJ0KG5vZGUpLlxyXG4gICAqL1xyXG4gIGdldCBzZWxlY3RlZE5vZGUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZE5vZGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPdXRwdXQgRW1pdHRlci4gRW1pdCBkYXMgSUQgZGVzIHNlbGVjdGVkIE5vZGUuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZWN0ZWRpZGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogT3V0cHV0IEVtaXR0ZXIuIEVtaXQgZGFzIFRleHRBdHRyIGRlcyBzZWxlY3RlZCBOb2RlLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGVkdGV4dGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIE91dHB1dCBFbWl0dGVyLiBFbWl0IHdlbm4gZWluIE5vZGUgc2VsZWt0aWVydCB3aXJkLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGVkaXRlbTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQSBsaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCBhZnRlciBBbmd1bGFyIGhhcyBpbml0aWFsaXplZCBhbGwgZGF0YS1ib3VuZCBwcm9wZXJ0aWVzIG9mIGEgZGlyZWN0aXZlLlxyXG4gICAqIERlZmluZSBhbiBuZ09uSW5pdCgpIG1ldGhvZCB0byBoYW5kbGUgYW55IGFkZGl0aW9uYWwgaW5pdGlhbGl6YXRpb24gdGFza3MuXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNvbGxhcHNlQWxsTm9kZSh0aGlzLl9jb2xsYXBzZUFsbCk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJZCkgdGhpcy5vcGVuU2VsZWN0ZWROb2RlKHRoaXMubm9kZXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRnVua3Rpb24gc2V0enQgYWxsZSBwYXJlbnQgaXRlbXMgcmVjdXNpdiB6dW0gc2VsZWN0ZWQgbm9kZVxyXG4gICAqIGF1ZiBjb2xsYXBzZWQgPSBmYWxzZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgb3BlblNlbGVjdGVkTm9kZShkYXRhKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGRhdGFbaV1bdGhpcy5jaGlsZHJlbkF0dHJdLmxlbmd0aCAmJlxyXG4gICAgICAgIGRhdGFbaV1bdGhpcy5pZEF0dHJdICE9IHRoaXMuc2VsZWN0ZWRJZFxyXG4gICAgICApXHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5vcGVuU2VsZWN0ZWROb2RlKGRhdGFbaV1bdGhpcy5jaGlsZHJlbkF0dHJdKTtcclxuICAgICAgaWYgKHJlc3VsdCB8fCBkYXRhW2ldW3RoaXMuaWRBdHRyXSA9PSB0aGlzLnNlbGVjdGVkSWQpIHtcclxuICAgICAgICBkYXRhW2ldW3RoaXMuY29sbGFwc2VBdHRyXSA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaWUgTWV0aG9kZSB2b3JiZXJlaXRldCBkaWUgRGF0ZW4gZsO8ciBkYXMgVHJlZVZpZXcuIERpZSBGdW5rdGlvbiBzb2xsdGUgZ2XDpG5kZXJ0IHdlcmRlbiBhYmjDpG5naWcgdm9uIGRlbSBrb21tZW5kZW4gRGF0ZW4gKHdlbm4gYXJyYXkpXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBMb2FkVHJlZSgpIHtcclxuICAgIC8vaWYgdGhlIHRyZWUgc3RydWN0dXJlIHJlcXVpcmUgYXJyYXkgdGhlIGZ1bmN0aW9uIGJlbG93IHNob3VsZCBiZSBjaGFuZ2VkXHJcbiAgICBjb25zdCBjbG9uZWQgPSB0aGlzLl9kYXRhLm1hcCgoeCkgPT4gT2JqZWN0LmFzc2lnbih7fSwgeCkpO1xyXG5cclxuICAgIC8vIElmIGRhdGEgaXMgZmxhdCwgcHJlcGFyZSBkYXRhIHdpdGggcmVjdXJzaXZlIGZ1bmN0aW9uLlxyXG4gICAgdGhpcy5ub2RlcyA9IHRoaXMucHJlcGFyZURhdGEgPyB0aGlzLl9nZXRQcmVwYXJlZERhdGEoY2xvbmVkKSA6IHRoaXMuX2RhdGE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaWUgTWV0aG9kZSBjb2xsYXBzZS9leHBhbmQgZGVuIHNlbGVjdGllcnRlbiBOb2RlXHJcbiAgICovXHJcbiAgb25Db2xsYXBzZUNsaWNrKG5vZGUpIHtcclxuICAgIGlmIChub2RlW3RoaXMuY2hpbGRyZW5BdHRyXS5sZW5ndGgpIHtcclxuICAgICAgbm9kZVt0aGlzLmNvbGxhcHNlQXR0cl0gPSAhbm9kZVt0aGlzLmNvbGxhcHNlQXR0cl07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaWUgTWV0aG9kZSBzZXQgZGVuIHNlbGVrdGllcnRlbiBOb2RlIHVuZCBlbWl0IGVzLlxyXG4gICAqL1xyXG4gIG9uQ2xpY2sobm9kZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBub2RlO1xyXG4gICAgdGhpcy5zZWxlY3RlZGl0ZW0uZW1pdCh0aGlzLnNlbGVjdGVkTm9kZSk7XHJcbiAgICAvLyB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIHdpcmQgZWluIGV2ZW50IG1pdCBNZWxkdW5nIHp1IFBhcmVudCBlbWl0LWVuLlxyXG4gICAqL1xyXG4gIHNlbmRNc2dUb1BhcmVudChtc2cpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRpdGVtLmVtaXQobXNnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIHdpcmQgYWxsZSBOb2RlcyBjb2xsYXBzZVxyXG4gICAqL1xyXG4gIGNvbGxhcHNlQWxsTm9kZShjb21tYW5kKSB7XHJcbiAgICB0aGlzLm5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgaWYgKG5vZGVbdGhpcy5jaGlsZHJlbkF0dHJdLmxlbmd0aCkge1xyXG4gICAgICAgIGNvbGxhcHNlQWxsSElkZGVuKG5vZGUsIHRoaXMuY29sbGFwc2VBdHRyLCBjb21tYW5kLCB0aGlzLmNoaWxkcmVuQXR0cik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgZnVuY3Rpb24gY29sbGFwc2VBbGxISWRkZW4obm9kZSwgY29sbGFwc2VBdHRyLCBjb21tYW5kLCBjaGlsZHJlbkF0dHIpIHtcclxuICAgICAgbm9kZVtjb2xsYXBzZUF0dHJdID0gY29tbWFuZDtcclxuICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGNoaWxkW2NoaWxkcmVuQXR0cl0ubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb2xsYXBzZUFsbEhJZGRlbihjaGlsZCwgY29sbGFwc2VBdHRyLCBjb21tYW5kLCBjaGlsZHJlbkF0dHIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGdW5rdGlvbiBnaWJ0IG5vZGUgYXVzIGRlciBsaXN0ZSB6dXLDvGNrLCB3ZWxjaGVzIGRhcyBWYWx1ZSBhdWYgZGVtIGdld8O8bnNjaHRlbiBBdHRyaWJ1dCBoYXRcclxuICAgKiBXZW5uIG5vZGUgbmljaHQgZ2VmdW5kZW4gd2lyZCwgd2lyZCBudWxsIHp1csO8Y2sgZ2VnZWJlblxyXG4gICAqIEBwYXJhbSBkYXRhIExpc3RlIGRlciBub2Rlc1xyXG4gICAqIEBwYXJhbSBzZWFyY2hWYWx1ZSBEYXMgZ2VzdWNodGUgdmFsdWVcclxuICAgKiBAcGFyYW0gYXR0ciBEZXIgbmFtZW4gZGVzIEF0dHJpYnV0cyBhdWYgZGVtIGRhcyB2YWx1ZSBnZXN1Y2h0IHdpcmRcclxuICAgKi9cclxuICBwcml2YXRlIGZpbmROb2RlKGRhdGEsIHNlYXJjaFZhbHVlLCBhdHRyKTogYW55IHtcclxuICAgIGxldCByZXN1bHQ6IGFueSA9IG51bGw7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGRhdGFbaV1bYXR0cl0gPT0gc2VhcmNoVmFsdWUpIHJlc3VsdCA9IGRhdGFbaV07XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChkYXRhW2ldW3RoaXMuY2hpbGRyZW5BdHRyXS5sZW5ndGgpIHtcclxuICAgICAgICAgIGxldCByZWN1cnNpdmVSZXN1bHQgPSB0aGlzLmZpbmROb2RlKFxyXG4gICAgICAgICAgICBkYXRhW2ldW3RoaXMuY2hpbGRyZW5BdHRyXSxcclxuICAgICAgICAgICAgc2VhcmNoVmFsdWUsXHJcbiAgICAgICAgICAgIGF0dHJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZiAocmVjdXJzaXZlUmVzdWx0KSByZXN1bHQgPSByZWN1cnNpdmVSZXN1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGllIE1ldGhvZGUgZWRpdGllcnQgKHJlY3Vyc2l2ZSkgYWxsZSBlaW5nZWdlYmVuZSBOb2RlcyBhYmjDpG5naWcgdm9uIGdlZ2ViZW5lbiBBdHRpYnV0ZSB1bmQgVmFsdWUgS3JpdGVyaWVuLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3JlY3Vyc2l2ZUVkaXQobGlzdCwgY2hpbGRyZW5BdHRyLCBhdHRyLCB2YWx1ZSkge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkobGlzdCkpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGxpc3QubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICBsaXN0W2ldW2F0dHJdID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKGxpc3RbaV1bY2hpbGRyZW5BdHRyXS5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuX3JlY3Vyc2l2ZUVkaXQobGlzdFtpXVtjaGlsZHJlbkF0dHJdLCBjaGlsZHJlbkF0dHIsIGF0dHIsIHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIGVyc3RlbGx0IGVpbmUgc3RhbmRhcnRlIFNpY2h0LUxpc3RlIHZvbiBOb2Rlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX2dldFByZXBhcmVkRGF0YShsaXN0KSB7XHJcbiAgICBjb25zdCB0cmVlID0gW10sXHJcbiAgICAgIGxvb2t1cCA9IHt9O1xyXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGxpc3QubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgbG9va3VwW2xpc3RbaV1bdGhpcy5pZEF0dHJdXSA9IGxpc3RbaV07XHJcbiAgICAgIGxpc3RbaV1bdGhpcy5jaGlsZHJlbkF0dHJdID0gW107XHJcbiAgICAgIGxpc3RbaV1bdGhpcy5jb2xsYXBzZUF0dHJdID0gdHJ1ZTtcclxuICAgICAgbGlzdFtpXVt0aGlzLnNlbGVjdEF0dHJdID0gZmFsc2U7XHJcbiAgICAgIGxpc3RbaV1bdGhpcy5pbkRldGVybWluYXRlQXR0cl0gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBsaXN0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgIGlmIChsaXN0W2ldW3RoaXMucGFyZW50QXR0cl0pIHtcclxuICAgICAgICBsb29rdXBbbGlzdFtpXVt0aGlzLnBhcmVudEF0dHJdXVt0aGlzLmNoaWxkcmVuQXR0cl0ucHVzaChsaXN0W2ldKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0cmVlLnB1c2gobGlzdFtpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJlZTtcclxuICB9XHJcbn1cclxuIl19
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMjRkZHY1bzBwayIsImFjdHVhbENvdmVyYWdlIiwiQ29udGVudENoaWxkIiwiRGlyZWN0aXZlIiwiRXZlbnRFbWl0dGVyIiwiSW5wdXQiLCJPdXRwdXQiLCJTYWNUcmVlVmlld0NvbW1vbiIsImNvbnN0cnVjdG9yIiwiZiIsInMiLCJub2RlcyIsImNvbGxhcHNlQXR0ciIsInNlbGVjdEF0dHIiLCJpbkRldGVybWluYXRlQXR0ciIsIl9kYXRhIiwibmFtZSIsInByZXBhcmVEYXRhIiwidGV4dEF0dHIiLCJpZEF0dHIiLCJwYXJlbnRBdHRyIiwiY2hpbGRyZW5BdHRyIiwic2VsZWN0ZWRpZGNoYW5nZSIsInNlbGVjdGVkdGV4dGNoYW5nZWQiLCJzZWxlY3RlZGl0ZW0iLCJkYXRhIiwidmFsdWUiLCJMb2FkVHJlZSIsIl9jb2xsYXBzZUFsbCIsInVuZGVmaW5lZCIsImIiLCJjb2xsYXBzZUFsbE5vZGUiLCJ0cmVldmlld1RlbXBsYXRlIiwidiIsInRlbXBsYXRlIiwidHJlZWZpbGVpY29uIiwiZmlsZWljb250ZW1wbGF0ZSIsImNvbGxhcHNlYWxsIiwibGVuZ3RoIiwic2VsZWN0YWxsIiwiX3NlbGVjdEFsbCIsIl9yZWN1cnNpdmVFZGl0Iiwic2VsZWN0ZWRpZCIsInNlbGVjdGVkTm9kZSIsImZpbmROb2RlIiwic2VsZWN0ZWRJZCIsIl9zZWxlY3RlZE5vZGUiLCJlbWl0IiwibmdPbkluaXQiLCJvcGVuU2VsZWN0ZWROb2RlIiwicmVzdWx0IiwiaSIsImNsb25lZCIsIm1hcCIsIngiLCJPYmplY3QiLCJhc3NpZ24iLCJfZ2V0UHJlcGFyZWREYXRhIiwib25Db2xsYXBzZUNsaWNrIiwibm9kZSIsIm9uQ2xpY2siLCJzZW5kTXNnVG9QYXJlbnQiLCJtc2ciLCJjb21tYW5kIiwiZm9yRWFjaCIsImNvbGxhcHNlQWxsSElkZGVuIiwiY2hpbGRyZW4iLCJjaGlsZCIsInNlYXJjaFZhbHVlIiwiYXR0ciIsInJlY3Vyc2l2ZVJlc3VsdCIsImxpc3QiLCJBcnJheSIsImlzQXJyYXkiLCJsZW4iLCJ0cmVlIiwibG9va3VwIiwicHVzaCIsImRlcHMiLCJ0YXJnZXQiLCJpMCIsIsm1ybVGYWN0b3J5VGFyZ2V0IiwiaW5wdXRzIiwidGl0bGUiLCJvdXRwdXRzIiwicXVlcmllcyIsInByb3BlcnR5TmFtZSIsImZpcnN0IiwicHJlZGljYXRlIiwiZGVzY2VuZGFudHMiLCJzdGF0aWMiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy90cmVldmlldy90cmVldmlldy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbnRlbnRDaGlsZCxcclxuICBEaXJlY3RpdmUsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogQmFzaXMgS29tcG9uZW50ZSBmw7xyIFNhY1RyZWVWaWV3XHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY1RyZWVWaWV3Q29tbW9uIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKipcclxuICAgKiBEYXMgUHJvcGVydHkgZW50aGllbHQgYm9vbGVhbiBXZXJ0IHVuZCBkZWZmaW5pZXJ0LCBvYiBhbGxlIEl0ZW1zIGNvbGxhcHNlZCBzaW5kLiBEZWZhdWx0IHZhbHVlOiB1bmRlZmluZWQvbnVsbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBfY29sbGFwc2VBbGw6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBib29sZWFuIFdlcnQgdW5kIGRlZmZpbmllcnQsIG9iIGFsbGUgSXRlbXMgc2VsZWN0ZWQgc2luZC4gRGVmYXVsdCB2YWx1ZTogdW5kZWZpbmVkL251bGxcclxuICAgKi9cclxuICBwcml2YXRlIF9zZWxlY3RBbGw6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBhcnJheSBvZiBub2Rlcy4gRGVmYXVsdCB2YWx1ZTogZW1wdHkgYXJyYXkgW10uXHJcbiAgICovXHJcbiAgcHVibGljIG5vZGVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBEYXMgUHJvcGVydHkgZW50aGllbHQgbm9kZSBhdHRyaWJ1dGU6ICdpc0NvbGxhcHNlZCcuIEVzIHdpcmQgYmVudXR6dCBiZWltIHJlbmRlcmluZy4gRsO8ciBFeHBhbmQvQ29sbGFwc2VkIFNpY2h0IGRlcyBOb2RlKFdlcnQpXHJcbiAgICovXHJcbiAgcHVibGljIGNvbGxhcHNlQXR0ciA9ICdpc0NvbGxhcHNlZCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBub2RlIGF0dHJpYnV0ZTogJ2lzU2VsZWN0ZWQnLiBFcyB3aXJkIGJlbnV0enQgYmVpbSBWb3JiZXJlaXR1bmcgZGVzIERhdGEgZGVzIFRyZWVWaWV3XHJcbiAgICovXHJcbiAgcHVibGljIHNlbGVjdEF0dHIgPSAnaXNTZWxlY3RlZCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBub2RlIGF0dHJpYnV0ZTogJ2lzSW5kZXRlcm1pbmF0ZScuIEVzIHdpcmQgYmVudXR6dCBiZWltIFZvcmJlcmVpdHVuZyBkZXMgRGF0YSBkZXMgVHJlZVZpZXdcclxuICAgKi9cclxuICBwdWJsaWMgaW5EZXRlcm1pbmF0ZUF0dHIgPSAnaXNJbmRldGVybWluYXRlJztcclxuXHJcbiAgLyoqXHJcbiAgICogUHJvdmlkZW4gZGF0YSBmb3IgdHJlZS5cclxuICAgKi9cclxuICBwcml2YXRlIF9kYXRhOiBhbnlbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZsO8ciBEYXRhIGRlcyBUcmVlVmlld1xyXG4gICAqL1xyXG4gIGdldCBkYXRhKCk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5wdXQgUHJvcGVydHkgZsO8ciBEYXRhIGRlcyBUcmVlVmlld1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRhdGEodmFsdWU6IGFueVtdKSB7XHJcbiAgICB0aGlzLl9kYXRhID0gdmFsdWU7XHJcbiAgICB0aGlzLm5vZGVzID0gdmFsdWU7XHJcblxyXG4gICAgLy8gdGhpcy5ub2Rlcy5mb3JFYWNoKG5vZGUgPT4gbm9kZVtcInR5cGVJZFwiXSA9IFwiMTNcIilcclxuXHJcbiAgICB0aGlzLkxvYWRUcmVlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX2NvbGxhcHNlQWxsICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jb2xsYXBzZUFsbE5vZGUodGhpcy5fY29sbGFwc2VBbGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5wdXQgUHJvcGVydHkgZsO8ciB0ZW1wbGF0ZSBkZXMgVHJlZVZpZXcuIFR5cGU6IFRlbXBsYXRlUmVmPGFueT4uXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGllIERpcmVjdGl2ZSBlcmjDpGx0IGRpZSBhY3Rpb25zIGbDvHIgZGFzIFRyZWVWaWV3XHJcbiAgICovXHJcbiAgQENvbnRlbnRDaGlsZCgnYWN0aW9ucycsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHVibGljIHNldCB0cmVldmlld1RlbXBsYXRlKHY6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIHRoaXMudGVtcGxhdGUgPSB2O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0dGVyIGbDvHIgZGFzIFRyZWVWaWV3IFRlbXBsYXRlXHJcbiAgICovXHJcbiAgcHVibGljIGdldCB0cmVldmlld1RlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnB1dCBwcm9wZXJ0eSBlcmjDpGx0IEljb24gZsO8ciBkYXMgVGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIGZpbGVpY29udGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHRlciBwcm9wZXJ0eS4gRGVmZmluaWVydCBkYXMgRmlsZUljb24gZsO8ciBkYXMgVHJlZVZpZXdcclxuICAgKi9cclxuICBAQ29udGVudENoaWxkKCd0cmVlZmlsZWljb24nLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHB1YmxpYyBzZXQgdHJlZWZpbGVpY29uKHY6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIHRoaXMuZmlsZWljb250ZW1wbGF0ZSA9IHY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgcHJvcGVydHkuIEVyZ2lidCBkYXMgRmlsZUljb24gZsO8ciBkYXMgVHJlZVZpZXdcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IHRyZWVmaWxlaWNvbigpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmZpbGVpY29udGVtcGxhdGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnB1dCBwcm9wZXJ0eSBmw7xyIGRlbiBOYW1lbiBkZXMgVHJlZVZpZXcuIFR5cGUgc3RyaW5nLiBEZWZhdWx0IHZhbHVlOiBcIlwiXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBuYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogQSBmbGFnIGluZGljYXRpbmcgZGF0YSBpcyBmbGF0dGVuIGluIGFycmF5IGFuZCBwcmVwYXJlIGlzIHJlcXVpcmVkLihEZWZhdWx0XHJcbiAgICogaXMgZmFsc2UpLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHByZXBhcmVEYXRhID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEF0dHJpYnV0ZSBmb3IgVGV4dCBpbiBUcmVlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGV4dEF0dHIgPSAnZGF0YSc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE5hbWUgb2YgSUQgcHJvcGVydHkgaW4gaW5wdXQgZGF0YS5cclxuICAgKi9cclxuICBASW5wdXQoKSBpZEF0dHIgPSAnaWQnO1xyXG5cclxuICAvKipcclxuICAgKiBOYW1lIG9mIHBhcmVudCBwcm9wZXJ0eSBpbiBpbnB1dCBkYXRhLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhcmVudEF0dHIgPSAnUEFSRU5UX0lEJztcclxuXHJcbiAgLyoqXHJcbiAgICogTmFtZSBvZiBjaGlsZHJlbiBsaXN0IHByb3BlcnR5IGluIGlucHV0IGRhdGEuXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2hpbGRyZW5BdHRyID0gJ2NoaWxkcmVuJztcclxuXHJcbiAgLyoqXHJcbiAgICogVGl0bGUgZGVzIFRyZWV2aWV3XHJcbiAgICovXHJcbiAgQElucHV0KCkgdGl0bGU7XHJcblxyXG4gIC8vIEBJbnB1dChcInRpdGxlQWN0aW9uXCIpIF90aXRsZUFjdGlvbjogc3RyaW5nXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbGxhcHNlIG9yIGV4cGFuZCBhbGwgcGFyZW50IG5vZGVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGNvbGxhcHNlYWxsKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9jb2xsYXBzZUFsbCA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMubm9kZXMgJiYgdGhpcy5ub2Rlcy5sZW5ndGggJiYgdGhpcy5ub2Rlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VBbGxOb2RlKHRoaXMuX2NvbGxhcHNlQWxsKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLl9yZWN1cnNpdmVFZGl0KFxyXG4gICAgLy8gICB0aGlzLm5vZGVzLCB0aGlzLmNoaWxkcmVuQXR0ciwgdGhpcy5jb2xsYXBzZUF0dHIsIHRoaXMuX2NvbGxhcHNlQWxsKTtcclxuXHJcbiAgICAvLyB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlciBmw7xyIGRhcyBjb2xsYXBzZSBwcm9wZXJ0eS4gRXJnaWJ0IGJvb2xlYW4gV2VydCwgb2IgZGllIEl0ZW1zIGNvbGxhcHNlZC9leHBhbmQgc2luZC5cclxuICAgKi9cclxuICBnZXQgY29sbGFwc2VhbGwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sbGFwc2VBbGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3Qgb3IgZGVzZWxlY3QgYWxsIG5vZGVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlbGVjdGFsbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2VsZWN0QWxsID0gdmFsdWU7XHJcbiAgICB0aGlzLl9yZWN1cnNpdmVFZGl0KHRoaXMubm9kZXMsIHRoaXMuY2hpbGRyZW5BdHRyLCB0aGlzLnNlbGVjdEF0dHIsIHZhbHVlKTtcclxuICAgIHRoaXMuX3JlY3Vyc2l2ZUVkaXQoXHJcbiAgICAgIHRoaXMubm9kZXMsXHJcbiAgICAgIHRoaXMuY2hpbGRyZW5BdHRyLFxyXG4gICAgICB0aGlzLmluRGV0ZXJtaW5hdGVBdHRyLFxyXG4gICAgICBmYWxzZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIElucHV0IHByb3BlcnR5IC0gc2V0dGVyLiBEZWZmaW5pZXJ0IGRhcyBJRCBkZXMgc2VsZWt0aWVydGVuIEl0ZW0obm9kZSlcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBzZWxlY3RlZGlkKHY6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSB0aGlzLmZpbmROb2RlKHRoaXMubm9kZXMsIHYsIHRoaXMuaWRBdHRyKTtcclxuXHJcbiAgICAvLyBpZiAodGhpcy5zZWxlY3RlZE5vZGUpIHtcclxuICAgIC8vICAgdGhpcy5zZWxlY3RlZElkRW1pdHRlci5lbWl0KHRoaXMuc2VsZWN0ZWROb2RlW3RoaXMuaWRBdHRyXSk7XHJcbiAgICAvLyAgIHRoaXMuc2VsZWN0ZWRUZXh0RW1pdHRlci5lbWl0KHRoaXMuc2VsZWN0ZWROb2RlW3RoaXMudGV4dEF0dHJdKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlci4gRXJnaWJ0IGRhcyBJRCBkZXMgc2VsZWt0aWVydGVuIEl0ZW0obm9kZSlcclxuICAgKi9cclxuICBnZXQgc2VsZWN0ZWRJZCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWROb2RlID8gdGhpcy5zZWxlY3RlZE5vZGVbdGhpcy5pZEF0dHJdIDogbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlcmjDpGx0IGRhcyBzZWxla3RpZXJ0ZSBXZXJ0KG5vZGUpLiBEZWZhdWx0IHZhbHVlOiB1bmRlZmluZWQvbnVsbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3NlbGVjdGVkTm9kZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0dGVyIGbDvHIgZGFzIHNlbGVrdGllcnRlIFdlcnQobm9kZSkuIFdlbm4gYXVmZ2VydWZlbiBkYXMgSUQgdW5kIFRleHRBdHRyIGRlcyBzZWxlY3RlZCBOb2RlIHdpcmQgZW1pdHRlZFxyXG4gICAqL1xyXG4gIHNldCBzZWxlY3RlZE5vZGUodjogYW55KSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZE5vZGUgPSB2O1xyXG5cclxuICAgIGlmICh0aGlzLl9zZWxlY3RlZE5vZGUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZGlkY2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZElkKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZHRleHRjaGFuZ2VkLmVtaXQodlt0aGlzLnRleHRBdHRyXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZsO8ciBkYXMgc2VsZWt0aWVydGUgV2VydChub2RlKS4gRXJnaWJ0IGRhcyBzZWxla3RpZXJ0ZSBXZXJ0KG5vZGUpLlxyXG4gICAqL1xyXG4gIGdldCBzZWxlY3RlZE5vZGUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZE5vZGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPdXRwdXQgRW1pdHRlci4gRW1pdCBkYXMgSUQgZGVzIHNlbGVjdGVkIE5vZGUuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZWN0ZWRpZGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogT3V0cHV0IEVtaXR0ZXIuIEVtaXQgZGFzIFRleHRBdHRyIGRlcyBzZWxlY3RlZCBOb2RlLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGVkdGV4dGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIE91dHB1dCBFbWl0dGVyLiBFbWl0IHdlbm4gZWluIE5vZGUgc2VsZWt0aWVydCB3aXJkLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGVkaXRlbTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQSBsaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCBhZnRlciBBbmd1bGFyIGhhcyBpbml0aWFsaXplZCBhbGwgZGF0YS1ib3VuZCBwcm9wZXJ0aWVzIG9mIGEgZGlyZWN0aXZlLlxyXG4gICAqIERlZmluZSBhbiBuZ09uSW5pdCgpIG1ldGhvZCB0byBoYW5kbGUgYW55IGFkZGl0aW9uYWwgaW5pdGlhbGl6YXRpb24gdGFza3MuXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNvbGxhcHNlQWxsTm9kZSh0aGlzLl9jb2xsYXBzZUFsbCk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJZCkgdGhpcy5vcGVuU2VsZWN0ZWROb2RlKHRoaXMubm9kZXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRnVua3Rpb24gc2V0enQgYWxsZSBwYXJlbnQgaXRlbXMgcmVjdXNpdiB6dW0gc2VsZWN0ZWQgbm9kZVxyXG4gICAqIGF1ZiBjb2xsYXBzZWQgPSBmYWxzZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgb3BlblNlbGVjdGVkTm9kZShkYXRhKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGRhdGFbaV1bdGhpcy5jaGlsZHJlbkF0dHJdLmxlbmd0aCAmJlxyXG4gICAgICAgIGRhdGFbaV1bdGhpcy5pZEF0dHJdICE9IHRoaXMuc2VsZWN0ZWRJZFxyXG4gICAgICApXHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5vcGVuU2VsZWN0ZWROb2RlKGRhdGFbaV1bdGhpcy5jaGlsZHJlbkF0dHJdKTtcclxuICAgICAgaWYgKHJlc3VsdCB8fCBkYXRhW2ldW3RoaXMuaWRBdHRyXSA9PSB0aGlzLnNlbGVjdGVkSWQpIHtcclxuICAgICAgICBkYXRhW2ldW3RoaXMuY29sbGFwc2VBdHRyXSA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaWUgTWV0aG9kZSB2b3JiZXJlaXRldCBkaWUgRGF0ZW4gZsO8ciBkYXMgVHJlZVZpZXcuIERpZSBGdW5rdGlvbiBzb2xsdGUgZ2XDpG5kZXJ0IHdlcmRlbiBhYmjDpG5naWcgdm9uIGRlbSBrb21tZW5kZW4gRGF0ZW4gKHdlbm4gYXJyYXkpXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBMb2FkVHJlZSgpIHtcclxuICAgIC8vaWYgdGhlIHRyZWUgc3RydWN0dXJlIHJlcXVpcmUgYXJyYXkgdGhlIGZ1bmN0aW9uIGJlbG93IHNob3VsZCBiZSBjaGFuZ2VkXHJcbiAgICBjb25zdCBjbG9uZWQgPSB0aGlzLl9kYXRhLm1hcCgoeCkgPT4gT2JqZWN0LmFzc2lnbih7fSwgeCkpO1xyXG5cclxuICAgIC8vIElmIGRhdGEgaXMgZmxhdCwgcHJlcGFyZSBkYXRhIHdpdGggcmVjdXJzaXZlIGZ1bmN0aW9uLlxyXG4gICAgdGhpcy5ub2RlcyA9IHRoaXMucHJlcGFyZURhdGEgPyB0aGlzLl9nZXRQcmVwYXJlZERhdGEoY2xvbmVkKSA6IHRoaXMuX2RhdGE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaWUgTWV0aG9kZSBjb2xsYXBzZS9leHBhbmQgZGVuIHNlbGVjdGllcnRlbiBOb2RlXHJcbiAgICovXHJcbiAgb25Db2xsYXBzZUNsaWNrKG5vZGUpIHtcclxuICAgIGlmIChub2RlW3RoaXMuY2hpbGRyZW5BdHRyXS5sZW5ndGgpIHtcclxuICAgICAgbm9kZVt0aGlzLmNvbGxhcHNlQXR0cl0gPSAhbm9kZVt0aGlzLmNvbGxhcHNlQXR0cl07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaWUgTWV0aG9kZSBzZXQgZGVuIHNlbGVrdGllcnRlbiBOb2RlIHVuZCBlbWl0IGVzLlxyXG4gICAqL1xyXG4gIG9uQ2xpY2sobm9kZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBub2RlO1xyXG4gICAgdGhpcy5zZWxlY3RlZGl0ZW0uZW1pdCh0aGlzLnNlbGVjdGVkTm9kZSk7XHJcbiAgICAvLyB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIHdpcmQgZWluIGV2ZW50IG1pdCBNZWxkdW5nIHp1IFBhcmVudCBlbWl0LWVuLlxyXG4gICAqL1xyXG4gIHNlbmRNc2dUb1BhcmVudChtc2cpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRpdGVtLmVtaXQobXNnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIHdpcmQgYWxsZSBOb2RlcyBjb2xsYXBzZVxyXG4gICAqL1xyXG4gIGNvbGxhcHNlQWxsTm9kZShjb21tYW5kKSB7XHJcbiAgICB0aGlzLm5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgaWYgKG5vZGVbdGhpcy5jaGlsZHJlbkF0dHJdLmxlbmd0aCkge1xyXG4gICAgICAgIGNvbGxhcHNlQWxsSElkZGVuKG5vZGUsIHRoaXMuY29sbGFwc2VBdHRyLCBjb21tYW5kLCB0aGlzLmNoaWxkcmVuQXR0cik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgZnVuY3Rpb24gY29sbGFwc2VBbGxISWRkZW4obm9kZSwgY29sbGFwc2VBdHRyLCBjb21tYW5kLCBjaGlsZHJlbkF0dHIpIHtcclxuICAgICAgbm9kZVtjb2xsYXBzZUF0dHJdID0gY29tbWFuZDtcclxuICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGNoaWxkW2NoaWxkcmVuQXR0cl0ubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb2xsYXBzZUFsbEhJZGRlbihjaGlsZCwgY29sbGFwc2VBdHRyLCBjb21tYW5kLCBjaGlsZHJlbkF0dHIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGdW5rdGlvbiBnaWJ0IG5vZGUgYXVzIGRlciBsaXN0ZSB6dXLDvGNrLCB3ZWxjaGVzIGRhcyBWYWx1ZSBhdWYgZGVtIGdld8O8bnNjaHRlbiBBdHRyaWJ1dCBoYXRcclxuICAgKiBXZW5uIG5vZGUgbmljaHQgZ2VmdW5kZW4gd2lyZCwgd2lyZCBudWxsIHp1csO8Y2sgZ2VnZWJlblxyXG4gICAqIEBwYXJhbSBkYXRhIExpc3RlIGRlciBub2Rlc1xyXG4gICAqIEBwYXJhbSBzZWFyY2hWYWx1ZSBEYXMgZ2VzdWNodGUgdmFsdWVcclxuICAgKiBAcGFyYW0gYXR0ciBEZXIgbmFtZW4gZGVzIEF0dHJpYnV0cyBhdWYgZGVtIGRhcyB2YWx1ZSBnZXN1Y2h0IHdpcmRcclxuICAgKi9cclxuICBwcml2YXRlIGZpbmROb2RlKGRhdGEsIHNlYXJjaFZhbHVlLCBhdHRyKTogYW55IHtcclxuICAgIGxldCByZXN1bHQ6IGFueSA9IG51bGw7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGRhdGFbaV1bYXR0cl0gPT0gc2VhcmNoVmFsdWUpIHJlc3VsdCA9IGRhdGFbaV07XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChkYXRhW2ldW3RoaXMuY2hpbGRyZW5BdHRyXS5sZW5ndGgpIHtcclxuICAgICAgICAgIGxldCByZWN1cnNpdmVSZXN1bHQgPSB0aGlzLmZpbmROb2RlKFxyXG4gICAgICAgICAgICBkYXRhW2ldW3RoaXMuY2hpbGRyZW5BdHRyXSxcclxuICAgICAgICAgICAgc2VhcmNoVmFsdWUsXHJcbiAgICAgICAgICAgIGF0dHJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZiAocmVjdXJzaXZlUmVzdWx0KSByZXN1bHQgPSByZWN1cnNpdmVSZXN1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGllIE1ldGhvZGUgZWRpdGllcnQgKHJlY3Vyc2l2ZSkgYWxsZSBlaW5nZWdlYmVuZSBOb2RlcyBhYmjDpG5naWcgdm9uIGdlZ2ViZW5lbiBBdHRpYnV0ZSB1bmQgVmFsdWUgS3JpdGVyaWVuLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3JlY3Vyc2l2ZUVkaXQobGlzdCwgY2hpbGRyZW5BdHRyLCBhdHRyLCB2YWx1ZSkge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkobGlzdCkpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGxpc3QubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICBsaXN0W2ldW2F0dHJdID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKGxpc3RbaV1bY2hpbGRyZW5BdHRyXS5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuX3JlY3Vyc2l2ZUVkaXQobGlzdFtpXVtjaGlsZHJlbkF0dHJdLCBjaGlsZHJlbkF0dHIsIGF0dHIsIHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIGVyc3RlbGx0IGVpbmUgc3RhbmRhcnRlIFNpY2h0LUxpc3RlIHZvbiBOb2Rlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX2dldFByZXBhcmVkRGF0YShsaXN0KSB7XHJcbiAgICBjb25zdCB0cmVlID0gW10sXHJcbiAgICAgIGxvb2t1cCA9IHt9O1xyXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGxpc3QubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgbG9va3VwW2xpc3RbaV1bdGhpcy5pZEF0dHJdXSA9IGxpc3RbaV07XHJcbiAgICAgIGxpc3RbaV1bdGhpcy5jaGlsZHJlbkF0dHJdID0gW107XHJcbiAgICAgIGxpc3RbaV1bdGhpcy5jb2xsYXBzZUF0dHJdID0gdHJ1ZTtcclxuICAgICAgbGlzdFtpXVt0aGlzLnNlbGVjdEF0dHJdID0gZmFsc2U7XHJcbiAgICAgIGxpc3RbaV1bdGhpcy5pbkRldGVybWluYXRlQXR0cl0gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBsaXN0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgIGlmIChsaXN0W2ldW3RoaXMucGFyZW50QXR0cl0pIHtcclxuICAgICAgICBsb29rdXBbbGlzdFtpXVt0aGlzLnBhcmVudEF0dHJdXVt0aGlzLmNoaWxkcmVuQXR0cl0ucHVzaChsaXN0W2ldKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0cmVlLnB1c2gobGlzdFtpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJlZTtcclxuICB9XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoidXRrQ0FtQ0U7QUFBQUEsY0FBQSxTQUFBQSxDQUFBLFNBQUFDLGNBQUEsV0FBQUEsY0FBQSxFQUFBRCxjQUFBLEdBbkNGLE9BQ0VFLFlBQVksQ0FDWkMsU0FBUyxDQUNUQyxZQUFZLENBQ1pDLEtBQUssQ0FFTEMsTUFBTSxLQUVELGVBQWUsQyxpQ0FFdEI7O0dBSUEsTUFBTSxNQUFPLENBQUFDLGlCQUFpQixDQUQ5QkMsWUFBQSxFQUFBUixjQUFBLEdBQUFTLENBQUEsTUFBQVQsY0FBQSxHQUFBVSxDQUFBLE1BWUU7O1dBR08sS0FBQUMsS0FBSyxDQUFVLEVBQUUsQ0FFeEI7O1dBQUFYLGNBQUEsR0FBQVUsQ0FBQSxNQUdPLEtBQUFFLFlBQVksQ0FBRyxhQUFhLENBRW5DOztXQUFBWixjQUFBLEdBQUFVLENBQUEsTUFHTyxLQUFBRyxVQUFVLENBQUcsWUFBWSxDQUVoQzs7V0FBQWIsY0FBQSxHQUFBVSxDQUFBLE1BR08sS0FBQUksaUJBQWlCLENBQUcsaUJBQWlCLENBRTVDOztXQUFBZCxjQUFBLEdBQUFVLENBQUEsTUFHUSxLQUFBSyxLQUFLLENBQVUsRUFBRSxDQW9FekI7O1dBQUFmLGNBQUEsR0FBQVUsQ0FBQSxNQUlBLEtBQUFNLElBQUksQ0FBVyxFQUFFLENBRWpCOzs7V0FBQWhCLGNBQUEsR0FBQVUsQ0FBQSxNQUlTLEtBQUFPLFdBQVcsQ0FBRyxLQUFLLENBRTVCOztXQUFBakIsY0FBQSxHQUFBVSxDQUFBLE1BR1MsS0FBQVEsUUFBUSxDQUFHLE1BQU0sQ0FFMUI7O1dBQUFsQixjQUFBLEdBQUFVLENBQUEsTUFHUyxLQUFBUyxNQUFNLENBQUcsSUFBSSxDQUV0Qjs7V0FBQW5CLGNBQUEsR0FBQVUsQ0FBQSxNQUdTLEtBQUFVLFVBQVUsQ0FBRyxXQUFXLENBRWpDOztXQUFBcEIsY0FBQSxHQUFBVSxDQUFBLE9BR1MsS0FBQVcs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