@simpleangularcontrols/sac-common 10.0.0-rc.3 → 10.0.0-rc.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. package/README.md +16 -16
  2. package/bundles/simpleangularcontrols-sac-common.umd.js +13451 -11757
  3. package/bundles/simpleangularcontrols-sac-common.umd.js.map +1 -1
  4. package/bundles/simpleangularcontrols-sac-common.umd.min.js +1 -1
  5. package/bundles/simpleangularcontrols-sac-common.umd.min.js.map +1 -1
  6. package/common/basedatetimecontrol.d.ts +200 -83
  7. package/common/basedatetimecontrol.ngfactory.d.ts +1 -1
  8. package/common/baseinputcontrol.d.ts +40 -42
  9. package/common/baseinputcontrol.ngfactory.d.ts +1 -1
  10. package/common/baselistcontrol.d.ts +43 -43
  11. package/common/baselistcontrol.ngfactory.d.ts +1 -1
  12. package/common/basemodelcontrol.d.ts +300 -252
  13. package/common/basemodelcontrol.ngfactory.d.ts +1 -1
  14. package/common/baseselectcontrol.d.ts +14 -14
  15. package/common/baseselectcontrol.ngfactory.d.ts +1 -1
  16. package/common/baseuploadcontrol.d.ts +324 -284
  17. package/common/baseuploadcontrol.ngfactory.d.ts +1 -1
  18. package/components/browser/browser.d.ts +264 -267
  19. package/components/browser/browser.ngfactory.d.ts +1 -1
  20. package/components/browser/models/browserfile.d.ts +17 -17
  21. package/components/browser/models/browserfile.ngfactory.d.ts +1 -1
  22. package/components/browser/models/browserfiledeleterequest.d.ts +18 -18
  23. package/components/browser/models/browserfiledeleterequest.ngfactory.d.ts +1 -1
  24. package/components/browser/models/browserfilerenamerequest.d.ts +22 -22
  25. package/components/browser/models/browserfilerenamerequest.ngfactory.d.ts +1 -1
  26. package/components/browser/models/browserfileresponse.d.ts +10 -10
  27. package/components/browser/models/browserfileresponse.ngfactory.d.ts +1 -1
  28. package/components/browser/models/browserfilesaverequest.d.ts +22 -22
  29. package/components/browser/models/browserfilesaverequest.ngfactory.d.ts +1 -1
  30. package/components/browser/models/browsernode.d.ts +34 -34
  31. package/components/browser/models/browsernode.ngfactory.d.ts +1 -1
  32. package/components/browser/models/browsernodedeleterequest.d.ts +14 -14
  33. package/components/browser/models/browsernodedeleterequest.ngfactory.d.ts +1 -1
  34. package/components/browser/models/browsernodenewrequest.d.ts +18 -18
  35. package/components/browser/models/browsernodenewrequest.ngfactory.d.ts +1 -1
  36. package/components/browser/models/browsernoderenamerequest.d.ts +18 -18
  37. package/components/browser/models/browsernoderenamerequest.ngfactory.d.ts +1 -1
  38. package/components/browser/models/browsernoderequest.d.ts +18 -18
  39. package/components/browser/models/browsernoderequest.ngfactory.d.ts +1 -1
  40. package/components/browser/models/browsernoderesponse.d.ts +10 -10
  41. package/components/browser/models/browsernoderesponse.ngfactory.d.ts +1 -1
  42. package/controls/buttons/button.d.ts +80 -70
  43. package/controls/buttons/button.ngfactory.d.ts +1 -1
  44. package/controls/checkbox/checkbox.d.ts +32 -23
  45. package/controls/checkbox/checkbox.ngfactory.d.ts +1 -1
  46. package/controls/checkbox/radiobutton.d.ts +120 -79
  47. package/controls/checkbox/radiobutton.ngfactory.d.ts +1 -1
  48. package/controls/checkbox/radiobuttons.d.ts +63 -60
  49. package/controls/checkbox/radiobuttons.ngfactory.d.ts +1 -1
  50. package/controls/confirm/confirm.button.d.ts +25 -25
  51. package/controls/confirm/confirm.button.ngfactory.d.ts +1 -1
  52. package/controls/confirm/confirm.d.ts +50 -49
  53. package/controls/confirm/confirm.ngfactory.d.ts +1 -1
  54. package/controls/confirm/confirm.service.d.ts +63 -63
  55. package/controls/confirm/confirm.service.ngfactory.d.ts +1 -1
  56. package/controls/contextmenu/contextmenu.d.ts +134 -113
  57. package/controls/contextmenu/contextmenu.interface.d.ts +9 -0
  58. package/{utilities/positioning.ngfactory.d.ts → controls/contextmenu/contextmenu.interface.ngfactory.d.ts} +1 -1
  59. package/controls/contextmenu/contextmenu.ngfactory.d.ts +1 -1
  60. package/controls/contextmenu/contextmenuanchor.d.ts +15 -15
  61. package/controls/contextmenu/contextmenuanchor.ngfactory.d.ts +1 -1
  62. package/controls/contextmenu/contextmenucontainer.d.ts +15 -15
  63. package/controls/contextmenu/contextmenucontainer.ngfactory.d.ts +1 -1
  64. package/controls/contextmenu/contextmenuitem.d.ts +10 -5
  65. package/controls/contextmenu/contextmenuitem.ngfactory.d.ts +1 -1
  66. package/controls/contextmenu/contextmenuitembutton.d.ts +67 -66
  67. package/controls/contextmenu/contextmenuitembutton.ngfactory.d.ts +1 -1
  68. package/controls/datetime/date.d.ts +117 -120
  69. package/controls/datetime/date.ngfactory.d.ts +1 -1
  70. package/controls/datetime/dateselector.d.ts +176 -161
  71. package/controls/datetime/dateselector.ngfactory.d.ts +1 -1
  72. package/controls/datetime/datetime.d.ts +129 -135
  73. package/controls/datetime/datetime.ngfactory.d.ts +1 -1
  74. package/controls/datetime/time.d.ts +121 -115
  75. package/controls/datetime/time.ngfactory.d.ts +1 -1
  76. package/controls/dialog/dialog.d.ts +103 -105
  77. package/controls/dialog/dialog.ngfactory.d.ts +1 -1
  78. package/controls/form/form.d.ts +52 -47
  79. package/controls/form/form.ngfactory.d.ts +1 -1
  80. package/controls/grid/grid.d.ts +132 -125
  81. package/controls/grid/grid.ngfactory.d.ts +1 -1
  82. package/controls/grid/gridbutton.d.ts +53 -33
  83. package/controls/grid/gridbutton.ngfactory.d.ts +1 -1
  84. package/controls/grid/gridcolumn.d.ts +32 -28
  85. package/controls/grid/gridcolumn.ngfactory.d.ts +1 -1
  86. package/controls/grid/gridcolumnaction.d.ts +15 -15
  87. package/controls/grid/gridcolumnaction.ngfactory.d.ts +1 -1
  88. package/controls/grid/gridcolumnbase.d.ts +115 -86
  89. package/controls/grid/gridcolumnbase.ngfactory.d.ts +1 -1
  90. package/controls/grid/gridimage.d.ts +9 -9
  91. package/controls/grid/gridimage.ngfactory.d.ts +1 -1
  92. package/controls/grid/model.d.ts +95 -83
  93. package/controls/grid/model.ngfactory.d.ts +1 -1
  94. package/controls/grid/paging.d.ts +148 -147
  95. package/controls/grid/paging.ngfactory.d.ts +1 -1
  96. package/controls/input/input.d.ts +35 -35
  97. package/controls/input/input.ngfactory.d.ts +1 -1
  98. package/controls/input/inputarea.d.ts +28 -26
  99. package/controls/input/inputarea.ngfactory.d.ts +1 -1
  100. package/controls/input/inputcurrency.d.ts +14 -11
  101. package/controls/input/inputcurrency.ngfactory.d.ts +1 -1
  102. package/controls/input/inputdecimal.d.ts +59 -59
  103. package/controls/input/inputdecimal.ngfactory.d.ts +1 -1
  104. package/controls/input/inputemail.d.ts +19 -19
  105. package/controls/input/inputemail.ngfactory.d.ts +1 -1
  106. package/controls/input/inputinteger.d.ts +59 -59
  107. package/controls/input/inputinteger.ngfactory.d.ts +1 -1
  108. package/controls/input/inputpassword.d.ts +43 -23
  109. package/controls/input/inputpassword.ngfactory.d.ts +1 -1
  110. package/controls/input/inputsearch.d.ts +35 -23
  111. package/controls/input/inputsearch.ngfactory.d.ts +1 -1
  112. package/controls/layout/formlayout.d.ts +65 -46
  113. package/controls/layout/formlayout.ngfactory.d.ts +1 -1
  114. package/controls/list/buildvaluestring.d.ts +6 -0
  115. package/controls/{treeview/ngtreeitemaction.ngfactory.d.ts → list/buildvaluestring.ngfactory.d.ts} +1 -1
  116. package/controls/list/dropdown.d.ts +97 -138
  117. package/controls/list/dropdown.ngfactory.d.ts +1 -1
  118. package/controls/list/dropdownoptions.d.ts +38 -0
  119. package/{validation/minlength.validator.ngfactory.d.ts → controls/list/dropdownoptions.ngfactory.d.ts} +1 -1
  120. package/controls/list/list.module.d.ts +2 -2
  121. package/controls/list/list.module.ngfactory.d.ts +3 -3
  122. package/controls/list/listbox.d.ts +88 -86
  123. package/controls/list/listbox.ngfactory.d.ts +1 -1
  124. package/controls/multilanguage/multilanguageinput.d.ts +102 -102
  125. package/controls/multilanguage/multilanguageinput.ngfactory.d.ts +1 -1
  126. package/controls/multilanguage/multilanguageinputarea.d.ts +107 -107
  127. package/controls/multilanguage/multilanguageinputarea.ngfactory.d.ts +1 -1
  128. package/controls/static/formcontainer.d.ts +35 -31
  129. package/controls/static/formcontainer.ngfactory.d.ts +1 -1
  130. package/controls/static/staticlabel.d.ts +18 -18
  131. package/controls/static/staticlabel.ngfactory.d.ts +1 -1
  132. package/controls/tabs/tab.d.ts +49 -45
  133. package/controls/tabs/tab.ngfactory.d.ts +1 -1
  134. package/controls/tabs/tabitem.d.ts +30 -30
  135. package/controls/tabs/tabitem.ngfactory.d.ts +1 -1
  136. package/controls/tinymce/tinymce.d.ts +153 -149
  137. package/controls/tinymce/tinymce.ngfactory.d.ts +1 -1
  138. package/controls/tinymce/tinymcedialogsettings.d.ts +27 -27
  139. package/controls/tinymce/tinymcedialogsettings.ngfactory.d.ts +1 -1
  140. package/controls/tinymce/tinymcedialogsettingsmeta.d.ts +9 -9
  141. package/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.d.ts +1 -1
  142. package/controls/tinymce/tinymceinstance.d.ts +10 -10
  143. package/controls/tinymce/tinymceinstance.ngfactory.d.ts +1 -1
  144. package/controls/tooltip/tooltip.d.ts +158 -138
  145. package/controls/tooltip/tooltip.ngfactory.d.ts +1 -1
  146. package/controls/treeview/treeview.d.ts +230 -185
  147. package/controls/treeview/treeview.ngfactory.d.ts +1 -1
  148. package/controls/upload/dropzonemultiple.d.ts +74 -70
  149. package/controls/upload/dropzonemultiple.ngfactory.d.ts +1 -1
  150. package/controls/upload/dropzonesingle.d.ts +51 -47
  151. package/controls/upload/dropzonesingle.ngfactory.d.ts +1 -1
  152. package/controls/upload/uploadmultiple.d.ts +54 -50
  153. package/controls/upload/uploadmultiple.ngfactory.d.ts +1 -1
  154. package/controls/upload/uploadsingle.d.ts +31 -27
  155. package/controls/upload/uploadsingle.ngfactory.d.ts +1 -1
  156. package/controls/validation/validationsummary.d.ts +65 -60
  157. package/controls/validation/validationsummary.ngfactory.d.ts +1 -1
  158. package/controls/wizard/wizard.d.ts +80 -73
  159. package/controls/wizard/wizard.ngfactory.d.ts +1 -1
  160. package/controls/wizard/wizarditem.d.ts +25 -25
  161. package/controls/wizard/wizarditem.ngfactory.d.ts +1 -1
  162. package/enums/ButtonRoleType.d.ts +26 -1
  163. package/enums/ButtonRoleType.ngfactory.d.ts +1 -1
  164. package/enums/ControlHeight.d.ts +17 -17
  165. package/enums/ControlHeight.ngfactory.d.ts +1 -1
  166. package/enums/IconType.d.ts +7 -7
  167. package/enums/IconType.ngfactory.d.ts +1 -1
  168. package/esm2015/common/basedatetimecontrol.js +364 -164
  169. package/esm2015/common/basedatetimecontrol.ngfactory.js +7 -7
  170. package/esm2015/common/baseinputcontrol.js +75 -78
  171. package/esm2015/common/baseinputcontrol.ngfactory.js +7 -7
  172. package/esm2015/common/baselistcontrol.js +59 -55
  173. package/esm2015/common/baselistcontrol.ngfactory.js +7 -7
  174. package/esm2015/common/basemodelcontrol.js +563 -483
  175. package/esm2015/common/basemodelcontrol.ngfactory.js +7 -7
  176. package/esm2015/common/baseselectcontrol.js +28 -26
  177. package/esm2015/common/baseselectcontrol.ngfactory.js +7 -7
  178. package/esm2015/common/baseuploadcontrol.js +523 -457
  179. package/esm2015/common/baseuploadcontrol.ngfactory.js +7 -7
  180. package/esm2015/components/browser/browser.js +533 -545
  181. package/esm2015/components/browser/browser.ngfactory.js +7 -7
  182. package/esm2015/components/browser/models/browserfile.js +1 -1
  183. package/esm2015/components/browser/models/browserfile.ngfactory.js +7 -7
  184. package/esm2015/components/browser/models/browserfiledeleterequest.js +15 -13
  185. package/esm2015/components/browser/models/browserfiledeleterequest.ngfactory.js +7 -7
  186. package/esm2015/components/browser/models/browserfilerenamerequest.js +15 -13
  187. package/esm2015/components/browser/models/browserfilerenamerequest.ngfactory.js +7 -7
  188. package/esm2015/components/browser/models/browserfileresponse.js +1 -1
  189. package/esm2015/components/browser/models/browserfileresponse.ngfactory.js +7 -7
  190. package/esm2015/components/browser/models/browserfilesaverequest.js +15 -13
  191. package/esm2015/components/browser/models/browserfilesaverequest.ngfactory.js +7 -7
  192. package/esm2015/components/browser/models/browsernode.js +1 -1
  193. package/esm2015/components/browser/models/browsernode.ngfactory.js +7 -7
  194. package/esm2015/components/browser/models/browsernodedeleterequest.js +15 -13
  195. package/esm2015/components/browser/models/browsernodedeleterequest.ngfactory.js +7 -7
  196. package/esm2015/components/browser/models/browsernodenewrequest.js +15 -13
  197. package/esm2015/components/browser/models/browsernodenewrequest.ngfactory.js +7 -7
  198. package/esm2015/components/browser/models/browsernoderenamerequest.js +15 -13
  199. package/esm2015/components/browser/models/browsernoderenamerequest.ngfactory.js +7 -7
  200. package/esm2015/components/browser/models/browsernoderequest.js +15 -13
  201. package/esm2015/components/browser/models/browsernoderequest.ngfactory.js +7 -7
  202. package/esm2015/components/browser/models/browsernoderesponse.js +1 -1
  203. package/esm2015/components/browser/models/browsernoderesponse.ngfactory.js +7 -7
  204. package/esm2015/controls/buttons/button.js +152 -141
  205. package/esm2015/controls/buttons/button.ngfactory.js +7 -7
  206. package/esm2015/controls/checkbox/checkbox.js +56 -33
  207. package/esm2015/controls/checkbox/checkbox.ngfactory.js +7 -7
  208. package/esm2015/controls/checkbox/radiobutton.js +173 -115
  209. package/esm2015/controls/checkbox/radiobutton.ngfactory.js +7 -7
  210. package/esm2015/controls/checkbox/radiobuttons.js +116 -113
  211. package/esm2015/controls/checkbox/radiobuttons.ngfactory.js +7 -7
  212. package/esm2015/controls/confirm/confirm.button.js +32 -32
  213. package/esm2015/controls/confirm/confirm.button.ngfactory.js +7 -7
  214. package/esm2015/controls/confirm/confirm.js +74 -75
  215. package/esm2015/controls/confirm/confirm.ngfactory.js +7 -7
  216. package/esm2015/controls/confirm/confirm.service.js +87 -87
  217. package/esm2015/controls/confirm/confirm.service.ngfactory.js +7 -7
  218. package/esm2015/controls/contextmenu/contextmenu.interface.js +1 -0
  219. package/esm2015/controls/contextmenu/contextmenu.interface.ngfactory.js +7 -0
  220. package/esm2015/controls/contextmenu/contextmenu.js +210 -194
  221. package/esm2015/controls/contextmenu/contextmenu.ngfactory.js +7 -7
  222. package/esm2015/controls/contextmenu/contextmenuanchor.js +22 -22
  223. package/esm2015/controls/contextmenu/contextmenuanchor.ngfactory.js +7 -7
  224. package/esm2015/controls/contextmenu/contextmenucontainer.js +22 -22
  225. package/esm2015/controls/contextmenu/contextmenucontainer.ngfactory.js +7 -7
  226. package/esm2015/controls/contextmenu/contextmenuitem.js +21 -10
  227. package/esm2015/controls/contextmenu/contextmenuitem.ngfactory.js +7 -7
  228. package/esm2015/controls/contextmenu/contextmenuitembutton.js +106 -97
  229. package/esm2015/controls/contextmenu/contextmenuitembutton.ngfactory.js +7 -7
  230. package/esm2015/controls/datetime/date.js +213 -212
  231. package/esm2015/controls/datetime/date.ngfactory.js +7 -7
  232. package/esm2015/controls/datetime/dateselector.js +481 -458
  233. package/esm2015/controls/datetime/dateselector.ngfactory.js +7 -7
  234. package/esm2015/controls/datetime/datetime.js +227 -229
  235. package/esm2015/controls/datetime/datetime.ngfactory.js +7 -7
  236. package/esm2015/controls/datetime/time.js +222 -212
  237. package/esm2015/controls/datetime/time.ngfactory.js +7 -7
  238. package/esm2015/controls/dialog/dialog.js +182 -207
  239. package/esm2015/controls/dialog/dialog.ngfactory.js +7 -7
  240. package/esm2015/controls/form/form.js +114 -110
  241. package/esm2015/controls/form/form.ngfactory.js +7 -7
  242. package/esm2015/controls/grid/grid.js +155 -144
  243. package/esm2015/controls/grid/grid.ngfactory.js +7 -7
  244. package/esm2015/controls/grid/gridbutton.js +102 -54
  245. package/esm2015/controls/grid/gridbutton.ngfactory.js +7 -7
  246. package/esm2015/controls/grid/gridcolumn.js +60 -49
  247. package/esm2015/controls/grid/gridcolumn.ngfactory.js +7 -7
  248. package/esm2015/controls/grid/gridcolumnaction.js +27 -26
  249. package/esm2015/controls/grid/gridcolumnaction.ngfactory.js +7 -7
  250. package/esm2015/controls/grid/gridcolumnbase.js +159 -126
  251. package/esm2015/controls/grid/gridcolumnbase.ngfactory.js +7 -7
  252. package/esm2015/controls/grid/gridimage.js +13 -13
  253. package/esm2015/controls/grid/gridimage.ngfactory.js +7 -7
  254. package/esm2015/controls/grid/model.js +103 -79
  255. package/esm2015/controls/grid/model.ngfactory.js +7 -7
  256. package/esm2015/controls/grid/paging.js +261 -254
  257. package/esm2015/controls/grid/paging.ngfactory.js +7 -7
  258. package/esm2015/controls/input/input.js +64 -66
  259. package/esm2015/controls/input/input.ngfactory.js +7 -7
  260. package/esm2015/controls/input/inputarea.js +63 -54
  261. package/esm2015/controls/input/inputarea.ngfactory.js +7 -7
  262. package/esm2015/controls/input/inputcurrency.js +34 -31
  263. package/esm2015/controls/input/inputcurrency.ngfactory.js +7 -7
  264. package/esm2015/controls/input/inputdecimal.js +140 -146
  265. package/esm2015/controls/input/inputdecimal.ngfactory.js +7 -7
  266. package/esm2015/controls/input/inputemail.js +41 -41
  267. package/esm2015/controls/input/inputemail.ngfactory.js +7 -7
  268. package/esm2015/controls/input/inputinteger.js +126 -130
  269. package/esm2015/controls/input/inputinteger.ngfactory.js +7 -7
  270. package/esm2015/controls/input/inputpassword.js +78 -46
  271. package/esm2015/controls/input/inputpassword.ngfactory.js +7 -7
  272. package/esm2015/controls/input/inputsearch.js +69 -37
  273. package/esm2015/controls/input/inputsearch.ngfactory.js +7 -7
  274. package/esm2015/controls/layout/formlayout.js +89 -70
  275. package/esm2015/controls/layout/formlayout.ngfactory.js +7 -7
  276. package/esm2015/controls/list/buildvaluestring.js +20 -0
  277. package/esm2015/controls/list/buildvaluestring.ngfactory.js +7 -0
  278. package/esm2015/controls/list/dropdown.js +182 -270
  279. package/esm2015/controls/list/dropdown.ngfactory.js +7 -7
  280. package/esm2015/controls/list/dropdownoptions.js +79 -0
  281. package/esm2015/controls/list/dropdownoptions.ngfactory.js +7 -0
  282. package/esm2015/controls/list/list.module.js +11 -11
  283. package/esm2015/controls/list/list.module.ngfactory.js +7 -7
  284. package/esm2015/controls/list/listbox.js +189 -187
  285. package/esm2015/controls/list/listbox.ngfactory.js +7 -7
  286. package/esm2015/controls/multilanguage/multilanguageinput.js +224 -230
  287. package/esm2015/controls/multilanguage/multilanguageinput.ngfactory.js +7 -7
  288. package/esm2015/controls/multilanguage/multilanguageinputarea.js +225 -231
  289. package/esm2015/controls/multilanguage/multilanguageinputarea.ngfactory.js +7 -7
  290. package/esm2015/controls/static/formcontainer.js +61 -50
  291. package/esm2015/controls/static/formcontainer.ngfactory.js +7 -7
  292. package/esm2015/controls/static/staticlabel.js +35 -31
  293. package/esm2015/controls/static/staticlabel.ngfactory.js +7 -7
  294. package/esm2015/controls/tabs/tab.js +82 -72
  295. package/esm2015/controls/tabs/tab.ngfactory.js +7 -7
  296. package/esm2015/controls/tabs/tabitem.js +34 -32
  297. package/esm2015/controls/tabs/tabitem.ngfactory.js +7 -7
  298. package/esm2015/controls/tinymce/tinymce.js +239 -238
  299. package/esm2015/controls/tinymce/tinymce.ngfactory.js +7 -7
  300. package/esm2015/controls/tinymce/tinymcedialogsettings.js +15 -13
  301. package/esm2015/controls/tinymce/tinymcedialogsettings.ngfactory.js +7 -7
  302. package/esm2015/controls/tinymce/tinymcedialogsettingsmeta.js +1 -4
  303. package/esm2015/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.js +7 -7
  304. package/esm2015/controls/tinymce/tinymceinstance.js +1 -1
  305. package/esm2015/controls/tinymce/tinymceinstance.ngfactory.js +7 -7
  306. package/esm2015/controls/tooltip/tooltip.js +258 -361
  307. package/esm2015/controls/tooltip/tooltip.ngfactory.js +7 -7
  308. package/esm2015/controls/treeview/treeview.js +412 -322
  309. package/esm2015/controls/treeview/treeview.ngfactory.js +7 -7
  310. package/esm2015/controls/upload/dropzonemultiple.js +169 -163
  311. package/esm2015/controls/upload/dropzonemultiple.ngfactory.js +7 -7
  312. package/esm2015/controls/upload/dropzonesingle.js +116 -108
  313. package/esm2015/controls/upload/dropzonesingle.ngfactory.js +7 -7
  314. package/esm2015/controls/upload/uploadmultiple.js +129 -121
  315. package/esm2015/controls/upload/uploadmultiple.ngfactory.js +7 -7
  316. package/esm2015/controls/upload/uploadsingle.js +67 -55
  317. package/esm2015/controls/upload/uploadsingle.ngfactory.js +7 -7
  318. package/esm2015/controls/validation/validationsummary.js +140 -133
  319. package/esm2015/controls/validation/validationsummary.ngfactory.js +7 -7
  320. package/esm2015/controls/wizard/wizard.js +152 -139
  321. package/esm2015/controls/wizard/wizard.ngfactory.js +7 -7
  322. package/esm2015/controls/wizard/wizarditem.js +29 -27
  323. package/esm2015/controls/wizard/wizarditem.ngfactory.js +7 -7
  324. package/esm2015/enums/ButtonRoleType.js +1 -1
  325. package/esm2015/enums/ButtonRoleType.ngfactory.js +7 -7
  326. package/esm2015/enums/ControlHeight.js +19 -19
  327. package/esm2015/enums/ControlHeight.ngfactory.js +7 -7
  328. package/esm2015/enums/IconType.js +9 -9
  329. package/esm2015/enums/IconType.ngfactory.js +7 -7
  330. package/esm2015/interfaces/ISacConfigurationService.js +1 -1
  331. package/esm2015/interfaces/ISacConfigurationService.ngfactory.js +7 -7
  332. package/esm2015/interfaces/ISacFileBrowserService.js +1 -1
  333. package/esm2015/interfaces/ISacFileBrowserService.ngfactory.js +7 -7
  334. package/esm2015/interfaces/ISacIconService.js +1 -1
  335. package/esm2015/interfaces/ISacIconService.ngfactory.js +7 -7
  336. package/esm2015/interfaces/ISacLabelSizes.js +1 -1
  337. package/esm2015/interfaces/ISacLabelSizes.ngfactory.js +7 -7
  338. package/esm2015/interfaces/ISacLanguageService.js +1 -1
  339. package/esm2015/interfaces/ISacLanguageService.ngfactory.js +7 -7
  340. package/esm2015/interfaces/ISacLocalisationService.js +1 -1
  341. package/esm2015/interfaces/ISacLocalisationService.ngfactory.js +7 -7
  342. package/esm2015/interfaces/ISacUploadEventCompleteState.js +1 -0
  343. package/esm2015/interfaces/ISacUploadEventCompleteState.ngfactory.js +7 -0
  344. package/esm2015/interfaces/ISacValidationKeyService.js +1 -1
  345. package/esm2015/interfaces/ISacValidationKeyService.ngfactory.js +7 -7
  346. package/esm2015/interfaces/iabstractcontrollabel.js +1 -1
  347. package/esm2015/interfaces/iabstractcontrollabel.ngfactory.js +7 -7
  348. package/esm2015/interfaces/iconfirmcomponent.js +1 -1
  349. package/esm2015/interfaces/iconfirmcomponent.ngfactory.js +7 -7
  350. package/esm2015/interfaces/idatetimecontrol.js +1 -1
  351. package/esm2015/interfaces/idatetimecontrol.ngfactory.js +7 -7
  352. package/esm2015/interfaces/iuploadcontrol.js +1 -1
  353. package/esm2015/interfaces/iuploadcontrol.ngfactory.js +7 -7
  354. package/esm2015/interfaces/treeviewaction.interface.js +1 -0
  355. package/esm2015/interfaces/treeviewaction.interface.ngfactory.js +7 -0
  356. package/esm2015/models/languagemodel.js +15 -13
  357. package/esm2015/models/languagemodel.ngfactory.js +7 -7
  358. package/esm2015/public_api.js +112 -101
  359. package/esm2015/public_api.ngfactory.js +7 -7
  360. package/esm2015/services/index.js +7 -7
  361. package/esm2015/services/index.ngfactory.js +7 -7
  362. package/esm2015/services/sac-configuration.service.js +119 -77
  363. package/esm2015/services/sac-configuration.service.ngfactory.js +7 -7
  364. package/esm2015/services/sac-filebrowser.service.js +217 -203
  365. package/esm2015/services/sac-filebrowser.service.ngfactory.js +7 -7
  366. package/esm2015/services/sac-icon.service.js +233 -155
  367. package/esm2015/services/sac-icon.service.ngfactory.js +7 -7
  368. package/esm2015/services/sac-language.service.js +47 -43
  369. package/esm2015/services/sac-language.service.ngfactory.js +7 -7
  370. package/esm2015/services/sac-localisation.service.js +353 -460
  371. package/esm2015/services/sac-localisation.service.ngfactory.js +7 -7
  372. package/esm2015/services/sac-validationkey.service.js +306 -156
  373. package/esm2015/services/sac-validationkey.service.ngfactory.js +7 -7
  374. package/esm2015/simpleangularcontrols-sac-common.js +5 -11
  375. package/esm2015/simpleangularcontrols-sac-common.ngfactory.js +7 -7
  376. package/esm2015/utilities/convertion.js +34 -32
  377. package/esm2015/utilities/convertion.ngfactory.js +7 -7
  378. package/esm2015/utilities/datatypes.js +11 -9
  379. package/esm2015/utilities/datatypes.ngfactory.js +7 -7
  380. package/esm2015/utilities/enums.js +21 -16
  381. package/esm2015/utilities/enums.ngfactory.js +7 -7
  382. package/esm2015/utilities/guid.js +18 -16
  383. package/esm2015/utilities/guid.ngfactory.js +7 -7
  384. package/esm2015/utilities/interpolation.js +57 -50
  385. package/esm2015/utilities/interpolation.ngfactory.js +7 -7
  386. package/esm2015/utilities/popuphelper.js +380 -0
  387. package/esm2015/utilities/popuphelper.ngfactory.js +7 -0
  388. package/esm2015/utilities/positioncalculator.js +209 -0
  389. package/esm2015/utilities/positioncalculator.ngfactory.js +7 -0
  390. package/esm2015/utilities/positionelements.js +108 -0
  391. package/esm2015/utilities/positionelements.ngfactory.js +7 -0
  392. package/esm2015/utilities/testingattribute.pipe.js +54 -0
  393. package/esm2015/utilities/testingattribute.pipe.ngfactory.js +7 -0
  394. package/esm2015/utilities/utilities.module.js +12 -0
  395. package/esm2015/utilities/utilities.module.ngfactory.js +7 -0
  396. package/esm2015/validation/email.validator.js +22 -13
  397. package/esm2015/validation/email.validator.ngfactory.js +7 -7
  398. package/esm2015/validation/equals.validator.js +24 -0
  399. package/esm2015/validation/equals.validator.ngfactory.js +7 -0
  400. package/esm2015/validation/index.js +3 -3
  401. package/esm2015/validation/index.ngfactory.js +7 -7
  402. package/esm2015/validation/invaliddate.validator.js +23 -14
  403. package/esm2015/validation/invaliddate.validator.ngfactory.js +7 -7
  404. package/esm2015/validation/isDateValid.js +24 -15
  405. package/esm2015/validation/isDateValid.ngfactory.js +7 -7
  406. package/esm2015/validation/maxdate.validator.js +31 -21
  407. package/esm2015/validation/maxdate.validator.ngfactory.js +7 -7
  408. package/esm2015/validation/maxtime.validator.js +31 -21
  409. package/esm2015/validation/maxtime.validator.ngfactory.js +7 -7
  410. package/esm2015/validation/maxvalue.validator.js +26 -16
  411. package/esm2015/validation/maxvalue.validator.ngfactory.js +7 -7
  412. package/esm2015/validation/mindate.validator.js +31 -21
  413. package/esm2015/validation/mindate.validator.ngfactory.js +7 -7
  414. package/esm2015/validation/minfiles.validator.js +29 -19
  415. package/esm2015/validation/minfiles.validator.ngfactory.js +7 -7
  416. package/esm2015/validation/mintextlength.validator.js +31 -0
  417. package/esm2015/validation/mintextlength.validator.ngfactory.js +7 -0
  418. package/esm2015/validation/mintime.validator.js +31 -21
  419. package/esm2015/validation/mintime.validator.ngfactory.js +7 -7
  420. package/esm2015/validation/minvalue.validator.js +26 -16
  421. package/esm2015/validation/minvalue.validator.ngfactory.js +7 -7
  422. package/esm2015/validation/multilanguagerequired.validator.js +32 -22
  423. package/esm2015/validation/multilanguagerequired.validator.ngfactory.js +7 -7
  424. package/esm2015/validation/multilanguagerequiredany.validator.js +32 -22
  425. package/esm2015/validation/multilanguagerequiredany.validator.ngfactory.js +7 -7
  426. package/esm2015/validation/notequals.validator.js +24 -0
  427. package/esm2015/validation/notequals.validator.ngfactory.js +7 -0
  428. package/esm2015/validation/pattern.validator.js +26 -16
  429. package/esm2015/validation/pattern.validator.ngfactory.js +7 -7
  430. package/esm2015/validation/required.validator.js +22 -13
  431. package/esm2015/validation/required.validator.ngfactory.js +7 -7
  432. package/esm2015/validation/validation.class.js +201 -189
  433. package/esm2015/validation/validation.class.ngfactory.js +7 -7
  434. package/esm2015/validation/validationerrorcreator.js +22 -11
  435. package/esm2015/validation/validationerrorcreator.ngfactory.js +7 -7
  436. package/esm2015/validation/validationerroritem.js +29 -27
  437. package/esm2015/validation/validationerroritem.ngfactory.js +7 -7
  438. package/fesm2015/simpleangularcontrols-sac-common.js +11670 -10109
  439. package/fesm2015/simpleangularcontrols-sac-common.js.map +1 -1
  440. package/interfaces/ISacConfigurationService.d.ts +70 -38
  441. package/interfaces/ISacConfigurationService.ngfactory.d.ts +1 -1
  442. package/interfaces/ISacFileBrowserService.d.ts +65 -65
  443. package/interfaces/ISacFileBrowserService.ngfactory.d.ts +1 -1
  444. package/interfaces/ISacIconService.d.ts +141 -89
  445. package/interfaces/ISacIconService.ngfactory.d.ts +1 -1
  446. package/interfaces/ISacLabelSizes.d.ts +29 -26
  447. package/interfaces/ISacLabelSizes.ngfactory.d.ts +1 -1
  448. package/interfaces/ISacLanguageService.d.ts +12 -12
  449. package/interfaces/ISacLanguageService.ngfactory.d.ts +1 -1
  450. package/interfaces/ISacLocalisationService.d.ts +10 -10
  451. package/interfaces/ISacLocalisationService.ngfactory.d.ts +1 -1
  452. package/interfaces/ISacUploadEventCompleteState.d.ts +11 -0
  453. package/{controls/treeview/treeviewchild.ngfactory.d.ts → interfaces/ISacUploadEventCompleteState.ngfactory.d.ts} +1 -1
  454. package/interfaces/ISacValidationKeyService.d.ts +52 -52
  455. package/interfaces/ISacValidationKeyService.ngfactory.d.ts +1 -1
  456. package/interfaces/iabstractcontrollabel.d.ts +9 -6
  457. package/interfaces/iabstractcontrollabel.ngfactory.d.ts +1 -1
  458. package/interfaces/iconfirmcomponent.d.ts +18 -18
  459. package/interfaces/iconfirmcomponent.ngfactory.d.ts +1 -1
  460. package/interfaces/idatetimecontrol.d.ts +16 -7
  461. package/interfaces/idatetimecontrol.ngfactory.d.ts +1 -1
  462. package/interfaces/iuploadcontrol.d.ts +9 -9
  463. package/interfaces/iuploadcontrol.ngfactory.d.ts +1 -1
  464. package/interfaces/treeviewaction.interface.d.ts +13 -0
  465. package/interfaces/treeviewaction.interface.ngfactory.d.ts +1 -0
  466. package/models/languagemodel.d.ts +22 -22
  467. package/models/languagemodel.ngfactory.d.ts +1 -1
  468. package/package.json +1 -1
  469. package/public_api.d.ts +89 -79
  470. package/public_api.ngfactory.d.ts +1 -1
  471. package/services/index.d.ts +6 -6
  472. package/services/index.ngfactory.d.ts +1 -1
  473. package/services/sac-configuration.service.d.ts +137 -81
  474. package/services/sac-configuration.service.ngfactory.d.ts +1 -1
  475. package/services/sac-filebrowser.service.d.ts +148 -140
  476. package/services/sac-filebrowser.service.ngfactory.d.ts +1 -1
  477. package/services/sac-icon.service.d.ts +288 -184
  478. package/services/sac-icon.service.ngfactory.d.ts +1 -1
  479. package/services/sac-language.service.d.ts +26 -26
  480. package/services/sac-language.service.ngfactory.d.ts +1 -1
  481. package/services/sac-localisation.service.d.ts +141 -137
  482. package/services/sac-localisation.service.ngfactory.d.ts +1 -1
  483. package/services/sac-validationkey.service.d.ts +202 -55
  484. package/services/sac-validationkey.service.ngfactory.d.ts +1 -1
  485. package/simpleangularcontrols-sac-common-10.0.0-rc.30.tgz +0 -0
  486. package/simpleangularcontrols-sac-common.d.ts +4 -10
  487. package/simpleangularcontrols-sac-common.metadata.json +1 -1
  488. package/simpleangularcontrols-sac-common.ngfactory.d.ts +1 -1
  489. package/utilities/convertion.d.ts +15 -15
  490. package/utilities/convertion.ngfactory.d.ts +1 -1
  491. package/utilities/datatypes.d.ts +6 -6
  492. package/utilities/datatypes.ngfactory.d.ts +1 -1
  493. package/utilities/enums.d.ts +19 -10
  494. package/utilities/enums.ngfactory.d.ts +1 -1
  495. package/utilities/guid.d.ts +4 -4
  496. package/utilities/guid.ngfactory.d.ts +1 -1
  497. package/utilities/interpolation.d.ts +22 -21
  498. package/utilities/interpolation.ngfactory.d.ts +1 -1
  499. package/utilities/popuphelper.d.ts +120 -0
  500. package/utilities/popuphelper.ngfactory.d.ts +1 -0
  501. package/utilities/positioncalculator.d.ts +82 -0
  502. package/utilities/positioncalculator.ngfactory.d.ts +1 -0
  503. package/utilities/positionelements.d.ts +30 -0
  504. package/utilities/positionelements.ngfactory.d.ts +1 -0
  505. package/utilities/testingattribute.pipe.d.ts +27 -0
  506. package/utilities/testingattribute.pipe.ngfactory.d.ts +1 -0
  507. package/utilities/utilities.module.d.ts +2 -0
  508. package/utilities/utilities.module.ngfactory.d.ts +3 -0
  509. package/validation/email.validator.d.ts +9 -2
  510. package/validation/email.validator.ngfactory.d.ts +1 -1
  511. package/validation/equals.validator.d.ts +10 -0
  512. package/validation/equals.validator.ngfactory.d.ts +1 -0
  513. package/validation/index.d.ts +2 -2
  514. package/validation/index.ngfactory.d.ts +1 -1
  515. package/validation/invaliddate.validator.d.ts +9 -2
  516. package/validation/invaliddate.validator.ngfactory.d.ts +1 -1
  517. package/validation/isDateValid.d.ts +8 -5
  518. package/validation/isDateValid.ngfactory.d.ts +1 -1
  519. package/validation/maxdate.validator.d.ts +10 -2
  520. package/validation/maxdate.validator.ngfactory.d.ts +1 -1
  521. package/validation/maxtime.validator.d.ts +10 -2
  522. package/validation/maxtime.validator.ngfactory.d.ts +1 -1
  523. package/validation/maxvalue.validator.d.ts +10 -2
  524. package/validation/maxvalue.validator.ngfactory.d.ts +1 -1
  525. package/validation/mindate.validator.d.ts +10 -2
  526. package/validation/mindate.validator.ngfactory.d.ts +1 -1
  527. package/validation/minfiles.validator.d.ts +10 -2
  528. package/validation/minfiles.validator.ngfactory.d.ts +1 -1
  529. package/validation/mintextlength.validator.d.ts +10 -0
  530. package/validation/mintextlength.validator.ngfactory.d.ts +1 -0
  531. package/validation/mintime.validator.d.ts +10 -2
  532. package/validation/mintime.validator.ngfactory.d.ts +1 -1
  533. package/validation/minvalue.validator.d.ts +10 -2
  534. package/validation/minvalue.validator.ngfactory.d.ts +1 -1
  535. package/validation/multilanguagerequired.validator.d.ts +11 -3
  536. package/validation/multilanguagerequired.validator.ngfactory.d.ts +1 -1
  537. package/validation/multilanguagerequiredany.validator.d.ts +11 -3
  538. package/validation/multilanguagerequiredany.validator.ngfactory.d.ts +1 -1
  539. package/validation/notequals.validator.d.ts +10 -0
  540. package/validation/notequals.validator.ngfactory.d.ts +1 -0
  541. package/validation/pattern.validator.d.ts +10 -2
  542. package/validation/pattern.validator.ngfactory.d.ts +1 -1
  543. package/validation/required.validator.d.ts +9 -2
  544. package/validation/required.validator.ngfactory.d.ts +1 -1
  545. package/validation/validation.class.d.ts +141 -139
  546. package/validation/validation.class.ngfactory.d.ts +1 -1
  547. package/validation/validationerrorcreator.d.ts +10 -1
  548. package/validation/validationerrorcreator.ngfactory.d.ts +1 -1
  549. package/validation/validationerroritem.d.ts +33 -33
  550. package/validation/validationerroritem.ngfactory.d.ts +1 -1
  551. package/controls/treeview/ngtreeitemaction.d.ts +0 -40
  552. package/controls/treeview/treeviewchild.d.ts +0 -12
  553. package/esm2015/controls/treeview/ngtreeitemaction.js +0 -60
  554. package/esm2015/controls/treeview/ngtreeitemaction.ngfactory.js +0 -7
  555. package/esm2015/controls/treeview/treeviewchild.js +0 -18
  556. package/esm2015/controls/treeview/treeviewchild.ngfactory.js +0 -7
  557. package/esm2015/utilities/positioning.js +0 -301
  558. package/esm2015/utilities/positioning.ngfactory.js +0 -7
  559. package/esm2015/validation/minlength.validator.js +0 -21
  560. package/esm2015/validation/minlength.validator.ngfactory.js +0 -7
  561. package/simpleangularcontrols-sac-common-10.0.0-rc.3.tgz +0 -0
  562. package/utilities/positioning.d.ts +0 -82
  563. package/validation/minlength.validator.d.ts +0 -2
