@simpleangularcontrols/sac-common 10.0.0-rc.1

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 (514) hide show
  1. package/README.md +16 -0
  2. package/bundles/simpleangularcontrols-sac-common.umd.js +12054 -0
  3. package/bundles/simpleangularcontrols-sac-common.umd.js.map +1 -0
  4. package/bundles/simpleangularcontrols-sac-common.umd.min.js +2 -0
  5. package/bundles/simpleangularcontrols-sac-common.umd.min.js.map +1 -0
  6. package/common/basedatetimecontrol.d.ts +83 -0
  7. package/common/basedatetimecontrol.ngfactory.d.ts +1 -0
  8. package/common/baseinputcontrol.d.ts +42 -0
  9. package/common/baseinputcontrol.ngfactory.d.ts +1 -0
  10. package/common/baselistcontrol.d.ts +43 -0
  11. package/common/baselistcontrol.ngfactory.d.ts +1 -0
  12. package/common/basemodelcontrol.d.ts +252 -0
  13. package/common/basemodelcontrol.ngfactory.d.ts +1 -0
  14. package/common/baseselectcontrol.d.ts +14 -0
  15. package/common/baseselectcontrol.ngfactory.d.ts +1 -0
  16. package/common/baseuploadcontrol.d.ts +284 -0
  17. package/common/baseuploadcontrol.ngfactory.d.ts +1 -0
  18. package/components/browser/browser.d.ts +267 -0
  19. package/components/browser/browser.ngfactory.d.ts +1 -0
  20. package/components/browser/models/browserfile.d.ts +17 -0
  21. package/components/browser/models/browserfile.ngfactory.d.ts +1 -0
  22. package/components/browser/models/browserfiledeleterequest.d.ts +18 -0
  23. package/components/browser/models/browserfiledeleterequest.ngfactory.d.ts +1 -0
  24. package/components/browser/models/browserfilerenamerequest.d.ts +22 -0
  25. package/components/browser/models/browserfilerenamerequest.ngfactory.d.ts +1 -0
  26. package/components/browser/models/browserfileresponse.d.ts +10 -0
  27. package/components/browser/models/browserfileresponse.ngfactory.d.ts +1 -0
  28. package/components/browser/models/browserfilesaverequest.d.ts +22 -0
  29. package/components/browser/models/browserfilesaverequest.ngfactory.d.ts +1 -0
  30. package/components/browser/models/browsernode.d.ts +34 -0
  31. package/components/browser/models/browsernode.ngfactory.d.ts +1 -0
  32. package/components/browser/models/browsernodedeleterequest.d.ts +14 -0
  33. package/components/browser/models/browsernodedeleterequest.ngfactory.d.ts +1 -0
  34. package/components/browser/models/browsernodenewrequest.d.ts +18 -0
  35. package/components/browser/models/browsernodenewrequest.ngfactory.d.ts +1 -0
  36. package/components/browser/models/browsernoderenamerequest.d.ts +18 -0
  37. package/components/browser/models/browsernoderenamerequest.ngfactory.d.ts +1 -0
  38. package/components/browser/models/browsernoderequest.d.ts +18 -0
  39. package/components/browser/models/browsernoderequest.ngfactory.d.ts +1 -0
  40. package/components/browser/models/browsernoderesponse.d.ts +10 -0
  41. package/components/browser/models/browsernoderesponse.ngfactory.d.ts +1 -0
  42. package/controls/buttons/button.d.ts +70 -0
  43. package/controls/buttons/button.ngfactory.d.ts +1 -0
  44. package/controls/checkbox/checkbox.d.ts +23 -0
  45. package/controls/checkbox/checkbox.ngfactory.d.ts +1 -0
  46. package/controls/checkbox/radiobutton.d.ts +79 -0
  47. package/controls/checkbox/radiobutton.ngfactory.d.ts +1 -0
  48. package/controls/checkbox/radiobuttons.d.ts +60 -0
  49. package/controls/checkbox/radiobuttons.ngfactory.d.ts +1 -0
  50. package/controls/confirm/confirm.button.d.ts +25 -0
  51. package/controls/confirm/confirm.button.ngfactory.d.ts +1 -0
  52. package/controls/confirm/confirm.d.ts +49 -0
  53. package/controls/confirm/confirm.ngfactory.d.ts +1 -0
  54. package/controls/confirm/confirm.service.d.ts +63 -0
  55. package/controls/confirm/confirm.service.ngfactory.d.ts +1 -0
  56. package/controls/contextmenu/contextmenu.d.ts +113 -0
  57. package/controls/contextmenu/contextmenu.ngfactory.d.ts +1 -0
  58. package/controls/contextmenu/contextmenuanchor.d.ts +15 -0
  59. package/controls/contextmenu/contextmenuanchor.ngfactory.d.ts +1 -0
  60. package/controls/contextmenu/contextmenucontainer.d.ts +15 -0
  61. package/controls/contextmenu/contextmenucontainer.ngfactory.d.ts +1 -0
  62. package/controls/contextmenu/contextmenuitem.d.ts +5 -0
  63. package/controls/contextmenu/contextmenuitem.ngfactory.d.ts +1 -0
  64. package/controls/contextmenu/contextmenuitembutton.d.ts +66 -0
  65. package/controls/contextmenu/contextmenuitembutton.ngfactory.d.ts +1 -0
  66. package/controls/datetime/date.d.ts +120 -0
  67. package/controls/datetime/date.ngfactory.d.ts +1 -0
  68. package/controls/datetime/dateselector.d.ts +161 -0
  69. package/controls/datetime/dateselector.ngfactory.d.ts +1 -0
  70. package/controls/datetime/datetime.d.ts +135 -0
  71. package/controls/datetime/datetime.ngfactory.d.ts +1 -0
  72. package/controls/datetime/time.d.ts +115 -0
  73. package/controls/datetime/time.ngfactory.d.ts +1 -0
  74. package/controls/dialog/dialog.d.ts +105 -0
  75. package/controls/dialog/dialog.ngfactory.d.ts +1 -0
  76. package/controls/form/form.d.ts +47 -0
  77. package/controls/form/form.ngfactory.d.ts +1 -0
  78. package/controls/grid/grid.d.ts +125 -0
  79. package/controls/grid/grid.ngfactory.d.ts +1 -0
  80. package/controls/grid/gridbutton.d.ts +33 -0
  81. package/controls/grid/gridbutton.ngfactory.d.ts +1 -0
  82. package/controls/grid/gridcolumn.d.ts +28 -0
  83. package/controls/grid/gridcolumn.ngfactory.d.ts +1 -0
  84. package/controls/grid/gridcolumnaction.d.ts +15 -0
  85. package/controls/grid/gridcolumnaction.ngfactory.d.ts +1 -0
  86. package/controls/grid/gridcolumnbase.d.ts +86 -0
  87. package/controls/grid/gridcolumnbase.ngfactory.d.ts +1 -0
  88. package/controls/grid/gridimage.d.ts +9 -0
  89. package/controls/grid/gridimage.ngfactory.d.ts +1 -0
  90. package/controls/grid/model.d.ts +83 -0
  91. package/controls/grid/model.ngfactory.d.ts +1 -0
  92. package/controls/grid/paging.d.ts +147 -0
  93. package/controls/grid/paging.ngfactory.d.ts +1 -0
  94. package/controls/input/input.d.ts +35 -0
  95. package/controls/input/input.ngfactory.d.ts +1 -0
  96. package/controls/input/inputarea.d.ts +26 -0
  97. package/controls/input/inputarea.ngfactory.d.ts +1 -0
  98. package/controls/input/inputcurrency.d.ts +11 -0
  99. package/controls/input/inputcurrency.ngfactory.d.ts +1 -0
  100. package/controls/input/inputdecimal.d.ts +59 -0
  101. package/controls/input/inputdecimal.ngfactory.d.ts +1 -0
  102. package/controls/input/inputemail.d.ts +19 -0
  103. package/controls/input/inputemail.ngfactory.d.ts +1 -0
  104. package/controls/input/inputinteger.d.ts +59 -0
  105. package/controls/input/inputinteger.ngfactory.d.ts +1 -0
  106. package/controls/input/inputpassword.d.ts +23 -0
  107. package/controls/input/inputpassword.ngfactory.d.ts +1 -0
  108. package/controls/input/inputsearch.d.ts +23 -0
  109. package/controls/input/inputsearch.ngfactory.d.ts +1 -0
  110. package/controls/layout/formlayout.d.ts +46 -0
  111. package/controls/layout/formlayout.ngfactory.d.ts +1 -0
  112. package/controls/list/dropdown.d.ts +138 -0
  113. package/controls/list/dropdown.ngfactory.d.ts +1 -0
  114. package/controls/list/list.module.d.ts +2 -0
  115. package/controls/list/list.module.ngfactory.d.ts +3 -0
  116. package/controls/list/listbox.d.ts +86 -0
  117. package/controls/list/listbox.ngfactory.d.ts +1 -0
  118. package/controls/multilanguage/multilanguageinput.d.ts +102 -0
  119. package/controls/multilanguage/multilanguageinput.ngfactory.d.ts +1 -0
  120. package/controls/multilanguage/multilanguageinputarea.d.ts +107 -0
  121. package/controls/multilanguage/multilanguageinputarea.ngfactory.d.ts +1 -0
  122. package/controls/static/formcontainer.d.ts +31 -0
  123. package/controls/static/formcontainer.ngfactory.d.ts +1 -0
  124. package/controls/static/staticlabel.d.ts +18 -0
  125. package/controls/static/staticlabel.ngfactory.d.ts +1 -0
  126. package/controls/tabs/tab.d.ts +45 -0
  127. package/controls/tabs/tab.ngfactory.d.ts +1 -0
  128. package/controls/tabs/tabitem.d.ts +30 -0
  129. package/controls/tabs/tabitem.ngfactory.d.ts +1 -0
  130. package/controls/tinymce/tinymce.d.ts +149 -0
  131. package/controls/tinymce/tinymce.ngfactory.d.ts +1 -0
  132. package/controls/tinymce/tinymcedialogsettings.d.ts +27 -0
  133. package/controls/tinymce/tinymcedialogsettings.ngfactory.d.ts +1 -0
  134. package/controls/tinymce/tinymcedialogsettingsmeta.d.ts +9 -0
  135. package/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.d.ts +1 -0
  136. package/controls/tinymce/tinymceinstance.d.ts +10 -0
  137. package/controls/tinymce/tinymceinstance.ngfactory.d.ts +1 -0
  138. package/controls/tooltip/tooltip.d.ts +138 -0
  139. package/controls/tooltip/tooltip.ngfactory.d.ts +1 -0
  140. package/controls/treeview/ngtreeitemaction.d.ts +40 -0
  141. package/controls/treeview/ngtreeitemaction.ngfactory.d.ts +1 -0
  142. package/controls/treeview/treeview.d.ts +185 -0
  143. package/controls/treeview/treeview.ngfactory.d.ts +1 -0
  144. package/controls/treeview/treeviewchild.d.ts +12 -0
  145. package/controls/treeview/treeviewchild.ngfactory.d.ts +1 -0
  146. package/controls/upload/dropzonemultiple.d.ts +70 -0
  147. package/controls/upload/dropzonemultiple.ngfactory.d.ts +1 -0
  148. package/controls/upload/dropzonesingle.d.ts +47 -0
  149. package/controls/upload/dropzonesingle.ngfactory.d.ts +1 -0
  150. package/controls/upload/uploadmultiple.d.ts +50 -0
  151. package/controls/upload/uploadmultiple.ngfactory.d.ts +1 -0
  152. package/controls/upload/uploadsingle.d.ts +27 -0
  153. package/controls/upload/uploadsingle.ngfactory.d.ts +1 -0
  154. package/controls/validation/validationsummary.d.ts +60 -0
  155. package/controls/validation/validationsummary.ngfactory.d.ts +1 -0
  156. package/controls/wizard/wizard.d.ts +73 -0
  157. package/controls/wizard/wizard.ngfactory.d.ts +1 -0
  158. package/controls/wizard/wizarditem.d.ts +25 -0
  159. package/controls/wizard/wizarditem.ngfactory.d.ts +1 -0
  160. package/enums/ButtonRoleType.d.ts +1 -0
  161. package/enums/ButtonRoleType.ngfactory.d.ts +1 -0
  162. package/enums/ControlHeight.d.ts +17 -0
  163. package/enums/ControlHeight.ngfactory.d.ts +1 -0
  164. package/enums/IconType.d.ts +7 -0
  165. package/enums/IconType.ngfactory.d.ts +1 -0
  166. package/esm2015/common/basedatetimecontrol.js +164 -0
  167. package/esm2015/common/basedatetimecontrol.ngfactory.js +7 -0
  168. package/esm2015/common/baseinputcontrol.js +78 -0
  169. package/esm2015/common/baseinputcontrol.ngfactory.js +7 -0
  170. package/esm2015/common/baselistcontrol.js +55 -0
  171. package/esm2015/common/baselistcontrol.ngfactory.js +7 -0
  172. package/esm2015/common/basemodelcontrol.js +483 -0
  173. package/esm2015/common/basemodelcontrol.ngfactory.js +7 -0
  174. package/esm2015/common/baseselectcontrol.js +26 -0
  175. package/esm2015/common/baseselectcontrol.ngfactory.js +7 -0
  176. package/esm2015/common/baseuploadcontrol.js +457 -0
  177. package/esm2015/common/baseuploadcontrol.ngfactory.js +7 -0
  178. package/esm2015/components/browser/browser.js +545 -0
  179. package/esm2015/components/browser/browser.ngfactory.js +7 -0
  180. package/esm2015/components/browser/models/browserfile.js +1 -0
  181. package/esm2015/components/browser/models/browserfile.ngfactory.js +7 -0
  182. package/esm2015/components/browser/models/browserfiledeleterequest.js +13 -0
  183. package/esm2015/components/browser/models/browserfiledeleterequest.ngfactory.js +7 -0
  184. package/esm2015/components/browser/models/browserfilerenamerequest.js +13 -0
  185. package/esm2015/components/browser/models/browserfilerenamerequest.ngfactory.js +7 -0
  186. package/esm2015/components/browser/models/browserfileresponse.js +1 -0
  187. package/esm2015/components/browser/models/browserfileresponse.ngfactory.js +7 -0
  188. package/esm2015/components/browser/models/browserfilesaverequest.js +13 -0
  189. package/esm2015/components/browser/models/browserfilesaverequest.ngfactory.js +7 -0
  190. package/esm2015/components/browser/models/browsernode.js +1 -0
  191. package/esm2015/components/browser/models/browsernode.ngfactory.js +7 -0
  192. package/esm2015/components/browser/models/browsernodedeleterequest.js +13 -0
  193. package/esm2015/components/browser/models/browsernodedeleterequest.ngfactory.js +7 -0
  194. package/esm2015/components/browser/models/browsernodenewrequest.js +13 -0
  195. package/esm2015/components/browser/models/browsernodenewrequest.ngfactory.js +7 -0
  196. package/esm2015/components/browser/models/browsernoderenamerequest.js +13 -0
  197. package/esm2015/components/browser/models/browsernoderenamerequest.ngfactory.js +7 -0
  198. package/esm2015/components/browser/models/browsernoderequest.js +13 -0
  199. package/esm2015/components/browser/models/browsernoderequest.ngfactory.js +7 -0
  200. package/esm2015/components/browser/models/browsernoderesponse.js +1 -0
  201. package/esm2015/components/browser/models/browsernoderesponse.ngfactory.js +7 -0
  202. package/esm2015/controls/buttons/button.js +141 -0
  203. package/esm2015/controls/buttons/button.ngfactory.js +7 -0
  204. package/esm2015/controls/checkbox/checkbox.js +33 -0
  205. package/esm2015/controls/checkbox/checkbox.ngfactory.js +7 -0
  206. package/esm2015/controls/checkbox/radiobutton.js +115 -0
  207. package/esm2015/controls/checkbox/radiobutton.ngfactory.js +7 -0
  208. package/esm2015/controls/checkbox/radiobuttons.js +113 -0
  209. package/esm2015/controls/checkbox/radiobuttons.ngfactory.js +7 -0
  210. package/esm2015/controls/confirm/confirm.button.js +32 -0
  211. package/esm2015/controls/confirm/confirm.button.ngfactory.js +7 -0
  212. package/esm2015/controls/confirm/confirm.js +75 -0
  213. package/esm2015/controls/confirm/confirm.ngfactory.js +7 -0
  214. package/esm2015/controls/confirm/confirm.service.js +87 -0
  215. package/esm2015/controls/confirm/confirm.service.ngfactory.js +7 -0
  216. package/esm2015/controls/contextmenu/contextmenu.js +194 -0
  217. package/esm2015/controls/contextmenu/contextmenu.ngfactory.js +7 -0
  218. package/esm2015/controls/contextmenu/contextmenuanchor.js +22 -0
  219. package/esm2015/controls/contextmenu/contextmenuanchor.ngfactory.js +7 -0
  220. package/esm2015/controls/contextmenu/contextmenucontainer.js +22 -0
  221. package/esm2015/controls/contextmenu/contextmenucontainer.ngfactory.js +7 -0
  222. package/esm2015/controls/contextmenu/contextmenuitem.js +10 -0
  223. package/esm2015/controls/contextmenu/contextmenuitem.ngfactory.js +7 -0
  224. package/esm2015/controls/contextmenu/contextmenuitembutton.js +97 -0
  225. package/esm2015/controls/contextmenu/contextmenuitembutton.ngfactory.js +7 -0
  226. package/esm2015/controls/datetime/date.js +212 -0
  227. package/esm2015/controls/datetime/date.ngfactory.js +7 -0
  228. package/esm2015/controls/datetime/dateselector.js +458 -0
  229. package/esm2015/controls/datetime/dateselector.ngfactory.js +7 -0
  230. package/esm2015/controls/datetime/datetime.js +229 -0
  231. package/esm2015/controls/datetime/datetime.ngfactory.js +7 -0
  232. package/esm2015/controls/datetime/time.js +212 -0
  233. package/esm2015/controls/datetime/time.ngfactory.js +7 -0
  234. package/esm2015/controls/dialog/dialog.js +207 -0
  235. package/esm2015/controls/dialog/dialog.ngfactory.js +7 -0
  236. package/esm2015/controls/form/form.js +110 -0
  237. package/esm2015/controls/form/form.ngfactory.js +7 -0
  238. package/esm2015/controls/grid/grid.js +144 -0
  239. package/esm2015/controls/grid/grid.ngfactory.js +7 -0
  240. package/esm2015/controls/grid/gridbutton.js +54 -0
  241. package/esm2015/controls/grid/gridbutton.ngfactory.js +7 -0
  242. package/esm2015/controls/grid/gridcolumn.js +49 -0
  243. package/esm2015/controls/grid/gridcolumn.ngfactory.js +7 -0
  244. package/esm2015/controls/grid/gridcolumnaction.js +26 -0
  245. package/esm2015/controls/grid/gridcolumnaction.ngfactory.js +7 -0
  246. package/esm2015/controls/grid/gridcolumnbase.js +126 -0
  247. package/esm2015/controls/grid/gridcolumnbase.ngfactory.js +7 -0
  248. package/esm2015/controls/grid/gridimage.js +13 -0
  249. package/esm2015/controls/grid/gridimage.ngfactory.js +7 -0
  250. package/esm2015/controls/grid/model.js +79 -0
  251. package/esm2015/controls/grid/model.ngfactory.js +7 -0
  252. package/esm2015/controls/grid/paging.js +254 -0
  253. package/esm2015/controls/grid/paging.ngfactory.js +7 -0
  254. package/esm2015/controls/input/input.js +66 -0
  255. package/esm2015/controls/input/input.ngfactory.js +7 -0
  256. package/esm2015/controls/input/inputarea.js +54 -0
  257. package/esm2015/controls/input/inputarea.ngfactory.js +7 -0
  258. package/esm2015/controls/input/inputcurrency.js +31 -0
  259. package/esm2015/controls/input/inputcurrency.ngfactory.js +7 -0
  260. package/esm2015/controls/input/inputdecimal.js +146 -0
  261. package/esm2015/controls/input/inputdecimal.ngfactory.js +7 -0
  262. package/esm2015/controls/input/inputemail.js +41 -0
  263. package/esm2015/controls/input/inputemail.ngfactory.js +7 -0
  264. package/esm2015/controls/input/inputinteger.js +130 -0
  265. package/esm2015/controls/input/inputinteger.ngfactory.js +7 -0
  266. package/esm2015/controls/input/inputpassword.js +46 -0
  267. package/esm2015/controls/input/inputpassword.ngfactory.js +7 -0
  268. package/esm2015/controls/input/inputsearch.js +37 -0
  269. package/esm2015/controls/input/inputsearch.ngfactory.js +7 -0
  270. package/esm2015/controls/layout/formlayout.js +70 -0
  271. package/esm2015/controls/layout/formlayout.ngfactory.js +7 -0
  272. package/esm2015/controls/list/dropdown.js +270 -0
  273. package/esm2015/controls/list/dropdown.ngfactory.js +7 -0
  274. package/esm2015/controls/list/list.module.js +11 -0
  275. package/esm2015/controls/list/list.module.ngfactory.js +7 -0
  276. package/esm2015/controls/list/listbox.js +187 -0
  277. package/esm2015/controls/list/listbox.ngfactory.js +7 -0
  278. package/esm2015/controls/multilanguage/multilanguageinput.js +230 -0
  279. package/esm2015/controls/multilanguage/multilanguageinput.ngfactory.js +7 -0
  280. package/esm2015/controls/multilanguage/multilanguageinputarea.js +231 -0
  281. package/esm2015/controls/multilanguage/multilanguageinputarea.ngfactory.js +7 -0
  282. package/esm2015/controls/static/formcontainer.js +50 -0
  283. package/esm2015/controls/static/formcontainer.ngfactory.js +7 -0
  284. package/esm2015/controls/static/staticlabel.js +31 -0
  285. package/esm2015/controls/static/staticlabel.ngfactory.js +7 -0
  286. package/esm2015/controls/tabs/tab.js +72 -0
  287. package/esm2015/controls/tabs/tab.ngfactory.js +7 -0
  288. package/esm2015/controls/tabs/tabitem.js +32 -0
  289. package/esm2015/controls/tabs/tabitem.ngfactory.js +7 -0
  290. package/esm2015/controls/tinymce/tinymce.js +238 -0
  291. package/esm2015/controls/tinymce/tinymce.ngfactory.js +7 -0
  292. package/esm2015/controls/tinymce/tinymcedialogsettings.js +13 -0
  293. package/esm2015/controls/tinymce/tinymcedialogsettings.ngfactory.js +7 -0
  294. package/esm2015/controls/tinymce/tinymcedialogsettingsmeta.js +4 -0
  295. package/esm2015/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.js +7 -0
  296. package/esm2015/controls/tinymce/tinymceinstance.js +1 -0
  297. package/esm2015/controls/tinymce/tinymceinstance.ngfactory.js +7 -0
  298. package/esm2015/controls/tooltip/tooltip.js +361 -0
  299. package/esm2015/controls/tooltip/tooltip.ngfactory.js +7 -0
  300. package/esm2015/controls/treeview/ngtreeitemaction.js +60 -0
  301. package/esm2015/controls/treeview/ngtreeitemaction.ngfactory.js +7 -0
  302. package/esm2015/controls/treeview/treeview.js +322 -0
  303. package/esm2015/controls/treeview/treeview.ngfactory.js +7 -0
  304. package/esm2015/controls/treeview/treeviewchild.js +18 -0
  305. package/esm2015/controls/treeview/treeviewchild.ngfactory.js +7 -0
  306. package/esm2015/controls/upload/dropzonemultiple.js +163 -0
  307. package/esm2015/controls/upload/dropzonemultiple.ngfactory.js +7 -0
  308. package/esm2015/controls/upload/dropzonesingle.js +108 -0
  309. package/esm2015/controls/upload/dropzonesingle.ngfactory.js +7 -0
  310. package/esm2015/controls/upload/uploadmultiple.js +121 -0
  311. package/esm2015/controls/upload/uploadmultiple.ngfactory.js +7 -0
  312. package/esm2015/controls/upload/uploadsingle.js +55 -0
  313. package/esm2015/controls/upload/uploadsingle.ngfactory.js +7 -0
  314. package/esm2015/controls/validation/validationsummary.js +133 -0
  315. package/esm2015/controls/validation/validationsummary.ngfactory.js +7 -0
  316. package/esm2015/controls/wizard/wizard.js +139 -0
  317. package/esm2015/controls/wizard/wizard.ngfactory.js +7 -0
  318. package/esm2015/controls/wizard/wizarditem.js +27 -0
  319. package/esm2015/controls/wizard/wizarditem.ngfactory.js +7 -0
  320. package/esm2015/enums/ButtonRoleType.js +1 -0
  321. package/esm2015/enums/ButtonRoleType.ngfactory.js +7 -0
  322. package/esm2015/enums/ControlHeight.js +19 -0
  323. package/esm2015/enums/ControlHeight.ngfactory.js +7 -0
  324. package/esm2015/enums/IconType.js +9 -0
  325. package/esm2015/enums/IconType.ngfactory.js +7 -0
  326. package/esm2015/interfaces/ISacConfigurationService.js +1 -0
  327. package/esm2015/interfaces/ISacConfigurationService.ngfactory.js +7 -0
  328. package/esm2015/interfaces/ISacFileBrowserService.js +1 -0
  329. package/esm2015/interfaces/ISacFileBrowserService.ngfactory.js +7 -0
  330. package/esm2015/interfaces/ISacIconService.js +1 -0
  331. package/esm2015/interfaces/ISacIconService.ngfactory.js +7 -0
  332. package/esm2015/interfaces/ISacLabelSizes.js +1 -0
  333. package/esm2015/interfaces/ISacLabelSizes.ngfactory.js +7 -0
  334. package/esm2015/interfaces/ISacLanguageService.js +1 -0
  335. package/esm2015/interfaces/ISacLanguageService.ngfactory.js +7 -0
  336. package/esm2015/interfaces/ISacLocalisationService.js +1 -0
  337. package/esm2015/interfaces/ISacLocalisationService.ngfactory.js +7 -0
  338. package/esm2015/interfaces/ISacValidationKeyService.js +1 -0
  339. package/esm2015/interfaces/ISacValidationKeyService.ngfactory.js +7 -0
  340. package/esm2015/interfaces/iabstractcontrollabel.js +1 -0
  341. package/esm2015/interfaces/iabstractcontrollabel.ngfactory.js +7 -0
  342. package/esm2015/interfaces/iconfirmcomponent.js +1 -0
  343. package/esm2015/interfaces/iconfirmcomponent.ngfactory.js +7 -0
  344. package/esm2015/interfaces/idatetimecontrol.js +1 -0
  345. package/esm2015/interfaces/idatetimecontrol.ngfactory.js +7 -0
  346. package/esm2015/interfaces/iuploadcontrol.js +1 -0
  347. package/esm2015/interfaces/iuploadcontrol.ngfactory.js +7 -0
  348. package/esm2015/models/languagemodel.js +13 -0
  349. package/esm2015/models/languagemodel.ngfactory.js +7 -0
  350. package/esm2015/public_api.js +101 -0
  351. package/esm2015/public_api.ngfactory.js +7 -0
  352. package/esm2015/services/index.js +7 -0
  353. package/esm2015/services/index.ngfactory.js +7 -0
  354. package/esm2015/services/sac-configuration.service.js +77 -0
  355. package/esm2015/services/sac-configuration.service.ngfactory.js +7 -0
  356. package/esm2015/services/sac-filebrowser.service.js +203 -0
  357. package/esm2015/services/sac-filebrowser.service.ngfactory.js +7 -0
  358. package/esm2015/services/sac-icon.service.js +155 -0
  359. package/esm2015/services/sac-icon.service.ngfactory.js +7 -0
  360. package/esm2015/services/sac-language.service.js +43 -0
  361. package/esm2015/services/sac-language.service.ngfactory.js +7 -0
  362. package/esm2015/services/sac-localisation.service.js +460 -0
  363. package/esm2015/services/sac-localisation.service.ngfactory.js +7 -0
  364. package/esm2015/services/sac-validationkey.service.js +156 -0
  365. package/esm2015/services/sac-validationkey.service.ngfactory.js +7 -0
  366. package/esm2015/simpleangularcontrols-sac-common.js +11 -0
  367. package/esm2015/simpleangularcontrols-sac-common.ngfactory.js +7 -0
  368. package/esm2015/utilities/convertion.js +32 -0
  369. package/esm2015/utilities/convertion.ngfactory.js +7 -0
  370. package/esm2015/utilities/datatypes.js +9 -0
  371. package/esm2015/utilities/datatypes.ngfactory.js +7 -0
  372. package/esm2015/utilities/enums.js +16 -0
  373. package/esm2015/utilities/enums.ngfactory.js +7 -0
  374. package/esm2015/utilities/guid.js +16 -0
  375. package/esm2015/utilities/guid.ngfactory.js +7 -0
  376. package/esm2015/utilities/interpolation.js +50 -0
  377. package/esm2015/utilities/interpolation.ngfactory.js +7 -0
  378. package/esm2015/utilities/positioning.js +301 -0
  379. package/esm2015/utilities/positioning.ngfactory.js +7 -0
  380. package/esm2015/validation/email.validator.js +13 -0
  381. package/esm2015/validation/email.validator.ngfactory.js +7 -0
  382. package/esm2015/validation/index.js +3 -0
  383. package/esm2015/validation/index.ngfactory.js +7 -0
  384. package/esm2015/validation/invaliddate.validator.js +14 -0
  385. package/esm2015/validation/invaliddate.validator.ngfactory.js +7 -0
  386. package/esm2015/validation/isDateValid.js +15 -0
  387. package/esm2015/validation/isDateValid.ngfactory.js +7 -0
  388. package/esm2015/validation/maxdate.validator.js +21 -0
  389. package/esm2015/validation/maxdate.validator.ngfactory.js +7 -0
  390. package/esm2015/validation/maxtime.validator.js +21 -0
  391. package/esm2015/validation/maxtime.validator.ngfactory.js +7 -0
  392. package/esm2015/validation/maxvalue.validator.js +16 -0
  393. package/esm2015/validation/maxvalue.validator.ngfactory.js +7 -0
  394. package/esm2015/validation/mindate.validator.js +21 -0
  395. package/esm2015/validation/mindate.validator.ngfactory.js +7 -0
  396. package/esm2015/validation/minfiles.validator.js +19 -0
  397. package/esm2015/validation/minfiles.validator.ngfactory.js +7 -0
  398. package/esm2015/validation/minlength.validator.js +21 -0
  399. package/esm2015/validation/minlength.validator.ngfactory.js +7 -0
  400. package/esm2015/validation/mintime.validator.js +21 -0
  401. package/esm2015/validation/mintime.validator.ngfactory.js +7 -0
  402. package/esm2015/validation/minvalue.validator.js +16 -0
  403. package/esm2015/validation/minvalue.validator.ngfactory.js +7 -0
  404. package/esm2015/validation/multilanguagerequired.validator.js +22 -0
  405. package/esm2015/validation/multilanguagerequired.validator.ngfactory.js +7 -0
  406. package/esm2015/validation/multilanguagerequiredany.validator.js +22 -0
  407. package/esm2015/validation/multilanguagerequiredany.validator.ngfactory.js +7 -0
  408. package/esm2015/validation/pattern.validator.js +16 -0
  409. package/esm2015/validation/pattern.validator.ngfactory.js +7 -0
  410. package/esm2015/validation/required.validator.js +13 -0
  411. package/esm2015/validation/required.validator.ngfactory.js +7 -0
  412. package/esm2015/validation/validation.class.js +189 -0
  413. package/esm2015/validation/validation.class.ngfactory.js +7 -0
  414. package/esm2015/validation/validationerrorcreator.js +11 -0
  415. package/esm2015/validation/validationerrorcreator.ngfactory.js +7 -0
  416. package/esm2015/validation/validationerroritem.js +27 -0
  417. package/esm2015/validation/validationerroritem.ngfactory.js +7 -0
  418. package/fesm2015/simpleangularcontrols-sac-common.js +10319 -0
  419. package/fesm2015/simpleangularcontrols-sac-common.js.map +1 -0
  420. package/interfaces/ISacConfigurationService.d.ts +38 -0
  421. package/interfaces/ISacConfigurationService.ngfactory.d.ts +1 -0
  422. package/interfaces/ISacFileBrowserService.d.ts +65 -0
  423. package/interfaces/ISacFileBrowserService.ngfactory.d.ts +1 -0
  424. package/interfaces/ISacIconService.d.ts +89 -0
  425. package/interfaces/ISacIconService.ngfactory.d.ts +1 -0
  426. package/interfaces/ISacLabelSizes.d.ts +26 -0
  427. package/interfaces/ISacLabelSizes.ngfactory.d.ts +1 -0
  428. package/interfaces/ISacLanguageService.d.ts +12 -0
  429. package/interfaces/ISacLanguageService.ngfactory.d.ts +1 -0
  430. package/interfaces/ISacLocalisationService.d.ts +10 -0
  431. package/interfaces/ISacLocalisationService.ngfactory.d.ts +1 -0
  432. package/interfaces/ISacValidationKeyService.d.ts +52 -0
  433. package/interfaces/ISacValidationKeyService.ngfactory.d.ts +1 -0
  434. package/interfaces/iabstractcontrollabel.d.ts +6 -0
  435. package/interfaces/iabstractcontrollabel.ngfactory.d.ts +1 -0
  436. package/interfaces/iconfirmcomponent.d.ts +18 -0
  437. package/interfaces/iconfirmcomponent.ngfactory.d.ts +1 -0
  438. package/interfaces/idatetimecontrol.d.ts +7 -0
  439. package/interfaces/idatetimecontrol.ngfactory.d.ts +1 -0
  440. package/interfaces/iuploadcontrol.d.ts +9 -0
  441. package/interfaces/iuploadcontrol.ngfactory.d.ts +1 -0
  442. package/models/languagemodel.d.ts +22 -0
  443. package/models/languagemodel.ngfactory.d.ts +1 -0
  444. package/package.json +28 -0
  445. package/public_api.d.ts +79 -0
  446. package/public_api.ngfactory.d.ts +1 -0
  447. package/services/index.d.ts +6 -0
  448. package/services/index.ngfactory.d.ts +1 -0
  449. package/services/sac-configuration.service.d.ts +81 -0
  450. package/services/sac-configuration.service.ngfactory.d.ts +1 -0
  451. package/services/sac-filebrowser.service.d.ts +140 -0
  452. package/services/sac-filebrowser.service.ngfactory.d.ts +1 -0
  453. package/services/sac-icon.service.d.ts +184 -0
  454. package/services/sac-icon.service.ngfactory.d.ts +1 -0
  455. package/services/sac-language.service.d.ts +26 -0
  456. package/services/sac-language.service.ngfactory.d.ts +1 -0
  457. package/services/sac-localisation.service.d.ts +137 -0
  458. package/services/sac-localisation.service.ngfactory.d.ts +1 -0
  459. package/services/sac-validationkey.service.d.ts +55 -0
  460. package/services/sac-validationkey.service.ngfactory.d.ts +1 -0
  461. package/simpleangularcontrols-sac-common-10.0.0-rc.1.tgz +0 -0
  462. package/simpleangularcontrols-sac-common.d.ts +10 -0
  463. package/simpleangularcontrols-sac-common.metadata.json +1 -0
  464. package/simpleangularcontrols-sac-common.ngfactory.d.ts +1 -0
  465. package/utilities/convertion.d.ts +15 -0
  466. package/utilities/convertion.ngfactory.d.ts +1 -0
  467. package/utilities/datatypes.d.ts +6 -0
  468. package/utilities/datatypes.ngfactory.d.ts +1 -0
  469. package/utilities/enums.d.ts +10 -0
  470. package/utilities/enums.ngfactory.d.ts +1 -0
  471. package/utilities/guid.d.ts +4 -0
  472. package/utilities/guid.ngfactory.d.ts +1 -0
  473. package/utilities/interpolation.d.ts +21 -0
  474. package/utilities/interpolation.ngfactory.d.ts +1 -0
  475. package/utilities/positioning.d.ts +82 -0
  476. package/utilities/positioning.ngfactory.d.ts +1 -0
  477. package/validation/email.validator.d.ts +2 -0
  478. package/validation/email.validator.ngfactory.d.ts +1 -0
  479. package/validation/index.d.ts +2 -0
  480. package/validation/index.ngfactory.d.ts +1 -0
  481. package/validation/invaliddate.validator.d.ts +2 -0
  482. package/validation/invaliddate.validator.ngfactory.d.ts +1 -0
  483. package/validation/isDateValid.d.ts +5 -0
  484. package/validation/isDateValid.ngfactory.d.ts +1 -0
  485. package/validation/maxdate.validator.d.ts +2 -0
  486. package/validation/maxdate.validator.ngfactory.d.ts +1 -0
  487. package/validation/maxtime.validator.d.ts +2 -0
  488. package/validation/maxtime.validator.ngfactory.d.ts +1 -0
  489. package/validation/maxvalue.validator.d.ts +2 -0
  490. package/validation/maxvalue.validator.ngfactory.d.ts +1 -0
  491. package/validation/mindate.validator.d.ts +2 -0
  492. package/validation/mindate.validator.ngfactory.d.ts +1 -0
  493. package/validation/minfiles.validator.d.ts +2 -0
  494. package/validation/minfiles.validator.ngfactory.d.ts +1 -0
  495. package/validation/minlength.validator.d.ts +2 -0
  496. package/validation/minlength.validator.ngfactory.d.ts +1 -0
  497. package/validation/mintime.validator.d.ts +2 -0
  498. package/validation/mintime.validator.ngfactory.d.ts +1 -0
  499. package/validation/minvalue.validator.d.ts +2 -0
  500. package/validation/minvalue.validator.ngfactory.d.ts +1 -0
  501. package/validation/multilanguagerequired.validator.d.ts +3 -0
  502. package/validation/multilanguagerequired.validator.ngfactory.d.ts +1 -0
  503. package/validation/multilanguagerequiredany.validator.d.ts +3 -0
  504. package/validation/multilanguagerequiredany.validator.ngfactory.d.ts +1 -0
  505. package/validation/pattern.validator.d.ts +2 -0
  506. package/validation/pattern.validator.ngfactory.d.ts +1 -0
  507. package/validation/required.validator.d.ts +2 -0
  508. package/validation/required.validator.ngfactory.d.ts +1 -0
  509. package/validation/validation.class.d.ts +139 -0
  510. package/validation/validation.class.ngfactory.d.ts +1 -0
  511. package/validation/validationerrorcreator.d.ts +1 -0
  512. package/validation/validationerrorcreator.ngfactory.d.ts +1 -0
  513. package/validation/validationerroritem.d.ts +33 -0
  514. package/validation/validationerroritem.ngfactory.d.ts +1 -0
@@ -0,0 +1,322 @@
1
+ import { ContentChild, Directive, EventEmitter, Input, Output, TemplateRef, } from '@angular/core';
2
+ /**
3
+ * Basis Komponente für SacTreeView
4
+ */
5
+ export class SacTreeViewCommon {
6
+ constructor() {
7
+ /**
8
+ * Das Property enthielt array of nodes. Default value: empty array [].
9
+ */
10
+ this.nodes = [];
11
+ /**
12
+ * Das Property enthielt node attribute: 'isCollapsed'. Es wird benutzt beim rendering. Für Expand/Collapsed Sicht des Node(Wert)
13
+ */
14
+ this.collapseAttr = 'isCollapsed';
15
+ /**
16
+ * Das Property enthielt node attribute: 'isSelected'. Es wird benutzt beim Vorbereitung des Data des TreeView
17
+ */
18
+ this.selectAttr = 'isSelected';
19
+ /**
20
+ * Das Property enthielt node attribute: 'isIndeterminate'. Es wird benutzt beim Vorbereitung des Data des TreeView
21
+ */
22
+ this.inDeterminateAttr = 'isIndeterminate';
23
+ /**
24
+ * Providen data for tree.
25
+ */
26
+ this._data = [];
27
+ /**
28
+ * Input property für den Namen des TreeView. Type string. Default value: ""
29
+ */
30
+ this.name = '';
31
+ /**
32
+ * A flag indicating data is flatten in array and prepare is required.(Default
33
+ * is false).
34
+ */
35
+ this.prepareData = false;
36
+ /**
37
+ * Attribute for Text in Tree
38
+ */
39
+ this.textAttr = 'data';
40
+ /**
41
+ * Name of ID property in input data.
42
+ */
43
+ this.idAttr = 'id';
44
+ /**
45
+ * Name of parent property in input data.
46
+ */
47
+ this.parentAttr = 'PARENT_ID';
48
+ /**
49
+ * Name of children list property in input data.
50
+ */
51
+ this.childrenAttr = 'children';
52
+ /**
53
+ * Output Emitter. Emit das ID des selected Node.
54
+ */
55
+ this.selectedidchange = new EventEmitter();
56
+ /**
57
+ * Output Emitter. Emit das TextAttr des selected Node.
58
+ */
59
+ this.selectedtextchanged = new EventEmitter();
60
+ /**
61
+ * Output Emitter. Emit wenn ein Node selektiert wird.
62
+ */
63
+ this.selecteditem = new EventEmitter();
64
+ }
65
+ /**
66
+ * Getter für Data des TreeView
67
+ */
68
+ get data() {
69
+ return this._data;
70
+ }
71
+ /**
72
+ * Input Property für Data des TreeView
73
+ */
74
+ set data(value) {
75
+ this._data = value;
76
+ this.nodes = value;
77
+ // this.nodes.forEach(node => node["typeId"] = "13")
78
+ this.LoadTree();
79
+ if (this._collapseAll !== undefined) {
80
+ this.collapseAllNode(this._collapseAll);
81
+ }
82
+ }
83
+ /**
84
+ * Die Directive erhält die actions für das TreeView
85
+ */
86
+ set treeviewTemplate(v) {
87
+ this.template = v;
88
+ }
89
+ /**
90
+ * Getter für das TreeView Template
91
+ */
92
+ get treeviewTemplate() {
93
+ return this.template;
94
+ }
95
+ /**
96
+ * Setter property. Deffiniert das FileIcon für das TreeView
97
+ */
98
+ set treefileicon(v) {
99
+ this.fileicontemplate = v;
100
+ }
101
+ /**
102
+ * Getter property. Ergibt das FileIcon für das TreeView
103
+ */
104
+ get treefileicon() {
105
+ return this.fileicontemplate;
106
+ }
107
+ // @Input("titleAction") _titleAction: string
108
+ /**
109
+ * Collapse or expand all parent nodes.
110
+ */
111
+ set collapseall(value) {
112
+ this._collapseAll = value;
113
+ if (this.nodes && this.nodes.length && this.nodes.length > 0) {
114
+ this.collapseAllNode(this._collapseAll);
115
+ }
116
+ // this._recursiveEdit(
117
+ // this.nodes, this.childrenAttr, this.collapseAttr, this._collapseAll);
118
+ // this.cd.detectChanges();
119
+ }
120
+ /**
121
+ * Getter für das collapse property. Ergibt boolean Wert, ob die Items collapsed/expand sind.
122
+ */
123
+ get collapseall() {
124
+ return this._collapseAll;
125
+ }
126
+ /**
127
+ * Select or deselect all nodes.
128
+ */
129
+ set selectall(value) {
130
+ this._selectAll = value;
131
+ this._recursiveEdit(this.nodes, this.childrenAttr, this.selectAttr, value);
132
+ this._recursiveEdit(this.nodes, this.childrenAttr, this.inDeterminateAttr, false);
133
+ }
134
+ /**
135
+ * Input property - setter. Deffiniert das ID des selektierten Item(node)
136
+ */
137
+ set selectedid(v) {
138
+ this.selectedNode = this.findNode(this.nodes, v, this.idAttr);
139
+ // if (this.selectedNode) {
140
+ // this.selectedIdEmitter.emit(this.selectedNode[this.idAttr]);
141
+ // this.selectedTextEmitter.emit(this.selectedNode[this.textAttr]);
142
+ // }
143
+ }
144
+ /**
145
+ * Getter. Ergibt das ID des selektierten Item(node)
146
+ */
147
+ get selectedId() {
148
+ return this.selectedNode ? this.selectedNode[this.idAttr] : null;
149
+ }
150
+ /**
151
+ * Setter für das selektierte Wert(node). Wenn aufgerufen das ID und TextAttr des selected Node wird emitted
152
+ */
153
+ set selectedNode(v) {
154
+ this._selectedNode = v;
155
+ if (this._selectedNode) {
156
+ this.selectedidchange.emit(this.selectedId);
157
+ this.selectedtextchanged.emit(v[this.textAttr]);
158
+ }
159
+ }
160
+ /**
161
+ * Getter für das selektierte Wert(node). Ergibt das selektierte Wert(node).
162
+ */
163
+ get selectedNode() {
164
+ return this._selectedNode;
165
+ }
166
+ /**
167
+ * A lifecycle hook that is called after Angular has initialized all data-bound properties of a directive.
168
+ * Define an ngOnInit() method to handle any additional initialization tasks.
169
+ */
170
+ ngOnInit() {
171
+ this.collapseAllNode(this._collapseAll);
172
+ if (this.selectedId)
173
+ this.openSelectedNode(this.nodes);
174
+ }
175
+ /**
176
+ * Funktion setzt alle parent items recusiv zum selected node
177
+ * auf collapsed = false
178
+ */
179
+ openSelectedNode(data) {
180
+ let result = false;
181
+ for (let i = 0; i < data.length; i++) {
182
+ if (data[i][this.childrenAttr].length &&
183
+ data[i][this.idAttr] != this.selectedId)
184
+ result = this.openSelectedNode(data[i][this.childrenAttr]);
185
+ if (result || data[i][this.idAttr] == this.selectedId) {
186
+ data[i][this.collapseAttr] = false;
187
+ return true;
188
+ }
189
+ }
190
+ return false;
191
+ }
192
+ /**
193
+ * Die Methode vorbereitet die Daten für das TreeView. Die Funktion sollte geändert werden abhängig von dem kommenden Daten (wenn array)
194
+ */
195
+ LoadTree() {
196
+ //if the tree structure require array the function below should be changed
197
+ const cloned = this._data.map((x) => Object.assign({}, x));
198
+ // If data is flat, prepare data with recursive function.
199
+ this.nodes = this.prepareData ? this._getPreparedData(cloned) : this._data;
200
+ }
201
+ /**
202
+ * Die Methode collapse/expand den selectierten Node
203
+ */
204
+ onCollapseClick(node) {
205
+ if (node[this.childrenAttr].length) {
206
+ node[this.collapseAttr] = !node[this.collapseAttr];
207
+ }
208
+ }
209
+ /**
210
+ * Die Methode set den selektierten Node und emit es.
211
+ */
212
+ onClick(node) {
213
+ this.selectedNode = node;
214
+ this.selecteditem.emit(this.selectedNode);
215
+ // this.cd.detectChanges();
216
+ }
217
+ /**
218
+ * Die Methode wird ein event mit Meldung zu Parent emit-en.
219
+ */
220
+ sendMsgToParent(msg) {
221
+ this.selecteditem.emit(msg);
222
+ }
223
+ /**
224
+ * Die Methode wird alle Nodes collapse
225
+ */
226
+ collapseAllNode(command) {
227
+ this.nodes.forEach((node) => {
228
+ if (node[this.childrenAttr].length) {
229
+ collapseAllHIdden(node, this.collapseAttr, command, this.childrenAttr);
230
+ }
231
+ });
232
+ function collapseAllHIdden(node, collapseAttr, command, childrenAttr) {
233
+ node[collapseAttr] = command;
234
+ node.children.forEach((child) => {
235
+ if (child[childrenAttr].length) {
236
+ collapseAllHIdden(child, collapseAttr, command, childrenAttr);
237
+ }
238
+ });
239
+ }
240
+ }
241
+ /**
242
+ * Funktion gibt node aus der liste zurück, welches das Value auf dem gewünschten Attribut hat
243
+ * Wenn node nicht gefunden wird, wird null zurück gegeben
244
+ * @param data Liste der nodes
245
+ * @param searchValue Das gesuchte value
246
+ * @param attr Der namen des Attributs auf dem das value gesucht wird
247
+ */
248
+ findNode(data, searchValue, attr) {
249
+ let result = null;
250
+ for (let i = 0; i < data.length; i++) {
251
+ if (data[i][attr] == searchValue)
252
+ result = data[i];
253
+ else {
254
+ if (data[i][this.childrenAttr].length) {
255
+ let recursiveResult = this.findNode(data[i][this.childrenAttr], searchValue, attr);
256
+ if (recursiveResult)
257
+ result = recursiveResult;
258
+ }
259
+ }
260
+ }
261
+ return result;
262
+ }
263
+ /**
264
+ * Die Methode editiert (recursive) alle eingegebene Nodes abhängig von gegebenen Attibute und Value Kriterien.
265
+ */
266
+ _recursiveEdit(list, childrenAttr, attr, value) {
267
+ if (Array.isArray(list)) {
268
+ for (let i = 0, len = list.length; i < len; i++) {
269
+ list[i][attr] = value;
270
+ if (list[i][childrenAttr].length) {
271
+ this._recursiveEdit(list[i][childrenAttr], childrenAttr, attr, value);
272
+ }
273
+ }
274
+ }
275
+ }
276
+ /**
277
+ * Die Methode erstellt eine standarte Sicht-Liste von Nodes
278
+ */
279
+ _getPreparedData(list) {
280
+ const tree = [], lookup = {};
281
+ for (let i = 0, len = list.length; i < len; i++) {
282
+ lookup[list[i][this.idAttr]] = list[i];
283
+ list[i][this.childrenAttr] = [];
284
+ list[i][this.collapseAttr] = true;
285
+ list[i][this.selectAttr] = false;
286
+ list[i][this.inDeterminateAttr] = false;
287
+ }
288
+ for (let i = 0, len = list.length; i < len; i++) {
289
+ if (list[i][this.parentAttr]) {
290
+ lookup[list[i][this.parentAttr]][this.childrenAttr].push(list[i]);
291
+ }
292
+ else {
293
+ tree.push(list[i]);
294
+ }
295
+ }
296
+ return tree;
297
+ }
298
+ }
299
+ SacTreeViewCommon.decorators = [
300
+ { type: Directive }
301
+ ];
302
+ SacTreeViewCommon.propDecorators = {
303
+ data: [{ type: Input }],
304
+ template: [{ type: Input }],
305
+ treeviewTemplate: [{ type: ContentChild, args: ['actions', { static: true },] }],
306
+ fileicontemplate: [{ type: Input }],
307
+ treefileicon: [{ type: ContentChild, args: ['treefileicon', { static: true },] }],
308
+ name: [{ type: Input }],
309
+ prepareData: [{ type: Input }],
310
+ textAttr: [{ type: Input }],
311
+ idAttr: [{ type: Input }],
312
+ parentAttr: [{ type: Input }],
313
+ childrenAttr: [{ type: Input }],
314
+ title: [{ type: Input }],
315
+ collapseall: [{ type: Input }],
316
+ selectall: [{ type: Input }],
317
+ selectedid: [{ type: Input }],
318
+ selectedidchange: [{ type: Output }],
319
+ selectedtextchanged: [{ type: Output }],
320
+ selecteditem: [{ type: Output }]
321
+ };
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdHJlZXZpZXcvdHJlZXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCOztHQUVHO0FBRUgsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQVlFOztXQUVHO1FBQ0ksVUFBSyxHQUFVLEVBQUUsQ0FBQztRQUV6Qjs7V0FFRztRQUNJLGlCQUFZLEdBQUcsYUFBYSxDQUFDO1FBRXBDOztXQUVHO1FBQ0ksZUFBVSxHQUFHLFlBQVksQ0FBQztRQUVqQzs7V0FFRztRQUNJLHNCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBRTdDOztXQUVHO1FBQ0ssVUFBSyxHQUFVLEVBQUUsQ0FBQztRQW9FMUI7O1dBRUc7UUFFSCxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCOzs7V0FHRztRQUNNLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRTdCOztXQUVHO1FBQ00sYUFBUSxHQUFHLE1BQU0sQ0FBQztRQUUzQjs7V0FFRztRQUNNLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFFdkI7O1dBRUc7UUFDTSxlQUFVLEdBQUcsV0FBVyxDQUFDO1FBRWxDOztXQUVHO1FBQ00saUJBQVksR0FBRyxVQUFVLENBQUM7UUEyRm5DOztXQUVHO1FBRUgscUJBQWdCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFOUQ7O1dBRUc7UUFFSCx3QkFBbUIsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV2RTs7V0FFRztRQUVILGlCQUFZLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFxSmxFLENBQUM7SUFoV0M7O09BRUc7SUFDSCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxJQUFJLENBQUMsS0FBWTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixvREFBb0Q7UUFFcEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBUUQ7O09BRUc7SUFDSCxJQUNXLGdCQUFnQixDQUFDLENBQW1CO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBUUQ7O09BRUc7SUFDSCxJQUNXLFlBQVksQ0FBQyxDQUFtQjtRQUN6QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBdUNELDZDQUE2QztJQUU3Qzs7T0FFRztJQUNILElBQ0ksV0FBVyxDQUFDLEtBQWM7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1RCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN6QztRQUVELHVCQUF1QjtRQUN2QiwwRUFBMEU7UUFFMUUsMkJBQTJCO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLFNBQVMsQ0FBQyxLQUFjO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLGNBQWMsQ0FDakIsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLEtBQUssQ0FDTixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxVQUFVLENBQUMsQ0FBTTtRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlELDJCQUEyQjtRQUMzQixpRUFBaUU7UUFDakUscUVBQXFFO1FBQ3JFLElBQUk7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbkUsQ0FBQztJQU9EOztPQUVHO0lBQ0gsSUFBSSxZQUFZLENBQUMsQ0FBTTtRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUV2QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQW9CRDs7O09BR0c7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFeEMsSUFBSSxJQUFJLENBQUMsVUFBVTtZQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQixDQUFDLElBQUk7UUFDM0IsSUFBSSxNQUFNLEdBQVksS0FBSyxDQUFDO1FBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLElBQ0UsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNO2dCQUNqQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVO2dCQUV2QyxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUM3RCxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUNuQyxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNLLFFBQVE7UUFDZCwwRUFBMEU7UUFDMUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFM0QseURBQXlEO1FBQ3pELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzdFLENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWUsQ0FBQyxJQUFJO1FBQ2xCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsSUFBSTtRQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxQywyQkFBMkI7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLEdBQUc7UUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLE9BQU87UUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMxQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUNsQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3hFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxTQUFTLGlCQUFpQixDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFlBQVk7WUFDbEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLE9BQU8sQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNuQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEVBQUU7b0JBQzlCLGlCQUFpQixDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO2lCQUMvRDtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxRQUFRLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJO1FBQ3RDLElBQUksTUFBTSxHQUFRLElBQUksQ0FBQztRQUN2QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXO2dCQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzlDO2dCQUNILElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEVBQUU7b0JBQ3JDLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQ2pDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQzFCLFdBQVcsRUFDWCxJQUFJLENBQ0wsQ0FBQztvQkFDRixJQUFJLGVBQWU7d0JBQUUsTUFBTSxHQUFHLGVBQWUsQ0FBQztpQkFDL0M7YUFDRjtTQUNGO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUs7UUFDcEQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQy9DLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sRUFBRTtvQkFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDdkU7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZ0JBQWdCLENBQUMsSUFBSTtRQUMzQixNQUFNLElBQUksR0FBRyxFQUFFLEVBQ2IsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNkLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDbEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDakMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUN6QztRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDL0MsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNwQjtTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7WUFwWUYsU0FBUzs7O21CQStDUCxLQUFLO3VCQWlCTCxLQUFLOytCQU1MLFlBQVksU0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOytCQWV4QyxLQUFLOzJCQU1MLFlBQVksU0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO21CQWU3QyxLQUFLOzBCQU9MLEtBQUs7dUJBS0wsS0FBSztxQkFLTCxLQUFLO3lCQUtMLEtBQUs7MkJBS0wsS0FBSztvQkFLTCxLQUFLOzBCQU9MLEtBQUs7d0JBdUJMLEtBQUs7eUJBZUwsS0FBSzsrQkE0Q0wsTUFBTTtrQ0FNTixNQUFNOzJCQU1OLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbnRlbnRDaGlsZCxcclxuICBEaXJlY3RpdmUsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogQmFzaXMgS29tcG9uZW50ZSBmw7xyIFNhY1RyZWVWaWV3XHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY1RyZWVWaWV3Q29tbW9uIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKipcclxuICAgKiBEYXMgUHJvcGVydHkgZW50aGllbHQgYm9vbGVhbiBXZXJ0IHVuZCBkZWZmaW5pZXJ0LCBvYiBhbGxlIEl0ZW1zIGNvbGxhcHNlZCBzaW5kLiBEZWZhdWx0IHZhbHVlOiB1bmRlZmluZWQvbnVsbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBfY29sbGFwc2VBbGw6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBib29sZWFuIFdlcnQgdW5kIGRlZmZpbmllcnQsIG9iIGFsbGUgSXRlbXMgc2VsZWN0ZWQgc2luZC4gRGVmYXVsdCB2YWx1ZTogdW5kZWZpbmVkL251bGxcclxuICAgKi9cclxuICBwcml2YXRlIF9zZWxlY3RBbGw6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBhcnJheSBvZiBub2Rlcy4gRGVmYXVsdCB2YWx1ZTogZW1wdHkgYXJyYXkgW10uXHJcbiAgICovXHJcbiAgcHVibGljIG5vZGVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBEYXMgUHJvcGVydHkgZW50aGllbHQgbm9kZSBhdHRyaWJ1dGU6ICdpc0NvbGxhcHNlZCcuIEVzIHdpcmQgYmVudXR6dCBiZWltIHJlbmRlcmluZy4gRsO8ciBFeHBhbmQvQ29sbGFwc2VkIFNpY2h0IGRlcyBOb2RlKFdlcnQpXHJcbiAgICovXHJcbiAgcHVibGljIGNvbGxhcHNlQXR0ciA9ICdpc0NvbGxhcHNlZCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBub2RlIGF0dHJpYnV0ZTogJ2lzU2VsZWN0ZWQnLiBFcyB3aXJkIGJlbnV0enQgYmVpbSBWb3JiZXJlaXR1bmcgZGVzIERhdGEgZGVzIFRyZWVWaWV3XHJcbiAgICovXHJcbiAgcHVibGljIHNlbGVjdEF0dHIgPSAnaXNTZWxlY3RlZCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlbnRoaWVsdCBub2RlIGF0dHJpYnV0ZTogJ2lzSW5kZXRlcm1pbmF0ZScuIEVzIHdpcmQgYmVudXR6dCBiZWltIFZvcmJlcmVpdHVuZyBkZXMgRGF0YSBkZXMgVHJlZVZpZXdcclxuICAgKi9cclxuICBwdWJsaWMgaW5EZXRlcm1pbmF0ZUF0dHIgPSAnaXNJbmRldGVybWluYXRlJztcclxuXHJcbiAgLyoqXHJcbiAgICogUHJvdmlkZW4gZGF0YSBmb3IgdHJlZS5cclxuICAgKi9cclxuICBwcml2YXRlIF9kYXRhOiBhbnlbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZsO8ciBEYXRhIGRlcyBUcmVlVmlld1xyXG4gICAqL1xyXG4gIGdldCBkYXRhKCk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5wdXQgUHJvcGVydHkgZsO8ciBEYXRhIGRlcyBUcmVlVmlld1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRhdGEodmFsdWU6IGFueVtdKSB7XHJcbiAgICB0aGlzLl9kYXRhID0gdmFsdWU7XHJcbiAgICB0aGlzLm5vZGVzID0gdmFsdWU7XHJcblxyXG4gICAgLy8gdGhpcy5ub2Rlcy5mb3JFYWNoKG5vZGUgPT4gbm9kZVtcInR5cGVJZFwiXSA9IFwiMTNcIilcclxuXHJcbiAgICB0aGlzLkxvYWRUcmVlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX2NvbGxhcHNlQWxsICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jb2xsYXBzZUFsbE5vZGUodGhpcy5fY29sbGFwc2VBbGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5wdXQgUHJvcGVydHkgZsO8ciB0ZW1wbGF0ZSBkZXMgVHJlZVZpZXcuIFR5cGU6IFRlbXBsYXRlUmVmPGFueT4uXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGllIERpcmVjdGl2ZSBlcmjDpGx0IGRpZSBhY3Rpb25zIGbDvHIgZGFzIFRyZWVWaWV3XHJcbiAgICovXHJcbiAgQENvbnRlbnRDaGlsZCgnYWN0aW9ucycsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHVibGljIHNldCB0cmVldmlld1RlbXBsYXRlKHY6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIHRoaXMudGVtcGxhdGUgPSB2O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0dGVyIGbDvHIgZGFzIFRyZWVWaWV3IFRlbXBsYXRlXHJcbiAgICovXHJcbiAgcHVibGljIGdldCB0cmVldmlld1RlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnB1dCBwcm9wZXJ0eSBlcmjDpGx0IEljb24gZsO8ciBkYXMgVGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIGZpbGVpY29udGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHRlciBwcm9wZXJ0eS4gRGVmZmluaWVydCBkYXMgRmlsZUljb24gZsO8ciBkYXMgVHJlZVZpZXdcclxuICAgKi9cclxuICBAQ29udGVudENoaWxkKCd0cmVlZmlsZWljb24nLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHB1YmxpYyBzZXQgdHJlZWZpbGVpY29uKHY6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIHRoaXMuZmlsZWljb250ZW1wbGF0ZSA9IHY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgcHJvcGVydHkuIEVyZ2lidCBkYXMgRmlsZUljb24gZsO8ciBkYXMgVHJlZVZpZXdcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IHRyZWVmaWxlaWNvbigpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmZpbGVpY29udGVtcGxhdGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnB1dCBwcm9wZXJ0eSBmw7xyIGRlbiBOYW1lbiBkZXMgVHJlZVZpZXcuIFR5cGUgc3RyaW5nLiBEZWZhdWx0IHZhbHVlOiBcIlwiXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBuYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogQSBmbGFnIGluZGljYXRpbmcgZGF0YSBpcyBmbGF0dGVuIGluIGFycmF5IGFuZCBwcmVwYXJlIGlzIHJlcXVpcmVkLihEZWZhdWx0XHJcbiAgICogaXMgZmFsc2UpLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHByZXBhcmVEYXRhID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEF0dHJpYnV0ZSBmb3IgVGV4dCBpbiBUcmVlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGV4dEF0dHIgPSAnZGF0YSc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE5hbWUgb2YgSUQgcHJvcGVydHkgaW4gaW5wdXQgZGF0YS5cclxuICAgKi9cclxuICBASW5wdXQoKSBpZEF0dHIgPSAnaWQnO1xyXG5cclxuICAvKipcclxuICAgKiBOYW1lIG9mIHBhcmVudCBwcm9wZXJ0eSBpbiBpbnB1dCBkYXRhLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhcmVudEF0dHIgPSAnUEFSRU5UX0lEJztcclxuXHJcbiAgLyoqXHJcbiAgICogTmFtZSBvZiBjaGlsZHJlbiBsaXN0IHByb3BlcnR5IGluIGlucHV0IGRhdGEuXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2hpbGRyZW5BdHRyID0gJ2NoaWxkcmVuJztcclxuXHJcbiAgLyoqXHJcbiAgICogVGl0bGUgZGVzIFRyZWV2aWV3XHJcbiAgICovXHJcbiAgQElucHV0KCkgdGl0bGU7XHJcblxyXG4gIC8vIEBJbnB1dChcInRpdGxlQWN0aW9uXCIpIF90aXRsZUFjdGlvbjogc3RyaW5nXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbGxhcHNlIG9yIGV4cGFuZCBhbGwgcGFyZW50IG5vZGVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGNvbGxhcHNlYWxsKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9jb2xsYXBzZUFsbCA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMubm9kZXMgJiYgdGhpcy5ub2Rlcy5sZW5ndGggJiYgdGhpcy5ub2Rlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VBbGxOb2RlKHRoaXMuX2NvbGxhcHNlQWxsKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLl9yZWN1cnNpdmVFZGl0KFxyXG4gICAgLy8gICB0aGlzLm5vZGVzLCB0aGlzLmNoaWxkcmVuQXR0ciwgdGhpcy5jb2xsYXBzZUF0dHIsIHRoaXMuX2NvbGxhcHNlQWxsKTtcclxuXHJcbiAgICAvLyB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlciBmw7xyIGRhcyBjb2xsYXBzZSBwcm9wZXJ0eS4gRXJnaWJ0IGJvb2xlYW4gV2VydCwgb2IgZGllIEl0ZW1zIGNvbGxhcHNlZC9leHBhbmQgc2luZC5cclxuICAgKi9cclxuICBnZXQgY29sbGFwc2VhbGwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sbGFwc2VBbGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3Qgb3IgZGVzZWxlY3QgYWxsIG5vZGVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlbGVjdGFsbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2VsZWN0QWxsID0gdmFsdWU7XHJcbiAgICB0aGlzLl9yZWN1cnNpdmVFZGl0KHRoaXMubm9kZXMsIHRoaXMuY2hpbGRyZW5BdHRyLCB0aGlzLnNlbGVjdEF0dHIsIHZhbHVlKTtcclxuICAgIHRoaXMuX3JlY3Vyc2l2ZUVkaXQoXHJcbiAgICAgIHRoaXMubm9kZXMsXHJcbiAgICAgIHRoaXMuY2hpbGRyZW5BdHRyLFxyXG4gICAgICB0aGlzLmluRGV0ZXJtaW5hdGVBdHRyLFxyXG4gICAgICBmYWxzZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIElucHV0IHByb3BlcnR5IC0gc2V0dGVyLiBEZWZmaW5pZXJ0IGRhcyBJRCBkZXMgc2VsZWt0aWVydGVuIEl0ZW0obm9kZSlcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBzZWxlY3RlZGlkKHY6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSB0aGlzLmZpbmROb2RlKHRoaXMubm9kZXMsIHYsIHRoaXMuaWRBdHRyKTtcclxuXHJcbiAgICAvLyBpZiAodGhpcy5zZWxlY3RlZE5vZGUpIHtcclxuICAgIC8vICAgdGhpcy5zZWxlY3RlZElkRW1pdHRlci5lbWl0KHRoaXMuc2VsZWN0ZWROb2RlW3RoaXMuaWRBdHRyXSk7XHJcbiAgICAvLyAgIHRoaXMuc2VsZWN0ZWRUZXh0RW1pdHRlci5lbWl0KHRoaXMuc2VsZWN0ZWROb2RlW3RoaXMudGV4dEF0dHJdKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlci4gRXJnaWJ0IGRhcyBJRCBkZXMgc2VsZWt0aWVydGVuIEl0ZW0obm9kZSlcclxuICAgKi9cclxuICBnZXQgc2VsZWN0ZWRJZCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWROb2RlID8gdGhpcy5zZWxlY3RlZE5vZGVbdGhpcy5pZEF0dHJdIDogbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERhcyBQcm9wZXJ0eSBlcmjDpGx0IGRhcyBzZWxla3RpZXJ0ZSBXZXJ0KG5vZGUpLiBEZWZhdWx0IHZhbHVlOiB1bmRlZmluZWQvbnVsbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3NlbGVjdGVkTm9kZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0dGVyIGbDvHIgZGFzIHNlbGVrdGllcnRlIFdlcnQobm9kZSkuIFdlbm4gYXVmZ2VydWZlbiBkYXMgSUQgdW5kIFRleHRBdHRyIGRlcyBzZWxlY3RlZCBOb2RlIHdpcmQgZW1pdHRlZFxyXG4gICAqL1xyXG4gIHNldCBzZWxlY3RlZE5vZGUodjogYW55KSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZE5vZGUgPSB2O1xyXG5cclxuICAgIGlmICh0aGlzLl9zZWxlY3RlZE5vZGUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZGlkY2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZElkKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZHRleHRjaGFuZ2VkLmVtaXQodlt0aGlzLnRleHRBdHRyXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZsO8ciBkYXMgc2VsZWt0aWVydGUgV2VydChub2RlKS4gRXJnaWJ0IGRhcyBzZWxla3RpZXJ0ZSBXZXJ0KG5vZGUpLlxyXG4gICAqL1xyXG4gIGdldCBzZWxlY3RlZE5vZGUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZE5vZGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPdXRwdXQgRW1pdHRlci4gRW1pdCBkYXMgSUQgZGVzIHNlbGVjdGVkIE5vZGUuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZWN0ZWRpZGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogT3V0cHV0IEVtaXR0ZXIuIEVtaXQgZGFzIFRleHRBdHRyIGRlcyBzZWxlY3RlZCBOb2RlLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGVkdGV4dGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIE91dHB1dCBFbWl0dGVyLiBFbWl0IHdlbm4gZWluIE5vZGUgc2VsZWt0aWVydCB3aXJkLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGVkaXRlbTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQSBsaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCBhZnRlciBBbmd1bGFyIGhhcyBpbml0aWFsaXplZCBhbGwgZGF0YS1ib3VuZCBwcm9wZXJ0aWVzIG9mIGEgZGlyZWN0aXZlLlxyXG4gICAqIERlZmluZSBhbiBuZ09uSW5pdCgpIG1ldGhvZCB0byBoYW5kbGUgYW55IGFkZGl0aW9uYWwgaW5pdGlhbGl6YXRpb24gdGFza3MuXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNvbGxhcHNlQWxsTm9kZSh0aGlzLl9jb2xsYXBzZUFsbCk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJZCkgdGhpcy5vcGVuU2VsZWN0ZWROb2RlKHRoaXMubm9kZXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRnVua3Rpb24gc2V0enQgYWxsZSBwYXJlbnQgaXRlbXMgcmVjdXNpdiB6dW0gc2VsZWN0ZWQgbm9kZVxyXG4gICAqIGF1ZiBjb2xsYXBzZWQgPSBmYWxzZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgb3BlblNlbGVjdGVkTm9kZShkYXRhKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGRhdGFbaV1bdGhpcy5jaGlsZHJlbkF0dHJdLmxlbmd0aCAmJlxyXG4gICAgICAgIGRhdGFbaV1bdGhpcy5pZEF0dHJdICE9IHRoaXMuc2VsZWN0ZWRJZFxyXG4gICAgICApXHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5vcGVuU2VsZWN0ZWROb2RlKGRhdGFbaV1bdGhpcy5jaGlsZHJlbkF0dHJdKTtcclxuICAgICAgaWYgKHJlc3VsdCB8fCBkYXRhW2ldW3RoaXMuaWRBdHRyXSA9PSB0aGlzLnNlbGVjdGVkSWQpIHtcclxuICAgICAgICBkYXRhW2ldW3RoaXMuY29sbGFwc2VBdHRyXSA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaWUgTWV0aG9kZSB2b3JiZXJlaXRldCBkaWUgRGF0ZW4gZsO8ciBkYXMgVHJlZVZpZXcuIERpZSBGdW5rdGlvbiBzb2xsdGUgZ2XDpG5kZXJ0IHdlcmRlbiBhYmjDpG5naWcgdm9uIGRlbSBrb21tZW5kZW4gRGF0ZW4gKHdlbm4gYXJyYXkpXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBMb2FkVHJlZSgpIHtcclxuICAgIC8vaWYgdGhlIHRyZWUgc3RydWN0dXJlIHJlcXVpcmUgYXJyYXkgdGhlIGZ1bmN0aW9uIGJlbG93IHNob3VsZCBiZSBjaGFuZ2VkXHJcbiAgICBjb25zdCBjbG9uZWQgPSB0aGlzLl9kYXRhLm1hcCgoeCkgPT4gT2JqZWN0LmFzc2lnbih7fSwgeCkpO1xyXG5cclxuICAgIC8vIElmIGRhdGEgaXMgZmxhdCwgcHJlcGFyZSBkYXRhIHdpdGggcmVjdXJzaXZlIGZ1bmN0aW9uLlxyXG4gICAgdGhpcy5ub2RlcyA9IHRoaXMucHJlcGFyZURhdGEgPyB0aGlzLl9nZXRQcmVwYXJlZERhdGEoY2xvbmVkKSA6IHRoaXMuX2RhdGE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaWUgTWV0aG9kZSBjb2xsYXBzZS9leHBhbmQgZGVuIHNlbGVjdGllcnRlbiBOb2RlXHJcbiAgICovXHJcbiAgb25Db2xsYXBzZUNsaWNrKG5vZGUpIHtcclxuICAgIGlmIChub2RlW3RoaXMuY2hpbGRyZW5BdHRyXS5sZW5ndGgpIHtcclxuICAgICAgbm9kZVt0aGlzLmNvbGxhcHNlQXR0cl0gPSAhbm9kZVt0aGlzLmNvbGxhcHNlQXR0cl07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaWUgTWV0aG9kZSBzZXQgZGVuIHNlbGVrdGllcnRlbiBOb2RlIHVuZCBlbWl0IGVzLlxyXG4gICAqL1xyXG4gIG9uQ2xpY2sobm9kZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBub2RlO1xyXG4gICAgdGhpcy5zZWxlY3RlZGl0ZW0uZW1pdCh0aGlzLnNlbGVjdGVkTm9kZSk7XHJcbiAgICAvLyB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIHdpcmQgZWluIGV2ZW50IG1pdCBNZWxkdW5nIHp1IFBhcmVudCBlbWl0LWVuLlxyXG4gICAqL1xyXG4gIHNlbmRNc2dUb1BhcmVudChtc2cpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRpdGVtLmVtaXQobXNnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIHdpcmQgYWxsZSBOb2RlcyBjb2xsYXBzZVxyXG4gICAqL1xyXG4gIGNvbGxhcHNlQWxsTm9kZShjb21tYW5kKSB7XHJcbiAgICB0aGlzLm5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgaWYgKG5vZGVbdGhpcy5jaGlsZHJlbkF0dHJdLmxlbmd0aCkge1xyXG4gICAgICAgIGNvbGxhcHNlQWxsSElkZGVuKG5vZGUsIHRoaXMuY29sbGFwc2VBdHRyLCBjb21tYW5kLCB0aGlzLmNoaWxkcmVuQXR0cik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgZnVuY3Rpb24gY29sbGFwc2VBbGxISWRkZW4obm9kZSwgY29sbGFwc2VBdHRyLCBjb21tYW5kLCBjaGlsZHJlbkF0dHIpIHtcclxuICAgICAgbm9kZVtjb2xsYXBzZUF0dHJdID0gY29tbWFuZDtcclxuICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGNoaWxkW2NoaWxkcmVuQXR0cl0ubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb2xsYXBzZUFsbEhJZGRlbihjaGlsZCwgY29sbGFwc2VBdHRyLCBjb21tYW5kLCBjaGlsZHJlbkF0dHIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGdW5rdGlvbiBnaWJ0IG5vZGUgYXVzIGRlciBsaXN0ZSB6dXLDvGNrLCB3ZWxjaGVzIGRhcyBWYWx1ZSBhdWYgZGVtIGdld8O8bnNjaHRlbiBBdHRyaWJ1dCBoYXRcclxuICAgKiBXZW5uIG5vZGUgbmljaHQgZ2VmdW5kZW4gd2lyZCwgd2lyZCBudWxsIHp1csO8Y2sgZ2VnZWJlblxyXG4gICAqIEBwYXJhbSBkYXRhIExpc3RlIGRlciBub2Rlc1xyXG4gICAqIEBwYXJhbSBzZWFyY2hWYWx1ZSBEYXMgZ2VzdWNodGUgdmFsdWVcclxuICAgKiBAcGFyYW0gYXR0ciBEZXIgbmFtZW4gZGVzIEF0dHJpYnV0cyBhdWYgZGVtIGRhcyB2YWx1ZSBnZXN1Y2h0IHdpcmRcclxuICAgKi9cclxuICBwcml2YXRlIGZpbmROb2RlKGRhdGEsIHNlYXJjaFZhbHVlLCBhdHRyKTogYW55IHtcclxuICAgIGxldCByZXN1bHQ6IGFueSA9IG51bGw7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGRhdGFbaV1bYXR0cl0gPT0gc2VhcmNoVmFsdWUpIHJlc3VsdCA9IGRhdGFbaV07XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChkYXRhW2ldW3RoaXMuY2hpbGRyZW5BdHRyXS5sZW5ndGgpIHtcclxuICAgICAgICAgIGxldCByZWN1cnNpdmVSZXN1bHQgPSB0aGlzLmZpbmROb2RlKFxyXG4gICAgICAgICAgICBkYXRhW2ldW3RoaXMuY2hpbGRyZW5BdHRyXSxcclxuICAgICAgICAgICAgc2VhcmNoVmFsdWUsXHJcbiAgICAgICAgICAgIGF0dHJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZiAocmVjdXJzaXZlUmVzdWx0KSByZXN1bHQgPSByZWN1cnNpdmVSZXN1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGllIE1ldGhvZGUgZWRpdGllcnQgKHJlY3Vyc2l2ZSkgYWxsZSBlaW5nZWdlYmVuZSBOb2RlcyBhYmjDpG5naWcgdm9uIGdlZ2ViZW5lbiBBdHRpYnV0ZSB1bmQgVmFsdWUgS3JpdGVyaWVuLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3JlY3Vyc2l2ZUVkaXQobGlzdCwgY2hpbGRyZW5BdHRyLCBhdHRyLCB2YWx1ZSkge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkobGlzdCkpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGxpc3QubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICBsaXN0W2ldW2F0dHJdID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKGxpc3RbaV1bY2hpbGRyZW5BdHRyXS5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuX3JlY3Vyc2l2ZUVkaXQobGlzdFtpXVtjaGlsZHJlbkF0dHJdLCBjaGlsZHJlbkF0dHIsIGF0dHIsIHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIGVyc3RlbGx0IGVpbmUgc3RhbmRhcnRlIFNpY2h0LUxpc3RlIHZvbiBOb2Rlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX2dldFByZXBhcmVkRGF0YShsaXN0KSB7XHJcbiAgICBjb25zdCB0cmVlID0gW10sXHJcbiAgICAgIGxvb2t1cCA9IHt9O1xyXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGxpc3QubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgbG9va3VwW2xpc3RbaV1bdGhpcy5pZEF0dHJdXSA9IGxpc3RbaV07XHJcbiAgICAgIGxpc3RbaV1bdGhpcy5jaGlsZHJlbkF0dHJdID0gW107XHJcbiAgICAgIGxpc3RbaV1bdGhpcy5jb2xsYXBzZUF0dHJdID0gdHJ1ZTtcclxuICAgICAgbGlzdFtpXVt0aGlzLnNlbGVjdEF0dHJdID0gZmFsc2U7XHJcbiAgICAgIGxpc3RbaV1bdGhpcy5pbkRldGVybWluYXRlQXR0cl0gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBsaXN0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgIGlmIChsaXN0W2ldW3RoaXMucGFyZW50QXR0cl0pIHtcclxuICAgICAgICBsb29rdXBbbGlzdFtpXVt0aGlzLnBhcmVudEF0dHJdXVt0aGlzLmNoaWxkcmVuQXR0cl0ucHVzaChsaXN0W2ldKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0cmVlLnB1c2gobGlzdFtpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJlZTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
+ *
4
+ * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
+ * tslint:disable
6
+ */
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2pla3RlL3NpbXBsZWFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3RyZWV2aWV3L3RyZWV2aWV3Lm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pMC5Db21wb25lbnRGYWN0b3J5O1xuIl19
@@ -0,0 +1,18 @@
1
+ import { Directive } from '@angular/core';
2
+ import { SacTreeViewCommon } from './treeview';
3
+ /**
4
+ * Komponente für SacTreeViewChildCommon. Extends SacTreeViewCommon
5
+ */
6
+ export class SacTreeViewChildCommon extends SacTreeViewCommon {
7
+ /**
8
+ * A lifecycle hook that is called after Angular has initialized all data-bound properties of a directive.
9
+ * Define an ngOnInit() method to handle any additional initialization tasks.
10
+ */
11
+ ngOnInit() {
12
+ this.collapseAllNode(this.collapseall);
13
+ }
14
+ }
15
+ SacTreeViewChildCommon.decorators = [
16
+ { type: Directive }
17
+ ];
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXdjaGlsZC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy90cmVldmlldy90cmVldmlld2NoaWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRS9DOztHQUVHO0FBRUgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGlCQUFpQjtJQUMzRDs7O09BR0c7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDeEMsQ0FBQzs7O1lBUkYsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNhY1RyZWVWaWV3Q29tbW9uIH0gZnJvbSAnLi90cmVldmlldyc7XHJcblxyXG4vKipcclxuICogS29tcG9uZW50ZSBmw7xyIFNhY1RyZWVWaWV3Q2hpbGRDb21tb24uIEV4dGVuZHMgU2FjVHJlZVZpZXdDb21tb24gXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY1RyZWVWaWV3Q2hpbGRDb21tb24gZXh0ZW5kcyBTYWNUcmVlVmlld0NvbW1vbiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLyoqXHJcbiAgICogQSBsaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCBhZnRlciBBbmd1bGFyIGhhcyBpbml0aWFsaXplZCBhbGwgZGF0YS1ib3VuZCBwcm9wZXJ0aWVzIG9mIGEgZGlyZWN0aXZlLiBcclxuICAgKiBEZWZpbmUgYW4gbmdPbkluaXQoKSBtZXRob2QgdG8gaGFuZGxlIGFueSBhZGRpdGlvbmFsIGluaXRpYWxpemF0aW9uIHRhc2tzLlxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCl7ICAgIFxyXG4gICAgdGhpcy5jb2xsYXBzZUFsbE5vZGUodGhpcy5jb2xsYXBzZWFsbClcclxuICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
+ *
4
+ * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
+ * tslint:disable
6
+ */
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXdjaGlsZC5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdHJlZXZpZXcvdHJlZXZpZXdjaGlsZC5uZ2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiJdfQ==
@@ -0,0 +1,163 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { SacUploadBase } from '../../common/baseuploadcontrol';
3
+ import { Validation } from '../../validation';
4
+ /**
5
+ * Upload Komponente für ein einzelnes File
6
+ */
7
+ export class SacDropzoneMultipleCommon extends SacUploadBase {
8
+ constructor() {
9
+ // #region Properties
10
+ super(...arguments);
11
+ /**
12
+ * Max. Anzahl Files die hochgeladen werden können
13
+ */
14
+ this.maxfiles = 0;
15
+ /**
16
+ * Min. Anzahl Files die hochgeladen werden müssen
17
+ */
18
+ this.minfiles = 0;
19
+ /**
20
+ * Höhe des Upload Controls
21
+ */
22
+ this.uploadheight = null;
23
+ /**
24
+ * Resource Key für Validation Message Required bei Control
25
+ */
26
+ this.validationmessageminfiles = this.validationKeyService.ValidationErrorFilesMin;
27
+ /**
28
+ * Resource Key für Validation Message Required in Validation Summary
29
+ */
30
+ this.validationmessagesummaryminfiles = this.validationKeyService.ValidationErrorSummaryFilesMin;
31
+ /**
32
+ * Property wenn Drag Event aktiv ist (Maus über Zone)
33
+ */
34
+ this.active = false;
35
+ // #endregion Public Methods
36
+ }
37
+ // #endregion Properties
38
+ // #region Public Methods
39
+ /**
40
+ * Prüft ob die max. Files in der Queue nicht überschritten werden
41
+ *
42
+ * @param file File das hinzugefügt wurde
43
+ */
44
+ CustomAddValidation(file) {
45
+ if (this.maxfiles > 0 && this.uploads.length >= this.maxfiles) {
46
+ this.onfileerror.emit('INVALID_MAXFILES');
47
+ return false;
48
+ }
49
+ else {
50
+ return true;
51
+ }
52
+ }
53
+ /**
54
+ * Setzt die File ID's der hochgeladen Files in das Model
55
+ *
56
+ * @param file ID des Files welches hochgeladen wurde.
57
+ */
58
+ SetUploadValue(file) {
59
+ let documentid = null;
60
+ if (file === null) {
61
+ documentid = null;
62
+ }
63
+ else {
64
+ if (file.response !== undefined &&
65
+ file.response !== null &&
66
+ file.response.documentid !== null &&
67
+ file.response.documentid !== undefined) {
68
+ documentid = file.response.documentid;
69
+ }
70
+ else {
71
+ documentid = file.uploadId;
72
+ }
73
+ // Document ID aktualisieren, damit Wert von Server in Model gesetzt werden kann.
74
+ this.uploads
75
+ .filter((itm) => itm !== null && itm.uploadId === file.uploadId)
76
+ .forEach((itm) => {
77
+ itm.documentid = documentid;
78
+ });
79
+ }
80
+ // List of Files
81
+ const fileIds = [];
82
+ // Add all Items with Uploaded State to Model
83
+ this.uploads
84
+ .filter((itm) => itm.status === 'complete')
85
+ .forEach((itm) => {
86
+ if (itm.documentid !== null && itm.documentid !== undefined) {
87
+ fileIds.push(itm.documentid);
88
+ }
89
+ });
90
+ if (fileIds.length > 0) {
91
+ super.setValue(fileIds);
92
+ }
93
+ else {
94
+ super.setValue(null);
95
+ }
96
+ }
97
+ /**
98
+ * Methode für Drag and Drop von Files
99
+ * @param event Drag Event
100
+ */
101
+ dropHandler(event) {
102
+ if (event.dataTransfer &&
103
+ event.dataTransfer.files &&
104
+ event.dataTransfer.files.item(0)) {
105
+ event.stopPropagation();
106
+ event.preventDefault();
107
+ this.active = false;
108
+ this.uploadService.handleFileList(event.dataTransfer.files);
109
+ }
110
+ }
111
+ /**
112
+ * Ervent wenn das Control initialisert wird
113
+ */
114
+ ngOnInit() {
115
+ super.ngOnInit();
116
+ this.autoupload = true;
117
+ }
118
+ /**
119
+ * Methode wenn Drag die Zone verlässt
120
+ * @param event DragLeave Event
121
+ */
122
+ onDragLeave(event) {
123
+ this.active = false;
124
+ }
125
+ /**
126
+ * Methode wenn Drag in die Zone eintritt
127
+ * @param event DragEnter Event
128
+ */
129
+ onDragOver(event) {
130
+ if (event.dataTransfer &&
131
+ event.dataTransfer.files &&
132
+ event.dataTransfer.types.every((itm) => itm === 'Files') &&
133
+ event.dataTransfer.types.length > 0) {
134
+ event.dataTransfer.dropEffect = 'copy';
135
+ event.stopPropagation();
136
+ event.preventDefault();
137
+ this.active = true;
138
+ }
139
+ }
140
+ /**
141
+ * Validiert das Control
142
+ *
143
+ * @param c Control
144
+ */
145
+ validateData(c) {
146
+ let error = super.validateData(c);
147
+ if (error === null) {
148
+ error = Validation.minFiles(this.minfiles, this.validationmessageminfiles, this.validationmessagesummaryminfiles)(c);
149
+ }
150
+ return error;
151
+ }
152
+ }
153
+ SacDropzoneMultipleCommon.decorators = [
154
+ { type: Directive }
155
+ ];
156
+ SacDropzoneMultipleCommon.propDecorators = {
157
+ maxfiles: [{ type: Input }],
158
+ minfiles: [{ type: Input }],
159
+ uploadheight: [{ type: Input }],
160
+ validationmessageminfiles: [{ type: Input }],
161
+ validationmessagesummaryminfiles: [{ type: Input }]
162
+ };
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmVtdWx0aXBsZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWt0ZS9zaW1wbGVhbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy91cGxvYWQvZHJvcHpvbmVtdWx0aXBsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUd6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDOztHQUVHO0FBRUgsTUFBTSxPQUFPLHlCQUNYLFNBQVEsYUFBdUI7SUFGakM7UUFLRSxxQkFBcUI7O1FBRXJCOztXQUVHO1FBRUksYUFBUSxHQUFXLENBQUMsQ0FBQztRQUM1Qjs7V0FFRztRQUVJLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDNUI7O1dBRUc7UUFFSSxpQkFBWSxHQUFXLElBQUksQ0FBQztRQUNuQzs7V0FFRztRQUNhLDhCQUF5QixHQUN2QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUM7UUFDcEQ7O1dBRUc7UUFFSSxxQ0FBZ0MsR0FDckMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLDhCQUE4QixDQUFDO1FBRTNEOztXQUVHO1FBQ0ksV0FBTSxHQUFHLEtBQUssQ0FBQztRQTJJdEIsNEJBQTRCO0lBQzlCLENBQUM7SUExSUMsd0JBQXdCO0lBRXhCLHlCQUF5QjtJQUV6Qjs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQUMsSUFBaUI7UUFDMUMsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzdELElBQUksQ0FBQyxXQUFXLENBQUMs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QUN4QixLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUM7WUFDeEQsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDbkM7WUFDQSxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7WUFDdkMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLENBQWtCO1FBQ3BDLElBQUksS0FBSyxHQUE0QixLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTNELElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUNsQixLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FDekIsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMseUJBQXlCLEVBQzlCLElBQUksQ0FBQyxnQ0FBZ0MsQ0FDdEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7WUE5S0YsU0FBUzs7O3VCQVVQLEtBQUs7dUJBS0wsS0FBSzsyQkFLTCxLQUFLO3dDQUtMLEtBQUs7K0NBS0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFVwbG9hZFN0YXRlIH0gZnJvbSAnbmd4LXVwbG9hZHgnO1xyXG5pbXBvcnQgeyBTYWNVcGxvYWRCYXNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2V1cGxvYWRjb250cm9sJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24nO1xyXG5cclxuLyoqXHJcbiAqIFVwbG9hZCBLb21wb25lbnRlIGbDvHIgZWluIGVpbnplbG5lcyBGaWxlXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFNhY0Ryb3B6b25lTXVsdGlwbGVDb21tb25cclxuICBleHRlbmRzIFNhY1VwbG9hZEJhc2U8c3RyaW5nW10+XHJcbiAgaW1wbGVtZW50cyBPbkluaXRcclxue1xyXG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvKipcclxuICAgKiBNYXguIEFuemFobCBGaWxlcyBkaWUgaG9jaGdlbGFkZW4gd2VyZGVuIGvDtm5uZW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtYXhmaWxlczogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBNaW4uIEFuemFobCBGaWxlcyBkaWUgaG9jaGdlbGFkZW4gd2VyZGVuIG3DvHNzZW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtaW5maWxlczogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBIw7ZoZSBkZXMgVXBsb2FkIENvbnRyb2xzXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdXBsb2FkaGVpZ2h0OiBzdHJpbmcgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZW1pbmZpbGVzOiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JGaWxlc01pbjtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5bWluZmlsZXM6IHN0cmluZyA9XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlGaWxlc01pbjtcclxuXHJcbiAgLyoqXHJcbiAgICogUHJvcGVydHkgd2VubiBEcmFnIEV2ZW50IGFrdGl2IGlzdCAoTWF1cyDDvGJlciBab25lKVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogUHLDvGZ0IG9iIGRpZSBtYXguIEZpbGVzIGluIGRlciBRdWV1ZSBuaWNodCDDvGJlcnNjaHJpdHRlbiB3ZXJkZW5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBmaWxlIEZpbGUgZGFzIGhpbnp1Z2Vmw7xndCB3dXJkZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBDdXN0b21BZGRWYWxpZGF0aW9uKGZpbGU6IFVwbG9hZFN0YXRlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5tYXhmaWxlcyA+IDAgJiYgdGhpcy51cGxvYWRzLmxlbmd0aCA+PSB0aGlzLm1heGZpbGVzKSB7XHJcbiAgICAgIHRoaXMub25maWxlZXJyb3IuZW1pdCgnSU5WQUxJRF9NQVhGSUxFUycpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHp0IGRpZSBGaWxlIElEJ3MgZGVyIGhvY2hnZWxhZGVuIEZpbGVzIGluIGRhcyBNb2RlbFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZpbGUgSUQgZGVzIEZpbGVzIHdlbGNoZXMgaG9jaGdlbGFkZW4gd3VyZGUuXHJcbiAgICovXHJcbiAgcHVibGljIFNldFVwbG9hZFZhbHVlKGZpbGU6IFVwbG9hZFN0YXRlKSB7XHJcbiAgICBsZXQgZG9jdW1lbnRpZDogc3RyaW5nID0gbnVsbDtcclxuICAgIGlmIChmaWxlID09PSBudWxsKSB7XHJcbiAgICAgIGRvY3VtZW50aWQgPSBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZpbGUucmVzcG9uc2UgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgIGZpbGUucmVzcG9uc2UgIT09IG51bGwgJiZcclxuICAgICAgICBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQgIT09IG51bGwgJiZcclxuICAgICAgICBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQgIT09IHVuZGVmaW5lZFxyXG4gICAgICApIHtcclxuICAgICAgICBkb2N1bWVudGlkID0gZmlsZS5yZXNwb25zZS5kb2N1bWVudGlkO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRvY3VtZW50aWQgPSBmaWxlLnVwbG9hZElkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBEb2N1bWVudCBJRCBha3R1YWxpc2llcmVuLCBkYW1pdCBXZXJ0IHZvbiBTZXJ2ZXIgaW4gTW9kZWwgZ2VzZXR6dCB3ZXJkZW4ga2Fubi5cclxuICAgICAgdGhpcy51cGxvYWRzXHJcbiAgICAgICAgLmZpbHRlcigoaXRtKSA9PiBpdG0gIT09IG51bGwgJiYgaXRtLnVwbG9hZElkID09PSBmaWxlLnVwbG9hZElkKVxyXG4gICAgICAgIC5mb3JFYWNoKChpdG0pID0+IHtcclxuICAgICAgICAgIGl0bS5kb2N1bWVudGlkID0gZG9jdW1lbnRpZDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBMaXN0IG9mIEZpbGVzXHJcbiAgICBjb25zdCBmaWxlSWRzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIC8vIEFkZCBhbGwgSXRlbXMgd2l0aCBVcGxvYWRlZCBTdGF0ZSB0byBNb2RlbFxyXG4gICAgdGhpcy51cGxvYWRzXHJcbiAgICAgIC5maWx0ZXIoKGl0bSkgPT4gaXRtLnN0YXR1cyA9PT0gJ2NvbXBsZXRlJylcclxuICAgICAgLmZvckVhY2goKGl0bSkgPT4ge1xyXG4gICAgICAgIGlmIChpdG0uZG9jdW1lbnRpZCAhPT0gbnVsbCAmJiBpdG0uZG9jdW1lbnRpZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBmaWxlSWRzLnB1c2goaXRtLmRvY3VtZW50aWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgaWYgKGZpbGVJZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBzdXBlci5zZXRWYWx1ZShmaWxlSWRzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN1cGVyLnNldFZhbHVlKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSBmw7xyIERyYWcgYW5kIERyb3Agdm9uIEZpbGVzXHJcbiAgICogQHBhcmFtIGV2ZW50IERyYWcgRXZlbnRcclxuICAgKi9cclxuICBwdWJsaWMgZHJvcEhhbmRsZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIgJiZcclxuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzICYmXHJcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5pdGVtKDApXHJcbiAgICApIHtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS5oYW5kbGVGaWxlTGlzdChldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXJ2ZW50IHdlbm4gZGFzIENvbnRyb2wgaW5pdGlhbGlzZXJ0IHdpcmRcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAgIHRoaXMuYXV0b3VwbG9hZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIHdlbm4gRHJhZyBkaWUgWm9uZSB2ZXJsw6Rzc3RcclxuICAgKiBAcGFyYW0gZXZlbnQgRHJhZ0xlYXZlIEV2ZW50XHJcbiAgICovXHJcbiAgcHVibGljIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIHdlbm4gRHJhZyBpbiBkaWUgWm9uZSBlaW50cml0dFxyXG4gICAqIEBwYXJhbSBldmVudCBEcmFnRW50ZXIgRXZlbnRcclxuICAgKi9cclxuICBwdWJsaWMgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2ZlciAmJlxyXG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMgJiZcclxuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmV2ZXJ5KChpdG0pID0+IGl0bSA9PT0gJ0ZpbGVzJykgJiZcclxuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmxlbmd0aCA+IDBcclxuICAgICkge1xyXG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdjb3B5JztcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBkYXMgQ29udHJvbFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGMgQ29udHJvbFxyXG4gICAqL1xyXG4gIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IHN1cGVyLnZhbGlkYXRlRGF0YShjKTtcclxuXHJcbiAgICBpZiAoZXJyb3IgPT09IG51bGwpIHtcclxuICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLm1pbkZpbGVzKFxyXG4gICAgICAgIHRoaXMubWluZmlsZXMsXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZW1pbmZpbGVzLFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5bWluZmlsZXNcclxuICAgICAgKShjKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3I7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcbn1cclxuIl19
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
+ *
4
+ * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
+ * tslint:disable
6
+ */
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmVtdWx0aXBsZS5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVrdGUvc2ltcGxlYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdXBsb2FkL2Ryb3B6b25lbXVsdGlwbGUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmkwLkNvbXBvbmVudEZhY3Rvcnk7XG4iXX0=