@@ -1,55 +1,67 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { SacUploadBase } from '../../common/baseuploadcontrol';
3
- /**
4
- * Upload Komponente für ein einzelnes File
5
- */
6
- export class SacUploadSingleCommon extends SacUploadBase {
7
- constructor() {
8
- super(...arguments);
9
- /**
10
- * Label für Browse Button
11
- */
12
- this.buttonbrowse = 'Browse';
13
- /**
14
- * Label für Upload Button
15
- */
16
- this.buttonupload = 'Upload';
17
- }
18
- /**
19
- * Macht keine Validierung in diesem Control
20
- *
21
- * @param file File das hinzugefügt wurde
22
- */
23
- CustomAddValidation(file) {
24
- return true;
25
- }
26
- /**
27
- * Setzt die File ID des hochgeladen Files in das Model
28
- *
29
- * @param file ID des Files
30
- */
31
- SetUploadValue(file) {
32
- if (file === null) {
33
- super.setValue(null);
34
- }
35
- else {
36
- if (file.response !== undefined &&
37
- file.response !== null &&
38
- file.response.documentid !== null &&
39
- file.response.documentid !== undefined) {
40
- super.setValue(file.response.documentid);
41
- }
42
- else {
43
- super.setValue(file.uploadId);
44
- }
45
- }
46
- }
47
- }
48
- SacUploadSingleCommon.decorators = [
49
- { type: Directive }
50
- ];
51
- SacUploadSingleCommon.propDecorators = {
52
- buttonbrowse: [{ type: Input }],
53
- buttonupload: [{ type: Input }]
54
- };
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2Fkc2luZ2xlLmpzIiwic291cmNlUm9vdCI6IkM6L0RhdGVuL2pOZXR3b3JrL2NoLmpuZXR3b3JrLmFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3VwbG9hZC91cGxvYWRzaW5nbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRS9EOztHQUVHO0FBRUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGFBQXFCO0lBRGhFOztRQUVFOztXQUVHO1FBRUgsaUJBQVksR0FBVyxRQUFRLENBQUM7UUFFaEM7O1dBRUc7UUFFSCxpQkFBWSxHQUFXLFFBQVEsQ0FBQztJQWdDbEMsQ0FBQztJQTlCQzs7OztPQUlHO0lBQ0gsbUJBQW1CLENBQUMsSUFBaUI7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGNBQWMsQ0FBQyxJQUFpQjtRQUM5QixJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDakIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0QjthQUFNO1lBQ0wsSUFDRSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVM7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSTtnQkFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssSUFBSTtnQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUN0QztnQkFDQSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDMUM7aUJBQU07Z0JBQ0wsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDL0I7U0FDRjtJQUNILENBQUM7OztZQTNDRixTQUFTOzs7MkJBS1AsS0FBSzsyQkFNTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVcGxvYWRTdGF0ZSB9IGZyb20gJ25neC11cGxvYWR4JztcclxuaW1wb3J0IHsgU2FjVXBsb2FkQmFzZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNldXBsb2FkY29udHJvbCc7XHJcblxyXG4vKipcclxuICogVXBsb2FkIEtvbXBvbmVudGUgZsO8ciBlaW4gZWluemVsbmVzIEZpbGVcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgU2FjVXBsb2FkU2luZ2xlQ29tbW9uIGV4dGVuZHMgU2FjVXBsb2FkQmFzZTxzdHJpbmc+IHtcclxuICAvKipcclxuICAgKiBMYWJlbCBmw7xyIEJyb3dzZSBCdXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIGJ1dHRvbmJyb3dzZTogc3RyaW5nID0gJ0Jyb3dzZSc7XHJcblxyXG4gIC8qKlxyXG4gICAqIExhYmVsIGbDvHIgVXBsb2FkIEJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgYnV0dG9udXBsb2FkOiBzdHJpbmcgPSAnVXBsb2FkJztcclxuXHJcbiAgLyoqXHJcbiAgICogTWFjaHQga2VpbmUgVmFsaWRpZXJ1bmcgaW4gZGllc2VtIENvbnRyb2xcclxuICAgKlxyXG4gICAqIEBwYXJhbSBmaWxlIEZpbGUgZGFzIGhpbnp1Z2Vmw7xndCB3dXJkZVxyXG4gICAqL1xyXG4gIEN1c3RvbUFkZFZhbGlkYXRpb24oZmlsZTogVXBsb2FkU3RhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0enQgZGllIEZpbGUgSUQgZGVzIGhvY2hnZWxhZGVuIEZpbGVzIGluIGRhcyBNb2RlbFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZpbGUgSUQgZGVzIEZpbGVzXHJcbiAgICovXHJcbiAgU2V0VXBsb2FkVmFsdWUoZmlsZTogVXBsb2FkU3RhdGUpIHtcclxuICAgIGlmIChmaWxlID09PSBudWxsKSB7XHJcbiAgICAgIHN1cGVyLnNldFZhbHVlKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZpbGUucmVzcG9uc2UgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgIGZpbGUucmVzcG9uc2UgIT09IG51bGwgJiZcclxuICAgICAgICBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQgIT09IG51bGwgJiZcclxuICAgICAgICBmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQgIT09IHVuZGVmaW5lZFxyXG4gICAgICApIHtcclxuICAgICAgICBzdXBlci5zZXRWYWx1ZShmaWxlLnJlc3BvbnNlLmRvY3VtZW50aWQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHN1cGVyLnNldFZhbHVlKGZpbGUudXBsb2FkSWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ import { SacUploadBase } from '../../common/baseuploadcontrol';
2
+ import { Directive, Input } from '@angular/core';
3
+ /**
4
+ * Upload component for a single file
5
+ */
6
+ export class SacUploadSingleCommon extends SacUploadBase {
7
+ constructor() {
8
+ // #region Properties
9
+ super(...arguments);
10
+ /**
11
+ * Label for Browse Button
12
+ */
13
+ this.buttonbrowse = '';
14
+ /**
15
+ * Label for Upload Button
16
+ */
17
+ this.buttonupload = '';
18
+ // #endregion Protected Methods
19
+ }
20
+ // #endregion Properties
21
+ // #region Public Methods
22
+ /**
23
+ * Does no validation in this control
24
+ *
25
+ * @param file File that was added
26
+ */
27
+ CustomAddValidation(file) {
28
+ return true;
29
+ }
30
+ /**
31
+ * Sets the file ID of the uploaded file into the model
32
+ *
33
+ * @param file ID of the file
34
+ */
35
+ SetUploadValue(file) {
36
+ if (file === null) {
37
+ super.setValue(null);
38
+ }
39
+ else {
40
+ if (file.response !== undefined &&
41
+ file.response !== null &&
42
+ file.response.documentid !== null &&
43
+ file.response.documentid !== undefined) {
44
+ super.setValue(file.response.documentid);
45
+ }
46
+ else {
47
+ super.setValue(file.uploadId);
48
+ }
49
+ }
50
+ }
51
+ // #endregion Public Methods
52
+ // #region Protected Methods
53
+ /**
54
+ * @inheritdoc
55
+ */
56
+ GetMaxFiles() {
57
+ return 1;
58
+ }
59
+ }
60
+ SacUploadSingleCommon.decorators = [
61
+ { type: Directive }
62
+ ];
63
+ SacUploadSingleCommon.propDecorators = {
64
+ buttonbrowse: [{ type: Input }],
65
+ buttonupload: [{ type: Input }]
66
+ };
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2Fkc2luZ2xlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdXBsb2FkL3VwbG9hZHNpbmdsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBcUI7SUFEaEU7UUFFSSxxQkFBcUI7O1FBRXJCOztXQUVHO1FBRUksaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFekI7O1dBRUc7UUFFSSxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQWdEekIsK0JBQStCO0lBQ25DLENBQUM7SUEvQ0csd0JBQXdCO0lBRXhCLHlCQUF5QjtJQUV6Qjs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQUMsSUFBaUI7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsSUFBaUI7UUFDbkMsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ2YsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjthQUFNO1lBQ0gsSUFDSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVM7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSTtnQkFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssSUFBSTtnQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUN4QztnQkFDRSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDNUM7aUJBQU07Z0JBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDakM7U0FDSjtJQUNMLENBQUM7SUFFRCw0QkFBNEI7SUFFNUIsNEJBQTRCO0lBRTVCOztPQUVHO0lBQ08sV0FBVztRQUNqQixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7OztZQTVESixTQUFTOzs7MkJBT0wsS0FBSzsyQkFNTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjVXBsb2FkQmFzZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9iYXNldXBsb2FkY29udHJvbCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVcGxvYWRTdGF0ZSB9IGZyb20gJ25neC11cGxvYWR4JztcblxuLyoqXG4gKiBVcGxvYWQgY29tcG9uZW50IGZvciBhIHNpbmdsZSBmaWxlXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFNhY1VwbG9hZFNpbmdsZUNvbW1vbiBleHRlbmRzIFNhY1VwbG9hZEJhc2U8c3RyaW5nPiB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBMYWJlbCBmb3IgQnJvd3NlIEJ1dHRvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJ1dHRvbmJyb3dzZSA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgZm9yIFVwbG9hZCBCdXR0b25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBidXR0b251cGxvYWQgPSAnJztcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogRG9lcyBubyB2YWxpZGF0aW9uIGluIHRoaXMgY29udHJvbFxuICAgICAqXG4gICAgICogQHBhcmFtIGZpbGUgRmlsZSB0aGF0IHdhcyBhZGRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBDdXN0b21BZGRWYWxpZGF0aW9uKGZpbGU6IFVwbG9hZFN0YXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGZpbGUgSUQgb2YgdGhlIHVwbG9hZGVkIGZpbGUgaW50byB0aGUgbW9kZWxcbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWxlIElEIG9mIHRoZSBmaWxlXG4gICAgICovXG4gICAgcHVibGljIFNldFVwbG9hZFZhbHVlKGZpbGU6IFVwbG9hZFN0YXRlKSB7XG4gICAgICAgIGlmIChmaWxlID09PSBudWxsKSB7XG4gICAgICAgICAgICBzdXBlci5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgZmlsZS5yZXNwb25zZS5kb2N1bWVudGlkICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgZmlsZS5yZXNwb25zZS5kb2N1bWVudGlkICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKGZpbGUucmVzcG9uc2UuZG9jdW1lbnRpZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKGZpbGUudXBsb2FkSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgR2V0TWF4RmlsZXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xufVxuIl19
@@ -1,7 +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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2Fkc2luZ2xlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiJDOi9EYXRlbi9qTmV0d29yay9jaC5qbmV0d29yay5hbmd1bGFyY29udHJvbHMtbmcxMC9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy91cGxvYWQvdXBsb2Fkc2luZ2xlLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pMC5Db21wb25lbnRGYWN0b3J5O1xuIl19
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2Fkc2luZ2xlLm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3VwbG9hZC91cGxvYWRzaW5nbGUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmkwLkNvbXBvbmVudEZhY3Rvcnk7XG4iXX0=
@@ -1,133 +1,140 @@
1
- import { Directive, Injector, Input } from '@angular/core';
2
- import { FormGroup } from '@angular/forms';
3
- import { SACLOCALISATION_SERVICE, SacDefaultLocalisationService, } from '../../services/sac-localisation.service';
4
- import { SACVALIDATIONKEY_SERVICE, SacDefaultValidationKeyService, } from '../../services/sac-validationkey.service';
5
- import { SacFormCommon } from '../form/form';
6
- /**
7
- * Basis Komponente für SacValidationSummary
8
- */
9
- export class SacValidationSummaryCommon {
10
- // #endregion Properties
11
- // #region Constructors
12
- /**
13
- * Konstruktor
14
- * Inject des Formulars
15
- */
16
- constructor(parent, injector) {
17
- /**
18
- * Name-Property
19
- */
20
- this.name = '';
21
- this.parent = parent;
22
- this.validationKeyService = injector.get(SACVALIDATIONKEY_SERVICE, new SacDefaultValidationKeyService());
23
- this.lngResourceService = injector.get(SACLOCALISATION_SERVICE, new SacDefaultLocalisationService(this.validationKeyService));
24
- }
25
- // #endregion Constructors
26
- // #region Public Getters And Setters
27
- /**
28
- * Validation Methode
29
- */
30
- get formErrors() {
31
- const collection = new Array();
32
- let formBase;
33
- if (this.parent) {
34
- formBase = this.parent.getForm().form;
35
- }
36
- else if (this.form instanceof FormGroup) {
37
- formBase = this.form;
38
- // formgroup can only be get in reactive forms mode
39
- if (this.formGroupName) {
40
- formBase = formBase.get(this.formGroupName);
41
- }
42
- }
43
- else {
44
- throw new Error('missing form');
45
- }
46
- const items = Object.keys(formBase.controls).map((key) => {
47
- return formBase.controls[key];
48
- });
49
- this.getErrorCollection(items, collection);
50
- return collection.filter((item) => item !== null);
51
- }
52
- /**
53
- * Getter wenn Errors entstehen
54
- */
55
- get hasErrors() {
56
- return this.formErrors.length > 0;
57
- }
58
- // #endregion Public Getters And Setters
59
- // #region Private Methods
60
- /**
61
- * Fügt einen Validation Error in die Error Collection hinzu
62
- * @param ctl Fehlerhaftes Control
63
- * @param collection Collection aller Fehlermeldungen
64
- */
65
- addErrorToCollection(ctl, collection) {
66
- var _a;
67
- if (ctl.errors === null || ctl.touched === false || ctl.valid === true) {
68
- return;
69
- }
70
- const keys = Object.keys(ctl.errors);
71
- if (keys.length <= 0) {
72
- return;
73
- }
74
- const errorItem = ctl.errors[keys[0]];
75
- // Validation Parameters
76
- const parameters = {};
77
- if (errorItem.parameters !== null && errorItem.parameters !== undefined) {
78
- errorItem.parameters.forEach((v, k) => {
79
- parameters[k] = v;
80
- });
81
- }
82
- if ((_a = ctl) === null || _a === void 0 ? void 0 : _a.controllabel) {
83
- parameters['FIELD'] = ctl.controllabel;
84
- }
85
- else {
86
- parameters['FIELD'] = errorItem.fieldName;
87
- }
88
- collection.push(this.lngResourceService.GetString(errorItem.errorMessageValidationSummaryKey, parameters));
89
- }
90
- /**
91
- * Die Methode gibt Collection von Errors. Verlangt controls: Array<NgForm | FormArray> und collection: Array<Observable<string>>
92
- */
93
- getErrorCollection(controls, collection) {
94
- controls.forEach((ctl) => {
95
- if (ctl.controls === undefined || ctl.controls === null) {
96
- this.addErrorToCollection(ctl, collection);
97
- }
98
- else {
99
- Object.keys(ctl.controls).map((controlKey) => {
100
- const control = ctl.controls[controlKey];
101
- // Cancel Analyse wenn Item not Touched oder Valid
102
- if (control.touched === false || control.valid === true) {
103
- return;
104
- }
105
- // Handle wenn Control kein Container ist
106
- if (control.controls === undefined || control.controls === null) {
107
- this.addErrorToCollection(control, collection);
108
- }
109
- else {
110
- // Handling eines Control Containers
111
- const items = Object.keys(control.controls).map((formKey) => {
112
- return control.controls[formKey];
113
- });
114
- this.getErrorCollection(items, collection);
115
- }
116
- });
117
- }
118
- });
119
- }
120
- }
121
- SacValidationSummaryCommon.decorators = [
122
- { type: Directive }
123
- ];
124
- SacValidationSummaryCommon.ctorParameters = () => [
125
- { type: SacFormCommon },
126
- { type: Injector }
127
- ];
128
- SacValidationSummaryCommon.propDecorators = {
129
- form: [{ type: Input }],
130
- formGroupName: [{ type: Input }],
131
- name: [{ type: Input }]
132
- };
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiQzovRGF0ZW4vak5ldHdvcmsvY2guam5ldHdvcmsuYW5ndWxhcmNvbnRyb2xzLW5nMTAvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdmFsaWRhdGlvbi92YWxpZGF0aW9uc3VtbWFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUE4QixTQUFTLEVBQVUsTUFBTSxnQkFBZ0IsQ0FBQztBQUsvRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDZCQUE2QixHQUM5QixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsOEJBQThCLEdBQy9CLE1BQU0sMENBQTBDLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3Qzs7R0FFRztBQUVILE1BQU0sT0FBTywwQkFBMEI7SUFrQ3JDLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7OztPQUdHO0lBQ0gsWUFBWSxNQUFxQixFQUFFLFFBQWtCO1FBZHJEOztXQUVHO1FBRUksU0FBSSxHQUFXLEVBQUUsQ0FBQztRQVd2QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUVyQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FDdEMsd0JBQXdCLEVBQ3hCLElBQUksOEJBQThCLEVBQUUsQ0FDckMsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUNwQyx1QkFBdUIsRUFDdkIsSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FDN0QsQ0FBQztJQUNKLENBQUM7SUFFRCwwQkFBMEI7SUFF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Q3pCLEtBQUs7NEJBT0wsS0FBSzttQkFLTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Hcm91cCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XHJcbmltcG9ydCB7IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlJztcclxuaW1wb3J0IHsgSUFic3RyYWN0Q29udHJvbExhYmVsRXh0ZW5zaW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pYWJzdHJhY3Rjb250cm9sbGFiZWwnO1xyXG5pbXBvcnQge1xyXG4gIFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLFxyXG4gIFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlLFxyXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NhYy1sb2NhbGlzYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLFxyXG4gIFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSxcclxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zYWMtdmFsaWRhdGlvbmtleS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ySXRlbSB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtQ29tbW9uIH0gZnJvbSAnLi4vZm9ybS9mb3JtJztcclxuXHJcbi8qKlxyXG4gKiBCYXNpcyBLb21wb25lbnRlIGbDvHIgU2FjVmFsaWRhdGlvblN1bW1hcnlcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgU2FjVmFsaWRhdGlvblN1bW1hcnlDb21tb24ge1xyXG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvKipcclxuICAgKiBTZXJ2aWNlIGbDvHIgRXJyb3IgTG9jYWxpc2F0aW9uXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGxuZ1Jlc291cmNlU2VydmljZTogSVNhY0xvY2FsaXNhdGlvblNlcnZpY2U7XHJcbiAgLyoqXHJcbiAgICogUGFyZW50IEZvcm11bGFyXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHBhcmVudDogU2FjRm9ybUNvbW1vbjtcclxuICAvKipcclxuICAgKiBTZXJ2aWNlIHRvIHJlY2VpdmUgc3RhbmRhcmQgdmFsaWRhdGlvbiBtZXNzYWdlIGtleXMgYW5kIHRleHRzXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHZhbGlkYXRpb25LZXlTZXJ2aWNlOiBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIHJlYWN0aXZlIGZvcm0gaW5zdGFuY2VcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgLyoqXHJcbiAgICogRm9ybSBncm91cG5hbWUgdG8gZmlsdGVyIHN1bW1hcnkgdG8gZm9ybWdyb3VwXHJcbiAgICpcclxuICAgKiBJbXBvcnRhbnQ6IGl0IHdvcmtzIG9ubHkgaW4gcmVhY3RpdmUgZm9ybXMgbW9kZS5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmb3JtR3JvdXBOYW1lOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogTmFtZS1Qcm9wZXJ0eVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG5hbWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogS29uc3RydWt0b3JcclxuICAgKiBJbmplY3QgZGVzIEZvcm11bGFyc1xyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHBhcmVudDogU2FjRm9ybUNvbW1vbiwgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcclxuXHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxyXG4gICAgICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXHJcbiAgICAgIG5ldyBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UoKVxyXG4gICAgKTtcclxuICAgIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxyXG4gICAgICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcclxuICAgICAgbmV3IFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlKHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0aW9uIE1ldGhvZGVcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGZvcm1FcnJvcnMoKTogT2JzZXJ2YWJsZTxzdHJpbmc+W10ge1xyXG4gICAgY29uc3QgY29sbGVjdGlvbjogQXJyYXk8T2JzZXJ2YWJsZTxzdHJpbmc+PiA9IG5ldyBBcnJheTxcclxuICAgICAgT2JzZXJ2YWJsZTxzdHJpbmc+XHJcbiAgICA+KCk7XHJcblxyXG4gICAgbGV0IGZvcm1CYXNlOiBGb3JtR3JvdXA7XHJcbiAgICBpZiAodGhpcy5wYXJlbnQpIHtcclxuICAgICAgZm9ybUJhc2UgPSB0aGlzLnBhcmVudC5nZXRGb3JtKCkuZm9ybTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5mb3JtIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICAgIGZvcm1CYXNlID0gdGhpcy5mb3JtO1xyXG5cclxuICAgICAgLy8gZm9ybWdyb3VwIGNhbiBvbmx5IGJlIGdldCBpbiByZWFjdGl2ZSBmb3JtcyBtb2RlXHJcbiAgICAgIGlmICh0aGlzLmZvcm1Hcm91cE5hbWUpIHtcclxuICAgICAgICBmb3JtQmFzZSA9IGZvcm1CYXNlLmdldCh0aGlzLmZvcm1Hcm91cE5hbWUpIGFzIEZvcm1Hcm91cDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIGZvcm0nKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpdGVtczogQXJyYXk8TmdGb3JtIHwgRm9ybUFycmF5PiA9IE9iamVjdC5rZXlzKGZvcm1CYXNlLmNvbnRyb2xzKS5tYXAoXHJcbiAgICAgIChrZXkpID0+IHtcclxuICAgICAgICByZXR1cm4gPE5nRm9ybSB8IEZvcm1BcnJheT5mb3JtQmFzZS5jb250cm9sc1trZXldO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuZ2V0RXJyb3JDb2xsZWN0aW9uKGl0ZW1zLCBjb2xsZWN0aW9uKTtcclxuXHJcbiAgICByZXR1cm4gY29sbGVjdGlvbi5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IG51bGwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0dGVyIHdlbm4gRXJyb3JzIGVudHN0ZWhlblxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgaGFzRXJyb3JzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybUVycm9ycy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBGw7xndCBlaW5lbiBWYWxpZGF0aW9uIEVycm9yIGluIGRpZSBFcnJvciBDb2xsZWN0aW9uIGhpbnp1XHJcbiAgICogQHBhcmFtIGN0bCBGZWhsZXJoYWZ0ZXMgQ29udHJvbFxyXG4gICAqIEBwYXJhbSBjb2xsZWN0aW9uIENvbGxlY3Rpb24gYWxsZXIgRmVobGVybWVsZHVuZ2VuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRFcnJvclRvQ29sbGVjdGlvbihcclxuICAgIGN0bDogQWJzdHJhY3RDb250cm9sLFxyXG4gICAgY29sbGVjdGlvbjogQXJyYXk8T2JzZXJ2YWJsZTxzdHJpbmc+PlxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKGN0bC5lcnJvcnMgPT09IG51bGwgfHwgY3RsLnRvdWNoZWQgPT09IGZhbHNlIHx8IGN0bC52YWxpZCA9PT0gdHJ1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhjdGwuZXJyb3JzKTtcclxuXHJcbiAgICBpZiAoa2V5cy5sZW5ndGggPD0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXJyb3JJdGVtOiBWYWxpZGF0aW9uRXJyb3JJdGVtID0gY3RsLmVycm9yc1trZXlzWzBdXTtcclxuXHJcbiAgICAvLyBWYWxpZGF0aW9uIFBhcmFtZXRlcnNcclxuICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7fTtcclxuICAgIGlmIChlcnJvckl0ZW0ucGFyYW1ldGVycyAhPT0gbnVsbCAmJiBlcnJvckl0ZW0ucGFyYW1ldGVycyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGVycm9ySXRlbS5wYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcclxuICAgICAgICBwYXJhbWV0ZXJzW2tdID0gdjtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKChjdGwgYXMgdW5rbm93biBhcyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb24pPy5jb250cm9sbGFiZWwpIHtcclxuICAgICAgcGFyYW1ldGVyc1snRklFTEQnXSA9IChcclxuICAgICAgICBjdGwgYXMgdW5rbm93biBhcyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb25cclxuICAgICAgKS5jb250cm9sbGFiZWw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwYXJhbWV0ZXJzWydGSUVMRCddID0gZXJyb3JJdGVtLmZpZWxkTmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBjb2xsZWN0aW9uLnB1c2goXHJcbiAgICAgIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyhcclxuICAgICAgICBlcnJvckl0ZW0uZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXksXHJcbiAgICAgICAgcGFyYW1ldGVyc1xyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGllIE1ldGhvZGUgZ2lidCBDb2xsZWN0aW9uIHZvbiBFcnJvcnMuIFZlcmxhbmd0IGNvbnRyb2xzOiBBcnJheTxOZ0Zvcm0gfCBGb3JtQXJyYXk+IHVuZCAgY29sbGVjdGlvbjogQXJyYXk8T2JzZXJ2YWJsZTxzdHJpbmc+PlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0RXJyb3JDb2xsZWN0aW9uKFxyXG4gICAgY29udHJvbHM6IEFycmF5PE5nRm9ybSB8IEZvcm1BcnJheT4sXHJcbiAgICBjb2xsZWN0aW9uOiBBcnJheTxPYnNlcnZhYmxlPHN0cmluZz4+XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb250cm9scy5mb3JFYWNoKChjdGwpID0+IHtcclxuICAgICAgaWYgKGN0bC5jb250cm9scyA9PT0gdW5kZWZpbmVkIHx8IGN0bC5jb250cm9scyA9PT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuYWRkRXJyb3JUb0NvbGxlY3Rpb24oPEFic3RyYWN0Q29udHJvbD5jdGwsIGNvbGxlY3Rpb24pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGN0bC5jb250cm9scykubWFwKChjb250cm9sS2V5KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb250cm9sID0gY3RsLmNvbnRyb2xzW2NvbnRyb2xLZXldO1xyXG5cclxuICAgICAgICAgIC8vIENhbmNlbCBBbmFseXNlIHdlbm4gSXRlbSBub3QgVG91Y2hlZCBvZGVyIFZhbGlkXHJcbiAgICAgICAgICBpZiAoY29udHJvbC50b3VjaGVkID09PSBmYWxzZSB8fCBjb250cm9sLnZhbGlkID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvLyBIYW5kbGUgd2VubiBDb250cm9sIGtlaW4gQ29udGFpbmVyIGlzdFxyXG4gICAgICAgICAgaWYgKGNvbnRyb2wuY29udHJvbHMgPT09IHVuZGVmaW5lZCB8fCBjb250cm9sLmNvbnRyb2xzID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkRXJyb3JUb0NvbGxlY3Rpb24oY29udHJvbCwgY29sbGVjdGlvbik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBIYW5kbGluZyBlaW5lcyBDb250cm9sIENvbnRhaW5lcnNcclxuICAgICAgICAgICAgY29uc3QgaXRlbXM6IEFycmF5PE5nRm9ybSB8IEZvcm1BcnJheT4gPSBPYmplY3Qua2V5cyhcclxuICAgICAgICAgICAgICBjb250cm9sLmNvbnRyb2xzXHJcbiAgICAgICAgICAgICkubWFwKChmb3JtS2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIDxOZ0Zvcm0gfCBGb3JtQXJyYXk+Y29udHJvbC5jb250cm9sc1tmb3JtS2V5XTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmdldEVycm9yQ29sbGVjdGlvbihpdGVtcywgY29sbGVjdGlvbik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxufVxyXG4iXX0=
1
+ import { SACLOCALISATION_SERVICE, SacDefaultLocalisationService } from '../../services/sac-localisation.service';
2
+ import { SACVALIDATIONKEY_SERVICE, SacDefaultValidationKeyService } from '../../services/sac-validationkey.service';
3
+ import { createGuid } from '../../utilities/guid';
4
+ import { SacFormCommon } from '../form/form';
5
+ import { Directive, Injector, Input } from '@angular/core';
6
+ import { FormGroup } from '@angular/forms';
7
+ /**
8
+ * Base component for SacValidationSummary
9
+ */
10
+ export class SacValidationSummaryCommon {
11
+ // #endregion Properties
12
+ // #region Constructors
13
+ /**
14
+ * Constructor
15
+ * @param parent Parent form control component
16
+ * @param injector Service injector for dependency resolution
17
+ */
18
+ constructor(parent, injector) {
19
+ /**
20
+ * Identifier used for the E2E data attribute.
21
+ */
22
+ this.e2eidentifier = null;
23
+ /**
24
+ * name of control
25
+ */
26
+ this.name = createGuid();
27
+ this.parent = parent;
28
+ this.validationKeyService = injector.get(SACVALIDATIONKEY_SERVICE, new SacDefaultValidationKeyService());
29
+ this.lngResourceService = injector.get(SACLOCALISATION_SERVICE, new SacDefaultLocalisationService(this.validationKeyService));
30
+ }
31
+ // #endregion Constructors
32
+ // #region Public Getters And Setters
33
+ /**
34
+ * Validation method
35
+ */
36
+ get formErrors() {
37
+ const collection = new Array();
38
+ let formBase;
39
+ if (this.parent) {
40
+ formBase = this.parent.getForm().form;
41
+ }
42
+ else if (this.form instanceof FormGroup) {
43
+ formBase = this.form;
44
+ // formgroup can only be get in reactive forms mode
45
+ if (this.formGroupName) {
46
+ formBase = formBase.get(this.formGroupName);
47
+ }
48
+ }
49
+ else {
50
+ throw new Error('missing form');
51
+ }
52
+ const items = Object.keys(formBase.controls).map((key) => {
53
+ return formBase.controls[key];
54
+ });
55
+ this.getErrorCollection(items, collection);
56
+ return collection.filter((item) => item !== null);
57
+ }
58
+ /**
59
+ * Getter when errors occur
60
+ */
61
+ get hasErrors() {
62
+ return this.formErrors.length > 0;
63
+ }
64
+ // #endregion Public Getters And Setters
65
+ // #region Private Methods
66
+ /**
67
+ * Adds a validation error to the error collection
68
+ * @param ctl Faulty control
69
+ * @param collection Collection of all error messages
70
+ */
71
+ addErrorToCollection(ctl, collection) {
72
+ var _a;
73
+ if (ctl.errors === null || ctl.touched === false || ctl.valid === true) {
74
+ return;
75
+ }
76
+ const keys = Object.keys(ctl.errors);
77
+ if (keys.length <= 0) {
78
+ return;
79
+ }
80
+ const errorItem = ctl.errors[keys[0]];
81
+ // Validation Parameters
82
+ const parameters = {};
83
+ if (errorItem.parameters !== null && errorItem.parameters !== undefined) {
84
+ errorItem.parameters.forEach((v, k) => {
85
+ parameters[k] = v;
86
+ });
87
+ }
88
+ if ((_a = ctl) === null || _a === void 0 ? void 0 : _a.controllabel) {
89
+ parameters['FIELD'] = ctl.controllabel;
90
+ }
91
+ else {
92
+ parameters['FIELD'] = errorItem.fieldName;
93
+ }
94
+ collection.push(this.lngResourceService.GetString(errorItem.errorMessageValidationSummaryKey, parameters));
95
+ }
96
+ /**
97
+ * The method returns collection of errors. Requires controls: Array<NgForm | FormArray> and collection: Array<Observable<string>>
98
+ */
99
+ getErrorCollection(controls, collection) {
100
+ controls.forEach((ctl) => {
101
+ if (ctl.controls === undefined || ctl.controls === null) {
102
+ this.addErrorToCollection(ctl, collection);
103
+ }
104
+ else {
105
+ Object.keys(ctl.controls).map((controlKey) => {
106
+ const control = ctl.controls[controlKey];
107
+ // Cancel analysis if item was not touched or is valid
108
+ if (control.touched === false || control.valid === true) {
109
+ return;
110
+ }
111
+ // Handle if control is not a container
112
+ if (control.controls === undefined || control.controls === null) {
113
+ this.addErrorToCollection(control, collection);
114
+ }
115
+ else {
116
+ // Handling of a control container
117
+ const items = Object.keys(control.controls).map((formKey) => {
118
+ return control.controls[formKey];
119
+ });
120
+ this.getErrorCollection(items, collection);
121
+ }
122
+ });
123
+ }
124
+ });
125
+ }
126
+ }
127
+ SacValidationSummaryCommon.decorators = [
128
+ { type: Directive }
129
+ ];
130
+ SacValidationSummaryCommon.ctorParameters = () => [
131
+ { type: SacFormCommon },
132
+ { type: Injector }
133
+ ];
134
+ SacValidationSummaryCommon.propDecorators = {
135
+ e2eidentifier: [{ type: Input }],
136
+ form: [{ type: Input }],
137
+ formGroupName: [{ type: Input }],
138
+ name: [{ type: Input }]
139
+ };
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy92YWxpZGF0aW9uL3ZhbGlkYXRpb25zdW1tYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQThCLFNBQVMsRUFBVSxNQUFNLGdCQUFnQixDQUFDO0FBRy9FOztHQUVHO0FBRUgsTUFBTSxPQUFPLDBCQUEwQjtJQTRDbkMsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFBWSxNQUFxQixFQUFFLFFBQWtCO1FBbkNyRDs7V0FFRztRQUVJLGtCQUFhLEdBQWtCLElBQUksQ0FBQztRQWdCM0M7O1dBRUc7UUFFSSxTQUFJLEdBQVcsVUFBVSxFQUFFLENBQUM7UUFZL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsSUFBSSw4QkFBOEIsRUFBRSxDQUFDLENBQUM7UUFDekcsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxHQUFH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QUMsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OztZQTdLSixTQUFTOzs7WUFSRCxhQUFhO1lBQ0YsUUFBUTs7OzRCQTZCdkIsS0FBSzttQkFNTCxLQUFLOzRCQVFMLEtBQUs7bUJBTUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XG5pbXBvcnQgeyBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lTYWNWYWxpZGF0aW9uS2V5U2VydmljZSc7XG5pbXBvcnQgeyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2lhYnN0cmFjdGNvbnRyb2xsYWJlbCc7XG5pbXBvcnQgeyBTQUNMT0NBTElTQVRJT05fU0VSVklDRSwgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zYWMtbG9jYWxpc2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLCBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zYWMtdmFsaWRhdGlvbmtleS5zZXJ2aWNlJztcbmltcG9ydCB7IGNyZWF0ZUd1aWQgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZ3VpZCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JJdGVtIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBTYWNGb3JtQ29tbW9uIH0gZnJvbSAnLi4vZm9ybS9mb3JtJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0b3IsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUdyb3VwLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQmFzZSBjb21wb25lbnQgZm9yIFNhY1ZhbGlkYXRpb25TdW1tYXJ5XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFNhY1ZhbGlkYXRpb25TdW1tYXJ5Q29tbW9uIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIFNlcnZpY2UgZm9yIEVycm9yIExvY2FsaXNhdGlvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBsbmdSZXNvdXJjZVNlcnZpY2U6IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlO1xuXG4gICAgLyoqXG4gICAgICogUGFyZW50IEZvcm1cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcGFyZW50OiBTYWNGb3JtQ29tbW9uO1xuXG4gICAgLyoqXG4gICAgICogU2VydmljZSB0byByZWNlaXZlIHN0YW5kYXJkIHZhbGlkYXRpb24gbWVzc2FnZSBrZXlzIGFuZCB0ZXh0c1xuICAgICAqL1xuICAgIHByb3RlY3RlZCB2YWxpZGF0aW9uS2V5U2VydmljZTogSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlO1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciB1c2VkIGZvciB0aGUgRTJFIGRhdGEgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGUyZWlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogcmVhY3RpdmUgZm9ybSBpbnN0YW5jZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcblxuICAgIC8qKlxuICAgICAqIEZvcm0gZ3JvdXBuYW1lIHRvIGZpbHRlciBzdW1tYXJ5IHRvIGZvcm1ncm91cFxuICAgICAqXG4gICAgICogSW1wb3J0YW50OiBpdCB3b3JrcyBvbmx5IGluIHJlYWN0aXZlIGZvcm1zIG1vZGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZm9ybUdyb3VwTmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogbmFtZSBvZiBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nID0gY3JlYXRlR3VpZCgpO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gcGFyZW50IFBhcmVudCBmb3JtIGNvbnRyb2wgY29tcG9uZW50XG4gICAgICogQHBhcmFtIGluamVjdG9yIFNlcnZpY2UgaW5qZWN0b3IgZm9yIGRlcGVuZGVuY3kgcmVzb2x1dGlvblxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHBhcmVudDogU2FjRm9ybUNvbW1vbiwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLCBuZXcgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlKCkpO1xuICAgICAgICB0aGlzLmxuZ1Jlc291cmNlU2VydmljZSA9IGluamVjdG9yLmdldChcbiAgICAgICAgICAgIFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLFxuICAgICAgICAgICAgbmV3IFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlKHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRpb24gbWV0aG9kXG4gICAgICovXG4gICAgcHVibGljIGdldCBmb3JtRXJyb3JzKCk6IE9ic2VydmFibGU8c3RyaW5nPltdIHtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbjogQXJyYXk8T2JzZXJ2YWJsZTxzdHJpbmc+PiA9IG5ldyBBcnJheTxPYnNlcnZhYmxlPHN0cmluZz4+KCk7XG5cbiAgICAgICAgbGV0IGZvcm1CYXNlOiBGb3JtR3JvdXA7XG4gICAgICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgICAgICAgZm9ybUJhc2UgPSB0aGlzLnBhcmVudC5nZXRGb3JtKCkuZm9ybTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZvcm0gaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgICAgIGZvcm1CYXNlID0gdGhpcy5mb3JtO1xuXG4gICAgICAgICAgICAvLyBmb3JtZ3JvdXAgY2FuIG9ubHkgYmUgZ2V0IGluIHJlYWN0aXZlIGZvcm1zIG1vZGVcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1Hcm91cE5hbWUpIHtcbiAgICAgICAgICAgICAgICBmb3JtQmFzZSA9IGZvcm1CYXNlLmdldCh0aGlzLmZvcm1Hcm91cE5hbWUpIGFzIEZvcm1Hcm91cDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyBmb3JtJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpdGVtczogQXJyYXk8TmdGb3JtIHwgRm9ybUFycmF5PiA9IE9iamVjdC5rZXlzKGZvcm1CYXNlLmNvbnRyb2xzKS5tYXAoKGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIDxOZ0Zvcm0gfCBGb3JtQXJyYXk+Zm9ybUJhc2UuY29udHJvbHNba2V5XTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5nZXRFcnJvckNvbGxlY3Rpb24oaXRlbXMsIGNvbGxlY3Rpb24pO1xuXG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gbnVsbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0dGVyIHdoZW4gZXJyb3JzIG9jY3VyXG4gICAgICovXG4gICAgcHVibGljIGdldCBoYXNFcnJvcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1FcnJvcnMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIHZhbGlkYXRpb24gZXJyb3IgdG8gdGhlIGVycm9yIGNvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0gY3RsIEZhdWx0eSBjb250cm9sXG4gICAgICogQHBhcmFtIGNvbGxlY3Rpb24gQ29sbGVjdGlvbiBvZiBhbGwgZXJyb3IgbWVzc2FnZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGFkZEVycm9yVG9Db2xsZWN0aW9uKGN0bDogQWJzdHJhY3RDb250cm9sLCBjb2xsZWN0aW9uOiBBcnJheTxPYnNlcnZhYmxlPHN0cmluZz4+KTogdm9pZCB7XG4gICAgICAgIGlmIChjdGwuZXJyb3JzID09PSBudWxsIHx8IGN0bC50b3VjaGVkID09PSBmYWxzZSB8fCBjdGwudmFsaWQgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoY3RsLmVycm9ycyk7XG5cbiAgICAgICAgaWYgKGtleXMubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVycm9ySXRlbTogVmFsaWRhdGlvbkVycm9ySXRlbSA9IGN0bC5lcnJvcnNba2V5c1swXV07XG5cbiAgICAgICAgLy8gVmFsaWRhdGlvbiBQYXJhbWV0ZXJzXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7fTtcbiAgICAgICAgaWYgKGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSBudWxsICYmIGVycm9ySXRlbS5wYXJhbWV0ZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVycm9ySXRlbS5wYXJhbWV0ZXJzLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzW2tdID0gdjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKChjdGwgYXMgdW5rbm93biBhcyBJQWJzdHJhY3RDb250cm9sTGFiZWxFeHRlbnNpb24pPy5jb250cm9sbGFiZWwpIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcnNbJ0ZJRUxEJ10gPSAoY3RsIGFzIHVua25vd24gYXMgSUFic3RyYWN0Q29udHJvbExhYmVsRXh0ZW5zaW9uKS5jb250cm9sbGFiZWw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJzWydGSUVMRCddID0gZXJyb3JJdGVtLmZpZWxkTmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbGxlY3Rpb24ucHVzaCh0aGlzLmxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoZXJyb3JJdGVtLmVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5LCBwYXJhbWV0ZXJzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIG1ldGhvZCByZXR1cm5zIGNvbGxlY3Rpb24gb2YgZXJyb3JzLiBSZXF1aXJlcyBjb250cm9sczogQXJyYXk8TmdGb3JtIHwgRm9ybUFycmF5PiBhbmQgY29sbGVjdGlvbjogQXJyYXk8T2JzZXJ2YWJsZTxzdHJpbmc+PlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0RXJyb3JDb2xsZWN0aW9uKGNvbnRyb2xzOiBBcnJheTxOZ0Zvcm0gfCBGb3JtQXJyYXk+LCBjb2xsZWN0aW9uOiBBcnJheTxPYnNlcnZhYmxlPHN0cmluZz4+KTogdm9pZCB7XG4gICAgICAgIGNvbnRyb2xzLmZvckVhY2goKGN0bCkgPT4ge1xuICAgICAgICAgICAgaWYgKGN0bC5jb250cm9scyA9PT0gdW5kZWZpbmVkIHx8IGN0bC5jb250cm9scyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkRXJyb3JUb0NvbGxlY3Rpb24oPEFic3RyYWN0Q29udHJvbD5jdGwsIGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhjdGwuY29udHJvbHMpLm1hcCgoY29udHJvbEtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gY3RsLmNvbnRyb2xzW2NvbnRyb2xLZXldO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIENhbmNlbCBhbmFseXNpcyBpZiBpdGVtIHdhcyBub3QgdG91Y2hlZCBvciBpcyB2YWxpZFxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udHJvbC50b3VjaGVkID09PSBmYWxzZSB8fCBjb250cm9sLnZhbGlkID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgaWYgY29udHJvbCBpcyBub3QgYSBjb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wuY29udHJvbHMgPT09IHVuZGVmaW5lZCB8fCBjb250cm9sLmNvbnRyb2xzID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZEVycm9yVG9Db2xsZWN0aW9uKGNvbnRyb2wsIGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGFuZGxpbmcgb2YgYSBjb250cm9sIGNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbXM6IEFycmF5PE5nRm9ybSB8IEZvcm1BcnJheT4gPSBPYmplY3Qua2V5cyhjb250cm9sLmNvbnRyb2xzKS5tYXAoKGZvcm1LZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPE5nRm9ybSB8IEZvcm1BcnJheT5jb250cm9sLmNvbnRyb2xzW2Zvcm1LZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0RXJyb3JDb2xsZWN0aW9uKGl0ZW1zLCBjb2xsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xufVxuIl19
@@ -1,7 +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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnN1bW1hcnkubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IkM6L0RhdGVuL2pOZXR3b3JrL2NoLmpuZXR3b3JrLmFuZ3VsYXJjb250cm9scy1uZzEwL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL3ZhbGlkYXRpb24vdmFsaWRhdGlvbnN1bW1hcnkubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmkwLkNvbXBvbmVudEZhY3Rvcnk7XG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnN1bW1hcnkubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1jb21tb24vc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvdmFsaWRhdGlvbi92YWxpZGF0aW9uc3VtbWFyeS5uZ2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiJdfQ==